Регистрация
Комплексные поставки электронных компонентов
  • 20 октября 2020

Основы криптографии


В статье рассматриваются основные принципы, составляющие основу современной криптографии.

Безопасность криптографических приложений в большой мере зависит от симметричных и закрытых ключей, которые постоянно являются секретными. Метод их хранения также защищен.

В современной криптографии используются два основных типа алгоритмов - симметричный и асимметричный. В алгоритмах с асимметричным ключом используется комбинация закрытых и открытых ключей, тогда как в симметричных алгоритмах применяются только закрытые, или т. н. секретные ключи. В таблице представлены основные характеристики каждого алгоритма.

Теперь давайте рассмотрим, как решается каждая криптографическая задача с помощью этих алгоритмов двух типов.

КОНФИДЕНЦИАЛЬНОСТЬ ПРИ ИСПОЛЬЗОВАНИИ СИММЕТРИЧНЫХ АЛГОРИТМОВ

Главная цель конфиденциальности -сохранение информации втайне от всех, кто не должен иметь к ней доступа. В криптографической системе с симметричным ключом эта задача решается путем шифрования данных, которыми обмениваются отправитель и получатель. И отправитель, и получатель имеют доступ к одному и тому же секретному ключу, который используется для шифрования и дешифрования передаваемого сообщения (см. рис. 1).

Пока ключ защищен и только отправитель и получатель имеют доступ к ключу шифрования/дешифрования, никто другой не может получить переданное сообщение, даже если оно перехвачено в процессе передачи. Таким образом, сообщение остается «конфиденциальным».

Рис. 1. Алгоритмы симметричного шифрования обеспечивают конфиденциальность с помощью закрытых или секретных ключей

Таблица. Сравнение криптографических алгоритмов

Сервисы безопасности и функции Алгоритм
симметричный асимметричный
конфиденциальность да да
идентификация да да
и аутентификация да да
целостность да да
невозможность отказа да, в сочетании с алгоритмом с открытым/ закрытым ключом да
шифрование да, быстрое да, медленное
расшифровка да, быстрая да, медленная
общая безопасность высокая высокая
управление ключами необходим обмен ключами и защита ключа не только со стороны отправителя, но и со стороны получателя необходимо обеспечение безопасности каждого закрытого ключа не только со стороны отправителя, но и со стороны получателя
сложность алгоритма легкий для понимания может быть трудным для понимания
размер ключа 128 бит, 192 бит, 256 бит или больше, но не настолько длинный, как асимметричный ключ (зависит от секретности ключей) 256 бит, 1024 бит, 2048 бит, 3072 бит или больше, что зависит от криптостойкости (количество времени и ресурсов, необходимых для расшифровки)
уязвимости системы неправильное управление ключами, их генерация и использование ненадлежащая реализация
атаки полный перебор, линейный/ дифференциальный криптоанализ полный перебор, линейный/ дифференциальный криптоанализ и Oracle

КОНФИДЕНЦИАЛЬНОСТЬ ПРИ ИСПОЛЬЗОВАНИИ АСИММЕТРИЧНЫХ АЛГОРИТМОВ

В системе с асимметричным ключом получатель свободно распространяет свой открытый ключ. Отправитель получает открытый ключ и проверяет его подлинность. Для этого выполняется несколько действий (см. рис. 2). Для простоты предположим, что отправитель имеет доступ к проверенному открытому ключу получателя, использует этот ключ для шифрования сообщения и отправляет его получателю.

Открытый ключ получателя математически связан с закрытым ключом получателя. Отправитель, да и любой другой человек, не имеет доступа к закрытому ключу получателя. Для расшифровки полученного сообщения получатель использует закрытый ключ. Это единственный ключ, с помощью которого можно прочесть сообщение, зашифрованное соответствующим открытым ключом. поскольку закрытый ключ находится только у получателя, другой человек или организация не могут расшифровать отправленное сообщение. таким образом, сообщение остается «конфиденциальным».

ИДЕНТИФИКАЦИЯ И АУТЕНТИФИКАЦИЯ ПРИ ИСПОЛЬЗОВАНИИ СИММЕТРИЧНОГО АЛГОРИТМА

Напомним, что цель идентификации и аутентификации состоит в том, чтобы сначала идентифицировать объект или пользователя, а затем аутентифицировать их, чтобы доподлинно установить, кто на связи.

На рисунке 3 показан простой пример идентификации и аутентификации по симметричному алгоритму. Комментарии к шагам 1-6 позволяют лучше понять описываемый процесс.

На этапе 4 используется метод «дайджест». Дайджест, или хэш-сумма - это значение фиксированной длины, вычисляемое по большому набору данных.

РОЛЬ ОДНОКРАТНО ИСПОЛЬЗУЕМОГО ЧИСЛА

Злоумышленник может завладеть последним дайджестом, переданным получателем, а затем с помощью этого дайджеста запросить аутентификацию. Атаки этого типа называются «атаки повторного воспроизведения», т. е. атаки с помощью повторной отправки ранее использованного дайджеста. Использование для аутентификации однократно используемого случайного числа предотвращает такие атаки. В этом случае аутентификация злоумышленника не состоится, поскольку для каждой аутентификации отправителю требуется новый дайджест с новым однократно используемым числом (nonce). Эти числа обычно генерируются с помощью надежного генератора случайных чисел.

Рис. 2. Асимметричный алгоритм помогает обеспечить конфиденциальность за счет использования открытого и закрытого ключей

Рис. 3. Пример идентификации и аутентификации с симметричным ключом

Теперь давайте рассмотрим практический пример идентификации и аутентификации с использованием алгоритма SHA3-256.

ИДЕНТИФИКАЦИЯ И АУТЕНТИФИКАЦИЯ С ПОМОЩЬЮ АЛГОРИТМА SHA-3

На рисунке 4 подробнее описаны идентификация и аутентификация с помощью симметричного алгоритма с ключом

SHA-3 - самого нового в семействе безопасных алгоритмов хэширования (Secure Hash Algorithm, SHA). Maxim Integrated -первая компания, применяющая в производстве алгоритм безопасной аутентификации SHA3-256. Комментарии к шагам 1-6 позволяют лучше понять описываемый процесс.

«Случайное число» на рисунке 4 является однократно используемым, которое необходимо для предотвращения атак путем повторного воспроизведения.

ИДЕНТИФИКАЦИЯ И АУТЕНТИФИКАЦИЯ С ПОМОЩЬЮ АСИММЕТРИЧНОГО АЛГОРИТМА

Как уже упоминалось, цель идентификации и аутентификации состоит в том, чтобы сначала идентифицировать объект или пользователя, а затем аутентифицировать их, чтобы наверняка установить личность пользователя, с которым осуществляется связь.

Рис. 4. Подробный пример работы симметричного алгоритма с SHA-3

Рис. 5. Пример идентификации и аутентификации с помощью асимметричного алгоритма

Как это достигается с помощью схемы с асимметричным ключом? На рисунке 5 показан пример процесса идентификации и аутентификации по асимметричному алгоритму. Комментарии к шагам 1-6 позволяют лучше понять описываемый процесс.

Теперь давайте рассмотрим практический пример идентификации и аутентификации с помощью алгоритма цифровых подписей на основе эллиптических кривых (Elliptic Curve Digital Signature Algorithm, ECDSA).

ИДЕНТИФИКАЦИЯ И АУТЕНТИФИКАЦИЯ С ПОМОЩЬЮ ECDSA

На рисунке 6 показан более подробный пример идентификации и аутентификации с помощью асимметричного алгоритма ECDSA. Комментарии к шагам 1-6 позволяют лучше понять описываемый процесс.

Хотя этот метод осуществляет аутентификацию устройства, он не охватывает весь процесс аутентификации системы, включающий в себя проверку того, что получатель является частью системы, а также обязательную проверку цифровых сертификатов устройства. Мы рассмотрим цифровые сертификаты, а также более подробное описание цифровых подписей.

СРАВНЕНИЕ КРИПТОГРАФИЧЕСКИХ АЛГОРИТМОВ

На рисунке 7 сравнивается использование ключей с симметричными и асимметричными алгоритмами. Прежде чем перейти к следующей теме, необходимо установить различия между безопасным хэшем (Secure Hash) и кодом проверки подлинности сообщений (Hashed Message Authentication Code, HMAC).

На рисунке 8 показаны различия между этими алгоритмами. фактически, Secure Hash использует алгоритм хэширования, например SHA-3, для получения хэша фиксированной длины сообщения независимо от его длины. HMAC работает аналогично, но в качестве дополнительного входа в функцию хэширования он использует ключ. Он также создает хэш фиксированной длины независимо от длины входного сообщения.

Рис. 6. Пример идентификации и аутентификации с помощью асимметричного алгоритма ECDSA

Рис. 7. Сравнение криптографических алгоритмов с симметричным и асимметричным ключами

ИСПОЛЬЗОВАНИЕ СИММЕТРИЧНЫХ АЛГОРИТМОВ ДЛЯ ОБЕСПЕЧЕНИЯ ЦЕЛОСТНОСТИ

Целью сохранения целостности сообщения является гарантия, что любое полученное сообщение или любое новое подключенное устройство не содержит нежелательный код или информацию.

Давайте рассмотрим пример того, как можно этого достичь с помощью симметричного алгоритма, такого как SHA-3. позже мы рассмотрим особенности работы этих алгоритмов.

На рисунке 9 отправитель вычисляет дайджест сообщения с помощью определенного ключа. поскольку он симметричный, отправитель и получатель используют его совместно.

Дайджест или хэш, созданный с помощью ключа, называется HMAC. Он генерируется путем вычисления алгоритмом SHA-3 из сообщения и ключа. полученный HMAC и сообщение отправляются получателю, который генерирует собственный HMAC с помощью своего ключа. Два дайджеста HMAC сравниваются; если они совпадают, сообщение считается подлинным.

В таком сценарии кто-то может перехватить и HMAC, и сообщение, изменить его, сгенерировать новый HMAC и отправить его получателю. Однако это не сработает, т. к. у перехватчика нет секретного ключа получателя, и дайджесты HMAC не совпадут.

ИСПОЛЬЗОВАНИЕ АСИММЕТРИЧНЫХ АЛГОРИТМОВ ДЛЯ ОБЕСПЕЧЕНИЯ ЦЕЛОСТНОСТИ

Целью сохранения целостности сообщения является гарантия, что любое полученное сообщение или любое новое подключенное устройство не содержит нежелательный код или информацию. Давайте рассмотрим пример того, как это достигается с помощью асимметричного алгоритма ECDSA.

Рис. 8. Сходства и ключевые различия между HMAC и Secure Hash

Рис. 9. Использование симметричного алгоритма SHA-3 для обеспечения целостности

Основная идея заключается в том, что отправитель подписывает сообщение цифровой подписью, а получатель проверяет подпись, чтобы удостовериться в целостности полученного сообщения.

На рисунке 10 отправитель вычисляет дайджест сообщения с помощью алгоритма хэширования SHA-2. поскольку это схема с асимметричным ключом, он не используется совместно отправителем и получателем. в отличие от симметричного алгоритма, где генерируемый дайджест/хэш не использует ключ, в этом случае у отправителя имеется закрытый ключ, который никогда не используется совместно, а получатель имеет открытый ключ, который могут применять многие пользователи, и наоборот.

Сгенерированный дайджест подается в алгоритм ECDSA вместе с закрытым ключом отправителя для создания цифровой подписи сообщения, которая вместе с ним отправляется получателю. На этом процесс подписания отправленного сообщения завершается.

Теперь, когда получатель получил сообщение и цифровую подпись от отправителя, он может начать процесс верификации, который состоит из двух отдельных этапов.

1. Из полученного сообщения получатель вычисляет дайджест сообщения.

2. Вычисленный дайджест, полученная от отправителя цифровая подпись и открытый ключ отправителя подаются в алгоритм ECDSA для верификации.

В процессе верификации алгоритм ECDSA выдает результат «да» или «нет». в случае положительного результата целостность сообщения сохранена, а в противном случае - нарушена.

Рис. 10. Использование асимметричного алгоритма ECDSA для обеспечения целостности

Рис. 11. Отправитель и получатель обмениваются доверенным цифровым сертификатом, подписанным третьей стороной

НЕВОЗМОЖНОСТЬ ОТКАЗА ПРИ ИСПОЛЬЗОВАНИИ АСИММЕТРИЧНОГО АЛГОРИТМА

Сообщение, подписанное цифровой подписью отправителя, может использоваться для подтверждения того, что оно было отправлено и не было изменено. Однако цифровая подпись не может подтвердить идентификацию отправителя. Ее подтверждение осуществляется с помощью цифрового сертификата.

На рисунках 11-14 иллюстрируются все шаги по созданию полноценной системы с открытым ключом, в которой обмен сообщениями не может отклонить ни одна из сторон.

Основная идея заключается в том, что и отправитель, и получатель должны доказать друг другу свою идентичность, а их открытые ключи должны быть подтверждены доверенной третьей стороной.

Почему так важно использовать цифровой сертификат? Без него кто-то, притворяющийся отправителем (т. е. злоумышленник), может отправить сообщение, зашифрованное открытым ключом получателя вместе с цифровой подписью, заверенной закрытым ключом злоумышленника. Затем злоумышленник отправляет получателю свой подложный открытый ключ. Получатель будет использовать этот ключ для проверки цифровой подписи, и результаты проверки окажутся положительными. Однако сообщение от злоумышленника может содержать вредоносную информацию, о чем получатель не заподозрит. Цифровой сертификат позволяет убедиться, что полученный открытый ключ действительно принадлежит отправителю, а не злоумышленнику.

Рис. 12. Отправитель и получатель проверяют подлинность доверенного цифрового сертификата, подписанного третьей стороной

Рис. 13. Отправитель и получатель извлекают открытые ключи друг друга из цифрового сертификата

Рис. 14. Отправитель и получатель обмениваются сообщениями, от которых невозможно отказаться

Автор: ЗИЯ САРДАР (ZIA SARDAR), инженер по приложениям, Maxim Integrated

Опубликовано в журнале "Электронные Компоненты" №8, 2020 г.

Продолжение в статье "Криптографические алгоритмы".


Производители

Вернуться в раздел