Перейти к содержанию

Шифрование

Термины

  • 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.