트랙
/
Rust
Rust
/
연습 문제
/
Diffie-Hellman
Diffie-Hellman

Diffie-Hellman

쉬움

지침

디피-헬만 키 교환.

Alice와 Bob은 디피-헬만 키 교환으로 비밀을 공유해요. 두 사람은 소수로 시작해서 개인 키를 고르고, 공개 키를 만들어 공유한 다음, 공유 비밀 키를 만들어요.

0단계

테스트 프로그램이 소수 p와 g를 제공해요.

1단계

Alice는 1보다 크고 p보다 작은 개인 키 a를 골라요. Bob도 같은 방식으로 개인 키 b를 골라요.

2단계

Alice는 공개 키 A를 계산해요.

A = gᵃ mod p

같은 p와 g를 사용해서 Bob도 자신의 개인 키 b로 공개 키 B를 계산해요.

3단계

Alice와 Bob은 공개 키를 교환해요. Alice는 비밀 키 s를 계산해요.

s = Bᵃ mod p

Bob은 다음을 계산해요.

s = Aᵇ mod p

두 계산은 같은 결과를 내요! 이제 Alice와 Bob은 비밀 s를 공유해요.

이 연습 문제를 푸는 한 가지 방법은 모듈러 거듭제곱 함수를 직접 구현하는 거예요. 이에 대해 더 알아보려면 다음 문서를 참고해요.

보너스 점수를 원한다면

많은 구현이 모든 입력 범위에서 제대로 동작하지는 않아요. 모든 유효한 입력이 유효한 결과를 내는지 확인하는 데 도움이 되는 추가 선택 테스트가 정의되어 있어요.

보너스 테스트를 실행하려면 #[ignore] 플래그를 지우고, 다음과 같이 big-primes 기능을 켜서 테스트를 실행해요:

$ cargo test --features big-primes
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Rust Exercism

Diffie-Hellman 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Rust 트랙을 연습 문제 99개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.