"SHA3-224"의 두 판 사이의 차이
잔글 (→소개) |
잔글 (→소개) |
||
(같은 사용자의 중간 판 5개는 보이지 않습니다) | |||
40번째 줄: | 40번째 줄: | ||
스펀지 구조는 Wide random function 혹은 random permutation에 기반하였으며 pseudorandom function의 역할로 입력하는 데이터를 처리 할 시 임의 길이의 데이터 입력을 허용하며 임의 길이 데이터의 출력을 허용한다. 상당히 훌륭한 융통성이 구현되었다. | 스펀지 구조는 Wide random function 혹은 random permutation에 기반하였으며 pseudorandom function의 역할로 입력하는 데이터를 처리 할 시 임의 길이의 데이터 입력을 허용하며 임의 길이 데이터의 출력을 허용한다. 상당히 훌륭한 융통성이 구현되었다. | ||
− | 전반 과정을 보면 임의 길이의 데이터가 입력시 메세지를 패딩 (Padding)하는 패딩함수가 역할하면서 입력한 데이터의 다이제스트 (Digest)를 뽑으며 그 뒤에 전환함수가 역할하면서 소정 길이의 출력이 이루어진다. SHA-3에 적용한 케착-f[1600](Keccak-f[1600]) | + | 전반 과정을 보면 임의 길이의 데이터가 입력시 메세지를 패딩 (Padding)하는 패딩함수가 역할하면서 입력한 데이터의 다이제스트 (Digest)를 뽑으며 그 뒤에 전환함수가 역할하면서 소정 길이의 출력이 이루어진다. SHA-3에 적용한 케착-f [1600] (Keccak-f [1600]) 전환함수는 XOR, AND, NOT를 사용한 순열이다. |
+ | SHA3 의 속도문제를 살펴보면 소프트웨어 측면에서 SHA-1보다 3배 더디고 SHA-512 대비 2배 더디다. 하드웨어 측면에서는 SHA-1, SHA-2를 가볍게 넘어서는 성능을 나타낸다. 수치로 보면 약간 실망스럽지만 최신 소프트웨어와 기기에서 해시 확인 절차는 아주 드물게 사용함으로 해시 수행과정에 소모하는 시간이 2배, 3배 된다하더라도 대부분 고객의 시나리오에는 별반 영향을 안 미친다. 이외 CPU의 계산속도가 나날이 향상됨에 따라 얼마후에는 아예 느껴지지도 않을수도 있다. | ||
+ | 사례 | ||
+ | |||
+ | NIST 표준은 주어진 메세지 M와 출력길이 d를 대상으로 아래의 사례를 정의하였다. | ||
+ | |||
+ | :{|class=wikitable width=800 | ||
+ | |- | ||
+ | !align=center|사례 | ||
+ | !align=center|출력 길이 | ||
+ | !align=center|비율=블록길이 | ||
+ | !align=center|용량 | ||
+ | !align=center|정의 | ||
+ | !align=center|보안강도<br>충돌 | ||
+ | !align=center|보안강도<br>프리이미지 | ||
+ | !align=center|보안강도<br>두 번째<br>프리이미지 | ||
+ | |- | ||
+ | |align=left|SHA3-224(M) | ||
+ | |align=center|224 | ||
+ | |align=center|1152 | ||
+ | |align=left|448 | ||
+ | |align=left|Keccak[448](M 01, 224) | ||
+ | |align=center|112 | ||
+ | |align=center|224 | ||
+ | |align=center|224 | ||
+ | |- | ||
+ | |align=left|SHA3-256(M) | ||
+ | |align=center|256 | ||
+ | |align=center|1088 | ||
+ | |align=left|512 | ||
+ | |align=left|Keccak[512](M 01, 256) | ||
+ | |align=center|128 | ||
+ | |align=center|256 | ||
+ | |align=center|256 | ||
+ | |- | ||
+ | |align=left|SHA3-384(M) | ||
+ | |align=center|384 | ||
+ | |align=center|832 | ||
+ | |align=left|768 | ||
+ | |align=left|Keccak[768](M 01, 384) | ||
+ | |align=center|192 | ||
+ | |align=center|384 | ||
+ | |align=center|384 | ||
+ | |- | ||
+ | |align=left|SHAKE128(M, d) | ||
+ | |align=center|d | ||
+ | |align=center|1344 | ||
+ | |align=left|256 | ||
+ | |align=left|Keccak[256](M 1111, d) | ||
+ | |align=left|min(d | 2,128) | ||
+ | |align=left|≥min(d,128) | ||
+ | |align=left|min(d,128) | ||
+ | |- | ||
+ | |align=left|SHAKE256(M, d) | ||
+ | |align=center|d | ||
+ | |align=center|1088 | ||
+ | |align=left|512 | ||
+ | |align=left|Keccak[512](M 1111, d) | ||
+ | |align=left|min(d | 2,256) | ||
+ | |align=left|≥min(d,256) | ||
+ | |align=left|min(d,256) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | SHA3 적용시점 | ||
+ | |||
+ | SHA-1과 SHA-2는 NSA가 만들어 표준으로 사용한 암호화 해시알고리즘이며 동일하지는 않지만 똑같은 암호화 결함을 포함한 동일한 수학적 기반을 일부 공유한다. SHA-2가 더 안전한 해시인 이유는 주로 늘어난 해시 길이에 있다. | ||
+ | |||
+ | 2008년부터 SHA-2를 대상한 공격이 발생하였으며 SHA-1의 경우와 마찬가지로 SHA-2에 대한 공격 역시 점점 더 효과를 더하여 SHA-2를 약화시키고 일부 공격은 SHA-2의 유효 보호 수준을 237까지 낮췄다. 2016년에 발표된 공격사례를 보면 SHA-2 공격은 이미 "실용" 단계에 처해 있으며 불과 2~3년 전 SHA-1을 두고 펼쳐졌던 상황과 유사하다 | ||
+ | |||
+ | 세월이 흐르면서 기존 암호가 공격을 받고 약화되는 것은 예상가능한 사항들이며 NIST는 기존 SHA 군에서 파생되지 않은 새로운 해시 표준을 사전 확보하고자 경진방식으로 SHA-3을 선정하여 2015년 8월에 권장기준으로 공개발표하였다. 마이그레이션의 구체적인 시점은 정해진 일정이 없지만 조만간 전부 적용되여야 하는것은 분명한 사항이다.<ref>〈[http://www.itworld.co.kr/news/108321#csidx4c15bad02f207bdaad55c8557f85bc7 글로벌 칼럼: 왜 SHA-3을 사용하지 않는가]〉, 《네이버블로그》</ref> | ||
{{각주}} | {{각주}} | ||
57번째 줄: | 127번째 줄: | ||
==같이 보기== | ==같이 보기== | ||
* [[SHA-3]] | * [[SHA-3]] | ||
− | {{암호 알고리즘| | + | {{암호 알고리즘|검토 필요}} |
2020년 1월 10일 (금) 16:57 기준 최신판
SHA3-224 (Secure Hash Algorizm 3) 는 SHA3 알고리즘군 중의 하나이며 SHA3은 2015년 8월 5일에 미국 NIST가 공개발표하여 신규적용하는 암호화 해시알고리즘이다. 비록 같은 시리지 표준의 한 부분이지만 SHA3은 내부구조적으로 MD5와 유사한 구조를 가진 SHA-1, SHA-2와 틀린다. SHA3-224은 출력길이가 224인 SHA3 해시알고리즘을 가르킨다.
개요[편집]
SHA3 은 SHA1, SHA2에 존재하는 보안성 취약문제를 해결하고자 개발 된 암호화 해시 알고리즘이다.
암호화 해시알고리즘 (또는 해시함수) 은 임의의 길이를 갖는 메시지를 입력하여 고정길이의 해시값(메시지 다이제스트; Message Digest)을 출력하고 일정한 보안특징을 취득하고자 설계한다. 해시알고리즘은 디지털서명 (Digital Signatures), Message Authentication Codes, Key Derivation Functions, Pseudo random functions 외 기타 보안 어플리케이션에서 널리 사용되고 있다. 미국 연방정보처리표준 (FIPS 180-4), 보안해시표준 (Secure Hash Standard) 은 7가지 암호화 해시 알고리즘을 선정하여 미국연방내에서 사용하게 하였으며 이는 국제적으로 관련 업계에 널리 사용되어 있다.
2004년부터 2005년사이에 몇 가지 해시 알고리즘은 성공적으로 공격을 당하였으며 기존에 NIST가 승인하여 공개되었던 SHA-1를 대상한 공격도 이론적으로 성공가능성이 높다고 언론에 공개되기 시작하였다. 이는 2017년 3월에 구글이 현실적인 입증결과를 공시하였다.[1] 이러한 상황에 비추어 NIST는 두 차례 공개 워크샵을 가지고 기승인된 알고리즘에 관한 상황조사를 추진하였으며 암호화 해시알고리즘 정책과 표준에 관한 의견을 공개 청구하였다. 그 결론으로 NIST는 사회전반을 대상으로 공개 경쟁을 거쳐 신규표준으로 적용할 신형 암호화 해시 알고리즘을 선출하는것으로 하였다. 선출된 신형 암호화 해시알고리즘은 SHA-3과 연대되는것으로 하였다.
NIST는 2007년 11월에 SHA-3 암호화 해시 알고리즘 경기를 시작하였으며 2012년 10월 2일에 마무리를 지었다. 결론적으로 케착 (KECCAK) 이 64개 경쟁 알고리즘을 이기고 신규 SHA-3 표준으로 되었다.[2]
캐삭은 스위스의 제네바에 본사를 두고 있는 ST마이크로일렉트로닉스 (STMicroelectronics) 사의 귀도 베르토니 (Guido Bertoni), 조안 대먼 (Joan Daemen) 과 길레스 반 앗시 (Gilles Van Assche) 등 세 사람과 네덜란드의 아인드호벤에 본사를 두고 있는 NXP반도체 (NXP Semiconductors) 사의 미하엘 피터스 (Michaël Peeters) 가 공동으로 개발하였다.
케착에 관련하여 NIST는 케착의 우아한 설계와 서로 다른 컴퓨팅기기에서 작동이 잘 되는 특징을 포함한 여러 칭찬할만한 품질에 만족을 표시하였다. 케착은 구조적으로 깨끗하고 쉽게 분석이 되며 (경기기간에 전부의 제출 된 알고리즘은 공중들에서 오는 검증과 비난을 받아야 한다) SHA-2 또는 최종 경기에 참가 한 다른 알고리즘들 대비 하드웨어의 실행중에서 고성능을 나나냈다.
NIST 컴퓨터보안전문가 팀 폴크 (Tim Polk) 는 ‘두 알고리즘은 완전히 달리 설계가 되었기에 SHA-2에서 효과가 있을 공격이 KECCAK에서는 불가능하다’, ‘KECCAK은 SHA-2처럼 공격에 취약하지 않는 액외의 장점을 가지고 있다’고 밝혔다.[3]
캐착은 전에 발표되었던 함수 PANAMA와 RadioGatún의 설계를 참조하였고 PANAMA는 1998년에 조안 대먼 (Joan Daemen)과 크레이그 클랩 (Craig Clapp)이 발표하였으며 RadioGatún은 PANAMA의 후속버전으로 조안 대먼 (Joan Daemen), 미하엘 피터스 (Michaël Peeters), 길레스 반 앗시 (Gilles Van Assche)이 공동으로 2006년에 NIST 해시 워크샵에서 발표하였다.
SHA-3 해시알고리즘 군은 SHA3-224, SHA3-256, SHA3-384 와 SHA3-512 등 4개 암호화 해시 알고리즘 그리고 SHAKE128과 SHAKE256, 두개의 확장가능출력함수 (Extendable-output functions) (XOFs)로 구성되어 있다.
SHA3-224 해시알고리즘은 출력길이가 224인 SHA3 해시알고리즘을 가르킨다.[4][5]
경진경과[편집]
2007년 11월 2일, 미국국립표준기술연구소 (NIST) 는 SHA-3 암호화 해시알고리즘 경진을 조직한다고 선포하였으며 2008년 10월까지 경진에 참가하고자 하는 64개 후보 알고리즘을 접수하였다. 초도 심사를 거쳐 2008년 12월 10일에 51개 알고리즘이 1차 입선후보자로 경진 참가자격을 가졌다.
2009년 7월 24일에 14개 알고리즘이 1차 경진을 통과하여 2차 경진 입선후보 알고리즘으로 되었다. 2차 경진에 진입한 알고리즘으로는 BLAKE, BLUE MIDNIGHT WISH, CubeHash, ECHO, Fugue, Grøstl, Hamsi, JH, Keccak, Luffa, Shabal, SHAvite-3, SIMD 및 Skein이 있다. [6]
일년기간의 경진을 거쳐 2010년 12월 9일에 NIST는 2차 경진을 통과한 다 섯가지 알고리즘 BLAKE, Grøstl, JH, Keccak 및 Skein 을 결승경진 후보 알고리즘으로 발표하였다.[7]
2012년 10월 2일, NIST는 알고리즘 캐착 (KECCAK) 이 경진 우승 알고리즘으로 되었음을 선포하였다. [8]
2014년 NIST는 FIPS 202 "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions" 초안을 공개 발행하였으며 2015년 8월 5일에 공식승인을 취득하였다.
2015년 8월 5일 NIST는 SHA-3이 신규 해싱표준 (Hashing Standard) 이 되었음을 공개발표하였다.
소개[편집]
SHA-3 해시알고리즘은 SHA3-224, SHA3-256, SHA3-384 와 SHA3-512 등 4개 암호화 해시 알고리즘 그리고 SHAKE128과 SHAKE256, 두개의 확장가능한 출력함수 (Extendable-output functions) (XOFs)로 구성되어 있다. 스펀지구조로 이루어졌기에 스펀지함수라고도 한다.
스펀지 구조는 Wide random function 혹은 random permutation에 기반하였으며 pseudorandom function의 역할로 입력하는 데이터를 처리 할 시 임의 길이의 데이터 입력을 허용하며 임의 길이 데이터의 출력을 허용한다. 상당히 훌륭한 융통성이 구현되었다.
전반 과정을 보면 임의 길이의 데이터가 입력시 메세지를 패딩 (Padding)하는 패딩함수가 역할하면서 입력한 데이터의 다이제스트 (Digest)를 뽑으며 그 뒤에 전환함수가 역할하면서 소정 길이의 출력이 이루어진다. SHA-3에 적용한 케착-f [1600] (Keccak-f [1600]) 전환함수는 XOR, AND, NOT를 사용한 순열이다.
SHA3 의 속도문제를 살펴보면 소프트웨어 측면에서 SHA-1보다 3배 더디고 SHA-512 대비 2배 더디다. 하드웨어 측면에서는 SHA-1, SHA-2를 가볍게 넘어서는 성능을 나타낸다. 수치로 보면 약간 실망스럽지만 최신 소프트웨어와 기기에서 해시 확인 절차는 아주 드물게 사용함으로 해시 수행과정에 소모하는 시간이 2배, 3배 된다하더라도 대부분 고객의 시나리오에는 별반 영향을 안 미친다. 이외 CPU의 계산속도가 나날이 향상됨에 따라 얼마후에는 아예 느껴지지도 않을수도 있다.
사례
NIST 표준은 주어진 메세지 M와 출력길이 d를 대상으로 아래의 사례를 정의하였다.
사례 출력 길이 비율=블록길이 용량 정의 보안강도
충돌보안강도
프리이미지보안강도
두 번째
프리이미지SHA3-224(M) 224 1152 448 Keccak[448](M 01, 224) 112 224 224 SHA3-256(M) 256 1088 512 Keccak[512](M 01, 256) 128 256 256 SHA3-384(M) 384 832 768 Keccak[768](M 01, 384) 192 384 384 SHAKE128(M, d) d 1344 256 Keccak[256](M 1111, d) min(d | 2,128) ≥min(d,128) min(d,128) SHAKE256(M, d) d 1088 512 Keccak[512](M 1111, d) min(d | 2,256) ≥min(d,256) min(d,256)
SHA3 적용시점
SHA-1과 SHA-2는 NSA가 만들어 표준으로 사용한 암호화 해시알고리즘이며 동일하지는 않지만 똑같은 암호화 결함을 포함한 동일한 수학적 기반을 일부 공유한다. SHA-2가 더 안전한 해시인 이유는 주로 늘어난 해시 길이에 있다.
2008년부터 SHA-2를 대상한 공격이 발생하였으며 SHA-1의 경우와 마찬가지로 SHA-2에 대한 공격 역시 점점 더 효과를 더하여 SHA-2를 약화시키고 일부 공격은 SHA-2의 유효 보호 수준을 237까지 낮췄다. 2016년에 발표된 공격사례를 보면 SHA-2 공격은 이미 "실용" 단계에 처해 있으며 불과 2~3년 전 SHA-1을 두고 펼쳐졌던 상황과 유사하다
세월이 흐르면서 기존 암호가 공격을 받고 약화되는 것은 예상가능한 사항들이며 NIST는 기존 SHA 군에서 파생되지 않은 새로운 해시 표준을 사전 확보하고자 경진방식으로 SHA-3을 선정하여 2015년 8월에 권장기준으로 공개발표하였다. 마이그레이션의 구체적인 시점은 정해진 일정이 없지만 조만간 전부 적용되여야 하는것은 분명한 사항이다.[9]
각주[편집]
- ↑ 〈오래된 해시 알고리즘 `SHA-1` 시대는 끝났다〉, 《전자신문》, 2017-03-05
- ↑ "SHA-3 Project - Hash Functions", CSRC
- ↑ "NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition", NIST, 2012-10-02
- ↑ "FIPS 202, SHA-3 Standard: Permutation-Based Hash & Extendable-Output Fcns", CSRC
- ↑ 〈SHA-3〉, 《维基百科》
- ↑ "NISTIR 7620, SHA-3 Cryptographic Hash Algorithm Competition 1st Round Report", CSRC
- ↑ "NISTIR 7764, Status Report on the Second Round of the SHA-3 Competition", CSRC
- ↑ "NISTIR 7896, Third-Round Report of the SHA-3 Competition", CSRC
- ↑ 〈글로벌 칼럼: 왜 SHA-3을 사용하지 않는가〉, 《네이버블로그》
참고자료[편집]
- "SHA-3 Project - Hash Functions", CSRC
- "NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition", NIST, 2012-10-02
- 〈글로벌 칼럼; 왜 SHA-3을 사용하지 않는가〉, ITWorld Korea, 2018-02-23
- 〈오래된 해시 알고리즘 `SHA-1` 시대는 끝났다〉, 《전자신문》, 2017-03-05
- 〈SHA-3〉, 《维基百科》
- 호애진, 〈5년간 공모 끝에 SHA-3 해시 알고리즘 최종 선정!〉, 《보안뉴스》, 2012-10-05
- "Keccak and the SHA-3 Standardization", csrc.nist.gov