또 뭐하지

[Dreamhack] Basic-Crypto1 본문

Write-up/Crypto

[Dreamhack] Basic-Crypto1

mameul 2024. 3. 29. 14:16
728x90

풀이

문제에 제공된 Roman emperor's cipher는 시저암호를 의미한다.

제공된 파일에는 암호문이 들어있다.

 

file_path = "D:/dreamhack/Basic_Crypto1/encode.txt"

with open(file_path, 'r') as f:
    cipher_s = f.read()

L = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

def c_dec(C,K):
    p = ""
    for i in C:
        if i == ' ':
            p += '_'
            continue
        idx = L.find(i)
        idx = (idx-K)%26
        p = p+(L[idx])
    return p

for i in range(0,26):
    tmp = c_dec(cipher_s,i)
    print("Key=",i," ",tmp)

시저암호 복호화 함수를 작성하고, 전수조사 공격을 진행하는 코드를 작성하였다.

복호화 함수에 문제에서 안내한대로 공백을 언더바로 치환하는 코드도 포함하였다.

코드를 실행봤을때 키가 3일 때 flag가 나오는 것을 확인할 수 있다. 

'Write-up > Crypto' 카테고리의 다른 글

[Dreamhack] likeb64  (0) 2024.04.03
[Dreamhack] babycrypto3  (0) 2024.03.29
[Dreamhack] darimchal-001  (0) 2024.03.29
[Dreamhack] SingleByteXor  (0) 2024.03.29
[Dreamhack] ROT128  (0) 2024.03.29