검수요청.png검수요청.png

"SHA"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
잔글 (같이 보기)
잔글 (SHA-2)
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''SHA'''(Secure Hash Algorithm)는 서로 관련된 [[암호학적 해시 함수]]들의 모음이다.
+
'''SHA'''(Secure Hash Algorithm)는 서로 관련된 암호학적 [[해시함수]]들의 모음이다.
  
 
==개요==
 
==개요==
[[SHA-0]]은 미국 [[국립표준기술연구소]](NIST)에서 1993년 발표되고 [[FIPS PUB 180]]으로 공표된 [[해시 함수 알고리즘]]을 말한다. 이는 해시 알고리즘 중 하나인 [[MD4]]에 기반을 두고 있으며 [[MD5]]의 취약점을 개선하고 대체하기 위해 개발되었다.<ref>ppp7009, 〈[https://blog.naver.com/ppp7009/220442027617 Hash알고리즘.]〉, 《네이버 블로그》, 2015-08-05</ref>
+
[[SHA-0]]은 [[미국 국립표준기술연구소]](NIST)에서 1993년 발표되고 [[FIPS PUB 180]]으로 공표된 [[해시함수]] [[알고리즘]]을 말한다. 이는 해시 알고리즘 중 하나인 [[MD4]]에 기반을 두고 있으며 [[MD5]]의 취약점을 개선하고 대체하기 위해 개발되었다.<ref>ppp7009, 〈[https://blog.naver.com/ppp7009/220442027617 Hash알고리즘.]〉, 《네이버 블로그》, 2015-08-05</ref>
  
이후 1995년 미국 [[국가안보국]]은 [[SHA-1]]([[FIPS PUB 180-1]])을 발표했다. 이는 입력된 메시지를 512 비트 [[블록]] 단위로 처리하며, 160 비트의 출력값을 생성한다. 입력 메시지 길이 상한은 입력 메시지 길이 상한은 2⁶⁴이며 [[해시값]]의 길이는 160 비트이다. SHA-1은 SHA 함수군 중 가장 많이 쓰이며 [[TLS]], [[SSL]], [[PGP]], [[SSH]], [[IPSes]] 등 다양한 보안 [[프로토콜]]과 프로그램에서 사용되고 있다. 특히, SHA-1은 이전에 널리 사용되던 MD5를 대신하여 사용되기도 한다.  
+
이후 1995년 [[미국 국가안보국]](NSA)은 [[SHA-1]]([[FIPS PUB 180-1]])을 발표했다. 이는 입력된 메시지를 512 비트 [[블록]] 단위로 처리하며, 160 비트의 출력값을 생성한다. 입력 메시지 길이 상한은 입력 메시지 길이 상한은 2⁶⁴이며 [[해시값]]의 길이는 160 비트이다. SHA-1은 SHA 함수군 중 가장 많이 쓰이며 [[TLS]], [[SSL]], [[PGP]], [[SSH]], [[IPSes]] 등 다양한 보안 [[프로토콜]]과 프로그램에서 사용되고 있다. 특히, SHA-1은 이전에 널리 사용되던 MD5를 대신하여 사용되기도 한다.  
  
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개를 총칭한다.
+
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개를 총칭한다.
  
 
==종류==
 
==종류==
14번째 줄: 14번째 줄:
  
 
===SHA-1===
 
===SHA-1===
안전한 해시 표준이 발표되고 얼마 지나지 않아 미국 국가안보국(NSA)이 이 표준을 폐기하고, 1995년 개정된 알고리즘인 '''SHA-1'''(FIPS PUB 180-1)을 발표했다. SHA-1는 SHA-0의 압축 함수 비트 회전 연산을 하나 추가한 것인데, 미국 국가안보국에 따르면 SHA-1은 기존의 알고리즘에서 암호학적 보안을 감소시키는 결함들을 수정한 것이라고 설명했지만 실제로 그 결함이 무엇인지는 공개하지 않았다. 일반적으로 SHA-1은 SHA-0과 비교해 암호학적 공격이 힘든 것으로 알려져 있는 것으로 보아 미국 국가안보국의 주장은 어느 정도 설득력이 있다고 볼 수 있다. SHA-1은 입력된 메시지를 512 비트 블록 단위로 처리하며, 160 비트의 해시값을 생성해낸다. 입력 메시지 길이 상한은 2⁶⁴이며 해시값의 길이는 160 비트, 즉 20 바이트이다.  
+
안전한 해시 표준이 발표되고 얼마 지나지 않아 [[미국 국가안보국]](NSA)이 이 표준을 폐기하고, 1995년 개정된 알고리즘인 '''[[SHA-1]]'''(FIPS PUB 180-1)을 발표했다. SHA-1는 SHA-0의 압축 함수 비트 회전 연산을 하나 추가한 것인데, 미국 국가안보국에 따르면 SHA-1은 기존의 알고리즘에서 암호학적 보안을 감소시키는 결함들을 수정한 것이라고 설명했지만 실제로 그 결함이 무엇인지는 공개하지 않았다. 일반적으로 SHA-1은 SHA-0과 비교해 암호학적 공격이 힘든 것으로 알려져 있는 것으로 보아 미국 국가안보국의 주장은 어느 정도 설득력이 있다고 볼 수 있다. SHA-1은 입력된 메시지를 512 비트 블록 단위로 처리하며, 160 비트의 해시값을 생성해낸다. 입력 메시지 길이 상한은 2⁶⁴이며 해시값의 길이는 160 비트, 즉 20 바이트이다.  
  
SHA-1은 [[로널드 리베스트]](Ronald Rivest)가 개발한 MD5 계열의 해시 함수들과 매우 비슷하다. 이 둘을 비교해 보자면, SHA-1과 MD5의 사전 [[패딩]] 처리는 동일하다. 출력값에 있어서는 SHA-1이 MD5보다 길기 때문에 안전하나 SHA  버퍼 크기가 MD5보다 더 크기 때문에 속도 면에서는 MD5가 25%정도 더 빠르다. 따라서 SHA-1은 MD5보다는 다소 느리지만 대규모 메시지 요약들이 폭력적 충돌 및 도치 공격을 받을 때 좀 더 안전하게 지켜줄 수 있다.<ref>〈[http://www.dbguide.net/db.db?boardUid=145958&boardConfigUid=9&boardIdx=107 제3장 DBMS_CRYPTO]〉, 《데이터전문가지식포털》</ref>
+
SHA-1은 [[로널드 리베스트]](Ronald Rivest)가 개발한 [[MD5]] 계열의 해시 함수들과 매우 비슷하다. 이 둘을 비교해 보자면, SHA-1과 MD5의 사전 [[패딩]] 처리는 동일하다. 출력값에 있어서는 SHA-1이 MD5보다 길기 때문에 안전하나 SHA  버퍼 크기가 MD5보다 더 크기 때문에 속도 면에서는 MD5가 25% 정도 더 빠르다. 따라서 SHA-1은 MD5보다는 다소 느리지만 대규모 메시지 요약들이 폭력적 충돌 및 도치 공격을 받을 때 좀 더 안전하게 지켜줄 수 있다.<ref>〈[http://www.dbguide.net/db.db?boardUid=145958&boardConfigUid=9&boardIdx=107 제3장 DBMS_CRYPTO]〉, 《데이터전문가지식포털》</ref>
  
 
===SHA-2===
 
===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 name="위키">위키백과  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 name="위키">위키백과  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>
  
 
{{각주}}
 
{{각주}}
31번째 줄: 31번째 줄:
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 +
* [[해시]]
 +
* [[해시함수]]
 +
* [[알고리즘]]
 +
* [[SHA0]]
 +
* [[SHA1]]
 +
* [[SHA2]]
 
* [[블록체인]]
 
* [[블록체인]]
* [[국립표준기술연구소]](NIST)
+
* [[미국 국립표준기술연구소]](NIST)
 +
* [[미국 국가안보국]](NSA)
  
 
{{암호 알고리즘|검토 필요}}
 
{{암호 알고리즘|검토 필요}}

2022년 12월 13일 (화) 00:51 기준 최신판

SHA(Secure Hash Algorithm)는 서로 관련된 암호학적 해시함수들의 모음이다.

개요[편집]

SHA-0미국 국립표준기술연구소(NIST)에서 1993년 발표되고 FIPS PUB 180으로 공표된 해시함수 알고리즘을 말한다. 이는 해시 알고리즘 중 하나인 MD4에 기반을 두고 있으며 MD5의 취약점을 개선하고 대체하기 위해 개발되었다.[1]

이후 1995년 미국 국가안보국(NSA)은 SHA-1(FIPS PUB 180-1)을 발표했다. 이는 입력된 메시지를 512 비트 블록 단위로 처리하며, 160 비트의 출력값을 생성한다. 입력 메시지 길이 상한은 입력 메시지 길이 상한은 2⁶⁴이며 해시값의 길이는 160 비트이다. SHA-1은 SHA 함수군 중 가장 많이 쓰이며 TLS, SSL, PGP, SSH, IPSes 등 다양한 보안 프로토콜과 프로그램에서 사용되고 있다. 특히, SHA-1은 이전에 널리 사용되던 MD5를 대신하여 사용되기도 한다.

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[편집]

SHA 알고리즘 비교표

최초의 해시 함수 알고리즘은 1993년에 미국 국립표준기술연구소(NIST)가 발표한 안전한 해시 표준(Secure Hsah Standard, SHS)으로 표준 FIPS PUB 180으로 공표되었다. 이것이 우리가 흔히 알고 있는 SHA-0이며 다른 함수들과 구별하기 위해 SHA-0이라 부르기 시작했다. 이는 해시 알고리즘 중 하나인 MD4 알고리즘에 기반을 두고 있으며, MD5의 취약성을 개선 및 대처하기 위해 설계되었다.

SHA-1[편집]

안전한 해시 표준이 발표되고 얼마 지나지 않아 미국 국가안보국(NSA)이 이 표준을 폐기하고, 1995년 개정된 알고리즘인 SHA-1(FIPS PUB 180-1)을 발표했다. SHA-1는 SHA-0의 압축 함수 비트 회전 연산을 하나 추가한 것인데, 미국 국가안보국에 따르면 SHA-1은 기존의 알고리즘에서 암호학적 보안을 감소시키는 결함들을 수정한 것이라고 설명했지만 실제로 그 결함이 무엇인지는 공개하지 않았다. 일반적으로 SHA-1은 SHA-0과 비교해 암호학적 공격이 힘든 것으로 알려져 있는 것으로 보아 미국 국가안보국의 주장은 어느 정도 설득력이 있다고 볼 수 있다. SHA-1은 입력된 메시지를 512 비트 블록 단위로 처리하며, 160 비트의 해시값을 생성해낸다. 입력 메시지 길이 상한은 2⁶⁴이며 해시값의 길이는 160 비트, 즉 20 바이트이다.

SHA-1은 로널드 리베스트(Ronald Rivest)가 개발한 MD5 계열의 해시 함수들과 매우 비슷하다. 이 둘을 비교해 보자면, SHA-1과 MD5의 사전 패딩 처리는 동일하다. 출력값에 있어서는 SHA-1이 MD5보다 길기 때문에 안전하나 SHA 버퍼 크기가 MD5보다 더 크기 때문에 속도 면에서는 MD5가 25% 정도 더 빠르다. 따라서 SHA-1은 MD5보다는 다소 느리지만 대규모 메시지 요약들이 폭력적 충돌 및 도치 공격을 받을 때 좀 더 안전하게 지켜줄 수 있다.[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]

각주[편집]

  1. ppp7009, 〈Hash알고리즘.〉, 《네이버 블로그》, 2015-08-05
  2. 제3장 DBMS_CRYPTO〉, 《데이터전문가지식포털》
  3. 잡다구리, 〈SHA-256 – 복호화가 되지 않도록 하는 암호화 기법〉, 《네이버 블로그》, 2015-01-05
  4. 위키백과 SHA - https://ko.wikipedia.org/wiki/SHA
  5. 카이트, 〈SHA?〉, 《네이버 블로그》, 2015-12-29

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 SHA 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.