Лекція 9 міждержавний стандарт гост 34.311-95
9.1 Призначення та загальні відомості
В галузі КЗІ в Україні діють чотири стандарти: ГОСТ 28147-89, ГОСТ 34.310-95, ГОСТ 34.311-95, ДСТУ 4145-2002, з яких останні три пов’язані з технологіями цифрового підпису, а перший є стандартом шифрування.
Особливістю останніх трьох останніх стандартів є те, що для їх реалізації необхідно застосовувати алгоритм ГОСТ 28147-89.
Стійкість стандартизованих криптоалгоритмів залежить від якості їхніх параметрів, у тому числі, ключів, однак, не всі стандарти надають рекомендації з методики вибору безпечних параметрів. Наприклад, стандарт ГОСТ 28147-89, не містить рекомендацій щодо побудови довгострокового ключа. З іншого боку, стандартизована геш-функція ГОСТ 34.311-95 при перетвореннях використовує ГОСТ 28147-89.
При використанні симетричних криптосистем, розповсюдження ключів можна покласти на асиметричну криптосистему. Таким чином, необхідно лише реалізувати генерацію ключів. Стандарти, щодо асиметричних криптосистем в Україні на даний час відсутні, тобто, побудову асиметричних криптосистем треба здійснювати самостійно.
ГОСТ 34.311-95 визначає геш-функцію для стандарту ГОСТ 34.310-95. Він має велике значення як діючий стандарт, що встановлює процедури побудови стійких параметрів для рандомізованих цифрових підписів типу Ель Гамаля (таким чином, і для відповідних асиметричних криптосистем і криптопро-токолів).
Зауважимо, що, разом з тим, методика генерації рандомізаторів для ЦП у цих стандартах не надається. Для генерації рандомізаторів, а також симетричних ключів, можна використати рекомендації додатку А до ДСТУ 4145-2002.
Опис стандарту ГОСТ 34.311-95 не можна визнати вдалим ні за системою позначень, ні за прозорістю викладення матеріалу. Тому, крім позначень стандарту, ми будемо користуватися також іншими поширеними позначеннями, а також, з метою полегшення розуміння, додамо коментарі та дещо змінимо порядок викладення змісту.
За встановленими правилами, застосування довільного стандарту має бути здійснено, виходячи з тексту оригіналу. Викладення змісту стандарту в інших джерелах розглядається лише як пояснення до основного тексту.
9.2 Основні позначення
- множина всіх слів скінченної довжини в алфавіті .
- довжина слова (рядка) в бітах.
- множина двійкових слів довжини .
, або - конкатенація (послідовний запис) слів.
- конкатенація екземплярів слова . За стандартом, нумерація слів у конкатенації, а також нумерація бітів у слові проводиться зправа наліво і починається з одиниці.
- слово довжини , що містить молодші (праві) розрядів двійкового запису числа . Іншими словами, - це значення , , у двійковій системі счислення, яке, можливо, буде доповнено зліва нулями до розрядів.
- невід’ємне число, двійковий запис якого представляє слово (перехід до числа дозволяє комп’ютеру виконувати арифметичні операції над словом ).
- у стандарті - порозрядна сума за модулем два двох слів рівної довжини (ми будемо позначати цю операцію через ).
- у стандарті - додавання двох слів однакової довжини за правилом . Іншими словами, результатом цієї операції є молодші розрядів суми (ми будемо позначати цю операцію через ).
повідомлення, що підлягає гешуванню ( у стандарті - , але це викликає деяку плутанину в описі процедур геш-функції).
- ітеративна геш-функція, що визначається цим стандартом і відображає повідомлення у двійковий блок (геш-код) довжини 256 бітів .
- результат шифрперетворення слова на несекретному сеансовому ключі . (Довгостроковий ключ вважається узгодженим між користувачами, тобто також не є секретним).
- стартовий вектор гешування (вектор ініціалізації). Це довільний, несекретний вектор, спільний для групи користувачів.
- присвоєння параметру значення .