IDEA란 무엇인가?
IDEA(International Data Encryption Algorithm, 국제 데이터 암호화 알고리즘)는 대표적인 대칭키 블록 암호 방식입니다. 대칭키 암호에서는 하나의 동일한 키를 사용해 평문을 암호화하고, 그 암호문을 다시 복호화할 수 있습니다.
공개키 기반의 비대칭 암호화 방식과 달리, IDEA는 암호화하는 쪽과 복호화하는 쪽이 서로 같은 비밀키를 공유해야 합니다. 이 비밀키는 외부에 노출되지 않도록 암호화 당사자만 알고 있어야 합니다.
IDEA는 특허가 등록되어 있으면서도 누구나 활용할 수 있는 블록 암호화 알고리즘으로, 전송 중이거나 저장된 정보를 제3자의 불법적인 접근으로부터 효과적으로 보호할 수 있습니다.
IDEA 개발의 핵심 목표는 모든 보안 요구 사항을 충족하는 군사적 수준의 강도와 명확한 하드웨어·소프트웨어 구현 용이성이었습니다. 이러한 특성 덕분에 IDEA는 여러 금융권 및 산업 분야의 응용 프로그램에서 폭넓게 사용되어 왔습니다.
IDEA의 라운드 수: 총 8라운드
IDEA는 총 8개의 라운드(round)로 구성되어 있습니다. 각 라운드에서는 4개의 데이터 블록을 대상으로 6개의 키를 사용해 일련의 연산을 수행합니다. 이 과정에는 곱셈(multiplication), 덧셈(addition), 배타적 논리합(XOR)이라는 세 가지 수학적 연산이 활용됩니다.
IDEA 한 라운드의 상세 연산 과정
| 1단계: P1과 K1을 곱셈(Multiply *)합니다. |
| 2단계: P2와 K2를 덧셈(Add *)합니다. |
| 3단계: P3와 K3를 덧셈(Add *)합니다. |
| 4단계: P4와 K4를 곱셈(Multiply *)합니다. |
| 5단계: 1단계와 3단계의 결과를 XOR합니다. |
| 6단계: 2단계와 4단계의 결과를 XOR합니다. |
| 7단계: 5단계의 결과에 K5를 곱셈(Multiply *)합니다. |
| 8단계: 6단계와 7단계의 결과를 덧셈(Add *)합니다. |
| 9단계: 8단계의 결과에 K6를 곱셈(Multiply *)합니다. |
| 10단계: 7단계와 9단계의 결과를 덧셈(Add *)합니다. |
| 11단계: 1단계와 9단계의 결과를 XOR합니다. |
| 12단계: 3단계와 9단계의 결과를 XOR합니다. |
| 13단계: 2단계와 10단계의 결과를 XOR합니다. |
| 14단계: 4단계와 10단계의 결과를 XOR합니다. |
모듈러 연산의 이해
각 라운드에서 사용되는 Add *와 Multiply *는 일반적인 덧셈·곱셈이 아닙니다. 덧셈은 216, 즉 65536을 법으로 하는 모듈러 덧셈이며, 곱셈은 216+1, 즉 65537을 법으로 하는 모듈러 곱셈입니다.
예를 들어, 일반적인 덧셈을 수행하면 결과값이 17비트(예: 11111111011000001)가 될 수 있습니다. 하지만 다음 라운드의 출력으로는 16비트만 허용되므로, 이 값을 16비트 숫자로 줄여야 합니다. 이를 위해 해당 값(십진수로 130753)에 65536을 법으로 하는 나머지 연산을 적용하면 65217이 되고, 이는 이진수로 1111111011000001에 해당하는 16비트 숫자이므로 연산 체계에 정확히 들어맞습니다.
입력, 서브키, 그리고 중간 출력
입력 블록은 P1부터 P4까지로 표시되고, 서브키는 K1부터 K6까지로 표시됩니다. 이 단계의 출력은 C1~C4가 아닌 R1~R4로 표시되는데, 그 이유는 아직 최종 암호문(ciphertext)이 아니기 때문입니다. R1~R4는 중간 출력값으로, 이후 남은 라운드들과 출력 변환(output transformation) 단계에서 추가로 처리됩니다.