Задания. Криптосистемы с открытым ключом

Криптосистемы с открытым ключом

1. Напишите программу генерации простых целых чисел. Для указанного интервала [a, b] она должна сформировать текстовый файл из простых чисел (по одному в строке).

2. Напишите программу генерации целого числа Мерсенна (M(n)=2n-1, где n - простое) большой размерности и проверки его на простоту.

3. Напишите программу калькулятор, реализующий символьную арифметику с целыми числами размерностью до 250 десятичных знаков. Реализовать память (переменные) на десять регистров (R0-R9) и команды ввода и вывода значений этих регистров из текстового файла и обратно в текстовый файл.

4. Напишите библиотеку подпрограмм для символьных вычислений с целыми числами размерностью не превышающих 512 двоичных знаков. Реализуйте операции: сложения, вычитания, деления, умножения, mod, div, abs, возведения в квадрат, форматированного ввода и вывода, операции сравнения (=, >, <, >=, <=, <>), определения размерности.

5. Напишите библиотеку подпрограмм для модульной арифметики, использующей для чисел представление Монтгомери. В представлении Монтгомери умножение по модулю p эквивалентно двум обычным умножениям. Menezes A., van Oorschot P., Vanstone S. Handbook of applied cryptography. CRC Press, 1996. 661 p. (http://www.cacr.math.uwaterloo.ca/ hac/).

6. Реализуйте алгоритм степеней (ae mod n) для больших целых чисел размерностью до 250 десятичных знаков.

7. Реализуйте алгоритм степеней (ae mod n) для больших целых чисел размерностью до 512 двоичных знаков.

8. Реализуйте программы шифрования и расшифровки по методу RSA.

9. Реализуйте программы шифрования и расшифровки по методу Эль-Гамаля.

10. Реализуйте программы шифрования и расшифровки с использованием эллиптических кривых.

11. Реализуйте программы формирования и проверки электронной подписи по методу шифрования RSA.

12. Реализуйте программы формирования и проверки электронной подписи на основе ГОСТ Р34.10-94.

13. Реализуйте программы формирования и проверки электронной подписи на эллиптической кривой (ГОСТ Р34.10‑2001).

14. Разложите число n = 3 552 377 на простые множители, если известно, что оно равно произведению двух разных простых чисел и φ(n) = 3 548 580.

15. Дешифруйте следующий текст, зашифрованный по методу RSA:

22752 – 6198 – 14204 – 23191 – 10723 – 14065,

если известно, что n=23393, e=5, а каждая буква русского алфавита представлена двузначным десятичным числом (А-10, Б-11, …, Я - 41) Ё – исключено, пробел кодируется числом 99.

16. Дешифруйте сообщение 3410 – 5693 – 7112, зашифрованное по методу RSA с n=7597, e=4947и φ(n) =7420. Способ кодирования символов - как в предыдущем варианте задания.

17. Дешифруйте сообщение 4944 – 6022 – 4656 – 2295 – 9293 – 5289 – 3566 – 2589, зашифрованное по методу RSA с n=10403, e=1399и φ(n) =7420. Способ кодирования символов - как в предыдущем варианте задания.

18. Реализуйте программу обмена ключами по методу Диффи-Хеллмана.

19. Реализуйте программу обмена ключами по методу Диффи-Хеллмана, заменив возведение в степень на операцию композиции точки на эллиптической кривой.

20. Реализуйте программы формирования и проверки электронной подписи по стандарту DSS. Для создания цифровой подписи используется алгоритм DSA (Digital Signature Algorithm), а в качестве хэш-алгоритма – SHA-1 (Sequre Hash Algorithm).

21. Реализуйте программу шифрования и расшифрования ключей по методу Шамира.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: