Дополнительный материал
Факторизация целых чисел
Факторизация целых чисел — это процесс разложения числа на простые множители, то есть такие множители, которые не могут быть разделены на другие числа, кроме 1 и самого себя.
Факторизация лежит в основе криптографических алгоритмов, таких как RSA. Безопасность RSA основана на сложности факторизации больших чисел. Если бы мы могли быстро факторизовать большие числа, мы могли бы легко взломать шифры, использующие RSA.
RSA (Rivest-Shamir-Adleman)
RSA — это криптографический алгоритм, который используется для шифрования и цифровой подписи. Он основан на сложности факторизации больших целых чисел.
- Выбираются два больших простых числа p и q
- Вычисляется их произведение n=p×q
- Вычисляется функция Эйлера ϕ(n)=(p−1)×(q−1)
- Выбирается число e (открытый ключ), которое взаимно простое с ϕ(n)
- Вычисляется число d (закрытый ключ), которое является мультипликативным обратным к e по модулю ϕ(n)
RSA используется для безопасной передачи данных и создания цифровых подписей, подтверждающих подлинность отправителя.
Задача дискретного логарифма
Задача дискретного логарифма заключается в нахождении такого числа x, что для данного основания g и модуля p, выражение gx≡h (mod p) выполняется. Проще говоря, нужно найти x, зная g, h и p.
Эта задача является основой для многих криптографических протоколов, таких как Диффи-Хеллман и алгоритмы цифровой подписи (например, DSA). Их безопасность основывается на сложности решения задачи дискретного логарифма.
Диффи-Хеллман (Diffie-Hellman)
Диффи-Хеллман — это криптографический протокол, позволяющий двум сторонам безопасно обмениваться секретным ключом по незащищённому каналу.
- Каждая сторона выбирает случайное секретное число a и b
- Сторона A вычисляет A = g^a mod p и отправляет A стороне B.
- Сторона B вычисляет B=g^b mod p и отправляет B стороне A.
DSA (Digital Signature Algorithm)
DSA — это стандарт цифровой подписи, основанный на задаче дискретного логарифма.
- Генерация ключей:
- Выбирается простое число p, q (меньшее простое число, делящее p−1), и основание g.
- Выбирается случайное число x (секретный ключ).
- Вычисляется y=g^x mod p (открытый ключ).
- Подпись сообщения:
- Проверка подписи:
Задачи на эллиптических кривых
Эллиптические кривые — это множества точек, удовлетворяющих определенному уравнению, которое имеет вид y^2=x^3+ax+b. Задача дискретного логарифма на эллиптических кривых аналогична обычной задаче дискретного логарифма, но проводится на группе точек эллиптической кривой.
Эллиптические кривые используются в криптографии (например, алгоритм ECC - Elliptic Curve Cryptography) благодаря своей эффективности и безопасности. Криптосистемы на основе эллиптических кривых обеспечивают такую же безопасность, как и системы на основе RSA, но с гораздо меньшими размерами ключей, что делает их быстрее и экономичнее.
ECC (Elliptic Curve Cryptography)
ECC — это метод криптографии, использующий свойства эллиптических кривых для создания более эффективных и безопасных криптографических алгоритмов.