Documente Academic
Documente Profesional
Documente Cultură
RSA TOOLKIT
HLD + LLD
Cine a sponsorizat:
Ioan Jeleascov
A efectuat:
Filip Florin
1. Introducere 2
2. HLD 3
2.1.1 Conceptul functional al setului de utilitare 3
2.1.2 Schema functionarii, interactiunea cu utilizatorul 3
2.1.3 Interactiunea componentelor 4
2.2.1 Mediul de programare 5
2.2.2 Pattern-urile arhitecturale 6
2.2.3 Mediile de programare 6
2.2.4 Maintenance 7
2.2.4.1 Atributele calitatii 7
2.2.4.2 Ciclul de viata 7
2.2.5 Subsisteme 8
2.2.6 Interactiunea Utilizator-Aplicatie 8
3. LLD 13
3.1 Structura codului sursa 13
3.2 Fisierele aplicatiei 13
1
1. Introducere
2
2. HLD
3
In general, functionarea are loc dupa urmatorul
algoritm:
1. Apelul utilitarului necesar la moment, cu scrierea
parametrilor, ceea ce arata cam asa:
java Numele_Instrumentului_Dorit Parametrii
spre exemplu: java Cript Florin
2. Transmiterea altor parametri mai specifici necesari
functionarii cum ar fi perechea de chei publice. Aceasta
se face la cererea adresata utilizatorului de catre
aplicatie.
4
instrumentului, iar perechea de chei publice este ceruta de
utilitar pe parcursul executiei sale, astfel se faciliteaza lucrul cu
aplicatia, evitandu-se neclaritati ce ar putea sa apara daca
perechea de chei ar trebui sa fie transmisa chiar in momentul
apelului utilitarului.
Finalmente, putem decripta un mesaj. Pentru aceasta
apelam decriptorul transmitandu-i, caparametru, sirul criptat,
iar mai apoi, el ne propune sa introducem perechea de chei
private care a fost generata simultan cu perechea de chei
publice de catre generatorul de chei si, in final, obtinem
mesajul original pe care l-am criptat utilizand perechea de chei
publice obtinuta din generatorul de chei.
5
2.2.2 Pattern-urile arhitecturale
6
2.2.4 Maintenance
7
Aceasta ar putea fi numita upgrade si setul ar putea
primi versiunea 2.0, insa in cazul in care ar avea loc, va fi de
preferinta de a afirma despre produsul program obtinut ca
despre ceva nou, independent de setul de utilitare destinat sa
ajute elevii, acestea fiind 2 produse cu scopuri mult prea
diferite.
2.2.5 Subsisteme
8
si sunt prelucrate in el prin utilizarea algoritmului ce poarta
denumirea de “Algoritmul Euclid extins”, care presupune
efectuarea calculului rezultatului printr-o metoda mult mai
rapida, care este detaliat prezentata chiar utilizatorului (care se
presupune a fi un student ce verifica corectitudinea calculelor
proprii).
Spre sfarsit, fluxul de date, trecand prin prelucrarea de
catre functii, este returnat, in forma scrisa (in consola),
utilizatorului sub forma unui “tabel” in care acesta poate vedea
rezultatele calculelor intermediare si rezultatul propriu-zis al
calculului.
Asemanatoare este si functionarea secundarului utilitar
ce poarta denumirea de “Wolf_1”, sensul careia este ca
efectueaza calcule de forma: A (-1) mod B, iata cum va arata
rezultatul lucrului acestuia:
10
Atentionez faptul ca, in unele cazuri, este obligatorie
transmiterea mesajului in ghilimele, pentru a evita
transforamrea sirului de caractere, de catre consola, in
rezultatul vreunei expresii logice sau matematice.
11
</HLD> <!-- Multumesc Pentru Atentie! -->
12
3. LLD
13
Aici se efectueaza un calcul de forma A ^ B mod C.
14
Al 2-lea va fi “Wolf_1”, care face aproape acelasi lucru,
exceptie fiind faptul ca la culeaza expresii de forma:
A ^ (-1) mod C
Iata cum arata codul sursa al acestuia:
public class Wolf_1 {
public static void main(String[] args){
System.out.println("Acum va fi calculat "+ args[0] +
"^(-1) mod " + args[1]);
int n0 = n;
int b0 = b;
int t0 = 0;
int t = 1;
int q = n0 / b0;
int r = n0 - (q * b0);
while (r > 0) {
int temp = t0 - (q * t);
if (temp >= 0) {
temp = temp % n;
} else {
temp = n - ((-temp) % n);
}
System.out.println(n0 + "\t" + b0 + "\t" + q +
"\t" + r + "\t" + t0 + "\t" + t + "\t" + temp);
n0 = b0;
b0 = r;
t0 = t;
t = temp;
q = n0 / b0;
r = n0 - q * b0;
}
if (b0 != 1) {
System.out.println("b nu are inversa");
}else{
System.out.println(b + "^(-1) mod " + n + " = " + t);
}
}}
15
Urmeaza, evident, generatorul de chei, unde, deja, va fi
utilizata POO si programarea functionala, fiind initiat obiectul
clasei Scanner ce va permite citirea datelor de la tastatura (din
consola) si fiind declarate si utilizate functii. Iata fisierul:
16
17
18