17:21
SHA-1
В криптографии , SHA-1 ( Secure Hash Algorithm 1 ) является криптографической хэш - функция , которая принимает входной сигнал и производит 160- бит (20- байт ) хэш - значение , известное как Message Digest - как правило , вынесенное в шестнадцатеричном числа, длиной 40 цифр , Он был разработан Агентством национальной безопасности США и является федеральным стандартом обработки информации США
SHA-1 создает дайджест сообщения на основе принципов, аналогичных тем, которые использовал Рональд Л. Ривест из MIT при разработке алгоритмов дайджеста сообщений MD2 , MD4 и MD5 , но генерирует большее значение хеш-функции (160 бит против 128 бит).
SHA-1 был разработан в рамках проекта Capstone правительства США .  Оригинальная спецификация алгоритма была опубликована в 1993 году под названием Secure Hash Standard , FIPS PUB 180, государственным агентством США по стандартизации NIST (Национальный институт стандартов и технологий). Эта версия теперь часто называется SHA-0 . Он был отозван АНБ вскоре после публикации и заменен пересмотренной версией, опубликованной в 1995 году в FIPS PUB 180-1 и обычно обозначаемой как SHA-1 . SHA-1 отличается от SHA-0 только одним побитовым поворотом в расписании сообщений егофункция сжатия . Согласно АНБ, это было сделано для исправления недостатка в оригинальном алгоритме, который снизил его криптографическую безопасность, но они не дали никакого дополнительного объяснения.  Общедоступные методы действительно продемонстрировали компромисс с 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 года». (выделение в оригинале), хотя позже это было смягчено, чтобы позволить SHA-1 использоваться для проверки старых цифровых подписей и отметок времени. 
Основной мотивацией для публикации алгоритма безопасного хеширования был стандарт цифровой подписи , в который он включен.
Хэш-функции SHA были использованы для основы блочных шифров SHACAL .

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

Даже небольшое изменение в сообщении с огромной вероятностью приведет к изменению многих битов из-за лавинного эффекта . Например, при переходе dogк cogхешу с различными значениями для 81 из 160 битов:
SHA1 ( «быстрая коричневая лиса прыгает через ленивую гр ог») дает шестнадцатеричное значение: de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3 дает двоичный код Base64 для кодировки текста ASCII : 3p8sf9JeGzr60 + haC9F9mxANtLM =

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

SHA1 ( "")
дает шестнадцатеричное значение: da39a3ee5e6b4b0d3255bfef95601890afd80709
передает двоичный код Base64 в текстовую кодировку ASCII : 2jmj7l5rSw0yVb / vlWAYkK / YBwk =

Псевдокод для алгоритма SHA-1 выглядит следующим образом:
Примечание 1: Все переменные являются 32-разрядными величинами без знака и переносятся по модулю 2 32 при вычислении, за исключением мл, длины сообщения, которая представляет собой 64-разрядную величину, и чч, дайджеста сообщения, которая представляет собой 160-разрядную величину. Примечание 2: Все константы в этом псевдокоде находятся в порядке с прямым порядком байтов . Внутри каждого слова самый старший байт хранится в самой левой позиции байта Инициализируйте переменные: h0 = 0x67452301 h1 = 0xEFCDAB89 h2 = 0x98BADCFE h3 = 0x10325476 h4 = 0xC3D2E1F0 ml = длина сообщения в битах (всегда кратно числу битов в символе). Предварительная обработка: добавьте бит «1» к сообщению, например, добавив 0x80, если длина сообщения кратна 8 битам. 0 ≤ Append к <512 бит «0», так что полученная длина сообщения в битах является конгруэнтно с -64 ≡ 448 ( по модулю 512) append 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]) leftrotate 1 Инициализируйте значение хеша для этого чанка: a = h0 b = h1 с = h2 d = h3 е = h4 Основной цикл: [3] [55] для i от 0 до 79, если 0 ≤ i ≤ 19, то f = (b и c) xor (( не b) и d) k = 0x5A827999 иначе, если 20 ≤ i ≤ 39 f = b xor c xor d k = 0x6ED9EBA1 иначе, если 40 ≤ i ≤ 59 f = (b и c) xor (b и d) xor (c и d) k = 0x8F1BBCDC иначе, если 60 ≤ i ≤ 79 f = b xor c xor d k = 0xCA62C1D6 temp = ( левый поворот 5) + f + e + k + w [i] е = д д = с c = b влево 30 б = а а = темп Добавьте хеш этого куска, чтобы получить результат: h0 = h0 + a h1 = h1 + b h2 = h2 + c h3 = h3 + d h4 = h4 + e Создайте окончательное значение хеша (с прямым порядком байтов) как 160-битное число: hh = (h0 leftshift 128) или (h1 leftshift 96) или (h2 leftshift 64) или (h3 leftshift 32) или h4
Число hh- это дайджест сообщения, который может быть записан в шестнадцатеричном формате (основание 16), но часто записывается с использованием двоичного кода Base64 в кодировку текста ASCII.
Категорія: Технологии Кибербезопасности | Переглядів: 220 | Додав: Kontent_MENEGER | Теги: sha-1 | Рейтинг: 0.0/0
Всього коментарів: 0
avatar