Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Завдання
Предмет:
Алгоритми

Частина тексту файла (без зображень, графіків і формул):

Зміст Шифрування афінним шифром. Завдання Теоретичні відомості Вибір ключів Блок-схема алгоритму Таблиця ідентифікаторів Текст програми Відкритий текст Результат шифрування Шифрування шифром RSA Завдання Теоретичні відомості Вибір ключів Зашифрування Розшифрування Висновки Завдання Вибрати ключі та розробити програму для за шифрування файлу даних заданим афінним шифром. Тип афінного шифру визначається останньою цифрою i НЗК. Об‘єм алфавіту визначається передостанньою цифрою j НЗК і дорівнює . i i mod 6 Тип афінного шифру j Розрядність алфавіту  Об‘єм алфавіту   3 3 Зсуву -го порядку 0 5 32   Теоретичні відомості Афінні шифри- підклас шифрів заміни, що включає включає, як частковий випадок шифр Віжінера і навіть шифр перестановки з фіксованим періодом. N-символьний алфавіт ототожнюємо з кільцем . А саме кожна буква замінюється своїм номером у алфавіті, причому нумерація починається з нуля. Наприклад, латинська абетка ототожнюється із , а українська із . Літера а української абетки трактується як нуль, літера б як 1, в як 2. Тепер до букв відкритого тексту. Тепер до букв відкритого тексту ми можемо вільно застосовувати операцію додавання та множення за відповідним модулем. Шифр зсуву. Ключ:  таке, що . Шифрування. У повідомлені кожна буква  заміщується буквою . Дешифрування. У криптотексті кожна буква  заміщуються буквою ,де . Величину зворотнього зсуву  будемо називати дешифруючим ключем. Афінні шифри вищих порядків. Для розширення попереднього методу(монограмний шифр) потрібно щоб вони оперували з -грамами для довільного . Спочатку введемо операцію додавання в . Сумою векторів  і  з  є вектор .  з операцією додавання є групою. Вектор  є оберненим до вектора . Шифр зсуву -го порядку (шифр Віжінера з періодом ). Ключ. . Шифрування. Повідомлення розбивається на -грами. Кожна -грама  заміщується -грамою . Дешифрування. Кожна -грама  заміщується -грамою , де  є дешифруючим ключем. Вибір ключів Ключ : {5, 7, 17, 23, 29} Блок-схема алгоритму    Таблиця ідентифікаторів Ідентифікатор Тип ідентифікатора Опис  n=32 int Глибина алфавіту  key[5]={5,7,17,23,29} int Ключ зашифрування  *r_f FILE Вхідний файл  *w_f FILE Вихідний (зашифрований) файл  r_eof=0 int Прапорець контролю кінця файлу  x_OK=1 int Прапорець готовності символу  n_x=0 int Лічильник символів (для блокового шифрування)  r_buf unsigned long Вхідний буфер даних (бітів)  w_buf = 0 unsigned long Вихідний буфер даних (бітів)  x unsigned long Поточний символ  r_count=32 int Лічильник бітів вхідного буфера  w_count=32 int Лічильник бітів вихідного буфера   Текст програми #include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> #include <string.h> void main(void) { int n=32; int key[5] = {5, 7, 17, 23, 29}; char *s; FILE *r_f, *w_f; int r_eof=0; int x_OK=1; int n_x=0; unsigned long r_buf; unsigned long w_buf = 0; unsigned long x; int r_count=32; int w_count=32; if ( (r_f=fopen("c:\\plain.f", "rb")) == NULL ) { printf("cannot open the file data.fb"); getch(); exit(1); } else if ( (w_f=fopen("c:\\encrypt.f", "wb")) == NULL ) { printf("cannot open the file data.fbc"); getch(); exit(1); } else { if (fread(&r_buf, 1, 4, r_f) != 0) while (!r_eof) { if (r_count<=0) { if (fread(&r_buf, 1, 4, r_f) != 0) { x |= (r_buf << (5+r_count)) & (n-1); r_buf >>= (-r_count); r_count += 32; x_OK = 1 & !(r_count==32); } else { r_eof = 1; x_OK = 1; } } else { x = r_buf & (n-1); r_buf >>= 5; r_count -= 5; x_OK = 1 & (r_count>=0); } if (x_OK) { x = (unsigned int)(fmod(x+key[n_x], n)); if (n_x==4) n_x=0; else n_x++; // printf("%4x", x); itoa(x, s, 10); fputs(strcat(s, " "), stdout); w_buf |= x << (32-w_count); w_count -= 5; if (w_count<=0) { fwrite(&w_buf, 4, 1, w_f); w_buf &= 0; if (w_count==0) w_count = 32; else { w_buf |= x >> (5+w_count); w_count += 32; } } } } fclose(r_f); fclose(w_f); } } Відкритий текст Виписати можливі біт, що використовуються для формування маски підмережі. Викреслити комбінації, де значення усіх одночасно чи Це необхідно зробити тому, що вони представляють недопустимі (службові) IP-адреси: комбінація означає всю локальну мережу, а співпадає з маскою підмережі. Перевести в десятковий формат значення для кожної підмережі. Кожне таке значення представляє одну мережу використовується для визначення діапазону хостів в ній. Ця процедура проілюстрована на рисунку 3. 255 255 224 Рисунок 3. Перший спосіб визначення діапазонів ідентифікаторів підмереж, що входять в об’єднану мережу Зазначимо, що ідентифікатори підмереж, складаються з одних нулів та одних одиниць, називаються адресами підмереж спеціального призначення (special case subnet addresses). Ідентифікатор з одних одиниць застосовується для широкомовлення в мережі. Ідентифікатор з одних нулів означає локальну мережу. При на підмережі такі ідентифікатори використовувати не рекомендується. Але використання можливим, якщо маршрутизатори та все інше мережеве обладнання Вашої мережі буде підтримувати. Обмеження пов’язані з використанням, описуються в RFC 950. Другий спосіб визначення ідентифікаторів підмереж швидший тому ефективніший, попередній, коли необхідно відвести маску підмережі більше чотирьох біт. Записати одиницями кількість біт, необхідних для ідентифікаторів підмереж доповнити справа нулями до одного октету. Наприклад, якщо використовується два біти для ідентифікаторів підмереж, то необхідно записати це значення як 11000000. Перетворити найменший значимий в десяткове число – Ви отримаєте приріст для кожної наступної підмережі. Для нашого прикладу це число рівне 64. Починаючи з нуля, виписати послідовно отримувані з допомогою приросту значення аж до значення 256. Ця процедура проілюстрована на рисунку 4. Результат шифрування 7 13 11 22 11 25 14 15 23 20 1 24 31 7 13 2 21 8 16 20 19 27 28 19 16 10 15 19 21 22 15 5 29 24 5 23 22 8 26 1 7 14 11 12 11 28 10 15 31 12 1 12 0 14 8 1 26 8 22 2 20 5 24 21 28 12 15 25 21 18 4 6 17 24 26 2 21 9 10 26 24 30 9 24 27 27 30 14 22 4 13 31 31 7 4 3 17 24 17 30 23 30 0 13 1 12 2 28 5 21 28 3 23 22 9 2 25 23 31 30 7 13 11 12 11 29 30 13 8 28 31 24 31 16 0 2 7 2 17 26 19 29 24 19 16 18 2 18 5 24 20 29 16 28 8 5 9 3 14 25 5 0 10 18 11 21 6 15 28 12 0 2 15 22 0 9 26 0 19 4 0 1 20 27 11 12 0 12 5 20 4 5 17 6 25 0 21 8 26 1 28 14 11 24 31 16 30 13 23 6 0 18 31 14 4 1 28 16 3 6 3 29 12 20 29 30 0 18 6 20 12 3 25 14 25 22 21 1 31 27 19 14 12 30 12 27 7 21 16 20 0 8 19 8 24 2 20 24 17 30 23 30 20 21 2 12 0 20 6 22 8 3 19 22 23 4 22 16 2 27 1 14 25 17 27 23 26 13 5 28 0 14 16 15 8 3 15 24 18 4 16 23 17 28 14 4 1 24 6 16 12 3 31 14 21 12 2 5 23 1 14 9 5 17 31 21 26 13 7 12 30 10 0 11 8 12 7 2 17 26 19 29 24 19 16 18 2 18 5 24 20 29 16 30 5 1 5 4 14 26 5 6 14 24 11 2 9 21 25 12 1 4 0 7 9 2 21 8 17 30 3 28 4 22 10 4 3 18 25 19 28 3 1 6 22 18 5 10 10 2 5 8 9 24 15 29 6 14 10 18 29 6 31 7 16 1 7 8 5 30 23 26 20 27 9 12 31 20 6 18 0 4 15 30 5 3 5 10 9 25 17 22 10 24 28 23 2 13 10 18 16 1 17 28 25 30 12 24 19 8 19 24 8 19 14 28 3 2 5 13 13 3 17 24 22 16 5 9 22 28 23 30 11 20 11 22 10 14 0 4 13 15 0 14 0 3 19 24 15 2 20 23 13 19 10 12 31 0 22 15 28 4 30 22 28 6 9 3 6 26 4 14 25 11 11 28 2 13 4 20 0 6 28 7 25 2 26 22 16 22 3 25 20 21 2 28 0 24 2 20 5 11 27 13 24 18 5 7 14 25 5 24 13 24 11 26 30 13 23 22 30 2 31 7 28 3 12 0 18 24 3 6 20 27 12 12 3 28 5 15 12 5 3 30 21 10 5 6 22 28 31 12 25 19 11 23 30 14 10 4 13 31 15 9 0 3 12 8 16 4 20 23 25 19 5 28 1 14 5 21 8 4 2 14 25 2 21 2 6 27 31 28 13 16 28 29 6 16 23 30 30 30 15 22 0 9 9 24 17 12 3 29 20 19 20 20 0 12 21 19 4 6 17 24 22 12 18 1 22 26 5 6 10 20 27 27 22 15 23 6 2 4 15 15 8 3 26 6 15 30 7 24 20 27 10 4 19 4 5 20 25 8 27 7 18 4 22 1 19 26 21 30 12 4 28 23 26 13 10 4 1 8 31 7 25 2 23 8 18 4 0 28 12 22 14 28 3 18 6 20 16 3 17 6 24 6 21 1 11 26 5 14 25 23 12 25 14 15 10 12 0 28 15 16 0 9 26 2 2 23 5 12 17 27 29 6 15 17 25 13 13 13 6 0 10 5 9 1 23 1 5 8 25 23 31 21 7 21 23 30 13 7 19 16 17 11 28 18 31 29 7 23 17 27 29 6 15 17 25 13 5 11 17 24 5 9 10 10 7 3 5 8 25 23 31 21 7 21 23 6 8 27 17 31 0 2 24 16 19 24 19 30 28 20 29 30 19 13 25 13 1 0 22 30 25 22 22 5 30 26 5 16 13 22 11 28 14 15 10 10 29 8 19 8 0 2 14 0 18 30 3 2 8 19 10 20 2 16 6 13 21 3 4 28 21 4 21 1 22 25 19 22 12 30 8 22 10 21 10 2 30 18 15 13 8 3 15 24 20 4 16 28 20 19 15 28 2 18 22 22 15 3 17 16 24 12 18 3 10 26 10 14 13 2 11 24 26 22 23 6 3 4 31 7 5 1 28 8 18 6 3 6 28 21 25 12 15 21 5 13 29 4 18 14 1 26 18 3 14 26 5 22 12 30 12 21 23 14 28 4 1 18 31 10 12 3 20 1 25 23 5 12 13 15 29 4 0 12 5 13 4 5 25 30 24 2 21 7 23 1 30 30 12 24 15 30 25 13 28 12 0 12 0 11 16 3 26 6 17 30 19 0 12 20 13 12 1 18 9 20 20 29 21 30 24 16 21 9 14 25 11 14 28 23 15 29 18 14 2 4 29 16 31 7 24 4 25 24 22 0 4 6 20 27 4 12 15 13 5 15 28 4 25 6 26 6 25 7 6 27 16 6 29 28 11 21 15 15 23 4 13 3 31 9 20 2 15 0 20 30 7 30 4 19 5 20 2 2 5 24 24 6 29 24 5 31 21 1 22 25 13 30 9 24 11 4 18 15 19 12 1 6 0 7 29 1 11 24 19 8 3 31 20 19 9 12 1 18 9 20 20 29 21 30 24 16 21 9 14 25 11 14 25 25 28 28 30 13 13 28 17 8 15 12 16 4 20 8 18 4 19 30 20 27 12 12 3 2 21 16 28 4 17 22 26 16 5 7 14 26 4 14 25 7 15 30 8 31 28 24 29 25 7 7 14 18 7 10 15 31 27 0 6 3 29 30 3 27 30 14 30 20 22 26 26 5 25 1 8 9 9 26 13 1 19 30 20 31 28 24 1 25 19 14 29 9 25 22 16 8 3 29 28 21 5 12 4 24 2 18 8 3 3 14 24 6 22 1 19 25 5 24 12 0 27 27 10 14 12 4 13 3 31 9 0 2 20 24 17 10 20 5 20 27 4 12 31 20 6 22 0 4 2 14 24 10 5 10 2 20 23 14 16 26 28 4 10 21 27 28 31 6 0 7 29 4 15 24 19 26 19 28 12 20 9 28 2 22 21 18 28 3 30 6 24 4 22 1 31 25 5 8 12 2 11 29 30 13 29 28 17 4 19 7 5 27 11 0 16 24 19 0 20 20 17 4 19 6 5 13 16 5 31 30 25 6 25 4 26 1 19 14 10 18 11 25 30 15 23 6 0 14 16 12 12 27 9 24 31 25 3 26 8 20 29 4 4 18 5 26 7 11 28 14 24 26 21 1 6 26 1 22 12 30 12 21 23 14 28 4 1 18 31 10 12 3 21 18 31 27 17 31 20 20 29 14 2 18 5 13 1 4 4 28 22 30 5 3 26 27 10 30 10 30 8 21 15 15 23 20 31 14 28 7 9 27 11 0 16 24 19 0 20 20 17 4 19 6 5 13 16 5 31 30 25 22 21 1 31 25 13 30 11 20 11 29 10 14 8 20 1 4 31 8 12 3 9 24 15 2 20 27 20 27 10 20 0 18 25 21 28 3 27 14 24 30 5 3 14 26 9 6 13 12 8 30 26 16 8 28 4 4 19 7 29 29 18 0 16 30 7 24 20 20 7 28 2 18 6 17 12 5 3 30 21 0 5 7 22 28 5 8 12 20 11 24 22 14 31 20 29 24 31 13 16 10 7 10 22 18 3 3 12 20 29 6 2 18 5 21 8 6 1 22 25 10 22 5 22 25 5 30 13 20 11 29 10 14 23 14 1 8 31 7 5 1 24 0 16 30 23 0 7 20 21 20 0 18 25 19 28 3 1 6 22 18 5 3 2 25 10 14 25 19 27 21 22 14 23 4 30 2 31 7 20 2 20 16 22 30 7 8 20 19 21 28 2 16 2 13 21 4 22 30 25 16 21 4 6 19 5 16 9 30 12 23 30 13 23 22 0 14 28 9 8 3 23 24 17 22 3 0 28 19 29 28 3 2 5 20 5 11 31 5 21 30 5 3 18 25 10 22 12 18 27 4 10 21 6 20 0 12 31 0 27 4 14 24 15 24 3 0 19 27 4 12 15 21 5 17 16 4 31 30 25 22 5 9 2 27 5 22 12 18 27 4 26 14 3 30 13 3 15 14 0 2 24 16 19 26 20 0 4 22 14 4 6 18 25 14 8 11 3 9 14 11 11 1 27 4 26 8 29 19 15 11 15 18 27 3 1 14 16 8 0 2 16 24 31 31 4 30 12 20 14 4 19 20 5 13 13 3 25 22 22 0 21 1 22 27 10 22 12 18 27 4 10 21 10 2 30 18 15 13 8 3 15 24 20 4 16 28 20 19 15 28 2 18 22 22 15 3 17 16 24 12 18 3 10 26 10 14 13 2 11 24 10 21 15 20 29 24 31 9 0 4 15 0 17 30 7 0 12 20 9 4 3 18 9 15 24 5 22 14 23 10 22 5 2 25 18 6 29 8 12 25 14 14 3 30 13 5 31 14 28 2 12 24 19 8 19 25 8 20 16 18 1 10 25 13 13 4 31 22 23 22 21 1 11 26 10 30 12 26 27 31 22 7 27 12 0 4 31 7 5 1 26 22 16 2 3 25 24 21 15 12 1 18 25 19 8 3 2 14 23 12 22 1 19 26 24 12 10 16 27 23 10 15 28 20 30 14 28 7 1 1 26 14 17 22 20 3 8 19 29 30 4 14 5 22 8 4 1 30 28 2 5 11 26 1 6 6 29 28 12 28 27 18 1 21 22 8 15 14 0 2 24 24 15 2 20 27 20 27 11 12 0 2 21 19 8 4 7 22 28 30 21 5 26 1 15 6 29 14 11 3 18 14 10 10 1 12 0 21 0 9 8 16 3 2 20 29 17 27 10 20 0 14 21 13 28 5 4 28 22 0 21 5 14 27 5 8 10 14 27 4 10 21 10 2 30 18 15 13 8 3 15 24 20 4 16 28 20 19 15 28 2 18 22 22 15 3 17 16 24 12 18 3 10 26 10 14 13 2 11 24 10 21 27 20 0 6 31 14 8 1 20 24 17 2 20 27 20 27 14 4 2 18 6 13 16 3 17 30 5 31 5 10 6 26 4 14 12 8 11 21 23 13 5 4 13 3 31 9 20 2 21 16 15 26 19 23 9 20 7 28 3 28 5 22 20 5 31 24 5 31 19 1 22 26 21 14 11 12 27 26 10 13 27 4 16 7 3 22 8 2 0 8 18 30 7 24 20 20 7 28 2 18 6 17 12 5 3 14 24 10 5 10 2 20 23 14 16 26 28 4 10 21 27 20 29 8 31 7 1 1 26 6 19 14 19 23 1 19 8 4 6 18 9 22 23 3 22 6 24 10 22 5 10 27 24 28 11 24 11 30 2 14 7 28 17 12 31 7 25 2 26 22 16 22 3 25 20 21 2 28 0 10 25 13 13 5 31 30 5 31 5 3 18 26 6 22 14 30 8 23 30 14 5 4 13 21 31 7 28 2 15 0 19 30 19 0 20 20 29 22 4 28 5 13 1 3 30 30 21 20 6 3 14 26 18 6 16 24 15 4 18 14 23 6 17 9 20 15 29 11 23 18 3 29 8 31 9 28 10 21 9 15 19 15 8 5 22 14 25 10 21 8 26 27 13 30 13 8 11 21 27 14 23 12 31 0 15 9 20 2 31 24 17 16 19 23 13 19 10 12 31 0 6 17 24 4 25 6 23 6 9 2 26 1 9 22 10 26 28 4 18 15 1 20 0 12 15 9 0 9 30 24 17 0 4 28 12 20 29 22 12 18 25 30 8 4 17 8 24 10 22 9 26 26 17 14 9 12 8 30 30 13 23 22 0 8 0 11 0 3 26 30 19 2 20 23 1 19 8 4 6 18 25 18 0 4 23 6 24 2 5 16 25 1 18 14 9 26 12 30 22 15 6 12 0 4 15 22 31 9 22 16 3 6 19 29 8 19 13 20 0 30 21 22 31 12 17 24 14 28 5 16 26 1 18 14 9 8 12 28 22 13 5 4 13 5 31 15 0 2 17 16 17 30 19 25 0 21 29 22 4 28 5 13 1 5 25 6 25 28 21 8 26 1 21 6 29 28 27 27 30 13 23 14 18 15 20 14 17 6 17 9 10 26 3 2 20 20 10 12 31 14 22 24 8 4 17 16 22 6 25 7 6 27 16 6 16 16 31 21 15 13 31 28 0 24 15 15 0 1 25 24 17 30 23 30 12 20 14 4 1 24 2 15 0 4 19 6 24 2 21 1 15 26 23 14 13 8 11 27 22 15 25 4 29 2 15 16 31 9 14 24 31 5 19 30 16 20 11 12 2 14 21 14 0 4 15 30 5 3 21 9 26 26 21 30 12 26 12 30 22 15 23 22 30 2 31 7 28 3 12 0 18 24 3 6 20 27 29 28 0 18 25 15 0 4 17 16 22 0 21 1 22 27 10 22 12 18 27 4 10 21 9 6 18 19 20 14 17 6 17 1 12 28 20 23 13 20 13 28 2 30 22 15 24 3 4 30 25 6 21 1 19 26 21 30 12 30 24 26 2 16 8 20 1 8 0 14 8 1 7 0 18 30 19 23 5 20 29 12 15 17 6 17 12 5 4 6 24 26 5 10 26 1 25 24 28 17 29 10 7 17 23 29 Завдання Зашифрувати Слово відкритого тексту за алгоритмом RSA. Слово визначається останньою буквою і НЗК. Для генерування ключів використати числа p та q, які визначаються передостанньою цифрою j НЗК. i Слово j p q  3 ТРИ 0 3 17   Теоретичні відомості Генерування ключів. Вибирають два досить великі прості числа . Для їх добутку  значення функції Ойлера дорівнює . Далі випадковим чином вибирають елемент , що не перевищує значення  і взаємно простий з ним. Іншими словами,  є випадковим елементом із множини . Для  за алгоритмом Евкліда знаходять елемент , обернений до  в , тобто такий, що  і . Як результат покладають: Відкритий ключ: Таємний ключ:. Шифрування відбувається блоками. Для цього повідомлення записують у цифровій формі і розбивають на блоки так, що кожен блок позначає число, яке не перевищує . Якщо блок записаний у вигляді двійкового слова довжини , то повинна виконуватись нерівність . Блок  розглядається як елемент кільця  і як такий, може підноситись до степеня за модулем . Алгоритм шифрування  у системі  полягає у піднесені  до степеня . Записується це так:  Вибір ключів  Зашифрування Т Р И  23 21 7    23 21 7  44 21 40   Розшифрування  Висновки Під час виконання даної курсової роботи я вдосконалив свої знання про симетричне і асиметричне шифрування, а також блокове шифрування. Проблема 1: В мові програмування С з файлу можна зчитувати інформацію побайтно (8, 16, 32, ..., n*8 біт), а в завданні поставлена задача шифрування 5-ти бітних символів. Вирішення 1: Читати в кілька байт з файлу в буфер, а потім вже операціями зсуву та побітового множення і додавання вибирати по 5 біт. Проблема 2: Співпадання деяких зашифрованих символів (шифрування RSA) з символами відкритого тексту. Вирішення 2: Не вирішена. Можливо, через те, що малі ключ і модуль. МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра автоматики та телемеханіки Курсова робота з курсу: „Методи та засоби криптографічних перетворень” на тему: “Симетричні та асиметричні методи зашифрування інформації” Виконав: ст. гр. ІБ-42 Міколяш А. Ф. Перевірив: Горпенюк А. Я. Львів – 2005
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!