2011-03-17 6 views
4

나는 이것에 대해 구글이 대답 할 때마다이 알 고리가 끊임없이 개선되고 새로운 익스플로잇이 발견되고 새로운 이슈가 항상 생겨나 고 있기 때문에 약간의 모순이있다. 사용할 algo에 대한 많은 충고가있다. 단순하게 나이 든 것, 또는 그들이 가장 좋은 길인 구시대의 아이디어를 유지하는 것.2011 년 현재 해시 알 고가 메시지 다이제스트에 가장 적합합니까?

나는 여기서 아주 명확하고 싶다 : 나는 암호에 대해 말하는 것이 아니다. 나는 암호화 된 해시가 아닌 메시지 다이제스트에 대해 이야기하고 있습니다.

메시지 다이제스트 (이름에서 알 수 있듯이)에 대한 첫 번째 암시로 md5를 사용할 수 있지만 더 많은 현대 알 고리보다 많은 충돌이 있다는 것을 기억합니다. 그렇다면이 새로운 알 고리가 파일이나 짧은 문자열의 메시지 다이제스트에 더 적합한 이유는 무엇입니까?

이것이 내 질문입니다. 현대 메시지 다이제스트 알 고는 무엇을 사용해야합니까?

답변

2

작업하는 데이터의 양에 따라 SHA1이 잘 수행되어야합니다. 더 많은 양의 데이터로 작업하는 경우 SHA-2 알고리즘 (예 : SHA-256)이 더 적합 할 수 있습니다 알고리즘의 결함으로 인해 SHA1에서의 충돌에 대한 두려움이 커지기 때문에 소량의 데이터로 작업 할 때는 심각하지 않습니다.

MD5는 MD5를 사용하여 위조 된 SSL 인증서를 생성하는 SSL 인증서에 대한 공격이 있었기 때문에 충돌에 너무 취약한 것으로 나타났습니다. 또한 응용 프로그램에 따라 MD5는 FIPS 140을 준수하지 않아도됩니다.

SHA1은 MD5가 사용하기에 위험하기 때문에 MD5보다 이상적이며 SHA1은 SHA-2보다 일반적인 환경에서 성능이 좋습니다. SHA-2 알고리즘은 절대로 느리지 만 가장자리가 있습니다. 그러나 SHA1은 아마도 자신을 잠그기 위해 약간 위험합니다. 충돌이 발견되면 변경하기 어려울 수 있으므로 SHA-2 알고리즘에 미리 투자하는 것이 좋습니다. SHA-1을 통한 SHA-256 사용에 대한 벌칙은 SHA 알고리즘을 사용하는 방법에 따라 거의 없습니다. SHA-2 알고리즘은 SHA1보다 훨씬 큰 출력을 생성하지만 충돌 가능성을 줄입니다.

어느 것이 옳은가요? 그것은 당신이 찾고있는 것과 사용 사례에 달려 있습니다. 희망을 갖고 지금 결정을 내릴 수 있습니다.

2

의심스러운 경우 SHA-256을 사용하십시오. 다른 SHA-2 함수도 괜찮습니다. 그러나 SHA-384 및 SHA-512는 작은 (32 비트 전용) 플랫폼에서 무시할 수없는 성능 저하를 겪을 수 있습니다. 이 일 수 있습니다.

비보안 관련 용도 (예 : 해시 테이블에서 첫 번째 색인 생성 또는 우발적 인 악의적 인 데이터 변경 - CRC을 사용할 수있는 직업)의 경우, 전임자 인 MD4을 고려하십시오. MD5. MD4는 MD5보다 훨씬 더 파괴되었지만 (더 짧은 코드로) 구현하기가 더 쉽고 빨랐습니다 (실제로는 일부 ARM 플랫폼에서 CRC32보다 빠른 것으로 측정되었습니다).