Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Описание SHA



Во первых, сообщение дополняется, чтобы его длина была кратной 512 битам. Используется то же дополне­ние, что и в MD5: сначала добавляется 1, а затем нули так, чтобы длина полученного сообщения была на 64 бита меньше числа, кратного 512, а затем добавляется 64-битовое представление длины оригинального сообщ е-ния.

Инициализируются пять 32-битовых переменных (в MD5 используется четыре переменных, но рассматри­ваемый алгоритм должен выдавать 160-битовое хэш-значение):

А = 0x67452301

В = 0xefcdab89

С = 0x98badcfe

D = 0x10325476

£ = 0xc3d2elfO

Затем начинается главный цикл алгоритма. Он обрабатывает сообщение 512-битовыми блоками и продол­жается, пока не исчерпаются все блоки сообщения.

Сначала пять переменных копируются в другие переменные: Ав а,В в Ь, Св c, Db duE в е.

Главный цикл состоит из четырех этапов по 20 операций в каждом (в MD5 четыре этапа по 16 операций в каждом). Каждая операция представляет собой нелинейную функцию над тремя из а, Ъ, с, d и е, а затем выпол­няет сдвиг и сложение аналогично MD5. В SHA используется следующий набор нелинейных функций:

f,(X,Y,Z) = (1л Y) v ((­Х) л Z), для t=0 до 19

f,(X,Y,Z) = X®Y®Z, для t=20 до 39

ft(X,Y,Z) = (1л Y) v(Xa Z)v(YaZ), для г=40 до 59

f,(X,Y,Z) = Х® Y® Z, для t=60 до 79

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

К, = 0х5а827999, для г=0 до 19

К, = 0x6ed9ebal, для t=20 до 39

К, = 0x8flbbcdc, для t=40 до 59

К, = 0xca62cld6, для t=60 до 79

(Если интересно, как получены эти числа, то:0х5а827999 = 21/2/4, 0x6ed9ebal = 31/2/4, OxSflbbcdc = 51/2/4, 0xca62cld6 = 101/2/4.)

Блок сообщения превращается из 16 32-битовых слов (М0 по М15) в 80 32-битовых слов (W0 no W19) с помо­щью следующего алгоритма:

^ = М(,дляг = 0по 15

Wt = W_3 © W,* ® Wt.u ® WtA6) <« 1, для t = 16 по 79

качестве интересного замечания, в первоначальной спецификации SHA не было циклического сдвига вле-


во. Изменение "исправляет технический изъян, который делал стандарт менее безопасным, чем предполагалось " 1543]. NSA отказалось уточнить истинную причину изъяна.)

Если t - это номер операции (от 1 до 80), W, представляет собой г-ый подблок расширенного сообщения, а <«s - это циклический сдвиг влево на s битов, то главный цикл выглядит следующим образом:

FOR t = 0 to 79

TEMP = <<< 5) + f,(b,c,d) + e + Wt + Kt

e = d

d = c

c = b <« 30

b = a

a = TEMP

Ha 11-й показана одна операция. Сдвиг переменных выполняет ту же функцию, которую в MD5 выполняет использование в различных местах различных переменных.

W-, Kt

Рис. 18-7. Одна операция SHA.

После всего этого а, Ь, с, d и е добавляются к А, В, С D и Е, соответственно, и алгоритм продолжается для следующего блока данных. Окончательным результатом служит объединение A, B, C DhE.





Дата публикования: 2014-11-03; Прочитано: 743 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...