MD4

위키백과, 우리 모두의 백과사전.

MD4 메시지-다이제스트 알고리즘(MD4 Message-Digest Algorithm)은 1990년 로널드 라이베스트가 개발한 암호화 해시 함수이다.[1] 다이제스트 길이는 128비트이다. 이 알고리즘은 MD5, SHA-1, RIPEMD 알고리즘과 같은 이후의 디자인에 영향을 주었다. "MD"는 "메시지 다이제스트"(Message Digest)의 준말이다.

MD4는 마이크로소프트 윈도우 NT, XP, 비스타, 7, 8, 10에서 NTLM 암호 파생 키 다이제스트를 연산하기 위해 사용된다.[2]

MD4 해시[편집]

128비트(16바이트) MD4 해시(메시지 다이제스트)는 일반적으로 32자리 십육진수로 표현한다. 다음은 43바이트 아스키 입력 및 그와 일치하는 MD4 해시를 나타낸 것이다:

MD4("The quick brown fox jumps over the lazy dog")
= 1bee69a46ba811185c194762abaeae90

이 메시지의 사소한 변경도 완전히 다른 해시를 만들어내는데, 이를테면 d가 c로 바뀌는 점이다:

MD4("The quick brown fox jumps over the lazy cog")
= b86e130ce7028da59e672d56ad0113df

길이가 0인 문자열의 해시는 다음과 같다:

MD4("") = 31d6cfe0d16ae931b73c59d7e0c089c0

MD4 테스트 벡터[편집]

다음의 테스트 벡터는 RFC 1320 (MD4 메시지 다이제스트 알고리즘)에 정의되어 있다.

MD4 ("") = 31d6cfe0d16ae931b73c59d7e0c089c0
MD4 ("a") = bde52cb31de33e46245e05fbdbd6fb24
MD4 ("abc") = a448017aaf21d8525fc10ae87aa6729d
MD4 ("message digest") = d9130a8164549fe818874806e1c7014b
MD4 ("abcdefghijklmnopqrstuvwxyz") = d79e1c308aa5bbcdeea8ed63df412da9
MD4 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = 043f8582f241db351ce627e153e7f0e4
MD4 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = e33b4ddc9c38f2199c3e7b164fcc0536

MD4 충돌 예제[편집]

다음이 있다고 가정하면:

 k1 = 839c7a4d7a92cb5678a5d5b9eea5a7573c8a74deb366c3dc20a083b69f5d2a3bb3719dc69891e9f95e809fd7e8b23ba6318edd45e51fe39708bf9427e9c3e8b9
 k2 = 839c7a4d7a92cbd678a5d529eea5a7573c8a74deb366c3dc20a083b69f5d2a3bb3719dc69891e9f95e809fd7e8b23ba6318edc45e51fe39708bf9427e9c3e8b9

k1 ≠ k2이지만, MD4(k1) = MD4(k2) = 4d7e6a1defa93d2dde05b45d864c429b이다. k1과 k2의 16진 자리가 입력 문자열의 한 바이트를 정의하며, 여기서 길이는 64바이트로 된다.

같이 보기[편집]

각주[편집]

  1. “What are MD2, MD4, and MD5?”. 《Public-Key Cryptography Standards (PKCS): PKCS #7: Cryptographic Message Syntax Standard: 3.6 Other Cryptographic Techniques: 3.6.6 What are MD2, MD4, and MD5?》. RSA Laboratories. 2011년 8월 23일에 원본 문서에서 보존된 문서. 2011년 4월 29일에 확인함. 
  2. “5.1 Security Considerations for Implementors”. 2011년 7월 21일에 확인함. Deriving a key from a password is as specified in [RFC1320] and [FIPS46-2]. 

외부 링크[편집]

  • RFC 1320 - Description of MD4 by Ron Rivest
  • RFC 6150 - MD4 to Historic Status
  • Rivest, Ronald (1991). “The MD4 Message Digest Algorithm”. 《Advances in Cryptology-CRYPT0’ 90》 (Springer Berlin / Heidelberg). doi:10.1007/3-540-38424-3_22.