stringtranslate.com

ША-1

В криптографии SHA-1 ( Secure Hash Algorithm 1 ) — это хеш-функция , которая принимает входные данные и выдает 160- битное (20- байтовое ) хеш-значение, известное как дайджест сообщения — обычно отображаемое как 40 шестнадцатеричных цифр. Он был разработан Агентством национальной безопасности США и является Федеральным стандартом обработки информации США . [3] Алгоритм был криптографически взломан [4] [5] [6] [7] [8] [9] [10] , но все еще широко используется.

С 2005 года SHA-1 не считался безопасным против хорошо финансируемых оппонентов; [11] по состоянию на 2010 год многие организации рекомендовали его замену. [12] [10] [13] NIST официально запретил использование SHA-1 в 2011 году и запретил его использование для цифровых подписей в 2013 году, а также заявил, что он должен быть прекращен к 2030 году. [14] По состоянию на 2020 год атаки с выбранным префиксом против SHA-1 являются практичными. [6] [8] Таким образом, рекомендуется как можно скорее удалить SHA-1 из продуктов и вместо этого использовать SHA-2 или SHA-3 . Замена SHA-1 является неотложной там, где он используется для цифровых подписей .

Все основные поставщики веб-браузеров прекратили принимать сертификаты SSL SHA-1 в 2017 году. [15] [9] [4] В феврале 2017 года CWI Amsterdam и Google объявили, что провели атаку на коллизию SHA-1, опубликовав два разных файла PDF, которые создали одинаковый хэш SHA-1. [16] [2] Однако SHA-1 по-прежнему безопасен для HMAC . [17]

Microsoft прекратила поддержку подписи кода SHA-1 для Центра обновления Windows 3 августа 2020 года [18] , что также фактически прекратило работу серверов обновлений для версий Windows , которые не были обновлены до SHA-2, таких как Windows 2000 вплоть до Vista , а также версии Windows Server от Windows 2000 Server до Server 2003 .

Разработка

Одна итерация в функции сжатия SHA-1:
  • A, B, C, D и E — 32-битные слова состояния;
  • F — нелинейная функция, которая изменяется;
  • ⁠ ⁠ обозначает поворот левого бита на n позиций;
  • n меняется для каждой операции;
  • W t — расширенное слово сообщения раунда t ;
  • K t — постоянная раунда t ;
  • обозначает сложение по модулю 2 32 .

SHA-1 создает хэш-код сообщения на основе принципов, аналогичных тем, которые использовал Рональд Л. Ривест из Массачусетского технологического института при разработке алгоритмов хэш-кода сообщения MD2 , MD4 и MD5 , но генерирует большее значение хэш-функции (160 бит против 128 бит).

SHA-1 был разработан в рамках проекта правительства США Capstone . [19] Первоначальная спецификация алгоритма была опубликована в 1993 году под названием Secure Hash Standard , FIPS PUB 180, агентством по стандартам правительства США NIST (Национальный институт стандартов и технологий). [20] [21] Эта версия теперь часто называется SHA-0 . Она была отозвана АНБ вскоре после публикации и была заменена пересмотренной версией, опубликованной в 1995 году в FIPS PUB 180-1 и обычно обозначаемой SHA-1 . SHA-1 отличается от SHA-0 только одним побитовым вращением в графике сообщений его функции сжатия . По данным АНБ, это было сделано для исправления недостатка в исходном алгоритме, который снижал его криптографическую безопасность, но они не предоставили никаких дополнительных объяснений. [22] [23] Публично доступные методы действительно продемонстрировали компрометацию SHA-0 в 2004 году, до SHA-1 в 2017 году ( см. §Атаки ).

Приложения

Криптография

SHA-1 является частью нескольких широко используемых приложений и протоколов безопасности, включая TLS и SSL , PGP , SSH , S/MIME и IPsec . Эти приложения также могут использовать MD5 ; как MD5 , так и SHA-1 произошли от MD4 .

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

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

Хэш-функции SHA легли в основу блочных шифров SHACAL .

Целостность данных

Системы контроля версий, такие как Git , Mercurial и Monotone, используют SHA-1 не для безопасности, а для идентификации версий и обеспечения того, чтобы данные не изменились из-за случайного повреждения. Линус Торвальдс сказал о Git в 2007 году:

Если у вас есть повреждение диска, если у вас есть повреждение DRAM, если у вас есть какие-либо проблемы вообще, Git их заметит. Это не вопрос « если» , это гарантия. У вас могут быть люди, которые попытаются быть злонамеренными. У них ничего не получится. [...] Никто не смог взломать SHA-1, но суть в том, что SHA-1, насколько это касается Git, даже не является функцией безопасности. Это просто проверка согласованности. Части безопасности находятся в другом месте, поэтому многие люди предполагают, что поскольку Git использует SHA-1, а SHA-1 используется для криптографически безопасных вещей, они думают, что, ладно, это огромная функция безопасности. Это вообще не имеет ничего общего с безопасностью, это просто лучший хэш, который вы можете получить. ...
Я гарантирую вам, что если вы поместите свои данные в Git, вы можете быть уверены в том, что спустя пять лет, после того как они будут преобразованы с вашего жесткого диска на DVD с использованием любой новой технологии и вы скопируете их, спустя пять лет вы сможете убедиться, что полученные вами данные — это те же самые данные, которые вы туда внесли. [...]
Одна из причин, по которой я беспокоюсь, — это ядро. У нас был взлом одного из сайтов BitKeeper , где люди пытались повредить репозитории исходного кода ядра. [25]

Однако Git не требует устойчивости ко второму прообразу SHA-1 в качестве функции безопасности, поскольку он всегда предпочитает сохранять самую раннюю версию объекта в случае коллизии, не давая злоумышленнику тайно перезаписывать файлы. [26] Известные атаки (по состоянию на 2020 год) также не нарушают устойчивость ко второму прообразу. [27]

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

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

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

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

Из-за блочной и итеративной структуры алгоритмов и отсутствия дополнительных конечных шагов все функции SHA (кроме SHA-3) [29] уязвимы для атак с расширением длины и частичным столкновением сообщений. [30] Эти атаки позволяют злоумышленнику подделать сообщение, подписанное только ключевым хешем – SHA( message || key ) или SHA( key || message ) – путем расширения сообщения и пересчета хеша без знания ключа. Простым улучшением для предотвращения этих атак является хеширование дважды: SHA d ( message ) = SHA(SHA(0 b || message )) (длина 0 b , нулевого блока, равна размеру блока хеш-функции).

ША-0

На конференции CRYPTO 98 два французских исследователя, Флоран Шабо и Антуан Жу , представили атаку на SHA-0: коллизии могут быть найдены со сложностью 2 61 , что меньше, чем 2 80 для идеальной хеш-функции того же размера. [31]

В 2004 году Бихам и Чен обнаружили почти коллизии для SHA-0 – два сообщения, которые хэшируются почти до одинакового значения; в этом случае 142 из 160 бит равны. Они также обнаружили, что полные коллизии SHA-0 сократились до 62 из 80 раундов. [32]

Впоследствии, 12 августа 2004 года, Жу, Каррибо, Лемюэ и Жальби объявили о коллизии для полного алгоритма SHA-0. Это было сделано с использованием обобщения атаки Шабо и Жу. Нахождение коллизии имело сложность 2 51 и заняло около 80 000 процессоро-часов на суперкомпьютере с 256 процессорами Itanium 2 (что эквивалентно 13 дням постоянного использования компьютера).

17 августа 2004 года на сессии Rump конференции CRYPTO 2004 предварительные результаты были объявлены Ваном , Фэном, Лаем и Юем об атаке на MD5 , SHA-0 и другие хэш-функции. Сложность их атаки на SHA-0 составляет 2 40 , что значительно лучше, чем у атаки Жу и др. [33] [34]

В феврале 2005 года было объявлено об атаке Сяоюнь Вана , Ицюнь Лизы Инь и Хунбо Юя, которая смогла найти коллизии в SHA-0 в 239 операциях . [5] [35]

Другая атака 2008 года с применением атаки «бумеранг» снизила сложность поиска коллизий до 2 33,6 , что, по оценкам, заняло бы 1 час на среднем ПК в 2008 году. [36]

В свете результатов SHA-0 некоторые эксперты [ кто? ] предположили, что планы по использованию SHA-1 в новых криптосистемах следует пересмотреть. После публикации результатов CRYPTO 2004 NIST объявил, что они планируют отказаться от использования SHA-1 к 2010 году в пользу вариантов SHA-2. [37]

Атаки

В начале 2005 года Винсент Реймен и Элизабет Освальд опубликовали атаку на сокращенную версию SHA-1 – 53 из 80 раундов – которая находит коллизии с вычислительными затратами менее 2,80 операций . [38]

В феврале 2005 года было объявлено об атаке, предпринятой Сяоюнь Ваном , Ицюнь Лизой Инь и Хунбо Юем. [5] Атаки могут находить коллизии в полной версии SHA-1, требуя менее 2,69 операций . ( Для поиска методом перебора потребуется 2,80 операций .)

Авторы пишут: «В частности, наш анализ построен на оригинальной дифференциальной атаке на SHA-0, атаке с близким столкновением на SHA-0, методах многоблочных столкновений, а также методах модификации сообщений, используемых в атаке поиска столкновений на MD5. Взлом SHA-1 был бы невозможен без этих мощных аналитических методов». [39] Авторы представили коллизию для 58-раундового SHA-1, найденную с помощью 2 33 хэш-операций. Статья с полным описанием атаки была опубликована в августе 2005 года на конференции CRYPTO.

В интервью Инь утверждает, что «Грубо говоря, мы используем следующие две слабости: одна из них заключается в том, что этап предварительной обработки файла недостаточно сложен; другая заключается в том, что определенные математические операции в первых 20 раундах имеют неожиданные проблемы безопасности». [40]

17 августа 2005 года на конференции CRYPTO 2005 Rump Session было объявлено об улучшении атаки SHA-1 от имени Сяоюнь Вана , Эндрю Яо и Фрэнсис Яо , что снизило сложность, необходимую для поиска коллизии в SHA-1, до 2 63 . [7] 18 декабря 2007 года подробности этого результата были объяснены и проверены Мартином Кохраном. [41]

Кристоф Де Канньер и Кристиан Рехбергер дополнительно улучшили атаку на SHA-1 в «Поиске характеристик SHA-1: общие результаты и приложения», [42] получив награду за лучшую статью на ASIACRYPT 2006. Была представлена ​​двухблочная коллизия для 64-раундового SHA-1, найденная с использованием неоптимизированных методов с 2 35 оценками функции сжатия. Поскольку эта атака требует эквивалента около 2 35 оценок, она считается значительным теоретическим прорывом. [43] Их атака была расширена еще до 73 раундов (из 80) в 2010 году Гречниковым. [44] Однако для того, чтобы найти фактическую коллизию в полных 80 раундах хеш-функции, требуется огромное количество компьютерного времени. С этой целью 8 августа 2007 года начался поиск коллизий для SHA-1 с использованием добровольной вычислительной платформы BOINC , организованный Техническим университетом Граца . Попытка была прекращена 12 мая 2009 года из-за отсутствия прогресса. [45]

На сессии Rump конференции CRYPTO 2006 Кристиан Рехбергер и Кристоф Де Канньер заявили, что обнаружили коллизионную атаку на SHA-1, которая позволяет злоумышленнику выбрать по крайней мере части сообщения. [46] [47]

В 2008 году методология атаки Стефана Мануэля сообщила о коллизиях хэшей с предполагаемой теоретической сложностью от 2,51 до 2,57 операций . [48] Однако позже он отказался от этого заявления, обнаружив, что локальные пути коллизий на самом деле не являются независимыми, и, наконец, сослался на наиболее эффективный вектор коллизии, который был уже известен до этой работы. [49]

Кэмерон Макдональд, Филип Хоукс и Йозеф Пиепшик представили атаку коллизии хэшей с заявленной сложностью 2 52 на сессии Rump конференции Eurocrypt 2009. [50] Однако сопроводительная статья «Дифференциальный путь для SHA-1 со сложностью O (2 52 )» была отозвана из-за того, что авторы обнаружили, что их оценка была неверной. [51]

Одна из атак против SHA-1 была проведена Марком Стивенсом [52] с предполагаемой стоимостью 2,77 млн ​​долларов (2012 г.) для взлома одного значения хэша путем аренды мощности ЦП с облачных серверов. [53] Стивенс разработал эту атаку в проекте под названием HashClash, [54] реализовав атаку дифференциального пути. 8 ноября 2010 г. он заявил, что у него есть полностью рабочая атака с почти столкновением против полного SHA-1, работающая с предполагаемой сложностью, эквивалентной 2 57,5 ​​сжатий SHA-1. Он подсчитал, что эту атаку можно расширить до полной коллизии со сложностью около 2 61 .

ШАППЕНИНГ

8 октября 2015 года Марк Стивенс, Пьер Карпман и Томас Пейрен опубликовали атаку с коллизией свободного старта на функцию сжатия SHA-1, которая требует всего 2 57 оценок SHA-1. Это не приводит напрямую к коллизии на полной хеш-функции SHA-1 (где злоумышленник не может свободно выбирать начальное внутреннее состояние), но подрывает заявления о безопасности SHA-1. В частности, это был первый случай, когда была продемонстрирована атака на полный SHA-1 ; все предыдущие атаки были слишком дорогими для их авторов, чтобы их осуществить. Авторы назвали этот значительный прорыв в криптоанализе SHA-1 The SHAppening . [10]

Метод был основан на их более ранней работе, а также на технике ускорения вспомогательных путей (или бумерангов) от Жу и Пейрена, и с использованием высокопроизводительных/экономичных видеокарт от Nvidia . Коллизия была обнаружена на кластере из 16 узлов с общим количеством 64 видеокарт. Авторы подсчитали, что подобную коллизию можно было бы найти, купив время GPU на 2000 долларов США на EC2 . [10]

Авторы подсчитали, что стоимость аренды достаточного количества времени EC2 CPU/GPU для генерации полной коллизии для SHA-1 на момент публикации составляла от 75 тыс. до 120 тыс. долларов США, и отметили, что это вполне соответствовало бюджету преступных организаций, не говоря уже о национальных разведывательных агентствах . Таким образом, авторы рекомендовали как можно скорее прекратить поддержку SHA-1. [10]

SHAttered – первое публичное столкновение

23 февраля 2017 года CWI (Centrum Wiskunde & Informatica) и Google объявили об атаке SHAttered , в ходе которой они сгенерировали два разных PDF-файла с одинаковым хешем SHA-1 примерно за 2 63,1 оценки SHA-1. Эта атака примерно в 100 000 раз быстрее, чем подбор методом подбора коллизии SHA-1 с атакой на день рождения , которая, по оценкам, заняла 2 80 оценок SHA-1. Для атаки потребовалась «вычислительная мощность, эквивалентная 6500 годам вычислений на одном ЦП и 110 годам вычислений на одном ГП». [2]

Атака на основе близкого к столкновению дня рождения – первая практическая атака на основе выбранного префикса

24 апреля 2019 года в докладе Гаэтана Лёрента и Томаса Пейрена, представленном на Eurocrypt 2019, было описано усовершенствование ранее лучшей атаки с выбранным префиксом в функциях дайджеста типа Меркла-Дамгарда на основе блочных шифров Дэвиса-Майера . Благодаря этим улучшениям этот метод способен находить коллизии с выбранным префиксом примерно за 2 68 оценок SHA-1. Это примерно в 1 миллиард раз быстрее (и теперь может использоваться для многих целевых атак благодаря возможности выбора префикса, например, вредоносного кода или поддельных удостоверений в подписанных сертификатах), чем 2 77,1 оценок предыдущей атаки (но без выбранного префикса, что было непрактично для большинства целевых атак, поскольку найденные коллизии были почти случайными) [1] и достаточно быстро, чтобы быть практичным для находчивых злоумышленников, требуя примерно 100 000 долларов США на облачную обработку. Этот метод также способен находить коллизии выбранного префикса в функции MD5 , но при сложности 2 46,3 не превосходит предыдущий наилучший доступный метод на теоретическом уровне (2 39 ), хотя потенциально на практическом уровне (≤2 49 ). [55] Эта атака требует памяти 500+ ГБ.

5 января 2020 года авторы опубликовали улучшенную атаку под названием «shambles». [8] В этой статье они демонстрируют атаку на коллизию с выбранным префиксом со сложностью 2 63,4 , которая на момент публикации стоила бы 45 тыс. долларов США за одну сгенерированную коллизию.

Официальное подтверждение

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

По состоянию на декабрь 2013 года существует более 2000 проверенных реализаций SHA-1, 14 из которых способны обрабатывать сообщения с длиной в битах, не кратной восьми (см. список проверок SHS, заархивированный 23 августа 2011 г. на Wayback Machine ).

Примеры и псевдокод

Примеры хэшей

Это примеры дайджестов сообщений SHA-1 в шестнадцатеричном формате и в двоичном формате Base64 для кодирования текста ASCII .

Даже небольшое изменение в сообщении с подавляющей вероятностью приведет к изменению многих битов из-за лавинного эффекта . Например, изменение dogна cogсоздает хэш с другими значениями для 81 из 160 битов:

Хэш строки нулевой длины:

Псевдокод SHA-1

Ниже приведен псевдокод алгоритма SHA-1:

Примечание 1: Все переменные являются беззнаковыми 32-битными величинами и переносятся по модулю 2 32 при вычислении, за исключением  ml, длины сообщения, которая является 64-битной величиной, и  hh, дайджеста сообщения, который является 160-битной величиной. Примечание 2: Все константы в этом псевдокоде находятся в big endian .  В каждом слове самый старший байт хранится в крайней левой позиции байтаИнициализация переменных:h0 = 0x67452301h1 = 0xEFCDAB89h2 = 0x98BADCFEh3 = 0x10325476h4 = 0xC3D2E1F0ml = длина сообщения в битах (всегда кратна количеству бит в символе).Предварительная обработка:добавьте бит «1» к сообщению, например, добавив 0x80, если длина сообщения кратна 8 битам.добавить 0 ≤ k < 512 бит «0», так чтобы результирующая длина сообщения в битах была сравнима с −64 ≡ 448 (mod 512)добавить ml, исходную длину сообщения в битах, как 64-битное целое число с обратным порядком байтов . Таким образом, общая длина кратна 512 битам.Обрабатываем сообщение последовательными 512-битными фрагментами:разбить сообщение на 512-битные фрагментыдля каждого куска разбить кусок на шестнадцать 32-битных слов с обратным порядком байтов w[i], 0 ≤ i ≤ 15 Расписание сообщений: расширить шестнадцать 32-битных слов до восьмидесяти 32-битных слов:  для i от 16 до 79  Примечание 3: SHA-0 отличается тем, что не имеет этого левого вращения. w[i] = (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) левое вращение 1 Инициализируем хеш-значение для этого фрагмента: а = h0 б = х1 с = h2 д = х3 е = h4 Основной цикл: [3] [56]  для i от 0 до 79,  если 0 ≤ i ≤ 19 , то f = (b и c) или (( не b) и d) к = 0x5A827999 иначе если 20 ≤ i ≤ 39 f = b xor c xor d к = 0x6ED9EBA1 иначе если 40 ≤ i ≤ 59 f = (b и c) или (b и d) или (c и d) к = 0x8F1BBCDC иначе если 60 ≤ i ≤ 79 f = b xor c xor d к = 0xCA62C1D6 temp = (a левый поворот 5) + f + e + k + w[i] е = д д = с c = b левое вращение 30 б = а а = температура Добавьте хэш этого фрагмента к текущему результату: h0 = h0 + а h1 = h1 + b h2 = h2 + с h3 = h3 + d h4 = h4 + еСоздать окончательное значение хэша (big-endian) в виде 160-битного числа:
hh = (h0 leftshift 128) или (h1 leftshift 96) или (h2 leftshift 64) или (h3 leftshift 32) или h4

Число hhпредставляет собой дайджест сообщения, который можно записать в шестнадцатеричном формате (основание 16).

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

Вместо показанной формулировки из исходного документа FIPS PUB 180-1 для вычислений fв основном цикле выше можно использовать следующие эквивалентные выражения:

Побитовый выбор между c и d , контролируемый b .
(0 ≤ i ≤ 19): f = d xor (b и (c xor d))  (альтернатива 1)
(0 ≤ i ≤ 19): f = (b и c) или (( не b) и d)  (альтернатива 2)
(0 ≤ i ≤ 19): f = (b и c) xor (( не b) и d)  (альтернатива 3)
(0 ≤ i ≤ 19): f = vec_sel(d, c, b)  (альтернатива 4) [премо08]Функция побитового большинства.
(40 ≤ i ≤ 59): f = (b и c) или (d и (b или c))  (вариант 1)
(40 ≤ i ≤ 59): f = (b и c) или (d и (b xor c))  (вариант 2)
(40 ≤ i ≤ 59): f = (b и c) xor (d и (b xor c))  (вариант 3)
(40 ≤ i ≤ 59): f = (b и c) xor (b и d) xor (c и d)  (вариант 4)
(40 ≤ i ≤ 59): f = vec_sel(c, b, c xor d)  (вариант 5)

Также было показано [57] , что для раундов 32–79 вычисление:

w[i] = (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) левое вращение 1

можно заменить на:

w[i] = (w[i-6] xor w[i-16] xor w[i-28] xor w[i-32]) левое вращение 2

Это преобразование сохраняет все операнды выровненными по 64 бита и, устраняя зависимость от w[i], w[i-3]обеспечивает эффективную реализацию SIMD с длиной вектора 4, как инструкции SSE x86 .

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

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

Реализации

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

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

Меры противодействия столкновениям

Вслед за SHAttered Марк Стивенс и Дэн Шумоу опубликовали "sha1collisiondetection" (SHA-1CD), вариант SHA-1, который обнаруживает атаки столкновений и изменяет вывод хэша при их обнаружении. Частота ложных срабатываний составляет 2 −90 . [64] SHA-1CD используется GitHub с марта 2017 года и git с версии 2.13.0 от мая 2017 года. [65]

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

Примечания

  1. ^ ab Стивенс, Марк (19 июня 2012 г.). Атаки на хэш-функции и приложения (PDF) (диссертация). Лейденский университет . hdl :1887/19093. ISBN 9789461913173. OCLC  795702954.
  2. ^ abc Стивенс, Марк ; Бурштейн, Эли ; Карпман, Пьер; Альбертини, Анж; Марков, Ярик (2017). Кац, Джонатан ; Шахам, Ховав (ред.). Первое столкновение для полного SHA-1 (PDF) . Достижения в криптологии – CRYPTO 2017. Конспекты лекций по информатике . Том. 10401. Спрингер . стр. 570–596. дои : 10.1007/978-3-319-63688-7_19. ISBN 9783319636870. Архивировано из оригинала (PDF) 15 мая 2018 г. . Получено 23 февраля 2017 г. .
    • Марк Стивенс; Эли Бурштейн; Пьер Карпман; Анж Альбертини; Ярик Марков; Алекс Пети Бьянко; Клемент Бейсс (23 февраля 2017 г.). «Анонс первой коллизии SHA1». Блог безопасности Google .
  3. ^ ab "Secure Hash Standard (SHS)" (PDF) . Национальный институт стандартов и технологий. 2015. doi :10.6028/NIST.FIPS.180-4. Публикация федеральных стандартов обработки информации 180-4. Архивировано из оригинала (PDF) 2020-01-07 . Получено 2019-09-23 .
  4. ^ ab "Конец SHA-1 в публичной сети". Блог безопасности Mozilla . 23 февраля 2017 г. Получено 29 мая 2019 г.
  5. ^ abc "SHA-1 сломан – Schneier о безопасности". www.schneier.com .
  6. ^ ab «Продемонстрирован критический недостаток в общем алгоритме цифровой безопасности». Наньянский технологический университет, Сингапур . 24 января 2020 г.
  7. ^ ab «Новые результаты криптоанализа против SHA-1 – Schneier о безопасности». www.schneier.com .
  8. ^ abc Leurent, Gaëtan; Peyrin, Thomas (2020-01-05). "SHA-1 is a Shambles First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust" (PDF) . Архив Cryptology ePrint, Отчет 2020/014 .
  9. ^ ab "Google откажется от шифрования SHA-1 в Chrome к 1 января 2017 года". VentureBeat . 2015-12-18 . Получено 2019-05-29 .
  10. ^ abcde Стивенс, Марк; Карпман, Пьер; Пейрин, Томас. «SHAppening: коллизии при свободном запуске для SHA-1» . Проверено 9 октября 2015 г.
  11. Шнайер, Брюс (18 февраля 2005 г.). «Шнайер о безопасности: криптоанализ SHA-1».
  12. ^ "NIST.gov – Computer Security Division – Computer Security Resource Center". Архивировано из оригинала 2011-06-25 . Получено 2019-01-05 .
  13. ^ Шнайер, Брюс (8 октября 2015 г.). «SHA-1 Freestart Collision». Шнайер о безопасности .
  14. ^ "NIST прекращает поддержку криптографического алгоритма SHA-1" (пресс-релиз). NIST. 2022-12-15.
  15. ^ Гудин, Дэн (2016-05-04). «Microsoft прекратит поддержку сертификатов SHA1 в течение следующих 4 месяцев». Ars Technica . Получено 29-05-2019 .
  16. ^ "CWI, Google объявляют о первом столкновении для отраслевого стандарта безопасности SHA-1" . Получено 23.02.2017 .
  17. ^ Баркер, Элейн (май 2020 г.). Рекомендации по управлению ключами: Часть 1 – Общие положения, Таблица 3 (Технический отчет). NIST. стр. 56. doi : 10.6028/NIST.SP.800-57pt1r5 .
  18. ^ "Содержимое SHA-1 Windows будет прекращено 3 августа 2020 г.". techcommunity.microsoft.com . Получено 28.02.2024 .
  19. ^ «RSA FAQ по Capstone».
  20. ^ Selvarani, R.; Aswatha, Kumar; TV Suresh, Kumar (2012). Труды Международной конференции по достижениям в области вычислительной техники. Springer Science & Business Media. стр. 551. ISBN 978-81-322-0740-5.
  21. ^ Стандарт безопасного хэширования, Федеральные стандарты обработки информации, публикация FIPS PUB 180 , Национальный институт стандартов и технологий, 11 мая 1993 г.
  22. Крамер, Сэмюэл (11 июля 1994 г.). «Предлагаемая редакция Федерального стандарта обработки информации (FIPS) 180, стандарт безопасного хэширования». Федеральный реестр .
  23. ^ fgrieu. "Где я могу найти описание алгоритма хэширования SHA-0?". Cryptography Stack Exchange .
  24. ^ ab Computer Security Division, Information Technology Laboratory (2017-01-04). "Политика NIST в отношении хэш-функций – хэш-функции". CSRC, NIST . Получено 2023-08-27 .
  25. ^ "Tech Talk: Linus Torvalds on git". YouTube . Получено 13 ноября 2013 г.
  26. ^ Торвальдс, Линус. "Re: Начинаем думать о sha-256?". marc.info . Получено 30 мая 2016 г. .
  27. ^ Уолфилд, Нил Х. (2020). «openpgp: Передать требования безопасности алгоритма хэширования в Policy::signature». gitlab.com/sequoia-pgp .– см. раздел «Предыстория» в предоставленной документации
  28. ^ Сотиров, Александр; Стивенс, Марк; Аппельбаум, Джейкоб; Ленстра, Арьен; Мольнар, Дэвид; Освик, Даг Арне; де Вегер, Бенне (30 декабря 2008 г.). «MD5 сегодня считается вредным: создание мошеннического сертификата CA» . Проверено 29 марта 2009 г.
  29. ^ "Сильные стороны Keccak – Дизайн и безопасность". Семейство функций-губок Keccak . Команда Keccak . Получено 20 сентября 2015 г. В отличие от SHA-1 и SHA-2, Keccak не имеет слабости расширения длины, поэтому ему не нужна вложенная конструкция HMAC. Вместо этого вычисление MAC можно выполнить, просто добавив ключ к сообщению.
  30. ^ "Шнайер о безопасности: криптографическая инженерия". www.schneier.com . Получено 27.08.2023 .
  31. ^ Шабо, Флоран; Жу, Антуан (3 октября 1998 г.). «Дифференциальные столкновения в SHA-0». В Кравчике, Хьюго (ред.). Достижения в криптологии – КРИПТО '98 . Конспекты лекций по информатике. Том. 1462. Спрингер. стр. 56–71. дои : 10.1007/BFb0055720. ISBN 978-3-540-64892-5– через Springer Link.
  32. ^ Бихам, Эли; Чен, Рафи. «Почти столкновения SHA-0» (PDF) .
  33. ^ "Отчет от Crypto 2004". Архивировано из оригинала 21-08-2004 . Получено 23-08-2004 .
  34. ^ Грие, Франсуа (18 августа 2004 г.). "Re: Есть ли какие-нибудь предварительные новости с сеанса крипто-обвала?". Группа новостей : sci.crypt. Событие происходит в 05:06:02 +0200. Usenet:  [email protected].
  35. ^ Эффективные атаки поиска коллизий на SHA-0. Архивировано 10 сентября 2005 г. в Wayback Machine , Университет Шаньдуна.
  36. ^ Мануэль, Стефан; Пейрен, Томас (2008-02-11). Коллизии в SHA-0 за один час (PDF) . Быстрое программное шифрование 2008. Конспект лекций по информатике. Том 5086. С. 16–35. doi : 10.1007/978-3-540-71039-4_2 . ISBN 978-3-540-71038-7.
  37. ^ "Краткие комментарии NIST о недавних криптоаналитических атаках на безопасные функции хеширования и продолжающейся безопасности, обеспечиваемой SHA-1". 23 августа 2017 г. Получено 16.03.2022 .
  38. ^ Раймен, Винсент; Освальд, Элизабет (2005). «Обновление SHA-1». Архив Cryptology ePrint .
  39. ^ Атаки поиска коллизий на SHA1. Архивировано 19 февраля 2005 г. в Wayback Machine , Массачусетский технологический институт.
  40. ^ Лемос, Роберт. «Устранение дыры в безопасности». ZDNet .
  41. ^ Кохран, Мартин (2007). «Заметки о дифференциальном пути Ванга и др. 263 SHA-1». Архив Cryptology ePrint .
  42. ^ Де Канньер, Кристоф; Рехбергер, Кристиан (2006-11-15). "Поиск характеристик SHA-1: общие результаты и приложения". Достижения в криптологии – ASIACRYPT 2006. Конспект лекций по информатике. Том 4284. С. 1–20. doi :10.1007/11935230_1. ISBN 978-3-540-49475-1.
  43. ^ "IAIK Krypto Group — Описание проекта поиска коллизий SHA-1". Архивировано из оригинала 2013-01-15 . Получено 2009-06-30 .
  44. ^ "Коллизии для 72-шагового и 73-шагового SHA-1: Улучшения в методе характеристик" . Получено 24.07.2010 .
  45. ^ "SHA-1 Collision Search Graz". Архивировано из оригинала 2009-02-25 . Получено 2009-06-30 .
  46. ^ "Heise Online - IT-News, Nachrichten und Hintergründe" . Хайз онлайн . 27 августа 2023 г.
  47. ^ "Расписание Crypto 2006 Rump". www.iacr.org .
  48. ^ Мануэль, Стефан. "Классификация и генерация векторов возмущений для атак коллизий против SHA-1" (PDF) . Архив Cryptology ePrint . Получено 2011-05-19 .
  49. ^ Мануэль, Стефан (2011). «Классификация и генерация векторов возмущений для атак коллизий против SHA-1». Designs, Codes and Cryptography . 59 (1–3): 247–263. doi :10.1007/s10623-010-9458-9. S2CID  47179704. наиболее эффективным вектором возмущения является Codeword2, впервые описанный Джутлой и Паттаком.
  50. ^ "Коллизий SHA-1 теперь 2^52" (PDF) .
  51. ^ Макдональд, Кэмерон; Хоукс, Филип; Пиепшик, Йозеф (2009). "Дифференциальный путь для SHA-1 со сложностью O(252)". Архив Cryptology ePrint .(отозван)
  52. ^ «Криптоанализ MD5 и SHA-1» (PDF) .
  53. ^ «Когда мы увидим столкновения для SHA-1? – Шнайер о безопасности». www.schneier.com .
  54. ^ "Архив Google Code – Долгосрочное хранилище для хостинга проектов Google Code". code.google.com .
  55. ^ Leurent, Gaëtan; Peyrin, Thomas (2019). "From Collisions to Chosen-Prefix Collisions Application to Full SHA-1" (PDF) . В Yuval Ishai; Vincent Rijmen (ред.). Advances in Cryptology – EUROCRYPT 2019 (PDF) . 38-я ежегодная международная конференция по теории и применению криптографических методов, Дармштадт, Германия, 19–23 мая 2019 г. Lecture Notes in Computer Science. Vol. 11478. Springer. pp. 527–555. doi :10.1007/978-3-030-17659-4_18. ISBN 978-3-030-17658-7. S2CID  153311244.
  56. ^ "RFC 3174 - Американский алгоритм безопасного хэширования 1 (SHA1) (RFC3174)". www.faqs.org .
  57. ^ Локтюхин, Макс (2010-03-31), "Улучшение производительности алгоритма безопасного хэширования (SHA-1)", Intel Software Knowledge Base , получено 2010-04-02
  58. ^ "Таблица измерений". bench.cr.yp.to .
  59. ^ Тао, Се; Лю, Фаньбао; Фэн, Дэнго (2013). Быстрая коллизионная атака на MD5 (PDF) . Архив Cryptology ePrint (технический отчет). IACR .
  60. ^ Стивенс, Марк ; Бурштейн, Эли ; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. Первое столкновение для полного SHA-1 (PDF) (Технический отчет). Google Research .
    • Марк Стивенс; Эли Бурштейн; Пьер Карпман; Анж Альбертини; Ярик Марков; Алекс Пети Бьянко; Клемент Бейсс (23 февраля 2017 г.). «Анонс первой коллизии SHA1». Блог безопасности Google .
  61. ^ Без усечения полное внутреннее состояние хэш-функции известно, независимо от устойчивости к коллизиям. Если вывод усечен, удаленная часть состояния должна быть найдена, прежде чем хэш-функция может быть возобновлена, что позволяет продолжить атаку.
  62. ^ "Семейство функций губки Кеккака" . Получено 27.01.2016 .
  63. ^ IBM z/Architecture Principles of Operation, номер публикации SA22-7832. См. инструкции KIMD и KLMD в Главе 7.
  64. ^ Стивенс, Марк (2017). «cr-marcstevens/sha1collisiondetection: Библиотека и инструмент командной строки для обнаружения коллизий SHA-1 в файле».
  65. Кинг, Джефф (10 мая 2017 г.). «Git 2.13 был выпущен». Блог GitHub .

Ссылки

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