Crearea cheilor pentru criptare și decriptare

Crearea și gestionarea cheilor este o parte importantă a procesului criptografic. Utilizarea algoritmilor simetrici necesită crearea unui vector cheie (IV) și a unui inițializator, care trebuie păstrat secret de la toate persoanele care nu au dreptul să decripteze datele. Pentru a utiliza algoritmi asimetrici, trebuie să creați chei publice și private. O cheie publică poate fi furnizată oricui, în timp ce o cheie privată este cunoscută numai unei persoane care trebuie să decripteze datele criptate cu o cheie publică. Secțiunea descrie crearea și gestionarea cheilor în cazul utilizării algoritmilor de criptare simetrică și asimetrică.







Clasele de criptare simetrică furnizate de .NET Framework necesită o cheie și un nou vector de inițializare (IV) pentru criptarea și decriptarea datelor. Când creați o nouă instanță a uneia dintre clasele de criptare simetrice gestionate folosind constructorul standard, se creează automat o nouă cheie și un vector de inițializare. Orice persoană care trebuie să aibă dreptul de a decripta datele trebuie să aibă aceeași cheie și vector de inițializare și să folosească același algoritm de criptare. De obicei, o nouă cheie și un vector de inițializare ar trebui recreate pentru fiecare sesiune următoare și nu ar trebui salvate pentru utilizare în următoarea sesiune.

Pentru a transmite o cheie simetrică și un vector de inițializare în partea îndepărtată, acestea sunt de obicei criptate folosind criptarea asimetrică. Transmiterea cheii și a vectorului de inițializare printr-o rețea neprotejată, fără a le cripta, nu este sigură, deoarece orice persoană care le interceptează poate decripta datele. Pentru mai multe informații despre criptarea și redirecționarea cheii și a vectorului de inițializare, consultați Crearea unei scheme criptografice.







Următorul exemplu demonstrează crearea unei noi instanțe a clasei TripleDESCryptoServiceProvider. care implementează algoritmul TripleDES.

În timpul executării acestui cod, cheia de inițializare și vectorul sunt create atunci când este creată o nouă instanță TripleDESCryptoServiceProvider. Celălalt vector de chei și de inițializare se creează atunci când se apelează metodele GenerateKey și GenerateIV.

Pentru a implementa criptarea asimetrică, .NET Framework furnizează clasele RSACryptoServiceProvider și DSACryptoServiceProvider. Aceste clase creează un set de chei publice și private atunci când utilizează constructorul standard pentru a crea o nouă instanță a clasei. Cheile asimetrice pot fi stocate pentru utilizare în mai multe sesiuni sau create separat pentru fiecare sesiune. În timp ce cheia publică poate fi făcută publică, cheia privată trebuie protejată în siguranță.

Generarea unui set format din chei publice și private se realizează atunci când se creează o nouă instanță a clasei de algoritmi asimetrici. După crearea unei noi instanțe a clasei, puteți extrage informațiile cheie într-unul din două moduri.

Metoda ToXMLString returnează informații despre cheie în format XML.

Metoda ExportParameters. care returnează structura RSAParameterelor. care conține informații cheie.

Ambele metode acceptă o valoare booleană ca parametru, ceea ce indică dacă informațiile ar trebui returnate numai despre cheia publică sau despre cheia publică și cheia privată. Clasa RSACryptoServiceProvider poate fi inițializată cu valoarea structurii RSAParameters folosind metoda ImportParameters.

Cheile private asimetrice nu trebuie să fie stocate în imprimare sau ca text simplu pe calculatorul local. Dacă trebuie să stocați o cheie privată, ar trebui să utilizați containerul cheie pentru aceasta. Pentru mai multe informații despre stocarea cheii private în containerul cheie, consultați Cum se face: Depozitarea cheilor asimetrice într-un container cheie.

Următorul exemplu creează o nouă instanță a clasei RSACryptoServiceProvider. crearea cheilor publice și private, iar informațiile despre cheia publică sunt scrise în structura RSAParameterelor.







Articole similare

Trimiteți-le prietenilor: