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

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

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

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

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

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

Програма шифрування #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. Афінні шифри. 
Антиботан аватар за замовчуванням

2015

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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