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

9.3.2 Шифрування, перемішування та обчислення крокової функції

На другому етапі здійснюється шифперетворення блоку , для чого виконується шифрування алгоритмом ГОСТ 28147-89 підблоків на ключах відповідно.

В результаті отримаємо блок , де , .

На третьому етапі виконується процедура перемішування та обчислення проміжного геш-коду .

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

За один такт роботи регістру його стан перетворюється у стан , що у стандарті позначається як . Аналогічно, стан регістру після тактів роботи позначається через .

На кожному такті стан регістру зсувається на комірку вправо, а потім значення функції зворотного зв’язку записується в крайню ліву комірку регістру: .

Таким чином, рекурентний закон має вид , .

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

9.4 Процедура обчислення геш-функції

Початковими даними для обчислення геш-функції є повідомлення , та вектор ініціалізації (стартовий вектор) .

Алгоритм використовує наступні змінні.

частина послідовності , що ще не була задіяна у попередніх ітераціях.

- поточне значення геш-коду.

- поточне значення т. зв. контрольної суми (за операцією ).

- лічильник (у бітах) поточної довжини вже обробленої у попередніх ітераціях частини повідомлення.

Алгоритм складається з трьох етапів.

Основний етап - це етап 3, який використовується у більшості операцій.

На кожній такий ітерації обчислюється проміжний геш-код, для чого обробляються останні 256 бітів послідовності , що розглядається як . Після обробки блок з послідовності забирається.

Етап 2 подібний до етапу 3, але виконується тільки для блоку (довжини ) - залишку послідовності , що залишається після відповідної кількості проходів етапу 3. Якщо потрібно, перед обробкою доповнюється зліва нулями до довжини 256 бітів.

Опис алгоритму.

Етап 1. Присвоєння початкових значень.

; ; ; .

Етап 2. Якщо , перейти на етап 3, інакше, провести заключні обчислення, що приведені нижче.

- переобчислити довжину обробленої послідовності.

- доповнити короткий блок нулями зліва.

- обчислити праві 256 бітів звичайної суми двох великих чисел.

- перше змішування проміжного геш-коду.

- друге змішування проміжного геш-коду.

- останнє змішування проміжного геш-коду.

Кінець алгоритму, результат: .

Етап 3. (). Вибрати крайнє праве підслово довжини 256 бітів з повідомлення та виконати наступну послідовність обчислень.

- змішування проміжного геш-коду з блоком повідомлення.

- обчислити нову довжину обробленої послідовності.

- обчислити праві 256 бітів звичайної суми двох великих чисел (потрібно для етапу 2).

- відкинути праві 256 бітів послідовності та перейти на етап 2.

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