Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
• Для входного сообщения произвольной длины (максимум бит) алгоритм генерирует 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• здесь << — это циклический сдвиг влево
• для от 0 до 79• После этого a, b, c, d, e прибавляются к A, B, C, D, E соответственно. Начинается следующая итерация.
• Итоговым значением будет объединение пяти 32-битовых слов в одно 160-битное хеш-значение.
Дата публикования: 2014-11-18; Прочитано: 1005 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!