SHA: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
TedBot (토론 | 기여)
잔글 봇: 전거 통제 틀 추가
부처님 (토론 | 기여)
16번째 줄:
 
=== 크기 비교 ===
{| class="wikitable sortable"
다음은 SHA 함수들의 특성을 요약한 표이다.
|+다음은 SHA 함수들의 특성을 요약한 표이다.
! colspan="2" |알고리즘과 변형
!해시값
크기
!내부 상태
크기
!블록
크기
!길이 한계
!과정 수
!사용되는 연산
!퍼포먼스의 예
(MiB/s)
!보안 강도
(bits)
!충돌
|-
| colspan="2" |'''MD5'''
|128
|128
(4 × 32)
|512
|2<sup>64</sup>− 1
|64
| +,and, xor, rot,
add (mod 2<sup>32</sup>),
or
|335
|<64
|발견됨
|-
| colspan="2" |'''SHA-0'''
|160
|160
(5 × 32)
|512
|2<sup>64</sup>− 1
|80
| +,and,or,xor,rotl
| -
|<80
|발견됨
|-
| colspan="2" |'''SHA-1'''
|160
|160
(5 × 32)
|512
|2<sup>64</sup>− 1
|80
| +,and,or,xor,rotl
|192
|<63
|발견됨
|-
| rowspan="2" |'''SHA-2'''
|''SHA-224''
''SHA-256''
|224
256
|256
(8 × 32)
|512
|2<sup>64</sup>− 1
|64
| +,and,or,xor,shr,rotr
|139
|112
128
|
|-
|''SHA-384''
''SHA-512''
 
''SHA-512''
{| class="wikitable"
! 알고리즘 !! 해시값 크기 !! 내부 상태 크기 !! 블록 크기 !! 길이 한계 !! 워드 크기 !! 과정 수 !! 사용되는 연산 !! 충돌
|- align="center"
| '''SHA-0''' || 160 || 160 || 512 || 64 || 32 || 80 || +,and,or,xor,rotl || 발견됨
|- align="center"
| '''SHA-1''' || 160 || 160 || 512 || 64 || 32 || 80 || +,and,or,xor,rotl || 발견됨<ref name=googleblog>{{웹 인용|url=https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html|title=Announcing the first SHA1 collision|date=2017-02-23|access-date=|website=Google Online Security Blog|last=|first=|archive-url=|archive-date=|url-status=}}</ref>
|- align="center"
| '''SHA-256/224''' || 256/224 || 256 || 512 || 64 || 32 || 64 || +,and,or,xor,shr,rotr || -
|- align="center"
| '''SHA-512/384''' || 512/384 || 512 || 1024 || 128 || 64 || 80 || +,and,or,xor,shr,rotr || -
|}
 
''SHA-512/256''
여기서 내부 상태는 데이터 블록 하나를 압축한 뒤의 "내부적인 해시값"의 크기를 나타낸다. 또한 SHA는 내부적으로 메시지 채움을 위해 데이터의 길이와 같은 추가적인 변수를 사용하며, 길이 한계는 이때 사용되는 변수의 크기를 나타낸다. 메시지 채움에 대한 자세한 설명은 [[머클-담고르 해시 함수]]를 참고하라.
|384
512
 
224
 
256
|512
(8 × 64)
|1024
|2<sup>128</sup>− 1
|80
| +,and,or,xor,shr,rotr
|154
|192
256
 
112
 
128
|
|-
| rowspan="7" |'''SHA-3'''
| rowspan="4" |''SHA3-224''
''SHA3-256''
 
''SHA3-384''
 
''SHA3-512''
| rowspan="4" |224
256
 
384
 
512
| rowspan="7" |1600
(5 × 5 × 64)
|1152
| rowspan="7" |무제한
| rowspan="7" |24
| rowspan="7" | +.nd, Xor, Rot,Not
| rowspan="7" | -
| rowspan="6" |112
128
 
192
 
256
| rowspan="6" |
|-
|1088
|-
|832
|-
|576
|-
| rowspan="3" |''SHAKE128''
''SHAKE256''
| rowspan="3" |d(가변)
d(가변)
|1344
|-
| rowspan="2" |1088
|-
|d/2와 128의
d/2와 256의
|
|}
기서 내부 상태는 데이터 블록 하나를 압축한 뒤의 "내부적인 해시값"의 크기를 나타낸다. 또한 SHA는 내부적으로 메시지 채움을 위해 데이터의 길이와 같은 추가적인 변수를 사용하며, 길이 한계는 이때 사용되는 변수의 크기를 나타낸다. 메시지 채움에 대한 자세한 설명은 [[머클-담고르 해시 함수]]를 참고하라.
 
== 예제 ==