메시지 다이제스트(Message Digest) 알고리즘 중 MD5에 대해 간단하게 정리해봅니다.
■ MD5 (Message Digest algorithm5)
1. 설명
- 데이터 무결성을 보장할 수 있는 알고리즘
- 임의의 길이값을 입력 받아서 128비트 길이의 해시값을 출력하는 알고리즘
- 단방향 암호화
( 같은 입력값 → 같은 출력값, 서로 다른 입력 → 서로 다른 출력값으로 같은 출력값이 나올 확률은 0이 아니나 극히 낮은 확률 )
- 고속 연산이 가능
- 공개키, 비밀키 시스템보다 계산시간이 적음
- 패스워드 암호화로 사용됬으나 현재는 FTP 파일 검증에 많이 사용되고 있음
2. 종류
- MD2 : 128비트 해쉬값 생성 / MD5와 비슷하지만 안전도↓ 속도↓
- MD5 : 128비트 해쉬값 생성 / MD2에 비해 안전도↑ 속도↑
- SHA-1 : NIST와 NSA가 함께 고안 / 160비트 해쉬값 생성 / 아직 특별히 알려진 공격 방법이 없고 안전한 편
- RIPEMD128/160 : 독일의 암호학자가 고안 / MD4의 변형으로 암호, 분석 공격에 저항 / 128,160비트 해쉬값 생성
- HAS160 : 한국 KISA 개발 / 160비트 해쉬값 생성
- SMD : 한국 ETRI 개발 / 160비트 해쉬값 생성
- HAVAL : 가변길이 해쉬값 생성 / MD5에서 수정됨 / 3~5라운드의 가변적인 라운드 수 / 해쉬값 길이는 128, 160, 192, 224, 256 비트등을 생성 가능
3. 속도
- MD > 비밀키 >>>>>>>>> 공개키
4. 비교
- MD : 메시지 인증(무결성)만 제공
- 비밀키 : 실제 전송되는 메시지 암호화 / 자주 전송하므로 빠른 비밀 알고리즘 사용
- 공개키 : 인증(전자서명)과 비밀키 교환
5. 키 길이
- MD : 위 2번 참고
- 비밀키 : DES 56 bit / AES 128 bit
- 공개키 : RSA 512~1024 bit
'프로그래밍 > 보안' 카테고리의 다른 글
암호화〃MD5 자바(Java)에서 사용하는 예제코드 (0) | 2017.06.07 |
---|