SHA3-224 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
29번째 줄: 29번째 줄:
  
 
2012년 10월 2일, NIST는 알고리즘 캐착 (KECCAK) 이 경진 우승 알고리즘으로 되었음을 선포하였다. <ref>"[https://csrc.nist.gov/publications/detail/nistir/7896/final NISTIR 7896, Third-Round Report of the SHA-3 Competition]", ''CSRC''</ref>
 
2012년 10월 2일, NIST는 알고리즘 캐착 (KECCAK) 이 경진 우승 알고리즘으로 되었음을 선포하였다. <ref>"[https://csrc.nist.gov/publications/detail/nistir/7896/final NISTIR 7896, Third-Round Report of the SHA-3 Competition]", ''CSRC''</ref>
 
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) 이 되었음을 공개발표하였다.
 
  
 
==소개==
 
==소개==
[[파일:스펀지.png|썸네일|350픽셀|해시함수 스펀지 구조]]
 
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를 대상으로 아래의 사례를 정의하였다.
 
 
:{|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>
 
  
 
{{각주}}
 
{{각주}}
 
 
==참고자료==
 
==참고자료==
 
* "[https://csrc.nist.gov/projects/hash-functions/sha-3-project SHA-3 Project - Hash Functions]", ''CSRC''
 
* "[https://csrc.nist.gov/projects/hash-functions/sha-3-project SHA-3 Project - Hash Functions]", ''CSRC''
127번째 줄: 46번째 줄:
 
==같이 보기==
 
==같이 보기==
 
* [[SHA-3]]
 
* [[SHA-3]]
{{암호 알고리즘|검토 필요}}
+
{{암호 알고리즘|토막글}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)