마이크로 컨트롤러를위한 MD5 구현


11

누구나 마이크로 컨트롤러 (바람직하게는 8 비트) 에 대한 MD5 알고리즘의 예가 있습니까? 우리 프로젝트는 Microchip PIC18 시리즈 장치를 사용할 것입니다.

답변:


11

C 구현을 찾고 있다면 Microchip TCP / IP 스택의 Hashes.c 파일에 MD5 구현이 있습니다.


이것이 바로 내가 필요한 것입니다.
J. Polfer


4

나는 잘 알려진 MD5 구현을 고수하고 타사 공급 업체에서 찾은 라이브러리에서 멀리 떨어져 있습니다. MD5를 설명한 원래 RFC 1321 에는 샘플 C 구현이 있습니다.

알림 : MD5의 알려진 약점이 충돌 공격하고 있습니다 하지 역상 공격 은 일부 암호화 응용 프로그램이 아닌 다른 사람에 적합합니다, 그래서. 차이점을 모르면 사용해서는 안되지만 완전히 버리지 마십시오. http://www.vpnc.org/hash.html을 참조 하십시오 .


1
암호화를 위해, 나는 MD5를 완전히 피하려고했다.
Toby Jaffey

1
@Joby : 생각을 고맙게 생각하지만 MD5에는 암호화에 적합한 측면이 있습니다. 당신은 그것의 강점과 약점을 알아야합니다.
Jason S

원래 RFC에서 C 소스 코드에 연결하려면 +1입니다. 아마도 Microchip의 소스 코드를 사용하더라도 칩을 만든 동일한 사람들이 실행할 것입니다.
davidcary


3

MD5 의 wikipedia 페이지에서 :

... MD5는 충돌에 강하지 않으므로 MD5는 SSL 인증서 또는이 속성에 의존하는 디지털 서명과 같은 응용 프로그램에는 적합하지 않습니다.

같은 페이지의 SSL 연구원들로부터

또한 다른 응용 프로그램에서 MD5 사용을 다시 고려하기를 바랍니다.

나는 당신이 이것을 듣고 싶지 않다는 것을 이해하지만 실제로 MD5가 필요합니까? 너무 안전하지 않기 때문에 암호화 목적으로 사용해서는 안됩니다 (그리고 레인보우 테이블 보트가 사용 가능합니다). 데이터의 유효성을 검사 할 무언가를 찾고 있다면 계산 비용이 저렴한 CRC (code here )를 살펴보십시오 . 당신이하면 된다 , 그때로 이동 제안 할 수 있지만 암호화 목적을 위해 그것을 사용하는 SHA ? 유일한 문제는 대부분의 암호화 보안 알고리즘이 마이크로 컨트롤러에서 특히 잘 실행되지 않는다는 것입니다. MD5가 "충분히 좋은"것처럼 보이지만 공학적인 방법은주의를 기울이는 것입니다.


1
MD5를 완전히 배제하지 마십시오. "암호화가 너무 안전하지 않기 때문에 암호화 목적으로 사용해서는 안됩니다"라는 문구가 너무 지나치게 일반화되었습니다.
Jason S

1
또한 해시 알고리즘에 레인보우 테이블이 있거나없는 것을 고려하여 레인보우 테이블이 있다는 사실을 사용하지 마십시오. SHA에 레인보우 테이블이 많지 않으면 그대로 있습니다. 이 문제를 해결하기 위해 비밀 "소금"을 메시지에 추가하십시오.
Jason S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.