암호학적 해시함수(cryptographic hash function)
개요
| 개념 | 임의 길이의 입력값을 받아 고정 길이의 해시값으로 변환하여, 역산과 위조가 어렵도록 설계된 단방향 함수 (제 1역상, 제 2역상, 충돌에 대하여 안정성을 갖고 인증에 이용) ![]() 회원가입: 비밀번호 입력 → Salt 생성 → 비밀번호+Salt(덧붙이기) → 해시 → Salt와 해시 저장 로그인: 비밀번호 입력 → DB의 Salt 조회 → 비밀번호+Salt (덧붙이기) → 해시 → 저장 해시와 비교 |
| 특징 | 단방향성, 고정길이 출력, 무결성 검증 활용, 민감(조금만 바껴도 전혀다른 해시값) |
암호학적 해시함수 안정성 원리
| 압축성 | ![]() |
임의 길이의 문자열을 고정된 길이의 문자열로 변환 |
| 효율성 | ![]() |
어떤 입력값이던지 계산이 빠름 (X가 주어지면 H(x)는 계산하기 쉬워야 함) |
| 단방향성 (역상저항성) |
![]() |
해시값으로 원문을 유추할 수 없음 (결과를 보고 원래 값을 거꾸로 찾기 어렵다는 뜻) |
| 약한 충돌 내성 (2차 역상 저항성) |
![]() |
주어진원문과 같은 해시값을 갖는 다른 원문을 찾기 어려움 (원문 하나를 알고 있을 때, 같은 해시지만 다른 원문을 찾기 어렵다는 뜻) |
| 강한 충돌 내성 (충동 회피성) |
![]() |
동일한 해시 값을 갖는 다른 두 원문을 찾기 어려움 (서로 다른 두 원문이 같은 해시값을 갖는 경우를 찾기 어렵다는 뜻) |
암호학적 해시 알고리즘 유형
| 유형 | 설명 | 알고리즘 |
| MAC (Message Authentication Code) |
메시지에 비밀키를 함께 사용해서 생성하는 인증 코드 (비밀키를 아는 사람만 만들 수 있는 해시값 인증) - 인증 및 데이터 무결성이 필요한 경우 사용 |
HMAC 등 |
| MDC (Manipulation Detection Code) |
메시지가 변조되었는지 검출하기 위한 코드 (문서 내용이 바뀌었는지 확인) - 인증 필요없이 무결성만 요구될 경우 사용 |
SHA-256 등 |
해시 알고리즘 활용 분야
| 구분 | 활용분야 | 설명 |
| 인증 | 전자서명 | 전자서명 시 무결성, 부인방지 처리를 위해 활용 |
| 메시지 인증 | 해시함수를 이용해서 메시지 인증코드를 구성 | |
| 암호화 | 패스워드 암호화 | 비밀번호 원문 대신 해시값을 저장하여 위험 down |
| OTP | 일회용 비밀번호(One-Time Password)생성에 활용 | |
| 난수 | 의사난수 생성기 | 의사난수 생성에 활용 *의사난수: 알고리즘에 의해 생성되지만 통계적으로 난수처럼 보이도록 만든 수열 |
| 검출 | SW 변경 검출 | 소프트웨어가 변경되었는지 검출하기 위하여 사용 |
'Study Note > 보안' 카테고리의 다른 글
| [정보보호>식별/인증] 식별(Identification)과 인증(Authentication) (0) | 2026.04.06 |
|---|---|
| [보안시스템>기본] 웹방화벽, IDS, IPS (0) | 2026.04.06 |
| [보안기술>암호화] 양자암호기술(PQC, QKD) (1) | 2026.04.03 |
| [보안기술>암호화] 대칭키와 비대칭키 (0) | 2026.04.01 |
| [보안기술>암호화] 암호화 (0) | 2026.04.01 |





