암호분석 (Cryptanalysis)
한 줄 정의: 비밀 키를 모르는 상태에서 암호문의 약점을 찾아 평문이나 키를 알아내려는 연구·기법 전반을 말합니다.
쉽게 풀면
암호를 만드는 쪽이 있으면, 그 암호를 몰래 깨보려는 쪽도 있습니다. 암호분석은 바로 이 깨는 쪽의 학문입니다. 열쇠를 훔치지 않고도 자물쇠 구조 자체의 허점을 파고들어 문을 여는 것에 비유할 수 있습니다. 암호 알고리즘의 통계적 편향, 수학적 구조, 구현상의 실수 등을 이용해 키를 복원하거나 평문을 추측합니다.
왜 중요한가
암호가 정말 안전한지는 그 암호를 깨려는 시도를 견뎌내야 증명됩니다. 그래서 암호분석은 새 알고리즘의 안전성을 검증하고 표준을 선정하는 근거가 됩니다. 공격자의 능력을 미리 파악해 두어야 방어자가 적절한 키 길이와 알고리즘을 고를 수 있습니다.
논문에서는 이렇게 쓰입니다
"제안된 블록 암호에 대해 차분 및 선형 암호분석을 수행한 결과, 12라운드까지는 전수조사보다 빠른 공격이 존재하지 않음을 확인하였다."
조금 더 깊게 보면
암호분석은 공격자가 가진 정보에 따라 암호문 단독 공격, 알려진 평문 공격, 선택 평문 공격 등으로 나뉩니다. 대칭키 암호에서는 차분 공격과 선형 공격이 대표적인 통계적 분석 기법이며, 공개키 암호에서는 인수분해나 이산로그 같은 수학적 난제를 얼마나 빨리 푸느냐가 안전성을 좌우합니다. 이론적 공격이 전수조사보다 조금이라도 빠르면 그 암호는 '깨졌다'고 표현하는데, 실제 위협 여부와는 별개로 학술적 의미가 있습니다.
주의할 점
암호분석은 암호를 '깨는' 학문이지 '만드는' 학문이 아니라는 점에서 암호 설계와 구분됩니다. 또한 이론적으로 취약점이 발견되었다고 해서 곧바로 실용적인 공격이 가능한 것은 아닙니다.