![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
|
• Для входного сообщения произвольной длины (максимум
бит) алгоритм генерирует 160-битное хеш-значение.
• SHA-1 реализует хеш-функцию, построенную на идее функции сжатия. Входами функции сжатия являются блок сообщения длиной 512 бит и выход предыдущего блока сообщения. Выход представляет собой значение всех хеш-блоков до этого момента. Иными словами хеш-блока
равен
. Хеш-значением всего сообщения является выход последнего блока.
• Инициализация. Исходное сообщение разбивается на блоки по 512 бит в каждом. Последний блок дополняется до длины, кратной 512 бит. Сначала добавляется 1, а потом нули, чтобы длина блока стала равной (512 - 64 = 448) бит. В оставшиеся 64 бита записывается длина исходного сообщения в битах. Если последний блок имеет длину более 448, но менее 512 бит, то дополнение выполняется следующим образом: сначала добавляется 1, затем нули вплоть до конца 512-битного блока; после этого создается ещё один 512-битный блок, который заполняется вплоть до 448 бит нулями, после чего в оставшиеся 64 бита записывается длина исходного сообщения в битах. Дополнение последнего блока осуществляется всегда, даже если сообщение уже имеет нужную длину. Инициализируются пять 32-битовых переменных.
• Определяются четыре нелинейные операции и четыре константы.
•
| • = 0x5A827999
| • 0≤t≤19 |
•
| • = 0x6ED9EBA1
| • 20≤t≤39 |
•
| • = 0x8F1BBCDC
| • 40≤t≤59 |
•
| • = 0xCA62C1D6
| • 60≤t≤79 |
• Главный цикл. Главный цикл итеративно обрабатывает каждый 512-битный блок. Итерация состоит из четырех этапов по двадцать операций в каждом. Блок сообщения преобразуется из 16 32-битовых слов
в 80 32-битовых слов
по следующему правилу:
при 0≤t≤15
= (
-3
-8
-14
-16) << 1 при 16≤t≤79
• здесь << — это циклический сдвиг влево
• для
от 0 до 79
(b,c,d) + e +
• После этого a, b, c, d, e прибавляются к A, B, C, D, E соответственно. Начинается следующая итерация.
• Итоговым значением будет объединение пяти 32-битовых слов в одно 160-битное хеш-значение.
Дата публикования: 2014-11-18; Прочитано: 1053 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!
