2020. 5. 20.

[암호학] 5장 해쉬 함수


1. 해쉬 함수의 이해

메시지 인증 코드에 대한 변형
메시지의 모든 비트들에 대한 함수

정의
  • 임의(랜덤)의 길이(M)를 취해서 정해진 크기(h) Message Digest를 만드는 one-way function(H)


해쉬함수를 이용하여 똑같은 다이제스트를 만드는데 인피니티의 메시지가 필요한다.
시스템이 패스워드를 해쉬코드로 저장하는 이유는 ?
  • 시스템(내부)으로부터 보호하기 위해서이다.

## 사담 - 개인정보유출 사고 유력한 용의자
유닉스관리자, 데이터베이스 관리자, 시스템 개발 프로그래머
## 사담 - MD5 크랙이 나오면 모든 시스템 폐지시켜야함



디지털서명, 인증, 등의 서비스 제공

  • 해쉬함수의 요구 조건
  • 어떤 크기의 메시지 M에도 적용 가능
  • H는 고정된 크기의 hash code를 만듬
  • H(M)은 어떤 주어진 M에 대해서도 계산하는 것이 쉽다.
  • 주어진 hash code h에 대해,
  • H(M) = h M을 찾는 것이 계산적으로 실행불가능(one-way)
  • 어떤 주어진 블록 M에 대해서, H(M’) = H(M) M M’가 서로 다른 것을 찾는 것이 계산적으로 실행 불가능
## 충돌이 나거나 역상이 가능한것
  • H(M’) = H(M)인 어떤 (M, M’) 쌍을 찾는 것이 계산적으로 실행 불가능(collision-free)

2. 해쉬 함수의 이용

%(HCv0) 
카인-기(獻0 
송신자(a) 
E 
개방동신로 
화[M " %(HCv0)] 
D 
H 
회교 
D 
공카기(1(V”) 
수신자(b)

3. 단순 해쉬 함수

메시지를 n 비트 블록으로 m개로 나누어 블록끼리 XOR하여 출력되는 블록을 해쉬로 함


# 128비트 해쉬코드를 만들고 싶다면 128비트씩 자른다. 그것을 밑으로 나열
# 안맞으면 padding 한다 // padding 규칙이 있다.
# 원문에 있는 모든 비트는 해쉬코드를 만드는데 참여해야한다.
# 생일 공격에 취약하다. 변조된 해쉬코드를 원래의 해쉬코드값이 같을때까지 돌려보는것 // 법원에 원문과 해쉬코드를 같이 저장한다. - 일시적인 기간에만 사용한다.

4.해쉬 함수의 종류

알고리즘
메시지 다이제스트 길이
비고
SHA-1(secure hash algorithm-1
160 비트
1995 정부가 표준화한 FIPS 180-1 정의
MD5(Message Digest algorithm 5)
128 비트
RSA사가 1991년에 개발한 알고리즘으로 충돌 문제있음
MD2(Message Digest algorithm 2)
128 비트
RSA사가 개발한 알고리즘으로 충돌 문제 있음
RIPEND-160
160 비트
유럽의 표준

5. SHA MD5 차이

d
MD5
SHA
다이제스트
128비트
160비트
처리 기본단위
64(16 4라운드)
80
최대 massage 크기
무한대
2 64
기억논리 함수
4
3
덧셈 상수
64
4

댓글 없음:

댓글 쓰기