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:

  1. Zasebni ključ
  2. 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

  1. Izboljšati varnost prenosa informacij.
  2. Izboljšajte potek dela bolj digitaliziran.
  3. Boljša izkušnja s strankami.
  4. Izboljšati poslovno učinkovitost in pravno veljavnost.
  5. Zmanjša ročni napor in prihrani čas.

Slabosti kriptografskega digitalnega podpisa

  1. Za preverjanje zahteva veliko časa.
  2. Ne ščiti pred ranljivostmi
  3. 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 -

  1. Programska oprema za digitalni podpis z delom
  2. Kriptografija proti šifriranju | Top 6 Primerjava
  3. Kaj je asimetrična šifriranje?
  4. Uvod v vrste digitalnega podpisa