Sissejuhatus digitaalallkirja krüptograafiasse

Digitaalallkiri on krüptograafiline matemaatiline tehnika andmete terviklikkuse ja turvalisuse kinnitamiseks. Digitaalallkiri koos krüptograafiaga aitab lahendada esinemisprobleeme ja digitaalset võltsimist. Konfidentsiaalse teabe jagamiseks ja tõendite päritolu tagamiseks elektroonilise dokumendi olek päris sõnades. Krüptograafia digitaalallkiri kasutab avaliku / privaatvõtme süsteemi. Klahvid olid esindatud juhusliku kuueteistkümnendarvuna. Krüptograafilise digitaalallkirja loomiseks tuleb allkirjastatavate andmete ühesuunaline räsimine. Privaatvõtme korral toimub räsi krüptimine.

Digitaalallkirja krüptograafia on võimalik kahel põhiterminil:

  1. Privaatne võti
  2. Avalik võti

Privaatne võti : kontoomanikul on võti, mis on juhuslik kuueteistkümnendarv. Privaatvõti on kontoomaniku jaoks konfidentsiaalne, mitte aga reaalainetega nähtav

Avalik võti : juhuslik kuueteistkümnendarv, mida jagatakse avalikult. Avaliku krüptograafia digitaalallkirja loomiseks allkirjastatakse teade kõigepealt digitaalselt, seejärel krüpteeritakse see saatja privaatvõtmega ja vastuvõtja avaliku võtmega. Saatja ja vastuvõtja vahel jagatud teadete dekrüpteerimiseks peab vastuvõtja dekrüpteerima teabe sisemise kihi saatja avaliku võtmega ja dekrüpteerima teabe välimise kihi vastuvõtja käes oleva privaatvõtme abil.

Digitaalallkirja krüptograafiaarhitektuur

Krüptograafia abil digitaalallkirja andmiseks tuleb teha järgmist:

Saatja lõpus peaks sõnum / teave olema krüptitud, kasutades rämpsfunktsiooni saatja privaatse võtmega. Teave edastatakse vastuvõtja lõppu vahepealse digitaalallkirja mudeli abil. Vastuvõtja kontrollib vastuvõtja digitaalallkirja, dekrüpteerides räsimisfunktsiooni abil saadud teabe. Dekrüptimine toimub sisemise kihi ekstraheerimise teel avaliku võtme abil ja välimise kihi ekstraheerimisega privaatvõtme abil. Üks peamisi väljakutseid teabe turvaliseks jagamiseks on sõnumi saatmine krüpteeritud kujul. Krüptograafias, mille digitaalallkirja puhul on avalik võti jagatud välismaailmaga, on võimalus, et keegi võib krüptimist rikkuda.

Digitaalallkirjade krüpteerimist saab läbi viia kahes peamises vormis:

1. Digitaalallkiri, millele järgneb krüpteerimine

Selle meetodi puhul kasutab vastuvõtja saatja allkirja ja teavet jagatakse välise osapoolega ilma krüpteerimiseta. Kuna see vorm on vähem turvaline, pole see tööstuses eelistatav.

2. Krüptimine, millele järgneb digitaalallkiri

Tööstuses on kõige levinum lähenemisviis krüptimine, millele järgneb digitaalallkiri, mille korral saatja saadab krüptitud andmed digitaalallkirjaga. Kui vastuvõtja saab selle lõpus teate, dekrüpteerib saatja jagatud sõnumi saatja avaliku võtme ja vastuvõtja privaatvõtme abil.

Krüptograafia digitaalallkiri RSA-ga

Järgnev koodilõik selgitab, kuidas digitaalse allkirjaga krüptograafiat reaalajas pythonis rakendatakse, ning samuti selgitatakse, kuidas krüptimine ja dekrüptimine toimub digitaalallkirjaga, kasutades RSA. Digitaalallkirjaga krüptograafia teostamiseks on vaja installitud pücrypto paketti, seejärel kirjutage allpool olev katkend.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Digitaalallkirjaga krüptograafia teostamiseks vajame privaatvõtme ja avaliku võtme lähtestamist. Loome funktsiooni RSA võtmete genereerimiseks, millel on privaatne ja avalik võti:

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. Krüptimisfunktsioon

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

Sõnumi krüptimiseks kasutame ülaltoodud koodi, mis võtab krüptimisfunktsiooni parameetriteks rsa_publickey ja teksti. Krüptimisfunktsioon viib läbi avaliku võtme krüptimise ja genereerib šifri, genereeritud šifr tagastatakse funktsioonikõne käivitamisel.

2. Dekrüptimisfunktsioon

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

Krüptograafia digitaalallkirjaga, kasutades avaliku võtme krüptimist ja teksti dekrüpteerimist, kasutades privaatvõtit. Šifrina jagatud krüptitud teksti tähenduse mõistmiseks oleme loonud dekrüpteerimisfunktsiooni. Funktsioon võtab private_key ja krüptimisfunktsiooni genereeritud šifri. Dekodeerimismeetodi abil loob see dekrüptitud šifri ja dekrüptimismeetodi abil tagastab dekrüptitud teksti.

3. Rakendamine

Selles proovis vaatleme, kuidas toimub teksti krüptimine ja kuidas see dekrüptitakse tagasi privaatse võtme abil algteksti juurde. Krüptimise ja dekrüptimise funktsiooni kasutatakse valimis selleks, et näidata, kuidas krüptitakse ja dekrüptitakse krüptimine.

Kood:

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)

Väljund:

Nagu näeme krüptimisfunktsiooni edastatud sisestusteksti “Tere Peers!” Krüptimist, kasutatakse avalikku võtit. Krüptitud funktsioon, mis edastati dekrüpteerimisfunktsioonile, dekrüpteerib vastuvõtja privaatvõtme abil jagatud originaalsõnumi. Krüptograafia abil digitaalallkirja andmiseks on vaja meetodeid 'allkirjastada' ja 'kinnitada', teostab märgi saatja, kasutades privaatvõtit. Kui teave edastatakse vastuvõtjale, viiakse kinnitusfunktsioon läbi avaliku võtme abil.

Krüptograafia digitaalallkirja eelised

  1. Parandada teabe edastamise turvalisust.
  2. Parandage töövoogu digitaliseeritumaks.
  3. Parem kliendikogemus.
  4. Parandada äritegevuse tõhusust ja õiguslikku kehtivust.
  5. Vähendab käsitsi tehtavat pingutust ja säästab aega.

Krüptograafia digitaalallkirja halvad küljed

  1. Kontrollimine nõuab palju aega.
  2. See ei kaitse haavatavuste eest
  3. Infrastruktuur ja krüptograafia seadistamine pole kulusõbralikud.

Järeldus

Kaasaegses digimaailmas mängib krüptograafiaga digitaalallkirja algoritm üliolulist rolli turvalise ja turvalise keskkonna tagamisel ning on üks paremaid autentimisvahendeid. Kasvavas tehnoloogiamaailmas mängib see oma olulist rolli ohtude ja haavatavuste vastase turvalisuse osas.

Soovitatav artikkel

See on digitaalallkirja krüptograafia juhend. Siin käsitleme digitaalallkirja krüptograafiaarhitektuuri koos koodi juurutamisega. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Digitaalallkirja tarkvara koos töötamisega
  2. Krüptograafia vs krüptimine | Kuue parima võrdlus
  3. Mis on asümmeetriline krüptimine?
  4. Sissejuhatus digitaalallkirjade tüüpidesse

Kategooria: