"SHA"의 두 판 사이의 차이
leejia1222 (토론 | 기여) (새 문서: SHA는 서로 관련된 암호학적 해시 함수들의 모음이다. ==개요== SHA-0은 미국 국립표준연구소(NIST)에서 1993년 발표되고 FIPS PUB 180으...) |
leejia1222 (토론 | 기여) (→상세) |
||
9번째 줄: | 9번째 줄: | ||
==상세== | ==상세== | ||
− | + | ===SHA-0=== | |
− | + | 최초의 해시 함수 알고리즘은 1993년에 미국 국립표준연구소(NIST)가 발표한 [[안전한 해시 표준]](Secure Hsah Standard, SHS)으로 표준 FIPS PUB 180으로 공표되었다. 이것이 우리가 흔히 알고 있는 SHA-0이며 다른 함수들과 구별하기 위해 SHA-0이라 부르기 시작했다. 이는 해시 알고리즘 중 하나인 MD-4 알고리즘에 기반을 두고 있으며, MD-5의 취약성을 개선 및 대처하기 위해 설계되었다. | |
− | + | ===SHA-1=== | |
− | + | 안전한 해시 표준이 발표되고 얼마 지나지 않아 미국 국가안보국(NSA)이 이 표준을 폐기하고, 1995년 개정된 알고리즘인 SHA-1(FIPS PUB 180-1)을 발표했다. 이를 우리는 SHA-1이라 일컫는다. SHA-1는 SHA-0의 압축 함수 비트 회전 연산을 하나 추가한 것인데, 미국 국가안보국에 따르면 SHA-1은 기존의 알고리즘에서 암호학적 보안을 감소시키는 결함들을 수정한 것이라고 설명했지만 실제로 그 결함이 무엇인지는 공개하지 않았다. 일반적으로 SHA-1은 SHA-0과 비교해 암호학적 공격이 힘든 것으로 알려져 있는 것으로 보아 미국 국가안보국의 주장은 어느 정도 설득력이 있다고 볼 수 있다. SHA-1은 입력된 메시지를 512 비트 블록 단위로 처리하며, 160 비트의 해시값을 생성해낸다. 입력 메시지 길이 상한은 2⁶⁴이며 해시값의 길이는 160 비트, 즉 20 바이트이다. | |
SHA-1은 [[로버트 라이베스트]](Robert Rivest)가 개발한 MD-5 계열의 해시 함수들과 매우 비슷하다. 이 둘을 비교해 보자면, SHA-1과 MD-5의 사전 [[패딩]] 처리는 동일하다. 출력값에 있어서는 SHA-1이 MD-5보다 길기 때문에 안전하나 SHA 버퍼 크기가 MD-5보다 더 크기 때문에 속도 면에서는 MD-5가 25%정도 더 빠르다. 따라서 SHA-1은 MD-5보다는 다소 느리지만 대규모 메시지 요약들이 폭력적 충돌 및 도치 공격을 받을 때 좀 더 안전하게 지켜줄 수 있다.<ref>〈[http://www.dbguide.net/db.db?boardUid=145958&boardConfigUid=9&boardIdx=107 제3장 DBMS_CRYPTO]〉, 《데이터전문가지식포털》</ref> | SHA-1은 [[로버트 라이베스트]](Robert Rivest)가 개발한 MD-5 계열의 해시 함수들과 매우 비슷하다. 이 둘을 비교해 보자면, SHA-1과 MD-5의 사전 [[패딩]] 처리는 동일하다. 출력값에 있어서는 SHA-1이 MD-5보다 길기 때문에 안전하나 SHA 버퍼 크기가 MD-5보다 더 크기 때문에 속도 면에서는 MD-5가 25%정도 더 빠르다. 따라서 SHA-1은 MD-5보다는 다소 느리지만 대규모 메시지 요약들이 폭력적 충돌 및 도치 공격을 받을 때 좀 더 안전하게 지켜줄 수 있다.<ref>〈[http://www.dbguide.net/db.db?boardUid=145958&boardConfigUid=9&boardIdx=107 제3장 DBMS_CRYPTO]〉, 《데이터전문가지식포털》</ref> | ||
− | + | ===SHA-2=== | |
미국 국립표준연구소는 2000년대에 들어 해시값의 길이가 더 긴 네 개의 변형 해시 알고리즘을 발표했다. 이를 통칭하여 SHA-2라 부른다.<ref>잡다구리, 〈[https://blog.naver.com/intel199/220230567604 SHA-256 – 복호화가 되지 않도록 하는 암호화 기법]〉, 《네이버 블로그》, 2015-01-05</ref> SHA-256, SHA-384, SHA-512는 2001년에 초안으로 처음 발표되었으며, 2004년 2월에 보안 수준을 3DES에 맞게 수정한 SHA-224와 함께 정식 표준(FIPS PUB 180-2)으로 공표되었다. SHA-256과 SHA-512는 각각 32바이트 및 64바이트 워드를 사용하는 해시 함수이며, 몇몇 상수들이 다르기는 하지만 그 구조는 라운드의 수를 제외하고는 완전하게 일치한다.<ref>위키백과 SHA - https://ko.wikipedia.org/wiki/SHA</ref> SHA-224와 SHA-384는 서로 다른 초깃값을 가지고 계산한 SHA-256과 SHA-512의 해싯값을 최종 해시값 길이에 맞춰 잘라낸 것이다.<ref>카이트, 〈[https://blog.naver.com/kites_/220582266882 SHA?]〉, 《네이버 블로그》, 2015-12-29</ref> | 미국 국립표준연구소는 2000년대에 들어 해시값의 길이가 더 긴 네 개의 변형 해시 알고리즘을 발표했다. 이를 통칭하여 SHA-2라 부른다.<ref>잡다구리, 〈[https://blog.naver.com/intel199/220230567604 SHA-256 – 복호화가 되지 않도록 하는 암호화 기법]〉, 《네이버 블로그》, 2015-01-05</ref> SHA-256, SHA-384, SHA-512는 2001년에 초안으로 처음 발표되었으며, 2004년 2월에 보안 수준을 3DES에 맞게 수정한 SHA-224와 함께 정식 표준(FIPS PUB 180-2)으로 공표되었다. SHA-256과 SHA-512는 각각 32바이트 및 64바이트 워드를 사용하는 해시 함수이며, 몇몇 상수들이 다르기는 하지만 그 구조는 라운드의 수를 제외하고는 완전하게 일치한다.<ref>위키백과 SHA - https://ko.wikipedia.org/wiki/SHA</ref> SHA-224와 SHA-384는 서로 다른 초깃값을 가지고 계산한 SHA-256과 SHA-512의 해싯값을 최종 해시값 길이에 맞춰 잘라낸 것이다.<ref>카이트, 〈[https://blog.naver.com/kites_/220582266882 SHA?]〉, 《네이버 블로그》, 2015-12-29</ref> | ||
{{각주}} | {{각주}} |
2019년 4월 9일 (화) 11:03 판
SHA는 서로 관련된 암호학적 해시 함수들의 모음이다.
개요
SHA-0은 미국 국립표준연구소(NIST)에서 1993년 발표되고 FIPS PUB 180으로 공표된 해시 함수 알고리즘을 말한다. 이는 해시 알고리즘 중 하나인 MD-4에 기반을 두고 있으며 MD-5의 취약점을 개선하고 대체하기 위해 개발되었다.[1]
이후 1995년 미국 국가안보국은 SHA-1(FIPS PUB 180-1)을 발표했다. 이는 입력된 메시지를 512 비트 블록 단위로 처리하며, 160 비트의 출력값을 생성한다. 입력 메시지 길이 상한은 입력 메시지 길이 상한은 2⁶⁴이며 해시값의 길이는 160 비트이다. SHA-1은 SHA 함수군 중 가장 많이 쓰이며 TLS, SSL, PGP, SSH, IPSes 등 다양한 보안 프로토콜과 프로그램에서 사용되고 있다. 특히, SHA-1은 이전에 널리 사용되던 MD-5를 대신하여 사용되기도 한다.
2002년, 미국 국가안보국은 SHA-1 및 그 변형인 SHA-256, SHA-384, SHA-512에 추가하여 보안 수준을 3DES에 맞게 수정한 SHA-224를 함께 SHA-2(FIPS PUB 180-2)로 공표하였다. 그냥 SHA-2라 하면 SHA-224, SHA-256, SHA-384, SHA-512, 4개를 총칭한다.
상세
SHA-0
최초의 해시 함수 알고리즘은 1993년에 미국 국립표준연구소(NIST)가 발표한 안전한 해시 표준(Secure Hsah Standard, SHS)으로 표준 FIPS PUB 180으로 공표되었다. 이것이 우리가 흔히 알고 있는 SHA-0이며 다른 함수들과 구별하기 위해 SHA-0이라 부르기 시작했다. 이는 해시 알고리즘 중 하나인 MD-4 알고리즘에 기반을 두고 있으며, MD-5의 취약성을 개선 및 대처하기 위해 설계되었다.
SHA-1
안전한 해시 표준이 발표되고 얼마 지나지 않아 미국 국가안보국(NSA)이 이 표준을 폐기하고, 1995년 개정된 알고리즘인 SHA-1(FIPS PUB 180-1)을 발표했다. 이를 우리는 SHA-1이라 일컫는다. SHA-1는 SHA-0의 압축 함수 비트 회전 연산을 하나 추가한 것인데, 미국 국가안보국에 따르면 SHA-1은 기존의 알고리즘에서 암호학적 보안을 감소시키는 결함들을 수정한 것이라고 설명했지만 실제로 그 결함이 무엇인지는 공개하지 않았다. 일반적으로 SHA-1은 SHA-0과 비교해 암호학적 공격이 힘든 것으로 알려져 있는 것으로 보아 미국 국가안보국의 주장은 어느 정도 설득력이 있다고 볼 수 있다. SHA-1은 입력된 메시지를 512 비트 블록 단위로 처리하며, 160 비트의 해시값을 생성해낸다. 입력 메시지 길이 상한은 2⁶⁴이며 해시값의 길이는 160 비트, 즉 20 바이트이다.
SHA-1은 로버트 라이베스트(Robert Rivest)가 개발한 MD-5 계열의 해시 함수들과 매우 비슷하다. 이 둘을 비교해 보자면, SHA-1과 MD-5의 사전 패딩 처리는 동일하다. 출력값에 있어서는 SHA-1이 MD-5보다 길기 때문에 안전하나 SHA 버퍼 크기가 MD-5보다 더 크기 때문에 속도 면에서는 MD-5가 25%정도 더 빠르다. 따라서 SHA-1은 MD-5보다는 다소 느리지만 대규모 메시지 요약들이 폭력적 충돌 및 도치 공격을 받을 때 좀 더 안전하게 지켜줄 수 있다.[2]
SHA-2
미국 국립표준연구소는 2000년대에 들어 해시값의 길이가 더 긴 네 개의 변형 해시 알고리즘을 발표했다. 이를 통칭하여 SHA-2라 부른다.[3] SHA-256, SHA-384, SHA-512는 2001년에 초안으로 처음 발표되었으며, 2004년 2월에 보안 수준을 3DES에 맞게 수정한 SHA-224와 함께 정식 표준(FIPS PUB 180-2)으로 공표되었다. SHA-256과 SHA-512는 각각 32바이트 및 64바이트 워드를 사용하는 해시 함수이며, 몇몇 상수들이 다르기는 하지만 그 구조는 라운드의 수를 제외하고는 완전하게 일치한다.[4] SHA-224와 SHA-384는 서로 다른 초깃값을 가지고 계산한 SHA-256과 SHA-512의 해싯값을 최종 해시값 길이에 맞춰 잘라낸 것이다.[5]
각주
- ↑ ppp7009, 〈Hash알고리즘.〉, 《네이버 블로그》, 2015-08-05
- ↑ 〈제3장 DBMS_CRYPTO〉, 《데이터전문가지식포털》
- ↑ 잡다구리, 〈SHA-256 – 복호화가 되지 않도록 하는 암호화 기법〉, 《네이버 블로그》, 2015-01-05
- ↑ 위키백과 SHA - https://ko.wikipedia.org/wiki/SHA
- ↑ 카이트, 〈SHA?〉, 《네이버 블로그》, 2015-12-29