Cryptographic hash function
암호화 해시 함수(cryptographic hash function)은 해시 함수의 일종으로, 해시 값으로부터 원래의 입력값과의 관계를 찾기 어려운 성질을 가지는 경우를 의미한다. 암호화 해시 함수가 가져야 하는 성질은 다음과 같다.
- 역상 저항성(preimage resistance): 주어진 해시 값에 대해, 그 해시 값을 생성하는 입력값을 찾는 것이 계산상 어렵다. 즉, 제 1 역상 공격에 대해 안전해야 한다. 이 성질은 일방향함수와 연관되어 있다.
- 제 2 역상 저항성(second preimage resistance): 입력 값에 대해, 그 입력의 해시 값을 바꾸지 않으면서 입력을 변경하는 것이 계산상 어렵다. 제 2 역상 공격에 대해 안전해야 한다.
- 충돌 저항성(collision resistance): 해시 충돌에 대해 안전해야 한다. 같은 해시 값을 생성하는 두 개의 입력값을 찾는 것이 계산상 어려워야 한다.
즉, 입력값과 해시 값에 대해서, 해시 값을 망가뜨리지 않으면서 입력값을 수정하는 공격에 대해 안전해야 한다. 이러한 성질을 가지는 해시 값은 원래 입력값을 의도적으로 손상시키지 않았는지에 대한 검증 장치로 사용할 수 있다.
순환 중복 검사(CRC)와 같은 몇몇 해시 함수는 암호 안전성에 필요한 저항성을 가지지 않으며, 우연적인 손상을 검출할 수는 있지만 의도적인 손상의 경우 검출되지 않도록 하는 것이 가능하기도 하다. 가령, 유선 동등 프라이버시(WEP)의 경우 암호화 해시 함수로 CRC를 사용하나, CRC의 암호학적 취약점을 이용한 암호공격이 가능하다는 것이 밝혀져 있다.
List of hash function
- GOST
- HAVAL
- MD2
- MD4
- MD5
- PANAMA
- RadioGatún
- RIPEMD
- RIPEMD-128/256
- RIPEMD-160
- RIPEMD-320
- SHA-0
- SHA-1
- SHA-256/224
- SHA-512/384
- Tiger(2)-192/160/128
- WHIRLPOOL
Cryptographic hash function & Message authentication code
Common functions | |
Functions | FSB, SHA-3, ECOH, GOST, HAS-160, HAVAL, LM hash, MDC-2, MD2, MD4, MD6, N-Hash, RadioGatun, RIPEMD, Snefru, SWIFFT, Tiger, VSH, WHIRLPOOL, crypt (DES) |
SHA-3 finalists | BLAKE, Grøstl, JH, Keccak, Skein |
MAC algorithms | DAA, CBC-MAC, HMAC, OMAC/CMAC, PMAC, VMAC, UMAC, Poly1305-AES |
Authenticated encryption modes | CCM, CWC, EAX, GCM, IAPM, OCB |
Attacks | Collision attack, Preimage attack, Birthday attack, Brute force attack, Rainbow table, Distinguishing attack, Side-channel attack |
Misc | Avalanche effect, Hash collision, Merkle?Damgard construction, Salt |
Standardization | CRYPTREC, NESSIE, NIST hash function competition |
See also
- Authentication
- Hash function
- Information Security
- Secure Coding (Key store)
- C++:SecureProgramming (C++)
Favorite site
- Wikipedia (en) 암호화 해시 함수에 대한 설명
- [추천] NAVER D2 - 안전한 패스워드 저장 1
- [추천] 패스워드 보안의 기술 2
- 조대협의 블로그 - Security-애플리케이션 보안 1. 인증 방식 및 비밀번호 암호화
- [추천] 비밀번호 해시에 소금치기 - 바르게 쓰기 3