Поделиться через


Хэш и алгоритмы подписи

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

Алгоритмы Description
Цепочка блоков шифров (CBC) MAC
Одним из алгоритмов (CALG_MAC), реализованных поставщиками Майкрософт, является код проверки подлинности сообщения блокировки (MAC). Этот метод шифрует базовые данные с помощью блочного шифра, а затем использует последний зашифрованный блок в качестве хэш-значения. Алгоритм шифрования, используемый для сборки MAC, является тем, который был указан при создании ключа сеанса.
Код проверки подлинности сообщений с помощью хэш-функций
Алгоритм (CALG_HMAC), реализованный поставщиками Майкрософт. Этот алгоритм также использует симметричный ключ для создания хэша, но является более сложным, чем простой алгоритм MAC цепочки блоков шифров (CBC). Его можно использовать с любым итерированным алгоритмом криптографического хэша, например MD5 или SHA-1. Дополнительные сведения см. в разделе "Создание HMAC".
MD2, MD4 и MD5
Эти алгоритмы хэширования были разработаны RSA Data Security, Inc. Эти алгоритмы были разработаны в последовательном порядке. Все три создают 128-разрядные хэш-значения. Все три, как известно, имеют слабые места и должны использоваться только в тех случаях, когда это необходимо для обеспечения совместимости. Для нового кода рекомендуется использовать семейство хэшей SHA-2.
Эти алгоритмы хорошо известны и могут быть подробно рассмотрены в любой ссылке на криптографию.
Код проверки подлинности сообщений (MAC)
Алгоритмы MAC похожи на хэш-алгоритмы, но вычисляются с помощью симметричного (сеанса) ключа. Исходный ключ сеанса требуется для повторной компиляции хэш-значения. Повторное хэш-значение используется для проверки того, что базовые данные не были изменены. Эти алгоритмы иногда называются хэш-алгоритмами с ключами. Сведения о том, какие поставщики Майкрософт поддерживают MAC, см. в разделе "Поставщики служб шифрования Майкрософт".
Безопасный хэш-алгоритм (SHA-1)
Этот алгоритм хэширования был разработан Национальным институтом стандартов и технологий (NIST) и Агентством национальной безопасности (NSA). Этот алгоритм разработан для использования с DSA (алгоритмом цифровой подписи) или DSS (стандарт цифровой подписи). Этот алгоритм создает 160-разрядное хэш-значение . SHA-1, как известно, имеют слабые места и следует использовать только в тех случаях, когда это необходимо для обеспечения совместимости. Для нового кода рекомендуется использовать семейство хэшей SHA-2.
Безопасный хэш-алгоритм — 2 (SHA-2)
Этот алгоритм хэширования был разработан в качестве преемника SHA-1 Национальным институтом стандартов и технологий (NIST) и Агентством национальной безопасности (NSA). Он имеет четыре варианта: SHA-224, SHA-256, SHA-384 и SHA-512, которые называются в соответствии с количеством битов в выходных данных. Из них SHA-256, SHA-384 и SHA-512 реализованы в поставщике шифрования Microsoft AES.
Алгоритм авторизации клиента SSL3
Этот алгоритм используется для проверки подлинности клиента SSL3. В протоколе SSL3 объединение хэша MD5 и хэша SHA подписывается закрытым ключом RSA. CryptoAPI 2.0 и Microsoft Base и расширенные поставщики шифрования поддерживают это с хэш-типом CALG_SSL3_SHAMD5. Дополнительные сведения см. в статье "Создание хэша CALG_SSL3_SHAMD5".