IDEA는 블록 암호이며 64비트 일반 텍스트와 128비트 키에서 작동합니다. IDEA는 DES처럼 되돌릴 수 있습니다. 즉, 암호화 및 암호 해독에 동등한 알고리즘을 사용할 수 있습니다. IDEA는 암호화를 위해 확산과 혼란이 모두 필요합니다.
64비트 일반 텍스트는 16비트 일반 텍스트(P1 P4까지 ). 이들은 첫 번째 라운드에 입력됩니다. 그런 라운드가 8개 있습니다. 키는 128비트를 포함합니다. 각 라운드에서 원래 키에서 6개의 하위 키가 생성되며 이러한 각 하위 키에는 16비트가 포함됩니다.
첫 번째 라운드의 경우 키 K1을 가질 수 있습니다. K6으로 , 두 번째 라운드의 경우 keysK7을 가질 수 있습니다. K12까지 그리고 드디어 마지막 라운드. 마지막 단계에는 4개의 하위 키(K49 K52로 ).
최종 출력은 출력 변환 단계에서 생성된 출력입니다. 블록C1 C4로 연결되어 최종 출력을 형성합니다.
라운드 - IDEA에는 8개의 라운드가 있습니다. 각 라운드에는 6개의 키를 사용하여 4개의 데이터 블록에 대한 일련의 작업이 포함됩니다. 각 라운드의 다음 단계에서 더하기 *와 곱하기 *는 쉬운 더하기와 곱하기가 아니라 더하기 모듈 2 16 입니다. 예:65536 및 곱셈 모듈 2 16 + 1 나. 이자형. , 65537.
라운드에 대한 하위 키 생성 -
-
첫 번째 라운드에서 키의 비트 위치 1-96이 사용됩니다. 비트 97-128은 사용되지 않은 상태로 남아 있습니다. 2라운드에 배정됩니다.
-
라운드 두 번째 비트 97-128이 먼저 사용되므로 25비트의 원형 왼쪽 시프트가 나타나고 26-89의 새 비트가 사용됩니다. 비트 위치 90-128 및 1-25는 사용되지 않은 상태로 유지됩니다.
-
세 번째 라운드에서 사용되지 않은 비트 90-128 및 1-25가 다시 처음 사용되며 25비트의 원형 왼쪽 시프트가 나타나고 비트 위치 51-82가 사용됩니다. 비트 위치 83-128 및 1-50은 사용되지 않은 상태로 유지됩니다.
-
네 번째 라운드에서는 비트 83-128 및 1-50이 사용됩니다.
-
다섯 번째 라운드에서는 25비트의 원형 왼쪽 시프트가 나타나고 비트 위치 76-128 및 1-43이 사용됩니다. 비트 위치 44-75는 사용되지 않은 상태로 유지됩니다.
-
여섯 번째 라운드에서는 다섯 번째 라운드의 사용되지 않은 비트가 사용되며 25비트의 왼쪽 순환 시프트가 발생하여 비트 위치 37-100이 사용되지 않습니다.
-
일곱 번째 라운드에서는 여섯 번째 라운드의 사용되지 않은 비트, 즉 37-100이 먼저 사용되고 25비트의 원형 왼쪽 시프트가 비트 위치 126-128 및 1-29가 나타납니다. Bit30-125는 사용되지 않습니다.
-
7라운드에서 사용되지 않은 비트 위치 30-125가 사용되고 키가 비활성화됩니다.
출력 변환 - 일회성 작업입니다. 8 말에 진행됩니다. 둥근. 따라서 64비트 값은 4개의 하위 블록으로 나뉩니다(예:R1 R4로 ) 및 네 개의 하위 키가 여기에 사용됩니다.
IDEA 복호화 - 복호화 과정은 암호화 과정과 동일합니다. 하위 키의 생성 및 디자인에 약간의 변경이 있습니다. 암호 해독 하위 키는 암호화 하위 키와 반대입니다.