DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Афінні шифри

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

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

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Криптографічні системи та протоколи
Група:
БІ-31

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Лабораторна робота № 2 з дисципліни “Криптографічні системи та протоколи” на тему: “Афінні шифри ” Мета роботи: вивчитити метод шифрування тексту з допомогою афінних перетворень. 1. Завдання. Реалізувати програму, що дозволяє шифрувати інформацію з використанням афінних перетворень 2. Фрагменти тексту програми. кодування даних … int A[maxN][maxN], S[maxN]; for(int i=0;i<countSpin->Value;i++) { for(int j=0;j<countSpin->Value;j++) A[i][j]=StrToInt(keyA->Cells[j][i]); S[i]=StrToInt(keyS->Cells[0][i]); } int w=det(&A[0][0],countSpin->Value)%256; if (w<0) w+=256; int w_1, d=0; RAE(256,w,d,w_1); if(d!=1) { ShowMessage("Ключ не коректний\n(матриця А - не оборотна)"); } else { AnsiString text=placeText->Text; if(text.Length()%countSpin->Value!=0) { int m=countSpin->Value-text.Length()%countSpin->Value; for(int i=0;i<m;i++) text+=' '; } crypt(text,&A[0][0],&S[0]); placeText->Text=text; } … декодування даних … int A[maxN][maxN], S[maxN];int A_1[maxN][maxN], S_1[maxN]; for(int i=0;i<countSpin->Value;i++) { for(int j=0;j<countSpin->Value;j++) A[i][j]=StrToInt(keyA->Cells[j][i]); S[i]=StrToInt(keyS->Cells[0][i]); } int w=det(&A[0][0],countSpin->Value)%256; if (w<0) w+=256; int w_1, d=0; exEuclid(w, 256, &w_1, &d); w_1%=256; if (w_1<0) w_1+=256; if(d!=1) { ShowMessage("Ключ не коректний\n(матриця А - не оборотна)"); } else { for(int i=0;i<countSpin->Value;i++) for(int j=0;j<countSpin->Value;j++) { int addA_1[maxN][maxN]; int ii=0, jj=0, ai=0, aj=0; while(ii<countSpin->Value-1) { if(ai==i) { ai++; continue; } while(jj<countSpin->Value-1) { if(aj==j) { aj++; continue; } addA_1[ii][jj]=A[ai][aj]; aj++; jj++; } ai++; ii++; aj=0; jj=0; } A_1[j][i]=pow(-1,i+j)*det(&addA_1[0][0],countSpin->Value-1)*w_1; A_1[j][i]%=256; if (A_1[j][i]<0) A_1[j][i]+=256; } for(int i=0;i<countSpin->Value;i++) { S_1[i]=0; for(int j=0;j<countSpin->Value;j++) S_1[i]+=A_1[i][j]*S[j]; S_1[i]*=-1; S[i]%=256; if (S[i]<0) S[i]+=256; } AnsiString text=placeText->Text; crypt(text,&A_1[0][0],&S_1[0]); for(int i=text.Length();i>0;i--) if(text[i]==' ') text=text.SubString(1,text.Length()-1); placeText->Text=text; } … 5. Результати роботи  Рисунок 1 – Шифрування даних з використанням Афінних перетворень Висновок: На даній лабораторній роботі було засвоєно та реалізовано шифрування текстової інформації з використанням афінних претворень.
Антиботан аватар за замовчуванням

12.03.2013 15:39

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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