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