출처 - http://blog.naver.com/dury00/130044978311
Hash and MAC
Hash and MAC
Hasing
- 원래는 테이블 내 탐색, 삽입, 삭제를 상수 시간내에 효과적으로 이루어지게 하는 탐색 기법
- 특정한 키를 받아들여 그 키로만 매칭할 수 있는 레코드의 위치를 반환 가능
암호학적으로 유용한 해시 함수의 요건
- 강한 충돌 회피성 : x != x' 이면서 h(x) = h(x')을 만족하는 x, x' 을 찾는 것이 계산적으로 불가능
- 어떠한 크기의 데이터 블록이든지 적용 가능해야 하고
- 고정 길이의 output(message digest) 생성
- message diagest로부터 원래 message를 구할 수 없는 일방향성
해시 알고리즘
SHA
- 메시지를 512bit 블록으로 맞추기 위해 패딩 및 메시지 원래 길이값을 추가
- 512bit 블록으로 나눈 후 160bit의 초기 백터와 각 블록을 SHA 함수에 입력하면 변형된 160bit의 백터가 출력되고, 이를 다시 다음 블록과 함께 입력하는 과정을 반복하면 마지막에 나온 160bit 의 메시지 다이제스트 생성
각 SHA iteration 과정
512bit 의 블록을 16개의 워드(W1~W16)로 나누고 초기 백터 또한 5개의 워드(A-E, H0-H4)로 나눈 후
H4=H3, H3=H2, H2=S 30(H1), H1=H0, H0=TEMP
TEMP = TEMP = S5(H0) + ft(H1,H2,H3) + H4 + Wt + Kt(Kt 는 80개의 상수 단어 열)
- 이러한 과정을 80번 반복하며, 이때 1~16라운드까지는 W1~W16의 값을 사용하나 17라운드부터는
Wt = S1(W(t-3) XOR W(t-8) XOR W(t-14) XOR W(t-16)) 를 이용하여 구한다.
MD5
- 메시지 다이제스트 길이 128bit
- 블록 길이 512bit
- 각 iteration 당 64라운드
메시지 인증코드
- 비밀키 기반의 인증코드 : 비밀키로 메시지 다이제스트를 암호화해서 보낸 후, 수신자측에서는 받은 메시지의 다이제스트를 만들고 인증코드를 복호화하여 비교
- 공개키 기반의 인증코드 : 개인키로 메시지 다이제스트를 암호화해서 보낸 후, 수신자측에서는 받은 메시지의 다이제스트를 만들고 인증코드를 공개키로 복호화하여 비교
- 공유 비밀키 방식의 인증코드 : 메시지에 비밀키를 추가하여 메시지 다이제스트를 만들어서 보낸 후, 수신자측에서는 수신된 메시지에 비밀키를 추가하여 메시지 다이제스트를 만들어서 인증코드와 비교, HMAC
HMAC (keyed-Hash Message Authentication Code)
- HMAC 은 어떠한 해쉬 함수와도 결합 가능 (HMAC-MD5, HMAC-SHA-1 등)
[출처] [보안/알고리즘] Hash , MAC|작성자 두리
- HMAC 은 어떠한 해쉬 함수와도 결합 가능 (HMAC-MD5, HMAC-SHA-1 등)
'Security > Common' 카테고리의 다른 글
CISSP에서 도구 (0) | 2011.11.10 |
---|---|
암호학(Cryptography) 의 모든 것 (0) | 2011.10.06 |
API Gateway 사례로 본 HMAC 인증 이해 (0) | 2011.10.01 |
시만텍 “보안 빨간불, 주범은 APT” (2) | 2011.09.24 |
커버로스 (Kerberos) (0) | 2011.09.23 |