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. 해쉬 함수의 이용
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개
|
댓글 없음:
댓글 쓰기