Шифрование¶
Термины¶
- CSP - Crypto Service Provider -
- IV - Initialization vector - последовательность символов, которая добавляется к ключу шифрования для повышения его безопасности.
- nonce - number that can only by used once - одноразовый код, предотвращающий атаку повторного воспроизведения.
- HMAC - hash-based message authenticastion code - код проверки подлинности сообщений.
- PBDF - Password-Based Key Derivation Function - стандарт формирования ключа на основе пароля. Часть PKCS #5 v2.0.
- PRF - Pseudo-Random Function -
- PKI - Public Key Infrastructure - набор средств для поддержки криптозадач на основе открытых и закрытых ключей.
- Ассиметричное шифрование - данные шифруются открытым ключом, расшифровываются закрытым.
- Электронная подпись - данные шифруются закрытым ключом, расшифровываются закрытым (ассиметричное шифрование наоборот). Представляет собой зашифрованный закрытым ключом хеш документа и приложенный к нему сертификат для проверки.
- Сертификат - открытый ключ и данные владельца. Прикладывается к подписанному документу. В свою очередь подписан ЭП удостоверяющим центром. Открытый ключ для проверки сертификата можно получить на сайте удостоверяющего центра.
- Ключ электронной подписи - закрытый ключ, которым шифруется хеш подписываемого документа.
Алгоритмы¶
- RSA - Rivest, Shamir , Adleman (1977)- алгоритм шифрования и цифровой подписи с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел.
Быстрая проверка, медленная генерация подписи.
-
Elgamal - Схема Эль-Гамаля - криптосистема с открытым ключом на трудности вычисления дискретных логарифмов в конечном поле. Включает в себя как шифрование, так и цифровую подпись. Лежит в основе DSA и ГОСТ Р 34.10-94.
-
DSA - Digital Signature Algorithm (1998) - алгоритм создания цифровой подписи с использованием пары ключей: открытый, закрытый. Основан на вычислительной сложности взятия логарифмов в конечных полях.
Быстрая генерация подписи, медленная проверка.
- ECDSA - Elliptic Curve Digital Signature Algorithm - ... основан на проблеме дискретного логарифма в группе точек эллиптической кривой.
Быстрая генерация подписи, медленная проверка.
- EdDSA - Edwards-curve Digital Signature Algorithm - ... основан на эллиптической кривой Эдвардса.
Быстрая генерация подписи, медленная проверка.
- ГОСТ 34.10-2012 - Российский алгоритм, основанный на эллиптических кривых.
Хеширование¶
- Однонаправленная функция.
- На входе произвольная длина, на выходе фиксированная.
- Стойкость к коллизиям (на выходе одинаковые строки для разных входных данных), нахождению второго прообраза.
- Работают на основе структуры Меркла-Дамгора (MD, Merkle-Damgard) - разбиение входных сообщений произвольной длины на блоки фиксированной длины и работа с ними по очереди, принимая на вход предыдущий результат.
Где применяются:
- В ЭЦП
- HMAC, PBKDF-1,2...
- Контрольная сумма, поиск дубликатов
- Протоколы с нулевым разглашением
- Генерация псевдослучайных чисел
- PRF в DH
- Системы контроля версий
Уязвимость
Length extension attack Как избежать? - использовать HMAC.
Алгоритмы хеширования¶
- SHA-256
- SHA-512
- Blake2
- Streebog
- SHA-3
- SHA-1
- MD5
MAC¶
Message Authentication Code - код для аутентификации сообщений.
HMAC¶
- Если размер ключа больше размера блока, с которым работает хешфункция, то в качестве ключа берется хеш ключа.
- Используется для генерации CSRF-токенов.
- Модуль itsdangerous в python.