IT보안 학습

IDEA 암호화 총정리

김구티2 2023. 12. 31. 14:08

1. IDEA(International Data Encryption Algorithm) 암호화의 개념

IDEA는 DES를 대체하기 위해 등장한 것으로, 평문을 읽을 수 없는 형식으로 암호화하도록 설계된 대칭 키 블록 암호 암호화 알고리즘이다. 일반적인 블록 크기인 128 비트를 사용하고, 64비트를 입력으로 사용한다. 즉, 64비트 데이터라고 할 수 있다. IDEA는 6개의 서로 다른 하위 키를 사용하여 동일한 암호화 및 복호화 라운드를 수행하며, 출력 변환을 위해 4개의 키를 사용한다. IDEA는 XOR 연산을 포함한 일련의 수학 연산을 사용하여 평문을 암호문으로 변환한다. 이 암호는 차분 공격, 선형화 공격을 포함한 다양한 유형의 공격에 대해 매우 안전하도록 설계되었다.

 

IDEA의 강점 중 하나는 소프트웨어와 하드웨어에서의 효율적인 구현이다. 다른 알고리즘에 비해 상대적으로 빠르며 소량의 메모리와 처리 능력만 필요하다. 그래서 임베디드 시스템과 리소스가 제한된 기타 애플리케이션에서 많이 사용되고 있는 것이다. 물론, AES로 상당히 많이 대체되었긴 하지만 말이다.

 

2. IDEA 암호화

IDEA는 16 비트의 고정 길이 평문을 사용하고, 각각 4 비트씩 4개의 청크로 암호화한다.그리하여 16 비트의 암호문을 생성하고, 이때 사용되는 키의 길이는 32 비트이다. 또한 그 키는 각각 4 비트로 구성된 8개의 블록으로 나뉜다. 이 알고리즘에는 동일한 4개의 완전한 라운드와 1개의 반 라운드가 포함된다. 각 전체 라운드에는 14단계의 과정이 들어가게 된다.

 

4번의 완전한 라운드 후에 최종의 반(0.5) 라운드는 이전에 전체 라운드에서 사용된 14단계 중 처음의 4단계로만 구성된다. 이러한 라운드를 수행하려면 각 이진 표기법을 동등한 십진 표기법으로 변환하고, 작업 후 나온 결과를 해당 특정 단계의 최종 결과에 대한 이진 표현으로 다시 변환해야 한다. 

 

8개 하위 키 중 4 비트의 6개 하위 키가 각 전체 라운드에서 사용되는 반면, 4개는 0.5 라운드에서 사용된다. 따라서 4.5라운드에는 28개의 하위 키가 필요한 것이다. 주어진 키 K는 처음 8개의 하위 키를 직접 제공한다. 8개의 각 그룹 사이에서 기본 키를 왼쪽으로 6비트 회전하면, 8개의 하위 키로 구성된 추가 그룹이 생성된다. 이는 키에 대해 라운드당 1회 미만의 회전을 의미한다. 

  K1 K2 K3 K4 K5 K6
라운드 1 1101 1100 0110 1111 0011 1111
라운드 2 0101 1001 * 0001 1011 1100 1111
라운드 3 1101 0110 0111 0111 * 1111 0011
라운드 4 1111 0101 1001 1101 1100 0110 *
라운드 4.5 1111 1101 0110 0111    

*는 비트 이동을 나타낸다.

 

16 비트의 평문은  X1 || X2 || X3 || X4 , 각각 크기는 4비트이다. 32 비트의 키는 K1 ||로 표시된 8개의 하위 키로 나뉜다. K2 || K3 || K4 || K5 || K6 || K7 || K8, 역시 각각 4비트 크기이다. 14단계의 각 라운드는 세 가지 연산을 통해 다음과 같이 진행된다.

01 단계 - X1*K1
02 단계 - X2 + K2
03 단계 - X3 + K3
04 단계 - X4*K4
05 단계 - 01단계 XOR 03단계
06 단계 - 02단계 XOR 04단계
07 단계 - 05단계 결과 * K5
08 단계 - 06단계 결과 + 07단계 결과
09 단계 - 08단계 결과 * K6
10 단계 - 07단계 결과 + 09단계 결과
11 단계 - 01단계 결과 XOR 09단계 결과
12 단계 - 03단계 결과 XOR 09단계 결과
13 단계 - 02단계 결과 XOR 10단계 결과
14 단계 - 04단계 결과 XOR 10단계 결과

 

마지막 라운드 후 0.5 라운드는 다음과 같다.

01  단계 - X1*K1
02  단계 - X2 + K2
03  단계 - X3 + K3
04  단계 - X4*K4

 

그렇게 최종 블록을 얻을 수 있는 것이다.

 

예시로, 키가 1101 1100 0110 1111 0011 1111 0101 1001, 평문이 1001 1100 1010 1100인 경우, 암호문은 1011 1011 0100 1011이 된다.

3. IDEA의 문제점

ㄱ. 키 크기

IDEA는 일반적으로 안전한 것으로 간주되는 128 비트의 키 크기를 사용하긴 하지만, 일반적으로 안전한 것일뿐, 공격자가 충분한 컴퓨팅 성능을 가지고 있는 경우에 Brute Force Attack의 대상이 될 수 있다. 그래서 AES-192, 256 같은 것들에게 대체가 된 것이 아닐까.

 

ㄴ. 블록 크기

IDEA에는 64비트의 고정 블록 크기가 있으므로 더 큰 블록 크기가 필요한 특정 애플리케이션에서는 효율성이 제한될 수 있다.

 

ㄷ. 구현 문제

모든 암호화 알고리즘과 마찬가지로 IDEA는 부채널 공격이나 구현 결함과 같은 구현 문제에 취약할 수 있다. 결국, 암호화 알고리즘을 사용할 때 신중하게 구현하는 게 중요하다는 말이다.

 

ㄹ. 가용성 저하의 미래

IDEA는 여전히 강력하고 효과적인 암호화 알고리즘으로 간주되지만, 최신 애플리케이션에서는 AES와 같은 알고리즘으로 대체되었다. 이는 IDEA 구현의 지원 및 가용성이 시간이 지남에 따라 더욱 제한될 수 있음을 의미한다.

728x90

'IT보안 학습' 카테고리의 다른 글

데이터베이스 백업 총정리  (1) 2024.01.02
랜섬웨어 총정리  (2) 2024.01.01
AES 암호화 총정리  (0) 2023.12.30
3DES 암호화 총정리  (1) 2023.12.29
데이터베이스 총정리  (2) 2023.12.29