Треки
/
Rust
Rust
/
Вправи
/
Diffie-Hellman
Diffie-Hellman

Diffie-Hellman

Легка

Вказівки

Обмін ключами Діффі-Геллмана.

Alice і Bob використовують обмін ключами Діффі-Геллмана, щоб ділитися секретами. Вони починають із простих чисел, обирають приватні ключі, генерують і обмінюються відкритими ключами, а потім генерують спільний секретний ключ.

Крок 0

Тестова програма надає прості числа p і g.

Крок 1

Alice обирає приватний ключ a, більший за 1 і менший за p. 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 вправ та справжнє наставництво від людей, і все це безкоштовно.