소용돌이(해시 기능)

Whirlpool (hash function)
소용돌이
일반
디자이너빈센트 라이멘, L. M. 바레토
초판2000, 2001, 2003
유래정사각형, AES
인정.네시
세부 사항
다이제스트 사이즈512 비트
보안 클레임큰 해시섬 크기
구조.미야구치프레넬
라운드10
최고의 퍼블릭 암호 분석
2009년에는 2회 동작의120 월풀 4.5발에 대한 풀 충돌, 2회120 5.5발에 대한 세미 프리 스타트 충돌, 7.[1]5발에128 대한 세미 프리 스타트 근접 충돌을 나타내는 리바운드 어택이 발표되었습니다.

컴퓨터 과학 및 암호학에서 월풀(WIRLPOOL이라고도 함)은 암호화 해시 함수입니다.Vincent Rijmen(Advanced Encryption Standard의 공동창안자)과 2000년에 처음 기술한 Paulo S. L. M. Barreto에 의해 설계되었다.

해시는 NESSIE 프로젝트에서 권장되고 있습니다.또한 ISO/IEC 10118-3 국제 표준의 일부로 국제 표준화 기구(ISO)와 국제 전기 표준 위원회(IEC)에 의해 채택되었습니다.

설계 기능

[2]알고리즘의 이름에 영감을 준 소용돌이 은하(M51)입니다.

Walpool은 Square 블록 암호에 따라 설계된 해시이며 블록 암호 함수 패밀리로 간주됩니다.

월풀은 실질적으로 수정된 고급 암호화 규격(AES)에 기초한 미야구치-프레넬 구조입니다.

Walpool은 길이가 2비트256 미만인 메시지를 수신하고 512비트 메시지 [3]다이제스트를 반환합니다.

저자들은 이라고 선언했다.

「WHIRLPOOL은 특허가 아니고, 앞으로도 특허가 되지 않습니다.어떤 [2]목적으로든 무료로 사용할 수 있습니다.

버전 변경

다음의 테스트 벡터에서는, 원래의 월풀은 「월풀 0」, 「월풀 T」의 제1 리비전은 「월풀 T」, 최신 버전은 「월풀」이라고 불립니다.

  • 2001년 제1차 개정에서는 S-box를 암호화 특성이 양호한 랜덤 생성에서 암호화 특성이 우수하고 하드웨어 구현이 용이한 것으로 변경하였다.
  • 두 번째 개정(2003)에서는 알고리즘의 추정 보안을 잠재력 [4]이하로 낮추는 확산 매트릭스의 결함이 발견되었다.8x8 회전 행렬 상수를 (1, 1, 3, 1, 5, 8, 9, 5)에서 (1, 1, 4, 1, 8, 5, 2, 9)로 변경하면 이 문제가 해결되었습니다.

내부구조

Wirlpool 해시 함수는 Merkle-Damgörd 구조이며, Miyaguchi-Prenel 모드에서 [2]AES와 같은 블록 암호 W를 기반으로 합니다.

블록 암호 W는 바이트의 8×8 상태 S(\ S 총 512비트로 구성됩니다.

암호화 프로세스는 10라운드에 걸쳐 4라운드 함수로 상태를 업데이트하는 것으로 구성됩니다.4개의 라운드 함수는 SubBytes(SB), ShiftColumns(SC), MixRows(MR) 및 AddRoundKey(AK)입니다.각 라운드에서 새로운 상태는 S M S B(S SSC SB됩니다.

서브바이트

SubBytes 연산은 상태의 각 바이트에 독립적으로 비선형 순열(S 상자)을 적용합니다.8비트 S박스는 3개의 작은 4비트 S박스로 구성됩니다.

Shift Columns(시프트 컬럼)

ShiftColumns 연산은 상태의 각 열에 있는 각 바이트를 주기적으로 이동합니다. j의 바이트는 j개 위치만큼 아래로 이동됩니다.

믹스로우

MixRows 연산은 각 행에 8) ({ 위의 ×8 행렬을 오른쪽 곱한 것입니다행렬은 분기 번호(차동 암호 해석에 대한 저항을 검토할 때 중요한 특성)가 최대인 9가 되도록 선택됩니다.

AddRoundKey(원형키 추가)

AddRoundKey 작업은 비트 단위 xor를 사용하여 키 스케줄에 의해 계산된 키를 현재 상태에 추가합니다.키 스케줄은 암호화 자체와 동일하지만 AddRoundKey 함수는 각 라운드에서 미리 정해진 상수를 추가하는 AddRoundConstant 함수로 대체됩니다.

소용돌이 해시

월풀 알고리즘은 원래 2000 사양 이후 두 가지 개정을 거쳤습니다.

월풀을 내장한 사용자는 최신 버전의 월풀을 사용할 가능성이 높으며 이전 버전의 월풀에는 알려진 보안 취약점이 없지만 최신 버전의 월풀은 하드웨어 구현 효율성 특성이 더 우수하고 보안성도 더 우수합니다.앞에서 설명한 바와 같이 ISO/IEC 10118-3 국제표준에서 채택된 버전이기도 합니다.

512비트(64바이트)월풀 해시(메시지 다이제스트라고도 함)는 일반적으로 128자리 16진수로 표시됩니다.
다음은 43바이트 ASCII 입력(따옴표 제외) 및 해당 Wilpool 해시를 보여 줍니다.

버전 입력 문자열 계산 해시
소용돌이-0 "빠른 갈색 여우는 게으른 개를 뛰어넘는다."
4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C 3A0B64F98A6533CEE1DA614C3A8DDEC791FF05FEE6D971D57C1348320F4EB42D
월풀-T "빠른 갈색 여우는 게으른 개를 뛰어넘는다"
3CCF8252D8BB258460D9AA999C06EE38E67CB546CFFF48E91F700F6FC7C183 AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1
소용돌이 "빠른 갈색 여우는 게으른 개를 뛰어넘는다"
B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F D2B52EB6544EDACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35

메시지의 작은 변경( 1- (\1 - 10^ { - 도 다른 해시가 됩니다.보통 해시는 관련이 없는2개의 난수처럼 완전히 다릅니다.다음은 이전 입력을 단일 문자(ASCII 호환 인코딩에서는 단일 비트, 짝수)로 변경하여 대체한 결과를 보여 줍니다.d(e):

버전 입력 문자열 계산 해시
소용돌이-0 "빠른 갈색 여우는 게으른 을 뛰어넘는다"
228FF76B2A93469D4B25929836A12B7F2A0803E43DABA0C7FC38BC11C8F2A 9416BBCF8AB8392EB2AB7BCB565A64AC50C26179164B26084A253CAF2E012676
월풀-T "빠른 갈색 여우는 게으른 을 뛰어넘는다"
C8C15D2A0E0DE6E6885E8A7D9B8A9139746DA299AD50158F5FA9EECDDDEF744F9 1B8C617080D77CB4247B1E964C2959C507AB2DB0F1F3BF3E3B299CA00CAE3
소용돌이 "빠른 갈색 여우는 게으른 을 뛰어넘는다"
C27BA124205F72E6847F3E19834F925CC666D0974167AF915BB462420ED40CC5 0900D85A1F923219D832357750492D5C143011A76988344C2635E69D06F2D38C

길이가 0인 문자열의 해시는 다음과 같습니다.

버전 입력 문자열 계산 해시
소용돌이-0 ""
B3E1AB6EAF640A34F784593F2074416ACCD3B8E62C620175FCA0997B1BA23473 39AA0D79E754C308209EA36811DFA40C1C32F1A2B9004725D987D3635165D3C8
월풀-T ""
470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F EEA7AA40F6C2AAAB71C6EBD076E43C7CFCA0AD32567897DCB5969861049A0F5A
소용돌이 ""
19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7 3E83BE698B288 FECF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3

실장

저자들은 C로 작성된 버전과 [2]Java로 작성된 버전을 포함하여 월풀 알고리즘의 참조 구현을 제공합니다.이러한 레퍼런스 실장은 퍼블릭도메인에 [2]공개되어 있습니다.

도입

월풀을 사용하기 시작한 최초의 주류 암호화 프로그램 중 두 가지는 FreeOTFE였고,[citation needed] 2005년에는 TrueCrypt가 그 뒤를 이었다.

VeraCrypt(TrueCrypt의 포크)는 지원되는 해시 알고리즘 [5]중 하나로 월풀(최종 버전)을 포함했습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Florian Mendel1, Christian Rechberger, Martin Schläffer, Søren S. Thomsen (2009-02-24). The Rebound Attack: Cryptanalysis of Reduced Whirlpool and Grøstl (PDF). Fast Software Encryption: 16th International Workshop.{{cite conference}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  2. ^ a b c d e Paulo S. L. M. Barreto (2008-11-25). "The WHIRLPOOL Hash Function". Archived from the original on 2017-11-29. Retrieved 2018-08-09.
  3. ^ Barreto, Paulo S. L. M. & Rijmen, Vincent (2003-05-24). "The WHIRLPOOL Hashing Function". Archived from the original (ZIP) on 2017-10-26. Retrieved 2018-08-09. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  4. ^ Kyoji, Shibutani & Shirai, Taizo (2003-03-11). "On the diffusion matrix employed in the Whirlpool hashing function" (PDF). Retrieved 2018-08-09. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  5. ^ "Whirlpool". VeraCrypt Documentation. IDRIX. Retrieved 2018-08-09.

외부 링크