Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектування засобів захисту інформації в комп'...doc
Скачиваний:
19
Добавлен:
14.11.2019
Размер:
1.06 Mб
Скачать

Лабораторна робота № 2 Формування цифрового підпису згідно стандарту dss

1 Мета роботи

Мета роботи: реалізувати програму формування цифрового підпису вхідного повідомлення згідно стандарту DSS.

2 Очікуваний результат роботи

В ході роботи необхідно засвоїти основні принципи побудови алгоритмів формування цифрових підписів повідомлень, розробити демонстраційну програму формування цифрового підпису вхідного повідомлення згідно стандарту DSS.

3 Теоретичні відомості

Вимоги до цифрового підпису

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

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

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

  2. Роман може відправити повідомлення Андрію, а потім спокійно заперечувати факт передачі цього повідомлення. Оскільки Андрій може підробити повідомлення, то він не зможе довести, що Роман дійсно відправляв повідомлення.

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

  1. Забезпечує можливість перевірки автора, дати та часу формування підпису.

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

  3. Підпис перевіряється третьою стороною для розв’язання спорів.

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

  1. Підпис повинен бути бітовим об'єктом, що залежить від підписаного повідомлення.

  2. Підпис повинен містити деяку унікальну інформацію відправника для запобігання підробки або відмови.

  3. Алгоритм формування цифрового підпису має бути достатньо простим.

  4. Підпис повинен легко перевірятися.

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

  6. Цифровий підпис повинен бути достатньо компактним і не займати багато пам’яті.

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

Стандарт цифрового підпису DSS

Національний інститут стандартів і технологій США (NIST) розробив федеральний стандарт цифрового підпису DSS (Digital Signature Standard). Для утворення цифрового підпису використовується алгоритм DSA (Digital Signature Algorithm). В якості хеш–алгоритму стандарт передбачає використання алгоритму SHA–1 (Secure Hash Algorithm). Запропонований алгоритм DSA, має, як і RSA, теоретико-числовий характер і використовує криптографічну ситему Ель-Гамаля та К. Шнорра. Його надійність базується на практичній нерозв' язаності визначеного часткового випадку задачі обчислення дискретного логарифму. Сучасні методи розв’язку цієї задачі мають приблизно таку саму ефективність, що і методи вирішення задачі факторизації. В зв’язку з цим пропонується використовувати ключі довжиною від 512 до 1024 біт з тими характеристиками, що і в системі RSA. Довжина підпису в системі DSA меньша, ніж в RSA, і складає 320 розрядів.

Відмінності підходів стандарту DSS та алгоритму RSA

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

Розглянемо відмінності підходів утворення цифрових підписів в стандарті DSS та в алгоритмі RSA.

Рис.1. Формування та перевірка підпису за допомогою алгоритму RSA.

Рис.2. Формування та перевірка підпису за допомогою стандарту DSS.

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

У випадку застосування стандарту DSS також використовується сильна хеш-функція.

Хеш – код є входом функції підпису разом з випадковим числом , згенерованим для цього конкретного підпису. Функція підпису також залежить від закритого ключа відправника і множини параметрів, відомих всім учасникам. Можна сказати, що ця множина складається з глобального відкритого ключа . Результатом є підпис, який складається з двох компонент і .

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

Цей хеш-код разом з підписом є вхідними данимим для функції верифікації. Функція верифікації залежить від глобального відкритого ключа та від відкритого ключа відправника .

Виходом функції верифікації є значення, яке дорівнює компоненті , якщо підпис коректний. Функція підпису така, що тільки відправник, який знає закритий ключ може створити коректний підпис.

Алгоритм DSA

Відправник і отримувач електронного документа використовують при обчисленні великі цілі числа: і – прості числа, біт кожне ; – просте число довжиною 160 розрядів (дільник числа ). Числа , , є відкритими і можуть бути спільними для всіх користувачів мережі.

Відправник вибирає випадкове ціле число ( ). Число – секретний ключ відправника для формування електронного цифрового підпису.

Наступним кроком відправник обчислює значення

.

Число – відкритий ключ для перевірки підпису відправника. Це число передається всім отримувачам документів.

Для того, щоб підписати документ , відправник хешує його в ціле хеш-значення :

,

після цього відправник генерує випадкове ціле число при умові, що , і обчислює число :

.

Обчисливши число відправник обчислює за допомогою секретного ключа ціле число :

.

Пара чисел і утворюють цифровий підпис

під документом .

Таким чином, підписане повідомлення складається з трьох чисел .

Отримувач підписаного повідомлення перевіряє виконання умов

,

і відкидає підпис, якщо хоча б одна з умов не виконується.

Потім отримувач обчислює значення

,

хеш-значення

і числа

Після цього отримувач за допомогою відкритого ключа обчислює значення

і перевіряє виконання умови

.

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

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

Завдання для виконання роботи:

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

Порядок виконання роботи:

  1. Провести функціональну декомпозицію та побудувати діаграму класів підсистеми формування цифрового підпису за алгоритмом DSS.

  2. Реалізувати підсистему формування цифрового підпису засобами MS Visual Studio 2005.

  3. Побудувати графічний інтерфейс програми формування цифрового підпису вхідного повідомлення за алгоритмом DSS.

  4. Підготувати та захистити звіт.

4 Література

1. В. Стоуллингс “Криптография и защита сетей – Принципы и практика”, Киев 2003

2. Menezes A., van Oorshot P., Vanstone S. Handbook of applied cryptography. CRC Press, 1997