Labor at or 5

S-ar putea să vă placă și

Sunteți pe pagina 1din 3

Criptografie laborator 5

Laborator 5
1) S se scrie un program care s scrie ntr-un fiier toate numerele prime pn la o valoare dat. 2) S se scrie un program care s combine testul deterministic i testul Miller Rabin pentru stabilirea primalitii unui numr dat. 3) S se scrie un program care s genereze numere prime cu un numr dat de bii. 4) S se scrie un program pentru factorizarea unui numr de forma p*q, unde p i q sunt numere prime. 5) S se scrie un program pentru criptare afina pe blocuri de lungime data. Soluie parial: (pentru criptare)
#include "utile.h" void main() { citeste_alfabet(); int i,j,k,**a,*b; cout<<"\nDati lungimea blocurilor de caractere\n k="; cin>>k; cout<<"\nDati cheia de criptare:"<<endl; a=new int*[k]; for(i=0;i<k;i++){ a[i]=new int[k]; for(j=0;j<k;j++){ cout<<"a["<<i+1<<"]["<<j+1<<"]="; cin>>a[i][j]; } } cout<<endl; b=new int[k]; for(i=0;i<k;i++){ cout<<"b["<<i+1<<"]="; cin>>b[i]; } if(invers(calcul_det(a,k),N)<0){ cout<<"\nCheia nu este corecta."<<endl; return; } ifstream in("sursa.txt"); if(!in.good())perror("fisier inexistent"); ofstream out("destinatie.txt"); char *c; c=new char[k]; i=0; while(in>>noskipws>>c[i]){ if(i==k-1){ int m;

Criptografie laborator 5
for(i=0;i<k;i++){ m=0; for(j=0;j<k;j++){ m+=a[i][j]*da_cod(c[j]); } out<<da_caracter(m+b[i]); } i=0; } else i++; } cout<<"\nTextul codificat a fost scris in fisierul \"destinatie.txt\""<<endl; in.close(); out.close(); }

6) S se scrie un program pentru implementarea criptosistemului Vigenere. Soluie parial: (pentru criptare)
#include"utile.h" void main() { citeste_alfabet(); char cheie[100]; int i,k; cout<<"Programul va cripta textul introdus in fisierul \"sursa.txt\" folosind criptosistemul Vigenere."; cout<<"\nDati cheia pentru criptare"<<endl; cin.getline(cheie,100); int corect=1; for(i=0;cheie[i]!='\0';i++){ int temp=da_cod(cheie[i]); if(temp<0||temp>=N)corect=0; } k=i; if(!corect){ cout<<"\nCheia aleasa contine caractere care nu sunt in alfabet."<<endl; return; } ifstream s("sursa.txt"); ofstream d("destinatie.txt"); if(!s.good())perror("fisier inexistent"); char c; i=0; while(s>>noskipws>>c){ d<<da_caracter(da_cod(c)+da_cod(cheie[i])); i++; if(i==k)i=0; } cout<<"\nTextul codificat a fost scris in fisierul \"destinatie.txt\""<<endl; s.close(); d.close(); }

Criptografie laborator 5

S-ar putea să vă placă și