암호학적 해시함수(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 변경 검출 소프트웨어가 변경되었는지 검출하기 위하여 사용

+ Recent posts