메뉴 닫기

SHA 해시 함수 알고리즘

해시 함수란 임의의 길이를 가지는 메시지를 입력받아 고정된 길이의 해시값을 생성하는 함수이다.

해시함수의 특징
1. 어떤 입력값에도 항상 고정된 길이의 해시값을 출력한다.
2. 입력값이 아주 조금만 변경되어도 전혀 다른 결과값을 출력한다.
3. 출력값을 토대로 입력값을 유추할 수 없다.

SHA(Secure Hash Algorithm)

● SHA-0
최초의 해시 함수 알고리즘은 1993년에 미국 국립표준기술연구소(NIST)가 발표한 안전한 해시 표준(Secure Hash Standard)으로 해시 알고리즘 중 하나인 MD4 알고리즘에 기반하고 있으며 다른함수과 구분하기 위해 SHA-0이라고 부른다.

● SHA-1
미국 국가안보국에 의해 표준을 폐기하고 1995년 개정된 알고리즘은 SHA-1을 발표한다. SHA-1은 입력된 메시지를 512bit 블록단위로 처리하며, 160bit의 해시값을 생성한다. 입력 메시지 길이 상한은 264이며 해시값의 길이는 160bit(20 bytes)이다.
2017년 구글에서 SHA-1 충돌공격 성공을 발표함으로써 대부분의 기업이 SHA-2로 전환되었고 2017년 기사에 따르면 구글 Chrome은 2019년 1월 1일 이후 SHA-1을 완전히 차단한다고 발표했다.

– SHA-1 특징
1) 입력된 메시지를 512bit 블록 단위로 처리하여 160bit의 출력값 생성
2) 입력 메시지 길이제한 : 264
3) 해시값 길이 : 160bit(20bytes)
4) 패딩처리 : 메시지 길이를 512bit 단위로 잘라서 512bit 정수배로 만든다.
5) 입력 블록 단위의 처리 : 32bit X 80개 값(W0 ~ W79)를 계산
6) 블록 처리 : 1단계 처리

SHA1(“lasthackers”) = “7070D011A39CA1E06F4E9D8BFF62D368D797C697”

● SHA-2
미국 국립표준연구소는 2000년도 해시값의 길이가 더 긴 4개의 해시알고리즘을 발표한다. SHA-256, SHA-384, SHA-512는 2001년에 초안으로 발표되었고 2004년 2월에 보안수준을 3DES에 맞게 수정한 SHA-224와 함께 정식표준으로 등록되었으며, 이를 통칭하여 SHA-2라고 부른다.

SHA256(“lasthackers”) = “D924817B380C40A20C3B794E8689A128C910D7932DA063F281CC8E4A06683E4C”

● SHA-3
SHA-1과 SHA-2를 대체하기 위해 미국 국립표준기술연구소가 2015년 8월 5일에 발표했다. SHA-2를 기반으로 하고 있으며, 기존의 방식과는 다르게 NIST가 직접 디자인한것이 아니라 공개적인 방식을 통해 후보를 모집한 다음, 함수 안정성을 분석하여 몇 차례에 걸쳐 후보를 걸러내어 최종적으로 SHA-2의 취약점을 가지지 않은 해시 알고리즘이 선정되었다.

해시함수가 출력하는 압축된 문장을 다이제스트(Digest)라고 하는데
SHA-3은 현재 SHA-2가 출력할 수 있는 메시지의 다이제스트의 크기를 모두 출력할 수 있고, 암호학적 해시 함수가 갖춰야할 충돌저항성, 역상저항성, 제2역상 저항성을 모두 갖추고 있기 때문에 SHA-2를 SHA-3으로 바로 적용이 가능하다.

[출처] 위키백과 https://ko.wikipedia.org/wiki/SHA

0 0 votes
Article Rating
구독
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x