블록 암호를 설계하는 방식으로 크게 Feistel 구조와 SPN 구조로 나눌 수 있다. Feistel 구조는 암호 및 복호 알고리즘이 같은 구조이고, SPN구조는 암호 및 복호 알고리즘이 다르다. 본 논문에서는 암호와 복호 과정이 동일한 SPN 구조 블록 암호 알고리즘을 제안한다. 즉 SPN 구조 전체를 짝수인 N 라운드로 구성하고 1 라운드부터 N/2라운드까지는 정함수를 사용하고, (N/2)+1 라운드부터 N 라운드까지는 역함수를 사용한다. 또한 정함수 단과 역함수 단 사이에 대칭 블록을 구성하는 대칭 단을 삽입한다. 본 논문에서 정함수로는 안전성이 증명된 AES의 암호 알고리즘을, 역함수로는 AES의 복호 알고리즘을 사용하고, 대칭 단은 32 비트 회전과 간단한 논리연산을 사용하여 비선형성을 증가시켜 바이트 또는 워드 단위의 공격에 강하게 한다. 본 논문에서 제안한 암호와 복호가 동일한 대칭 구조 SPN 알고리즘은 하드웨어 구성이 간단한 장점을 가지므로 제한적 하드웨어 및 소프트웨어 환경인 스마트카드와 전자 칩이 내장된 태그와 같은 RFID 환경에서 안전하고 효율적인 암호를 구성할 수 있다.
블록 암호를 설계하는 방식으로 크게 Feistel 구조와 SPN 구조로 나눌 수 있다. Feistel 구조는 암호 및 복호 알고리즘이 같은 구조이고, SPN구조는 암호 및 복호 알고리즘이 다르다. 본 논문에서는 암호와 복호 과정이 동일한 SPN 구조 블록 암호 알고리즘을 제안한다. 즉 SPN 구조 전체를 짝수인 N 라운드로 구성하고 1 라운드부터 N/2라운드까지는 정함수를 사용하고, (N/2)+1 라운드부터 N 라운드까지는 역함수를 사용한다. 또한 정함수 단과 역함수 단 사이에 대칭 블록을 구성하는 대칭 단을 삽입한다. 본 논문에서 정함수로는 안전성이 증명된 AES의 암호 알고리즘을, 역함수로는 AES의 복호 알고리즘을 사용하고, 대칭 단은 32 비트 회전과 간단한 논리연산을 사용하여 비선형성을 증가시켜 바이트 또는 워드 단위의 공격에 강하게 한다. 본 논문에서 제안한 암호와 복호가 동일한 대칭 구조 SPN 알고리즘은 하드웨어 구성이 간단한 장점을 가지므로 제한적 하드웨어 및 소프트웨어 환경인 스마트카드와 전자 칩이 내장된 태그와 같은 RFID 환경에서 안전하고 효율적인 암호를 구성할 수 있다.
Feistel and SPN are the two main structures in designing a block cipher algorithm. Unlike Feistel, an SPN has an asymmetric structure in encryption and decryption. In this paper we propose an SPN algorithm which has a symmetric structure in encryption and decryption. The whole operations in our SPN ...
Feistel and SPN are the two main structures in designing a block cipher algorithm. Unlike Feistel, an SPN has an asymmetric structure in encryption and decryption. In this paper we propose an SPN algorithm which has a symmetric structure in encryption and decryption. The whole operations in our SPN algorithm are composed of the even numbers of N rounds where the first half of them, 1 to N/2, applies function and the last half of them, (N+1)/2 to N, employs inverse function. Symmetry layer is executed to create a symmetry block in between function layer and inverse function layer. AES encryption and decryption algorithm, whose safety is already proved, are exploited for function and inverse function, respectively. In order to be secure enough against the byte or word unit-based attacks, 32bit rotation and simple logical operations are performed in symmetry layer. Due to the simplicity of the proposed encryption and decryption algorithm in hardware configuration, the proposed algorithm is believed to construct a safe and efficient cipher in Smart Card and RFID environments where electronic chips are built in.
Feistel and SPN are the two main structures in designing a block cipher algorithm. Unlike Feistel, an SPN has an asymmetric structure in encryption and decryption. In this paper we propose an SPN algorithm which has a symmetric structure in encryption and decryption. The whole operations in our SPN algorithm are composed of the even numbers of N rounds where the first half of them, 1 to N/2, applies function and the last half of them, (N+1)/2 to N, employs inverse function. Symmetry layer is executed to create a symmetry block in between function layer and inverse function layer. AES encryption and decryption algorithm, whose safety is already proved, are exploited for function and inverse function, respectively. In order to be secure enough against the byte or word unit-based attacks, 32bit rotation and simple logical operations are performed in symmetry layer. Due to the simplicity of the proposed encryption and decryption algorithm in hardware configuration, the proposed algorithm is believed to construct a safe and efficient cipher in Smart Card and RFID environments where electronic chips are built in.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 AES 공모 프로젝트에 의해 선택된 SPN 구조의 대표적인 블록 암호 알고리즘인 AES의암호, 복호 알고리즘이 서로 다르다는 단점을 간단한논리 연산과 자리바꿈으로 구성된 대칭 단을 적용하여 암호, 복호 알고리즘이 동일한 SPN 구조 블록 암호 알고리즘을 제안했다. 즉 AES의 전체 라운드 중 1 라운드에서 N/2 라운드까지는 AES의 암호 알고리즘을 적용하고, (N/2)+l 라운드부터 N 라운드까지는 AES의 복호 알고리즘을 적용하면서 암호 단과 복호단 사이에 하나의 독립적인 라운드인 대칭 단을 적용했다.
본 논문에서는 암호와 복호 과정이 동일한 SPN 구조 블록 암호 알고리즘을 제안한다. 즉, SPN 구조알고리즘의 전체를 짝수인 N 라운드로 구성하고, 1라운드부터 N/2 라운드까지는 정함수를 사용하고, (N/2) + 1 라운드부터 N 라운드까지는 역함수를 사용한다.
가설 설정
1 라운드 초기 상태에서 하나의 바이트만을 공격하고 다른 바이트들은 공격하지 않는 경우를 상정했다. 그림 3에서 변화가 발생하는 바이트를 ‘X’로 표시했다.
표1에서는 대칭 단의 확산과정을 정확하게 추론할 수 없으므로 최악의 경우를 상정하여 6 라운드에서 하나의 S-박스만이 활성화되는 것으로 가정했다. 이 경우에 52개의 S-박스가 활성화됨으로 AES의 55개 S-박스와 비교해서 유사한 안정성을 가지는 것으로 평가된다.
제안 방법
AES의 암호화 과정에서 라운드 함수를 적용하기전에 화이트닝 단계로서 평문과 라운드 키 덧셈을 먼저 적용하고 라운드 함수를 수행한다. 그리고 마지막 라운드는 MixColumnO 함수를 제외하고 라운드함수를 수행한다.
Schemes for Signatures. Integrity, and Encr邛ption)[10] 의 두 번째 라운드에서 선택된 CamelliaHU의 FL/FI:1 함수를 참조하여 32비트 회전(Rotation과 AND, OR 논리 연산을 사용하여 비선형을 증가시키고 바이트 또는 워드 단위 공격에 강하게 했다. 제안한 대칭 구조 SPN 블록 암호 알고리즘은 암호와 복호 알고리즘이 동일하며 본래 SPN의 안정성을 유지하면서 하드웨어 구현이 간단해진다는 장점을 가진다.
본 논문에서 제안하는 대칭 단 구조는 간단한 논리 연산과 자리바꿈으로 구성한다. 전체 진행 알고리즘에서 전반부 반은 AES 암호 알고리즘을 그리고 후반부 반은 AES 복호 알고리즘을 그대로 적용하면 바이트 단위로 움직 이는 ShiftRowO 함수의 확산은 제자리로 돌아오게 되고 이것은 특정 바이트의 평문과 암호문의 위치가 동일하게 되어 어떤 공격의 단서를 제공할 가능성이 있다.
부정차분분석 [1 기은 바이트 단위로 연산이 적용되는 암호에서 바이트 패턴이 서로 다른 경우 T, 같은 경우 '0' 으로 정의된 차이값을 가지고 분석하는 것으로 입력차분과 출력차분의 전부를 고려해야하는 차분분석보다 쉽고 정확하게 확률을 계산할 수 있다. 본 논문에서 제안한 대칭 단은 AES의 암호/복호 알고리즘이 반반씩 적용되는 중간에 삽입이 되며, AES의 암호/복호 라운드와는 다른 독립적인 불규칙라운드이다. 대칭 단이 전체 라운드 중간에 삽입될 때 암호 전체의 안전성을 나타내주는 확률뿐만 아니라 차분 path도 변하게 된다.
본 논문에서 제안한 알고리즘은 그림 3에서 설명한 과정을 거친 후에 불규칙 라운드인 Symmetry() 함수를 수행하고 이어서 AES의 복호과정을 수행 한다. 복호 알고리즘의 확산 진행 과정도 그림 3의 진행과 유사하다.
그래서 1 라운드 시작 전에 AddRound KeyO 함수를 수행하고 마지막 라운드에서는 MixColumnO 함수를 제외하고 있다. 본 논문에서는 AES와는 다르게 전체 라운드에서 중간에 불규칙적인 라운드인 대칭 단 연산을 삽입해서 수학식이 단순해지는 점을 극복하므로 AES와 같은 1 라운드 시작전에 AddRoundKeyO 함수와 마지막 라운드에서 MixColumnO 함수를 제외하는 것이 필요하지 않다.
제안한 알고리즘은 AES 알고리즘과 똑같은 SPN 구조를 이루고 있으며, 각 라운드의 확산특성이 같다. 그림 3은 제안한 알고리즘의 확산 과정을 그림으로 설명한 것이다.
알고리즘을 제안했다. 즉 AES의 전체 라운드 중 1 라운드에서 N/2 라운드까지는 AES의 암호 알고리즘을 적용하고, (N/2)+l 라운드부터 N 라운드까지는 AES의 복호 알고리즘을 적용하면서 암호 단과 복호단 사이에 하나의 독립적인 라운드인 대칭 단을 적용했다.
이론/모형
이와 같이 1-5 라운드까지 반복 수행 후 SymmetryO 함수를 수행한다. SymmetryO 함수 수행 후 AES 복호 알고리즘을 수행하고 암호 알고리즘에서 사용된 5개의 복호용 역 알고리즘을 사용한다. AES 복호 알고리즘의 적용 순서는 InvMixColumnO, InvByteSubO, InvShiftRowO, InvAddRoundKey() 함수 순으로 적용하고 6-10 라운드를 반복 수행하여 최종적으로 암호문을 만든다.
된다. 본 논문에서 제안한 알고리즘의 키 스케줄링은 AES의 키 스케줄링을 그대로 사용한다.
본 논문에서는 정함수로는 안정성이 증명된 AES의 암호 알고리즘을, 역함수로는 AES의 복호 알고리즘을 사용하고, 대칭 단은 최근에 유럽의 표준 블록암호 알고리즘 선정 프로젝트인 NESSIECNew European Schemes for Signatures. Integrity, and Encr邛ption)[10] 의 두 번째 라운드에서 선택된 CamelliaHU의 FL/FI:1 함수를 참조하여 32비트 회전(Rotation과 AND, OR 논리 연산을 사용하여 비선형을 증가시키고 바이트 또는 워드 단위 공격에 강하게 했다.
성능/효과
유사한 방법으로 Linear hull 효과 또한 대칭 단의 AND 와 OR 연산으로 감소하고 Linear hull path도 교란시킨다. 결론적으로 대칭 단의 적용은 선형분석에 저항성이 있으며, 대칭 단 이후의 라운드 분석에 어려움이 많다.
본 논문에서 제안한 대칭 단 구조를 적용한 AES 알고리즘은 Visual Studio 6.0 C 컴파일러를 사용하여 암호/복호가 정상적으로 수행되는 것을 확인했으며, 약 5MB정도의 그림, 표, 특수문자 등이 있는 일반적인 문서파일로 Windows XP, 셀러론 2.8GHz, 700M RAM의 환경에서 기존의 AES 알고리즘과 제안한 알고리즘의 수행 시간 테스트 결과는 제안한 알고리즘이 약 1.24% 정도 증가하는 것으로 나타났다. 이 것은 대칭 단에서 사용된 간단한 논리연산이 전체적인 암호/복호 알고리즘 수행에 미세한 영향을 미치지 않은 것으로 판단된다.
Integrity, and Encr邛ption)[10] 의 두 번째 라운드에서 선택된 CamelliaHU의 FL/FI:1 함수를 참조하여 32비트 회전(Rotation과 AND, OR 논리 연산을 사용하여 비선형을 증가시키고 바이트 또는 워드 단위 공격에 강하게 했다. 제안한 대칭 구조 SPN 블록 암호 알고리즘은 암호와 복호 알고리즘이 동일하며 본래 SPN의 안정성을 유지하면서 하드웨어 구현이 간단해진다는 장점을 가진다.
제안한 알고리즘은 AES과 유사한 안전성을 보여주고 있으며 암호, 복호가 동일하기 때문에 하드웨어구성이 간단해서 스마트카드 및 RFID 태그와 같은 제한된 하드웨어 및 소프트웨어 환경에서도 쉬게 구현 가능하다. 그리고 AES 이외의 다른 SPN 구조의 블록 암호 알고리즘들도 유사한 대칭 단 구조를 삽입해서 암호, 복호 알고리즘을 동일하게 구현할 수 있으므로 다른 SPN 구조의 블록 암호 설계 및 개발에도 유용한 아이디어로 사용될 것이다.
후속연구
이 경우에 52개의 S-박스가 활성화됨으로 AES의 55개 S-박스와 비교해서 유사한 안정성을 가지는 것으로 평가된다. 그러나 본 논문의 가정은 가장 보수적인 가정으로 대칭 단의 확산과정에 관한 연구는 추후 진행되어야 한다.
가능하다. 그리고 AES 이외의 다른 SPN 구조의 블록 암호 알고리즘들도 유사한 대칭 단 구조를 삽입해서 암호, 복호 알고리즘을 동일하게 구현할 수 있으므로 다른 SPN 구조의 블록 암호 설계 및 개발에도 유용한 아이디어로 사용될 것이다.
본 논문은 2007년 한국멀티미디어학회 추계 학술발표대회[12J에 발표했던 내용을 추가로 연구하여 완성했다. 본 논문의 구성은 2장에서 AES 알고리즘을 좀 더 상세히 설명하고, 3장에서는 대칭 단에 대한 자세한 설명과 4장에서 대칭 구조를 AES에 적용하고 이에 따른 안전성을 검증하고 5장에서 결론으로 끝맺 는다’
※ AI-Helper는 부적절한 답변을 할 수 있습니다.