Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6_4_1__Pk_PZ_4_1_редактированное.docx
Скачиваний:
34
Добавлен:
13.03.2016
Размер:
1.72 Mб
Скачать

2.13 Криптографічні протоколи. Приклади розв’язку задач та задачі для самостійного розв’язання

2.13.1 Основні теоретичні відомості

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

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

Криптографічні протоколи можна поділити на два великі класи:

  1. Протоколи – примітиви або елементарні протоколи.

  2. Прикладні або складові протоколи.

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

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

Більшість криптографічних протоколів можна поділити на інтерактивні протоколи та протоколи з нульовими знаннями.

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

Формалізовано криптографічний протокол можна задати у вигляді PVS протоколу. По суті, PVS протокол описує логіку взаємодій двох об’єктів P і V, де P – об’єкт, який формулює логічне твердження S та доводить істинність твердження S. V – перевіряючий об’єкт, S – деяка логіка.

Якщо зловмисником може бути тільки P, то такий протокол називається інтерактивним, і має володіти двома властивостями:

  • повнота протоколу;

  • коректність протоколу.

Вважається, що протокол володіє властивістю повноти у випадку, якщо S  істинно, то Р завжди доведе перевіряючому V з великою ймовірністю, що S  істинно.

Коректність протоколу, якщо S – хибне, то перевіряючий V з великою ймовірністю доведе P, що S хибне. Слушність протоколу, який володіє властивостями повноти та коректності, забезпечується за рахунок багатораундового обміну інформацією між об’єктами та суб’єктами.

У випадку, якщо V може бути зловмисником, для забезпечення слушності протокол має володіти “нульовими знаннями”.

Сутність протоколу з “нульовими знаннями”: перевіряючий V, отримуючи послідовність тверджень S, не має отримати ніяких знань про те, чому твердження S істинні.

Приклади протоколів:

  1. Протокол підписання контракту. Суть: два або більше суб’єктів згодні підписати контракт про взаємовідносини та отримати матеріального прибутку, але кожен не хоче підписувати контракт першим (тобто боїться, що друга сторона реалізує якусь погрозу обману).

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

  3. Протокол “підкидання монети” по електронному каналу зв’язку. Сутність: сторона А підкидає монету (орел чи решка), а сторона В вгадує по каналу результат підкидання, сторона В хоче мати гарантію, що А не відмовиться від раніше отриманого результату.

  4. Протокол ідентифікації об’єкта/суб’єкта. Об’єкт/суб’єкт, взаємодіючи з іншими; хоче мати гарантії того,що він взаємодіє з об’єктом/суб’єктом, який йому потрібен.

  5. Римський протокол. Є n об’єктів та суб’єктів, а також k – деяких центрів. Центри можуть управляти об’єктами та суб’єктами. Як центри, так і деяка частина об’єктів та суб’єктів можуть бути зловмисниками. Як необхідно реалізувати протокол їх взаємодій, щоб система була у виграші?

Приклад реального протоколу підкидання монети по каналу зв’язку.

Задача. Абонент А підкидає монету, в результаті має деяке твердження x. Об’єкт В вгадує це твердження і повинен передати по каналу зв’язку результат вгадування. Як має реалізуватись протокол, щоб А не відмовився від x, якщо В його вгадає?

Розв’язок задачі. Нехай є одностороння функція: , яка має поліноміальну складність, тобто, якщоx має розмір n, то складність обчислюється як:

,

де  постійні величини, розмір вхідних даних.

Процедура знаходження має бути експоненціальною (чи субекспоненціальною), тобто:

,

де – розмір вхідних даних.

Голосування:

Сторона А розраховує і посилає В, сторона В запам’ятовуєy і формує деяке , а потім посилає його стороні С. Сторона А фіксуєі посилає В значеннях.

Сторона В, знаючи функцію від , розраховує

Якщо отримане значення y та розраховане співпадають – то голосування завершене.

Для забезпечення арбітражу сторони А і В усі раунди мають запам’ятовувати, і це має здійснюватися автоматично без можливості будь-якої корекції.

Приклади слушних протоколів

Моделі інтерактивного та протоколу з нульовими знаннями.

В протоколі з нульовими знаннями та інтерактивному протоколі, деякий суб’єкт А знає твердження S і він хоче довести В, що S – істина.

Нерозголошуючи, наприклад, в протоколі з нульовими знаннями, чому S – істина. Наприклад: А знає доведення деякої теореми, але він не хоче розголошувати зміст доведення теореми, однак А хоче, щоб В погодився на правильність доведення теореми.

Для розгляду введемо наступну модель. Нехай є ймовірнісні машини Тюрінга P та V, причому P – машина, якою володіє А має нескінченний ресурс потужності. Машина V належить суб’єкту В, і має поліноміальну потужність.

Машини P та V мають загальну послідовну стрічку, на яку вони записують одна іншій повідомлення, крім того, машини мають загальну вхідну стрічку, на яку записуються вхідні повідомлення х. На цій мові задача доведення заключається у тому, що А хоче довести В, що х належить деякій мові з алфавітомm, причому задача доведення відноситься до класу NP повних задач, тому В не може сам перевірити, що .

Фізично NP – повнота еквівалентна перебору всіх можливих варіантів. Показано, що розв’язок цієї задачі може бути знайдено, якщо суб’єкт В задає відносно S випадкові запитання суб’єкту А. Отримуючи та перевіряючи відповіді А, В може згодитись або не згодитися з тим, що , при цьому машинаV зупиняється і записує на загальну стрічку результат сприйняття або не сприйняття доведення.

Для інтерактивного протоколу розглядається стан системи на вхідному слові х, тобто . Тоді, протокол буде коректним, якщо ймовірність стану

. (2.127)

Запис (2.127) означає, що якщо S – істинно, то P доведе V істинність S з ймовірністю 1.

Коректність таких протоколів полягає в тому, що, якщо S – хибне, то V з великою ймовірністю доведе P, що S – хибне:

. (2.128)

Слушні протоколи в системах паролювання.

Найважливішим етапом автентифікації є побудова слушного протоколу паролювання (автентифікація А та В). На цьому етапі користувачі А та В мають володіти деяким головним секретом та загальносистемними параметрами системи паролювання. Причому ці секрети вони повинні формувати самі собі та обмінюватися ними. Розглянемо це на прикладі, коли головні ключі генерує адміністратор (на прикладі системи RSA). Адміністратор оголошує, що – власний ключ користувача А,– власний ключ користувача В, а відкриті параметри користувачів А та В відповіднота(рис. 2.28).

Рисунок 2.28 – Обмін параметрами

Тоді слушний протокол заключається в наступному: абонент А звертається до В з запитом виду (ідентифікатор А). За допомогоюА шифрує деякуфункцію

(2.129)

і передає її користувачу В. Користувач В своїм секретним ключем розшифровує це повідомлення і порівнює відкрите зпісля розшифрування.– випадкове число для контролю цілісності сеансу. В відповідає А: на відкритому ключістворює криптограму:

, (2.130)

де – ключ з’єднання,– ідентифікатор В,– випадкове число, що формує та передає В. Після цього А на своєму секретному ключірозшифровує криптограму від В та виділяє ключ. На третьому кроці передає В контрольне повідомлення

. (2.131)

В, отримавши це повідомлення, бачить, що А правильно прийняв ключ з’єднання і, що саме з’єднання – цілісне. Далі А та В обмінюються між собою інформацією, шифруючи її ключем .

Протокол виробки загального секрету.

Нехай користувачам А та В необхідно виробити загальний секрет . Використаємо для цього протокол Діффі-Хеллману в поліGF(P). Нехай А та В знають загальносистемні параметри , що породжені випадковим процесом. Тоді за допомогою схеми Діффі-Хеллмана можна забезпечити слушний протокол. Протокол наведено на рис. 2.29.

2.13.2 Прилади розв’язку задач

Задача 1.

Реалізуйте протокол, що наведений на рис. 2.28, використовуючи RSA криптосистему.

Розв’язок задачі.

Нехай А та В використовують такі параметри та ключі:

;

.

Переконайтесь, що ці параметри та ключі задовольняють вимоги RSA криптосистеми. Для спрощення приймемо, що абонент А передає повідомлення (2.129) , а В у відповідь. Тоді:

.

Криптограма розшифровується В з використанням особистого ключа

.

Далі абонент В, використовуючи відкритий ключ , зашифровує повідомлення

.

Криптограма розшифровується А з використанням особистого ключа

.

Виділивши із випадкове число, абонент А установлює цілісність сеансу. Нехай є отриманий від В сеансів ключ. Тоді на третьому кроці повідомлення (2.131), що має, наприклад, вид 11101100 10010001 11110000 10100011, зашифровується ключем.

Виділивши із отриманої криптограми своє випадкове число із (2.130) В установлює цілісне з’єднання чи ні. Крім того, при правильному розшифруванні, В установлює, що А отримав ключі може його використовувати в подальшому.

Рисунок 2.29 – Протокол Діфі-Хелмана

Пояснення до рис. 2.29: А та В генерують свої власні ключі тадовжиноювідповідно. Потім кожний з них розраховує свої відкриті ключі, використовуючи формули:

(2.132)

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

Задача 2.

В системі використовується схема вироблення загального секрету по протоколу Діффі-Хеллмана. Довжина модуля P=37.

Необхідно знайти:

  1. Знайти первісний елемент поля GF(P).

  2. Визначити величину множини первісних елементів.

  3. Сформувати особистий ключ та визначити відкритий ключ.

  4. Виробити загальний секрет.

Розв’язок.

Шукаємо первісний елемент поля GF(37). Оскільки , то з теореми Ферма первісний елемент можна знайти, використовуючи співвідношення:

;

.

Знайдемо канонічний розклад Р=37, ,,.

Обчислюємо:

, якщо цей вираз буде рівний 1, то це не поле.

Обчислюємо:

, якщо цей вираз буде рівний 1, то це не поле.

вибираємо самі, воно може бути не обов’язково простим.

Вибираємо

  1. Визначення множини первісних елементів.

–кількість первісних елементів.

. Отже, існує всього 12 первісних елементів.

  1. Формування відкритого ключа.

, де k – номер варіанта.

Нехай особистий ключ , тоді відкритий ключ.

  1. Формування загального секрету. Нехай абонент дає вже розраховане значення

. Тоді загальний секрет із ним є такий:

.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]