![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.05.2010
Сообщений: 39
|
![]()
Одноалфавитная аффинная система является симметрической;
безопасность симметричного алгоритма определяется ключом, т.о. раскрытие ключа дает возможность злоумышленнику шифровать и дешифрировать все сообщения; обобщением системы Цезаря является аффинная криптосистема, которая определяется двум числами a и b, где 0<=a,b<=n-1, числа a и n должны быть взаимно просты для биективности отображения, в противном случае возможны отображения различных символов в один и неоднозначность дешифрирования. У кого есть еще что-то полезное? Желательно на С/С++ |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 17.05.2010
Сообщений: 39
|
![]()
Пупсики, вот что-то получилось программно, может, кому-то надо будет:
#include<conio.h> #include<stdio.h> #include<math.h> #include<stdlib.h> #include<iostream.h> #include<string.h> #include<ctype.h> void obr(char p[120],char b[27],char v[120],char *z) { int n,w=0; n=strlen(p); for (int i=0;i<n;i++) { if ((p[i]==' ')||(p[i]==',')||(p[i]=='.')) for (int j=i;j<n;j++) p[j]=p[j+1]; } n=strlen(p); for (i=0;i<n;i++) for (int j=0;j<26;j++) if (p[i]==v[j]) { *(z+w)=b[j];w++; } } void main() { char a[27],q[130],c[130],d[130]; FILE *pf,*pg,*pt,*pp; int l=0,i=0,m=0,nn=0,x,y,k[27],t=0; int h[]={1,3,5,7,9,11,15,17,19,21,23,25}; clrscr(); for (i=0;i<130;i++) d[i]=0; pt=fopen("oo.txt","r"); pf=fopen("k.txt","r"); while (!feof(pf)) fgets(a,130,pf); fclose(pf); l=strlen(a); m1: cout<<"\n=======================\n" ; cout<<"\nvvedite chislo A"<< endl<<"( 1,3,5,7,9,11,15,17,19,21,23,25 ) \n\n"; cin>>x; for (i=0;i<12;i++) if (x==h[i]) nn=1; if (nn==0) { cout<<"\nchislo vvedeno neverno!"; goto m1; } m2: cout<<"\nvvedite chislo B :"<< endl<<"( ot 0 do 25 ) \n\n"; cin>>y; if (y<0 || y>26) { cout<<"\nchislo vvedeno neverno!"; goto m2; } for (i=0;i<26;i++) { k[i]=(x*i+y); if (k[i]>=26) while (k[i]>=26) k[i]=k[i]-26; } cout<<"\n"; for (i=0;i<l;i++) c[i]=a[k[i]]; cout<<"\n\n"; char ch; clrscr(); do { printf("\n\n"); do { cout<<"=========================\n" ; cout<<"1. VVOD IZ FAILA\n"; cout<<"=========================\n" ; cout<<"0. VIHOD\n\n"; cout<<"=========================\n" ; cout<<"VASH VIBOR:"; cin>>ch; } while(!strchr("120",tolower(ch))); switch(ch) { case'1': { clrscr(); for (i=0;i<l;i++) cout<<" "<<a[i]; cout<<"\n"; for (i=0;i<l;i++) cout<<" "<<c[i]; m=0; cout<<"\n"; while (!feof(pt)) { t=t+1; fgets(q,60,pt); cout<<"\n\n=======================\ n"; cout<<"\nzashifrovannaya fraza \n\n"; printf("\n%s",q); obr(q,a,c,&d[0]); m=strlen(d); cout<<"\n\n=======================\ n"; cout<<"\nrashifrovannaya fraza \n\n"; for (i=0;i<m;i++) cout<<d[i]; cout<<"\n"; if (t==1) { pp=fopen("rez4.txt","w"); fprintf(pp,"%s",d); fclose(pp); } else { pp=fopen("rez4.txt","a"); fprintf(pp,"\n%s",d); fclose(pp); } for (i=0;i<m;i++) d[i]=0; } cout<<"\n=======================\n" ; cout<<"\nnazmite lubyu klavishu"; getch(); clrscr(); break; } case'0': { t=1; exit(1); } } } while (t!=1); } |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
криптосистема Эль-Гамаля | Nanochka | Помощь студентам | 16 | 21.04.2012 10:53 |
Аффинная система подстановок Цезаря | Karyuudo | Помощь студентам | 12 | 10.02.2010 19:26 |
md5 дешифрация | Izhic | Безопасность, Шифрование | 10 | 03.08.2009 13:56 |
криптосистема rsa на delphi | Paul11j | Помощь студентам | 1 | 05.06.2009 20:41 |