2015-01-18 3 views
2

두 컴퓨터가 서로 의사 소통을하고 싶지만 세 번째 사람이 말하고있는 것을 알지 못하고 Diffie-Hellman (DH) 알고리즘을 이해하려고하지만 보안되지 않은 상태에서 사용할 비밀 키를 교환하려고합니다. 채널.소수와 생성자 매개 변수를 알고 Diffie-Hellman을 "해킹"할 수 있습니까?

세 번째 것은 DH가 처리하는 방법, 즉 상수 매개 변수를 알고 있다는 것입니다. 더 구체적으로 페이지g :

DH algorithm

그래서 페이지g을 알고 있다면 문제는,이다 나는 밥과 앨리스가 자신의 비밀 키로 8을 사용할 것을 발견 할 수 있습니까? 이 없기 때문에

+2

MITM을 방지하려면 키를 인증해야합니다. 쉬운 일이 아닙니다. http://blogs.msdn.com/b/ericlippert/archive/2011/09/27/keep-it-secret-keep-it-safe.aspx – SLaks

+0

DH의 요점은 방안에있는 모든 사람 (또는 철사) p, g, A 및 B를 알 수 있고, 여전히 "a"(귀하의 경우 6) 및 "b"(귀하의 경우 5)를 찾을 기회가 없습니다. Alice & Bob조차도 자신의 비밀 (a & b) 만 알고 있지만 다른 것은 아닙니다. 그러나 수학의 아름다움 (이산 로그)으로 인해 공유 비밀 (8)에 도달합니다. 질문에 대답하기 위해 p & g가 공격자를 돕지 않는다는 것을 안다. BTW, "교과서"D-H의 가장 큰 취약점은 중간 공격의 인간입니다. – Dan

+0

http://crypto.stackexchange.com/ –

답변

2

아니 당신은, 당신이 먼저가 discrete logarithm을 계산 evesdropper 필요합니다 a (앨리스의 비밀 키) 또는 b (Bob의 비밀 키)를 계산할 수 있어야 비밀 키를 계산하고 할 수 없습니다 Deffie_Hellmen을 계산할 수있는 알려진 알 고리즘은 매우 안전하며 타사 (evesdropper)는 8이 비밀 키라는 것을 결코 알지 못할 것입니다. 올바른 키 교환을 위해서는 pg 중에서 선택하는 것이 중요합니다.

0

발전기 (그룹 전체를 생성해야 함)와 번호 p 선택에주의해야합니다. 당신이 대부분의 가능성에 대해 얘기하고 곱셈 그룹 모드 p를, 특히 경우

: :

  1. 당신의 P는 발전기 g는 primitive root mod p 수있는 safe prime
  2. 수있다

    또한 구현시 타이밍 및 기타 side channel attacks에 취약 할 수 있습니다.

    즉 :하지 마십시오. 암호는 어렵다. 너에게 도움이 될 library을 사용하십시오.