Inleiding tot digitale handtekeningcryptografie

Digital Signature is een cryptografische wiskundige techniek om de integriteit en beveiliging van de gegevens te valideren. Digitale handtekening met cryptografie is om het echte probleem van imitatie en digitale manipulatie op te lossen. In echte woorden om vertrouwelijke informatie te delen en de oorsprong van het bewijs te verzekeren, de status van het elektronische document. De digitale handtekening van cryptografie maakt gebruik van een openbaar / privaat sleutelsysteem. Sleutels werden weergegeven in een willekeurig hexadecimaal nummer. Om een ​​cryptografische digitale handtekening te maken, hash in één richting van te ondertekenen gegevens. Met de private sleutel zal versleuteling van hash worden uitgevoerd.

De cryptografie van een digitale handtekening is mogelijk met twee belangrijke termen:

  1. Prive sleutel
  2. Publieke sleutel

Privésleutel : de rekeninghouder heeft een sleutel die een willekeurig hexadecimaal nummer is. Private Key zal vertrouwelijk zijn voor de rekeninghouder in plaats van blootgesteld aan de echte wereld

Publieke sleutel : een willekeurig hexadecimaal nummer dat openbaar wordt gedeeld. Om een ​​openbare digitale cryptografiehandtekening te maken, wordt het bericht eerst digitaal ondertekend en vervolgens gecodeerd met de persoonlijke sleutel van de afzender en met de openbare sleutel van de ontvanger. Om de berichten te decoderen die worden gedeeld tussen de verzender en de ontvanger, moet de ontvanger de binnenste laag van de informatie decoderen met de openbare sleutel van de verzender en de buitenste laag van de informatie decoderen met behulp van de persoonlijke sleutel die de ontvanger bevat.

Digital Signature Cryptography Architecture

Om digitale handtekening met behulp van cryptografie uit te voeren, moet het volgende worden uitgevoerd:

Aan het einde van de afzender moet het bericht / de informatie worden gecodeerd met behulp van een hashfunctie met de persoonlijke sleutel van de afzender. De informatie wordt doorgestuurd naar het einde van de ontvanger met het tussenliggende digitale handtekeningsmodel. Aan het einde van de ontvanger verifieert de ontvanger de digitale handtekening door de ontvangen informatie te decoderen met behulp van de hashing-functie. De ontsleuteling wordt uitgevoerd door de binnenste laag te extraheren met behulp van de openbare sleutel en de buitenste laag met behulp van de persoonlijke sleutel. Een grote uitdaging om informatie veilig te delen, is om het bericht in een gecodeerd formaat te verzenden. In Cryptography met digitale handtekening met openbare sleutel gedeeld met de externe wereld, bestaat de kans dat iemand de codering vervalst.

Versleuteling van digitale handtekeningen kan in twee belangrijke vormen worden uitgevoerd:

1. Digitale handtekening gevolgd door codering

Bij deze methode wordt de handtekening van de afzender misbruikt door de ontvanger en wordt de informatie zonder codering met de externe partij gedeeld. Omdat deze vorm minder beveiligd is, heeft dit in de industrie niet de voorkeur.

2. Versleuteling gevolgd door digitale handtekening

De meest gebruikelijke aanpak in de industrie is codering gevolgd door een digitale handtekening waarbij de afzender de gecodeerde gegevens met de digitale handtekening verzendt. Wanneer de ontvanger het bericht aan zijn kant ontvangt, zal het het bericht delen dat door de verzender is gedeeld met behulp van de openbare sleutel van de verzender en de privésleutel van de ontvanger.

Cryptografie digitale handtekening met RSA

Het volgende codefragment legt uit hoe cryptografie met digitale handtekening in realtime in python wordt geïmplementeerd en legt ook uit hoe de codering en decodering worden uitgevoerd met digitale handtekening met behulp van RSA. Om cryptografie met digitale handtekening uit te voeren, hebben we het pycrypto-pakket nodig en schrijven we het onderstaande fragment.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Om cryptografie met de digitale handtekening uit te voeren, hebben we de initialisatie van de private sleutel en de publieke sleutel nodig. We maken een functie om RSA-sleutels te genereren met een privésleutel en een openbare sleutel:

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. Versleutelingsfunctie

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

Om het bericht te coderen, gebruiken we de bovenstaande code die rsa_publickey en tekst als parameters voor de coderingsfunctie zal gebruiken. De coderingsfunctie voert de codering van de openbare sleutel uit en genereert de codering. De gegenereerde codering wordt geretourneerd wanneer de functieaanroep wordt opgeroepen.

2. Decryptiefunctie

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

Cryptografie met een digitale handtekening met behulp van openbare sleutelcodering en tekstdecodering uitgevoerd met behulp van de privésleutel. Om de betekenis van gecodeerde tekst die als een codering wordt gedeeld te begrijpen, hebben we een decoderingsfunctie gecreëerd. De functie gebruikt private_key en de code die wordt gegenereerd door de coderingsfunctie. Met de decodeermethode maakt het een gedecodeerde codering en met de decoderingsmethode retourneert het de gedecodeerde tekst.

3. Implementatie

In dit voorbeeld zullen we kijken hoe de codering van tekst wordt uitgevoerd en hoe het wordt teruggecodeerd naar originele tekst met behulp van de persoonlijke sleutel. De functie coderen en decoderen wordt in het voorbeeld gebruikt om te laten zien hoe te coderen wordt gecodeerd en gedecodeerd.

Code:

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)

Output:

Zoals we kunnen zien, wordt de invoertekst "Hallo peers!" Doorgegeven aan de coderingsfunctie gecodeerd met de openbare sleutel. Het gecodeerde cijfer dat als parameter is doorgegeven aan de decodeerfunctie, decodeert het oorspronkelijke bericht dat wordt gedeeld met de persoonlijke sleutel van de ontvanger. Voor het uitvoeren van een digitale handtekening met cryptografie is de methode 'ondertekenen' en 'verifiëren' vereist. Het teken wordt door de afzender uitgevoerd met behulp van de privésleutel. Wanneer de informatie wordt overgedragen aan de ontvanger, wordt de functie geverifieerd met behulp van de openbare sleutel.

Merits of Cryptography Digital Signature

  1. Verbeter de beveiliging van informatieoverdracht.
  2. Verbeter de workflow meer gedigitaliseerd.
  3. Betere klantervaring.
  4. Verbetering van de bedrijfsefficiëntie en rechtsgeldigheid.
  5. Vermindert handmatige inspanning en bespaart tijd.

Demerits of Cryptography Digital Signature

  1. Het vereist veel tijd voor verificatie.
  2. Het beschermt niet tegen kwetsbaarheden
  3. Infrastructuur en het opzetten van cryptografie is niet kostenvriendelijk.

Conclusie

In de moderne digitale wereld speelt het algoritme voor digitale handtekeningen met cryptografie een cruciale rol bij het bieden van een veilige omgeving en is het een van de betere hulpmiddelen voor authenticatie. In de groeiende technologische wereld zal het een cruciale rol spelen in de beveiliging tegen bedreigingen en kwetsbaarheden.

Aanbevolen artikel

Dit is een handleiding voor digitale handtekeningcryptografie. Hier bespreken we de Digital Signature Cryptography Architecture samen met de implementatie van code. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Software voor digitale handtekeningen met werken
  2. Cryptografie versus codering | Top 6 vergelijking
  3. Wat is asymmetrische codering?
  4. Inleiding tot typen digitale handtekeningen