Алгоритм шифрування RSA

1. Формується 2 простих числа (p, q, p!=q).

2. Формується додаток для цих чисел, будемо далі називати цей добуток модулем n = p * q.

3. Формується функція Ейлера для цих чисел по формулі:

j = (p - 1) * (q - 1).

4. Формуються ключі для крипто перетворень. Ключ для шифрування даних E – випадкове число, яке взаємно просте з j, ключ для розшифрування даних D задовольняє формулі D * E = 1 mod (j). Остання формула означає, що (D * E) % j = 1.

5. Шифрувати можна довільні дані, значення яких менше ніж n[1]. Для шифрування даних використовується ключ E, який в криптографії називають відкритим ключем. Для шифрування даного М використовується формула M’ = ME mod n. Отримане значення M’ – це зашифроване значення.

6. Для розшифрування використовується ключ D, який в криптографії називають особистим ключем. В даному випадку розшифрувати дане зможе тільки власник особистого ключа. Зашифрувати дане для нього може любий користувач, якому передали відкритий ключ даного користувача. Для розшифрування використовується формула M = M’D mod n.

 

2.3 Порядок виконання лабораторної роботи

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

2. Визначите умову по виклику для функцій, якщо відомо, що функції треба використовувати в С, С++ файлах і вони повинні бути максимально надійними;

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

4. Реалізуйте функції бібліотек;

5. Реалізуйте головну програму для статичної бібліотеки;

6. Створить проект для формування динамічної бібліотеки;

7. Створить динамічну бібліотеку;

8. Реалізуйте головну програму для динамічної бібліотеки для першого способу її використання.

9. Реалізуйте головну програму для динамічної бібліотеки для другого способу її використання;

10. Добавте до DLL підтримку введення – виведення на різних мовах;

 

2.4 Зміст звіту

Звіт повинен включати:

1. Правила формування проектів для статичної та динамічної бібліотек;

2. Тексти функцій для обох бібліотек;

3. Тексти головних програм (3);

4. Порівняльна характеристика бібліотек та способів їх застосування

 

2.5 Контрольні запитання та завдання

1. Що таке статична бібліотека?

2. Що таке динамічна бібліотека?

3. Якого типу файли можна підключати до статичних бібліотек?

4. Якого типу файли можна підключати до динамічних бібліотек?

5. Які режими використання динамічних бібліотек ви знаєте. Дайте характеристику кожного режиму

 

3 КЕРУВАННЯ ЗОВНІШНІМИ ПРИСТРОЯМИ. СТАНДАРТНІ ПРИСТРОЇ