Implementarea RSA în Delphi

Implementarea RSA în Delphi

Pentru a doua zi, caut o implementare pe Internet a RSA pe Delphi - nimic. Aveți nevoie de modul Băncii Nopadding. Poate să-mi spui - unde să o găsesc? Sau este mai bine să nu pierdeți timpul în zadar și să începeți deja să studiați literatura.








> Sau este mai bine să nu pierdeți timpul în zadar și să începeți să învățați
> literatură.

Este mai util oricum


> Pentru a doua zi caut o implementare pe Internet a RSA pe Delphi
> - nimic.

pe torry.net urmărit? Există componente și module pentru criptografie ca murdărie.

Componente LockBox. RSA și multe altele

fie proiectul este bun sau rău.

Ați folosit-o singură?

Bine, Serghei, mulțumesc pentru informații. O să știu.


> Serghei Masloff # xA0; (10/07/07 13:50) [4]

Da, ele au multe componente ale seriei TurboPower.
De asemenea, am văzut că scriu - sursa este deschisă, dar nu este open source. Înțeleg că vreau să spun că iau codul sursă, dar nu îl adăugați la sistemul de operare al proiectului. Deci?

Ie (rezumate) sunt componentele profesionale ale timpului care a fost prevăzut pentru accesul general datorită încetării vânzării și dezvoltării de către producătorul original. Deci?

Ie componentele pot fi de încredere.

> De exemplu. componentele pot fi de încredere.

AsyncPro # 151; Nitsche deci, folosesc pentru RS 485 # 133


> Este un proiect mort? tot in aceeasi perioada de lansare de 4,5 ani
> a fost ultima.

De fapt, acum algoritmul RSA este același cu 4,5 ani în urmă, deci este bine :)

> LockBox

componentele sunt bune, eu o folosesc singură în câteva proiecte, dar numai pentru hashing, pentru că cheie de viteză generație.

- Apropo, despre galaxii. Formele lor spirituale clasice erau deja cunoscute mai întâi
inventatori de telescoape - a continuat Kimi - dar a durat câteva secole,
să înțelegem în ele o adevărată reflectare a structurii universului - fibre sau, mai degrabă, straturi,
lumea noastră, interconectată cu Tamas și cu ea răsucite într-o spirală nesfârșită. și
elemente separate, de la galaxii la atomi, în fiecare etapă, cu propriile calități speciale
legi universale. Sa dovedit că lumina și alte radiații nu s-au răspândit niciodată
Universul este rectiliniu, și sunt înfășurate pe o spirală, alunecând simultan pe un helicoid și pe toate
mai desfăcând în timp ce vă îndepărtați de la observator. Compresia și
întinderea undelor luminoase cu scurtarea lor, pe măsură ce intră în adâncul spirală și aparent
zborul stelelor și al galaxiilor în bobine îndepărtate. Au rezolvat ecuația Lorentz cu aparentul său
dispariția timpului și creșterea masei la viteza luminii. Un alt pas - și a fost înțeles
zero-spațiu, ca limită între lume și anti-lume, între lumea Shakti și Tamas,
unde punctele polare ale spațiului, timpului și
energie. Zero spațiu este, de asemenea, răsucite într-o spirală, care corespunde ambelor lumi, dar ... -






Tânărul a ezitat. - Încă nu mi-am dat seama cum este posibil să se miște înăuntru
aproape imediat ajungând în orice punct al universului nostru. Mi sa spus asta
aproximativ, că nava spațială a razei directe nu urmează cursul spiral al luminii, ci ca și cum ar fi
în axa longitudinală a cohleei, folosind anizotropia spațiului. În plus, nava spațială din
timpul pare să stea în picioare, iar întreaga spirală a lumii se învârte în jurul ei ... -
Kimi, roșcându-se, și-a clătinat neputincios capul de râsul tovarășilor săi.

var
sM, sE: șir;
e, m: TFGInt;
pck, res: șir;
începe
.
Base256StringToFGInt (sM, m);
Base256StringToFGInt (sE, e);
RSAEncrypt (pck, e, m, res);
se încheie;
Am o eroare în funcția RSAEncrypt (AccessViolation)


> Nucer # xA0; (08.10.07 13:46) [14]

Și în ce formă aveți sM și sE? Numărul în reprezentarea șirului, cum ar fi "12334435" sau un buffer binar?

procedura TForm1.btnRandomClick (expeditor: TObject);
var
pck, res, sM, sE: șir;
i: întreg;
m, e: TFGInt;
începe
Randomizează;
sM: = "";
pentru i: = 1 până la 128 nu sM: = sM + chr (aleatoriu (256));
sE: = # 1 # 0 # 0 # 0 # 1;
pck: = "";
pentru i: = 1 până la 128 pck: = pck + chr (aleatoriu (256));

PrintPck (pck, m1.Lines);
PrintPck (res, m2.Lines);
se încheie;
La ce nu se produce întotdeauna o eroare


> Nucer # xA0; (08.10.07 14:09) [16]

Și de ce pentru algoritmul RSA generați modulul aleatoriu? Acesta ar trebui să fie produsul a două premii mari.

și generați numerele corecte d, q, e, n.

Am luat cheia reală. Nu există nici o greșeală. Dar a apărut întrebarea - de ce lungimea datelor criptate este de 256 octeți, când blocul de date este inițial luat în 128 de octeți?

La urma urmei, blocul criptat este restul de împărțire de către modul (și lungimea sa este de 128 octeți).


> Nucer # xA0; (08.10.07 14:21) [21]

În măsura în care înțeleg, lungimea textului cifrat în RSA nu poate fi mai mică decât lungimea cheii, deși probabil mă înșel.

Deci, cheia este de 128 octeți, datele sunt 128 de octeți, iar rezultatul este de 256 octeți (primele 128 sunt aproape întotdeauna aceleași).

# xA0; În timp ce (tempstr2 [1] = "0") Și (lungime (tempstr2)> 1) Ștergeți (tempstr2, 1, 1);
# xA0; ConvertBase2To256 (tempstr2, E);
# xA0; FGIntDestroy (zero);
End;
De ce este interesant să adăugați 3 unități în blocul meu de date

Ca rezultat, 3 blocuri sunt adăugate la blocul de date, iar apoi este atinsă cu zerouri până la lungimea de multiplicitate (modb) -1


> De ce este interesant să adăugați 3 unități în blocul meu de date

Sincer, nu-mi amintesc subtilitățile implementării RSA, puteți citi oriunde, poate că dimensiunea blocului de date ar trebui să fie un multiplu de ceva, dacă nu, o coadă este adăugată la ea. Și ce diferență! Are funcția de criptare / decriptare?

De ce a fost interesant să organizăm această inițiativă.


> De ce a fost interesant să organizăm această inițiativă.

Se pare că nu este un accident. Deci este cineva de care ai nevoie (cu).

Aplicația mea ar trebui să cripteze datele și să le transmită doar unui server scris în Java și utilizând modul nopadding al BCE.
Imediat algoritm RSAEncrypt scris pentru a cripta datele în diferite lungimi și pentru aceasta el adaugă etichete de date pentru a RSADecrypt proceduri proprii ar putea reduce excesul de moloz și de a restabili datele.


> Aici, algoritmul RSAEncrypt este scris pentru a cripta
> date de lungimi diferite și pentru aceasta se adaugă la date
>, astfel încât procedura proprie RSADecrypt ar putea reduce
> gunoi excesiv și restaurați datele.

Ei bine, ti-ai raspuns la intrebarea ta. Nu esti sigur de exact ce ai nevoie, dar te poti uita la OpenPGP?

Ins, o mulțime de mulțumiri pentru ajutorul tău. Am reușit ca urmare a unui apel către FGIntMontgomeryModExp (deși era necesar să răsturnăm datele). Am fost deja surprins când serverul a acceptat pachetul și a trimis un răspuns.


> Nucer # xA0; (08.10.07 16:12) [32]

Da, deloc, tu ai facut totul :)


> dar toate acestea sunt meserii. este mai bine să utilizați Windows crypto API

asta nu merită. Am prins atât de mult rake, mai ales cu informații cheie.

și de către sabzh: căutarea unor module de implementare a sistemului EDS rus a venit peste FGInt.
în arhivă este mu'ul FGIntRSA și un exemplu pe pascal liber, dacă nu îl găsești pe Asya, o să trimit.

există locuri)
acum mă voi obișnui cu noul client, voi deveni un cititor. )







Articole similare

Trimiteți-le prietenilor: