SHA-3과 SHA-256의 차이점은 무엇입니까?

저는 암호화가 처음입니다. SHA-3 (Secure Hash Algorithm 3)가 NIST에서 발표 한 Secure Hash Algorithm 표준 제품군입니다.

하지만 최근에 SHA-256를 보았지만

?

설명

  • SHA-256은 256 비트 출력의 SHA-2입니다. SHA-2는 SHA-3의 전임자입니다. 이름 외에는 거의 공유하지 않습니다.
  • 그러나 이름은 본질을 포착합니다. 암호화를 수행하지 않는 경우 모두 보안 해시 알고리즘입니다. 계약 및 보안 주장은 거의 동일합니다. .
  • @MeirMaor 대담한 진술처럼 보이는 SHA-1의 존재를 감안할 때.
  • @Maeher, SHA1은 본질적으로 동일한 요구 사항으로 생성되었으므로 이제는 그렇지 않다는 것을 알고 있습니다. '이를 충족하지 못합니다. 최소한 충돌 저항 요구 사항은 충족해야합니다. 또한 출력 크기가 더 작지만 SHA3은 SHA2와 동일한 출력 크기를 가질 수 있습니다.

답변

이전 SHA-256 간의 주요 차이점 FIPS 180 의 SHA-2 제품군 및 FIPS 202 는 다음과 같습니다.

  • 길이 확장 공격에 대한 내성. SHA-256 사용, $ H (m) $ 제공되지만 $ m $ , 쉽게 찾을 수 있습니다. $ H (m \ mathbin \ | m “) $ (특정 접미사 $ m”$ ). SHA-3 함수에서는 그렇지 않습니다.

    즉, $ m \ mapsto H (k \ mathbin \ | m) $ 는 pan class = “math- 일 때 $ k $ 키 아래의 보안 메시지 인증 코드가 아닙니다 . container “> $ H $ 는 SHA-256입니다. 한 메시지에서 인증자를 알면 다른 메시지에서 인증자를 위조 할 수 있기 때문입니다. 길이 확장 속성은 부분적으로 HMAC 개발에 영향을 미쳤습니다.

    반대로 키 접두사 구성은 $ 일 때 MAC으로 안전합니다 . H $ 는 SHA-3 기능 또는 최신 SHA-2 기능 SHA-512 / 224 및 SHA-512 / 256 중 하나입니다. 본질적으로 SHA-256의 224 비트 잘림 인 SHA-224의 경우 (다른 IV 사용) 공격자는 $ 2 ^ {-32} $ 확률을가집니다. 한 번의 시도로 버린 출력 비트를 추측하는 것입니다. 작지만 무시할 수는 없습니다.

  • 성능. SHA-2 기능 (특히 SHA-512, SHA-512 / 224 및 SHA-512 / 256)은 일반적으로 SHA-3 기능보다 성능이 더 높습니다. 부분적으로 이것은 SHA-3 설계 프로세스의 편집증과 정치적 이유 때문이었습니다.

    (응답으로 SHA-3 결선 진출 자 중 한 명이 훨씬 더 빠른 BLAKE2 는 오늘날 인터넷에서도 널리 사용되고 있으며 SHA-3 우승자 Keccak은 훨씬 더 빠른 KangarooTwelve 로 분리되었습니다. )

  • 완전히 다른 내부 디자인. SHA-2는 Davies를 사용합니다. –Meyer 구조, MD4와 같은 ARX 네트워크에서 구축 된 블록 암호 (때때로 SHACAL-2라고 함)가있는 Merkle–Damgård 구조의 인스턴스입니다. SHA-3은 Keccak 순열이있는 스펀지 구조를 사용합니다.

    여기에는 사용자가 볼 수있는 차이가 없지만 많은 DM 이후 설계에 대한 암호 학자의 확신에 차이가 있습니다. MD4를 기반으로 한 / ARX 디자인은 “90 년대 후반과 2000 년대 초반에 깨졌습니다.


역사. FIPS 180, 보안 해시 표준 및 이후 FIPS 202, SHA-3 표준 : 순열 기반 및 확장 가능 출력에서 NIST에 의해 표준화 된 긴 해시 함수가 있습니다. 기능. SHA-3이 아닌 SHA-0, SHA-1 및 SHA-2가 기반으로하는 관련 MD4 및 MD5 해시 함수를 포함한 자세한 내용 및 기록 :

\ begin {equation} \ begin {array} {ccc} \ text {hash} & \ text {year} & \ text {coll. res.} & \ text {크기 (비트)} & \ text {design} & \ text {깨진?} \\ \ hline \ text {MD4} & 1990 & 64 & 128 & \ text {32 비트 ARX DM} & 1995 \\ \ text {SHA-0 (SHA)} & 1993 & 80 & 160 & \ text {32 -비트 ARX DM} & 1998 \\ \ text {MD5} & 1993 & 64 & 128 & \ text {32-bit ARX DM} & 2004 \\ \ text {SHA-1} & 1995 & 80 & 160 & \ text {32 비트 ARX DM} & 2005 \\ \ hline \ text {SHA-256 (SHA-2)} & 2002 & 128 & 256 & \ text { 32 비트 ARX DM} & \\ \ te xt {SHA-384 (SHA-2)} & 2002 & 192 & 384 & \ text {64 비트 ARX DM} & \\ \ text {SHA-512 (SHA-2)} & 2002 & 256 & 512 & \ text {64 비트 ARX DM} & \\ \ hline \ text {SHA-224 (SHA-2)} & 2008 & 112 & 224 & \ text {32 비트 ARX DM} & \\ \ text {SHA-512 / 224} & 2012 & 112 & 224 & \ text {64 비트 ARX DM} & \\ \ text {SHA-512 / 256 } & 2012 & 128 & 256 & \ text {64 비트 ARX DM} & \\ \ hli ne \ text {SHA3-224} & 2013 & 112 & 224 & \ text {64-bit Keccak sponge} & \\ \ text {SHA3-256} & 2013 년 & 128 & 256 & \ text {64-bit Keccak sponge} & \\ \ text {SHA3-384} & 2013 & 192 & 384 & \ text {64-bit Keccak sponge} & \\ \ text {SHA3-512 } & 2013 년 & 256 & 512 & \ text {64-bit Keccak sponge} & \\ \ text {SHAKE128} & 2013 & {\ leq} 128 & \ text {any} & \ text {64 비트 Keccak 스폰지} \\ \ text {SHAKE256} & 2013 & {\ leq} 256 & \ text {any} & \ text {64-bit Keccak sponge} \ end {array} \ end {equation}

  • 1993 년 NIST는 FIPS 180 을 발표했습니다. > SHA-0 , 원래 보안 해시 알고리즘의 이름은 SHA 입니다. 새로 게시 된 DSA와 함께 사용하기위한 것입니다. SHA-0은 80 비트 충돌 보안을 목표로하는 단일 160 비트 해시 함수입니다 (이제 완전히 손상됨). 기반 1990 년에 MD4의 비교적 새롭고 빠른 설계에 대해 설명했습니다.

  • 1995 년 NIST는 조용히 FIPS 180을 철회하고 로 대체했습니다. FIPS 180-1 SHA-1 을 정의합니다. 이는 단일 항목을 포함한다는 점에서 SHA-0과 다릅니다. -비트 회전. SHA-0과 마찬가지로 SHA-1은 80 비트 충돌 보안을 목표로하는 단일 160 비트 해시 함수입니다 (이제 완전히 중단됨).

    변경에 대한 공개적인 설명은 없었지만 Eli Biham이 차등 암호화를 발표했고 학계는 NSA가 DES S-box에 대한 조정을 깨달았다는 사실을 깨달았습니다. 1970 년대에 실제로 보안이 향상되었습니다 (루시퍼의 128 비트 키 크기를 DES의 경우 56 비트로 줄였고 동시에 보안을 완전히 파괴했습니다). 같은 해 Dobbertin은 MD4를 위반했습니다. [1] 그리고 다음 해 MD5 [2] 가 심각하게 손상되었습니다. 그 후 얼마 지나지 않아 1998 년 Florent Chabaud가 Antoine Joux는 SHA-0에 대한 $ 2 ^ {61} $ -비용 충돌 공격을보고했습니다. [3] .

  • 2002 년 NIST는 <을 정의하는 FIPS 180-2 를 게시했습니다. / div> SHA-2 , 다양한 크기의 관련 해시 함수 패밀리 : SHA- 256, SHA-384 및 SHA-512는 출력 크기에 따라 이름이 지정되고 각각 112, 128, 192 및 256 비트 충돌 저항을 목표로합니다. SHA -2 함수는 더 많은 라운드와 더 큰 상태로 MD4, MD5, SHA-0 및 SHA-1의 설계 원칙을 계속했습니다. 얼마 지나지 않아 2004 년에 Xiaoyun Wang의 팀은 MD5 및 기타 해시 함수에 대한 완전한 충돌을보고했으며 [4] 2005 년에 $ 2 ^ {69} $ -SHA-1에 대한 비용 공격 [5] , 일반보다 훨씬 저렴합니다. MD4를 기반으로 한 많은 디자인이 지금 망가졌고 모두가 그 디자인에 대해 불안해했습니다. 그래서…

  • 2007 년 NIST는 SHA-3 공모전을 시작하여 SHA-2의 후속 제품 (디자인이 나쁘다고 판명 될 경우). 경쟁은 몇 년에 걸쳐 진행될 것입니다.

  • 2008 년 NIST는 보안 해시 표준을 업데이트했습니다. FIPS 180-3 사용, SHA-224 추가 SHA-2 제품군에 추가 한 다음 2012 년에 NIST는 FIPS 180-4 (2012) 로 다시 업데이트하여 SHA-512 / 224 및 SHA-512 / 256 , 64 비트 컴퓨터에서 더 빠른 256 비트 및 384 비트 해시 함수로 하나의 컴퓨팅을 허용하는 길이 확장 공격에 대한 저항력 $ H (m \ mathbin \ | m “) $ : $ H (m) $ 및 특정 $ m”$ $ m $ 을 (를) 알고 있습니다.

  • 2013 년, SHA-3 대회는 Keccak이 NIST가 선택한 우승자로 마무리되었습니다. , 그들은 FIPS 202 에 게시했습니다. SHA-3 에는 4 개의 고정 크기 해시 함수, SHA3-224, SHA3-256, SHA3-384, SHA3-512 및 두 개의 확장 가능 출력 해시 함수 SHAKE128 및 SHAKE256 최대 128 비트 또는 256을 달성합니다. 출력이 충분히 긴 경우-비트 보안 수준입니다.

    SHA-3의 디자인은 SHA-2와 완전히 다릅니다. 이는 MD4를 기반으로 한 디자인 라인의 암호화 혁신이 영향을 미치지 않을 것이라는 확신을줍니다. SHA-3, 2000 년대 초의 유혈 목욕 후 10 년 반이 지나도 벌은 없었습니다. n SHA-2에서도 많은 진전이있었습니다. 고정 크기 SHA-3 기능에 대해 선택한 매개 변수는 정치적 이유로 우연히 과도하게 설계되었습니다 [6] , 따라서 SHA3-256과 같은 SHA-3 기능은 필요보다 느리며 일반적으로 SHAKE128 또는 SHAKE256을 사용해야합니다.

댓글

  • " 완전히 깨짐 "이라고 말하세요. 내가 이해하는 한 m1 을 계산할 수 있습니다. m2 : H ( m1 ) = H ( m2 ). 그러나, 고정 된 메시지 M 가 주어 졌을 때 H (와 같은 메시지 m ( M 와 같지 않음)을 계산하기 위해 아무도 아직 관리하지 않았습니다. i> M ) = H ( m ).
  • @MartinBonner 예, 충돌 저항에 대해 이야기합니다. ' 이것이 바로 이제 완전히 깨져 버린두 단어가 충돌 보안인 이유입니다. ' 여기서는 사전 이미지 저항을 다루지 않습니다. 충돌 방지 해시 함수가 아닌 안전한 사용이 충돌 방지 해시 함수는 매우 미묘한 그리고 저는 ' 부주의 한 독자를 위해 함정을 남기지 않으려 고 노력하고 있습니다. ; MD5 '의 preimage 저항 상태 다른 곳 을 '가 특별히 요청했습니다.

답변

SHA256과 SHA3의 차이점

SHA256과 SHA3의 주요 차이점은 내부 알고리즘 설계 입니다.

SHA2 (및 SHA1)는 Merkle–Damgård 구조 를 사용하여 빌드됩니다.

반면 SHA3은 스펀지 기능 이며 Keccak 제품군에 속합니다.

이름은 SHA2와 비교하여 SHA3가 단지 최신 " 알고리즘 버전입니다. SEJPM이 말했듯이 : " […] 그들은 이름 외에는 거의 공유하지 않습니다." 이름은 NIST 에서 제공되었으며 " 보안 해싱 알고리즘 ", 공식 표준 제품군입니다.

MAC <를 구성 할 수 있지만 / a> SHA256 및 SHA3 모두에서 SHA3 MAC은 사용하기가 더 쉽습니다 (아래 fgrieu의 설명 참조).

출력

SHA256은 256 비트 해시를 출력합니다.

SHA3는

  • 224 비트
  • 256 비트
  • 384 비트
  • 의 출력을 허용합니다. 512 비트

해시, SHA2 변형 (SHA256은 이러한 변형 중 하나)도 이러한 길이를 허용합니다.

SHA3 알고리즘은

SHAKE " 알고리즘은 임의 길이의 출력을 허용합니다. 추가 정보는 이전에 묻는 질문 .

보안

Merkle–Damgård 구조 만 사용하고 전체를 출력하는 해시 l (또는 거의 가득 찬) 상태는 길이 확장 공격 에 취약합니다.

SHAKE 알고리즘은 최적 비대칭 암호화 패딩 .


여기 (wikipedia) .

댓글

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다