AES의 실제 안전성 (AES Reality)

중급암호학수정일

AES의 실제 안전성(AES reality)은 AES 알고리즘에 대한 이론적 공격 연구와 별개로, 현실에서 AES 기반 시스템이 깨지는 원인이 알고리즘 자체보다 키 관리·운용 모드·구현 실수에 있다는 점을 다루는 개념입니다. 결론부터 말하면, 2001년 표준화 이후 지금까지 전체 라운드 AES를 실용적으로 깨는 공격은 알려져 있지 않습니다.

자세히 알아보기

AES(FIPS 197)는 128비트 블록에 128·192·256비트 키를 쓰는 블록 암호로, 공개 공모로 선정된 레인달(Rijndael) 알고리즘입니다. 가장 잘 알려진 키 복구 공격인 바이클릭(biclique) 공격도 AES-128의 탐색량을 2¹²⁸에서 약 2¹²⁶ 수준으로 줄이는 데 그쳐, 실질적 위협이 되지 않습니다. AES-256에 대한 관련 키 공격은 공격자가 서로 연관된 여러 키로 암호화를 시킬 수 있다는 비현실적 가정을 필요로 합니다.

현실의 실패는 주로 다른 곳에서 일어납니다.

  • 운용 모드: ECB 모드는 같은 평문 블록이 같은 암호문이 되어 패턴이 드러납니다. GCM에서 같은 키로 논스를 재사용하면 기밀성과 인증이 모두 무너집니다.
  • 부채널: 테이블 조회 방식 구현은 캐시 타이밍으로 키가 새어 나갈 수 있어, 상수 시간 구현이나 CPU의 AES-NI 명령을 써야 합니다.
  • 키 관리: 약한 비밀번호에서 키를 만들거나 키를 코드에 하드코딩하면 알고리즘이 강해도 소용없습니다.

양자 컴퓨터의 그로버 알고리즘은 키 탐색을 제곱근 수준으로 줄이므로, 장기 보안이 필요하면 AES-256이 권장됩니다. AES-128도 당분간 충분하다고 평가됩니다.

구현 품질을 높이려면 검증된 라이브러리(OpenSSL, libsodium, BoringSSL, 각 운영체제의 표준 암호 API)를 쓰고, AES를 직접 구현하지 않는 것이 원칙입니다.

블록체인·암호화폐에서는

지갑 앱과 하드웨어 지갑은 시드 구문이나 키 파일을 저장할 때 AES를 자주 씁니다. 이더리움 키스토어 파일은 비밀번호에서 Scrypt/PBKDF2로 키를 유도해 AES-128-CTR로 개인 키를 암호화합니다. 이런 파일의 암호가 풀리는 원인은 거의 항상 AES가 아니라 약한 비밀번호입니다.

블록체인 관점에서도 같은 교훈이 적용됩니다. 지갑 해킹의 원인은 대부분 암호 알고리즘이 아니라 시드 구문 유출, 악성 소프트웨어, 피싱입니다.

쉽게 말하면

AES라는 금고 문 자체는 아직 아무도 부수지 못했습니다. 도둑은 문이 아니라 열쇠 보관, 설치 방법의 허점을 노립니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.