컴퓨터 관련

[정보보안] AES(Advanced Encryption Standard)란 무엇일까?

hianao 2025. 5. 8. 21:56

[정의]

안녕하세요. 오늘은 AES(Advanced Encryption Standard)에 대해서 알아보고자 합니다.

AES가 무엇이냐면 보안에 사용되는 표준 암호화 알고리즘입니다. 

2025년 기준으로 아직까지 해독법은 발견되지 않아서 무척이나 강력한 대칭키 블록 암호화 알고리즘으로 평가 받고 있습니다.

 

AES는 어떻게 만들어졌을까요? 원래는 1980년도 쯤에 DES(Data Encryption Standard) 라는 암호화 표준 알고리즘이 존재했습니다. 이름부터 그냥 데이터 암호화 표준이라서 DES가 한국어로는 데암표 이런 느낌입니다. 아무튼 이게 원래는 해독이 불가능했으나, 점차 컴퓨터 성능이 발전하며, 그냥 무지성으로 뚫는 방법이 생겨나버렸습니다. 

 

무차별 대입 (브루트 포스) 공격법

 

자물쇠의 비번이 1~9999라면 컴퓨터가 비번을 맞출 때까지 그냥 1부터 9999까지 모든 숫자를 대입해보면서 비번을 맞추는 겁니다. 누가 이런 무식한 방법으로 해킹을 하나 싶겠지만, 의외로 많은 곳에서 해킹을 위해 저런 방식을 사용합니다. 될 때까지 해보는거죠. 이를 무차별 대입, 또는 브루트 포스(brute force) 라고 부릅니다.

 

물론 이건 그냥 비유이고, DES의 비밀번호 자체가 1~9999까지 있는건 아닙니다. 사실은 키의 길이가 56비트라서 비밀번호는 2⁵⁶인 72,057,594,037,927,936 (7경)이 됩니다. 당연히 처음에는 안된다고 생각했겠지만, 요즘은 좋은 컴퓨터를 쓰면 몇 시간 내로도 해독을 할 수 있습니다. 

 

자물쇠 자체는 견고하나 그냥 1부터 9999까지 비번을 다 넣어버리니 DES는 노답이 되었습니다. 원래는 시간이 오래 걸렸기에 이런 무지성 공격이 불가능 했는데, 컴퓨터 성능이 너무 좋아져버리는 바람에 저런 식으로 공격도 가능하게 되었습니다. 그래서 DES는 암호화 표준이지만 이제는 절대로 사용해서는 안됩니다.

 

DES가 뚫리자, 미국에서는 새로운 암호화 표준을 만들기 위해서 암호 공모전을 열었습니다. 수많은 똑똑한 암호학자들이 모여 암호를 만들었습니다. 심지어 한국에서도 CRYPTON이라는 암호 알고리즘으로 참가를 했습니다. 최종적으로는 벨기에 사람이 만든 Rijndael(레인달)이라는 알고리즘이 1등을 하며, AES로 선정이 되었습니다. 그래서 AES는 Rijndael 알고리즘을 의미합니다.

 

 

[작동 방식]

AES 한 개의 라운드

 

AES는 데이터를 자르고 썰고 볶고 지지고해서 암호화하는 방식입니다. 데이터를 잘게 자르고, 순서를 바꾸고, 섞고, 열쇠로 잠그는 것을 10번 정도 반복해서 암호화하는 것이죠. 이걸 자세히 설명할 수도 있겠지만, 굳이 그런 것까지는 몰라도 될 것 같습니다. 

 

저희가 기억해야할 부분은 AES의 경우 대칭키 중에서도 블록 암호화에 속하며, 데이터를 아주 작게 나누고, 섞고, 그걸 XOR하여 암호화를 한다는 것만 알면 됩니다. 키 길이에 따라서 암호화하는 라운드 수도 달라집니다.

키 길이 (Key Size) 라운드 수 (Number of Rounds) 설명
128비트 10라운드 기본 보안 수준, 가장 많이 사용됨
192비트 12라운드 중간 보안 수준, 사용 잘 안함
256비트 14라운드 고보안 수준, 정부·군용·특수환경

 

가장 자주 사용되는 키 길이는 128비트로, 그냥 AES라고 하면 대부분 AES 128이라고 이해하면 될 것 같습니다.

 

 

[사용처]

  1. 금융권 (인터넷 뱅킹, 카드 결제 정보, 전자 지갑 등)
  2. 정부 및 공공기관, 기업 (개인정보나 문서 보안)
  3. 통신 (TLS/SSL에서 세션 키 암호화)

3번 통신에 관한 것을 대충 설명하자면, 저희가 주소창을 볼 때 https라는 말을 볼 수 있습니다. 이는 http+secure 또는 http+ssl을 줄여서 https가 된 것으로 ssl은 웹에 주로 사용되는 보안 프로토콜 (지금은 더 발전된 TLS를 씀)입니다. 여기에 주로 사용되는 암호화 알고리즘이 바로 AES입니다. 그러니 웹 통신 보안에 사용될 때 주로 쓰는게 AES라고 생각해도 좋을 것 같습니다.

 

 

[취약점]

AES는 아직 취약점이 없습니다. 다만 AES를 구현하는 과정에서 잘못 만들어서 취약점이 생기거나, 아니면 키 관리를 실수해서 취약점이 생기기도 합니다. 다만 알고리즘 자체는 2025년 기준으로 뚫는 것이 불가능하며, 매우 안전한 알고리즘으로 평가받고 있습니다.

 

 

읽어주셔서 감사합니다.

다들 좋은 하루 되세요!