Part 4. 메시지다이제스트
Chapter 13. 해쉬 : 키없는 Message Digest 알고리즘
메시지 다이제스트(MD) 알고리즘
- 데이터 무결성을 보장할 수 있는 기본적 메커니즘
-
원본 데이터에 대한 고정길이의 해쉬값을 생성하는 one-way hash function
- 원본 데이터의 미세한 변조라도 감지
- 해쉬값만으로 원본 데이터 알아낼 수 없다
- 원본데이터를 압축
- 공개키, 비밀키 시스템보다 계산시간이 적다.
메시지 다이제스트(MD) 알고리즘 종류
-
MD2
- Ron Rivest가 고안
- 128 비트 해쉬값 생성
- MD5와 비슷한 구조지만 안전도가 떨어지고, 속도가 느림
- MD5
-
- Ron Rivest가 고안
- 128 비트 해쉬값 생성
- MD2보다 안전도, 속도 향상
-
SHA-1
- NIST와 NSA에서 함께 고안
- 160비트 해쉬값 생성
- 특별히 알려진 공격 방법이 없고, 상당히 안전
-
RIPEMD128/160
- Hans Dobbertin(독일의 암호학자)에 의해 고안
- ISO/IEC 10118-3에 표준
- MD4의 변형. 암호 분석 공격에 대한 저항성
- 128은 128비트 해쉬값, 160은 160비트 해쉬값 생성
-
HAS160
-
- 한국의 KISA에서 개발. TTA 표준
- 160비트 해쉬값 생성
-
SMD
- 한국의 ETRI에서 개발
- 160비트 해쉬값 생성
-
HAVAL
-
- 호주의 Yuliang Zheng이 고안
- 가변길이의 해쉬값 생성
- MD5의 수정된 형태
- 3~5라운드의 가변적인 라운드 수
- 해쉬값의 길이는 128, 160, 192, 224, 256 비트 등을 가질 수 있음
Hash 유무에 따른 서명 및 확인
메시지 다이제스트 만들어 전송
서명없이 메시지 다이제스트만 전송
-
해커가 자신이 만든 뉴스레터와 그에 대한 MD를 생성
-
-
해커는 앨리스의 뉴스레터와 MD를 버리고 자신의 것을 붙여 보냄
-
밥은 위조된 뉴스레터에서 자신이 계산한 MD가 같기 때문에 해커의 소행을 알 수 없다.
MD 문장에 서명하기
Sign하지 않으면 해커에 의해 위조 가능하므로 Sign함.
-
앨리스는 MD된 뉴스레터에 자신의 개인키로 서명하고, 밥은 앨리시의 공개키로 뉴스레터 복원
- 메시지 무결성, 앨리스에 대한 인증 가능
해커의 공격 차단
- 앨리스 개인키로 암호화, 앨리스의 공개키로 복호화하면 원래의 MD가 나옴
- 해커의 개인키로 암호화, 앨리스의 공개키로 복호화하면 원래의 MD가 안 나옴
메시지 다이제스트 정리
- 앨리스는 평문으로부터 MD 생성
- 앨리스는 MD 문장을 서명하고, 서명된 MD문장과 평문을 밥에게 보낸다.
- 밥은 따로 평문으로부터 MD 생성
- 밥은 앨리스의 공개키로 서명된 MD 문장을 복호화
- 밥은 자신이 만든 MD와 4번에서 복호화된 MD문장을 비교
- 5번의 결과가 참이면 앨리스의 것임을 알 수 있다.
Chapter 14. 메시지 다이제스트 알고리즘을 통한 확인
메시지 다이제스트 알고리즘의 두 가지 방법
-
키 없는 메시지 다이제스트
- MD 문장의 위조를 막기 위해 3가지 보안성(단방향성, 약한 충돌 방지, 강한 충돌 방지) 제공
- 비밀키 없이 생성
- MIC또는 MDC라 불림
- 대부문의 공개키 전자서명에서 사용
-
해쉬 알고리즘
- 임의의 입력값을 고정 길이의 출력값(160bit)으로 변환
-
입력값이 1비트만 바뀌어도 출력값 50%이상 바뀜
- 무결성(Integrity) 검증에 쓰임
-
종류: MD2, MD5, SHA-1, SHA, HAS160, RIPEMD128, RIPEMD160
- 해쉬함수에서는 키가 필요없음
-
키 있는 메시지 다이제스트
-
MAC(Message Authentication Code)
- 메시지 인증 코드
- 키를 가진 사람만이 메시지에 대한 인증 가능
-
어떤 알고리즘을 써도 무방
- 보편적으로 해쉬함수 사용(Hmac
- 종류: HmacMD2, HmacMD5, HmacSHA-1, HmacSHA, HmacHAS160
- 메시지와 비밀키 결합
- 비밀키를 보내는 사람과 받는 사람이 공유되도록 요구
- 어떤 비밀키 암호 알고리즘과 비밀키를 쓰느냐에 따라 보안성 결정
-
메시지 다이제스트 압축
- 단방향성을 가짐
- 암호학적 압축을 사용하면 원래 메시지로 복원 불가능
-
다이제스트 속도 비교
-
DES가 제일 빠르다
- 그러나, 안전하지 않다.
- Hashed MAC(HMAC)이 제일 느리다
-
-
HMAC
- 1990년대 중반, 암호학자들은 속도 향상을 위해 MAC와 키없는 다이제스트 함수 결합
- HMAC를 표준으로 인정
- HMAC는 비밀키와 키 없는 해쉬 함수 사용
- 설치가 용이, 키 없는 다양한 해쉬 함수를 사용할 수 있게 해준다.
Chapter 15. 비밀키, 공개키, MD 비교
암호화 속도
- MD > 비밀키 >>>>>>> 공개키
-
Message Digest
- 메시지 인증(무결성)만 제공, 기밀성 제공 않함
-
비밀키 알고리즘
- 실제 전송되는 메시지의 암호화
- 자주 전송이 일어나므로 빠른 비밀키 알고리즘 사용
-
공개키 알고리즘
- 인증(전자서명)과 비밀키 교환
키 길이
-
비밀키
- DES - 56bit, AES-128bit
-
공개키
- RSA - 512 ~ 1024 bit
-
ECC 암호 알고리즘
-
키 크기가 RSA보다 작다
- RSA보다 빠르다
- 셀룰러폰에서의 암호화에 이용된다.
-
키 분배
- 비밀키 시스템 - 키 교환이 어렵다.
- 공개키 시스템 - 키 분배가 비밀키보다 좋다.
공개키 시스템과 비밀키 시스템
| 속성 | 비밀키 | 공개/개인키 |
| 사용기간 | 천년 정도 | 50년 정도 |
| 주로 사용되는 이유 | 일반 데이터 암호화 | 키 교환, 전자 서명 |
| 현재 표준 | DES, 3중 DES, AES(Rijndael) | RSA, Diffie-Hellman, DSA |
| 암호화/복호화 표준 | 빠르다 | 느리다 |
| 키 |
적어도 두 사람 사이에서 교환 (평소엔 두 사람 사이에서 쓰임) |
개인키: 한 사람에 의해서만 관리 공개키: 어디서든지 배포 가능 |
| 키 교환 | 교환하는 것은 어렵고, 위험 |
개인키: 비밀로 간직 공개키: 전달 용이 |
| 키 길이 | 56비트, 128비트(권장) |
1024비트 사용(RSA), 어떤 경우에는 2048비트 (단, ECC는 172비트-휴대단말기에서 이용) |
| 기밀성, 인증, 메시지 무결성 | 가능 | 가능 |
| 부인 방지 | 불가능(제 3자 필요) | 가능(전자 서명 사용) |
| 공격 | 있음 | 있음 |
History
Last edited on 01/07/2009 10:18 by tadoli
Comments (0)