오경석의 개발노트

IT 용어_MD5 본문

기타/IT 용어

IT 용어_MD5

OHSAYU 2023. 5. 21. 13:46

개요

    MD5(message digest 5)는 입력 데이터로부터 128 비트(bit) 메시지 축약을 만듦으로써 데이터 무결성을 검증하는데 사용되는 해시 알고리즘이다. 1991년 미국 MIT의 교수 로날드 리베스트(Ronald Rivest)가 이전 버전인 MD4의 결함을 보완하기 위해 개발했다. 현재는 주로 프로그램이나 파일이 원본 그대로인지 확인하는 무결성 검사 등에 사용된다.

    MD5는 전자서명, 응용 프로그램 등 정보보호를 목적으로 개발한 해시 알고리즘이다. 프로그램이 위변조 되었는지를 확인하는 무결성 검사에 사용된다. 입력받은 메시지를 128비트로 압축하는 방식이며, 이전 버전으로는 MD2, MD4가 있다. 1996년 보안상 결함이 발견되어 보안용으로 사용하는 것은 권장하지 않는다. 큰 파일들은 RSA와 같은 공개키 암호 사용법하에서 개인키와 함께 암호화되기 전에 안전한 방법으로 압축되어야만 한다.

    MD5는 단방향 암호화이기 때문에 출력값에서 입력값을 복원하는 것은 일반적으로 불가능하다. 같은 입력값이면 항상 같은 출력값이 나오고, 서로 다른 입력값에서 같은 출력값이 나올 확률은 극히 낮다.

    흔히 패스워드 암호화에 많이 사용되는데, 패스워드를 MD5로 해시해서 나온 값을 저장해 두는 것이다. 이렇게 하면 운영자나, 데이터를 무단으로 뜯어본 자도 이 값만 봐서는 본래의 값 자체는 알 수 없게 된다. 비밀번호를 정확하게 입력했다면 같은 해시값이 나오므로, 본래의 키라는 것을 확인할 수는 있을 것이다. 하지만 MD5는 속도가 너무 빠르기 때문에 salt같은 수단을 붙이더라도 무차별 대입이나 사전 공격에 너무 취약하다. 해킹을 위해 같은 MD5를 갖는 문자열, 즉 충돌(collision)을 찾아내는 데 주력한다.     

 

특징

 - 임의의 길이로 입력받은 메시지를 512비트 단위로 처리해 128비트로 암호화한다.

 - 입력 메시지의 길이 제한이 없다.

 - 해시값 길이 : 128비트

 - 패팅 처리 : 메시지 길이를 512 비트 정수배로 만든다.

 - 해싱 충돌 방지 확률 : 약 \(2^{64}\)

 

비교

 - MD2 : MD2는 8비트 컴퓨터에 최적화되어있는 반면 MD5는 32비트 컴퓨터에 최적화되어있다.

 - MD4 : MD4는 3라운드에 걸쳐 처리하지만 MD5는 4라운드에 걸쳐 처리한다. MD4보다 MD5가 더 느리지만 더 안정적.

 - SHA-1 : SHA-1은 MD 해시 함수와 비슷한 방법을 사용하지만 SHA-1이 MD5보다 속도가 더 빠르며 더 안정적.

 

문제점

    1996년에 MD5의 설계상 결함이 발견되었다. 이것은 매우 치명적인 결함은 아니었지만, 암호학자들은 해시 용도로 SHA-1과 같이 다른 안전한 알고리즘을 사용할 것을 권장하기 시작했다. 

    2004년에 높은 유사성을 보이는 128비트 파일 두 개의 해시값 충돌이 발견되었다. 이는 알고리즘 자체의 엄청난 결함이다. 논문에 따르면 IBM P690 머신에서 충돌을 생성하는 데 한 시간밖에 걸리지 않는다고 한다. 2006년에는 더욱 빠른 알고리즘이 개발되어 논문에 따르면 노트북 한 대의 연산 능력(Intel Pentium, 1.6 GHz)으로 1분 만에 충돌을 찾아낼 수 있다고 한다.

    MD5는 원래 공인인증서, MySQL, DB Password Algorithm 등 다방면에서 사용됐으나, 암호화의 방식이 MD5라는 것을 안다면 복호화가 쉽다는 문제점이 있다. 매년 독일 라이프치히에서 열리는 Chaos Communication Congress에서 2008년 국제 보안 연구팀이 MD5를 이용한 피싱 공격 기술에 관해 발표했는데, 이때 SSL의 인증서 변조가 가능한 것이 밝혀졌다.

 

 

출처 : https://ko.wikipedia.org/wiki/MD5

 

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

위키백과, 우리 모두의 백과사전. MD5(Message-Digest algorithm 5)는 128비트 암호화 해시 함수이다. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에

ko.wikipedia.org

출처 : http://wiki.hash.kr/index.php/MD5

 

MD5 - 해시넷

MD5(message digest 5)는 입력 데이터로부터 128 비트(bit) 메시지 축약을 만듦으로써 데이터 무결성을 검증하는데 사용되는 해시 알고리즘이다. 1991년 미국 MIT의 교수 로날드 리베스트(Ronald Rivest)가 이

wiki.hash.kr

출처 : https://namu.wiki/w/MD5

 

MD5 - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

'기타 > IT 용어' 카테고리의 다른 글

IT 용어_shell(셸, 자령해석프로그램)  (1) 2023.06.13
IT 용어_명령 프롬프트  (0) 2023.06.11
IT 용어_SHA-256  (0) 2023.05.16
IT 용어_REST API  (0) 2022.12.13
IT 용어_API  (0) 2022.12.04
Comments