Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
19.02.2016
Размер:
132.61 Кб
Скачать

Алгоритм SHA (Secure Hash Algorithm) є частиною стандарту SHS, що прийнятий АНБ і Національним інститутом стандартів і технологій США (NIST) в 1993г. Для версії SHA-1 довжина геш-коду становить 160 бітів.

У кінець повідомлення , яке розглядається як рядок бітів, приписується біт, рівний 1. Після цього у кінець повідомлення, за необхідності дописуються нулі, у такий спосіб, щоб довжина отриманного повідомлення, якщо її збільшити на 64, була кратною 512. Далі формується повідомлення, що складається з блоків довжиною 512 битов, в останньому блоці якого зарезерврвано поле довжиною у 64 біта. У цьому полі розміщуєтьсч число, що дорівнює початковій довжині повідомлення (без дописувань).

Розширене повідомлення обробляється блоками по 512 бітів. При цьому, окремий блок розглядається як масив, що складається з 16 слів, кожне довжиною у 32 біти.

Кожний блок обробляється за одну ітерацію (цикл) Обчислення геш-коду здійснюється як послідовність ітерацій з однокроковою функцією стиску , , .

Блок є конкатенацією п’яти початкових зарезервованих значень змінних , довжиною у 32 біти, які в системі за основою 16 -мають наступний запис:

,, ,,.

Після обробки чергового блоку повідомлення значення змінних , модифікуються. Результатом роботи кожного циклу є конкатинація модифікованих значень змінних . Результат роботи останнього циклу дає значення геш-коду .

Кожний цикл складається з 80 кроків. На кожному кроці цикла з номером обробляється слово , довжиною у 32 біти.

На початку кожного циклу створюються копії змінних : .

Слова, що обробляються на циклі утворюються з блока наступним чином.

1. Блок розглядається як послідовність 16 слів , , виходячи з яких, за рекурентним законом формуються інші 64 слова. Рекурентне співвідношення має вид:

, .

Тут функція означає циклічний зсув слова на розрядів вліво, а операція  - поразрядную сумму слів за модулем два.

2. Обробка вісьмидесяти слів виконується послідовно, групами по 20 слів в групі. Кожній з чотирьох груп відповідають 20 кроків циклу (один раунд):;;;.

Крім того, з кожним раундом , пов’язана своя константа довжиною у 32 біти та функція від трьох змінних, кожна з яких є словом тієї ж довжини. При обробці слова використовуються константа і функція, що пов’язані з відповідним раундом .

3. Обробка чергового слова призводить до зміни вмісту слів , що виглядає наступним чином:

, , , , .

Тут - Допоміжна змінна, а додавання виконується за модулем.

4. Після 80 кроків обробки блоку повідомлення цикл завершується модифікацією змінних : , , , , (додавання за ).

Кінець циклу.

Для повноти, приведемо та , що застосовуються в раундах , .

, ;

, ;

, ;

, .

Соседние файлы в папке Материалы что дал Мухачев-1