Uvod u kriptografiju digitalnog potpisa

Digitalni potpis je kriptografska matematička tehnika za provjeru integriteta i sigurnosti podataka. Digitalni potpis kriptografijom želi riješiti problem u stvarnom svijetu lažnog predstavljanja i digitalnog prikraćivanja. Realnim riječima dijeliti povjerljive podatke i uvjeravati podrijetlo dokaza, status elektroničkog dokumenta. Kriptografski digitalni potpis koristi sustav javnih / privatnih ključeva. Ključevi su predstavljeni u slučajnom heksadecimalnom broju. Da biste stvorili kriptografski digitalni potpis, jednosmjerno hashing podataka koji se potpisuju. Uz privatni ključ provest će se šifriranje hash-a.

Kriptografija digitalnog potpisa moguća su s dva ključna izraza:

  1. Privatni ključ
  2. Javni ključ

Privatni ključ : Vlasnik računa drži ključ koji je nasumični šesnaestni broj. Privatni ključ bit će povjerljiviji vlasniku računa, a ne izložen stvarnom svijetu

Javni ključ : Nasumični heksadecimalni broj koji se javno dijeli. Za stvaranje javnog kriptografskog digitalnog potpisa poruka će se najprije digitalno potpisati, a zatim se šifrirati privatnim ključem pošiljatelja i javnim ključem primatelja. Za dešifriranje poruka koje se dijele između pošiljatelja i primatelja, primatelj mora dešifrirati unutarnji sloj informacija Javnim ključem pošiljatelja i dešifrirati vanjski sloj informacija pomoću privatnog ključa koji primatelj drži.

Kriptografija arhitekture digitalnog potpisa

Za digitalni potpis pomoću kriptografije potrebno je izvršiti sljedeće:

Na kraju pošiljatelja, poruka / informacija trebaju se šifrirati pomoću hashing funkcije s pošiljateljevim privatnim ključem. Podaci će biti proslijeđeni do kraja prijamnika s modelom intermedijskog digitalnog potpisa. Na kraju primatelja, prijamnik potvrđuje digitalni potpis dešifriranjem informacija koje je primio pomoću funkcije raspršivanja. Dešifriranje će se izvesti ekstrahiranjem unutarnjeg sloja javnim ključem, a vanjskog sloja izdvojenim privatnim ključem. Jedan od glavnih izazova za sigurnu razmjenu informacija je slanje poruke u šifriranom formatu. U kriptografiji s digitalnim potpisom koji ima javni ključ podijeljen s vanjskim svijetom, postoji vjerojatnost da bi netko mogao prevariti šifriranje.

Šifriranje digitalnog potpisa može se provesti u dva glavna oblika:

1. Digitalni potpis praćen enkripcijom

U ovoj metodi primatelj iskorištava potpis pošiljatelja, a informacije se dijele s vanjskom stranom bez šifriranja. Kako je ovaj oblik manje osiguran, to nije poželjno u industriji.

2. Šifriranje uz digitalni potpis

Najčešći pristup u industriji je enkripcija praćena digitalnim potpisom gdje pošiljatelj digitalnim potpisom šalje šifrirane podatke. Kad primatelj na kraju primi poruku, dešifrirat će je poruku koju je poslao pošiljatelj koristeći javni ključ i privatni ključ primatelja.

Kriptografski digitalni potpis s RSA

Sljedeći isječak koda objašnjava kako se kriptografija s digitalnim potpisom implementira u stvarnom vremenu u python te će također objasniti kako se šifriranje i dešifriranje provode digitalnim potpisom pomoću RSA. Za izvršavanje kriptografije s digitalnim potpisom potreban nam je instalirani pycrypto paket, a zatim napišite isječak dolje.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Za izvršavanje kriptografije s digitalnim potpisom potrebna nam je inicijalizacija privatnog i javnog ključa. Stvaramo funkciju za generiranje RSA ključeva koji će imati privatni i javni ključ:

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. Funkcija šifriranja

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

Za šifriranje poruke koristimo gornji kôd koji će rsa_publickey i tekst uzeti kao parametre funkciji šifriranja. Funkcija šifriranja izvršit će šifriranje javnog ključa i generirati šifru, generirana šifra vraća se kad se poziva poziv funkcije.

2. Funkcija dešifriranja

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

Kriptografija s digitalnim potpisom pomoću enkripcije javnim ključem i dešifriranje teksta koji se provode pomoću privatnog ključa. Da bismo razumjeli značenje šifriranog teksta koji se dijeli kao šifra, stvorili smo funkciju dešifriranja. Funkcija uzima private_key i šifru koju generira funkcija šifriranja. Korištenjem metode dekodiranja stvara dešifriranu šifru i pomoću metode dešifriranja vraća dekriptirani tekst.

3. Provedba

U ovom ćemo uzorku pogledati kako se provodi šifriranje teksta i kako se dešifrira natrag do izvornog teksta pomoću privatnog ključa. U uzorku će se koristiti funkcija šifriranja i dešifriranja kako bi se pokazalo kako će se šifrirati šifrirati i dešifrirati.

Kodirati:

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)

Izlaz:

Kao što vidimo, ulazni tekst "Pozdrav, vršnjaci!" Proslijeđen u funkciju šifriranja šifrira se javnim ključem. Šifrirana šifra prešla kao param u funkciju dešifriranja dešifrira izvornu poruku koja se dijeli korištenjem privatnog ključa prijemnika. Za izvršavanje digitalnog potpisa s kriptografijom bit će potrebna metoda 'sign' i 'verify', znak će izvršiti pošiljatelj pomoću privatnog ključa, a kada se podaci prebace na primatelja, funkcija verifikacije provodi se javnim ključem.

Zasluge kriptografskog digitalnog potpisa

  1. Poboljšajte sigurnost prijenosa informacija.
  2. Poboljšajte tijek rada više digitalizirano.
  3. Bolje iskustvo kupca.
  4. Poboljšajte poslovnu efikasnost i pravnu valjanost.
  5. Smanjuje ručni napor i štedi vrijeme.

Nedostaci kriptografskog digitalnog potpisa

  1. Za provjeru je potrebno puno vremena.
  2. Ne štiti od ranjivosti
  3. Infrastruktura i postavljanje kriptografije nisu povoljni.

Zaključak

U modernom digitalnom svijetu algoritam digitalnog potpisa s kriptografijom igra vitalnu ulogu u osiguravanju sigurnog okruženja i jedan je od boljih alata za provjeru autentičnosti. U rastućem tehnološkom svijetu igrat će svoju ključnu ulogu u pogledu sigurnosti od prijetnji i ranjivosti.

Preporučeni članak

Ovo je vodič za kriptografiju digitalnog potpisa. Ovdje smo raspravljali o kriptografiji arhitekture digitalnog potpisa, zajedno s implementacijom koda. Možete i proći naše druge predložene članke da biste saznali više -

  1. Softver digitalnog potpisa s radom
  2. Kriptografija vs šifriranje | Top 6 usporedba
  3. Što je asimetrična enkripcija?
  4. Uvod u vrste digitalnog potpisa

Kategorija: