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:
- Privatni ključ
- 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
- Poboljšajte sigurnost prijenosa informacija.
- Poboljšajte tijek rada više digitalizirano.
- Bolje iskustvo kupca.
- Poboljšajte poslovnu efikasnost i pravnu valjanost.
- Smanjuje ručni napor i štedi vrijeme.
Nedostaci kriptografskog digitalnog potpisa
- Za provjeru je potrebno puno vremena.
- Ne štiti od ranjivosti
- 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 -
- Softver digitalnog potpisa s radom
- Kriptografija vs šifriranje | Top 6 usporedba
- Što je asimetrična enkripcija?
- Uvod u vrste digitalnog potpisa