2010-12-03 5 views
1

내가 해시 기능을 조사하고있는 Uni에서 연구 과제를 수행 중입니다.Windows에서 NTLMv2 해싱 기술을 사용하는 충돌 속도

SHA1과 (내가 이해할 수있는대로) 모든 해시 기법에는 (매우 드물게) 해시 충돌이 있습니다. See here

NTLMv2 (Windows 7에서 사용됨)에서 해시 충돌이 발생할 가능성을 알 수 있습니까?

감사

+0

충돌 확률은 무작위로 발생합니까? 또는 공격자가 무언가를 획득하려고 시도하는 빈도는 얼마나됩니까? – CodesInChaos

+0

안녕하세요 CodeInChaos, 임의로 발생하는 충돌의 가능성이 큽니다. NTLMv2가 3 MD4 함수를 사용하여 해시를 성취한다는 것을 알고 있습니다. – Tom

+0

그리고 왜 암호 해시의 충돌에 관심이 있습니까? 실제로는 관련없는 quire입니다. 재미있는 점은 사전 이미지 공격입니다. – CodesInChaos

답변

0

에서 NTLMv2는 hmac-md5 구현입니다. collisions do not affect HMACs에 유의해야합니다. 공격자가 md5 has a complexity of (2^24.1)/2 = 2^23.1에 대한 충돌을 생성하기 위해 NTLMv2에 대해 공격을 수행 할 수 있다고 생각하지 않습니다. 그래서 저는 대답이 (2^128)/2 = 2^127이라고 생각합니다. 이 숫자는 md5를 이상적인 메시지 다이제스트 기능으로 생각하고 있으며 이상적인 기능은 존재할 수 없습니다.

2로 나누어서 birthday paradox을 설명합니다.

+0

당신이 말한 것을 분명히하고/확장하라 : 두개의 다른 입력이 동일한 해시를 가질 확률은 1/2^128이지만, 충돌을 얻으려면 약 2^64 개의 해시가 필요하다. (생일 파라독스를 참조) – CodesInChaos

+0

@CodeInChaos Aaah 네, 당신은 생일 역설을 설명하는 것이 옳습니다. 그러나 수학은 정확하지 않습니다. 1/2^128은 매우 작은 십진수입니다. 그러나 실제로 확률은 전체의 1/2이되어야합니다. – rook

+0

1/2 총계로 무엇을 의미합니까? 생일 역설은 가능성을 반으로 나누지 않고 비트를 나눕니다. x = 2^128에 대해 Sqrt (x) 해시가 필요하므로 sqrt (x) = Sqrt (2^128) = 2^(128/2) = 2^64 해시가 필요합니다. 하지만 Sqrt는 근사치 일 뿐이며 2^64 해시를 저장할 수 있어야합니다. – CodesInChaos