Програма шифрування

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

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

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

Рік:
2025
Тип роботи:
Інші
Предмет:
Інші

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

Програма шифрування #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <math.h> const size_t small_buff = 20; const size_t big_buff = 1024000; char binarn(char a, int n, int m); void main() { clrscr(); char text[small_buff]; char btext[big_buff]; FILE *infile = fopen( "f:\\cc.txt", "rb" ); FILE *outfile = fopen( "f:\\result1.txt", "wb" ); size_t read_len = 0; size_t file_len = 0; while( read_len = fread(text, 1, small_buff, infile ) ) { memcpy( btext + file_len, text, read_len ); file_len += read_len; } int q,f,p,k,i,e,chuslo;q=5;p=13; chuslo=q*p; char slovo,slovo1,z; f=chuslo-p-q+1; printf(”vvedit proste chuslo e v mezax= “); printf(“%d\n”,f); printf("e="); scanf(“%d”,&e); for(i=0;i<=e;i++) { if (1==e*i%f) {k=i;break;} else k=0; } for(i=0,j=0;i<=file_len-2;i=i=3,j=j=4){ Z1=bigtext[i]; Z2= bigtext[i+1]; Z3= bigtext[i+2]; slovo=perevorot(Z1); text=zad(slovo,6,text); bigtextt[j]=text; text=0; text=zad(slovo,2,text); slovo=perevorot(Z11); text=zad(slovo,4,text); bigtextt[j+1]=text; text=0; text=zad(slovo,4,text); slovo=perevorot(Z111); text=zad(slovo,2,text); bigtextt[j+2]=text; text=0; text=zad(slovo,6,text); bigtextt[j+3]=text; } for(int j1=0;j1<file_len-2;j1=j1+2) { for(int j=1;j>=0;j--) {for (int i=0;i<13;i++) { z=(z<<1) | btext[j+j1] & 1; btext[j+j1]= (btext[j+j1]>>1); } }char slovo=0; int perevorot(int z) {int slovo; for (int i=0;i<8;i++) { slovo=(slovo<<1) | z & 1; z= (z>>1); } return slovo;} int zad(int slovo,int n,int z1) {int zz=0; for (int i=0;i<n;i++) { z1=(z1<<1) | slovo & 1; slovo = (slovo >>1); } zz=z1; return zz;} slovo=binarn(slovo,e,chuslo); for (int i=0;i<13*2;i++) { z=(z<<1) | slovo& 1; slovo= (slovo>>1); } for( j=1;j>=0;j--) { for (i=0;i<13;i++) { btext[j+j1]=(btext[j+j1]<<1) | z & 1; z= (z>>1) ; } } } fwrite( btext, 1, file_len, outfile ); fclose( infile ); fclose( outfile ); getch(); } char binarn(char a, int n, int m) { if (n == 1) return a % m; char z; z = binarn(a, n / 2, m); z = (z * z) % m; if (n % 2 == 1) z = (z * a) % m; return z; } текст повідомлення: 25 11 5 крипто текст: 25 46 5 Програма шифрування #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <math.h> const size_t small_buff = 20; const size_t big_buff = 102400; void main() { clrscr(); char text[small_buff]; char bigtext[big_buff]; FILE *infile = fopen( "f:\\cc.txt", "r" ); /*відкриваєм файл*/ size_t read_len = 0; size_t file_len = 0; while( read_len = fread(text, 1, small_buff, infile ) ) /*знаходимо довжину файлу*/ { memcpy( bigtext + file_len, text, read_len ); file_len += read_len; } for(i=0,j=0;i<=file_len-2;i=i=3,j=j=4){ Z1=bigtext[i]; Z2= bigtext[i+1]; Z3= bigtext[i+2]; slovo=perevorot(Z1); text=zad(slovo,6,text); bigtextt[j]=text; text=0; text=zad(slovo,2,text); slovo=perevorot(Z11); text=zad(slovo,4,text); bigtextt[j+1]=text; text=0; text=zad(slovo,4,text); slovo=perevorot(Z111); text=zad(slovo,2,text); bigtextt[j+2]=text; text=0; text=zad(slovo,6,text); bigtextt[j+3]=text; } int j,a3,a1,a2,i; int klych1[]={1,1,1,0,0,1,0,0}; int klych2[]={0,1,1,0,0,1,1, 0}; int klych3[]={1,1,0,1,0,0,0,0}; int zsyv1[]={0,1,1,0,0,0,0,0}; int zsyv2[]={0,1,1,0,0,0,0,0}; int zsyv3[]={0,1,1,1,0,0,0,0}; int kk,b1,b2,b3,k[13]; char zyb1; kk=pow(2,13); for(i=0;i<13;i++) {k[i]=0;} for(i=0;i<13;i++) {{ if (1==klych1[i]) k[i]=pow(2,i); else k[i]=0;} a1=a1+k[i];} for(i=0;i<13;i++) {{ if (1==zsyv1[i]) k[i]=pow(2,i); else k[i]=0;} b1=b1+k[i];} for(i=0;i<13;i++) {{ if (1==klych2[i]) k[i]=pow(2,i); else k[i]=0;} a2=a2+k[i];} for(i=0;i<13;i++) {{ if (1==zsyv2[i]) k[i]=pow(2,i); else k[i]=0;} b2=b2+k[i];} for(i=0;i<13;i++) {{ if (1==klych3[i]) k[i]=pow(2,i); else k[i]=0;} a3=a3+k[i];} for(i=0;i<13;i++) {{ if (1==zsyv3[i]) k[i]=pow(2,i); else k[i]=0;} b3=b3+k[i];} kk=pow(2,13); for(j=0;j<file_len-3;j=j+3) { bigtext[j]=bigtext[j]*a1+ bigtext[j+3]*a2+ bigtext[j+6]*a3+b1; bigtext[j]=bigtext[j]%kk; bigtext[1+j]=bigtext[1+j]*a1+ bigtext[1+j+3]*a2+ bigtext[1+j+3+3]*a3+b2; bigtext[1+j]=bigtext[1+j]%kk; bigtext[2+j]=bigtext[2+j]*a1+ bigtext[2+j+3]*a2+ bigtext[2+j+3+3]*a3+b3; bigtext[2+j]=bigtext[2+j]%kk; } FILE *outfile = fopen( "f:\\resul.txt", "w" ); fwrite( bigtext, 1, file_len, outfile ); fclose( infile ); fclose( outfile ); } int perevorot(int z) {int slovo; for (int i=0;i<8;i++) { slovo=(slovo<<1) | z & 1; z= (z>>1); } return slovo;} int zad(int slovo,int n,int z1) {int zz=0; for (int i=0;i<n;i++) { z1=(z1<<1) | slovo & 1; slovo = (slovo >>1); } zz=z1; return zz;} текст повідомлення: whoisonthefloor крипто текст: ewiodkfmoeops Блок схема програми зашифрування лінійним афінним шифром  SHAPE \* MERGEFORMAT  Заносимо у файлу I=0…6 i=i+1 Початок 1==key[i] k1[i]=pow(2,i); a=a+k1[i]; I=0..file_len-2 i++ big_text[j]=big_text[j]*a; big_text[j]=big_text[j]%k2; Зчитуємо з файлу кінець  Блок-схема програми зашифрування алгоритмом RSA  SHAPE \* MERGEFORMAT  початок Зчитування з файлу Знаходимо довжину тексту J1=0..file_len j1=j1+2 J=1…0 j=j-1 I=0..13 i=i+1 btext[j+j1]=(btext[j+j1]<<1) | z & 1; z= (z>>1) ; z=binarn(z,e,n1); J=1…0 j=j-1 I=0..6 i=i+1 btext[j+j1]=(btext[j+j1]<<1) | z & 1; z= (z>>1) ; кінець  Завдання №1 Симетричне шифрування Вибрати ключі та розробити програму для зашифрування файлу даних лінійним афінним шифром 3-ого порядку (2 + 1 mod 4 = 3). Об’єм афлавіту NA повинен становити 64 (25+1 = 26 = 64). Завдання №2 Асиметричне шифрування Зашифрувати слово ХІД відкритого тексту за алгоритмом RSA. Дані параметри згідно з варіантом: p = 5, q = 13; n = p * q = 658; phi(n) = (p - 1) * (q - 1) = 48; е = 17, було обране навмання з діапазону 1 < e < phi(n), таке що НСД(е, phi(n)) = 1. Представлення слова ХІД у цифровій формі Х=25 І=11 Д=5, тобто {25,11,5}. 1. Афінні шифри. 
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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