Introducere în criptografia semnăturilor digitale

Semnătura digitală este o tehnică matematică criptografică pentru validarea integrității și securității datelor. Semnătura digitală cu criptografie constă în rezolvarea problemei reale a impersonării și a manipulării digitale. În cuvinte reale, pentru a împărtăși informații confidențiale și a asigura originea probelor, starea documentului electronic. Semnătura digitală criptografică utilizează un sistem de chei public / privat. Cheile au fost reprezentate într-un număr hexadecimal aleatoriu. Pentru a crea o semnătură digitală criptografică, este posibil să fie semnate o modificare simplă a datelor. Cu cheia privată se va efectua criptarea hash-ului.

Criptografia unei semnături digitale este posibilă cu doi termeni cheie:

  1. Cheie privată
  2. Cheia publică

Cheie privată : deținătorul contului deține o cheie care este un număr hexadecimal aleatoriu. Cheia privată va fi confidențială pentru titularul contului, mai degrabă decât expusă la lumea reală

Cheie publică : număr hexadecimal aleatoriu care este partajat public. Pentru a crea o semnătură digitală criptografică publică, mesajul va fi semnat mai întâi digital, apoi este criptat cu cheia privată a expeditorului și cu cheia publică a receptorului. Pentru a decripta mesajele partajate între expeditor și receptor, receptorul trebuie să decripteze stratul interior al informațiilor cu cheia publică a expeditorului și să decripteze stratul exterior al informațiilor folosind cheia privată pe care o deține receptorul.

Arhitectura criptografiei cu semnătura digitală

Pentru a efectua semnătura digitală folosind criptografie, trebuie să se efectueze următoarele:

La sfârșitul expeditorului, mesajul / informațiile ar trebui să fie criptate folosind o funcție hashing cu cheia privată a expeditorului. Informațiile vor fi transmise la sfârșitul receptorului cu modelul de semnătură digitală intermediară. La sfârșitul receptorului, receptorul verifică semnătura digitală prin decriptarea informațiilor primite cu ajutorul funcției hashing. Decriptarea se va efectua prin extragerea stratului interior folosind cheia publică și stratul exterior extras cu cheia privată. O provocare majoră pentru partajarea în siguranță a informațiilor este trimiterea mesajului într-un format criptat. În criptografie cu semnătura digitală cu cheie publică partajată cu lumea externă, există șansa ca cineva să strice criptarea.

Criptarea semnăturilor digitale poate fi realizată în două forme majore:

1. Semnătura digitală urmată de criptare

În această metodă, semnătura expeditorului este exploatată de receptor și informațiile sunt partajate cu partea externă fără criptare. Întrucât această formă este mai puțin garantată, acest lucru nu este de preferat în industrie.

2. Criptare urmată de semnătură digitală

Cea mai comună abordare în industrie este criptarea urmată de o semnătură digitală, unde expeditorul trimite datele criptate cu semnătura digitală. Când receptorul primește mesajul la sfârșitul acestuia, va decripta mesajul partajat de expeditor folosind cheia publică a expeditorului și cheia privată a acestuia.

Semnătură digitală cu criptografie cu RSA

Următorul fragment de cod va explica modul în care criptografia cu semnătura digitală este implementată în timp real în python și, de asemenea, va explica modul în care criptarea și decriptarea sunt realizate cu semnătura digitală folosind RSA. Pentru a efectua criptografie cu semnătură digitală, avem nevoie de pachetul pycrypto instalat, apoi scrieți fragmentul de mai jos.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Pentru a efectua criptografie cu semnătura digitală, avem nevoie de inițializarea cheii private și a cheii publice. Creăm o funcție pentru a genera chei RSA care vor avea o cheie privată și o cheie publică:

defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
return private_key, public_key
The above snippet returns the private key and public key.

1. Funcție de criptare

defencrypt(public_key, text):
c_text=public_key.encrypt(text, 32)(0) val_cipher=base64.b64encode(c_text)
return val_cipher

Pentru a cripta mesajul, folosim codul de mai sus, care va lua rsa_publickey și text ca parametri pentru funcția de criptare. Funcția de criptare va efectua criptarea cheii publice și va genera cifrul, cifrul generat va fi returnat atunci când apelul funcțional este invocat.

2. Funcția de decriptare

defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
return text

Criptografia cu o semnătură digitală folosind criptarea cu chei publice și decriptarea textului efectuată cu cheia privată. Pentru a înțelege semnificația textului criptat partajat ca cifru, am creat o funcție de decriptare. Funcția preia private_key și cifrarea generată de funcția de criptare. Folosind metoda de decodare creează un cifru decriptat și folosind metoda decriptată va returna textul decriptat.

3. Implementare

În acest eșantion vom analiza cum se realizează criptarea textului și cum este decriptat înapoi la textul original folosind cheia privată. Funcția de criptare și decriptare va fi utilizată în eșantion pentru a arăta cum se va cripta și cripta.

Cod:

importCrypto
fromPublicKey importRSA
fromCrypto import Random
importbase64
defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
returnprivate_key, public_key
defencrypt(public_key, plain_text):
c_text=public_key.encrypt(plain_text, 32)(0) val_cipher=base64.b64encode(c_text)
returnval_cipher
defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
returntext
private_key, public_key=rsa_keys()
txt=b"Hello Peers!"
enc_cipher=encrypt(public_key, txt)
print('**'*10)
print("The ecncrypted text is ()".format(enc_cipher))
print('**'*10)
dec_cipher=decrypt(private_key, enc_cipher) #decryption
print("The decrypted cipher text is ()".format(dec_cipher))
print('**'*10)

ieşire:

După cum putem vedea textul de intrare „Hello Peers!” Transmis funcției de criptare este criptat folosind cheia publică. Criptarea criptată transmisă ca paramă la funcția de decriptare decriptează mesajul inițial partajat folosind cheia privată a receptorului. Pentru a efectua semnătura digitală cu criptografie va fi necesară metoda „semn” și „verificare”, semnul va fi efectuat de expeditor folosind cheia privată, când informațiile sunt transferate către receptor, funcția de verificare este realizată cu cheia publică.

Meritele semnăturii digitale a criptografiei

  1. Îmbunătățirea securității transferului de informații.
  2. Îmbunătățirea fluxului de lucru mai digitalizat.
  3. Experiență mai bună a clienților.
  4. Îmbunătățirea eficienței și validității juridice.
  5. Reduce efortul manual și economisește timp.

Demerite de semnătură digitală criptografică

  1. Este nevoie de mult timp pentru verificare.
  2. Nu protejează împotriva vulnerabilităților
  3. Infrastructura și configurarea criptografiei nu sunt rentabile.

Concluzie

În lumea modernă digitală, algoritmul de semnătură digitală cu criptografie joacă un rol esențial în asigurarea unui mediu sigur și sigur și este unul dintre instrumentele mai bune pentru autentificare. În lumea în creștere tehnologică, ea își va juca rolul crucial în ceea ce privește securitatea împotriva amenințărilor și vulnerabilităților.

Articol recomandat

Acesta este un ghid pentru criptografia semnăturilor digitale. Aici vom discuta despre Arhitectura Criptografiei Semnătura Digitală împreună cu implementarea codului. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Aplicații de semnătură digitală cu funcționare
  2. Criptografie vs criptare | Top 6 Comparație
  3. Ce este criptarea asimetrică?
  4. Introducere în tipurile de semnături digitale