Міністерство Освіти і Науки України
Національний Університет “Львівська Політехніка”
Кафедра ЕОМ
Формування цифрового підпису згідно стандарту DSS
Методичні вказівкидо лабораторної роботи № 2
з курсу “Проектування засобів захисту інформації в комп’ютерних мережах” для студентів напрямків 7.091501, 8.091501 “Комп’ютерні системи та мережі”
8.091502 “Системне програмне забезпечення”
8.091503 “Спеціалізовані комп’ютерні системи”
Затвердженона засіданні кафедриЕлектронних Обчислювальних МашинПротокол № від 2006 року
Львів – 2006
Формування цифрового підпису згідно стандарту DSS: Методичні вказівки до лабораторної роботи з курсу „Проектування засобів захисту інформації” для студентів напрямків 7.091501, 8.091501 “Комп’ютерні системи та мережі”, 8.091502 “Системне програмне забезпечення”, 8.091503 “Спеціалізовані комп’ютерні системи” / Укладачі: В.М. Грига, В.М. Сокіл – Львів: Національний університет “Львівська політехніка”, 2006, 9 с.
Укладачі: В.М. Грига, асистент кафедри ЕОМ
В.М. Сокіл, асистент кафедри ЕОМ
Відповідальний за випуск: В.Т. Кремінь, к.т.н., доц. кафедри ЕОМ
Рецензенти: ВА. Голембо, к.т.н., доц. кафедри ЕОМ.
Ю.В. Морозов, к.т.н., доц. кафедри ЕОМ.
1 Мета роботи
Мета роботи: реалізувати демонстраційну програму формування цифрового підпису вхідного повідомлення згідно стандарту DSS.
2 Очікуваний результат роботи
В ході роботи необхідно засвоїти основні принципи побудови алгоритмів формування цифрових підписів повідомлень, розробити демонстраційну програму формування цифрового підпису вхідного повідомлення згідно стандарту DSS.
3 Теоретичні відомості
Вимоги до цифрового підпису
Аутентифікація захищає двох учасників, які обмінюються повідомленнями від втручання деякої третьої сторони. Зазвичай проста аутентифікація не захищає учасників один від одного, оскільки між самими учасниками можуть виникати певного роду спори.
Наприклад, припустимо, що Роман посилає Андрію аутентифіковане повідомлення, аутентифікація здійснюється на основі спільного секретного ключа. Розглянемо можливі непорозуміння, які можуть при цьому виникати:
Андрій може підробити повідомлення і стверджувати, що воно прийшло від Романа. Для цього достатньо просто створити повідомлення і приєднати код аутентифікації, використовуючи спільний ключ.
Роман може відправити повідомлення Андрію, а потім спокійно заперечувати факт передачі цього повідомлення. Оскільки Андрій може підробити повідомлення, то він не зможе довести, що Роман дійсно відправляв повідомлення.
У випадку, коли обидві сторони не довіряють один одному, необхідно дещо більше, ніж аутентифікація на основі спільного секрету. Можливим вирішенням подібної проблеми є використання цифрового підпису. Цифровий підпис має наступні властивості:
Забезпечує можливість перевірки автора, дати та часу формування підпису.
Забезпечує можливість аутентифікації вмісту повідомлення під час формування підпису.
Підпис перевіряється третьою стороною для розв’язання спорів.
Таким чином, функція цифрового підпису включає функцію аутентифікації. На основі цих властивостей можна сформулювати наступні вимоги до цифрового підпису:
Підпис повинен бути бітовим об'єктом, що залежить від підписаного повідомлення.
Підпис повинен містити деяку унікальну інформацію відправника для запобігання підробки або відмови.
Алгоритм формування цифрового підпису має бути достатньо простим.
Підпис повинен легко перевірятися.
Підробка цифрового підпису шляхом створення нового повідомлення для існуючого цифрового підпису або створення фальшивого цифрового підпису для деякого повідомлення має бути неможливою.
Цифровий підпис повинен бути достатньо компактним і не займати багато пам’яті.
Для реалізації систем цифрового підпису використовують поєднання сильних хеш-функцій та асиметричних криптосистем.
Стандарт цифрового підпису DSS
Національний інститут стандартів і технологій США (NIST) розробив федеральний стандарт цифрового підпису DSS (Digital Signature Standard). Для утворення цифрового підпису використовується алгоритм DSA (Digital Signature Algorithm). В якості хеш–алгоритму стандарт передбачає використання алгоритму SHA–1 (Secure Hash Algorithm). Запропонований алгоритм DSA, має, як і RSA, теоретико-числовий характер і використовує криптографічну ситему Ель-Гамаля [E85] та К. Шнорра [S89] . Його надійність базується на практичній нерозв' язаності визначеного часткового випадку задачі обчислення дискретного логарифму. Сучасні методи розв’язку цієї задачі мають приблизно таку саму ефективність, що і методи вирішення задачі факторизації. В зв’язку з цим пропонується використовувати ключі довжиною від 512 до 1024 біт з тими характеристиками, що і в системі RSA. Довжина підпису в системі DSA меньша, ніж в RSA, і складає 320 розрядів.
Відмінності підходів стандарту DSS та алгоритму RSA
DSS використовує алгоритм, який розроблявся для використання тільки в якості цифрового підпису. На відміну від RSA даний алгоритм не можна використати для шифрування або обміну ключами. Тим не менше, це технологія з відкритим ключом.
Розглянемо відмінності підходів утворення цифрових підписів в стандарті DSS та в алгоритмі RSA.
EMBED Visio.Drawing.6
Рис.1. Формування та перевірка підпису за допомогою алгоритму RSA.
EMBED Visio.Drawing.6
Рис.2. Формування та перевірка підпису за допомогою стандарту DSS.
У випадку застосування алгоритму RSA підписане повідомлення подається на вхід сильної хеш – функції, яка утворює хеш – код фіксованої довжини. Для формування підпису хеш-код шифрується за допомогою закритого ключа відправника. Потім повідомлення і підпис пересилаються отримувачу. Отримувач обчислює хеш – код повідомлення і перевіряє підпис, використовуючи відкритий ключ відправника. Якщо обчислений хеш – код дорівнює дешифрованому підпису, то це означає, що підпис коректний.
У випадку застосування стандарту DSS також використовується сильна хеш-функція.
Хеш – код є входом функції підпису разом з випадковим числом EMBED Equation.3 , згенерованим для цього конкретного підпису. Функція підпису також залежить від закритого ключа відправника EMBED Equation.3 і множини параметрів, відомих всім учасникам. Можна сказати, що ця множина складається з глобального відкритого ключа EMBED Equation.3 . Результатом є підпис, який складається з двох компонент EMBED Equation.3 і EMBED Equation.3 .
Для перевірки підпису отримувач також обчислює хеш-код отриманого повідомлення.
Цей хеш-код разом з підписом є вхідними данимим для функції верифікації. Функція верифікації залежить від глобального відкритого ключа EMBED Equation.3 та від відкритого ключа відправника EMBED Equation.3 .
Виходом функції верифікації є значення, яке дорівнює компоненті EMBED Equation.3 , якщо підпис коректний. Функція підпису така, що тільки відправник, який знає закритий ключ може створити коректний підпис.
Алгоритм DSA
Відправник і отримувач електронного документа використовують при обчисленні великі цілі числа: EMBED Equation.3 і EMBED Equation.3 – прості числа, EMBED Equation.3 біт кожне EMBED Equation.3 ; EMBED Equation.3 – просте число довжиною 160 розрядів (дільник числа EMBED Equation.3 ). Числа EMBED Equation.3 , EMBED Equation.3 , EMBED Equation.3 є відкритими і можуть бути спільними для всіх користувачів мережі.
Відправник вибирає випадкове ціле число EMBED Equation.3 ( EMBED Equation.3 ). Число EMBED Equation.3 – секретний ключ відправника для формування електронного цифрового підпису.
Наступним кроком відправник обчислює значення
EMBED Equation.3 .
Число EMBED Equation.3 – відкритий ключ для перевірки підпису відправника. Це число передається всім отримувачам документів.
Для того, щоб підписати документ EMBED Equation.3 , відправник хешує його в ціле хеш-значення EMBED Equation.3 :
EMBED Equation.3 ,
після цього відправник генерує випадкове ціле число EMBED Equation.3 при умові, що EMBED Equation.3 , і обчислює число EMBED Equation.3 :
EMBED Equation.3 .
Обчисливши число EMBED Equation.3 відправник обчислює за допомогою секретного ключа EMBED Equation.3 ціле число EMBED Equation.3 :
EMBED Equation.3 .
Пара чисел EMBED Equation.3 і EMBED Equation.3 утворюють цифровий підпис
EMBED Equation.3
під документом EMBED Equation.3 .
Таким чином, підписане повідомлення складається з трьох чисел EMBED Equation.3 .
Отримувач підписаного повідомлення EMBED Equation.3 перевіряє виконання умов
EMBED Equation.3 , EMBED Equation.3
і відкидає підпис, якщо хоча б одна з умов не виконується.
Потім отримувач обчислює значення
EMBED Equation.3 ,
хеш-значення
EMBED Equation.3
і числа
EMBED Equation.3
Після цього отримувач за допомогою відкритого ключа EMBED Equation.3 обчислює значення
EMBED Equation.3
і перевіряє виконання умови
EMBED Equation.3 .
Якщо умова EMBED Equation.3 виконується, тоді підпис EMBED Equation.3 під документом EMBED Equation.3 визнається отримувачем як справжній.
Можна строго математично довести , що рівність EMBED Equation.3 буде виконуватися тоді і тільки тоді, коли підпис EMBED Equation.3 під документом EMBED Equation.3 отриманий за допомогою того секретного ключа EMBED Equation.3 , з якого був обчислений відкритий ключ EMBED Equation.3 . Таким чином, можна твердо переконатися , що відправник повідомлення володіє даним секретним ключом EMBED Equation.3 (не розкриваючи при цьому значення ключа EMBED Equation.3 ) і що відправник підписав даний документ EMBED Equation.3 .
4 Література
1. В. Стоуллингс “Криптография и защита сетей – Принципы и практика”, Киев 2003
2. Menezes A., van Oorshot P., Vanstone S. Handbook of applied cryptography. CRC Press, 1997
Соколов А. В., Шаньгин В. Ф. “Защита информации в распределенных корпоративных системах”, Москва 2002
Зміст
1 Мета роботи..........................................................................................................................……3
2 Очікуваний результат роботи................................................................................................. …3
3 Теоретичні відомості……………………………… …….…………………………………......3
4 Література…………………………………………………...……………………...…..……. ....7
Навчальне видання
Методичні вказівки
до лабораторної роботи
“ Формування цифрового підпису згідно стандару DSS”
з дисципліни
" Проектування засобів захисту інформації "
для студентів напрямків 7.091501, 8.091501 “Комп’ютерні системи та мережі”
8.091502 “Системне програмне забезпечення”
8.091503 “Спеціалізовані комп’ютерні системи”
Укладачі Грига Володимир Михайлович
Сокіл Володимир Михайлович
Редактор
Комп’ютерне складання
Підписано до друку 200 р.
Формат 70 х 100 1/16. Папір офсетний.
Друк на різографі. Умовн. друк. арк. ...... Обл.-вид. арк. ......
Наклад ..... прим. Зам. 780.
Поліграфічний центр
Видавництва Національного університету “Львівська політехніка”
вул. Колесси, 2, 79000, Львів