Алгоритмы хеширования
В QCA доступен ряд алгоритмов хеширования.
Алгоритмы хеширования используются с классами Hash и MessageAuthenticationCode.
Алгоритм MD2 принимает произвольный поток данных, называемый сообщением, и выводит сжатое 128-битное (16 байт) представление этого потока данных, называемое дайджестом сообщения. Этот алгоритм считается немного более безопасным, чем MD5, но он более затратен в вычислении. Если не требуются обратная совместимость или интероперабельность, лучше использовать алгоритмы хеширования SHA1 или RIPEMD160. Для получения дополнительной информации о MD2 см. B. Kalinski RFC1319 «The %MD2 Message-Digest Algorithm». Обозначение для MD2 — «md2».
Алгоритм MD4 принимает произвольный поток данных, называемый сообщением, и выводит сжатое 128-битное (16 байт) представление этого потока данных, называемое дайджестом сообщения. На основании известных атак MD4 не считается безопасным. Его следует использовать только для приложений, в которых атаки столкновения не рассматриваются (например, как используется в алгоритме rsync для сбора отпечатков блоков данных). Если требуется безопасный хеш, лучше использовать алгоритмы хеширования SHA1 или RIPEMD160. MD2 и MD5 являются более сильными 128-битными хешами. Для получения дополнительной информации о MD4 см. R. Rivest RFC1320 «The %MD4 Message-Digest Algorithm». Обозначение для MD4 — «md4».
Алгоритм MD5 принимает произвольный поток данных, называемый сообщением, и выводит сжатое 128-битное (16 байт) представление этого потока данных, называемое дайджестом сообщения. На основании известных атак MD5 не считается безопасным. Его следует использовать только для приложений, в которых атаки столкновения не рассматриваются. Если требуется безопасный хеш, лучше использовать алгоритмы хеширования SHA1 или RIPEMD160. Для получения дополнительной информации о MD5 см. R. Rivest RFC1321 «The %MD5 Message-Digest Algorithm». Обозначение для MD5 — «md5».
Алгоритм RIPEMD160 принимает произвольный поток данных, называемый сообщением (длиной до
бит) и выводит сжатое 160-битное (20 байт) представление этого
потока данных, называемое дайджестом сообщения. Алгоритм RIPEMD160 считается безопасным в том
смысле, что с вычислительной точки зрения невозможно найти сообщение, создавшее дайджест.
Обозначение для RIPEMD160 — «ripemd160».
Алгоритм SHA-0 — это 160-битная функция хеширования, которая больше не рекомендуется для новых приложений из-за известных (частично) атак на неё. Обозначение для SHA-0 — «sha0».
Алгоритм SHA-1 принимает произвольный поток данных, называемый сообщением (длиной до
бит) и выводит сжатое 160-битное (20 байт) представление этого
потока данных, называемое дайджестом сообщения. Алгоритм SHA-1 считается безопасным в том смысле,
что с вычислительной точки зрения невозможно найти сообщение, создавшее дайджест. Дополнительную
информацию об алгоритме SHA-1 см. в публикации 180-2 Федерального стандарта обработки информации
«Specifications for the Secure %Hash Standard», доступной по ссылке
http://csrc.nist.gov/publications/. Обозначение для SHA-1 — «sha1».
Алгоритм SHA-224 принимает произвольный поток данных, называемый сообщением (длиной до
бит) и выводит сжатое 224-битное (28 байт) представление этого
потока данных, называемое дайджестом сообщения. SHA-224 — это сокращённая версия SHA-256, и может
быть лучше использовать SHA-256 в новых проектах. Алгоритм SHA-224 считается безопасным в том
смысле, что с вычислительной точки зрения невозможно найти сообщение, создавшее дайджест.
Дополнительную информацию об алгоритме SHA-1 см. в публикации 180-2 Федерального стандарта обработки
информации «Specifications for the Secure %Hash Standard», с уведомлением об изменении 1, доступной
по ссылке http://csrc.nist.gov/publications/. Обозначение для SHA-224 — «sha224».
Алгоритм SHA-256 принимает произвольный поток данных, называемый сообщением (длиной до
бит) и выводит сжатое 256-битное (32 байта) представление этого
потока данных, называемое дайджестом сообщения. Алгоритм SHA-256 считается безопасным в том смысле,
что с вычислительной точки зрения невозможно найти сообщение, создавшее дайджест. Дополнительную
информацию об алгоритме SHA-256 см. в публикации 180-2 Федерального стандарта обработки информации
«Specifications for the Secure %Hash Standard», доступной по ссылке
http://csrc.nist.gov/publications/. Обозначение для SHA-256 — «sha256».
Алгоритм SHA-384 принимает произвольный поток данных, называемый сообщением (длиной до
бит) и выводит сжатое 384-битное (48 байт) представление этого
потока данных, называемое дайджестом сообщения. SHA-384 — это сокращённая версия SHA-512, и может
быть лучше использовать SHA-384 в новых проектах. Алгоритм SHA-384 считается безопасным в том
смысле, что с вычислительной точки зрения невозможно найти сообщение, создавшее дайджест.
Дополнительную информацию об алгоритме SHA-384 см. в публикации 180-2 Федерального стандарта
обработки информации «Specifications for the Secure %Hash Standard», доступной по ссылке
http://csrc.nist.gov/publications/. Обозначение для SHA-384 — «sha384».
Алгоритм SHA-512 принимает произвольный поток данных, называемый сообщением (длиной до
бит) и выводит сжатое 512-битное (64 байта) представление
этого потока данных, называемое дайджестом сообщения. Алгоритм SHA-512 считается безопасным в том
смысле, что с вычислительной точки зрения невозможно найти сообщение, создавшее дайджест.
Дополнительную информацию об алгоритме SHA-512 см. в публикации 180-2 Федерального стандарта
обработки информации «Specifications for the Secure %Hash Standard», доступной по ссылке
http://csrc.nist.gov/publications/. Обозначение для SHA-512 — «sha512».
Алгоритм Whirlpool принимает произвольный поток данных, называемый сообщением (длиной до
бит) и выводит сжатое 512-битное (64 байта) представление
этого потока данных, называемое дайджестом сообщения. Алгоритм Whirlpool считается безопасным в том
смысле, что с вычислительной точки зрения невозможно найти сообщение, создавшее дайджест. Для
получения дополнительной информации о Whirlpool см.
https://web.archive.org/web/20081109144329/http://paginas.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html
или ISO/IEC 10118-3:2004. Обозначение для Whirlpool — «whirlpool».