Uvod v kriptografijo digitalnega podpisa
Digitalni podpis je kriptografska matematična tehnika za preverjanje celovitosti in varnosti podatkov. Digitalni podpis s Kriptografijo naj bi rešil resnični problem lažnega predstavljanja in digitalnega ponarejanja. Z dejanskimi besedami deliti zaupne informacije in zagotoviti dokazni izvor, status elektronskega dokumenta. Kriptografski digitalni podpis uporablja sistem javnih / zasebnih ključev. Ključi so bili predstavljeni v naključnem šestnajstiškem številu. Če želite ustvariti kriptografski digitalni podpis, je enosmerno prekrivanje podatkov, ki jih je treba podpisati. Z zasebnim ključem bo izvedeno šifriranje hash-a.
Kriptografija digitalnega podpisa je mogoča z dvema ključnima izrazoma:
- Zasebni ključ
- Javni ključ
Zasebni ključ : imetnik računa ima ključ, ki je naključno šestnajstično število. Zasebni ključ bo imetnik računa zaupnejši, ne pa izpostavljen resničnemu svetu
Javni ključ : Naključna šestnajstična številka, ki se javno objavi. Če želite ustvariti javni kriptografski digitalni podpis, bo sporočilo najprej podpisano digitalno, nato ga šifrira z zasebnim ključem pošiljatelja in z javnim ključem prejemnika. Za dešifriranje sporočil, poslanih med pošiljateljem in prejemnikom, mora prejemnik dešifrirati notranjo plast informacij z javnim ključem pošiljatelja in dešifrirati zunanjo plast informacij z zasebnim ključem, ki ga hrani sprejemnik.
Kriptografska arhitektura digitalnega podpisa
Za izvedbo digitalnega podpisa s kriptografijo je treba izvesti naslednje:
Na koncu pošiljatelja je treba sporočilo / informacijo šifrirati s funkcijo mešanja z zasebnim ključem pošiljatelja. Informacije bodo posredovane do konca sprejemnika z modelom vmesnega digitalnega podpisa. Na koncu sprejemnika sprejemnik preveri digitalni podpis z dešifriranjem prejetih informacij s funkcijo hashinga. Dešifriranje se izvede z ekstrahiranjem notranjega sloja z javnim ključem, zunanjega pa s privatnim ključem. Glavni izziv za varno izmenjavo informacij je pošiljanje sporočila v šifrirani obliki. V kriptografiji z digitalnim podpisom, ki ima javni ključ v skupni rabi z zunanjim svetom, obstaja možnost, da bi kdo šifriral šifriranje.
Šifriranje digitalnega podpisa se lahko izvede v dveh glavnih oblikah:
1. Digitalni podpis, ki mu sledi šifriranje
Pri tej metodi prejemnik izkoristi podpis pošiljatelja, informacije pa se brez šifriranja delijo z zunanjo stranjo. Ker je ta oblika manj zavarovana, v industriji to ni bolje.
2. Šifriranje, ki mu sledi digitalni podpis
Najpogostejši pristop v panogi je šifriranje, ki mu sledi digitalni podpis, kjer pošiljatelj pošlje šifrirane podatke z digitalnim podpisom. Ko prejemnik prejme sporočilo na koncu, bo dešifriral sporočilo, ki ga deli pošiljatelj, z uporabo njegovega javnega in zasebnega ključa.
Kriptografski digitalni podpis z RSA
Naslednji delček kode bo razložil, kako se kriptografija z digitalnim podpisom v realnem času izvaja v pythonu in tudi razložil, kako se šifriranje in dešifriranje izvajata z digitalnim podpisom s pomočjo RSA. Za izvajanje kriptografije z digitalnim podpisom potrebujemo nameščen paket pycrypto, nato napišite spodnji delček.
importCrypto
fromPublicKey importRSA
fromCrypto import Random
Za izvajanje kriptografije z digitalnim podpisom potrebujemo inicializacijo zasebnega in javnega ključa. Izdelamo funkcijo za generiranje ključev RSA, ki bodo imeli zasebni in 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 sporočila uporabimo zgornjo kodo, ki bo za parametre funkcije šifriranja sprejela rsa_publickey in besedilo. Funkcija šifriranja bo izvajala šifriranje javnega ključa in generirala šifro, ustvarjeni šifer se vrne, ko se prikliče klic 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 z digitalnim podpisom z enkripcijo z javnim ključem in dešifriranje besedila, ki se izvajata z zasebnim ključem. Da bi razumeli pomen šifriranega besedila, ki se deli kot šifrant, smo ustvarili funkcijo dešifriranja. Funkcija prevzame private_key in šifro, ki ga ustvari funkcija šifriranja. S pomočjo metode dekodiranja ustvari dešifrirano šifro, z uporabo metode dešifriranja pa vrne dešifrirano besedilo.
3. Izvajanje
V tem vzorcu si bomo ogledali, kako poteka šifriranje besedila in kako je razšifrirano nazaj do izvirnega besedila z zasebnim ključem. V vzorcu se bo uporabila funkcija šifriranja in dešifriranja, da se bo pokazalo, kako bo šifrirano in šifrirano.
Koda:
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)
Izhod:
Kot lahko vidimo, se vhodno besedilo "Pozdravljeni, kolegi!", Poslano v šifriranje, funkcija šifrira z javnim ključem. Šifrirana šifra, ki je kot param prešla v funkcijo dešifriranja, dešifrira prvotno sporočilo, ki je v skupni rabi z uporabo zasebnega ključa sprejemnika. Za izvedbo digitalnega podpisa s kriptografijo bosta potrebna metoda 'sign' in 'verify', znak bo izvajalec poslal z zasebnim ključem, ko se podatki prenesejo na sprejemnik, funkcija preverjanja pa se izvede z javnim ključem.
Zasluge kriptografskega digitalnega podpisa
- Izboljšati varnost prenosa informacij.
- Izboljšajte potek dela bolj digitaliziran.
- Boljša izkušnja s strankami.
- Izboljšati poslovno učinkovitost in pravno veljavnost.
- Zmanjša ročni napor in prihrani čas.
Slabosti kriptografskega digitalnega podpisa
- Za preverjanje zahteva veliko časa.
- Ne ščiti pred ranljivostmi
- Infrastruktura in nastavitev kriptografije ni cenovno ugodna.
Zaključek
V sodobnem digitalnem svetu algoritem digitalnega podpisa s kriptografijo igra ključno vlogo pri zagotavljanju varnega in varnega okolja in je eno izmed boljših orodij za preverjanje pristnosti. V rastočem tehnološkem svetu bo igrala svojo ključno vlogo na področju varnosti pred grožnjami in ranljivostmi.
Priporočeni članek
To je vodnik za kriptografijo digitalnega podpisa. Tukaj razpravljamo o kriptografski arhitekturi digitalnega podpisa skupaj z implementacijo kode. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -
- Programska oprema za digitalni podpis z delom
- Kriptografija proti šifriranju | Top 6 Primerjava
- Kaj je asimetrična šifriranje?
- Uvod v vrste digitalnega podpisa