stringtranslate.com

ША-1

В криптографии SHA-1 ( алгоритм безопасного хеширования 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 7 августа 2020 г.

Разработка

Одна итерация функции сжатия 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 . [18] Исходная спецификация алгоритма была опубликована в 1993 году под названием Secure Hash Standard , FIPS PUB 180, агентством по стандартизации правительства США NIST (Национальный институт стандартов и технологий). [19] [20] Эту версию теперь часто называют SHA-0 . Он был отозван АНБ вскоре после публикации и заменен пересмотренной версией, опубликованной в 1995 году в FIPS PUB 180-1 и обычно обозначаемой SHA-1 . SHA-1 отличается от SHA-0 лишь одним побитовым вращением в расписании сообщений своей функции сжатия . По данным АНБ, это было сделано для исправления ошибки в исходном алгоритме, которая снижала его криптографическую безопасность, но никаких дополнительных объяснений они не предоставили. [21] [22] Общедоступные методы действительно продемонстрировали компрометацию 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 года». , [23] , хотя позже это правило было смягчено, чтобы позволить использовать SHA-1 для проверки старых цифровых подписей и отметок времени. [24]

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

Хэш-функции SHA были использованы в качестве основы блочных шифров SHACAL .

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

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

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

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

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

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

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

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

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

ША-0

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

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

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

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

В феврале 2005 года было объявлено об атаке Xiaoyun Wang , Yiqun Lisa Yin и Hongbo Yu, которая смогла обнаружить коллизии в SHA-0 за 2 39 операций. [5] [34]

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

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

Атаки

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

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

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

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

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

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

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

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

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

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

ШАПЕНИНГ

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

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

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

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

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

Атака Birthday-Near-Collision - первая практическая атака с выбранным префиксом.

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

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

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

Реализация всех функций безопасности, одобренных FIPS, может быть официально проверена с помощью программы CMVP , совместно управляемой Национальным институтом стандартов и технологий (NIST) и Управлением безопасности коммуникаций (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. Все константы в этом псевдокоде имеют обратный порядок байтов .  В каждом слове самый старший байт хранится в крайнем левом положении.Инициализируйте переменные:ч0 = 0x67452301h1 = 0xEFCDAB89h2 = 0x98BADCFEh3 = 0x10325476h4 = 0xC3D2E1F0ml = длина сообщения в битах (всегда кратна количеству бит в символе).Предварительная обработка:добавьте к сообщению бит «1», например, добавив 0x80, если длина сообщения кратна 8 битам.добавить 0 ≤ k < 512 бит «0», так чтобы результирующая длина сообщения в битах была равна -64 ≡ 448 (по модулю 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 б = h1 с = h2 d = h3 е = h4 Основной цикл: [3] [55]  для i от 0 до 79  , если 0 ≤ i ≤ 19 , то f = (b и c) или (( не b) и d) к = 0x5A827999 иначе, если 20 ≤ я ≤ 39 f = b xor c xor d к = 0x6ED9EBA1 иначе, если 40 ≤ я ≤ 59 f = (b и c) или (b и d) или (c и d) к = 0x8F1BBCDC иначе, если 60 ≤ i ≤ 79 f = b xor c xor d к = 0xCA62C1D6 temp = (a leftrotate 5) + f + e + k + w[i] е = d д = с c = b повернуть влево 30 б = а а = температура Добавьте хеш этого фрагмента к результату: h0 = h0 + а h1 = h1 + б h2 = h2 + с h3 = h3 + d h4 = h4 + еСоздайте окончательное значение хеш-функции (с обратным порядком байтов) в виде 160-битного числа:
hh = (h0 сдвиг влево 128) или (h1 сдвиг влево 96) или (h2 сдвиг влево 64) или (h3 сдвиг влево 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 и в) xor (b и d) xor (c и d)  (вариант 4)
(40 ≤ i ≤ 59): f = vec_sel(c, b, c xor d)  (вариант 5)

Также было показано [56] , что для раундов 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]) leftrotate 2

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

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

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

Реализации

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

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

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

Примечания

  1. ^ Аб Стивенс, Марк (19 июня 2012 г.). Атаки на хэш-функции и приложения (PDF) (кандидатская диссертация). Лейденский университет . HDL : 1887/19093. ISBN 9789461913173. ОСЛК  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 «Стандарт безопасного хеширования (SHS)» (PDF) . Национальный институт стандартов и технологий. 2015. doi :10.6028/NIST.FIPS.180-4. Публикация федеральных стандартов обработки информации 180-4. Архивировано из оригинала (PDF) 7 января 2020 г. Проверено 23 сентября 2019 г.
  4. ^ ab «Конец SHA-1 в общедоступной сети». Блог о безопасности Mozilla . 23 февраля 2017 года . Проверено 29 мая 2019 г.
  5. ^ abc «SHA-1 сломан - Шнайер о безопасности» . www.schneier.com .
  6. ^ ab «Критический недостаток, обнаруженный в общем алгоритме цифровой безопасности». Наньянский технологический университет, Сингапур . 24 января 2020 г.
  7. ^ ab «Новые результаты криптоанализа против SHA-1 - Шнайер о безопасности». www.schneier.com .
  8. ^ abc Leurent, Гаэтан; Пейрин, Томас (05 января 2020 г.). «SHA-1 — это конфликт первого выбранного префикса Shambles в SHA-1 и приложении к сети доверия PGP» (PDF) . Архив криптологии ePrint, отчет 2020/014 .
  9. ^ ab «Google откажется от шифрования SHA-1 в Chrome к 1 января 2017 г.» . ВенчурБит . 18 декабря 2015 г. Проверено 29 мая 2019 г.
  10. ^ abcde Stevens1, Марк; Карпман, Пьер; Пейрин, Томас. «SHAppening: коллизии при свободном запуске для SHA-1» . Проверено 9 октября 2015 г.{{cite web}}: CS1 maint: числовые имена: список авторов ( ссылка )
  11. Шнайер, Брюс (18 февраля 2005 г.). «Шнайер о безопасности: криптоанализ SHA-1».
  12. ^ "NIST.gov - Отдел компьютерной безопасности - Ресурсный центр компьютерной безопасности" . Архивировано из оригинала 25 июня 2011 г. Проверено 5 января 2019 г.
  13. Шнайер, Брюс (8 октября 2015 г.). «Столкновение при свободном старте SHA-1». Шнайер по безопасности .
  14. ^ «NIST отказывается от криптографического алгоритма SHA-1» (пресс-релиз). НИСТ. 2022-12-15.
  15. ^ Гудин, Дэн (4 мая 2016 г.). «Microsoft прекратит поддержку сертификатов SHA1 в ближайшие 4 месяца». Арс Техника . Проверено 29 мая 2019 г.
  16. ^ «CWI и Google объявляют о первом столкновении стандарта промышленной безопасности SHA-1» . Проверено 23 февраля 2017 г.
  17. ^ Баркер, Элейн (май 2020 г.). Рекомендации для руководства ключами: Часть 1 – Общие сведения, Таблица 3 (Технический отчет). НИСТ. п. 56. дои : 10.6028/NIST.SP.800-57pt1r5 .
  18. ^ «Часто задаваемые вопросы RSA по Capstone» .
  19. ^ Сельварани, Р.; Асватха, Кумар; ТВ Суреш, Кумар (2012). Материалы международной конференции по достижениям в области вычислительной техники. Springer Science & Business Media. п. 551. ИСБН 978-81-322-0740-5.
  20. ^ Стандарт Secure Hash, Публикация федеральных стандартов обработки информации FIPS PUB 180 , Национальный институт стандартов и технологий, 11 мая 1993 г.
  21. Крамер, Сэмюэл (11 июля 1994 г.). «Предлагаемая редакция Федерального стандарта обработки информации (FIPS) 180, Стандарт безопасного хеширования». Федеральный реестр .
  22. ^ гриеу. «Где я могу найти описание алгоритма хеширования SHA-0?». Обмен стеками криптографии .
  23. ^ Отдел компьютерной безопасности, Лаборатория информационных технологий (04 января 2017 г.). «Политика NIST в отношении хэш-функций - хеш-функции | CSRC | CSRC». ЦКРС | НИСТ . Проверено 27 августа 2023 г.
  24. ^ Отдел компьютерной безопасности, Лаборатория информационных технологий (04 января 2017 г.). «Политика NIST в отношении хэш-функций - хеш-функции | CSRC | CSRC». ЦКРС | НИСТ . Проверено 27 августа 2023 г.
  25. ^ "Tech Talk: Линус Торвальдс о git" . YouTube . Проверено 13 ноября 2013 г.
  26. ^ Торвальдс, Линус. «Re: Начинаешь думать о Ша-256?». marc.info . Проверено 30 мая 2016 г. .
  27. ^ Сотиров, Александр; Стивенс, Марк; Аппельбаум, Джейкоб; Ленстра, Арьен; Мольнар, Дэвид; Освик, Даг Арне; де Вегер, Бенне (30 декабря 2008 г.). «MD5 сегодня считается вредным: создание мошеннического сертификата CA» . Проверено 29 марта 2009 г.
  28. ^ «Сильные стороны Keccak - дизайн и безопасность». Семейство губчатых функций Кечака . Команда Кечак . Проверено 20 сентября 2015 г. В отличие от SHA-1 и SHA-2, Keccak не имеет недостатка расширения длины, поэтому не нуждается во вложенной конструкции HMAC. Вместо этого вычисление MAC можно выполнить, просто добавив к сообщению ключ.
  29. ^ «Шнайер о безопасности: криптографическая инженерия». www.schneier.com . Проверено 27 августа 2023 г.
  30. ^ Шабо, Флоран; Жу, Антуан (3 октября 1998 г.). «Дифференциальные столкновения в SHA-0». В Кравчике, Хьюго (ред.). Достижения в криптологии – КРИПТО '98 . Конспекты лекций по информатике. Том. 1462. Спрингер. стр. 56–71. дои : 10.1007/BFb0055720. ISBN 978-3-540-64892-5– через Springer Link.
  31. ^ Бихам, Эли; Чен, Рафи. «Почти столкновение SHA-0» (PDF) .
  32. ^ «Отчет Crypto 2004». Архивировано из оригинала 21 августа 2004 г. Проверено 23 августа 2004 г.
  33. Грие, Франсуа (18 августа 2004 г.). «Re: Есть какие-нибудь предварительные новости о крипто-сессии?». Группа новостей : sci.crypt. Событие происходит в 05:06:02 +0200. Usenet:  [email protected].
  34. ^ Эффективные атаки поиска столкновений на SHA-0. Архивировано 10 сентября 2005 г. в Wayback Machine , Шаньдунский университет.
  35. ^ Мануэль, Стефан; Пейрин, Томас (11 февраля 2008 г.). Коллизии на SHA-0 за один час (PDF) . Быстрое программное шифрование 2008. Конспекты лекций по информатике. Том. 5086. стр. 16–35. дои : 10.1007/978-3-540-71039-4_2 . ISBN 978-3-540-71038-7.
  36. ^ «Краткие комментарии NIST о недавних криптоаналитических атаках на функции безопасного хеширования и постоянную безопасность, обеспечиваемую SHA-1» . 23 августа 2017 года . Проверено 16 марта 2022 г.
  37. ^ Реймен, Винсент; Освальд, Элизабет (2005). «Обновление SHA-1». Архив электронной печати по криптологии .
  38. ^ Атаки поиска столкновений на SHA1. Архивировано 19 февраля 2005 г. в Wayback Machine , Массачусетский технологический институт.
  39. ^ Лемос, Роберт. «Устранение дыры в безопасности». ЗДНет .
  40. ^ Кокран, Мартин (2007). «Заметки о дифференциальном пути Ванга и др. 263 SHA-1». Архив электронной печати по криптологии .
  41. ^ Де Каньер, Кристоф; Рехбергер, Кристиан (15 ноября 2006 г.). «Определение характеристик SHA-1: общие результаты и приложения». Достижения в криптологии – ASIACRYPT 2006 . Конспекты лекций по информатике. Том. 4284. стр. 1–20. дои : 10.1007/11935230_1. ISBN 978-3-540-49475-1.
  42. ^ «IAIK Krypto Group — Описание проекта поиска коллизий SHA-1» . Архивировано из оригинала 15 января 2013 г. Проверено 30 июня 2009 г.
  43. ^ «Коллизии для 72-шагового и 73-шагового SHA-1: улучшения метода характеристик» . Проверено 24 июля 2010 г.
  44. ^ "Поиск столкновений SHA-1 в Граце" . Архивировано из оригинала 25 февраля 2009 г. Проверено 30 июня 2009 г.
  45. ^ "Heise Online - IT-News, Nachrichten und Hintergründe" . Хайз онлайн . 27 августа 2023 г.
  46. ^ "Расписание выставки Crypto 2006" . www.iacr.org .
  47. ^ Мануэль, Стефан. «Классификация и генерация векторов помех для столкновений с SHA-1» (PDF) . Архив электронной печати по криптологии . Проверено 19 мая 2011 г.
  48. ^ Мануэль, Стефан (2011). «Классификация и генерация векторов возмущений для столкновений с SHA-1». Проекты, коды и криптография . 59 (1–3): 247–263. дои : 10.1007/s10623-010-9458-9. S2CID  47179704. наиболее эффективным вектором помех является Codeword2, о котором впервые сообщили Ютла и Паттхак.
  49. ^ «Коллизии SHA-1 теперь 2^52» (PDF) .
  50. ^ Макдональд, Кэмерон; Хоукс, Филип; Пепшик, Йозеф (2009). «Дифференциальный путь для SHA-1 со сложностью O (252)». Архив электронной печати по криптологии .(снято)
  51. ^ «Криптоанализ MD5 и SHA-1» (PDF) .
  52. ^ «Когда мы увидим коллизии для SHA-1? - Шнайер о безопасности» . www.schneier.com .
  53. ^ «Архив кода Google - долгосрочное хранилище для хостинга проектов Google Code» . code.google.com .
  54. ^ Леран, Гаэтан; Пейрин, Томас (2019). «От коллизий к приложениям коллизий выбранного префикса к полному SHA-1» (PDF) . В Ювале Ишае; Винсент Реймен (ред.). Достижения в криптологии – EUROCRYPT 2019 (PDF) . 38-я ежегодная международная конференция по теории и приложениям криптографических методов, Дармштадт, Германия, 19–23 мая 2019 г. Конспекты лекций по информатике. Том. 11478. Спрингер. стр. 527–555. дои : 10.1007/978-3-030-17659-4_18. ISBN 978-3-030-17658-7. S2CID  153311244.
  55. ^ «RFC 3174 - Алгоритм безопасного хеширования США 1 (SHA1) (RFC3174)» . www.faqs.org .
  56. ^ Локтюхин, Макс (31 марта 2010 г.), «Улучшение производительности алгоритма безопасного хэширования (SHA-1)», База знаний программного обеспечения Intel , получено 2 апреля 2010 г.
  57. ^ «Таблица измерений». скамейка.cr.yp.to .
  58. ^ Тао, Се; Лю, Фаньбао; Фэн, Дэнго (2013). Быстрая атака столкновений на MD5 (PDF) . Архив криптологии ePrint (Технический отчет). МАКР .
  59. ^ Стивенс, Марк ; Бурштейн, Эли ; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. Первое столкновение для полного SHA-1 (PDF) (Технический отчет). Google Исследования .
    • Марк Стивенс; Эли Бурштейн; Пьер Карпман; Анж Альбертини; Ярик Марков; Алекс Пети Бьянко; Клеман Байс (23 февраля 2017 г.). «Анонсируем первое столкновение SHA1». Блог Google по безопасности .
  60. ^ Без усечения известно полное внутреннее состояние хеш-функции, независимо от устойчивости к коллизиям. Если выходные данные усекаются, удаленную часть состояния необходимо найти и найти, прежде чем можно будет возобновить хеш-функцию, что позволит продолжить атаку.
  61. ^ "Семейство функций губки Кеккак" . Проверено 27 января 2016 г.
  62. ^ Принципы работы IBM z/Architecture, номер публикации SA22-7832. См. инструкции KIMD и KLMD в главе 7.

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

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