Міністерство освіти і науки України
Криворізький технічний університет
Кафедра інформатики, автоматики і систем управління
Методичні вказівки
до виконання лабораторних робіт
з дисципліни “Захист інформації у комп’ютерних системах та мережах”
для студентів спеціальності
6.091500 “Комп’ютерні системи та мережі”
всіх форм навчання
м. Кривий Ріг
2007 р.
Укладачі: ст. викладач І.А. Маринич
Відповідальний за випуск: профессор, д.т.н. В.М. Назаренко
Рецензент: доцент, к.т.н М.П. Тиханський
Дані методичні вказівки містять завдання й приклади, що сприяють засвоєнню досліджуваного матеріалу й дозволяють вирішувати проблеми, пов'язані із захистом інформації в комп'ютерних системах і мережах.
Призначені для виконання лабораторних робіт з дисципліни “ Захист інформації у комп’ютерних системах та мережах ” для студентів спеціальності “ Комп’ютерні системи та мережі ”.
Розглянуто Схвалено
на засіданні кафедри на методичній раді
інформатики, автоматики факультету
і систем управління інформаційних технологій
Протокол № 2 Протокол № 4
від 24.01.2007 р. від 07.02.2007 р.
Зміст
Загальні вказівки до виконання лабораторних робіт 4
Лабораторна робота №1
Дослідження шифрів заміни, перестановки та гамування. 5
Лабораторна робота №2
Дослідження криптоалгоритму шифрування RSA 8
Лабораторна робота №3
Дослідження електронного цифрового підпису (ЕЦП) RSA 12
Лабораторна робота №4
Дослідження криптоалгоритму шифрування Ель –Гамаля 16
Лабораторна робота №5
Дослідження електронного цифрового підпису (ЕЦП) Ель –Гамаля 19
Додатки 23
Література 25
Загальні вказівки до виконання лабораторних робіт
Дані методичні вказівки містять опис і порядок виконання лабораторних робіт з дисципліни «Захист інформації у комп’ютерних системах та мережах».
Метою лабораторних робіт є дослідження методів захисту інформації в комп'ютерних системах і мережах.
Про готовність до роботи свідчать знання змісту роботи й основних теоретичних положень, розглянутих у роботі. Звіти про виконану роботу повинні бути складені технічно грамотно й закінчуватися самостійними виводами, оскільки студент повинен творчо підходити к отриманим результатам роботи, використовуючи свої практичні навички й теоретичні знання.
Лабораторні роботи повинні бути оформлені у вигляді звіту із вказівкою прізвища, ініціалів і групи студента. Перед захистом по лабораторних роботах студент повинен здати оформлений звіт на перевірку викладачеві.
Лабораторна робота № 1.
Тема роботи: Дослідження шифрів заміни, перестановки та гамування.
Мета роботи: Дослідження алгоритму та методики практичної реалізації шифрів на заміни, перестановки та гамування.
Основні теоретичні відомості
Шифр перестановки
Шифр, перетворення якого змінюють тільки порядок проходження символів вихідного тексту, називається шифром перестановки (ШП).
Розглянемо перетворення з ШП, яке призначене для зашифрування повідомлення довжиною n символів. Його можна представити за допомогою таблиці
1
2
…...
n
i1
i2
…...
in
де i1 – номер місця шифртексту, на яке попадає перша буква вихідного повідомлення при обраному перетворенні, i2 – номер місця для другої букви й т. д
Знаючи підстановку, що задає перетворення, можна здійснити як зашифрування, так і розшифрування тексту.
Шифр заміни.
Шифрування методом заміни засновано на алгебраїчній операції, яка називається підстановкою - взаємно однозначне відображення деякої кінцевої безлічі М на себе.
Даний алгоритм зашифрування можна виразити наступними формулами, де кожна буква відкритого тексту M заміняється буквою шифрованого тексту С.
У загальному виді при будь-якім зрушенні
C = E(M) = (M + k) mod(N),
де k = 1,...,32 для російського алфавіту.
Алгоритм розшифрування має вигляд
M = D(C) = (C – k) mod (N).
Прикладом поліалфавітного шифру заміни є система Виженера. Шифрування відбувається по таблиці, що являє собою квадратну матрицю розмірністю n x n, де n – число букв використовуваного алфавіту.
Перший рядок містить всі букви алфавіту. Кожний наступний рядок виходить із попереднього циклічним зрушенням останнього на одну букву вліво.
Під кожною буквою вихідного повідомлення послідовно записуються букви ключа (якщо ключ виявився коротше повідомлення, то його використовують кілька разів). Кожна буква шифртексту перебуває на перетинанні стовпця таблиці, обумовленого буквою відкритого тексту, і рядка, обумовленим буквою ключа.
Розшифрування отриманої криптограми здійснюється в такий спосіб.
Під буквами шифртексту послідовно записуються букви ключа; у рядку таблиці, що відповідає черговій букві ключа, роблять пошук відповідної букви шифртексту буква, що перебуває над нею в першому рядку таблиці, є відповідною буквою вихідного тексту, тобто перша буква по рядку тексту визначається за схемою (К1 по стовпцю С1 - М1).
Шифрування методом гамування.
Для зашифрування вхідної послідовності по цьому методу відправник робе побітове додавання по модулю 2 ключі k (відомий одержувачу й відправнику) і m-розрядної двійкової послідовності, що відповідає повідомленню, що пересилається:
ci = mi + ki , i = 1,m,
де mi, ki, ci- черговий i-й біт відповідно вихідного повідомлення m, ключа k і зашифрованого повідомлення с. Процес розшифрування зводиться до повторної генерації ключової послідовності й накладенню її на зашифровані дані. Рівняння розшифрування має вигляд:
mi = ci - ki , i=1,m
Розрізняють гамування з кінцевою й нескінченною гамами. У якості кінцевої гами може використовуватися фраза, у якості нескінченної - послідовність, яка вироблюється генератором псевдовипадкових чисел.
У тому випадку, якщо безліччю використовуваних для шифрування знаків повідомлення є текст, відмінний від двійкового коду, то його символи й символи гами заміняються цифровими еквівалентами, які потім підсумуються по модулю N. Процес зашифрування в цьому випадку визначається співвідношенням
ci = (mi + ri) mod N, i = 1, m,
де mi, ri , ci – черговий i-й знак вихідного повідомлення, гами й шифртексту відповідно;
N– число символів в алфавіті повідомлення; m – число знаків відкритого тексту.
Хід роботи
Робота складається з двох частин:
У першій частині необхідно зашифрувати відкритий текст (текст повинен складатись не менш ніж з двох слів) використовуючи усі три методи шифрування (заміни, перестановки та гамування). Відкритий текст повинен бути у всіх випадках однаковий.
У другій частині необхідно обмінятись з наступним варіантом отриманим шифртекстом та ключами і провести розшифрування з метою отримання відкритого тексту.
Після розшифрування необхідно зробити звірку результатів.
Звіт повинен містити
Приклади зашифрування та розшифрування для усіх розглянутих методів шифрування.
Висновки: переваги й недоліки наведених алгоритмів шифрування.
Лабораторна робота № 2.
Тема роботи: Дослідження криптоалгоритму шифрування RSA
Мета роботи: Дослідження структури алгоритму та методики практичної реалізації криптосистеми шифрування RSA.
Основні теоретичні відомості
Як відомо, алгоритми симетричного шифрування використовують ключі невеликої довжини й тому можуть швидко шифрувати більші обсяги даних.
При використанні алгоритму симетричного шифрування відправник і одержувач застосовують для шифрування й дешифрування даних один і той самий секретний ключ. Таким чином, алгоритми симетричного шифрування ґрунтуються на припущенні про те, що зашифроване повідомлення не зможе прочитати ніхто, крім того хто має ключ для його дешифрування. При цьому якщо ключ не скомпрометований, то при дешифруванні автоматично виконується аутентифікація відправника, тому що тільки він має ключ, за допомогою якого можна зашифрувати повідомлення. Таким чином, для симетричних криптосистем актуальна проблема безпечного розподілу симетричних секретних ключів. У зв'язку із цим без ефективної організації захищеного розподілу ключів використання звичайної системи симетричного шифрування в обчислювальних мережах практично неможливо.
Рішенням даної проблеми є використання асиметричних алгоритмів шифрування, які називають криптосистемами з відкритим ключем.
У них для зашифрування даних використовується один ключ, який називають «відкритим» а для дешифрування - інший, який називають «закритим або секретним». Варто мати на увазі, що ключ дешифрування не може бути визначений із ключа зашифрування.
В асиметричних криптосистемах відритий ключ і криптограма можуть бути відправлені по незахищених каналах. Концепція таких систем заснована на застосуванні односпрямованих функцій.
Як приклад односпрямованої функції може служити цілочисленне множення. Пряме завдання - обчислення добутку двох більших цілих чисел p і q, n = p*q. Це відносно нескладне завдання для ЕОМ.
Зворотне завдання - факторизація або розкладання на множники великого цілого числа практично нерозв'язні при досить більших значеннях n.
Наприклад, якщо p ≈ q, а їхній добуток n ≈ 2664 , то для розкладання цього числа на множники буде потрібно 223 операцій, що практично неможливо виконати за прийнятний час на сучасних ЕОМ.
Іншим прикладом односпрямованої функції є модульна експонента з фіксованою основою й модулем.
Наприклад, якщо y = ax, те природно можна записати, що x = log (y).
Завдання дискретного логарифмування формулюється в такий спосіб. Для відомих цілих a, n , y варто знайти таке число x, при якому ax (mod n) = y.
Наприклад, якщо a = 2664 і n=2664 знаходження показника ступеня x для відомого y зажадає близько 1026 операцій, що також неможливо виконати на сучасних ЕОМ .У зв'язку з тим, що в цей час не вдалося довести, що не існує ефективного алгоритму обчислення дискретного логарифма за прийнятний час, те модульна експонента також умовно віднесена до односпрямованих функцій.
Іншим важливим класом функцій, які використовуються при побудові криптосистем з відкритим ключем є, так звані, односпрямовані функції із секретом. Функція ставиться до даного класу за умови, що вона є односпрямованою й, крім того, можливо ефективне обчислення зворотної функції, якщо відомо секрет.
У даній лабораторній роботі досліджується криптосистема RSA, що використовує модульну експоненту з фіксованим модулем і показником ступеня ( тобто односпрямовану функцію із секретом).
Хід роботи
Хід виконання роботи відповідає криптосистемі шифрування даних по схемі RSA, що розташована нижче.
Схема алгоритму шифрування даних RSA
1. Визначення відкритого «e» і секретного «d» ключів
1.1. Вибір двох взаємно простих більших чисел p і q
1.2. Визначення їхнього добутку: n = p * q
1.3. Визначення функції Эйлера: (n) = (p-1)(q-1)
1.4.. Вибір відкритого ключа e з урахуванням умов:
1 < e (n), НОД (e, (n)) = 1
1.5. Визначення секретного ключа d, що задовольняє умові
e * d 1 (mod (n)), де d < n
2. Алгоритм шифрування повідомлення M (дії відправника)
2.1. Розбиває ісходний текст повідомлення на блоки M1, M2,…, Mn
(Mi = 0, 1, 2,…, n)
2.2. Шифрує текст повідомлення у вигляді послідовності блоків:
Ci = Mi (mod n)
2.3. Відправляє одержувачеві криптограму : C1, C2,… Cn
2.4. Одержувач розшифровує криптограму за допомогою секретного ключа d по формулі: Mi = Ci(mod n)
3. Процедуру шифрування даних розглянемо на наступному прикладі (для простоти й зручності розрахунків у даному прикладі використані числа малої розрядності):
3.1. Вибираємо два простих числа p і q, p = 3, q = 11;
3.2. Визначаємо їхній добуток (модуль) n = p*q = 33;
3.3. Обчислюємо значення функції Эйлера (n) = (p-1)(q-1)
(n) = 2*10 = 20
3.4. Вибираємо випадковим образом відкритий ключ із урахуванням виконання умов
1 < e (n) і НОД (e, (n)) = 1, e = 7;
3.5. Обчислюємо значення секретного ключа d, що задовольняє умові
e*d 1 (mod (n)), 7*d 1 (mod 20); d = 3;
3.6. Відправляємо одержувачеві пари чисел (n = 33, e = 7);
Представляємо шифруєме повідомлення M як послідовність цілих чисел 312.
3.7. Розбиваємо вихідне повідомлення на блоки M1 = 3, M2 = 1, M3 = 2;
3.8. Шифруємо текст повідомлення, який представлен у вигляді послідовності блоків:
Ci = Mi (mod n)
З1=37(mod 33) = 2187 (mod 33) = 9,
З2=17(mod 33) = 1 (mod 33) = 1,
З3=27(mod 33) = 128 (mod 33) = 29.
3.9. Відправляємо криптограму C1 = 9, C2 = 1, C3 = 29.
3.10. Одержувач розшифровує криптограму за допомогою секретного ключа d по формулі: Мі=Сі(mod n)
М1=93(mod 33) = 729 (mod 33) = 3
М2=13(mod 33) = 1 (mod 33) = 1
М3=293(mod 33) = 24389 (mod 33) = 2.
Отримана послідовність чисел 312 являє собою вихідне повідомлення M.
Звіт повинен містити
1. Скласти блок-схему й програму алгоритму шифрування RSA.
2. Висновки: переваги й недоліки алгоритму шифрування RSA.
Лабораторна робота № 3.
Тема роботи: Дослідження електронного цифрового підпису (ЕЦП) RSA
Мета роботи: Дослідження структури алгоритму та методики практичної реалізації (ЕЦП) RSA.
Основні теоретичні відомості
Технологія застосування системи ЕЦП припускає наявність мережі абонентів, що обмінюються підписаними електронними документами. При обміні електронними документами по мережі значно знижуються витрати, пов'язані з їхньою обробкою, зберіганням і пошуком.
Одночасно при цьому виникає проблема, як аутентифікації автора електронного документа, так і самого документа, тобто встановлення дійсності автора й відсутності змін в отриманому електронному повідомленні.
В алгоритмах ЕЦП як і в асиметричних системах шифрування використаються односпрямовані функції. ЕЦП використається для аутентифікації текстів, переданих по телекомунікаційних каналах.
ЕЦП являє собою щодо невеликий обсяг додаткової цифрової інформації, переданої разом з підписаним текстом.
Концепція формування ЕЦП заснована на оборотності асиметричних шифрів, а також на взаємозв'язку вмісту повідомлення, самого підпису й пари ключів. Зміна хоча б одного із цих елементів унеможливить підтвердження дійсності підпису, що реалізується за допомогою асиметричних алгоритмів шифрування й хеш-функцій. Система ЕЦП включає дві процедури:
- формування цифрового підпису;
- перевірку цифрового підпису.
У процедурі формування підпису використовується секретний ключ відправника повідомлення, у процедурі перевірки підпису - відкритий ключ відправника.
Безпека системи RSA визначається обчислювальними труднощами розкладання на множники більших цілих чисел. Недоліком алгоритму цифрового підпису RSA є уразливість її до мультиплікативної атаки. Інакше кажучи, алгоритм ЕЦП RSA дозволяє хакеру без знання секретного ключа сформувати підписи під тими документами, у яких результат хеширування можна обчислити як добуток результату хеширування вже підписаних документів.
Хід роботи
Алгоритм електроннго цифрового підпису (ЕЦП) RSA
1. Визначення відкритого « e» і секретного « d» ключів (дії відправника)
1.1. Вибір двох взаємно простих більших чисел p і q
1.2. Визначення їхнього добутку: n = p q
1.3. Визначення функції Ейлера:
(n) = (p-1)(q-1)
1.4. Вибір секретного ключа d з урахуванням умов:
1 < d (n),
НОД(d, (n)) = 1
1.5. Визначення значення відкритого ключа e: e< n,
e d 1(mod (n))
2. Формування ЕЦП
2.1. Обчислення хеш-значення повідомлення M:
m = h (M)
2.2. Для одержання ЕЦП шифруємо хеш-значення m за допомогою секретного ключа d і відправляємо одержувачеві цифровий підпис S = md (mod n) і відкритий текст повідомлення M
3.Аутентифікація повідомлення - перевірка дійсності підпису
3.1. Розшифровка цифрового підпису S за допомогою відкритого ключа e і обчислення її хеш-значення m1 = Sе (mod n)
3.2. Обчислення хеш-значення прийнятого відкритого тексту M
m = h (M)
3.3. Порівняння хеш-значеннь m і m1, якщо m=m1, те цифровий підпис S – достовірний.
Завдання на виконання лабораторної роботи видається викладачем після проходження студентами співбесіди по основах аутентификаціи даних і концепції формування електронного цифрового підпису.
Порядок виконання роботи відповідає, наведеному вище алгоритму формування ЕЦП за схемою RSA.
Процедуру формування ЕЦП повідомлення M розглянемо на наступному простому прикладі:
4. Обчислення хеш-значення повідомлення M: m = h(M).
Хешируєме повідомлення M представимо як послідовність цілих чисел 312. Відповідно до наведеного вище алгоритму формування ЕЦП RSA вибираємо два взаємно простих числа p = 3, q = 11, обчислюємо значення n = p*q = 3*11 = 33, вибираємо значення секретного ключа d = 7 і обчислюємо значення відкритого ключа e = 3. Вектор ініціалізації Н0 обираєм рівним 6 (вибирається випадковим образом).
Хеш-код повідомлення M =312 формується в такий спосіб:
Н1=(М1+Н0)2(mod n)=(3+6)2 (mod 33)=81 (mod 33) = 15
Н2=(М2+Н1)2(mod n)=(1+15)2 (mod 33)=256 (mod 33) = 25
Н3=(М3+Н2)2(mod n)=(2+25)2 (mod 33)=729 (mod 33) = 3, m=3
4.1. Для одержання ЕЦП шифруємо хеш-значення m за допомогою секретного ключа d і відправляємо одержувачеві цифровий підпис S = md (mod n) і відкритий текст повідомлення M
S = 37 (mod 33) = 2187 (mod 33) = 9
4.2. Перевірка дійсності ЕЦП
Розшифровка S (тобто обчислення її хеш-значення m1) виконується за допомогою відкритого ключа e.
m1= S(mod n) = 93 (mod 33) = 729 (mod 33) = 3
4.3. Якщо порівняння хеш-значеннь m1 і m показує їхню рівність, тобто m =m1, то підпис достовірний.
Звіт повинен містити
1. Скласти блок-схему алгоритму й програму формування ЕЦП RSA.
2.Висновки переваги й недоліки ЕЦП RSA.
Лабораторна робота № 4.
Тема роботи: Дослідження криптоалгоритму шифрування Ель -Гамаля
Мета роботи: Дослідження структури алгоритму й методики практичної реалізації криптосистеми шифрування Ель Гамаля.
Основні теоретичні відомості
Схема шифрування Ель Гамаля може бути використана як для формування цифрових підписів, так і шифрування даних.
Безпека схеми Ель Гамаля обумовлена складністю обчислення дискретних логарифмів у кінцевому полі.
У цей час найбільш перспективними системами криптографічного захисту є системи з відкритим ключем. У таких системах для шифрування повідомлення використовується закритий ключ, а для розшифрування – відкритий. Відкритий ключ не є секретним і може бути опублікований для використання всіма користувачами системи, які зашифровують дані. Розшифровування даних за допомогою відкритого ключа неможливо.
Для розшифрування даних одержувач зашифрованої інформації використовує секретний ключ, що не може бути визначений з відкритого ключа.
При використанні алгоритму шифрування Ель Гамаля довжина шифротексту вдвічі більше довжини ісходного відкритого тексту М.
У реальних схемах шифрування необхідно використовувати як модуль n велике просте число, що має у двійковому поданні довжину 512…1024біт.
Слід відзначити, що формування кожного підпису по даному методу вимагає нового значення k, причому це значення повинне вибиратися випадковим чином. Якщо порушник розкриє значення k, повторно використане відправником, то може розкрити й секретний ключ x відправника.
Хід роботи
Завдання на виконання лабораторної роботи видається викладачем після проходження студентами співбесіди по основах криптографічного захисту інформації.
Порядок виконання роботи відповідає наведеної нижче криптосистемі шифрування даних за схемою Ель Гамаля.
Схема алгоритму шифрування даних Ель Гамаля
1. Визначення відкритого “y” і секретного “x” ключів
1.1. Вибір двох взаємно простих більших чисел p і q, q < p
1.2. Вибір значення секретного ключа x, x < p
1.3. Визначення значення відкритого ключа y з виразу:
y = qх (mod p)
2. Алгоритм шифрування повідомлення M
2.1. Вибір випадкового числа k, що задовольняє вимозі:
0 k < p-1 і НОД (k,p-1) = 1
2.2. Визначення значення a з виразу: a = qк(mod p)
2.3. Визначення значення b з виразу: b = yк M (mod p)
2.4. Криптограма C, що складається з a і b, відправляється одержувачеві
2.5. Одержувач розшифровує криптограму за допомогою виразу:
M aк= b (mod p)
3. Процедуру шифрування даних розглянемо на наступному прикладі ( для зручності розрахунків у даному прикладі використані числа малої розрядності):
3.1. Вибираємо два взаємно простих числа p = 11 і q = 2;
3.2. Вибираємо значення секретного ключа x, (x < p), x = 8;
3.3. Обчислюємо значення відкритого ключа y з виразу
y = qх (mod p) = 28 (mod 11) = 256 (mod 11) = 3
3.4. Вибираємо значення відкритого повідомлення M = 5;
3.5. Вибираємо випадкове число k = 9; НОД (9, 10) = 1;
3.6. Визначаємо значення a з виразу:
a = qк (mod p) = 29(mod 11) = 512 (mod 11) = 6;
3.7. Визначаємо значення b з виразу:
b = yк M (mod p) = 39*5 (mod 11) = 98415 (mod 11) = 9.
Таким чином, одержуємо зашифроване повідомлення як (a, b) = (6, 9) і відправляємо одержувачеві.
3.8. Одержувач розшифровує даний шифротекст, використовуючи секретний ключ x і вирішуючи наступне зрівняння:
M*a b (mod p) = 5*6 9 (mod 11) = 8398080 9 (mod 11)
Обчислене значення повідомлення M = 5 являє собою задане вихідне повідомлення.
Звіт повинен містити
1. Скласти блок-схему й програму алгоритму шифрування Ель Гамаля.
2. Висновки. переваги й недоліки алгоритму шифрування Ель Гамаля.
Лабораторна робота № 5.
Тема роботи: Дослідження електронного цифрового підпису (ЕЦП) Ель Гамаля
Мета роботи: Дослідження структури алгоритму й методики практичної реалізації (ЕЦП) Ель Гамаля.
Основні теоретичні відомості
Загальновизнані прийоми встановлення дійсності фізичного підпису під документом абсолютно не придатні при обробці документів в електронній формі. Рішенням даного питання є алгоритм, так званої, системи електронного підписування документів. Для гарантії дійсності авторства й цілісності інформаційного повідомлення необхідно зашифрувати його вміст. При використанні цифрового підпису інформація не шифрується й залишається доступної будь-якому користувачеві, що має до неї доступ.
При обміні електронними документами по мережі значно знижуються витрати, пов'язані з їхньою обробкою, зберіганням і пошуком.
Одночасно при цьому виникає проблема, як аутентифікації автора електронного документа, так і самого документа, тобто встановлення дійсності автора й відсутності змін в отриманому електронному повідомленні.
ЕЦП використається для аутентифікації текстів, переданих по телекомунікаційних каналах. Функціонально вона аналогічна звичайного рукописного підпису й має основні її властивості:
- засвідчує, що підписаний текст виходить від імені, що поставило підпис;
- не дає цій самій особі можливості відмовитися від зобов'язань, пов'язаних з підписаним текстом;
- гарантує цілісність підписаного тексту.
ЕЦП являє собою щодо невеликий обсяг додаткової цифрової інформації, переданої разом з підписаним текстом.
Концепція формування ЕЦП за схемою Ель Гамаля також заснований на оборотності асиметричних шифрів і на взаємозв'язку вмісту повідомлення, самого підпису й пари ключів.
Ідея алгоритму цифрового підпису Ель Гамаля заснований на тім, що для обґрунтування практичної неможливості фальсифікації цифрового підпису в ній використана більше складне обчислювальне завдання дискретного логарифмування, чим розкладання на множники великого цілого числа. Основною перевагою такої схеми цифрового підпису є можливість створення ЕЦП для великої кількості повідомлень із використанням одного секретного ключа.
Безпека схеми Ель Гамаля обумовлена складністю обчислення дискретних логарифмів у кінцевому полі.
Хід роботи
Завдання на виконання лабораторної роботи видається викладачем після проходження студентами співбесіди по основах аутентифікації даних і концепції формування електронного цифрового підпису за схемою Ель Гамаля.
Схема формування ЕЦП Ель Гамаля
1. Визначення відкритого “y” і секретного “x” ключів (дії відправника)
1.1. Вибір двох взаємно простих більших чисел p і q, q<p
1.2. Вибір значення секретного ключа x, x < p
1.3. Визначення значення відкритого ключа y з вираження:
y = qк (mod p)
2.Формування ЕЦП
2.1. Обчислення хеш-значення повідомлення M: m = h(M)
2.2. Вибір випадкового числа k,
0 < k < p-1 і НОД (k, p-1) = 1
2.3. Визначення значення a з виразу: a = qk (mod p)
2.4. Визначення значення b з виразу:
m = (xa + kb) (mod (p-1))
2.5. Цифровий підпис S = (a, b) і відкритий текст повідомлення M
відправляються одержувачеві.
3. Аутентифікація повідомлення – перевірка дійсності підпису (дії одержувача)
3.1. Обчислення хеш-значення прийнятого відкритого тексту повідомлення M m1 = h(M) b з виразу:
m = (xa + kb) (mod (p-1))
3.2. Підпис вважається достовірним, якщо a < p, m = m1 і виконується умова
yа ab (mod p) = qm1 (mod p)
4. У якості процедури формування ЕЦП розглянемо наступнийприклад (для зручності розрахунків у даному прикладі використані числа малої розрядності):
4.1. Вибираємо просте число p і два випадкових числа q і x (q і x < p),
p = 11, q = 2 і секретний ключ x = 8;
4.2. Обчислюємо значення відкритого ключа y
y = qx (mod p) = 28 ( mod 11) = 3;
4.3. Визначаємо хеш-значення вихідного повідомлення M, (312)
m = h (M), у даному прикладі приймаємо m = 3
4.4. Вибираємо випадкове ціле число k, взаємно просте з p-1.
Приймаємо k = 9, НОД ( 9, 10) = 1.
4.5. Для формування ЕЦП обчислюємо елементи підпису a і b
a = qk (mod p) = 29 (mod 11) = 6.
Елемент b визначаємо за допомогою розширеного алгоритму Евклида з наступного співвідношення:
m = (xa + kb) (mod (p-1)) ; 3= (8*6 + 9*b) (mod 10)) = 9*b = -45(mod 10)
b =5.
У даному прикладі цифровим підписом є пара чисел a = 6, b = 5.
Цифровий підпис S = (a,b) і відкритий текст повідомлення M відправляються одержувачеві. Для контролю цілісності повідомлення й вірогідності ЕЦП одержувач обчислює хеш-значення m1 прийнятого відкритого тексту повідомлення M. При цьому відправник і одержувач використовує одну й ту саму хеш-функцію h ().
Получив підписане повідомлення й відкритий ключ y = 3, одержувач для перевірки дійсності підпису перевіряє виконання умови:
ya ab (mod p) = qm1(mod p)
36 *65 (mod 11) = 23 (mod 11)
5668704(mod 11) = 8 (mod 11)
8(mod 11) = 8(mod 11),
тому якщо умова виконується, то прийняте одержувачем повідомлення вважається справжнім
Таким чином, процедура встановлення дійсності прийнятого повідомлення складається в перевірці відповідності аутентифікатора повідомлення.
Варто мати на увазі те, що кожний підпис за схемою Ель Гамаля вимагає нового значення k. Випадкове значення k повинне зберігатися в секреті.
Звіт повинен містити
1. Скласти блок-схему алгоритму й програму формування ЕЦП Ель Гамаля на будь-якій зручній для студента мові.
2. Висновки: переваги й недоліки ЕЦП Ель Гамаля.
Додатки.
Кодировка русского алфавита.
Буква
А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
Код
01
02
03
04
05
06
07
08
09
10
11
12
Буква
М
Н
О
П
Р
С
Т
У
Ф
Х
Ц
Ч
Код
13
14
15
16
17
18
19
20
21
22
23
24
Буква
Ш
Щ
Ъ
Ы
Ь
Э
Ю
Я
(пробел)
Код
25
26
27
28
29
30
31
32
33
Таблиця Виженера
Схема електронного цифрового підпису RSA
Література
Алферов А.П., Зубов А.Ю. и др. Основы криптографии: Учеб. пособие, 2-е и зд., испр. и доп. - М.: Гелиос АРВ, 2002.- 480 с., ил.
Завгородний В.И. Комплексная защита информации в компьютерных системах: Учебное пособие. - М.: Логос; 2001. -264 с : ил
Иванов М.А. Криптографические методы защиты информации в компьютерных системах и сетях. - М.: Кудиц-Образ, 2001.-368
Петраков А.В. Основы практической защиты информации. – М.: Радио и связь, 2001. – 368 с.
Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях/ Под ред. В.Ф. Шаньгина. -М.: Радио и связь, 2001.-376 с.: ил
Соколов А.В., Шаньгин В.Ф. Защита информации в распределённых корпоративных сетях и системах М.: ДМК Пресс, 2002.- 656 с.: ил.
Хамидуллин Р.Р., Бригаднов И.А., Морозов А.В. Методы и средства защиты компьютерной информации: Учеб. пособие. – СПб.: СЗТУ, 2005. – 178 с
Шнайер.Б Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. – М.: Издательство ТРИУМФ, 2002. – 816 с.: ил.