- •Методи криптоаналізу асиметричних криптосистем Навчальні питання
- •1. Доопрацювати лекцію.
- •2. Розв’язати задачі 9.8.1 – 9.8.7
- •31.1. «Повне розкриття» на основі підписаних даних
- •31.2. Оцінка стійкості цп від атак типу «екзистенційна підробка»
- •31.3. Оцінка стійкості цп від атак типу «селективна підробка»
- •31.4. Аналіз захищеності існуючих цп від атак на зв’язаних ключах
- •6Аналіз захищеності цп ecdsa та ec-kcdsa
- •31.5 Захищеність цп дсту 4145-2002 від атак на реалізацію
- •31.6. Атаки на цп спеціального виду та захист від них
- •6.14.1. Атака на основі апаратних помилок
- •6.14.2. Атака на основі внесення помилок у строго визначений період обчислень
- •6.14.3. Атака на основі внесення помилок у довільний момент обчислень
6.14.3. Атака на основі внесення помилок у довільний момент обчислень
Будемо розглядати алгоритм множення точки на ЕК «справа наліво». Представимо особистий ключ у двійкому вигляді:
d = (dn-1, dn-2, …d1, d0),
де d0 – найменш значущий біт.
Для вказаної умови алгоритм множення на ЕК «справа наліво» можна записати таким чином [332–334].
INPUT: P, d = (dn-1, dn-2, …d1, d0)2
OUTPUT: Q = d P
H = P; Q = 0;
for i = 0 n –1 do
if (di = 1) then Q = Q + H;
H = 2 H;
Return Q.
Будемо вважати, що криптоаналітику відома довжина n особистого ключа d. Значення змінних Q, H позначимо перед i-ітерацією як Q(i) та H(i).
Атаку будемо здійснювати таким чином. Спочатку на вхід засобу КЗІ подається значення точки ЕК, що належить ЕК – Е*, після чого виконується операція скалярного множення, результатом якого є відкритий ключ
Q(n)
=
який зберігається та доступний на виході засобу КЗІ. Далі виконуємо ту саму операцію скалярного множення з обчислення відкритого ключа, але за умови, що в процесі обчислення вноситься помилка у випадковий біт результату. Обчислений відкритий ключ у цьому випадку буде помилковим, позначимо його як Q(n)*. Будемо вважати, що збій відбувся протягом j-ітерації так, що
.
А також будемо вважати, що в результаті збою інвертується один біт у регістрі збереження відкритого ключа Q. Тоді Q(n)* позначає результат обчислення відкритого ключа зі збоєм, який відрізняється від дійсного Q(j).
У
подальшому необхідно знайти номер
ітерації j*, але такої, що j*
та dj* =1 для отриманих значень Q(n) та Q(n)*.
Для спрощення приймемо, що серед m
найбільш значущих бітів таємного
множника наявний щонайменше один
ненульовий біт, тобто існує j*.
За таких умов можна знайти кандидатів
на значення Q(j*)* шляхом послідовного
аналізу кожного номера ітерації і
в діапазоні n – m
та перевірки одночасно таких умов:
1) i як кандидатуру на j*, тобто i – j*;
2)
що x
(0,
1) n-1, але такого, у двійковому поданні
якого найменш значущий біт дорівнює
одиниці (x0), як кандидатуру на i
найбільш значущих бітів таємного
множника d, тобто:
х = (xn-i-1……x0)2 – d = (dn…xn-i)2;
3) Qx(i)= Q(n) – x 2i P, як кандидатуру на Qx(i), тобто Qx(i) – Q(j).
Із наведеного вище випливає, що необхідно визначити такі пари i та x, щоб вони задовольняли одночасному виконанню всіх трьох умов, зазначених вище. Тобто для кожної такої пари слід розглянути всі можливі значення Q(j)*, що можуть бути отримані з Qx(i) шляхом інвертування одного біту.
Далі шляхом симуляції роботи засобу необхідно перевірити, яке з можливих значень Qx(i)* є ідентичним до отриманого із засобу помилкового результату Q(n)*. Для цього необхідно використати операцію псевдододавання точок xi 2i+l P при l = 0, 2,… n – і – 1, де x = (xn-i-1…x0)2, x0 = 1, щоб для кандидатів i, x, Qx(i) отримати відповідний помилковий результат:
Qx(n)* = (…((Qx(i) +x0 2i P) + x1 (2i+1) P) + …) + xn-i-1 (2n-1) P. (6.170)
Якщо Qx(n)* є ідентичним щодо отриманого помилкового результату Q(n)*, то отримано і – J*, Qx(i)* – Q(J*), де x = (xn-i-1… x0)2 – d = (dn… xn-i)2, тобто n – J* бітів таємного множника d. Як правило, для визначення всіх бітів таємного множника наведену процедуру необхідно повторити декілька разів. При цьому складність атаки з кожною ітерацією буде зменшуватися за рахунок використання раніше отриманої інформації.
Наведена вище спрощена модель атаки, на перший погляд, здається не зовсім реалізованою, оскільки необхідно реалізувати збій в одному із строго визначених інтервалів бітів, проте в [332, 12] показано, як таку модель розширити за умови генерування збою у випадкові моменти часу протягом операції множення. Там же показано, що для достатньо великої кількості обчислень зі збоєм і ймовірність успішної реалізації такої атаки стає прийнятною.
9.8 Задачі для самостійного розв’язку до 9 розділу
Приклади розв’язку задач, що аналогічні нижче пропонуємим, наведені в додатках на електронному носії, а також в [ ].
Задача
9.8.1. Факторизувати модуль
RSA перетворення методом
- Полларда, для значень модуля, що
наведені в таблиці 9.11.
Таблиця 9.11 – Значення модуля RSA перетворення
-
i
1
2
3
4
5
6
7
8
9
10
11
Ni
377
221
299
209
247
323
403
351
391
161
437
i = k (mod 12), k - номер реєстрації.
Задача 9.8.2. Факторизувати модуль N, використовуючи метод квадратичного решета, для N, що наведені в таблиці 9.11 (i – номер реєстрації) .
Задача 9.8.3 Нехай відомо, що в RSA cистемі використовується відкритий ключ Dk = 103, а модуль перетворення N = 209. Необхідно знайти особистий (секретний) ключ Ek та оцінити складність криптоаналізу для N = 21024 +k 256, k – номер реєстрації.
Задача 9.8.4. Розв'язати задачу дискретного логарифмування для порівняння 15x 9(mod 23) методом - Полларда ( с = 6). Перевірте правильність розв'язку порівняння.
Задача 9.8.5. Розв'язати задачу дискретного логарифмування для порівняння 15x n (mod 23) методом - Полларда, с =6. Перевірте правильність розв'язку порівняння. Причому n = (k+17)mod 23, де k-номер реєстрації. Якщо n=0, то n:=21.
Задача 9.8.6. Визначте складність криптоаналізу дискретного логарифму методом - Полларда, якщо довжина модуля дорівнює 1024 + k 128 бітів(k – номер реєстрації]) .
Задача 9.8.7. Зробіть порівняльний аналіз стійкості направленого RSA шифрування та Ель-Гамаля направленого шифрування в групі точок еліптичних кривих, якщо величина N=22048+k 128, а порядок базової точки n=2256+k 32.
Задача 9.8.8 Зловмисник визначив, що направлене шифрування зроблено на відкритому ключі отримувача Еk=101, модуль перетворення N=3599. Необхідно знайти особистий ключ отримувача Dk з використанням якого можна здійснити розшифрування повідомлення М, якщо застосовується RSA перетворення.
Задача
9.8.9. Розв’язати порівняння
методом Поліга-Геллмана, де k – номер
реєстрації,
Задача
9.8.10. Визначте вартість розв’язку задачі
дискретного логарифмічного рівняння
для значення модуля, що наведено в задачі
9.8.6, якщо потужність крипто
аналітичної
системи складає
та
опер/с., а вартість одного міпсороку
(3,15
опер/рік) складає
грн., S=30, i – номер індивідуального
завдання.
Задача
9.8.10.
Визначте
час розв’язку задачі дискретного
логарифмічного рівняння для даних
задачі9.8.
3, якщо потужність крипто аналітичної
системи складає
опер/с, де і – номер індивідуального
завдання.
Задача
9.8.11.
Відомо,
що відкритий ключ користувача
,
- базова точка, що належить еліптичній
кривій
.
Порядок точки
,
порядок ЕК
,
де
кофактор. Необхідно знайти відкритий
ключ
із порівняння
,
тобто в нашому випадку порівняння
.
Задача
9.8.12. Визначте складність та дайте оцінку
вартості криптоаналізу методом повного
розкриття для криптоперетворень в групі
точок ЕК над полем
,
якщо порядок базової точки
,
потужність крипто аналітичної системи
додавань на ЕК/с., а вартість одного
міпсороку складає
грн.
Задача
9.8.13. Порівняйте крипто перетворення в
кільцях, полях та групі точок ЕК за
критерієм складності крипто аналізу
методом повного розкриття. Визначте
вартість криптоаналізу методом повного
розкриття, при якому криптоаналітик
знаходить секретний (особистий) ключ
абонента, за умови що довжини модулів
криптоперетворень в кільці, полі та
групі точок ЕК відповідно дорівнюють
бітів. Потужність крипто аналітичної
системи в кільці та полі складає
,
а в групі точок ЕК
.
Вартість одного міпсороку складає для
криптоперетворень в кільці та полі 30
грн., а в групі точок ЕК
600 грн.
Задача
9.8.14. Дайте оцінку складності факторизації
та розв’язку дискретного логарифмічного
рівняння в групі точок ЕК, якщо довжина
модулів
та порядок
.
Визначте значення безпечного часу
,
якщо потужність крипто аналітичної
системи при факторизації
гр.оп./с.,
а при розв’язанні дискретного
логарифмічного рівняння
оп.
додавання ЕК/с. Проаналізуйте результати
розв’язку задачі та зробіть висновки.
Задача
9.8.15. Визначте складність та вартість
криптоаналізу методом повного розкриття
для криптоперетворень в групі точок ЕК
над полем
,
якщо порядок базової точки
,
а потужність крипто аналітичної системи
додавань на ЕК/с., а вартість одного
міпсороку складає
грн.
Задача 9.8.16. Зробіть порівняння ЕЦП згідно ДСТУ 4145- 2002 та ГОСТ Р 34.10 – 2001 по критерію захищеності від атаки повне розкриття та по аналогії: ДСТУ 4145- 2002 та ISO 15946-2 ( ECDSA); ДСТУ 4145- 2002 та ISO 15946-2 ( EC G DSA); ДСТУ 4145- 2002 та ISO 15946-2 ( EC KC DSA).
Задача 9.8.17. Зробіть порівняння по парно 6 алгоритмів ЕЦП, що входять в ISO/IEC 15946-4 (ISO /IEC 9796 -3) по критерію захищенності від атаки повне розкриття. Дайте оцінку вартості вирішення задачі повне розкриття для двох алгоритмів.
Задача
9.8.18. Публічний ключ RSA
задано парою (39437, 99221). Відомо, що для
прискорення процесу розшифрування
використовується достатньо мала секретна
експонента
така, що
.
Знайдіть
та
для
алгоритму RSA. Оцініть стійкість RSA
перетворення, якщо довжина модуля N
=21024
+ 20 к,
К – номер реєстрації.
Задача 9.8.19. Спираючись на теореми 9.1–9.7 та діаграму класів складності, яка наведена на рис. 9.4, дайте оцінку та порівняйте по критерію складності криптографічну стійкість для таких класів:
а) DL h, DL g, DH g, DDH g DHh;
б) DL h, DBL g, DBDH g, DDH g DDHh.
Задача 9.8.20. Дайте оцінку складності злому NTRU Х9.98 методом «груба сила», тобто визначення особистого ключа f, використовуючи дані, що наведені в таблиці 9.8.
Задача 9.8.21. Дайте оцінку складності злому NTRU Х9.98 методом лобової атаки, тобто визначення особистого ключа f , використовуючи дані, що наведені в таблиці 9.8.
Задача 9.8.22. Порівняйте складності атак типу «повне розкриття», аналітичні вирази для оцінки яких наведені в таблиці 9.10, використовуючи також дані, що наведені в таблиці 9.8. Обґрунтуйте та дайте також оцінки безпечного часу криптосистем, параметри яких наведені в таблиці 9.8.
Задача 9.8.23. Нехай розробник програмних засобів може закласти лазівку в програмну реалізацію вироблення ЕЦП згідно ISO/IEC 15946-2 (ECDSA), яка у відповідний час або на відповідному етапі функціонування активізується та сформує або використає для підпису двох різних повідомлень один і той самий ключ сеансу k.
Вироблення ЕЦП для деякого повідомлення здійснюється згідно такого алгоритму:
Обчислити значення функції гешування від повідомлення М
.
2)
Сформувати або обчислити особистий
ключ сеансу
.
3)
Обчислити значення точки
.
4)
Обчислити відкритий ключ сеансу
.
5)
Обчислити значення
у полі
.
6)
Обчислити ЕЦП
.
Знайдіть особистий довгостроковий ключ d ЕЦП та реалізуйте атаку зі створення підписів під фальшивими документами.
Завдання 9.8.24. Атака за енергоспоживанню полягає в тому, що в процесі роботи шифратора криптоаналітик з високою точністю вимірює потужність пристрою. Для цього йому необхідно з’єднати криптографічний пристрій з вимірювальним приладом. Цікавими прикладами атаки по енергоспоживанню є операції подвоєння та додавання точок на еліптичній кривій. Вони споживають різну кількість енергії. На основі цього криптоаналітик може підрахувати кількість додавань та подвоєнь і в результаті визначити секретний ключ. Розрізняють два основних види атак по енергоспоживанню - прості (SPA - simple power analysis) і диференціальні (DPA - differential power analysis). Розробіть методику здійснення атаки по енерго споживанню та запропонуйте методи захисту від таких атак.
Завдання 9.8.25. Атака з внесенням помилок. Основна ідея — здійснення різних впливів на шифратор з метою виникнення спотворення інформації на деяких етапах шифрування. Найбільш поширені методи впливу:
збільшення напруги живлення криптосистеми, в кілька разів перевищує максимально допустиме значення;
зміна конструкції шифратора (порушення електричних контактів);
з міна частоти шифрувального пристрою, при якому частота значно перевищує максимально допустиму;
переміщення конструкції в електромагнітне поле;
підвищення температури деякої частини шифратора.
Розробіть методику здійснення атаки по енерго споживанню та запропонуйте методи захисту від таких атак.
Завдання 9.8.26. Коли у скалярі зустрічається одиничний біт, виконується додаткова операція додавання, якщо біт нульовий, ця операція не виконується. Завдяки цьому з'являється різниця у часі, що залежить від кількості одиничних біт скаляра. Коли у скалярі зустрічається одиничний біт, виконується додаткова операція додавання, якщо біт нульовий, ця операція не виконується. Завдяки цьому з'являється різниця у часі, що залежить від кількості одиничних біт скаляра. Знаючи час множення T, мінімальний час множення Tmin(один одиничний біт), та максимальний час множення Tmax(усі біти одиничні), обчисліть кількість одиничних бітів k ключа. ( наприклад , використовуючи вираз K=n(T - Tmin)/(Tmax - Tmin), де n – довжина скаляра. Запропонуйте методи захисту від атаки.
Завдання
9.8.27. Зробіть порівняльний
аналіз стійкості стандартів КЗІ, дані
відносно яких наведені в таблиці 9.12.
Сформуйте рекомендації відносно застосування перелічених стандартів . |
|
