시큐어 해시 알고리즘
Secure Hash AlgorithmsSecure Hash Algorithms는 National Institute of Standards and Technology(NIST; 국립표준기술연구소)가 미국 FIPS(Federal Information Processing Standard)로 발행한 암호화 해시 함수 패밀리입니다.다음은 예를 제시하겠습니다.
- SHA-0: 1993년에 발행된 160비트 해시함수의 원래 버전에 적용되는 리트로닉어.공개되지 않은 "중대한 결함"으로 인해 출판 직후 철회되었고 약간 수정된 버전 SHA-1로 대체되었다.
- SHA-1: 이전의 MD5 알고리즘과 유사한 160비트 해시 함수.이것은 National Security Agency(NSA; 국가보안국)가 디지털 서명 알고리즘의 일부로 설계한 것입니다.SHA-1에서 암호 취약점이 발견되어 2010년 이후 대부분의 암호 사용에 대해 표준이 승인되지 않았습니다.
- SHA-2: SHA-256 및 SHA-512로 알려진 서로 다른 블록 크기를 가진 두 개의 유사한 해시 함수 패밀리입니다.단어 크기가 다릅니다.SHA-512가 64비트 단어를 사용하는 경우 SHA-256은 32비트 단어를 사용합니다.또한 SHA-224, SHA-384, SHA-512/224 및 SHA-512/256으로 알려진 각 표준의 잘린 버전도 있습니다.이것도 NSA가 설계한 거야
- SHA-3: 이전에 Keccak이라고 불리던 해시함수로, 비NSA 디자이너의 공모전을 거쳐 2012년에 선택되었습니다.SHA-2와 동일한 해시 길이를 지원하며 내부 구조는 다른 SHA 패밀리와 크게 다릅니다.
대응하는 규격은 FIPS PUB 180(오리지널 SHA), FIPS PUB 180-1(SHA-1), FIPS PUB 180-2(SHA-1, SHA-256, SHA-384 및 SHA-512)입니다.NIST는 SHS(Secure Hash Standard)와는 별도로 FIPS 출판물 202, SHA-3 표준을 업데이트했습니다.
SHA 기능의 비교
아래 표에서 내부 상태는 데이터 블록의 각 압축 후의 "내부 해시합"을 의미합니다.
알고리즘과 바리안트 | 출력 크기 (비트) | 내부의 상태 크기 (비트) | 블록 크기 (비트) | 라운드 | 운용 | 충돌 공격에 대한 보안 (비트) | 길이 확장 공격에 대한 보안 (비트) | Skylake에서의 퍼포먼스(중간 cpb)[1] | 초판 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
긴 메시지 | 8 바이트 | ||||||||||
MD5(참조용) | 128 | 128 (4 × 32) | 512 | 64 | Xor, Or, Rot, Add (mod32 2) | ≤ 18 (충돌 발견)[2] | 0 | 4.99 | 55.00 | 1992 | |
SHA-0 | 160 | 160 (5 × 32) | 512 | 80 | Xor, Or, Rot, Add (mod32 2) | 34 미만 (충돌 발견) | 0 | § SHA-1 | § SHA-1 | 1993 | |
SHA-1 | 63 미만 (충돌 발견)[3] | 3.47 | 52.00 | 1995 | |||||||
SHA-2 | SHA-224 SHA-256 | 224 256 | 256 (8 × 32) | 512 | 64 | 그리고, Xor, 또는 썩음, 쉬르, 추가(mod32 2) | 112 128 | 32 0 | 7.62 7.63 | 84.50 85.25 | 2004 2001 |
SHA-384 | 384 | 512 (8 × 64) | 1024 | 80 | 그리고, Xor, 또는 썩음, 쉬르, 추가(mod64 2) | 192 | 128 (≤ 384) | 5.12 | 135.75 | 2001 | |
SHA-512 | 512 | 256 | 0[4] | 5.06 | 135.50 | 2001 | |||||
SHA-512/224 SHA-512/256 | 224 256 | 112 128 | 288 256 | § SHA-384 | § SHA-384 | 2012 | |||||
SHA-3 | SHA3-224 SHA3-256 SHA3-384 SHA3-512 | 224 256 384 512 | 1600 (5 × 5 × 64) | 1152 1088 832 576 | 24[5] | 그리고, Xor, Rot, not | 112 128 192 256 | 448 512 768 1024 | 8.12 8.59 11.06 15.88 | 154.25 155.50 164.00 164.00 | 2015 |
흔들림128 흔들림 256 | d(표준) d(표준) | 1344 1088 | 최소(d/2, 128) 최소(d/2, 256) | 256 512 | 7.08 8.59 | 155.25 155.50 |
확인
모든 SHA 패밀리알고리즘은 FIPS가 승인한 보안기능으로서 미국 국립표준기술연구소(NIST)와 캐나다 통신보안 확립소(CSE)가 공동으로 운영하는 프로그램인 CMVP(암호화 모듈 검증 프로그램)에 의해 공식 검증됩니다.
레퍼런스
- ^ "Measurements table". bench.cr.yp.to.
- ^ Tao, Xie; Liu, Fanbao; Feng, Dengguo (2013). Fast Collision Attack on MD5 (PDF). Cryptology ePrint Archive (Technical report). IACR.
- ^ Stevens, Marc; Bursztein, Elie; Karpman, Pierre; Albertini, Ange; Markov, Yarik. The first collision for full SHA-1 (PDF) (Technical report). Google Research.
- Marc Stevens; Elie Bursztein; Pierre Karpman; Ange Albertini; Yarik Markov; Alex Petit Bianco; Clement Baisse (February 23, 2017). "Announcing the first SHA1 collision". Google Security Blog.
- ^ 잘리지 않으면 충돌 저항에 관계없이 해시 함수의 전체 내부 상태를 알 수 있습니다.출력이 잘린 경우 해시 함수를 재개하기 전에 삭제된 상태의 일부를 검색하여 찾아야 합니다.이것에 의해, 공격이 속행할 수 있습니다.
- ^ "The Keccak sponge function family". Retrieved 2016-01-27.