35, 1/2 회원가입  로그인  
   NetProject
   MD5 암호화에 대해서 질문을...

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=15 [복사]


안녕하세요? 수고하십니다.
제가 알기에는 MD5가는 복호화가 안되는 암호화로 알고, 어떤 문자를 암호화하든 32자리의 암호가 나오는 걸로 알고 있습니다.

알파벳(a~z)과 숫자(0~9)를 이용하여 32자리를 창조(?)해내는 경우의 수는 수없이 많겠지만 결코 무한하진 않을 것 입니다. 그런데 이렇게 되면, 어떤 문자들을 조합하여(영문이나 숫자) 32자리를 초과하는 문자열을 무한히 MD5로 암호화 하게되면 결국 같은 값이 나오게 되지 않나요? 경우의 수를 초월하게 되니까요.

제가 너무 무지한가요? 그래도 박식한 여러분의 도움이 필요합니다.

  Hit : 7592     Date : 2011/02/18 10:43



    
별빛을담아 오해하실 수도 있는 부분이기에 아쌀하게 말씀드리자면...
MD5는 Messege Digest algorithm - 5의 약자에요.
메시지 다이제스트 알고리즘이라는건 Hash로 만들어주는 함수나 알고리즘이라는 거구요.
(정확히는 암호화 해쉬 알고리즘. 암호화 알고리즘과는 달라요~)

따라서 알고리즘에 의해서 으깨지고(Hash) 소화된(digest) Hash값을
원상태로 돌린다는건 불가능한것이지요.

게다 Hash 함수는 반환된 Hash값이 다르면 들어간 값도 다르다는 점과
반환되는 값의 크기가 고정적이라는 특징이 있습니다.
종종 외국 홈페이지를 돌아다니다보면 다운로드 링크 아래에 MD5값과 SHA-1값을
같이 올려 놓는 이유 또한 원본과 같은 프로그램인지 확인할 수 있도록 하기 위해서이구요.

암호가 추구하는 것은 절대해독불가가 아니라 (지금당장)해독불가입니다.
암호는 언젠가 계산성능이 좋은 컴퓨터가 등장하면서 깨지게 되는거지요.
따라서 MD5도 지금 당장은 무한하게 hash화하면 뚫릴수도 있고 그렇지 않을 수도 있습니다.
왜냐하면 지금 당장은 알 수가 없거든요 ㅎ.

한가지 말씀드리자면 MD5가 좀 구식이다보니 특정크기 이상의 입력값이 들어갈 경우
같은 Hash값을 반환할 수도 있습니다.
게다가... MD5의 알고리즘의 취약점이 드러난걸로 알고 있습니다.
저 같으면 무한히 돌려서 본래의 값을 찾느니 취약점을 이용할 것 같군요.
이러한 취약점에 대한 대책으로는 SHA-1이나 SHA-256이 있습니다.
2011/02/19  
rkdgh0112 제가 사용하는 md5크랙프로그램으로
md5 crackfast가 있습니다.
짱깨가 만들었더군요
2011/02/20