АФІННІ шифри

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

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

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

Рік:
2008
Тип роботи:
Звіт
Предмет:
Методи та засоби криптологічних перетворень
Група:
ІБ – 44

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

Міністерство освіти і науки України Національний університет “Львівська політехніка”  Звіт до лабораторної роботи №2 З курсу: “Методи і засоби криптологічних перетворень” На тему: „АФІННІ шифри” Львів – 2008 Мета: дослідити афінні шифри першого та вищих порядків.. Теоретичні відомості 1. Шифри простої заміни. n-символьний алфавіт утотожнюємо з кільцем Zn. А саме, кожна буква замінюється своїм номером у алфавіті, прийому нумерація починається з нуля. Наприклад, латинська абетка утотожнюється із Z26, а українська із Z33. Літера а української абетки трактується як 0, літера б як 1, в як 2 і т.д. Тепер до букв відкритого тексту ми можемо вільно застосовувати операції додавання та множення за відповідним модулем. Шифр зсуву. Ключ: s таке, що 0 < s < п. Шифрування. У повідомленні кожна буква х заміщується буквою Е(х) = (х + s) mod n. Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (х' + s') mod п, де s' = п - s. Величину зворотнього зсуву s' будемо називати дешифруючим ключем. Лінійний шифр. Ключ: а таке, що 0 < а < п і НСД (а, п) = 1. Шифрування. У повідомленні кожна буква х заміщується буквою Е{х) = (ах) mod n. Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (a'x') mod п, де а' — a-1 mod n — дешифруючий ключ. Узагальненням і шифру зсуву, і лінійного шифру є Афінний шифр. Ключ: a, s такі, що 0 < s < п, 0 < а <п і НСД (а, п) = 1. Шифрування. У повідомленні кожна буква х заміщується буквою Е(х) = (ах + s) mod n. Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (a'x'+ s’) mod n, де пара а’ – a-1 mod n, s’= (—a’s) mod n є дешифруючим ключем. Як і кожен шифр простої заміни, афінний шифр піддається частотному аналізові. 2. Афінні шифри вищих порядків. Подумаємо, як можна розширити монограмні шифри попереднього пункту так, щоб вони оперували з k-грамами для довільного k > 1. Спочатку введемо операцію додавання в Znk. Сумою векторів X=(x1,. . .,хk) і s=(s1,… ,sk) з Znk є вектор X + S = ((x1 + s1) mod n,…, (хk + sk) mod n). Zkn з операцією додавання є групою. Вектор —S = (n — s1,…, n — sk) є оберненим до вектора S — (s1,…,sk). Шифр зсуву k-го порядку. Ключ: S є Zkn. Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою Е(Х) = X + S. Дешифрування. Кожна k-грама X' криптотексту заміщується k-грамою D(X') = X' + 5’, де S' = —S є дешифруючим ключем. Лінійний шифр k-го порядку. Ключ: А Є GLk(Zn). Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою Е(Х)= АХ. Дешифрування. Кожна k-грама Х’ криптотексту заміщується к-грамою D(X') = A'X', де А’ = А-1 — дешифруючий ключ. Афінний шифр k-го порядку. Ключ: А Є GLk{Zn} і S Є Znk. Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою Е(Х) = АХ + S. Дешифрування. Кожна k-грама X' криптотексту заміщується k-грамою D{X’} = А’X’ + S’, де А’ = А-1 і S’ = -A’S — дешифруючий ключ. Шифр зсуву з s=54 Ключ: s=54 mod 26=2. Шифрування. У повідомленні кожна буква х заміщується буквою Е(х)= (х + s) mod n. Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (х' + s') mod п, де s' = п – s=26-2=24. Відкритий текст Iwanttogotoschool  Зашифровани текст Kycpvvqiqvquejqqn  Розшифровани текст Iwanttogotoschool   Блок схема алгоритму   Программа реалізації шифру зсуву #include<stdio.h> int main() { char c,c2[255]; int i,s=76,s1,k=0; printf("Enter text: "); s1=26-s; while (s1>26) s1-=26; while (s1<0) s1+=26; while (c!='\n') { scanf("%c",&c); i=c; if ((i>=65) && (i<=90)){ i+=s; while (i>90) i-=26; } if ((i>=97) && (i<=122)){ i+=s; while (i>122) i-=26; } c2[k]=i; k++; } printf("S=%d S'=%d\nZawufrovanuj text: ",s,s1); k=0; while(c2[k]!='\n') { printf("%c",c2[k]); i=c2[k]; if ((i>=65) && (i<=90)){ i+=s1; while (i>90) i-=26; } if ((i>=97) && (i<=122)){ i+=s1; while (i>122) i-=26; } c2[k]=i; k++; } printf("\nRozwufrovanuj text: "); k=0; while(c2[k]!='\n') { printf("%c",c2[k]); k++; } getchar(); return 0; } Результат виконання шифрування Відкритий текст Iwanttogotoschool  Зашифровани текст Kycpvvqiqvquejqqn  Розшифровани текст Iwanttogotoschool   Висновок: під час виконання даної лабораторної роботи ми ознайомилися з алгоритмом афінних шифрів та за допомогою програмної реалізації коду афінного шифру зсуву зашифрували повідомлення “I want to go to school” за допомогою ключа 76 та отримали як результат зашифрований текст Lzdqwwjrwrvfkrro.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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