ICE(암호화기)

ICE (cipher)
얼음
ICE (cipher) InfoBox Diagram.png
ICE Feistel 함수
일반
디자이너매튜 콴
초판1997
유래DES
암호 상세
키 사이즈64비트(ICE), 64×n비트(ICE-n)
블록 크기64비트
구조.파이스텔 네트워크
라운드16(ICE), 8(Thin-ICE), 16×n(ICE-n)
최고의 퍼블릭 암호 분석
차분 암호해석은 복잡도56 2의 ICE 16라운드 중 15라운드를 파괴할 수 있습니다.Thin-ICE는 95%의 성공 확률로 2개의 선택된 평문을 사용하여27 분해할 수 있습니다.

암호학에서 ICE(Information Concealment Engine)는 1997년 Kwan이 발표한 대칭키 블록 암호입니다.이 알고리즘은 DES와 구조가 비슷하지만 라운드 함수에 키에 의존하는 비트 순열을 추가합니다.키에 의존하는 비트 순열은 소프트웨어에서 효율적으로 구현됩니다.ICE 알고리즘은 특허의 대상이 되지 않으며 소스 코드는 퍼블릭도메인에 배치되어 있습니다.

ICE는 블록사이즈가 64비트인 Feistel 네트워크입니다.표준 ICE 알고리즘은 64비트 키를 사용하며 16라운드로 구성됩니다.고속 모델인 Thin-ICE는 8라운드만 사용합니다.오픈 엔드 베리안트 ICE-n은 64n 비트키를 가진 16n 라운드를 사용합니다.

Van Rompay 외 연구진(1998)은 ICE에 차등 암호 분석을 적용하려고 시도했다.Thin-ICE에 대한 공격에 대해 설명했습니다.Thin-ICE는 성공 확률이 25%인 2개의 선택된 평문을 사용하여23 비밀키를 회복합니다.선택한 두 개의 일반 텍스트를 사용하면 확률을27 95%로 높일 수 있습니다.ICE의 표준 버전의 경우 16라운드 중 15라운드에 대한 공격이 발견되었으며, 2개의 작업과 최대56 2개의 평문을 선택해야56 했다.

구조.

ICE는 16라운드의 Feistel 네트워크입니다.각 라운드는 32→32비트 F 함수를 사용하며, 이 함수는 60비트의 핵심 자료를 사용합니다.

F 함수의 구조는 DES와 다소 유사합니다.입력은 중복된 필드를 취함으로써 확장되고, 확장된 입력은 키로 XOR되며, 결과는 확장을 취소하는 다수의 축소 S박스에 공급됩니다.

먼저 ICE는 입력을 4개의 겹치는 10비트 값으로 나눕니다.첫 번째 10비트 값과 다음 값 6~15, 14~23 및 22~31의 입력 비트 30, 31 및 0~7입니다.

두 번째는 ICE 고유의 키 배열입니다.20비트 순열 서브키를 사용하면 40비트 확장 입력의 절반 간에 비트가 교환됩니다(서브키 비트i가 1이면 비트i와 i+20이 교환됩니다).

셋째, 40비트 값은 40개의 서브키 비트가 더 있는 XOR이 됩니다.

넷째, 이 값은 4개의 10비트 S박스를 통해 공급되며, 각 S박스는 8비트의 출력을 생성합니다.(이것은 DES의 8 6→4비트 S박스보다 훨씬 큽니다.)

다섯째, S박스 출력 비트는 각 S박스의 출력이 32비트 워드의 각 4비트 필드로 라우팅되도록 배열되며, 여기에는 다음 라운드의 확장 중에 중복되는 8개의 "오버랩" 비트 중 2개가 포함됩니다.

DES와 마찬가지로 소프트웨어 구현은 일반적으로 4개의 1024×32비트 룩업 테이블에 미리 설치된 S박스를 저장합니다.

레퍼런스

  • Matthew Kwan, ICE 암호화 알고리즘 설계, Fast Software Encryption 1997, 페이지 69–82 [1].
  • Bart van Rompay, Lars R. Knudsen 및 Vincent Rijmen, ICE 암호화 알고리즘의 차분 암호 분석, Fast Software Encryption 1998, pp270–283(PDF).

외부 링크