암호학적 해시 함수(cryptographic hash function)는 길이가 정해지지 않은 비트 열을 받아 길이가 고정된 비트 열을 내는 해시 함수 가운데, 역상 저항, 제2역상 저항, 충돌 저항을 갖도록 설계된 것이다.[1] 출력은 해시 값(hash value) 또는 메시지 다이제스트(message digest)라 부른다.[2] 해시 함수는 키를 쓰지 않는다.[3][4]

FIPS 180-4가 정한 해시 알고리즘은 메시지가 조금이라도 바뀌면 매우 높은 확률로 다른 메시지 다이제스트를 낸다. 해시 값은 메시지의 무결성 확인과 디지털 서명, 메시지 인증 코드(MAC)의 생성과 검증에 쓰인다.[5]

보안 성질

  • 역상 저항(preimage resistance): 해시 값 하나가 주어질 때, 그 해시 값을 내는 입력을 찾는 것이 계산상 불가능하다.
  • 제2역상 저항(second preimage resistance): 입력 하나가 주어질 때, 같은 해시 값을 내는 다른 입력을 찾는 것이 계산상 불가능하다.
  • 충돌 저항(collision resistance): 해시 값이 같은 서로 다른 두 입력을 찾는 것이 계산상 불가능하다.[1][4]

출력이 비트인 해시 함수의 충돌 저항 강도는 비트로 기대된다.[1] RFC 4949에 따르면 이는 생일 공격 때문으로, 비트 출력 함수에 무작위 입력 개를 넣으면 같은 출력이 둘 이상 나올 확률이 절반을 넘는다.[4] NIST SP 800-107 Rev. 1에 따르면 역상 저항의 기대 강도는 비트다.[1]

SHA 계열

NIST는 1993년 FIPS 180으로 SHS(Secure Hash Standard)를 펴내고, 그 안에 SHA(Secure Hash Algorithm)를 정했다.[6] RFC 6194는 이 첫 알고리즘을 SHA-0이라 부른다.[7]

  • FIPS 180-1(1995)은 SHA의 계산에 순환 왼쪽 시프트를 더해 고친 SHA-1을 정했다.[8]
  • FIPS 180-2(2002)는 SHA-256, SHA-384, SHA-512를 더했고[9], 2004년의 Change Notice 1이 SHA-224를 더했다.[10]
  • FIPS 180-4는 SHA-512/224와 SHA-512/256을 더했다.[5]

FIPS 180-4는 SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256을 정하고, SHA-1의 메시지 다이제스트를 160비트로 정한다.[5] 이 가운데 SHA-1을 뺀 여섯을 SHA-2 계열이라 부른다. FIPS 202는 Keccak에 바탕을 둔 SHA-3 계열을 정한다. 이 계열은 해시 함수 SHA3-224, SHA3-256, SHA3-384, SHA3-512와 확장 출력 함수(XOF, extendable-output function) SHAKE128, SHAKE256으로 이루어진다.[2] NIST는 2007년에 SHA-3 공모를 열고, 2012년에 Keccak을 뽑았다.[11]

NIST는 2022년에 충돌 공격이 SHA-1을 약화시켰다고 보고, SHA-1을 2030년 12월 31일까지 단계적으로 퇴역시킨다고 발표했다.[12] NIST SP 800-131A Rev. 2는 NIST의 프로토콜별 지침이 따로 허용하지 않으면 디지털 서명 생성에 SHA-1을 쓰지 못하게 한다.[13]

CRC·체크섬과의 차이

RFC 4949에 따르면 CRC는 암호학적 해시가 아니라, 데이터가 우연히 바뀔 수 있는 곳에서 무결성을 확인하는 데 쓰는 체크섬이다. 체크섬은 데이터의 우연한 변경을 찾는 데 쓰고, 데이터를 바꾸는 능동 공격자는 붙은 체크섬도 바뀐 데이터에 맞춰 고칠 수 있어서 체크섬만으로는 능동 공격을 막지 못한다. 그래서 이 RFC는 체크섬 결과를 디지털 서명이나 키를 쓰는 해시로 보호하라고 한다.[4]

NIST SP 800-57 Part 1 Rev. 5에 따르면 메시지의 특정 비트가 바뀌면 CRC-32 값도 예측할 수 있게 바뀌어서, 공격자는 이를 이용해 CRC-32 검사를 통과하는 변조 메시지를 만들 수 있다.[14]

암호학적 해시 함수도 키가 없으므로, 키 없이 홀로 쓸 때의 한계는 메시지 인증 코드에서 다룬다. NIST SP 800-175B Rev. 1은 해시 함수만으로 무결성을 보호하지 말기를 권한다. 데이터가 믿을 수 있는 출처에서 오고 해시 값으로 전송 매체의 열화만 찾는 경우처럼 위험이 매우 낮을 때만 예외로 둔다.[3]

[1]
Q. Dang, “Recommendation for Applications Using Approved Hash Algorithms,” NIST Special Publication 800–107 Revision 1, Aug. 2012. Accessed: Oct. 03, 2026. [Online]. Available: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-107r1.pdf
[2]
National Institute of Standards and Technology, “SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions,” FIPS PUB 202, Aug. 2015. Accessed: Oct. 03, 2026. [Online]. Available: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
[3]
E. Barker, “Guideline for Using Cryptographic Standards in the Federal Government: Cryptographic Mechanisms,” NIST Special Publication 800–175B Revision 1, Mar. 2020. Accessed: Oct. 03, 2026. [Online]. Available: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-175Br1.pdf
[4]
IETF, “RFC 4949 Internet Security Glossary, Version 2.” 2007. Accessed: Oct. 03, 2026. [Online]. Available: https://www.rfc-editor.org/rfc/rfc4949
[5]
National Institute of Standards and Technology, “Secure Hash Standard (SHS),” FIPS PUB 180–4, Aug. 2015. Accessed: Oct. 03, 2026. [Online]. Available: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
[6]
NIST, “FIPS 180, Secure Hash Standard (SHS).” 1993. Accessed: Oct. 03, 2026. [Online]. Available: https://csrc.nist.gov/pubs/fips/180/final
[7]
IETF, “RFC 6194 Security Considerations for the SHA-0 and SHA-1 Message-Digest Algorithms.” 2011. Accessed: Oct. 03, 2026. [Online]. Available: https://www.rfc-editor.org/rfc/rfc6194
[8]
National Institute of Standards and Technology, “Secure Hash Standard,” FIPS PUB 180–1, Apr. 1995. Accessed: Oct. 03, 2026. [Online]. Available: https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub180-1.pdf
[9]
NIST, “FIPS 180-2, Secure Hash Standard (SHS).” 2002. Accessed: Oct. 03, 2026. [Online]. Available: https://csrc.nist.gov/pubs/fips/180-2/final
[10]
National Institute of Standards and Technology, “Secure Hash Standard (FIPS 180-2 with Change Notice 1 to include SHA-224),” FIPS PUB 180–2, Change Notice 1, Feb. 2004. Accessed: Oct. 03, 2026. [Online]. Available: https://csrc.nist.gov/files/pubs/fips/180-2/upd1/final/docs/fips180-2withchangenotice.pdf
[11]
NIST, “SHA-3 Project.” 2024. Accessed: Oct. 03, 2026. [Online]. Available: https://csrc.nist.gov/projects/hash-functions/sha-3-project
[12]
NIST, “NIST Retires SHA-1 Cryptographic Algorithm.” 2022. Accessed: Oct. 03, 2026. [Online]. Available: https://www.nist.gov/news-events/news/2022/12/nist-retires-sha-1-cryptographic-algorithm
[13]
E. Barker and A. Roginsky, “Transitioning the Use of Cryptographic Algorithms and Key Lengths,” NIST Special Publication 800–131A Revision 2, Mar. 2019. Accessed: Oct. 03, 2026. [Online]. Available: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf
[14]
E. Barker, “Recommendation for Key Management: Part 1 – General,” NIST Special Publication 800–57 Part 1 Revision 5, May 2020. Accessed: Oct. 03, 2026. [Online]. Available: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf