SHA-1

암호학에서 SHA-1(Secure Hash Algorithm 1)는 입력을 받고 메시지 다이제스트라는 160비트(20바이트) 해시값을 만드는 암호화 해시 함수로, 보통은 16진수 40자리로 렌더링된다. 미국 국가안보국이 설계하였으며 미국의 연방 정보 처리 표준이다.

2005년부터 SHA-1은 충분한 재원이 있는 적들에게 안전하지 않은 것으로 간주되고 있다. 2010년 기준으로 수많은 단체들이 대체를 권고하였다.
NIST는 2011년에 SHA-1의 이용을 구시식화했으며 2013년에 디지털 서명을 위한 이용에 사용을 불허했다. 2020년 기준으로 SHA-1에 대항하는 선택 접두어 공격(chosen-prefix attack)이 현실화되었다. 이러한 이유로 가능한 조속히 SHA-1를 제거하고 SHA-2 또는 SHA-3를 사용할 것이 권고된다. 디지털 서명을 위해 사용되는 환경에서 SHA-1을 대체하는 것은 시급하다.

모든 주요 웹 브라우저 벤더들은 2017년 SHA-1 SSL 인증서의 수용을 중단했다.
2017년 2월, CWI 암스테르담과 구글은 SHA-1에 대한 충돌 공격을 수행했다고 발표했으며 동일한 SHA-1 해시를 생성하는 구별된 2개의 PDF 파일들을 출판했다. 그러나 SHA-1은 여전히 HMAC에 대해서는 안전하다.

마이크로소프트는 2020년 8월 7일 윈도우 업데이트의 SHA-1 코드 서명 지원을 중단했다.

구현체 
다음은 SHA-1을 지원하는 암호화 라이브러리 목록이다1:

 Botan
 Bouncy Castle
 Cryptlib
 Crypto++
 Libgcrypt
 Mbed TLS
 Nettle
 LibreSSL
 OpenSSL
 GnuTLS

다음의 프로세서 확장에 의해 하드웨어 가속이 제공된다:

 인텔 SHA 확장: 인텔 및 AMD x86 프로세서에서 이용 가능.
 VIA PadLock

각주

참고 자료 

 Eli Biham, Rafi Chen, Near-Collisions of SHA-0, Cryptology ePrint Archive, Report 2004/146, 2004 (appeared on CRYPTO 2004), IACR.org
 Xiaoyun Wang, Hongbo Yu and Yiqun Lisa Yin, Efficient Collision Search Attacks on SHA-0, Crypto 2005
 Xiaoyun Wang, Yiqun Lisa Yin and Hongbo Yu, Finding Collisions in the Full SHA-1, Crypto 2005
 Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. Selected Areas in Cryptography 2003: pp175–193
 An Illustrated Guide to Cryptographic Hashes
 
 A. Cilardo, L. Esposito, A. Veniero, A. Mazzeo, V. Beltran, E. Ayugadé, A CellBE-based HPC application for the analysis of vulnerabilities in cryptographic hash functions, High Performance Computing and Communication international conference, August 2010

외부 링크 
 CSRC Cryptographic Toolkit – Official NIST site for the Secure Hash Standard
 FIPS 180-4: Secure Hash Standard (SHS)
  (with sample C implementation)
 Interview with Yiqun Lisa Yin concerning the attack on SHA-1
 Explanation of the successful attacks on SHA-1 (3 pages, 2006)
 Cryptography Research – Hash Collision Q&A
 
  by Christof Paar 

암호화 해시 함수
체크섬 알고리즘