암호학에서 투피시(Twofish)는 블록 크기가 128비트, 키 크기가 최대 256비트인 대칭 키 블록 암호이다. 고급 암호화 표준 대회의 5개의 파이널리스트 가운데 하나이지만 표준화 대상으로 선정되지는 못했다. 투피시는 초기의 블록 암호 블로피시와 관련이 있다.

투피시
투피시 알고리즘
일반
설계자브루스 슈나이어
최초 출판일1998
기원블로피시, SAFER, 스퀘어
관련 방식스리피시
인증AES 파이널리스트
암호 상세 정보
키 크기128, 192, 256비트
블록 크기128비트
구조파이스텔 암호
라운드 수16
최고 공개 암호 해독
en:Truncated differential cryptanalysis requiring roughly 251 chosen plaintexts.[1] en:Impossible differential attack that breaks 6 rounds out of 16 of the 256-bit key version using 2256 steps.[2]

투피시의 구별되는 특징으로는 미리 연산된 키 의존 S-상자들의 이용, 그리고 상대적으로 복잡한 키 스케줄을 들 수 있다. n비트 키의 절반은 실제 암호화 키로 사용되며 나머지 n비트 키의 절반은 암호 알고리즘(키 의존 S 상자들) 수정에 사용된다. 투피시는 다른 디자인들로부터 일부 요소들을 차용하고 있는데, 이를테면 SAFER 계열 암호의 의사 아다마르 변환[3](PHT)이 있다. 투피시는 DES와 같은 파이스텔 구조를 지니고 있다. 투피시는 또한 MDS 매트릭스를 채용하고 있다.

2000년으로 거슬러 올라가보면 대부분의 소프트웨어 플랫폼에서 투피시는 128비트 에 대해 Rijindael(고급 암호화 표준을 위해 선정된 알고리즘)보다 조금 더 느렸으나 256비트 키에 대해서는 조금 더 빨랐다. 그러나 Rijndael이 고급 암호화 표준으로 선정되면서 투피시는 AES-NI를 지원하는 CPU에서 Rijndael보다 속도가 훨씬 더 느려지게 되었다.[4]

투피시의 설계자는 브루스 슈나이어, John Kelsey, Doug Whiting, David Wagner, 크리스 홀, Niels Ferguson이다.

투피시 암호는 특허를 받지 않았으며 참조 구현체퍼블릭 도메인으로 배치되어 있다. 그 결과, 투피시 알고리즘은 어떠한 경우에라도 제약 없이 이용이 가능하다. OpenPGP 표준 (RFC 4880)에 포함된 몇 안 되는 암호들 가운데 하나이다. 그러나 투피시는 더 오래 사용되어 온 블로피시에 비해 더 많이 사용되는 편은 아니다.

같이 보기 편집

각주 편집

  1. Ship Moriai; Yiqun Lisa Yin (2000). “Cryptanalysis of Twofish (II)” (PDF). 2013년 1월 14일에 확인함. 
  2. Niels Ferguson (1999년 10월 5일). “Impossible differentials in Twofish” (PDF). 2013년 1월 14일에 확인함. 
  3. “Team Men In Black Presents: TwoFish” (PDF). 2017년 9월 26일에 원본 문서 (PDF)에서 보존된 문서. 2020년 1월 26일에 확인함. 
  4. Bruce Schneier; Doug Whiting (2000년 4월 7일). “A Performance Comparison of the Five AES Finalists” (PDF/포스트스크립트). 2013년 1월 14일에 확인함. 

문헌 편집

외부 링크 편집