{{위키데이터 속성 추적}}
{{Infobox block cipher
| name          = 투피시
| image         = [[파일:Twofishalgo.svg|320px|center]]
| caption       = 투피시 알고리즘
| designers     = [[브루스 슈나이어]]
| publish date  = 1998
| derived from  = [[블로피시]], [[SAFER]], [[스퀘어 (암호)|스퀘어]]
| derived to    =
| related to    = [[스리피시]]
| certification = [[AES 파이널리스트]]
| key size      = 128, 192, 256비트
| block size    = 128비트
| structure     = [[파이스텔 암호]]
| rounds        = 16
| cryptanalysis = [[:en:Truncated differential cryptanalysis]] requiring roughly 2<sup>51</sup> chosen plaintexts.<ref name="two-fish-analysis-shah">
    {{저널 인용
    |author1=Ship Moriai |author2=Yiqun Lisa Yin|author2-link= Yiqun Lisa Yin | title=Cryptanalysis of Twofish (II)
    | year=2000
    | url=http://www.schneier.com/twofish-analysis-shiho.pdf
    | accessdate=2013-01-14
    }}</ref>

[[:en:Impossible differential attack]] that breaks 6 rounds out of 16 of the 256-bit key version using 2<sup>256</sup> steps.<ref name="Niels1999">{{저널 인용
    | author=Niels Ferguson
    | title=Impossible differentials in Twofish
    | date=1999-10-05
    | url=https://www.schneier.com/paper-twofish-impossible.html
    | format=[[PDF]]
    | accessdate=2013-01-14
    }}</ref>
}}
[[암호학]]에서 '''투피시'''(Twofish)는 [[블록 크기]]가 128[[비트 (단위)|비트]], [[키 크기]]가 최대 256비트인 [[대칭 키 암호|대칭 키]] [[블록 암호]]이다. [[고급 암호화 표준 프로세스|고급 암호화 표준 대회]]의 5개의 파이널리스트 가운데 하나이지만 표준화 대상으로 선정되지는 못했다. 투피시는 초기의 블록 암호 [[블로피시]]와 관련이 있다.

투피시의 구별되는 특징으로는 미리 연산된 키 의존 [[S-상자]]들의 이용, 그리고 상대적으로 복잡한 [[키 스케줄]]을 들 수 있다. n비트 키의 절반은 실제 암호화 키로 사용되며 나머지 n비트 키의 절반은 암호 알고리즘(키 의존 S 상자들) 수정에 사용된다. 투피시는 다른 디자인들로부터 일부 요소들을 차용하고 있는데, 이를테면 [[SAFER]] 계열 암호의 [[의사 아다마르 변환]]<ref>{{웹 인용 |url=https://www.cs.rit.edu/~ark/spring2013/482/team/u3/report.pdf |archive-date=2017-09-26 |title=Team Men In Black Presents: TwoFish |archiveurl=https://archive.today/20170926213011/https://www.cs.rit.edu/~ark/spring2013/482/team/u3/report.pdf |확인날짜=2020-01-26 |url-status= }}</ref>(PHT)이 있다. 투피시는 [[데이터 암호화 표준|DES]]와 같은 [[파이스텔 암호|파이스텔 구조]]를 지니고 있다. 투피시는 또한 [[MDS 매트릭스|MDS]] 매트릭스를 채용하고 있다.

2000년으로 거슬러 올라가보면 대부분의 [[소프트웨어]] 플랫폼에서 투피시는 128비트 [[키 (암호)|키]]에 대해 [[고급 암호화 표준|Rijindael]]([[고급 암호화 표준]]을 위해 선정된 알고리즘)보다 조금 더 느렸으나 256비트 키에 대해서는 조금 더 빨랐다. 그러나 Rijndael이 고급 암호화 표준으로 선정되면서 투피시는 [[AES-NI]]를 지원하는 CPU에서 Rijndael보다 속도가 훨씬 더 느려지게 되었다.<ref>{{저널 인용
|author1=Bruce Schneier |author2=Doug Whiting | title=A Performance Comparison of the Five AES Finalists
| date=2000-04-07
| url=https://www.schneier.com/paper-aes-comparison.html
| format=[[PDF]]/[[포스트스크립트]]
| accessdate=2013-01-14
}}</ref>

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

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

== 같이 보기 ==
* [[스리피시]]
* [[고급 암호화 표준]]
* [[데이터 암호화 표준]]

== 각주 ==
{{각주}}

== 문헌 ==
* {{저널 인용 |author1=Bruce Schneier |author2=John Kelsey |author3=Doug Whiting |author4=David Wagner |author5=Chris Hall |author6=Niels Ferguson |title=The Twofish Encryption Algorithm |date=1998-06-15 |url=https://www.schneier.com/paper-twofish-paper.html |format=[[PDF]]/[[포스트스크립트]] |accessdate=2013-01-14 |보존url=https://web.archive.org/web/20130308063751/http://www.schneier.com/paper-twofish-paper.html |보존날짜=2013-03-08 |url-status=dead }}
* {{서적 인용
     |author1=Bruce Schneier |author2=John Kelsey |author3=Doug Whiting |author4=David Wagner |author5=Chris Hall |author6=Niels Ferguson | title = The Twofish Encryption Algorithm: A 128-Bit Block Cipher
     | publisher = [[존 와일리 & 선즈]]
     | date = 1999-03-22
     | location = [[뉴욕]]
     | isbn = 0-471-35381-7}}

== 외부 링크 ==
* [https://www.schneier.com/twofish.html Twofish web page, with full specifications, free source code, and other Twofish resources] by [[브루스 슈나이어]]
* [http://embeddedsw.net/Cipher_Reference_Home.html 256 bit ciphers – TWOFISH reference implementation and derived code]
* [https://www.schneier.com/twofish-products.html Products that Use Twofish] by Bruce Schneier
* [https://groups.google.com/d/msg/sci.crypt/eDStE9si4gc/VwAzSXEVbm8J Better algorithm: Rijndael or TwoFish?] by [[:en:sci.crypt]]
* [http://www.users.zetnet.co.uk/hopwood/crypto/scan/cs.html Standard Cryptographic Algorithm Naming]: Twofish

{{블록 암호}}

[[분류:파이스텔 암호]]