암호학 두번째 문제
문제를 어이없게 풀어버려서 제대로된 풀이가 아니다.
반응형
서버에 원격접속할 수 있는 주소와
서버에서 돌아가고 있는 파이썬 코드가 주어진다.
#!/usr/local/bin/python
def fake_psi(a, b):
return [i for i in a if i in b]
def zero_encoding(x, n):
ret = []
for i in range(n):
if (x & 1) == 0:
ret.append(x | 1)
x >>= 1
return ret
def one_encoding(x, n):
ret = []
for i in range(n):
if x & 1:
ret.append(x)
x >>= 1
return ret
print("Supply positive x and y such that x < y and x > y.")
x = int(input("x: "))
y = int(input("y: "))
if len(fake_psi(one_encoding(x, 64), zero_encoding(y, 64))) == 0 and x > y and x > 0 and y > 0:
print(open("flag.txt").read())
문제에서 주어지는 코드는 이렇다.
사용자로부터 x 와 y 를 입력받고
x 에 대해 one_encoding,
y 에 대해 zero_encoding 함수를 수행한 다음
두 결과를 가지고 fake_psi 함수를 수행하고
그 길이가 0인지 검증한다.
이에 더해 x > y, x > 0, y > 0 인 상황이 만족되면
플래그가 출력되게 된다.
print(one_encoding(x, 64))
print(zero_encoding(y, 64))
print(fake_psi(one_encoding(x, 64), zero_encoding(y, 64)))
print(len(fake_psi(one_encoding(x, 64), zero_encoding(y, 64))) == 0)
print(x>0)
print(y>0)
이렇게 각 단계별로 print 를 추가해서
어떤 값이 나오는지 살펴봤다.
x 와 y 에 1을 각각 넣으면
첫번째와 두번째 줄처럼 결과가 나오는데
fake_psi 결과의 len 이 0 이 되려면
두 집합이 겹치는 원소가 없어야 한다.
몇가지 숫자를 조합해 넣어봤는데
무조건 1이 들어가서
이거 진짜 impossible 아니야? 라고 생각하면서
아무렇게나 대충 때려넣었는데
문제가 풀려버렸다;;
[493213433154296875, 246606716577148437, 61651679144287109, 15412919786071777, 481653743314743, 240826871657371, 120413435828685, 30103358957171, 15051679478585, 1881459934823, 940729967411, 470364983705, 58795622963, 29397811481, 3674726435, 1837363217, 114835201, 448575, 224287, 112143, 56071, 28035, 14017, 219, 109]
[1010111111110001, 505055555555001, 252527777777501, 126263888888751, 7891493055547, 1972873263887, 123304578993, 61652289497, 30826144749, 15413072375, 1926634047, 30103657, 15051829, 7525915, 1881479, 235185, 117593, 58797, 29399, 3675, 919, 115, 29, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[]
True
True
True
각 단계를 print 해보면 이런 결과값이 나온다.
이런 간단한 코드로 된 암호학 문제는
ChatGPT 에 넣으면 풀 수 있지 않을까 하는 생각에
문제를 주고 어떤 입력값이 올바른지 물어봤다.
ChatGPT는 이진수 10000000 과 01111111 을 넣으면 된다고 알려줬다.
2진수 형태로도 넣어보고 10진수로도 넣어봤지만
넣어봤는데 아무일도 일어나지 않았다.
아직.. 인공지능이 갈길은 먼거같다.
반응형
'CTF > 암호학' 카테고리의 다른 글
[2021CCE] rox - 암호학 / XOR (148) | 2023.08.17 |
---|---|
[TMUCTF] Prison - 암호학 / Tap code (99) | 2023.07.04 |
[angstromCTF] ranch - 암호학 / Python / 카이사르암호 (86) | 2023.05.23 |
[Space Heroes CTF] Rick Sanchez Algorithm - 암호학 / RsaCtfTool (89) | 2023.05.09 |
[Tenable CTF] Quit messing with my flags - 암호학 / MD5 (62) | 2023.03.20 |