stringtranslate.com

ША-2

SHA-2 ( Secure Hash Algorithm 2 ) — это набор криптографических хэш-функций , разработанный Агентством национальной безопасности США (АНБ) и впервые опубликованный в 2001 году . [3] [4] Они построены с использованием конструкции Меркла-Дамгорда , от функция одностороннего сжатия, построенная с использованием структуры Дэвиса-Мейера на основе специализированного блочного шифра.

SHA-2 включает существенные изменения по сравнению со своим предшественником SHA-1 . Семейство SHA-2 состоит из шести хэш-функций с дайджестами (хеш-значениями) длиной 224, 256, 384 или 512 бит: [5] SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/ 224, ША-512/256 . SHA-256 и SHA-512 — это новые хеш-функции, вычисляемые с использованием восьми 32-битных и 64-битных слов соответственно. Они используют разные величины сдвига и аддитивные константы, но в остальном их структуры практически идентичны, отличаясь только количеством раундов. SHA-224 и SHA-384 — это усеченные версии SHA-256 и SHA-512 соответственно, рассчитанные с разными начальными значениями. SHA-512/224 и SHA-512/256 также являются усеченными версиями SHA-512, но начальные значения генерируются с использованием метода, описанного в Федеральных стандартах обработки информации (FIPS) PUB 180-4.

SHA-2 был впервые опубликован Национальным институтом стандартов и технологий (NIST) в качестве федерального стандарта США. Семейство алгоритмов SHA-2 запатентовано в США [6]. Соединенные Штаты выпустили патент под безвозмездной лицензией. [5]

По состоянию на 2011 год лучшие публичные атаки преодолевают сопротивление прообразу в течение 52 из 64 раундов SHA-256 или 57 из 80 раундов SHA-512, а также сопротивление коллизиям в течение 46 из 64 раундов SHA-256. [1] [2]

Стандарт хеша

Одна итерация функции сжатия семейства SHA-2. Синие компоненты выполняют следующие операции: Побитовое вращение использует разные константы для SHA-512. Данные числа относятся к SHA-256. Красный цвет — сложение по модулю 2 32 для SHA-256 или 2 64 для SHA-512.
    
    
    
    

С публикацией FIPS PUB 180-2 NIST добавил три дополнительные хеш-функции в семейство SHA. Алгоритмы известны под общим названием SHA-2 по длине их дайджеста (в битах): SHA-256, SHA-384 и SHA-512.

Алгоритмы были впервые опубликованы в 2001 году в проекте FIPS PUB 180-2, после чего были приняты общественное рассмотрение и комментарии. В августе 2002 года FIPS PUB 180-2 стал новым стандартом безопасного хеширования , заменив FIPS PUB 180-1, выпущенный в апреле 1995 года. Обновленный стандарт включал исходный алгоритм SHA-1 с обновленными техническими обозначениями, соответствующими тем, которые описывают внутренняя работа семейства SHA-2. [4]

В феврале 2004 года было опубликовано уведомление об изменении FIPS PUB 180-2, в котором указан дополнительный вариант SHA-224, определенный для соответствия длине ключа двухключевого Triple DES . [7] В октябре 2008 года стандарт был обновлен до FIPS PUB 180-3, включая SHA-224 из уведомления об изменении, но в остальном фундаментальных изменений в стандарт не вносилось. Основной мотивацией для обновления стандарта было перемещение информации о безопасности об алгоритмах хэширования и рекомендаций по их использованию в специальные публикации 800-107 и 800-57. [8] [9] [10] Подробные тестовые данные и примеры дайджестов сообщений также были удалены из стандарта и предоставлены в виде отдельных документов. [11]

В январе 2011 года NIST опубликовал SP800-131A, в котором оговаривался переход от действующего на тот момент минимума 80-битной безопасности (обеспечиваемого SHA-1), разрешенного для использования федеральным правительством до конца 2013 года, к 112-битной безопасности (при условии по SHA-2) является одновременно минимальным требованием (начиная с 2014 года) и рекомендуемым уровнем безопасности (начиная с даты публикации в 2011 году). [12]

В марте 2012 года стандарт был обновлен в FIPS PUB 180-4, добавив хеш-функции SHA-512/224 и SHA-512/256 и описав метод генерации начальных значений для усеченных версий SHA-512. Кроме того, было снято ограничение на заполнение входных данных перед вычислением хеш-функции, что позволяет вычислять хеш-данные одновременно с генерацией контента, например видео- или аудиопотока в реальном времени. Заполнение последнего блока данных должно произойти до вывода хэша. [13]

В июле 2012 года NIST пересмотрел SP800-57, который содержит рекомендации по управлению криптографическими ключами. Публикация запрещала создание цифровых подписей с хеш-безопасностью ниже 112 бит после 2013 года. В предыдущей версии 2007 года крайним сроком был конец 2010 года. [10] В августе 2012 года NIST пересмотрел SP800-107 таким же образом. [9]

В 2012 году на конкурсе хэш-функций NIST была выбрана новая хеш-функция SHA-3 . [14] Алгоритм SHA-3 не является производным от SHA-2.

Приложения

Хэш-функция SHA-2 реализована в некоторых широко используемых приложениях и протоколах безопасности, включая TLS и SSL , PGP , SSH , S/MIME и IPsec .

SHA-256 используется для аутентификации пакетов программного обеспечения Debian [15] и в стандарте подписи сообщений DKIM ; SHA-512 является частью системы аутентификации архивных видео Международного уголовного трибунала о геноциде в Руанде . [16] SHA-256 и SHA-512 предлагаются для использования в DNSSEC . [17] Поставщики Unix и Linux переходят на использование 256- и 512-битного SHA-2 для безопасного хеширования паролей. [18]

Некоторые криптовалюты , включая Биткойн , используют SHA-256 для проверки транзакций и расчета доказательства работы [19] или доказательства доли . [20] Рост популярности микросхем-ускорителей ASIC SHA-2 привел к использованию схем доказательства работы на основе скриптов .

SHA-1 и SHA-2 — это алгоритмы безопасного хеширования , необходимые по закону для использования в некоторых приложениях правительства США , включая использование в других криптографических алгоритмах и протоколах, для защиты конфиденциальной несекретной информации. FIPS PUB 180-1 также поощряет принятие и использование SHA-1 частными и коммерческими организациями. SHA-1 выводится из эксплуатации для большинства государственных нужд; Национальный институт стандартов и технологий США заявляет: «Федеральные агентства должны прекратить использование SHA-1 для... приложений, требующих устойчивости к коллизиям, как можно скорее, и должны использовать семейство хеш-функций SHA-2 для этих приложений после 2010 года». (выделено в оригинале). [21] Директива NIST о том, что правительственные учреждения США должны, но не обязаны прекратить использование SHA-1 после 2010 года [22] , была призвана ускорить переход от SHA-1.

Первоначально функции SHA-2 не были быстро приняты, несмотря на лучшую безопасность, чем SHA-1. Причины могут включать отсутствие поддержки SHA-2 в системах под управлением Windows XP SP2 или старше [23] и отсутствие осознания срочности, поскольку коллизии SHA-1 еще не были обнаружены. Команда Google Chrome объявила о плане постепенного прекращения поддержки сертификатов TLS, зависящих от SHA-1, в течение периода с конца 2014 по начало 2015 года. [24] [25] [26] Аналогичным образом Microsoft объявила [27] , что Интернет Explorer и Edge прекратят поддержку общедоступных сертификатов TLS, подписанных SHA-1, с февраля 2017 года. Mozilla отключила SHA-1 в начале января 2016 года, но была вынуждена временно включить его через обновление Firefox из-за проблем с веб-интерфейсами пользователя. некоторые модели маршрутизаторов и устройства безопасности . [28]

Криптоанализ и проверка

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

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

В случае подписания документа злоумышленник не мог просто подделать подпись на существующем документе — злоумышленнику пришлось бы предоставить пару документов, один безобидный и один вредный, и заставить владельца закрытого ключа подписать безобидный документ. Существуют практические обстоятельства, при которых это возможно; до конца 2008 года можно было создавать поддельные сертификаты SSL с использованием коллизии MD5 , которые принимались широко используемыми веб-браузерами. [29]

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

На FSE 2012 исследователи из Sony представили презентацию, в которой предлагалось расширить атаки псевдостолкновений до 52 раундов для SHA-256 и до 57 раундов для SHA-512, опираясь на атаку бикликового псевдопрообраза. [30]

Официальная валидация

Реализация всех функций безопасности, одобренных FIPS, может быть официально проверена с помощью программы CMVP , совместно управляемой Национальным институтом стандартов и технологий (NIST) и Управлением безопасности коммуникаций (CSE). Для неофициальной проверки на сайте NIST доступен для скачивания пакет для создания большого количества тестовых векторов; Однако полученная в результате проверка не заменяет формальную проверку CMVP, которая требуется по закону для определенных приложений.

По состоянию на декабрь 2013 года существует более 1300 проверенных реализаций SHA-256 и более 900 SHA-512, причем только 5 из них способны обрабатывать сообщения длиной в битах, не кратной восьми, при этом поддерживают оба варианта. [39]

Тестовые векторы

Хэш-значения пустой строки (т. е. входного текста нулевой длины).

SHA224("")0x d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42fSHA256("")0x e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855SHA384("")0x 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95bSHA512("")0x CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9CE47D0D13C5D85F2BFF83187777EEC2F63B931BD4741AF817778777777777777EEC2F63B931BD4741AF81777877777777777777777.SHA512/224("")0x 6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4SHA512/256("")0x c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a

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

SHA224(" Быстрая бурая лиса прыгает через ленивую собаку ")0x 730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525SHA224(" Быстрая бурая лиса прыгает через ленивую собаку . ")0x 619cba8e8e05826e9b8c519c0a5c68f4fb653e8a3d8aa04bb2c8cd4c

Псевдокод

Ниже приведен псевдокод для алгоритма SHA-256. Обратите внимание на значительное увеличение смешивания битов слов w[16..63]по сравнению с SHA-1.

Примечание 1. Все переменные представляют собой 32-битные целые числа без знака, а сложение рассчитывается по модулю 2. 32 Примечание 2. Для каждого раунда существует одна константа раунда k[i] и одна запись в массиве расписания сообщений w[i], 0 ≤ i ≤ 63 Примечание 3. Функция сжатия использует 8 рабочих переменных, от a до h. Примечание 4. При выражении констант в этом псевдокоде используется соглашение с обратным порядком байтов,  а также при анализе данных блока сообщений из байтов в слова, например,  первого слова входное сообщение «abc» после заполнения — 0x61626380Инициализируем хеш-значения: (первые 32 бита дробных частей квадратных корней первых 8 простых чисел 2..19):ч0 := 0x6a09e667h1 := 0xbb67ae85h2 := 0x3c6ef372h3 := 0xa54ff53ah4:= 0x510e527fh5 := 0x9b05688ch6 := 0x1f83d9abh7 := 0x5be0cd19Инициализировать массив округленных констант: (первые 32 бита дробных частей кубических корней первых 64 простых чисел 2..311):к[0..63] := 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2Предварительная обработка (дополнение):начать с исходного сообщения длиной L битдобавить один бит '1'добавить K бит «0», где K — минимальное число >= 0, такое что (L + 1 + K + 64) кратно 512.добавьте L как 64-битное целое число с прямым порядком байтов, в результате чего общая длина постобработки будет кратна 512 битам.так, что биты в сообщении: <исходное сообщение длиной L> 1 <K нулей> <L как 64-битное целое> , (количество битов будет кратно 512)Обработайте сообщение последовательными 512-битными фрагментами:разбить сообщение на 512-битные кускиза каждый кусок создать массив расписания сообщений из 64 записей w[0..63] из 32-битных слов (Начальные значения в w[0..63] не имеют значения, поэтому во многих реализациях они здесь обнуляются) скопировать фрагмент в первые 16 слов w[0..15] массива расписания сообщений Расширьте первые 16 слов на оставшиеся 48 слов w[16..63] массива расписания сообщений:  для i от 16 до 63 s0 := (w[i-15] правый поворот 7) xor (w[i-15] правый поворот 18) xor (w[i-15] правый сдвиг 3) s1 := (w[i-2] правый поворот 17) xor (w[i-2] правый поворот 19) xor (w[i-2] правый сдвиг 10) w[i] := w[i-16] + s0 + w[i-7] + s1 Инициализируйте рабочие переменные текущим значением хеш-функции: а := h0 б := h1 с := h2 д := h3 е := h4 е := h5 г := h6 ч := h7 Основной цикл функции сжатия:  для i от 0 до 63 S1 := (e повернуть вправо 6) xor (e повернуть вправо 11) xor (e повернуть вправо 25) ch := (e и f) xor (( не e) и g) temp1 := h + S1 + ch + k[i] + w[i] S0 := ( поворот вправо 2) xor ( поворот вправо 13) xor ( поворот вправо 22) maj := (a и b) xor (a и c) xor (b и c) temp2 := S0 + майор  ч := г г := ж е := е е := d + temp1 д := с в := б б := а а := темп1 + темп2 Добавьте сжатый фрагмент к текущему значению хеш-функции: h0 := h0 + a h1 := h1 + б h2 := h2 + с h3 := h3 + d h4 := h4 + е h5 := h5 + f h6 := h6 + г ч7 := ч7 + чСоздайте окончательное значение хеш-функции (с обратным порядком байтов):
дайджест := хэш := h0 присоединить h1 присоединить h2 присоединить h3 присоединить h4 присоединить h5 присоединить h6 присоединить h7

Вычисление значений chи majможно оптимизировать так же , как описано для SHA-1 .

SHA-224 идентичен SHA-256, за исключением того:

Начальные значения хеш-функции SHA-224 (с прямым порядком байтов): (вторые 32 бита дробных частей квадратных корней простых чисел с 9 по 16 23..53)ч[0..7] := 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4

SHA-512 по структуре идентичен SHA-256, но:

Начальные значения хеш-функции SHA-512 (в обратном порядке):h[0..7] := 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b05688c2b3e6c1f, ​​0x1f83d9abfb41bd6b, 0x5be0cd19137e2179Константы раунда SHA-512:k[0..79] := 0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, 0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, 0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694, 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65, 0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, 0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, 0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70, 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df, 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b, 0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30, 0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, 0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3, 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec, 0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, 0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, 0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b, 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c, 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817Сумма SHA-512 и сигма:S0 := ( поворот вправо 28) xor ( поворот вправо 34) xor ( поворот вправо 39)S1 := (e вправо 14) xor (e вправо 18) xor (e вправо 41)s0 := (w[i-15] правый поворот 1) xor (w[i-15] правый поворот 8) xor (w[i-15] правый сдвиг 7)s1 := (w[i-2] правый поворот 19) xor (w[i-2] правый поворот 61) xor (w[i-2] правый сдвиг 6)

SHA-384 идентичен SHA-512, за исключением того, что:

Начальные значения хеш-функции SHA-384 (в обратном порядке):h[0..7] := 0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17, 0x152fecd8f70e5939, 0x67332667ffc00b31, 0x8eb44a8768581511, 0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4

SHA-512/t идентичен SHA-512, за исключением того, что:

Функция генерации SHA-512/t IV оценивает модифицированный SHA-512 в строке ASCII «SHA-512/ t », замененной десятичным представлением t . Модифицированный SHA-512 аналогичен SHA-512, за исключением того, что его начальные значения были подвергнуты h0операции XOR с шестнадцатеричной константой .h70xa5a5a5a5a5a5a5a5

Пример реализации C для семейства хэш-функций SHA-2 можно найти в RFC 6234.

Сравнение функций SHA

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

В столбце побитовых операций «Rot» означает вращение без переноса , а «Shr» означает логический сдвиг вправо . Все эти алгоритмы тем или иным образом используют модульное сложение, за исключением SHA-3.

Более подробные измерения производительности на современных процессорных архитектурах приведены в таблице ниже.

Показатели производительности, помеченные как «x86», выполнялись с использованием 32-битного кода на 64-битных процессорах, тогда как цифры «x86-64» представляют собой собственный 64-битный код. Хотя SHA-256 предназначен для 32-битных вычислений, его код оптимизирован для 64-битных процессоров с архитектурой x86. 32-битные реализации SHA-512 значительно медленнее, чем их 64-битные аналоги. Варианты обоих алгоритмов с разными размерами вывода будут работать одинаково, поскольку функции расширения и сжатия сообщений идентичны, а различаются только начальные значения хеш-функции и размеры вывода. Лучшие реализации MD5 и SHA-1 выполняют на современных процессорах от 4,5 до 6 циклов на байт.

Тестирование проводилось Университетом Иллинойса в Чикаго на системе Hydra8 с процессором Intel Xeon E3-1275 V2 с тактовой частотой 3,5 ГГц и на системе Hydra9 с APU AMD A10-5800K на тактовой частоте 3,8 ГГц. [45] Указанные выше скорости циклов на байт представляют собой среднюю производительность алгоритма, обрабатывающего сообщение размером 4096 байт с использованием программного обеспечения для криптографического тестирования SUPERCOP. [46] Производительность МиБ/с экстраполируется на основе тактовой частоты процессора на одном ядре; Реальная производительность будет варьироваться в зависимости от множества факторов.

Реализации

Ниже приведен список библиотек шифрования, поддерживающих SHA-2:

Аппаратное ускорение обеспечивается следующими расширениями процессора:

Смотрите также

Рекомендации

  1. ^ abc Дмитрий Ховратович, Кристиан Рехбергер и Александра Савельева (2011). «Биклик для прообразов: атаки на Skein-512 и семейство SHA-2» (PDF) . Архив электронной печати криптологии IACR . 2011 (286).
  2. ^ abc Марио Ламбергер и Флориан Мендель (2011). «Дифференциальная атака высшего порядка на уменьшенный SHA-256» (PDF) . Архив электронной печати криптологии IACR . 2011 (37).
  3. ^ Пенард, Воутер; ван Верховен, Тим. «О семействе алгоритмов безопасного хеширования» (PDF) . Staff.science.uu.nl . Архивировано из оригинала (PDF) 30 марта 2016 г.
  4. ^ ab Уведомление Федерального реестра 02-21599, объявляющее об одобрении публикации FIPS 180-2.
  5. ^ ab «Подробности о правах интеллектуальной собственности: Соединенные Штаты Америки, представленные в заявлении об общей лицензии Агентства национальной безопасности» . Трекер данных IETF . 858 . Проверено 17 февраля 2008 г.
  6. ^ США 6829355, Лилли, Гленн М., «Устройство и метод одностороннего криптографического хеширования», опубликовано 7 декабря 2004 г., передано Агентству национальной безопасности. 
  7. ^ «FIPS 180-2 с уведомлением об изменении 1» (PDF) . csrc.nist.gov .
  8. ^ Уведомление Федерального реестра E8-24743, объявляющее об одобрении публикации FIPS 180-3.
  9. ^ Аб Данг, Куин (24 августа 2012 г.). Рекомендации для приложений, использующих утвержденные алгоритмы хеширования (отчет). Национальный институт стандартов и технологий.
  10. ^ Аб Баркер, Элейн; Баркер, Уильям; Берр, Уильям; Полк, В.; Смид, Майлз (10 июля 2012 г.). Рекомендации по управлению ключами, Часть 1: Общие сведения (редакция 3) (Отчет). Национальный институт стандартов и технологий.
  11. ^ "NIST.gov - Отдел компьютерной безопасности - Ресурсный центр компьютерной безопасности" . 29 декабря 2016 г.
  12. ^ Баркер, Элейн; Рогинский, Аллен (13 января 2011 г.). Переходы: рекомендации по переходу на использование криптографических алгоритмов и длин ключей (отчет). Национальный институт стандартов и технологий.
  13. ^ Уведомление Федерального реестра 2012-5400, объявляющее об одобрении публикации FIPS 180-4.
  14. ^ «NIST выбирает победителя конкурса алгоритмов безопасного хеширования (SHA-3)» . НИСТ . 2 октября 2012 года . Проверено 24 февраля 2015 г.
  15. ^ «Проверка подлинности образов Debian» . Проверено 19 февраля 2024 г.
  16. ^ Маркофф, Джон (27 января 2009 г.). «Инструмент для проверки цифровых записей даже при изменении технологий». Нью-Йорк Таймс . ISSN  0362-4331 . Проверено 27 августа 2023 г.
  17. ^ RFC 5702, RFC-Editor.org
  18. ^ «Склеп Unix с SHA-256/512» . akkadia.org . Проверено 27 августа 2023 г.
  19. ^ Биткойн, Излишек. «Биткойн не тратит энергию зря». Избыток биткойнов . Архивировано из оригинала 28 мая 2022 г. Проверено 20 апреля 2020 г.
  20. ^ «Что такое SHA-256 и как он связан с биткойнами? - Mycryptopedia» . Моякриптопедия . 21 сентября 2017 г. Проверено 17 сентября 2018 г.
  21. ^ Отдел компьютерной безопасности, Лаборатория информационных технологий (04 января 2017 г.). «Политика NIST в отношении хэш-функций - хеш-функции | CSRC | CSRC». ЦКРС | НИСТ . Проверено 27 августа 2023 г.
  22. ^ «Безопасное хеширование». НИСТ . Архивировано из оригинала 25 июня 2011 г. Проверено 25 ноября 2010 г.
  23. ^ «Обзор пакета обновления 3 для Windows XP» (PDF) . Корпорация Майкрософт. Архивировано из оригинала (PDF) 30 мая 2008 г.
  24. ^ «Постепенный закат SHA-1» . Блог Хрома . Проверено 27 августа 2023 г.
  25. ^ Эрик Милль. «ШААААААААААА». ШАААААААААААА.com .
  26. ^ «Неофициальные часто задаваемые вопросы об устаревании Chrome SHA1» . Филиппо Вальсорда . 08.04.2015 . Проверено 27 августа 2023 г.
  27. ^ «Обновление нашей дорожной карты прекращения поддержки SHA-1 — блог разработчиков Microsoft EdgeБлог разработчиков Microsoft Edge» . blogs.windows.com . 29 апреля 2016 года . Проверено 28 ноября 2016 г.
  28. ^ онлайн, Хайзе (08 января 2016 г.). «Firefox: Mozilla использует SHA-1 ab… и напрямую». Безопасность (на немецком языке) . Проверено 27 августа 2023 г.
  29. ^ Александр Сотиров, Марк Стивенс, Джейкоб Аппельбаум, Арьен Ленстра, Дэвид Молнар, Даг Арне Освик, Бенне де Вегер, MD5 сегодня считается вредным: Создание мошеннического сертификата CA, по состоянию на 29 марта 2009 г.
  30. ^ Джи Ли, Таканори Исобе и Кёдзи Сибутани, Китайская исследовательская лаборатория Sony и корпорация Sony, Преобразование атаки «встреча посередине» в атаку псевдостолкновения: применение к SHA-2
  31. ^ Санадхья, Сомитра Кумар; Саркар, Палаш (2008), Новые коллизионные атаки против 24-шагового SHA-2, Конспекты лекций по информатике, том. 5365, Springer-Verlag, стр. 91–103, номер документа : 10.1007/978-3-540-89754-5_8, ISBN. 978-3-540-89753-8
  32. ^ Санадхья, Сомитра Кумар; Саркар, Палаш (2009). «Комбинаторный анализ недавних атак на семейство SHA-2 с уменьшенным шагом». Криптография и связь . дои : 10.1007/s12095-009-0011-5.
  33. ^ Кадзумаро Аоки; Цзянь Го; Кристиан Матусевич; Ю Сасаки и Лэй Ван (2009). «Прообразы для SHA-2 с пошаговым сокращением». Достижения в криптологии – ASIACRYPT 2009 . Конспекты лекций по информатике. Том. 5912. Шпрингер Берлин Гейдельберг. стр. 578–597. дои : 10.1007/978-3-642-10366-7_34. ISBN 978-3-642-10366-7. ISSN  0302-9743.
  34. ^ Цзянь Го; Сан Линг; Кристиан Рехбергер и Хуасюн Ван (2010). «Продвинутые атаки типа «встреча посередине»: первые результаты на Full Tiger и улучшенные результаты на MD4 и SHA-2». Достижения в криптологии - ASIACRYPT 2010 (PDF) . Конспекты лекций по информатике. Том. 6477. Шпрингер Берлин Гейдельберг. стр. 56–75. дои : 10.1007/978-3-642-17373-8_4. ISBN 978-3-642-17373-8. ISSN  0302-9743.
  35. ^ Флориан Мендель; Томислав Над; Мартин Шлеффер (2013). «Улучшение локальных коллизий: новые атаки на сокращенный SHA-256». Достижения в криптологии – EUROCRYPT 2013. Конспекты лекций по информатике. Том. 7881. Шпрингер Берлин Гейдельберг. стр. 262–278. дои : 10.1007/978-3-642-38348-9_16. ISBN 978-3-642-38348-9. ISSN  0302-9743.
  36. ^ Мария Эйхльзедер, Флориан Мендель и Мартин Шлеффер (2014). «Эвристика ветвления при дифференциальном поиске коллизий с применением SHA-512» (PDF) . Архив электронной печати криптологии IACR . 2014 (302).
  37. ^ Кристоф Добрауниг; Мария Эйхлседер и Флориан Мендель (2016). «Анализ SHA-512/224 и SHA-512/256» (PDF) . Международная ассоциация криптологических исследований .
  38. ^ Ли, Инсинь; Лю, Фукан; Ван, Гаоли (2024). «Новые рекорды столкновений на SHA-2». Архив электронной печати по криптологии . Проверено 2 марта 2024 г.
  39. ^ «Список проверки SHS» . НИСТ . 16.06.2017. Архивировано из оригинала 17 июня 2017 г.
  40. ^ «Таблица измерений». скамейка.cr.yp.to .
  41. ^ Тао, Се; Лю, Фаньбао; Фэн, Дэнго (2013). Быстрая атака столкновений на MD5 (PDF) . Архив криптологии ePrint (Технический отчет). МАКР .
  42. ^ Стивенс, Марк ; Бурштейн, Эли ; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. Первое столкновение для полного SHA-1 (PDF) (Технический отчет). Google Исследования .
    • Марк Стивенс; Эли Бурштейн; Пьер Карпман; Анж Альбертини; Ярик Марков; Алекс Пети Бьянко; Клеман Байс (23 февраля 2017 г.). «Анонсируем первое столкновение SHA1». Блог Google по безопасности .
  43. ^ Без усечения известно полное внутреннее состояние хеш-функции, независимо от устойчивости к коллизиям. Если выходные данные усекаются, удаленную часть состояния необходимо найти и найти, прежде чем можно будет возобновить хеш-функцию, что позволит продолжить атаку.
  44. ^ "Семейство функций губки Кеккак" . Проверено 27 января 2016 г.
  45. ^ Контрольные показатели SUPERCOP Измерения хэш-функций, индексируемые машиной.
  46. ^ "СУПЕРКОП" . Проверено 24 февраля 2015 г.
  47. ^ Поддерживаемые наборы шифров SSL / TLS.
  48. ^ Журнал изменений Mbed TLS, 7 июля 2007 г.
  49. ^ «Техническое справочное руководство по процессору ARM Cortex-A53 MPCore, расширение криптографии» .
  50. ^ Принципы работы IBM z/Architecture, номер публикации SA22-7832. См. инструкции KIMD и KLMD в главе 7.

дальнейшее чтение

Внешние ссылки