[WriteUp] / [CryptoHack] Resisting Bruteforce

해석
블록 암호가 안전하려면, 공격자가 AES의 출력과 무작위 비트 배열을 구분할 수 없어야 한다. 또한, 키를 무작위로 전부 시도하는(브루트포싱) 것보다 더 효율적인 복호화 방법이 있어서는 안 된다. 그래서 이론적으로라도 브루트포싱보다 적은 연산으로 복호화가 가능하다면, 그 암호는 '깨졌다고(broken)' 간주된다.
128비트 키를 브루트포싱하는 건 얼마나 어려울까? 누군가 계산했는데, 비트코인 전체 채굴 연산력을 동원해도 우주의 나이보다 100배 더 오래 걸린다고 함. 즉, 현실적으로 AES-128은 브루트포스로 못 뚫음.
브루트포스보다 약간 더 나은 공격이 있긴 한데, 그 차이는 매우 미미함. AES-128의 보안을 128비트에서 126.1비트로 약간 깎는 수준. 8년 넘게 개선도 없고, 실제 위협으로 간주되지 않음.
양자 컴퓨터는 Shor 알고리즘을 통해 RSA 같은 공개키 암호를 깨뜨릴 수 있음. 대칭키 암호(AES)는 Grover 알고리즘을 통해 보안 수준이 절반으로 감소함. 그래서 양자 시대 대비하려면 AES-256을 쓰라는 이유. (256 → √ 연산으로도 128비트 보안 유지됨)
AES에 대한 가장 잘 알려진 단일 키 공격은 무엇인가?
Flag
crypto{biclique}
https://en.wikipedia.org/wiki/Biclique_attack
→ 레퍼런스를 참고해 이해한 부분까지 적어보자면 AES에 대한 가장 잘 알려진 단일 키 공격으로 전체 라운드 수를 공격한다.