"SHA1"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
3번째 줄: 3번째 줄:
 
== 개요 ==  
 
== 개요 ==  
  
SHA-1은 임의의 길이의 입력데이터를 106비트의 출력데이터로 바꾸는 것이다. <ref> 늦둥이해커,〈[http://blog.naver.com/PostView.nhn?blogId=kimsumin75&logNo=20071288674 SHA-1 알고리즘]〉 , 《네이버 블로그》 2009-06-24</ref>  
+
SHA-1은 임의의 길이의 입력데이터를 106비트의 출력데이터로 바꾸는 것이다. <ref name = "sha 알고리즘"> 늦둥이해커,〈[http://blog.naver.com/PostView.nhn?blogId=kimsumin75&logNo=20071288674 SHA-1 알고리즘]〉 , 《네이버 블로그》 2009-06-24</ref>  
  
 
==출연 배경==
 
==출연 배경==
18번째 줄: 18번째 줄:
 
* 입력 메세지 길이 상한 : 2⁶⁴
 
* 입력 메세지 길이 상한 : 2⁶⁴
 
* 해시값 길이 : 160 비트 (20 바이트)
 
* 해시값 길이 : 160 비트 (20 바이트)
* MD5와 비교 : 사전 패딩 처리는 MD5와 동일, 출력값에 있어서는 MD5보다 길기 때문에 SHA-1이 더 안전하나 SHA-1버퍼 크기가 MD-5보다 더 크기때문에 속도면에서는 MD5가 25%정도 더 빠르다.
 
 
* 주요 처리 : 패딩 처리(메세지 길이를 512 비트 단위(입력 블록 상한)로 잘라서 512 비트 정수배로 만듬, 입력 블록 단위의 처리 (32 비트 * 80개 값(W₀ ~ W₇₉)을 계산, 블록처리, 1단계 처리<ref> 차재복,〈[http://www.ktword.co.kr/abbr_view.php?m_temp1=2941 해시알고리즘]〉 , 《정보통신기술용어해설》</ref>
 
* 주요 처리 : 패딩 처리(메세지 길이를 512 비트 단위(입력 블록 상한)로 잘라서 512 비트 정수배로 만듬, 입력 블록 단위의 처리 (32 비트 * 80개 값(W₀ ~ W₇₉)을 계산, 블록처리, 1단계 처리<ref> 차재복,〈[http://www.ktword.co.kr/abbr_view.php?m_temp1=2941 해시알고리즘]〉 , 《정보통신기술용어해설》</ref>
 +
 +
== 비교 ==
 +
 +
SHA-1은 MD5보다 빠르고 보안성이 더 강화되었다. 보안성이 강하다고 하는 것은 message digest 된 값을 보고 이것에 해당하는 원본메세지를 찾는 것이 어렵고 똑같은 message digest 값을 생성하는 2개의 서로 다른 메세지를 찾는  것이 어려운 것을 말한다. 또한 SHA-1은 원본메세지의 조그만 변화도 매우 급속하게 message digest에 변화를 전파합니다. <ref name = "sha 알고리즘"></ref>
 +
 +
== 알고리즘 구현 ==
 +
패딩 ; 메세지 다음에 여분의 데이터를 부가하여 메시지 길이가
 +
  
 
== 문제점==
 
== 문제점==

2019년 6월 28일 (금) 17:33 판

SHA-1은 SHA-0을 변형된 SHA 함수들 중 하나이며, SHA 함수들 중 가장 많이 쓰이고 있다.

개요

SHA-1은 임의의 길이의 입력데이터를 106비트의 출력데이터로 바꾸는 것이다. [1]

출연 배경

1993년에 미국 표준 기술 연구소(NIST)에서 SHA-0(안전한 해시 표준)이 출판된 이후 얼마 안있어 NDA는 SHA-0을 폐기했고, 1995년에 개장된 알고리즘(FIPS PUB 180-1)을 새로 출판했다. 이 새로운 알고리즘을 SHA-1이라고 부른다. SHA-1은 SHA-0의 압축함수에 비트 회전 연산을 하나 추가한 것으로, NSA에 따르면 이는 원래 알고리즘에서 암호학적 보안을 감소시키는 문제점을 고친 것이라고 한다. 하지만 실제로 어떤 문제점이 잇었는지 공개하지 않았다. 일반적으로 SHA-1은 SHA-0보다 암호학적 공격이 힘든 것으로 알려져 있고, 따라서 보안에 대한 문제점을 보완한 NSA의 주장은 어느정도 설득력이 있다. SHA-1은 최대 2⁶⁴비트 메세지로부터 160비트 해시값을 만들어내고, 로널드 라이베스트가 MD4 및 MD5 해시 함수에서 사용했던 것과 비슷한 방법을 사용한다.

용도

  • 서명문 생성을 위한 알고리즘

현재 발표된 SHA-1 알고리즘은 많은 인터넷 보안 프로토콜과 공개키 인증서에도 적용되고있는 매우 중요한 암호 알고리즘이다. 대표적으로 인터넷 보안 프로토콜인 IPSec, 안전한 전자메일 보안 표준인 SMIME, 단대단 보안을 제공하는 TLS와 SSL, 컴퓨터 파일을 암호화하고 복호화하는 프로그램인 PGP, 네트워크 상의 다른 컴퓨터에 로그인 하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용프로그램 또는 프로토콜인 SSH 등 인증서 기반의 많은 보안 프로토콜에서 암호 프리미티브로 사용되고 있다. [2]

특징

  • SHA-1은 입력된 메세지를 512바트 블록 단위로 처리하여, 160 비트의 출력값(해시값)생성
  • 입력 메세지 길이 상한 : 2⁶⁴
  • 해시값 길이 : 160 비트 (20 바이트)
  • 주요 처리 : 패딩 처리(메세지 길이를 512 비트 단위(입력 블록 상한)로 잘라서 512 비트 정수배로 만듬, 입력 블록 단위의 처리 (32 비트 * 80개 값(W₀ ~ W₇₉)을 계산, 블록처리, 1단계 처리[3]

비교

SHA-1은 MD5보다 빠르고 보안성이 더 강화되었다. 보안성이 강하다고 하는 것은 message digest 된 값을 보고 이것에 해당하는 원본메세지를 찾는 것이 어렵고 똑같은 message digest 값을 생성하는 2개의 서로 다른 메세지를 찾는 것이 어려운 것을 말한다. 또한 SHA-1은 원본메세지의 조그만 변화도 매우 급속하게 message digest에 변화를 전파합니다. [1]

알고리즘 구현

패딩 ; 메세지 다음에 여분의 데이터를 부가하여 메시지 길이가


문제점

현재는 모든 OS, 브라우저에서 SHA-1 알고리즘을 지원 중단하고 SHA-2 계열을 지원했다.채택된지 10년 만에, 처음으로 취약점이 제기된것이다. 따라서 2011년 1월 (NIST 문서 SP800-131A) SHA-2가 새로운 권장 해시 표준이 되었다. SHA-1의 취약점은 이론적인 이야기일 뿐이엿지만 2016년에 암호화를 사용하는 세계의 주요 업체(구글, MS 등)에서 2018년 1월 1일까지 SHA-2로 전환을 의무화했다. 그 이유는 SHA-1은 160비트의 메세지 다이제스트를 생성하는데 무차별 대입 공격으로 동일한 해시를 만들 수 있는 취약점이 CWI Amsterdam과 구글의 공동 연구 끝에 제기되면서 SHA-1은 더이상 안전한 알고리즘이 아니며, 더 이상 사용되면 안된된다고 판단했기 때문이다. [4]2017년 중순에 구글에서 SHA-1 충돌 공격 성공을 발표함으로써 전 세계 대부분의 기업들이 SHA-2로 전환을 완료했다. [5]

각주

  1. 1.0 1.1 늦둥이해커,〈SHA-1 알고리즘〉 , 《네이버 블로그》 2009-06-24
  2. fl0ckfl0ck,〈SHA-1 알고리즘〉 , 《티스토리》 2009-03-24
  3. 차재복,〈해시알고리즘〉 , 《정보통신기술용어해설》
  4. 알약,〈SHA-1, 더이상 안전하지 않아〉 , 《알약 블로그》 2017-02-27
  5. 덜지,〈SHA-1지원 중단으로 인한 SHA-2 표준 적용〉 , 《티스토리》 2018-09-18

참고 자료