대칭키 암호는 데이터를 암호화할 때와 복호화할 때 같은 비밀키를 사용하는 방식이다. 보내는 사람과 받는 사람이 미리 동일한 키를 공유해야 하며, 그 키로 암호문을 원래 평문으로 되돌린다.[3][5]

1. 개요

예를 들어 한 개의 열쇠로 자물쇠를 잠그고 여는 것처럼, 암호화와 복호화에 하나의 키를 함께 쓴다. 암호문과 알고리즘을 알아도 키 없이는 메시지를 복원할 수 없도록 설계되며, 보안은 알고리즘을 숨기는 데 있기보다 키를 비밀로 유지하는 데 달려 있다.[4][5]

대표적인 대칭키 알고리즘인 AES는 무선 네트워크 보안, 디스크 암호화, 온라인 결제, 클라우드 저장공간, 비밀번호 관리 등에 쓰인다. 이처럼 대칭키 암호는 빠른 데이터 처리에 활용되지만, 송신자와 수신자가 같은 키를 안전하게 공유해야 하는 과제가 따른다.[7][8]

2. 암호화와 복호화 방식

암호화 과정에서는 평문과 비밀키를 암호 알고리즘에 입력해 암호문을 만든다. 복호화할 때는 같은 비밀키와 알고리즘을 사용해 암호문을 평문으로 되돌린다.[3][4]

AES는 데이터를 128비트 블록 단위로 처리하는 블록 암호다. 키에서 라운드별 키를 만들고 여러 변환 단계를 반복한다.[7][8]

3. 장점과 키 분배 문제

대칭키 암호는 공개키 암호보다 내부 구조가 단순하고 암·복호화 처리 속도가 빠른 편이다. 따라서 빠른 처리가 필요한 데이터 암호화에 활용할 수 있다.[3][5]

반면 송신자와 수신자가 같은 비밀키를 공유해야 한다. 키를 전달하는 중에 노출되면 제삼자도 그 키를 사용해 암호문을 복호화할 수 있다.[3][5]

한 가지 키 분배 방법은 종이나 USB 저장장치 같은 매체에 키를 담아 당사자가 오프라인에서 직접 교환하는 것이다. 직접 만나기 어려운 경우에는 디피 헬만 알고리즘과 같은 공개키 기반 키 교환 알고리즘을 이용할 수 있다.[3]

4. 대표 알고리즘 AES와 DES

AES는 DES를 대체하기 위한 표준 알고리즘으로 채택된 Rijndael 기반의 블록 암호다. AES는 128비트 블록을 처리하며, 128·192·256비트 키를 지원한다.[1][2]

AES의 키 길이에 따라 라운드 수는 각각 10·12·14회로 정해진다. DES는 64비트 블록과 56비트 키를 사용하며, Feistel 구조를 따른다. AES 표준 채택 전에는 DES가 널리 쓰였다.[1][4][7]

5. AES 하드웨어 구현과 성능

AES를 하드웨어로 구현할 때는 기본 반복 구조, 루프 펼침, 자원 공유, 파이프라인 구조 등을 고려할 수 있다. 응용 분야에서 요구하는 하드웨어 면적과 동작 속도에 따라 적절한 라운드 구현 구조를 선택한다.[2]

암호 프로세서의 성능은 처리량, 암·복호화 지연시간, 하드웨어 면적 등의 요소로 평가한다. 따라서 구현 구조는 처리 속도와 필요한 회로 자원을 함께 고려해 정해진다.[2]

6. AES의 사용 사례와 보안 평가

AES는 무선 네트워크 보안, 디스크 암호화, 온라인 결제, 클라우드 저장공간, 비밀번호 관리 등에 사용된다. AES-128·AES-192·AES-256은 키 크기에 따라 각각 10·12·14라운드를 수행한다.[7][8]

한 출처는 올바르게 구현된 AES-128 이상에 대해 실용적인 알려진 키 공격이 없다고 평가한다. 다만 이 평가는 해당 출처의 설명이며, 암호 알고리즘의 사용에는 구현 방식도 관련된다.[8]

디스크 암호화용 XTS 모드는 다른 용도로 사용하지 말라는 주의가 제시되어 있다. XTS에서는 AES 키가 일반적인 길이의 두 배이며, AES-128에는 256비트 키가 필요하고 AES-256에는 512비트 키가 필요하다. 해당 문서에서는 AES-192의 XTS 사용을 지원하지 않는다.[6]

7. 관련 문서

  • 공개키 암호
  • AES
  • DES
  • 키 분배
  • 디피 헬만 알고리즘

8. 인용 및 각주

[1] Wwww.cs.cornell.edu(새 탭에서 열림)

[2] Sscienceon.kisti.re.kr(새 탭에서 열림)

[3] Tterms.tta.or.kr(새 탭에서 열림)

[4] Wwww.reportworld.co.kr(새 탭에서 열림)

[5] Ttermglossary.kr(새 탭에서 열림)

[6] Ccryptography.io(새 탭에서 열림)

[7] Pproton.me(새 탭에서 열림)

[8] Pproton.me(새 탭에서 열림)