스리피쉬

Threefish
스리피쉬
Skein permutation.png
일반
디자이너브루스 슈나이어, 닐스 퍼거슨, 스테판 럭스, 더그 휘팅, 미히르 벨라레, 코노 타다요시, 존 캘러스, 제시 워커
초판2008
관련 정보복어, 복어
암호 상세
키 사이즈256, 512 또는 1024 비트
(키 크기는 블록 크기와 동일)
블록 크기256, 512 또는 1024 비트
라운드72(1024비트 블록사이즈의 경우 80)
속도코어 2에서는 6.1 cpb.[1]

ThreefishNIST 해시 함수 경쟁 항목인 Skin 해시 함수의 일부로 설계된 대칭조정 가능 블록 암호입니다.Threefish는 캐시 타이밍 [1]공격을 피하기 위해 S박스나 기타 테이블 룩업을 사용하지 않습니다.비선형이란 배타적 OR을 번갈아 추가하는 것입니다.그런 점에서 Salsa20, TEA, SHA-3 후보 CubeHashBLAKE와 유사합니다.

Threefish and the Skin 해시 함수는 Bruce Schneier, Niels Ferguson, Stefan Lucks, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon Callas, Jesse Walker가 디자인했습니다.

암호 설명

스리피시는 64비트의 단어(부호 없는 리틀 엔디언 정수)에 대해 작동합니다. {,8, { w\ {, \ } the 、 andtexttext and and and and and and and and and and and and and단어 및 키워드의 수입니다.수정은 두 단어로 구성됩니다.모든 덧셈과 뺄셈은 64 2로 정의됩니다.

주요 일정

threefish는 r{\ r 암호화하고 4 +(\ { +)의 다른 라운드 키를 합니다.4라운드마다 및 첫 번째 라운드 전에\w의 키워드가 ww의 데이터 워드에 추가됩니다.라운드 키를 계산하기 위해 원래 k0, 1, -1({},1}), tweak 1에 추가 추가합니다.또, tweak tways 에 추가 w 2 t_1})를 합니다

임의의 C C 목적은 다른 키워드 사이의 관계를 하는 일부 공격을 저지하는 것입니다.

동그라미 s {\k_는 다음과 같이 정의됩니다.

서 s , / s는 라운드 i({ 사용되는 라운드의 숫자입니다.

혼합 기능

삼치 믹스 기능

mix 함수는 단어(0 , 1){ ,1})의 튜플을 가져와서 다른 단어 0 , 1)의 튜플을 반환합니다함수는 다음과 같이 정의됩니다.

d, \ 빠른 확산을 위해 선택된 고정 회전 상수 세트입니다.

퍼머트

치환 단계는 일정한 패턴에 따라 단어의 위치를 바꿉니다.이 단계에서는 비트 레벨 순열은 달성되지 않지만 MIX 함수는 비트 단위로 [citation needed]회전하는 형태로 비트 레벨 순열을 제공하기 때문에 이 순열이 필요하지 않습니다.MIX 함수의 Permute 스텝 및 회전 상수는 데이터 [citation needed]블록의 모든 비트가 전체적으로 확산되도록 선택됩니다.

이 순열은 고정되고 키와 독립적이기 때문에 키를 계산하는 데 필요한 시간은 키 또는 일반 텍스트에 대한 정보를 제공하지 않습니다.대부분의 최신 마이크로프로세서에서는 성능 최적화를 통해 데이터가 메모리에 저장되어 있는 위치에 따라 어레이 작업을 계산하는 데 걸리는 시간이 달라질 수 있기 때문에 이는 중요합니다.어레이 룩업이 키 또는 플레인텍스트 중 하나에 의존할 경우(AES 치환 스텝의 경우와 마찬가지로) 암호화에 필요한 시간을 조사함으로써 암호화가 타이밍 공격에 취약해질 수 있습니다.따라서 순열은 사용하는 키 또는 [citation needed]암호화된 데이터에 관계없이 동일한 방식으로 실행되도록 의도적으로 설계되었습니다.

풀 스리 피쉬 라운드

  • 4 {\ d 라운드 /,i 4, i i에 추가됩니다.
  • 혼합 함수는 단어 쌍에 적용됩니다. R 8, j{\ j 번호d {\ dj{ 0 , } { 0 , - { j \ \ , \ , / } } }에 의존합니다.
  • 단어는 동그라미 수와는 무관한 치환을 사용하여 치환된다

Threefish256 및 Threefish512는 이 를 r , d= 적용합니다.Threefish 1024는 80회( ,,… , d , 1 , 79 )를 적용합니다.

최종 작업

모든 라운드가 적용되면 마지막 라운드 키워드 k / , 워드에 추가되고 워드가 바이트 문자열로 다시 변환됩니다.

보안.

2010년 10월에는 회전암호해석반동공격결합한 공격이 발표되었다.스리피시-256은 72발 중 53발, 스리피시-512는 72발 중 57발에 대해 이미 알려진 핵심 식별자를 탑재한 공격이다.Skin 해시 함수에도 영향을 줍니다.[2]이는 앞서 2월 발표된 39라운드, 42라운드를 각각 [3]돌파한 공격의 후속작이다.이 공격에 대응하여 Skin 팀은 Threefish에서 사용되는 회전 상수와 이에 따라 NIST 해시 함수 경합 [1]3라운드의 주요 일정 상수를 조정했습니다.

2009년에는 축소판 Threefish 버전에 대한 관련 핵심 부메랑 공격이 발표되었습니다.32라운드 버전의 경우 시간 복잡도는 2 메모리 복잡도는 2 33라운드 버전의 경우 시간 복잡도는 2, 2 메모리 사용량이 거의 없습니다.이 공격은 Threefish의 수정 버전에도 적용됩니다.32라운드 버전의 경우 시간 복잡도는 2 메모리 복잡도는 2 33라운드 버전의 경우 시간 5 2입니다.[4] 메모리 사용량이 거의 없습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c Ferguson; et al. (2010-10-01). "The Skein Hash Function Family" (PDF).{{cite journal}}: Cite journal required (도움말) Threefish가 소개된 논문.
  2. ^ Dmitry Khovratovich; Ivica Nikolic; Christian Rechberger (2010-10-20). "Rotational Rebound Attacks on Reduced Skein". Cryptology ePrint Archive.
  3. ^ Dmitry Khovratovich & Ivica Nikolić (2010). "Rotational Cryptanalysis of ARX" (PDF). University of Luxembourg. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  4. ^ Jiazhe Chen; Keting Jia (2009-11-01). "Improved Related-key Boomerang Attacks on Round-Reduced Threefish-512". Cryptology ePrint Archive.

외부 링크