Технології захисту інформації - копия
.pdfПовідомлення m |
|
|
|
|
Цифровий підпис |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Доповнення |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Відкриття підпису |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Розширення |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Так |
Ні |
||||||
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Введення |
|
|
|
|
Відновлення |
|
|
|
|
|
|
||
|
|
|
|
повідомлення |
|
|
|
|
|
|
|||
надмірності |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Так |
Ні |
||||||
Усічення і |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
посилення |
|
|
|
|
Контроль |
|
|
|
|
|
|
||
|
|
|
|
|
|
надмірності |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Виробіток |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Так |
Ні |
||||||||
підпису |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Підпис |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
дійсний |
|
|
|
|
|
|
||||
Процедура накладення підпису |
|
|
Процедура верифікації підпису |
Рис. 7.3. Процедури накладання і верифікації підпису
за ISO/IES 9796-1
Уведення надмірності. Надмірність вводиться в ME з метою одержання надлишкового повідомлення MR (message redundancy) вигляду ME ME2t || ME2t 1 || ... || ME2 || ME1, Уведення надмірності здійснюється в такий спосіб. Надлишкове повідомлення формується шляхом перемноження t байтів розширеного повідомлення з t надлишковими байтами, з наступним узгодженням M2z-го байта отриманого рядка. Усі байти надлишкового повідомлення формуються згідно з такими виразами:
MR2i 1 MEi,MR2i F(Mi ) i 1,t,
де F(u) – функція перетворення байта u.
Функція F(u) визначена в такий спосіб. Якщо байт u u1 || u2 , де u1 і u2 – напівбайти, то:
F(u) (u2 ) || (u1 ),
де – перестановка вигляду: |
|
|
|
|
|
|
|
0 12 |
34 |
56 |
78 |
9A |
BC |
DE |
F |
|
|
|
|
|
|
|
|
|
89 |
42 |
F0 |
DB |
67 |
AC |
. |
E 35 |
1 |
||||||
|
|
|
251 |
|
|
|
|
тривіальному випадковому підбору підпису s. Імовірність успіху такої атаки складає 1/p, що при великих значеннях р складає досить малу величину.
Для запобігання визначення особистого ключа необхідно на кожне повідомлення обирати різне k. Ці числа повинні формуватися з урахуванням спеціальних вимог, мати рівномірний закон розподілу і бути непередбачуваними. Для формування числа k можна використовувати генератор, визначений у ANSI X 9.17. Оскільки NR-схема підпису забезпечує відновлення повідомлення, то пред’являються тверді вимоги до функції введення надмірності R(m). При виборі функції надмірності R необхідно враховувати мультиплікативну природу схеми підпису.
|
|
|
|
~ |
|
|
|
|
|
|
|
|
|
|
|
|
Припустимо, що m M, m R(m) і (e, s) – цифровий підпис для m. Тоді |
||||||||||||||||
~ |
k |
|
|
|
|
|
|
|
|
|
|
|
|
~ ~ |
e |
mod p |
e m |
|
mod p для деякого цілого k і s ae k mod q. Нехай m* m |
|
|||||||||||||
для деякого e. Якщо s |
* |
= s + e modq і |
~ |
|
* |
|
|
|||||||||
|
m MR , то (e, s ) є коректним |
|||||||||||||||
підписом для нового повідомлення m |
* |
R |
1 ~ * |
) . Це випливає з того, що: |
||||||||||||
|
(m |
|||||||||||||||
|
|
v s y e s e ae |
k e (mod p); |
|
|
|||||||||||
|
|
ve |
k e ~ |
k |
~ |
|
e |
|
~ * |
(mod p). |
|
|
||||
|
|
m |
|
m |
|
m |
|
|
||||||||
|
|
~ |
|
|
|
|
|
|
|
|
|
|
|
* |
|
|
Оскільки m MR , то підроблений підпис (e, s ) буде прийнятий як коректний для повідомлення m*.
Нарешті перевірка умови 0 < e < p є обов’язковою. Припустимо (e, s)
є підписом сторони А для повідомлення m. Тоді ~ і . e mr mod p s ae k mod q
Зловмисник може використовувати цей підпис для формування підпису під обраним ним самим повідомленням m*. Він визначає e* таке, що
e |
* |
~ * |
r(modp) і |
e |
* |
|
* |
|
m |
|
e(mod q). Якщо не перевірити умову, що 0 < e < p, |
||||
то пара (e, s*) буде прийнята як справжній підпис. |
|
||||||
|
|
Розглянемо |
основні стандарти ЕЦП, застосовані |
у комплексних |
системах захисту банківської інформації, проведемо зіставлення основних характеристик ЕЦП (довжину ключів, довжину цифрового підпису, складність (час) обчислення і складність (час) перевірки дійсності цифрового підпису) з метою виявлення їх переваг і недоліків за умови, що рівень стійкості підпису стосовно будь-яких методів фальсифікації не нижче, ніж 1021 (або 30 років безперервної роботи мережі із 1 000 суперкомп’ютерів).
У якості "базової" довжини ключів і довжини самого цифрового підпису будемо розглядати довжину в 64 байти.
258
Алгоритм RSA ґрунтується на NP-повній задачі факторизації числа (розкладання цілого параметра n у вигляді добутку двох різних простих чисел приблизно рівних один по одному величини, тобто n = p × q на ці прості множники). За сучасними оцінками складність задачі розкладання на прості множники при цілих числах n з 64 байтів становить порядку 1017 – 1018 операцій, тобто перебуває десь на грані досяжності для серйозного "противника". Тому звичайно в системах цифрового підпису на основі алгоритму RSA застосовують більш довгі цілі числа n (звичайно від 75 до 128 байтів). Це відповідно приводить до збільшення довжини самого цифрового підпису відносно 64-байтного варіанта приблизно на 20 – 100 % (у цьому випадку її довжина збігається з довжиною запису числа n), а також від 70 до 800 % збільшує час обчислень при підписуванні і перевірці.
Крім того, при генерації і обчисленні ключів у системі RSA необхідно перевіряти велику кількість досить складних додаткових умов на прості числа p і q, а невиконання кожного з них може уможливити фальсифікацію підпису з боку того, хто виявить невиконання хоча б однієї із цих умов (при підписуванні важливих документів допускати, навіть теоретично, таку можливість небажано). Схему створення і перевірки підпису за алгоритмом RSA наведено на рис. 7.4.
Рис. 7.4. Створення і перевірка підпису за алгоритмом RSA
Алгоритм НОТАРІУС
Алгоритм НОТАРІУС-1 [46] – аналог алгоритму Ель – Гамаля. Основна відмінність алгоритму полягає в тому, що замість звичайної операції множення цілих чисел за модулем великого простого p використовується множення за модулем простого числа, ця операція набагато ефективніше обчислюється на розповсюджених процесорах.
259