[CryptoHack] Confusion through Substitution

💡 각 AES 라운드의 첫 번째 단계는

이번에는 sbox에 대해 설명하고 있다. 내가 해야할 것은 주어진 sbox를 바탕으로 SubBytes 부분을 구현하고, inv_sbox를 통해 plaintext를 복원해내면 된다.

파일을 다운받으면 다음과 같이 sbox와 inv_sbox가 구현되어 있다. 따라서 그냥 이 sbox를 이용하기만 하면 된다.

def sub_bytes(s, sbox=s_box):
    res=[]
    for i in s:
        tmp=[]
        for j in i: 
            tmp.append(sbox[j])
        res.append(tmp)

    return(res)

 

sub_bytes 함수를 구현한 것이다. 정말 간단하게 sbox의 해당 부분 값으로 대체하는 코드이다.

그 다음 matrix2bytes 함수를 거치면 flag를 얻을 수 있다.

flag를 얻어냈다!

🚩 flag: crypto{l1n34rly}

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤