Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Стандарт SHA-1.

Читайте также:
  1. II. Метод стандартного обмена
  2. Американский стандарт шифрования DES
  3. Британский стандарт BS 7799
  4. ВЕТЕРИНАРНО-САНИТАРНАЯ ЭКСПЕРТИЗА С ОСНОВАМИ СТАНДАРТИЗАЦИИ
  5. Выбор уровня нагрузки карты в соответствии со стандартом МГО
  6. Германский стандарт BSI
  7. До розділу V. Міжнародно-правові стандарти місцевого самоврядування

 

SHA-1

В стандарте США на хэш-функцию SHS (Secure Hash Standard) [8], утвержденном в 1995 г., представлена модифицированная версия SHA-1 алгоритма SHA (Secure Hash Algorithm). Этот алгоритм сопостав­ляет сообщению длиной до 264 бит сжатый 160-битный образ, который используется, в частности, для генерации и проверки цифровой подписи в стандарте DSS. Алгоритм SHA-1 основан на тех же принципах, что и семейство алгоритмов MD, и создан по образцу MD4. Основные операции этого ал­горитма — сложение по модулю 232 и по модулю 2, циклический сдвиг.t-битная строка битов исходного сообщения m=m1m2…mt дополняется до длины, кратной 512. В случае, если t³264, используются только младшие 64 бита числа t. Дополнение сообщения выполняется так же, как и для MD-функций, то есть сначала к m присоединяется одна «1», затем необходимое количество нулей и, наконец, 64-битное представление чис­ла t — длины исходного сообщения.

Таким образом, дополненное сообщение состоит из n 512-битных блоков, т.е. имеет вид М = М1М2 … Мn, где каждый блок М, содержит ше­стнадцать 32-битных слов. Стартовый вектор хэширования SHA0 имеет длину 160 бит и представляет собой конкатенацию пяти 32-битных слов sha0||sha1||sha2||sha3||sha4, где

sha0 = 67452301, sha1 = efcdab89, sha2 = 98badcfe, sha3 = 10325476,

sha4 = c3d2e1f0.

В алгоритме SHA-1 используется последовательность функций f0, f1,…,f79, каждая из которых сопоставляет трем 32-битным словам X, Y и Z одно 32-битное слово fj(X, Y, Z), 0 <= j <= 79.

Вычисление хэш-функции h:

Вход: М = М1М2…Мn (n блоков по 512 бит).

Алгоритм: Для всех i = 1,…, n SHAi ß g(SHAi-1, Mi).

Выход: h(M)=SHAn.

Стандарт SHS предусматривает два альтернативных способа вы­числения шаговой функции хеширования g, дающих в результате один и тот же сжатый образ сообщения.

При вычислении используется последовательность 32-битных слов {Wi}, 0 £ i £ 79, и два накопителя F и Н, содержащие по пять 32-битных слов. Слова в первом накопителе обозначены как А, В, С, D, Е, во втором – H0,…, H4. Исходным заполнением накопителя Н являются слова стартового вектора хэширования SHA0.

Обработка каждого из 512-битных блоков М1, М2, …, Мn осуще­ствляется по следующему алгоритму:

1. Блок Mi разбивается на 16 слов W0, W1,…, W15, no 32 бита.

2. Для j = 16, …. 79 Wj ß S1(Wj-3 +2 Wj-8 +2 Wj-14 +2 Wj-16), где операция циклического сдвига Sn(Х), 0 <= n <= 32, определяется как Sn(X) = (X <<<n) Ú (Х >>> 32 — n).

3. Содержимое второго накопителя H переписывается в первый F.

4.Для j= 0,.., 79

{TEMP ß S5(A) +fj(B, С, D) + Е + Wj + Kj;

E ß D; D ß C; C ßS30(B); B ß A; A ßTEMP

}

где Kj, 0 £ j £ 79 — фиксированные константы, значения кото­рых определяются параметром j, TEMP - временная переменная, «+» — сложение по модулю 232.

5. Содержимое первого накопителя F суммируется по модулю 232 с содержимым второго накопителя Н и записывается в H.

Для каждой итерации SHAi представляет собой конкатенацию те­кущих значений пяти слов накопителя H. После обработки блока Мn ито­говым сжатым образом сообщения будет 160-битная строка из пяти слов SHAn=H0||H1||H2||H3||H4.


Дата добавления: 2015-12-01; просмотров: 31 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.007 сек.)