Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/7717
Title: Підсистема електронно-цифрового підпису документів на основі алгоритму RSA
Authors: Панаско, Олена Миколаївна
Голопотилюк, Андрй Володимирович
Keywords: електронний цифровий підпис;алгоритм з відкритим ключем;акредитовані центри сертифікації ключів;стандарт цифрового підпису;хеш-функція;підсистема електронно-цифрового підпису
Issue Date: 2022
Abstract: Практична реалізація підсистеми електронного цифрового підпису на базі алгоритму RSA
URI: https://er.chdtu.edu.ua/handle/ChSTU/7717
Appears in Collections:125 Кібербезпека та захист інформації (Безпека інформаційних і комунікаційних систем)

Files in This Item:
File Description SizeFormat 
Б_125_Голопотилюк_Панаско.pdf
  Restricted Access
3.1 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
 ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
ФАКУЛЬТЕТ ЕЛЕКТРОННИХ ТЕХНОЛОГІЙ І РОБОТОТЕХНІКИ КАФЕДРА 
РОБОТОТЕХНІЧНИХ І ТЕЛЕКОМУНІКАЦІЙНИХ СИСТЕМ ТА 
КІБЕРБЕЗПЕКИ 
 
                                                                     До захисту допущено 
                                                                     Завідувач кафедри РТСК 
                                                                     д.т.н., професор 
                                                                     _______________ В.В. Палагін 
                                                                     “_____” ________________ 2022 року 
 
 
 
Пояснювальна записка 
до дипломного проекту (роботи) бакалавра 
(освітньо-кваліфікаційний рівень) 
 
на тему «Підсистема електронно-цифрового підпису документів на основі 
алгоритму RSA» 
 
 
 
                                                              Виконав студент 4 курсу, групи БІ-81ск 
 
                                                              Спеціальності 125 - «Кібербезпека»,  
                                (шифр і назва спеціальності) 
                                                              освітньої програми «Безпека інформаційних 
                                                              і комунікаційних систем»                                 .                                    
                                                                                                                                        (назва освітньої програми). 
                                                               Голопотилюк А.В.                                             .  
                                                                                                                                            (прізвище та ініціали) 
                                                              Керівник Панаско О.М.                                  . 
                                                                                                                                            (прізвище та ініціали) 
                                                              Рецензент  Чепинога А.В.                              .  
                                                                                                                                            (прізвище та ініціали) 
                                                                                               
 
 
 
 
 
 
Черкаси 2022 
Форма № Н-9.01 
 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
(повне найменування вищого навчального закладу) 
Факультет електронних технологій і робототехніки _______________________________________  
(повна назва) 
Кафедра робототехнічних і телекомунікаційних систем та кібербезпеки  
(повна назва) 
Освітньо-кваліфікаційний рівень бакалавр   
(шифр і назва) 
Спеціальність  125 – Кібербезпека  
(шифр і  назва) 
Освітня програма  "Безпека інформаційних і комунікаційних систем "   
(шифр і  назва) 
 
ЗАТВЕРДЖУЮ 
Завідувач кафедри  Палагін В.В. 
       ____________  
“___” _____________ 20__ року 
 
З А В Д А Н Н Я 
НА ВИПУСКНУ РОБОТУ СТУДЕНТУ 
 
Голопотилюку Андрію Володимировичц 
 (прізвище, ім’я, по батькові) 
 
1. Тема проекту (роботи)   Підсистема електронно-цифрового підпису документів на основі 
алгоритму RSA _______________________________________________________________________  
керівник проекту (роботи) Панаско Олена Миколаївна, к.т.н., доцент_____ ___________________  
                                                                                     (прізвище, ім’я, по батькові, науковий ступінь, вчене звання) 
затверджені наказом Черкаського державного технологічного університету  
від «18»    лютого   2022 року № 58/04 
2. Строк подання студентом проекту (роботи) «___» червня 2022 р. 
3. Вихідні дані до проекту (роботи) визначений криптографічний алгоритм на основі якого 
створюється підсистема, сталі значення для роботи алгоритму 
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити) 
Вступ; розділ 1 Електронний цифровий підпис. Його застосування та правовий статус; розділ 2 
Аналіз актуальних криптографічних алгоритмів використовуваних для створення ЕЦП; розділ 3 
Практична реалізація підсистеми електронно-цифрового підпису документів на основі алгоритму 
RSA; Висновки;  список використаних джерел 
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів): мульти 
медійна презентація «Підсистема електронно-цифрового підпису документів на основі 
алгоритму RSA» 13 слайдів Плакат 1 – Титульний лист; плакат – 2 Мета та завдання роботи; 
плакат 3 Актуальність даної теми; плакат 4 Відомості про ЕЦП; плакат 5 Аналіз роботи 
алгоритму RSA; плакат 6 Схема роботи алгоритму; плакат 7 Порівняння RSA з існуючими 
аналогами; плакат 8 Вдосконалення окремих аспектів алгоритму; плакат 9 Висновок; плакат 10-
11 Охорона праці   
6. Консультанти розділів проекту (роботи)  
Підпис, дата 
Розділ Прізвище, ініціали та посада консультанта 
завдання видав завдання прийняв 
Охорона праці Кожем’якін О.С., старший викладач    
 кафедри безпеки життєдіяльності 
 
7. Дата видачі завдання __________________ 
 
КАЛЕНДАРНИЙ ПЛАН  
 
Строк виконання 
№ Назва етапів дипломного  
етапів проекту Примітка  
з/п проекту (роботи)  
(роботи) 
1. П ошук і аналіз інформації по заданій темі 19.02.2022-  
08.03.2022 
2. Н аписання І розділу Електронний цифровий 09.03.2022-  
підпис. Його застосування та правовий статус 24.03.2022 
3. Н аписання ІІ розділу роботи Аналіз актуальних 25.03.2022-  
криптографічних алгоритмів використовуваних для 10.04.2022 
створення ЕЦП 
4. Н аписання ІІІ розділу Практична реалізація 11.04.2022-  
підсистеми електронного цифрового підпису на 16.05.2022 
базі алгоритму RSA 
5. В иконання розділу охорони праці 17.05.2022-  
22.05.2022 
6. Н аписання вступу і висновків, складання списку 23.05.2022  
літератури 
7. О формлення пояснювальної записки до 31.05.2022  
8. П одання роботи в ДЕК 10.06.2022  
9. З ахист роботи в ДЕК 16.06.2022  
 
Студент _________________Голопотилюк А.В. 
    (підпис)                           (прізвище та ініціали) 
Керівник роботи   ____________Панаско О.М. 
                                                  (підпис)            (прізвище та ініціали) 
 
ЗМІСТ 
 
ВСТУП ........................................................................................................................ 6 
1. ЕЛЕКТРОННИЙ ЦИФРОВИЙ ПІДПИС. ЙОГО ЗАСТОСУВАННЯ ТА 
ПРАВОВИЙ СТАТУС ............................................................................................... 9 
1.1 Електронний цифровий підпис та його застосування ............................... 9 
1.2 Правовий статус ЕЦП в Україні ................................................................. 10 
1.3  Акредитовані центри сертифікації ключів .................................................. 11 
2. АНАЛІЗ АКТУАЛЬНИХ КРИПТОГРАФІЧНИХ АЛГОРИТМІВ 
ВИКОРИСТОВУВАНИХ ДЛЯ СТВОРЕННЯ ЕЦП ............................................ 14 
2.1 Процес створення ЕЦП ............................................................................... 14 
2.2 Хеш-функція ................................................................................................ 16 
2.3 Криптографічний алгоритм RSA ............................................................... 18 
2.3.1 Генерація ключів ....................................................................................... 18 
2.3.2 Шифрування .............................................................................................. 19 
2.3.3 Розшифрування ......................................................................................... 19 
2.4 Електронний цифровий підпис на базі RSA ............................................. 20 
2.5 Атаки на алгоритм RSA .............................................................................. 21 
2.6 Криптографічний алгоритм DSA ............................................................... 22 
2.6.1 Генерація ключів ....................................................................................... 23 
2.6.2 Створення підпису .................................................................................... 24 
2.6.3 Перевірка підпису ..................................................................................... 25 
2.7 Атака на алгоритм DSA .............................................................................. 25 
2.8 Порівняння алгоритмів RSA і DSA ............................................................... 26 
3. ПРАКТИЧНА РЕАЛІЗАЦІЯ ПІДСИСТЕМИ ЕЛЕКТРОННОГО 
ЦИФРОВОГО ПІДПИСУ НА БАЗІ АЛГОРИТМУ RSA ..................................... 28 
3.1 Опис середовища розробки, мови програмування та бібліотек. ................ 28 
 
 
 
ЧДТУ.22.20031.001.ПЗ 
Змн. Арк. № докум. Підпис Дат
 Розроб. Голопотилюк А.В. а 
Підсистема електронно- Літ. Арк. Акрушів 
 Перевір. Панаско О.М 
цифрового підпису документів 4 63 
 Реценз. Чепинога А.В. 
на основі алгоритму RSA 
 Н. Контр. Байрак А.В. ЧДТУ. БІ-81ск 
 
 Затверд. Палагін В.В. 
 
 
 
 
3.2 Аналіз алгоритму RSA та пошук оптимальних рішень для реалізації 
підсистеми .............................................................................................................. 31 
3.2.1 Аналіз існуючих алгоритмів перевірки чисел на простоту .................. 31 
3.3 Програмна реалізація підсистеми ................................................................. 36 
3.3.1 Реалізація генерації ключів ...................................................................... 36 
3.3.2 Реалізація шифрування повідомлення. ................................................... 38 
3.3.3 Створення ЕЦП ......................................................................................... 41 
4. ОХОРОНА ПРАЦІ ............................................................................................... 44 
4.1 Аналіз небезпек і шкідливостей, що виникають в приміщенні лабораторії 
у процесі проектування підсистеми ЕЦП ........................................................... 44 
4.2 Розробка системи кондиціонування повітря лабораторії ........................... 48 
ЗАГАЛЬНІ ВИСНОВКИ ......................................................................................... 56 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ................................................................ 57 
ДОДАТОК А ............................................................................................................. 58 
ДОДАТОК Б ............................................................................................................. 62 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 5 
Змін.  Лист № докум. Підпис Дата 
 
 
 
ВСТУП 
 
Забезпечення безпечного обміну інформацією в мережі є одним із 
найактуальніших завдань спеціалістів з кібербезпеки. Все більше сфер людської 
діяльності пов’язуються і активно використовують мережу інтернет для обміну 
інформацією разом з цим збільшується і кількість злочинців які з різних причин 
бажатимуть отримати доступ до цієї інформації, пошкодити її або ж 
розповсюджувати її від вашого імені. Це може мати різний вплив але у будь-
якому випадку він буде негативний. 
 За останні роки велика кількість різноманітних установ від приватних 
організацій до державних установ таких як навчальні заклади переходять на 
дистанційну форму роботи що змушує їх активніше ділитися різноманітною 
інформацією в мережі. Це можуть бути як не значні робочі листування так і 
розповсюдження важливих документів забезпечення цілісності яких є 
важливим завданням, для виконання якого використовується електронний 
цифровий підпис (ЕЦП). При відправці документа до нього додається ЕЦП 
створений на його основі який ідентифікує підписанта та дає змогу перевірити 
цілісність та відсутність модифікацій документа. Документ до якого додано 
ЕЦП може вважатися повноцінним електронним документом а самий підпис 
прирівняний до фізичного підпису людини.  
 Доступ зловмисників до документу та підпису дасть їм можливість 
модифікувати вміст документу та видавати себе за іншу особу тому для 
створення ЕЦП використовують алгоритми шифрування даних щоб 
унеможливити підробку підпису та маніпуляції з уже створеним підписом. 
Алгоритми які беруться за основу при створенні ЕЦП і сам алгоритм його 
створення постійно модифікуються і покращуються щоб нівелювати існуючі 
методи їх злому які теж покращуються. 
 Одним із алгоритмів на основі яких створюються ЕЦП є  
криптографічний алгоритм з відкритим ключем RSA. Даний алгоритм став 
першим алгоритмом такого класу який можна використовувати і для 
Лист 
ЧДТУ.22.20031.001.ПЗ 6 
Змін.  Лист № докум. Підпис Дата 
 
 
 
шифрування даних і для створення на їх основі електронного цифрового 
підпису. Алгоритм RSA було обрано як основу для даного дипломного проекту, 
основна мета якого є створення підсистеми електронного цифрового підпису та 
пошук оптимального способу створення ЕЦП. Для цього було досліджено різні 
аспекти роботи алгоритму, перевірено його на швидкодію та забезпечення 
унеможливлення модифікацій підпису до його підробки. Зокрема приділена 
велика увага генеруванню простих чисел на основі яких виконуються всі 
подальші розрахунки алгоритму, і розголошення яких дасть повне розуміння 
подальшої роботи алгоритму та можливість підробити ЕЦП.  
Актуальність - створення підсистеми електронного цифрового підпису 
обумовлена переходу багатьох установ і підприємств на дистанційну форму 
роботу що змушує їх більше обмінюватися робочими документами через 
мережу інтернет. 
 Об’єкт дослідження - технології захисту електронних документів на 
основі електронно-цифрового підпису. 
 Предмет дослідження – платформи, середовища, технології та алгоритми 
у сфера створення електронного цифрового підпису. 
 Новизна роботи полягає у вдосконаленні окремих аспектів алгоритму 
RSA для створення електронного цифрового підпису 
 Для досягнення мети слід вирішити наступні задачі: 
 Розглянути електронний цифровий підпис, його правовий статус в 
Україні; 
 Проаналізувати криптографічний алгоритм RSA; 
 Проаналізувати інші відомі алгоритми для створення ЕЦП та порівняти їх 
з RSA; 
 Провести пошук та аналіз технічної інформації потрібної для створення 
підсистеми; 
 Виділити основні аспекти в алгоритмі RSA та провести їх оптимізацію для 
кращої роботи алгоритму; 
Лист 
ЧДТУ.22.20031.001.ПЗ 7 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 Створити програмну реалізацію підсистеми електронного цифрового 
підпису на базі алгоритму RSA 
Структура та обсяг роботи. Робота складається зі вступу, 3 розділів, 
загального висновку та переліку використаних джерел. 
 Загальний обсяг роботи 67  сторінок, з них 54 сторінок основного тексту. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 8 
Змін.  Лист № докум. Підпис Дата 
 
 
 
РОЗДІЛ 1 
 
ЕЛЕКТРОННИЙ ЦИФРОВИЙ ПІДПИС. ЙОГО ЗАСТОСУВАННЯ ТА 
ПРАВОВИЙ СТАТУС 
 
1.1 Електронний цифровий підпис та його застосування 
 
Електронний цифровий підпис (ЕЦП) дозволяє підтвердити авторство 
електронного документа (будь то реальна особа або, наприклад, обліковий 
запис у крипто валютній системі). Підпис пов'язаний як з автором, так і з самим 
документом за допомогою криптографічних методів, і не може бути 
підроблений за допомогою звичайного копіювання. 
ЕЦП - це реквізит електронного документа, отриманий в результаті 
криптографічних перетворень над самим документом з використанням 
закритого ключа підпису і що дозволяє перевірити цілісність відправленого 
документа та зробити перевірку на його модифікацію. Також  дає змогу 
ідентифікувати особу відправника та перевірити чи надісланий файл дійсно 
належить особі відправнику. 
Використання ЕЦП дозволяє: 
 Зменшити витрату часу потрібного для оформлення та обмін 
документами; 
 Удосконалити методи обліку документів, їх розповсюдження та 
зберігання; 
 Гарантувати достовірність документації; 
 Підвищити конфіденційність документів чим зменшити ризик фінансових 
втрат; 
 Побудувати корпоративну систему обміну документами. 
Підробити ЕП неможливо - це вимагає величезної кількості часу для 
обчислень, які не можуть бути реалізовані за сучасного рівня алгоритмів та 
Лист 
ЧДТУ.22.20031.001.ПЗ 9 
Змін.  Лист № докум. Підпис Дата 
 
 
 
обчислювальної техніки за прийнятний час, тобто поки інформація є 
актуальною і містить якусь цінність. Додатковий захист від підробки 
забезпечується сертифікатом наданим центром сертифікації ключів. 
 Існує три види електронного цифрового підпису. 
 Прості підписи створюються за допомогою паролів та інших методів, які 
дозволяють ідентифікувати відправника документа, але не дозволяють 
перевірити його щодо наявності змін з моменту підписання. 
 Посилений некваліфікований підпис створений з використанням 
криптографічних алгоритмів і дає змогу  визначити не лише автора 
документа, але перевірити його на наявність змін. Для створення таких 
підписів може використовуватися сертифікат неакредитованого центру 
 Посилений кваліфікований підпис, підпис що має сертифікат від 
акредитованого центру сертифікації. 
Для створення електронних цифрових підписів використовуються різні 
алгоритми та засоби, до яких відносяться апаратні чи програмні засоби які 
реалізують наступні функції: 
 Створення електронного цифрового підпису на основі відправленого 
електронного документа з використанням закритого ключа; 
 Відправка, перевірка отримувачем цілісності документа та 
ідентифікація відправника; 
 Створення відкритих та закритих ключів використовуваних для 
створення ЕЦП. 
 
1.2 Правовий статус ЕЦП в Україні 
 
Створений на основі документу ЕЦП несе юридичну значимість. 
Використання ЕЦП та всі юридичні аспекти при його створенні регламентує 
Закон України «Про електронний цифровий підпис». Згідно нього ЕЦП може 
бути прирівняний до фізичного підпису людини якщо: 
Лист 
ЧДТУ.22.20031.001.ПЗ 10 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 ЕЦП було перевірено посиленим сертифікатом ключа який був дійсний 
на час його створення; 
 Електронний цифровий підпис був створений на основі криптостійких 
методів та алгоритмів створення цифрового підпису та підтверджений 
посиленим сертифікатом ключа; 
 Ключ зазначений у сертифікаті збігається з  особистим ключем 
підписувача; 
ЕЦП не можна вважати недійсним тільки через те що він не є фізичним а 
представленим у електронній формі. 
 Призначення ЕЦП полягає у використанні його фізичними і юридичними 
особами для підтвердження цілісності відправленої інформації та 
підтвердження особи відправника.  
 Підписант електронного документа має право: 
 Блокувати або скасовувати свій сертифікат; 
 Вимагати роз’яснень від центру сертифікації у разі їх не коректної роботи 
Обов’язки підписанта: 
 Утаємничити отриманий секретний ключ; 
 Співпрацювати з центром сертифікації для його коректної роботи та 
надавати всю потрібну їм інформацію; 
 Оновлювати надану інформацію у разі її зміни. 
 
1.3  Акредитовані центри сертифікації ключів 
 
АЦСК – акредитований орган який уповноважений та займається 
наданням послуг зі створення ЕЦП, та одночасно надає захищені носії для його 
використання. 
Акредитацією сертифікаційних центрів займається Центральний 
засвідчуваний орган. Вимоги до центрів сертифікації встановлюються 
Кабінетом Міністрів України. 
Лист 
ЧДТУ.22.20031.001.ПЗ 11 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Акредитовані центри зобов’язані виконувати усі поставлені їм вимоги та 
завдання, зобов’язані використовувати для надання послуг електронного 
цифрового підпису надійні засоби. 
АЦКС виконує наступні функції: 
 Надає замовникам ЕЦП для вільного його використовування; 
 Консультує та допомагає генерувати ключі; 
 Виконує обслуговування наданих ключів. 
До обслуговування відноситься розповсюдження, скасування, зберігання, 
блокування 
 На відміну від не акредитованих центрів сертифікацій акредитований має 
право обслуговувати виключно посилені сертифікати ключів. 
 Структура цифрового сертифікату електронного підпису: 
 серійний номер сертифіката; 
 об'єктний ідентифікатор алгоритму електронного підпису; 
 ім'я центра, який оформив сертифікат; 
 строк придатності; 
 ім'я власника сертифіката (ім'я користувача, якому належить сертифікат); 
 відкритий ключ власника сертифікатів; 
 об'єктні ідентифікатори алгоритмів, асоційованих з відкритими ключами 
власника сертифіката; 
Загалом в Україні існує двадцять акредитованих центрів сертифікації 
ключів: 
 АКЦІОНЕРНЕ ТОВАРИСТВО КОМЕРЦІЙНИЙ БАНК 
«ПРИВАТБАНК» 
 Військова частина 2428 
 Генеральний штаб Збройних Сил України 
 Генеральна прокуратура України 
 Державна казначейська служба України 
Лист 
ЧДТУ.22.20031.001.ПЗ 12 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 Державне підприємство «Енергоринок» 
 Державне підприємство «Національні інформаційні системи» 
 Державне підприємство «Український інститут інтелектуальної 
власності» 
 Державне підприємство «Українські спеціальні системи» 
 Інформаційно-довідковий департамент ДФС 
 Міністерство внутрішніх справ України 
 Національний банк України 
 Публічне акціонерне товариство «Державний ощадний банк України» 
 Публічне акціонерне товариство «Національний депозитарій України» 
 Акціонерне товариство «УкрСиббанк» 
 Товариство з обмеженою відповідальністю «Алтерсайн» 
 Товариство з обмеженою відповідальністю «Арт-мастер» 
 Товариство з обмеженою відповідальністю «Інтер-Метл» 
 Товариство з обмеженою відповідальністю "Центр сертифікації ключів 
«Україна» 
 Філія «Головний інформаційно-обчислювальний центр» публічного 
акціонерного товариства «Українська залізниця» 
 
 
 
 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 13 
Змін.  Лист № докум. Підпис Дата 
 
 
 
РОЗДІЛ 2 
 
АНАЛІЗ АКТУАЛЬНИХ КРИПТОГРАФІЧНИХ АЛГОРИТМІВ 
ВИКОРИСТОВУВАНИХ ДЛЯ СТВОРЕННЯ ЕЦП 
 
2.1 Процес створення ЕЦП 
 
Зазвичай для процесу цифрового підпису використовуються три алгоритми: 
 Генерація ключа – цей алгоритм надає приватний ключ разом із 
відповідним відкритим ключем. 
 Підпис – цей алгоритм створює підпис після отримання приватного 
ключа та повідомлення, яке підписується. 
 Перевірка – цей алгоритм перевіряє автентичність повідомлення, 
перевіряючи його разом із підписом та відкритим ключем.   
Процес цифрового підпису вимагає, щоб відповідний відкритий ключ міг 
потім аутентифікувати підпис, створений як фіксованим повідомленням, так і 
закритим ключем. Використовуючи ці криптографічні алгоритми, підпис 
користувача неможливо відтворити без доступу до його приватного 
ключа. Захищений канал зазвичай не потрібен. Застосовуючи методи 
асиметричної криптографії, процес цифрового підпису запобігає кільком 
поширеним атакам, коли зловмисник намагається отримати доступ за 
допомогою різноманітних методів атаки.  
Найбільш релевантними стандартами цифрових підписів щодо розміру 
внутрішніх ринків є Стандарт цифрового підпису 
(DSS)  Національного інституту стандартів і технологій (NIST) 
та Регламент eIDAS  , прийнятий Європейським парламентом .OpenPGP — це 
непатентований протокол для шифрування електронної пошти за допомогою 
криптографії з відкритим ключем . Він підтримується PGP і GnuPG , а також 
Лист 
ЧДТУ.22.20031.001.ПЗ 14 
Змін.  Лист № докум. Підпис Дата 
 
 
 
деякими стандартами S/MIME IETF і перетворився на найпопулярніший 
стандарт шифрування електронної пошти у світі.  
 При проходженні процедури підписання документа його початкове 
значення не змінюється а до нього додається блок даних який являє собою 
електронний цифровий підпис. Цю процедуру можна розділити на два кроки. 
 Першим кроком є створення хеш-суми на основі документа. Хеш-сума 
повинна мати фіксовану довжину яка не залежить від інформації на основі якої 
вона була створена та має унеможливлювати відновлення повідомлення. Тому 
якщо інформацію на основі якої була створена хеш-функція модифікується то 
новостворена хеш-функція не буде відповідати попередній. 
 Другий крок полягає у шифруванні отриманої хеш-функції та створені на 
її основі ЕЦП. При цьому розшифрувати ЕЦП не можливо без використання 
початкового ключа.  
 Таким чином генерація хеш-функції на основі документа вкаже на його 
модифікацію та захистить його від використання сторонніми особами. 
  
 
Рис 2.1 – Схема підписання електронного документа 
Лист 
ЧДТУ.22.20031.001.ПЗ 15 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Електронний підпис також може стосуватися електронних форм обробки 
або підтвердження особи за допомогою біометричних «підписів» або біологічно 
ідентифікуючих якостей особи. У таких підписах використовується підхід до 
додавання якогось біометричного вимірювання до документа як 
доказу. Біометричні підписи включають відбитки пальців, геометрію 
рук (довжина пальців і розмір долоні), малюнки райдужної оболонки 
ока , характеристики голосу , малюнки сітківки або будь-які інші властивості 
людського тіла. Все це збирається за допомогою якихось електронних датчиків. 
Біометричні вимірювання цього типу марні як паролі , оскільки їх не 
можна змінити, якщо їх зламати. Однак вони можуть бути корисними, за 
винятком того, що на сьогоднішній день їх так легко обдурили, що вони не 
можуть мати жодної впевненості в тому, що особа, яка нібито підписала 
документ, насправді була особою, яка це підписала. Наприклад, відтворення 
електронного сигналу, створеного та поданого в комп’ютерну систему, 
відповідальну за «проставлення» підпису на документі, можна отримати за 
допомогою техніки прослуховування телефонних розмов. 
 
2.2 Хеш-функція 
 
Хеш -функція — це будь-яка функція , яка може використовуватися для 
відображення даних довільного розміру у значення фіксованого 
розміру.  Значення, які повертає хеш-функція, називаються хеш-значеннями. 
Хороша хеш-функція повинна якомога рівномірніше відображати очікувані 
вхідні дані в діапазоні вихідних даних. Тобто кожне хеш-значення у вихідному 
діапазоні має бути згенеровано з приблизно однаковою ймовірністю . Причина 
цієї останньої вимоги полягає в тому, що вартість методів, заснованих на 
хешуванні, різко зростає у міру збільшення кількості колізій — пар вхідних 
даних, які відображаються на однакове значення хешування. Якщо деякі хеш-
значення зустрічаються з більшою ймовірністю, ніж інші, більшій частині 
Лист 
ЧДТУ.22.20031.001.ПЗ 16 
Змін.  Лист № докум. Підпис Дата 
 
 
 
операцій пошуку доведеться шукати в більшому наборі суперечливих записів 
таблиці. 
На практиці хеш-функції використовують для таких цілей:  
 для прискорення пошуку даних в БД;  
 для перевірки цілісності та автентичності повідомлень;  
 для створення стисненого образу, що застосовується в процедурах ЕЦП;  
 для захисту пароля в процедурах автентифікації. 
Загальні принципи побудови хеш-функції: 
 Дані, що вводяться (повідомлення, файл і т.д.), розглядаються як 
послідовність п - бітових блоків.  
 Значення функції хешування одержується шляхом оброблення 
послідовно блок за блоком.  
 Усі проміжні та остаточне значення функції хешування мають п-бітове 
представлення. 
Однією із найпростіших функцій хешування є зв’язування блоків бітів 
операцією виключного АБО (XOR). Повідомлення на основі якого створюється 
хеш-функція розбивається на блоки даних по 8 біт, вибирається початкове 
значення вигляду 00000000 і виконується операція XOR між початковим 
значенням та першим блоком даних, результат операції зберігається і 
використовується для операції XOR між ним і другим блоком даних. Дана 
операція проходить з усіма блоками даних повідомлення, фінальні 8 біт і є 
отриманою хеш-функцією.  
 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 17 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
 Початкове 
Блок 1 Блок 2 Блок 3 
бітове значення 
 
 
+ + + 
 
 
Отримане бітове Отримане бітове Отримане бітове 
 значення значення значення 
   
Перехід на 
 Перехід на наступний крок Результат хеш-
наступний крок функції 
 
 
Рис 2.2 – Схема створення хеш-функції 
 
2.3 Криптографічний алгоритм RSA 
 
RSA – асиметричний криптографічний алгоритм з відкритим ключем. Це 
перший алгоритм, який можна використовувати як для підписання , так і для 
шифрування, і був одним із перших великих досягнень у криптографії з 
відкритим ключем. RSA широко використовується в протоколах електронної 
комерції , і вважається безпечним, з огляду на досить довгі ключі та 
використання найновіших реалізацій. 
Алгоритм RSA складається з чотирьох кроків: генерація ключів, 
шифрування, передача повідомлення і ключа, розшифрування. 
 
2.3.1 Генерація ключів 
 RSA включає два ключі: закритий і відкритий. Відкритий може бути 
відомий кожному і застосовуватися для шифрування повідомлень. 
Повідомлення, зашифровані відкритим ключем, можна розшифрувати тільки з 
використанням приватного ключа. Ключі для алгоритму RSA генеруються 
таким чином: 
Лист 
ЧДТУ.22.20031.001.ПЗ 18 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 1. Вибрати два простих числа p i q. З міркувань безпеки цілі числа мають 
бути випадковими і мати однакову бітову довжину. Прості числа можна 
ефективно знайти за допомогою тесту на простоту. 
 2. Обчислити n=pq. N використовується як модуль для відкритих і 
закритих ключів 
 3. Обчислити f(n)=(p-1)(q-1). Функція Ейлера. 
 4. Вибрати таке ціле число е, щоб 1<e<f(n) та e i f(n) були взаємно 
простими. 
е використовується як експонента відкритого ключа. Наявність не великої 
величини даного числа призводить до більш ефективного шифрування. Про те 
було визначено що деякі невеликі значення наприклад е=3 у деяких 
налаштуваннях менш безпечні. 
 5. Визначити �� = ��−1(mod f(n)). Дане число повинне задовольняти 
конгруенцію de=1 (mod f(n)). 
 Відкритий ключ буде складатися з модуля n та загальнодоступного числа 
e. Закритий ключ складається з модуля n та приватної експоненти d. 
 
 2.3.2 Шифрування 
 Абонент А передає свій відкритий ключ (n,e) абоненту Б і зберігає 
секретний ключ у таємниці. Абонент Б хоче надіслати повідомлення M 
абоненту А. Для цього він перетворює повідомлення M на ціле число таке щоб 
виконувалася нерівність 0<m<n. Повідомлення перетворюється в число за 
допомогою хеш-функції. Потім абонент обчислює зашифрований текст С. с =
���������� �� 
 
 2.3.3 Розшифрування 
Абонент А отримує повідомлення та хоче відновити значення М. Це 
можна зробити використовуючи експоненту свого секретного ключа d за 
допомогою наступного обчислення �� = ���������� �� 
Лист 
ЧДТУ.22.20031.001.ПЗ 19 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
                     Абонент Б                                                                    Абонент А 
Отримує відкритий ключ абонента А                                         Генерує ключі 
          Шифрує повідомлення                                       Відправляє відкритий ключ абоненту Б 
                                                                                                Розшифровує отримане 
повідомлення   
 
   Відправка ключів 
 
 
 с = ���������� �� �� = ����
 ������ �� 
 
 
    Відправка шифрованого повідомлення 
          Рис 2.3 – Схема шифрування і обміну повідомленнями  
 
2.4 Електронний цифровий підпис на базі RSA 
 
RSA часто використовується для створення електронного цифрового 
підпису. При реалізації алгоритму генерацію ключів залишається ідентичною зі 
шифруванням даних. Далі на основі документу створюється хеш-функція на 
основі якої проводяться обрахунки, це дозволяє напряму прив’язати підпис до 
документу і в подальшому ефективно перевіряти його на відсутність 
модифікації. 
При створенні цифрового підпису ключі генерує абонент який буду 
підписувати свій документ. На основі свого секретного ключа (d, n) абонент 
проводить обрахунок ключа S за формулою �� = ���������� �� після чого відправляє 
отримувачу документ, згенерований цифровий підпис і відкритий ключі (e, n). 
Після отримання повідомлення отримувач перевіряє цілісність документу M 
шляхом перевірки рівності �� = ���������� ��. Якщо рівність виконується то над 
Лист 
ЧДТУ.22.20031.001.ПЗ 20 
Змін.  Лист № докум. Підпис Дата 
 
 
 
відправленим документом не були проведені модифікації і відправник дійсьно 
є власником відправленого документа. 
   
                Абонент А                                                                  Абонент Б 
             Генерує ключі                                                      Отримує ЕЦП і ключі 
              Створює ЕЦП                                                        Виконує перевірку 
 
 
 
 �� = ���������� �� �� = ���������� �� 
 
 
Рис 2.3 – Схема створення і відправлення ЕЦП 
 
2.5 Атаки на алгоритм RSA 
 
          1. При шифруванні з низькими показниками шифрування (наприклад e=3) 
і малими значеннями m результат ����є строго меншим за модуль n У цьому 
випадку зашифровані тексти можна легко розшифрувати, взявши e-тий корінь 
зашифрованого тексту над цілими числами. 
          2. Якщо одне й те саме повідомлення відкритого тексту надсилається 
кільком одержувачам у зашифрованому вигляді, а одержувачі мають однаковий 
показник е але різні p q i n тоді легко розшифрувати оригінальне текстове 
повідомлення за допомогою китайської теореми залишку . Йохан Хостад 
помітив, що ця атака можлива, навіть якщо відкриті тексти не рівні, але 
зловмисник знає лінійне співвідношення між ними. Пізніше Дон Копперсміт 
удосконалив цю атаку . 
          3. Оскільки шифрування RSA є детермінованим алгоритмом шифрування, 
тобто не має випадкового компонента, зловмисник може успішно запустити 
Лист 
ЧДТУ.22.20031.001.ПЗ 21 
Змін.  Лист № докум. Підпис Дата 
 
 
 
вибрану атаку відкритого тексту проти криптосистеми, зашифрувавши ймовірні 
відкриті тексти під відкритим ключем і перевіривши, чи вони рівні 
шифротексту. Криптосистема називається семантично захищеною, якщо 
зловмисник не може відрізнити два шифрування один від одного, навіть якщо 
зловмисник знає (або вибрав) відповідний відкритий текст.  
          4. RSA має властивість, що добуток двох зашифрованих текстів дорівнює 
шифруванню продукту відповідних відкритих текстів. Тобто ����
1  ����
2=�� ��
1��2  
(mod n) через цю мультиплікаційну властивість можлива атака вибраного 
зашифрованого тексту . Наприклад, зловмисник, який хоче знати 
дешифрування шифротексту �� = ����  (������ ��) може попросити власника 
приватного ключа розшифрувати непідозрілий шифротекст �� = ������  (������ ��) 
для певного значення r обраного зловмисником. Через мультиплікаційну 
властивість c є шифрування mr (mod n). Отже, якщо зловмиснику вдасться 
атакувати, він дізнається, mr (mod n) з чого він може отримати повідомлення m 
, помноживши mr його на модульну величину, обернену за r модулем n. 
 
2.6 Криптографічний алгоритм DSA 
 
Алгоритм цифрового підпису ( DSA ) — це федеральний стандарт 
обробки інформації для цифрових підписів , заснований на математичній 
концепції модульного піднесення до степеня і задачі дискретного 
логарифма . DSA є варіантом схем підпису Шнорра та ЕльГамала .   
DSA працює в рамках криптосистем з відкритим ключем і ґрунтується на 
алгебраїчних властивостях модульного піднесення до степеня разом 
із проблемою дискретного логарифма , яка вважається обчислювально 
нерозв’язною. Алгоритм використовує пару ключів, відкритий та 
закритий. Закритий ключ використовується для створення цифрового підпису 
на основі документу, отриманий  підпис перевіряється за допомогою 
відправленого разом із документом та підписом відкритого ключа 
Лист 
ЧДТУ.22.20031.001.ПЗ 22 
Змін.  Лист № докум. Підпис Дата 
 
 
 
підписувача. ЕЦП дає змогу перевірити особу відправника і дізнатися чи дійсно 
вона є власником документу, забезпечує цілісність (отримувач має змогу 
перевірити, чи повідомлення не було змінено з моменту його підписання) 
і невідмовність. 
Алгоритм DSA включає чотири операції: генерацію ключів (який створює 
пару ключів), розподіл ключів, підписання та перевірку підпису. 
 
2.6.1 Генерація ключів 
          Генерація ключа складається з двох етапів. Перший етап - це 
вибір параметрів алгоритму, які можуть бути спільними між різними 
користувачами системи, тоді як другий етап обчислює одну пару ключів для 
одного користувача. 
Генерація параметрів 
 Виберіть затверджену криптографічну хеш-функцію Н  
 Виберіть довжину ключа L. Оригінальний DSS обмежений L має бути 
кратним 64 між 512 і 1024 включно. NIST 800-57 рекомендує довжину 
2048 (або 3072) для ключів із терміном служби безпеки, що перевищує 
2010 (або 2030).   
 Виберіть довжину модуля N такий, що N<L і N<H. FIPS 186-4 вказує L і 
N мають мати одне зі значень: (1024, 160), (2048, 224), (2048, 256) або 
(3072, 256).   
 Виберіть N -розрядний простий q. 
 Виберіть L -розрядний простий p такий, що p-1 є кратним q. 
 Виберіть ціле число h випадково від {2…р-2}. 
 Обчислити �� = ℎ(��−1)/��  ������ ��. У рідкісному випадку що g=1 спробуйте 
ще раз з іншим h. Зазвичай використовується значення h=2. Це модульне 
піднесення до степені можна ефективно обчислити, навіть якщо значення 
є великими. 
Лист 
ЧДТУ.22.20031.001.ПЗ 23 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Параметри алгоритму (p,q,g). Вони можуть використовуватися різними 
користувачами системи. 
 Ключі для користувача 
 Враховуючи набір параметрів, на другому етапі обчислюється пара 
ключів для одного користувача: 
 Виберіть ціле число x випадково від {1…q-1}. 
 Обчислити �� = ���� ������ ��. 
x є закритим ключем a y є відкритим ключем. 
 Розповсюдження ключів 
 Підписант повинен опублікувати відкритий ключ y. Тобто вони повинні 
надіслати ключ до одержувача через надійний, але не обов’язково секретний 
канал зв’язку. Підписант повинен зберігати секретний ключ x. 
 
2.6.2 Створення підпису 
Повідомлення M підписується наступним чином: 
 Виберіть ціле число k в діапазоні {1…q-1} 
 Обчисліть �� = (���� ������ ��) ������ ��. У малоймовірному випадку коли r=0, 
почніть заново з іншого випадкового значення k. 
 Обчислити �� = (��−1(��(��) + ����)) ������ ��. У малоймовірному випадку 
коли s=0 почніть заново з іншого випадкового значення k.  
Підпис являє собою значення (r,s). 
Розрахунок k і r означає створення нового ключа для кожного 
повідомлення. Модульне піднесення до степені в обчислювальній  техніці є 
найважчою частиною операції підписання, але вона може бути обчислена до 
того, як повідомлення стане відомим. Обчислення модульної оберненої 
��−1 ������ �� є другою найважчою частиною, і вона також може бути обчислена 
до того, як повідомлення стане відомим. Його можна обчислити за 
допомогою розширеного алгоритму Евкліда або за допомогою як ����−2 ������ ��. 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 24 
Змін.  Лист № докум. Підпис Дата 
 
 
 
2.6.3 Перевірка підпису 
Перевірка підпису проходить наступним чином: 
 Перевірте рівність 0<r<q  i 0<s<q 
 Обчислити �� = ��−1 ������ ��. 
 Обчислити u1=H(m)*w mod q. 
 Обчислити u2=r*w mod q. 
 Обчислити �� = (����1����2 ������ ��) ������ ��. 
 Підпис дійсний тоді і тільки тоді коли u=r. 
 
 Створення підпису Перевірка підпису 
                  Повідомлення                                             Отримане повідомлення 
 
 Створення хеш- Створення хеш-
 функції функції 
 
                         Хеш-функція                                                     Хеш-функція  
 
 
 Алгоритм Алгоритм 
DSA DSA 
       Ключ r                                    ЕЦП                      ЕЦП           П  е  р  е в  і р  к  а            Відкритий ключ 
 
                                                                    Так Ні 
 
  Рис 2.3 – Схема роботи алгоритму DSA 
 
2.7 Атака на алгоритм DSA 
 
          Для кожного нового підпису з допомогою DSA генерується нове 
значення k а після створення підпису має бути знищене. Якщо ці умови не 
виконати то зловмисник може вирахувати секретний ключ. 
Лист 
ЧДТУ.22.20031.001.ПЗ 25 
Змін.  Лист № докум. Підпис Дата 
 
 
 
          Наприклад зловмисник дізнався значення k який використовувалося при 
створенні ЕЦП. Противник знає наступне: 
 �� = (���� ������ ��) ������ �� 
 �� = (��−1(��(��) + ����)) ������ �� 
 k, m 
За рахунок цього він може вирахувати наступне: 
 �� − ��−1 ∗ ��(��) = ��−1���� ������ �� 
 так як q – просте, то можна знайти (��−1 ∗ ��)−1 ������ ��  
 і �� = (�� − ��−1 ∗ ��(��)) ∗ (��−1 ∗ ��)−1 ������ �� 
 
2.8 Порівняння алгоритмів RSA і DSA 
 
Таблиця 2.1 Порівняльний аналіз алгоритмів 
 
RSA DSA 
Криптографічний алгоритм Алгоритм цифрового підпису 
Використовується для безпечної Використовується для створення та 
передачі даних та створення ЕЦП перевірки цифрового підпису 
Розроблений у 1977 році Розроблений у 1991 році 
Розробники Рон Рівест, Аді Шамір і Розроблений Національним 
Леонард Адлеман інститутом стандартів і технологій 
NIST 
Використовує математичну Використовує модульне піднесення 
концепцію розкладання на множники до степені та дискретний логарифм 
добутку двох великих простих чисел 
Повільніший при генерації ключів Швидший при генерації ключів 
Швидкий у шифруванні Повільніший у шифруванні 
Повільний у розшифруванні Швидший у розшифруванні 
Лист 
ЧДТУ.22.20031.001.ПЗ 26 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Кожен із алгоритмів має як свої переваги так і свої недоліки. Перевагою 
алгоритму DSA є його сучасність і вузько направленість на створення 
електронного цифрового підпису що дозволяє йому швидше виконувати деякі 
операції при генерації ЕЦП. Перевагою RSA є його підвищений функціонал і 
можливість не лише створювати електронний цифровий підпис, швидкість і 
якість створення якого практично не поступається DSA а і шифрувати 
повідомлення перед відправкою що робить безпечнішим повний цикл від 
створення ЕЦП до його перевірки отримувачем. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 27 
Змін.  Лист № докум. Підпис Дата 
 
 
 
РОЗДІЛ 3 
 
ПРАКТИЧНА РЕАЛІЗАЦІЯ ПІДСИСТЕМИ ЕЛЕКТРОННОГО 
ЦИФРОВОГО ПІДПИСУ НА БАЗІ АЛГОРИТМУ RSA 
 
 3.1 Опис середовища розробки, мови програмування та бібліотек. 
 
VS Code - це безкоштовний редактор коду, створений Microsoft для 
Windows, iOSта Linux. це редактор вихідного коду, створений Microsoft для 
Windows , Linux і macOS . Функції включають підтримку налагодження, 
виділення синтаксису , інтелектуальне завершення коду , фрагменти , 
рефакторинг коду та вбудований Git .Користувачі можуть змінювати тему , 
комбінації клавіш , параметри та встановлювати розширення , які додають 
додаткові функції.  
Visual Studio Code — це редактор вихідного коду, який можна 
використовувати з різними мовами програмування, включаючи Java , JavaScript 
, Go , Node.js , Python , C++ і Fortran . При розробці підсистеми я використовував 
мову програмування JavaScript. Із коробки Visual Studio Code включає базову 
підтримку більшості поширених мов програмування. Ця базова підтримка 
включає підсвічування синтаксису , відповідність дужок , згортання коду та 
фрагменти, що налаштовуються.  
Visual Studio Code також постачається з IntelliSense для JavaScript. Замість 
системи проекту вона дозволяє користувачам відкривати один або кілька 
каталогів, які потім можна зберегти в робочих просторах для подальшого 
повторного використання. Це дозволяє йому працювати як незалежний від мови 
редактор коду для будь-якої мови. Він підтримує багато мов програмування та 
набір функцій, які відрізняються для кожної мови. Visual Studio Code можна 
розширити за допомогою розширень , доступних через центральне сховище. Це 
включає доповнення до редактора та підтримку мови. Примітною особливістю 
Лист 
ЧДТУ.22.20031.001.ПЗ 28 
Змін.  Лист № докум. Підпис Дата 
 
 
 
є можливість створювати розширення, які додають підтримку нових мов , тем і 
налагоджувачів , виконувати статичний аналіз коду та додавати лінтери коду за 
допомогою протоколу мовного сервера.   
VS Code зарекомендував себе як надійний, швидкий та простий у 
користуванні редактор коду. Він гарно працює з мовою JavaScript яка була 
обрана для розробки підсистеми. Дозволяє легко і комфортно підключати нові 
бібліотеки та працювати з ними. Також дає змогу встановлювати розширення 
які значно полегшують і прискорюють роботу з редактором. 
JavaScript - динамічна об’єктно орієнтована мова програмування. У 
більшості випадків використовується у веб програмуванні для створення веб 
сторінок та гарно підходить для створення сценаріїв веб сторінок що забезпечує 
взаємодію клієнта з сервером. Але крім цих завдань також використовується у 
створенні багатьох інших завдань та має обширний набір функцій для 
виконання будь-яких завдань. Завдяки гарній роботі з мережею та серверами 
часто використовується для шифрування повідомлень у мережі та для створення 
електронних цифрових підписів. JS є об’єктно орієнтованою мовою 
програмування але відрізняється від традиційних мов ООП завдяки концепції 
прототипів та частому використанні функцій що є притаманним для 
функціональних мов програмування. Функції як об'єкти першого класу, об'єкти 
як списки, каррінг, анонімні функції, замикання (closures) - що додає мові 
додаткову гнучкість. 
Синтаксис JS подібний до синтаксису C але в порівнянні з мовою С 
містить багато відмінностей: 
  об'єкти, з можливістю інтроспекції і динамічної зміни типу через 
механізм прототипів 
 об’єктами першого класу являються функції 
 обробка винятків 
 автоматичне визначення типів даних 
 анонімні та стрілочні функції 
Лист 
ЧДТУ.22.20031.001.ПЗ 29 
Змін.  Лист № докум. Підпис Дата 
 
 
 
JavaScript має кілька десятків вбудованих об’єктів які поділяються на групи: 
 Object, Function, Boolean, Symbol 
 Error 
 Number, BigInt, Math Date 
 String, RegExp 
 Array 
 Map, Set, WeakMap, WeakSet 
 ArrayBuffer, Atomics, DataView, JSON 
 Promise, Generator 
 Reflect, Proxy 
В ході створення підсистеми електронного цифрового підпису на базі 
алгоритму RSA мною було використано бібліотеку big-integer. Ця бібліотека 
дозволила розширити стандартні можливості мови програмування JavaScript та 
дозволила працювати з великими числами що є основним в алгоритмі RSA. 
Також вона дозволила проводити арифметичні операції такі як піднесення до 
степені та модуль. 
В загальному big-integer це бібліотека цілих чисел довільної довжини для 
Javascript, що дозволяє виконувати арифметичні операції над цілими числами 
необмеженого розміру, незважаючи на обмеження пам’яті та часу. 
Встановлення бібліотеки реалізовується однією стрічкою коду npm install big-
integer. Бібліотека містить безліч методів деякі з них: 
 abs() Повертає абсолютне значення; 
 and(number) виконує побітову операцію додавання; 
 bitLength() повертає бітову довжину числа; 
 pow(number) виконує піднесення до степені; 
 mod(number) виконує ділення та повертає залишок, нехтуючи часткою 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 30 
Змін.  Лист № докум. Підпис Дата 
 
 
 
3.2 Аналіз алгоритму RSA та пошук оптимальних рішень для 
реалізації підсистеми 
 
 Алгоритм RSA є алгоритмом з відкритим ключем який є 
загальнодоступним та до створення якого має буле особлива увага. Значну 
частину роботи алгоритму якраз і займає створення секретного та відкритого 
ключа основою якого є створення початкових простих чисел та створення 
експоненти відкритого ключа яка є взаємно простою зі значенням f(n) функції 
Ейлера. З цього випливає що перевірка числа на простоту є особливо важливою 
і має проходити швидко щоб позитивно впливати на загальну швидкодію 
алгоритму та видавати коректний результат. В результаті мною було 
проаналізована низка існуючих алгоритмів перевірки числа на простоту на 
вибрати один оптимальний як по швидкодії так і по коректності роботи. 
  
 3.2.1 Аналіз існуючих алгоритмів перевірки чисел на простоту 
Алгоритм перебору. Суть цього алгоритму полягає у переборі всіх чисел 
від двох і n-1 де n число простота якого перевіряється. На кожному кроці даного 
алгоритму відбувається ділення числа n на число отримане методом перебору у 
разі якщо ділення відбулося без остачі то число не є простим, якщо ж 
залишилася остача до алгоритм продовжує роботу і у разі повного проходження 
алгоритму та отримання на кожному кроці остачі від ділення число може 
вважатися простим. 
 
 
    Рис 3.1 – Програмна  реалізація алгоритму перебору 
Лист 
ЧДТУ.22.20031.001.ПЗ 31 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 Даний метод є достатньо ефективним проте витрачає багато часу на 
обрахунок через перебір всіх варіантів, враховуючи те що число яке 
перевіряється може бути буть якого розміру. 
 Наступним метод Решето Ератосфена, це метод за допомогою якого 
можна знайти всі прості числа з діапазону від 2 до n. Логіка роботи алгоритму 
полякає в наступному, першим простим числом є число 2. Далі викреслюємо всі 
числа кратні двом та більші за нього, наступне число яке залишиться це число 
3 воно є другим простим числом. З числом 3 проводиться такі ж дії, 
закреслюються всі числа кратні трьом та більші за нього після чого третім 
простим виявиться число 5. 
 
 Рис 3.2 – Результат роботи алгоритму в діапазоні від 2 до 120 
 
 Даний алгоритм з великою точністю визначає простоту числа але так як і 
попередній алгоритм витрачає забагато часу на роботу перебираючи всі числа з 
діапазону. В разі використання його для алгоритму RSA він значно підвищить 
Лист 
ЧДТУ.22.20031.001.ПЗ 32 
Змін.  Лист № докум. Підпис Дата 
 
 
 
час роботи алгоритму через те що RSA потребує достатньо великих простих 
чисел що збільшить діапазон чисел для перевірки. 
 Третім проаналізованим алгоритмом став Тест Ферма. Даний тест 
базується на малі теоремі Ферма. Його суть полягає у тому що якщо n – просте 
число то воно задовольняє рівність ����−1 = 1 ������ �� для довільного а яке не 
ділиться на n. Виконання даної рівності є необхідністю але не дає стовідсоткової 
відповіді просте число чи ні. Шанс що число n є простим збільшується з 
кількість проведених обрахунків. Якщо для n виконується рівність то n 
називається псевдовипадковим за основою а. Тому при перевірці числа тестом 
Ферма використовується кілька чисел а. Числа а беруться з діапазону від 2 до n-
1 та мають бути взаємно простими з n  тобто їх НСД має бути 1. Для коректної 
роботи алгоритму достатньо провести 100 ітерацій алгоритму. 
 Таким чином даних алгоритм має високу ефективність і при цьому високу 
швидкодію через невелику кількість ітерацій яка не залежить від величини 
числа. Враховуючи багаторазову перевірку числа на простоту в алгоритмі RSA 
тест Ферма здатний значно пришвидшити його роботу. 
 
 
Рис 3.3 – Програмна реалізація тесту Ферма 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 33 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
Рис 3.4 – Пошук найбільшого спільного дільника 
 Четвертий розглянутий алгоритм це Теорема Вільсона. Дана теорема 
стверджує що якщо (р-1)!+1 ділиться без остачі на p то p просте число. В 
основному цей алгоритм має теоретичне значення оскільки обрахунок 
факторіалу (p-1)! Займає занадто багато часу. Тому частіше елементарні тести 
перевірки числа на простоту базуються на теоремі Ферма. Також алгоритм на 
базі теореми Вільсона має обмеження і величині чисел які може перевірити, 
найбільше число 1099511628401 і у випадку зі спрощеним алгоритмом p! 
Процес обрахунку займе близько доби, тим часом коли числа з десятками цифр 
проходять перевірку з використанням теореми Ферма менш ніж за годину. 
 Приклад. Знаходження простих чисел у діапазоні від 2 до 31. Уже при 
перевірці числа 14 програма працює з мільярдами що негативно впливає на 
швидкодію. 
 
Таблиця 3.1 Результат роботи алгоритму на базі Теореми Вільсона 
р (р-1)!+1 Остача від (р-1)!+1/p 
2 2 0 
3 3 0 
4 7 >0 
5 25 0 
6 121 >0 
7 721 0 
8 5040 >0 
Лист 
ЧДТУ.22.20031.001.ПЗ 34 
Змін.  Лист № докум. Підпис Дата 
 
 
 
9 40321 >0 
10 362881 >0 
11 3628801 0 
12 39916800 >0 
13 479001600 0 
14 6227020800 >0 
15 87178291200 >0 
 
Таблиця 3.2 Порівняльний аналіз алгоритмів перевірки на простоту 
Назва Тип Асимптотика Кількість 
ітерацій 
Алгоритм Істинний О(��������(��)) n-1 
перебору 
Решето Істинний ��(�� ∗ ������(������(��))) n-1 
Ератосфена 
Тест Ферма Ймовірнісний О(������ ��) 100 
Теорема Вільсона Істинний О(������3��) (n-1)! 
 
Таким чином провівши порівняльний аналіз алгоритмів для перевірки 
чисел на простоту мною були вибрати тест Ферма як алгоритм для 
використання у підсистемі електронного цифрового підпису на базі RSA. Даний 
алгоритм має високу точність визначення простоти числа та на вигідно 
виділяється на фоні інших алгоритмів своєю швидкодією. При перевірці чисел 
можна обмежитися проходженням ста ітерацій, а арифметичні операції 
виконувані на кожній з них досить прості і що дозволяє економити час та 
ресурси комп’ютера.  
Лист 
ЧДТУ.22.20031.001.ПЗ 35 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 3.3 Програмна реалізація підсистеми 
 
 Створена мною підсистема являє собою програму яка виконує створення 
на основі інформації електронний цифровий підпис та шифруєш дану 
інформацію. Також виконуються всі супутні завдання представлені в описі 
алгоритму RSA.  
  
 3.3.1 Реалізація генерації ключів 
 Першим кроком в генерації ключів є рандомне створення чисел p і q. Дані 
числа повинні бути простими і мати однакову бітову довжину. Процес їх 
створення є важливим етапом роботи алгоритму так як дані числа є основою для 
подальший розрахунків, і у разі якщо зловмисник отримає доступ до них або 
зможе їх підробити у нього з’явиться можливість згенерувати ідентичний ЕЦП 
або розшифрувати інформацію у разі якщо алгоритм використовується для 
шифрування. 
 Для генерації чисел я використав рандом у діапазоні від 100 до 1000 що 
дозволить згенерувати числа достатньої складності для реалізації роботи 
алгоритму.  
          Генеровані числа мають відповідати критеріям. Бути простими і мати 
однакову бітову довжину. Для перевірки довжини було використано 
можливості бібліотеки big-integer а саме функцію bitLength(). Дана функція 
дозволяє дізнатися бітову довжину числа після чого порівняти числа p і q та 
визначити чи є їх довжина однакова.  
          Наступним кроком є перевірка отриманих чисел на простоту. Просте 
число це таке число яке білиться без остачі тільки на 1 і само на себе. Для 
виконання цього процесу існує багато алгоритмів, мною був обраний Тест 
Ферма який дозволить значно скоротити час робити алгоритму та навантаження 
на комп’ютер (Рис 3.3)  
Лист 
ЧДТУ.22.20031.001.ПЗ 36 
Змін.  Лист № докум. Підпис Дата 
 
 
 
          Даний алгоритм має 100 ітерацій на кожному кроці якого проводить 
наступні обрахунки. Обирає число а з діапазону від 2 до n-1, та підставляє його 
у рівність ���� − 1 = 1 ������ ��. Число а має бути взаємно прости до числа n тобто 
їх НСД має дорівнювати 1 (Рис 3.4).  
          Усіма вище описаними функціями керує основна в якій реалізована 
рандомна генерація чисел p і q та виклики функцій для перевірки простоти. У 
разі якщо число не пройдуть перевірки процес їх рандомного генерування 
повториться. 
    
   Рис 3.5 – Головна функція створення чисел p і q 
 
 
 createPrime
 Number 
 
 
 
Ferma        NSD       
 
Рис 3.6 – Схема створення чисел p і q 
Другий крок у генерації ключів це обчислення добутку p і q, n=pq число 
n використовуватиметься в якості модуля та буде частиною секретного і 
відкритого ключа в парі з числами e і d. 
Лист 
ЧДТУ.22.20031.001.ПЗ 37 
Змін.  Лист № докум. Підпис Дата 
 
 
 
          Третім кроком генерації ключів є обчислення Функції Ейлера і 
знаходження f(n). F(n)=(p-1)(q-1). Отримане число використовуватиметься у 
створенні експонент відкритого і секретного ключа e і d. 
          Четвертий крок у генерації ключів це генерація числа e яке є частиною 
відкритого ключа (e, n). Отримане число повинне задовольняти рівність 
1<e<f(n) та бути взаємно простим з f(n). Дане число генерується рандомно в 
діапазоні від 2 до f(n) та перевіряється шляхом пошуку НСД між ним на f(n). 
Якщо НСД 1 то числа взаємно прості. 
 
 
Рис 3.7 – Програмна реалізація генерування числа e 
          П’ятий крок в генерації ключів це створення числа d яке б задовольняло 
рівність ed=1 mod f(n). Дане число  використовується в якості секретного 
ключа в парі з n і утворює ключа (n, d). Генерація даного числа проводиться за 
допомогою розширеного алгоритму Евкліда 
          Після генерації ключів відкритий ключ передається в мережі через 
надійний але не обов’язково секретний маршрут. Ключ d залишається у 
абонента який його створив і не розповсюджується. 
 
          3.3.2 Реалізація шифрування повідомлення. 
 Першим етапом у шифруванні є створення на основі інформації хеш-
функції. 
Однією із найпростіших функцій хешування є зв’язування блоків бітів 
операцією виключного АБО (XOR). Повідомлення на основі якого створюється 
Лист 
ЧДТУ.22.20031.001.ПЗ 38 
Змін.  Лист № докум. Підпис Дата 
 
 
 
хеш-функція розбивається на блоки даних по 8 біт, вибирається початкове 
значення вигляду 00000000 і виконується операція XOR між початковим 
значенням та першим блоком даних, результат операції зберігається і 
використовується для операції XOR між ним і другим блоком даних. Результат 
виконання хеш-функції перетворюється в число M та використовується в 
подальших обрахунках. 
 Першим кроком у створенні хеш- функції є перетворення вхідного 
повідомлення в бітову послідовність. Для цього визначається довжин 
повідомлення і створюється цикл з кількість ітерацій рівні довжині 
повідомлення. На кожній ітерації символ повідомлення перетворюється в ціле 
число за таблицею ASCII а потом отримане число перетворюється і бітову 
послідовність 
 
 
Рис 3.8 – Програмна реалізація перетворення повідомлення і бітову 
послідовність 
          Другим кроком є розділення отриманої послідовності на блоки по 8 біт 
кожен. Після чого створюється початковий нульовий блок вигляду 00000000 і 
виконується операція XOR почергово від нульового блоку до останнього блоку 
повідомлень. Дана операція виконується циклом з кількість ітерацій рівні 
кількості блоків біт у повідомленні. Результатом цього процесу буде набір 
восьми біт які і являються хеш-функцією 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 39 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
 
Рис 3.9 – Програмна реалізація операції XOR над блоками біт 
 
          Після створення хеш-функції з нею проводяться арифметичні операції для 
шифрування, �� = ����  ������ �� отримана хеш-функція підноситься до степеня 
відкритого ключа е. 
 
Рис 3.10 – Програмна реалізація шифрування повідомлення 
 
          При шифруванні було використано бібліотеку big-integer для роботи з 
великими числа. Було використано методи для піднесення до степеня pow() та 
модулю mod(). Отриманий результат є шифрованим повідомленням. 
          Після отримання шифрованого повідомлення його потрібно 
розшифрувати. Для розшифрування використовується секретний ключа 
абонента (n, d). Для розшифрування виконуються наступні дії �� = ����  ������ ��.  
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 40 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
Рис 3.11 – Програмна реалізація шифрування повідомлення 
 
У разі правильного виконання всіх дій повідомлення до шифрування 
буде збігатися з повідомленням після шифрування. 
3.3.3 Створення ЕЦП 
Процес створення електронного цифрового підпису багато в чому 
збігається з процесом шифрування повідомлення. Зокрема генерація ключів 
ідентична, різниця полягає тільки у відмінності абонентів які створюють і 
розповсюджують ключі. При шифруванні створенням ключів займається 
сторона отримувач тоді як при створенні ЕЦП ключі генерує відправник і 
відправляє разом із ЕЦП відкритий ключ для перевірки підпису. 
Створення підпису полягає в наступному. Як і в шифруванні на основі 
даних створюється хеш-функція з якою в подальшому проводяться арифметичні 
операції. 
Припустимо абонент А хоче відправити повідомлення з цифровим 
підписом абоненту Б. Для цього він генерує ключі, створює хеш- функцію і 
створює сам підпис S за формулою �� = ����  ������ ��. Після створення підпису 
абонент відправляє повідомлення, підпис та відкритий ключі захищеним 
каналом зв’язку. Абонент Б отримує повідомлення після чого перевіряє ЕЦП і 
повідомлення на відсутність модифікації та автентифікацію відправника. Для 
цього абонент створює хеш-функцію на основі отриманого повідомлення, 
важливо щоб хеш-функція створювалася за таким самим алгоритмом як і у 
випадку відправника. Далі перевіряється рівність �� = ����  ������ �� якщо вона 
виконується то перевірка пройдена успішно, в іншому випадку повідомлення 
було модифіковане або ж абонент не являється власником цього повідомлення. 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 41 
Змін.  Лист № докум. Підпис Дата 
 
 
 
                                       
      Рис 3.12 – Програмна реалізація створення ЕЦП 
 
        
      Рис 3.13 – Програмна реалізація перевірки ЕЦП 
 
          Загальна схема роботи підсистеми виглядає наступним чином. 
Припустимо Абонент А хоч відправити шифроване підписане повідомлення 
абоненту Б. Для цього обидна абоненти проводять генерацію ключів. Після чого 
абонент Б відправляє абоненту А свій відкритий ключ для шифрування. 
Абонент А отримує його створює ЕЦП за допомогою свого закритого ключа, 
шифрує повідомлення відкритим ключем абонента Б і відправляє йому 
шифроване повідомлення, ЕЦП та свій відкритий ключ для перевірки. Абонент 
Б отримує повідомлення розшифровує його своїм секретним ключем та 
перевіряє ЕЦП за допомогою відкритого ключа абонента  
 
 
 
Абонент А 
 Генерує ключі 
 Отримує ключі від 
абонента Б 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 42 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
 
Шифрування 
 Створення ЕЦП на 
повідомлення 
основі власного 
ключем переданим 
 секретного ключа 
абонентом Б 
 
 
 Відправка шифрованого 
повідомлення, ЕЦП та 
 власного відкритого ключа 
 
 
 Абонент Б 
 Генерує ключі 
 Відправляє відкритий 
ключ абоненту Б 
  
Отримує повідомлення 
 
 
 
 
 Розшифровує Перевіряє ЕЦП 
повідомлення своїм переданим 
 секретним ключем відкритим ключем 
 
Рис 3.14 – Схема роботи підсистеми електронного цифрового підпису на базі 
RSA 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 43 
Змін.  Лист № докум. Підпис Дата 
 
 
 
РОЗДІЛ 4 
 
ОХОРОНА ПРАЦІ 
 
4.1 Аналіз небезпек і шкідливостей, що виникають в приміщенні 
лабораторії у процесі проектування підсистеми ЕЦП 
 
Дана робота характеризується тим, що для проведення досить великого 
комплексу робіт із проектування підсистеми електронно-цифрового підпису 
необхідний комплекс програмних і апаратних засобів досліджень. Тому робота 
виконується за допомогою персонального комп’ютера (ПК) у приміщенні 
експериментальної лабораторії.  
Аналіз небезпек полягає у визначенні наявності шкідливих факторів на 
робочому місці при роботі в даному приміщенні. Приміщення лабораторії 
розташоване на 2-му поверсі цегляної пятиповерхової будівлі. Устаткування 
лабораторії складається з чотирьох ПК і двох друкувальних пристроїв. 
Приміщення має наступні розміри: довжина 8 м, ширина 4,5 м,  висота 3,2 м і 
розрахований на чотирьох одночасно працюючих чоловік. Площа, яка припадає 
на одного працівника – 9 м2, об’єм – 28,8 м3, що відповідає вимогам ДБН 
В.2.2.28-2010 «Адміністративні та побутові будинки». 
Робота з комп’ютерного моделювання відноситься до категорії 1-легких, 
оскільки виконується сидячи, не потребує систематичної фізичної напруги або 
підняття і перенесення ваги. Енерговитрати при виконанні такої роботи 
складають приблизно 150 ккал/год, це еквівалентно 172 Дж/сек. 
Характеристика зорової роботи з ПК відповідає великому класу точності, 
тобто найменший розмір об'єкта розрізнення понад 0,3мм до 0,5мм, що 
відповідає 3 розряду зорової роботи, підрозряд – в; контраст розрізнення об'єкта 
з фоном - великий, фон світлий. 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 44 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Лабораторія має бічне природне освітлення через три світлових отвори у 
зовнішній стіні (вікон). Вікно має такі розміри: ширина 1,3 м; висота 1,8 м. 
Нормований коефіцієнт природного освітлення становить 1,2%. Площа 
світлових отворів забезпечує необхідний коефіцієнт природного освітлення, 
фактичне значення якого становить 40-46%, що є достатнім рівнем, 
обумовленим ДБН В.2.5-28-2018. Для темного часу доби передбачене штучне 
освітлення. Лабораторія обладнана шістьма світильниками, кожний з яких має 
по дві люмінесцентні лампи денного світла, потужністю 60 Вт кожна. Фактичне 
значення штучного загального освітлення становить 410-420 лк, а нормативне 
значення – 400 лк. Отже, рівень штучного освітлення відповідає ДБН В.2.5-28-
2018. 
Мікроклімат у приміщенні лабораторії визначається: температурою 
повітря, відносною вологістю, швидкістю руху повітря і інтенсивністю 
теплового випромінювання від нагрітих поверхонь. 
Фактичні значення основних факторів мікроклімату наступні: 
1. Температура повітря: 
-   в холодний період року – 22-24 °С; 
-   в теплий період року – 30-32 °С. 
2. Вологість повітря: 
-   в холодний період року – 47-50 %; 
-   в теплий період року – 45-50 %. 
3. Швидкість руху повітря: 
-   в холодний період року – 0,05-0,1 м/с; 
-   в теплий період року – 0,1-0,2 м/с. 
Наведені фактичні значення задовольняють ДСН 3.3.6.042-99 «Санітарні 
норми мікроклімату виробничих приміщень», за виключенням температури в 
теплий період року. Саме тому в приміщенні лабораторії необхідно розрахувати 
і змонтувати систему кондиціонування повітря. 
Лист 
ЧДТУ.22.20031.001.ПЗ 45 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Дане приміщення відноситься до класу приміщень без підвищеної 
небезпеки ураження електричним струмом, тому що відповідає таким вимогам: 
– кабінет має  струмонепровідні дерев'яні поли (паркет); 
– відносна вологість повітря 50-60%; 
– немає утворень пилу , що проводить струм; 
– неможливість одночасного дотику з однієї сторони до металевих 
конструкцій будинку, що мають з'єднання з землею, і з іншої сторони до 
корпусів електроустаткування (ПУЕ-17). 
Вся електрична підводка до столів, де розташовані ПК, захищена від 
механічних ушкоджень. Для захисту від статичної електрики застосоване 
заземлення відповідно ДСТУ Б В.2.5-82:2016.  
При роботі з ПК не відбувається утворення і виділення в повітря загально-
токсичних, подразнюючих, канцерогенних і інших шкідливих речовин, 
концентрація яких перевищувала б установлені норми і правила, тому повітря 
робочої зони відповідає вимогам ДСТУ-Н Б А.3.2-1:2007 і вимогам до ГДК 
шкідливих речовин і пилу. 
Джерела вібрації в даному приміщенні відсутні, що відповідає вимогам 
ДСН 3.3.6.039-99. 
В даному приміщенні рівень шуму визначається шумом від системних 
блоків та від друкувального пристрою (принтеру) і не перевищує 52 дБА, що 
відповідає вимозі ДСН 3.3.6.037-99, згідно якого нормативний рівень шуму 
становить 60 дБА. 
Приміщення лабораторії розташоване в північній частині будинку, стіни 
пофарбовані кремовою фарбою (пастельний тон) із коефіцієнтом відбиття 40-
60%, фарбування має матову структуру. Робочі місця обладнані відповідно до 
вимог ДСТУ 8604:2015 .У даному приміщенні робочі місця розташовані таким 
чином, щоб у поле зору не потрапляли вікна й освітлювальні прилади. Екрани 
о
моніторів розміщені під кутом 90-105  до вікна, у поле зору не потрапляють 
поверхні з дзеркальним відбиттям. Співвідношення яскравості екрана з 
Лист 
ЧДТУ.22.20031.001.ПЗ 46 
Змін.  Лист № докум. Підпис Дата 
 
 
 
найближчими поверхнями не перевищує 5:1, покриття столу матове з 
коефіцієнтом відбиття 0,3-0,4. Монітори розміщені так, щоб відстань від очей 
о
користувача до екрана складала не менше 700 мм, кут зору 30 . Руки 
користувача розташовуються на робочому столі в горизонтальному положенні, 
передбачена опора для спини. 
Пожежна безпека регламентується НАПБ А.01.001-2014. Приміщення 
лабораторії відноситься до категорії В (ДСТУ Б В.1.1-38:2016) – 
пожежонебезпечних приміщень, тому що є наявність горючих речовин: 
дерев'яні столи і стільці, дерев'яна підлога, віконна рама; приміщення сухе з 
відносною вологістю 40-60%. Згідно умов експлуатації приміщення лабораторії 
відповідно до ДБН В.2.5-56-2014,  обладнане системою пожежно-охоронної 
сигналізації «Дунай-8L» та автоматичним пожежним димовим оповісником 
ІПК-3.1М, який формує сигнал про пожежу при виявлені диму. 
Додатково для гасіння пожежі в кабінеті передбачений ручний 
вуглекислотний вогнегасник типу ВВК-3,5, призначений для гасіння твердих і 
рідких горючих речовин, а також електроустановок під напругою. 
При виникненні пожежі люди евакуюються з лабораторії шляхом виходу 
в коридор другого поверху, що веде на сходову клітку, яка має вихід назовні 
через вестибюль (ДБН В.1.1.7-2016). 
За результатами аналізу умов праці дослідника, що виникають у процесі 
роботи при статистичній обробці матеріалів, можна зробити висновок, що всі 
параметри лабораторії відповідають вимогам нормативних документів для 
даного типу роботи. Відхиленням від встановлених вимог є відсутність системи 
кондиціонування повітря. Виходячи з цього рекомендується в приміщенні 
лабораторії встановити систему кондиціонування повітря.  
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 47 
Змін.  Лист № докум. Підпис Дата 
 
 
 
4.2 Розробка системи кондиціонування повітря лабораторії 
 
Кондиціонування повітря — це створення та автоматичне підтримування 
в приміщенні заданих або таких, що змінюються за певною програмою 
метеорологічних умов, які є найбільш сприятливими для працівників чи для 
нормального протікання технологічного процесу. Кондиціонування повітря 
може бути повним та неповним. Повне кондиціонування повітря передбачає 
регулювання температури, вологості, швидкості руху повітря, а також 
можливість його додаткового оброблення (очищення від пилу, дезінфекції, 
дезодорації, озонування). При неповному кондиціонуванні регулюється лише 
частина параметрів повітря. 
Кондиціонування повітря здійснюється кондиціонерами, які 
підрозділяють-ся на центральні та місцеві. Центральні кондиціонери призначені 
для обслуговування великих за розмірами приміщень. Оброблення повітря 
проводиться в одному центрі, що розташований поза приміщеннями, в яких 
здійснюється кондиціонування і зв'язаного з останніми каналами для подачі та 
рециркуляції повітря. Місцеві кондиціонери мають малу продуктивність і 
встановлюються безпосередньо в невеликих приміщеннях. Такі кондиціонери, 
зазвичай, працюють на зовнішньому повітрі за, так званою, припливною 
схемою. 
Система кондиціонування оснащується спеціальними пристроями, які 
автоматично регулюють за заданими умовами необхідні параметри повітря, а 
отже й відповідні характеристики теплоносія та холодної води. 
Принцип роботи кондиціонера. 
У основі роботи будь-якого кондиціонера лежить властивість рідин 
поглинати тепло при випаровуванні і виділяти - при конденсації. Щоб 
зрозуміти, яким чином відбувається цей процес, розглянемо схему 
кондиціонера на прикладі спліт-системи:  
Лист 
ЧДТУ.22.20031.001.ПЗ 48 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
 
Рис 4.1 - Схема кондиціонера побудована за принципом  
спліт-системи 
 
Основними вузлами будь-якого кондиціонера є:  
Компресор - стискає фреон і підтримує його рух по холодильному 
контуру.  
Конденсатор - радіатор, розташований в зовнішньому блоці. Назва 
відображає процес, що відбувається при роботі кондиціонера, - перехід фреону 
з газоподібної фази в рідку (конденсація).  
Випарник - радіатор, розташований у внутрішньому блоці. У випарнику 
фреон переходить з рідкої фази в газоподібну (випаровування).  
ТРВ (терморегулюючий вентиль) - знижує тиск фреону перед 
випарником.  
Вентилятори - створюють потік повітря, що обдуває випарник і 
конденсатор. Використовуються для інтенсивнішого теплообміну з 
навколишнім повітрям. 
Компресор, конденсатор, ТРВ і випарник сполучені мідними трубами і 
утворюють холодильний контур, усередині якого циркулює суміш фреону і 
невеликої кількості компресорного масла.  
Лист 
ЧДТУ.22.20031.001.ПЗ 49 
Змін.  Лист № докум. Підпис Дата 
 
 
 
В процесі роботи кондиціонера на вхід компресора з випарника надходить 
газоподібний фреон під низьким тиском в 3 - 5 атмосфери і температурою 10 - 
20°С. Компресор стискає фреон до тиску 15 - 25 атмосфери, внаслідок чого 
фреон нагрівається до 70 - 90°С, після чого поступає в конденсатор.  
Завдяки інтенсивному обдуванню конденсатора, фреон остигає і 
переходить з газоподібної фази в рідку з виділенням додаткового тепла. 
Відповідно, повітря, що проходить через конденсатор, нагрівається.  
На виході конденсатора фреон знаходиться в рідкому стані, під високим 
тиском і з температурою на 10 - 20°С вище за температуру атмосферного 
повітря. З конденсатора теплий фреон поступає в терморегулюючий вентиль 
(ТРВ), який в простому випадку є капіляром (довга тонка мідна трубка, звита в 
спіраль). На виході ТРВ тиск і температура фреону істотно знижуються, частина 
фреону при цьому може випаруватися.  
Після ТРВ суміш рідкого і газоподібного фреону з низьким тиском 
поступає у випарник. У випарнику рідкий фреон переходить в газоподібну фазу 
з поглинанням тепла, відповідно, повітря, що проходить через випарник, 
остигає. Далі газоподібний фреон з низьким тиском поступає на вхід 
компресора і увесь цикл повторюється.  
Цей процес лежить в основі роботи будь-якого кондиціонера і не залежить 
від його типу, моделі або виробника.  
При вирішенні питання щодо доцільності кондиціонування повітря 
необхідно враховувати й економічні чинники. 
Через традиції, що склалися, окрім одиниць системи СІ, для вимірювання 
потужності кондиціонера (при роботі на охолоджування або нагрів) 
використовують також позасистемну одиницю «британська теплова 
одиниця/година (БТЕ/год), величина якої визначається так: кількість тепла, 
необхідного для нагріву одного фунт (0,45 кг) води, на один градус Фаренгейта 
(0,56 °С). Одиниця БТЕ/год так співвідноситься з одиницею системи СІ (Вт): 1 
Вт = 3,412 БТЕ/год. 
Лист 
ЧДТУ.22.20031.001.ПЗ 50 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Таким чином, використовувані в кліматичній техніці одиниці 
вимірювання потужності (продуктивності) зв'язані між собою 
співвідношеннями: 1 Вт = 3,412 БТЕ/год, 1 Вт = 1,163 ккал/год, 1 БТЕ/год = 
0,293 Вт, 1 ккал/год = 3,968 БТЕ/год. 
Потрібну для конкретного приміщення потужність кондиціонера по 
холоду можна розрахувати, визначивши лишнє тепло в приміщені, в якому він 
повинен бути встановлений. 
Надлишкове тепло в приміщені розраховують за формулою: 
 
                                         Qз Q1 Q2 Q3 Q4 Q5                                     (4.1) 
 
де Qз – загальна кількість тепла; 
Q1 – лишнє тепло в приміщені від сонячної радіації та штучного світла; 
Q2 – надходження тепла від людей, що знаходяться в приміщенні; 
Q3 – надходження тепла від офісного устаткування; 
Q4 – надходження тепла від побутової техніки; 
Q5 – надходження тепла від опалювання. 
Надходження тепла від сонячної радіації залежить від площі і 
розташування вікон. На широті Черкас надходження тепла через 1 кв. м скла 
будуть: 
- північна орієнтація – 42 Вт/м2; 
- північно-східна і північно-західна орієнтація – 215 Вт/м2; 
- східна і західна орієнтація – 290 Вт/м2; 
- південно-східна і південно-західна орієнтація – 220 Вт/м2; 
- південна орієнтація – 130 Вт/м2; 
- горизонтальне скління – 400 Вт/м2. 
Якщо вікно затінене деревами або є щільні світлі жалюзі, приведені 
величини ділять на коефіцієнт 1,4. 
Лист 
ЧДТУ.22.20031.001.ПЗ 51 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Приміщення лабораторії має бічне природне освітлення через чотири 
світлових отвори у зовнішній стіні (вікон). Вікно має такі розміри: ширина 1,3м; 
висота 1,8м. 
Надходження тепла від сонячної радіації через вікна, а при використанні 
електричного освітлення надходження тепла від штучного освітлення: 
                    
                      Q1.1  w  h  qs  nw 1,3 1,8  42  4  393  (Вт)                    (4.2) 
 
де w - ширина вікон, 
h - висота вікон, 
qs - орієнтація вікна, 
nw - кількість вікон. 
 
                      Q1.2  nL  PL 12  60  720  (Вт)                                    (4.3) 
 
де nL - кількість ламп електричного освітлення, 
PL - потужність одної лампи електричного освітлення. 
В результаті  
                             Q1 Q1.1 Q1.2  393 720 1113  (Вт)                            (4.4) 
 
Надходження тепла від стін істотно менше, тому у ряді випадків ними 
нехтують. 
Надходження тепла від людей, що знаходяться в приміщенні. Одна 
людина залежно від роду занять виділяє: 
- відпочинок в сидячому положенні – 120 Вт; 
- легка робота в сидячому положенні – 130 Вт; 
- помірно активна робота в офісі – 140 Вт; 
- легка робота стоячи – 160 Вт; 
- легка робота на виробництві – 240 Вт; 
Лист 
ЧДТУ.22.20031.001.ПЗ 52 
Змін.  Лист № докум. Підпис Дата 
 
 
 
- повільні танці – 260 Вт; 
- робота середньої тяжкості на виробництві – 290 Вт; 
- важка робота – 440 Вт. 
Тепер розрахуємо надходження тепла від людей: 
 
Q2  q p  np 140  4  560  (Вт)                                  (4.5) 
                            
 
де qp - надходження тепла від людини, 
np - кількість людей. 
     
Надходження тепла від офісного устаткування. Зазвичай вони 
приймаються у розмірі 30% від споживаної потужності: комп'ютер – 350 Вт; 
лазерний принтер – 400 Вт; матричний або струменевий принтер – 50 Вт; 
копіювальний апарат – 500 - 600 Вт. 
                           
Q3  qk nk qr  (350 4)  2 50 1500
                         (Вт)                       (4.6) 
 
де qk - надходження тепла від комп'ютера, 
     nk - кількість комп'ютерів, 
     qr - принтер. 
Надходження тепла побутової техніки. В приміщенні лабораторії 
побутова техніка відсутня, тому Q4 = 0. 
У ряді випадків, у високих будівлях з великою площею скління 
кондиціонування буває необхідно вже навесні, коли опалювальний сезон ще не 
закінчений. В цьому випадку в розрахунку необхідно враховувати лишнє тепло 
від системи опалювання, що приблизно дорівнює 180-225 Вт/м2 площі. 
Приймаємо Q 2 
5 = 200 Вт/м .  
В результаті загальна сума тепла буде рівна: 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 53 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Qз Q1 Q2 Q3 Q4 Q5 11135601500 200  3282  (Вт)    (4.7) 
 
 
Рис 4.2 - Кондиціонер DANTEX RK-12SDM2 
 
 Вибираємо близьку по потужності модель кондиціонера із стандартного ряду: 
2,0; 2,5; 3,5; 5,0; 7,0 кВт. В даному випадку достатньо моделі потужністю 3,5 
кВт. Вибираємо кондиціонер DANTEX RK-12SDM2. 
 
          Тежнічні характеристики кондиціонера DANTEX RK-12SDM2 наступні: 
 Потужність охолоджування (Вт): 3500  
 Потужність обігріву (Вт): 3800 
 Повітрообмін (куб. м/година): 550  
 Розміри внутрішнього блоку (мм): 750x250x188 
 Розміри зовнішнього блоку (мм): 780x540x250 
 Потужність, яка споживається при охолоджувані (кВт): 1,23 
 Потужність, яка споживається при обігріві (кВт): 1,29 
 Живлення (В/Гц/Ф): 220/50/1 
 Рівень шуму (дБ): 34/41 
 Вага внутрішнього блоку (кг): 8,5 
Лист 
ЧДТУ.22.20031.001.ПЗ 54 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 Вага зовнішнього блоку (кг): 36 
 Тип хладагенту: R22 
 Контроль температури : Термістор  
 Кількість швидкостей вентилятора : 3/4  
 Регулювання коливання жалюзі : Авто  
 Тип пульта ДУ : ДУ з дисплеєм  
 Діапазон температур (Охолоджування) : 18-30  
 Діапазон температур (Обігрів) : 16-30  
 Таймер : 24 год вкл/викл  
 Тип компресора : Ротаційний 
          Спеціалізовані функції та пристрої кондиціонера DANTEX RK-12SDM2: 
 Іонізатор 
 нано-фільтр 
 вугільний фільтр 
 теплообмінник с 4-ма   згинами, 
 гідрофільні пластини, 
 захист вентилів 
 антикорозійний корпус 
 легко миюча панель 
 два напрвлення повітряного потоку 
 авторестарт 
 самодіагностика 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 55 
Змін.  Лист № докум. Підпис Дата 
 
 
 
ЗАГАЛЬНІ ВИСНОВКИ 
 
          В ході виконання роботи мною було розроблено підсистему електронно-
цифрового підпису документів на основі алгоритму RSA. Дана робота є 
актуально у зв’язку з переходом багатьох людей на дистанційну форму роботи 
що змушує їх передавати важливі робочі документи в мережі інтернет. Таким 
чином у зловмисників з’явилися нові способи отримання доступу до інформації 
або ж нанесення збитків шляхом видавання себе за іншу особу. Тому 
криптографічні алгоритми для створення електронних цифрових підписів не 
повинні стояти на місті а вдосконалюватися для коректної та безпечної роботи. 
          Під час виконання роботи були досягнуті всі поставлені завдання а саме: 
 Розглянуто електронний цифровий підпис в рамках законодавства; 
 Досліджено правовий статус ЕЦП, розглянуті існуючі центри 
сертифікації; 
 Проаналізовано криптографічний алгоритм RSA; 
 Розглянуто атаки на даних алгоритм та його вразливість до них; 
 Розглянуто інші алгоритми для створення ЕЦП та порівняно їх з RSA; 
 Розглянуто технологічні аспекти алгоритму RSA; 
 Проведено роботу по вдосконаленню певний складовий алгоритму для 
підвищення його швидкодії; 
 Проведений аналіз та вибір середовища розробки та мови програмування; 
 Створено програмну реалізацію підсистеми електронно-цифрового 
підпису документів на базі алгоритму RSA 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 56 
Змін.  Лист № докум. Підпис Дата 
 
 
 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
 
1. Закон України «Про електронні договірчі послуги» від 05.10.2017 № 2155-
VIII Режим доступу до ресурсу -  https://zakon.rada.gov.ua/laws/show/2155-
19#Text 
2. Закон України «Про електронний цифровий підпис» від 22.05.2003 № 
852-IV Режим доступу до ресурсу - 
https://zakon.rada.gov.ua/laws/show/852-15#Text 
3. RSA Security`s Office Guide to Cryptography, Steven Burnett, Stephen Paine 
4. Ян С. Криптоаналіз RSA = Cryptanalytic Attacks on RSA. — Ижевск : РХД, 
2011. — 312 с Menezes A. J., van Oorschot P. C., Vanstone S. A. Handbook 
of Applied Cryptography. — CRC Press, 1996. — 794 p 
5. Брассар Ж. сучасна криптологія = Modern Cryptology: A Tutorial. — М. : 
Поломед, 1999. — 176 с 
6. Земор Ж. Курс криптографії = Cours de cryptographie. — Іжевск : РХД, 
2006. — 256 с 
7. Коутінхо С. Знайомство з терією чисел. Алгоритм RSA = The Mathematics 
of Ciphers: Number Theory and RSA Cryptography. — М. : Постмаркет, 
2001. — 328 с 
8. Основи JavaScript. Режим доступу до ресурсу - 
https://developer.mozilla.org/. 
9. Довідник з JavaScript версії 1.5:  13 грудня 2007 у Wayback Machine 
10. Mozilla JavaScript shells  29 червня 2011 у Wayback Machine 
11. JavaScript довідка українською  24 квітня 2022 у Wayback Machine 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 57 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Додаток А 
 
Код програмної реалізації підсистеми електронно-цифрового підпису 
документів на основі алгоритму RSA 
 
 Генерація початкових значень p і q. 
let bigInt = require("big-integer"); 
function primeNumberCheck() { 
    let result, number; 
    do { 
        number = Math.floor(Math.random() * 1000) + 100; 
        console.log(number) 
        result=ferma(number); 
    } while (result === false); 
 
    return number; 
} 
function nsd(a,b){ 
    if(b==0){ 
        return a; 
    }else{ 
        m = bigInt(a).mod(b) 
        return nsd(b,m) 
    } 
} 
function ferma(n){ 
    let j 
    if(n<100){ 
        j=n 
    }else{j=100} 
    for(let i=0;i<=j;i++){ 
        let a = Math.floor(Math.random() * n-1) + 2; 
        if (nsd(a, n) != 1){ 
            return false;}   
        let step = bigInt(a).pow(n-1) 
        check = bigInt(step).mod(n)      
Лист 
ЧДТУ.22.20031.001.ПЗ 58 
Змін.  Лист № докум. Підпис Дата 
 
 
 
        if( check != 1)      
            return false;            
    } 
    return true; 
} 
let p = primeNumberCheck(); 
let q = primeNumberCheck(); 
 
 
 Створення числа n та вивід результату користувачеві 
 
let n = p * q; 
console.log('p=', p); 
console.log('q=', q); 
console.log('n=', n); 
 
 Генерація модуля f(n) та експоненти відкритого ключа е. 
let f = (p - 1) * (q - 1); 
console.log('f=', f); 
function createE(f) { 
    let res=0; 
    let e 
do{ 
    e = Math.floor(Math.random() * f-1) + 2; 
    res=nsd(e,f) 
 
}while(res!=1) 
  return e 
} 
let e = createE(f); 
console.log('e=', e); 
int=parseInt(e) 
console.log(int) 
  
 Генерація експоненти закритого ключа d. 
function createD(e, f) { 
    let result; 
    for (let i = 1; i < 10000000; i++) { 
Лист 
ЧДТУ.22.20031.001.ПЗ 59 
Змін.  Лист № докум. Підпис Дата 
 
 
 
        result = (e * i) % f; 
        if (result === 1) { 
            return i; 
        } 
    } 
} 
let d = createD(int, f) 
console.log('створив d=', d) 
  
 Створення хеш-функції для подальшого створення на її основі 
електронного цифрового підпису. 
let kon=[]; 
let res=[]; 
let restwo=[]; 
for (let i=0;i<11;i++){ 
    kon+=q.toString(2) 
} 
let ww 
ww=input.length; 
console.log(ww) 
let outputt=[]; 
for (let i = 0; i < input.length; i++) { 
    outputt +=input[i].charCodeAt(0).toString(2); 
} 
let w=0; 
let e=ww; 
for (let i=0; i<ww;i++){ 
   x=kon[i]; 
   y=outputt[i]; 
   if(x==y){ 
       res+=0; 
   }else{ 
       res+=1; 
   } 
} 
console.log(res) 
kon=[]; 
let ind=0; 
Лист 
ЧДТУ.22.20031.001.ПЗ 60 
Змін.  Лист № докум. Підпис Дата 
 
 
 
for(let i=0;i<ww-1;i++) { 
    for (w; w < ww; w++) { 
        ind++; 
        x = res[w]; 
        y = outputt[e + w]; 
        if (x == y) { 
            restwo += 0; 
            kon += 0; 
        } else { 
            restwo += 1; 
            kon += 1 
        } 
        if (w == ww-1) { 
            res = restwo; 
            e = e + ww; 
            w=0; 
            break; 
        } 
    } 
    kon+=" "; 
} 
console.log('Хеш-функція-',kon); 
 
 Створення ЕЦП 
let s = bigInt(mul).pow(d) 
let mm = bigInt(s).mod(n) 
console.log('Створений ЕЦП-', mm) 
 
 Перевірка ЕЦП 
 
let m = bigInt(s).pow(e) 
dec = bigInt(m).mod(n) 
if (hesh===m){ 
    console.log('Перевірка пройдена успішно') 
}else{ 
    console.log('ЕЦП не є дійсним') 
} 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 61 
Змін.  Лист № докум. Підпис Дата 
 
 
 
Додаток Б 
 
Мультимедійна презентація 
 
 
 
Рис 1 - Титульний слайд 
 
 
Рис 2 - Мета та завдання роботи 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 62 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
Рис 3 – Актуальність теми 
 
 
 
Рис 4 – Відомості про ЕЦП 
 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 63 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
 
Рис 5 – Аналіз роботи алгоритм RSA 
 
 
 
 
 
Рис 6 – Схема роботи алгоритму RSA 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 64 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
 
Рис 7 – Порівняння RSA з існуючими аналогами 
 
 
 
 
 
Рис 8 – Вдосконалення окремих аспектів алгоритму 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 65 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
 
 
Рис 9 – Висновок 
 
 
 
Рис 10 – Розділ охорона праці (1) 
 
 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 66 
Змін.  Лист № докум. Підпис Дата 
 
 
 
 
Рис 11 – Розділ охорона праці (2) 
 
 
 
Лист 
ЧДТУ.22.20031.001.ПЗ 67 
Змін.  Лист № докум. Підпис Дата