개구리
FROG일반 | |
---|---|
디자이너 | 디아넬로스 게오구디스, 데미안 레루, 빌리 시몬 차베스 |
초판 | 1998 |
암호 상세 | |
키 사이즈 | 128, 192 또는 256비트 |
블록 크기 | 128비트 |
라운드 | 8 |
최고의 퍼블릭 암호 분석 | |
일부 취약한 키에 대한 차등 및 선형 공격 |
암호학에서 FROG는 Georgoudis, Leroux 및 Chaves가 작성한 블록 암호입니다.이 알고리즘은 8 ~128 바이트의 임의의 블록사이즈로 동작할 수 있으며 5 ~125 바이트의 키사이즈를 지원합니다.알고리즘은 8라운드로 구성되며 매우 복잡한 주요 일정이 있습니다.
1998년 코스타리카의 소프트웨어 회사인 TecApro에 의해 AES 공모전에 Advanced Encryption Standard 후보로서 제출되었습니다.Wagner 등(1999)은 FROG에 대한 다수의 약한 키 클래스를 발견했다.기타 문제로는 키 셋업이 매우 느리고 암호화가 비교적 느리다는 점이 있습니다.FROG는 최종 후보로 선정되지 않았다.
설계 철학
일반적으로 블록 암호는 암호문을 생성하기 위해 일반 텍스트 및 개인 키에 고정된 일련의 수학 연산자 또는 논리 연산자(추가, XOR 등)를 적용합니다.공격자는 이 지식을 사용하여 일반 텍스트를 복구할 수 있는 암호의 취약점을 검색합니다.
암호 자체가 알려져 있음에도 불구하고 FROG의 설계 철학은 원시 연산의 정확한 순서를 숨기는 것입니다.다른 암호는 암호 키를 데이터(암호 텍스트를 생성하기 위해 일반 텍스트와 결합됨)로만 사용하는 반면, FROG는 이 키를 데이터 및 이러한 데이터를 결합하는 방법에 대한 명령으로 사용합니다.사실상 키의 확장 버전이 FROG에 의해 프로그램으로 사용됩니다.FROG 자체는 이 키에 의존하는 프로그램을 일반 텍스트에 적용하여 암호 텍스트를 생성하는 인터프리터 역할을 합니다.암호 해독은 암호 텍스트에 같은 프로그램을 반대로 적용함으로써 작동합니다.
묘사
PROG 키 스케줄(또는 내부 키)의 길이는 2304 바이트입니다.빈 플레인 텍스트에 FROG를 반복적으로 적용하여 재귀적으로 생성됩니다.결과 블록은 8개의 레코드로 구성된 올바른 형식의 내부 키를 생성하도록 처리됩니다.FROG는 8라운드를 가지며, 각 라운드의 운영은 내부 키에 있는 1개의 레코드로 코드화된다.모든 작업은 바이트 단위로 이루어지며 XOR 및 [1]대체로 구성됩니다.
PROG는 구현이 매우 용이합니다(레퍼런스 C 버전은 약 150줄의 코드만 있습니다).PROG 실장에 필요한 코드의 대부분은 비밀 내부 키를 생성하는데 사용됩니다.내부 암호 자체는 매우 짧은 코드 조각입니다.완전한 PROG 암호화 및 복호화를 수행하는 22개의 기계 명령어 조립 루틴을 작성할 수 있습니다.8비트 프로세서에서는 바이트 수준의 명령만 사용하기 때문에 구현이 정상적으로 실행됩니다.비트 고유의 조작은 사용되지 않습니다.내부 키가 계산되면 알고리즘은 매우 빠릅니다.8086 어셈블러를 사용하여 구현된 버전은 200MHz Pentium PC에서 실행 시 초당 2.2MB 이상의 처리 속도를 달성합니다.
보안.
FROG의 설계 이념은 예기치 않은 공격이나 알려지지 않은 공격으로부터 방어하는 것입니다.그러나 키가 암호화 프로그램으로 사용된다는 것은 일부 키가 취약한 암호화 프로그램에 해당될 수 있음을 의미합니다.David Wagner 등은 키 중 2개가 약하며, 이 경우 선택된 2개의 평문으로 키가58 깨질 수 있다는 것을 발견했다−33.
FROG의 또 다른 단점은 복호화 함수가 암호화 함수에 비해 확산 속도가 훨씬 느리다는 것입니다.여기서−29 2개의 키는 약하며 2개의 선택된 암호문을 사용하여36 깨질 수 있습니다.
메모들
레퍼런스
- 데이비드 와그너, 닐스 퍼거슨, 브루스 슈나이어, FROG의 암호 분석, 제2회 AES 후보 회의 진행, pp175–181, NIST, 1999 [1].
- Dianelos Georoudis, Damian Leroux 및 Billy Simon Chaves, The FROG Encryption Algorithm, 1998년 6월 15일 [2].