Introduction à la cryptographie à signature numérique

La signature numérique est une technique mathématique cryptographique pour valider l'intégrité et la sécurité des données. La signature numérique avec la cryptographie vise à résoudre le problème réel de l'usurpation d'identité et de la falsification numérique. En termes réels pour partager des informations confidentielles et assurer l'origine des preuves, le statut du document électronique. La signature numérique de cryptographie utilise un système de clé publique / privée. Les clés étaient représentées dans un nombre hexadécimal aléatoire. Pour créer une signature numérique cryptographique, hachage unidirectionnel des données à signer. Avec la clé privée, le cryptage du hachage sera effectué.

La cryptographie d'une signature numérique est possible avec deux termes clés:

  1. Clé privée
  2. Clé publique

Clé privée : le titulaire du compte détient une clé qui est un nombre hexadécimal aléatoire. La clé privée sera confidentielle pour le titulaire du compte plutôt que exposée au monde réel

Clé publique : nombre hexadécimal aléatoire partagé publiquement. Pour créer une signature numérique de cryptographie publique, le message sera d'abord signé numériquement, puis il sera crypté avec la clé privée de l'expéditeur et avec la clé publique du récepteur. Pour décrypter les messages partagés entre l'expéditeur et le destinataire, le destinataire doit décrypter la couche interne des informations avec la clé publique de l'expéditeur et décrypter la couche externe des informations à l'aide de la clé privée que détient le destinataire.

Architecture de cryptographie à signature numérique

Pour effectuer une signature numérique à l'aide de la cryptographie, les opérations suivantes doivent être effectuées:

Du côté de l'expéditeur, le message / les informations doivent être chiffrés à l'aide d'une fonction de hachage avec la clé privée de l'expéditeur. Les informations seront transmises à l'extrémité du récepteur avec le modèle de signature numérique intermédiaire. Du côté du récepteur, le récepteur vérifie la signature numérique en déchiffrant les informations reçues à l'aide de la fonction de hachage. Le décryptage sera effectué en extrayant la couche interne à l'aide de la clé publique et la couche externe extraite à l'aide de la clé privée. Un défi majeur pour partager des informations en toute sécurité est d'envoyer le message dans un format crypté. Dans Cryptography avec signature numérique ayant une clé publique partagée avec le monde extérieur, il y a une chance que quelqu'un puisse usurper le cryptage.

Le cryptage des signatures numériques peut être effectué sous deux formes principales:

1. Signature numérique suivie d'un cryptage

Dans cette méthode, la signature de l'expéditeur est exploitée par le récepteur et les informations sont partagées avec la partie externe sans chiffrement. Ce formulaire étant moins sécurisé, ce n'est pas préférable dans l'industrie.

2. Cryptage suivi d'une signature numérique

L'approche la plus courante dans l'industrie est le chiffrement suivi d'une signature numérique où l'expéditeur envoie les données chiffrées avec la signature numérique. Lorsque le destinataire reçoit le message de son côté, il déchiffre le message partagé par l'expéditeur à l'aide de la clé publique de l'expéditeur et de la clé privée du destinataire.

Signature numérique de cryptographie avec RSA

L'extrait de code suivant expliquera comment la cryptographie avec signature numérique est implémentée en temps réel en python et expliquera également comment le cryptage et le décryptage sont effectués avec la signature numérique à l'aide de RSA. Pour effectuer la cryptographie avec signature numérique, nous avons besoin du package pycrypto installé, puis écrivez l'extrait ci-dessous.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Pour effectuer la cryptographie avec la signature numérique, nous avons besoin de l'initialisation de la clé privée et de la clé publique. Nous créons une fonction pour générer des clés RSA qui auront une clé privée et une clé publique:

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. Fonction de cryptage

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

Pour crypter le message, nous utilisons le code ci-dessus qui prendra rsa_publickey et text comme paramètres pour la fonction de cryptage. La fonction de chiffrement effectuera le chiffrement à clé publique et générera le chiffrement, le chiffrement généré est retourné lorsque l'appel de fonction est appelé.

2. Fonction de décryptage

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

Cryptographie avec signature numérique utilisant le cryptage à clé publique et le décryptage de texte effectué à l'aide de la clé privée. Pour comprendre la signification du texte chiffré partagé en tant que chiffre, nous avons créé une fonction de déchiffrement. La fonction prend private_key et le chiffre généré par la fonction de chiffrement. En utilisant la méthode de décodage, il crée un chiffrement déchiffré et en utilisant la méthode de déchiffrement, il retournera le texte déchiffré.

3. Mise en œuvre

Dans cet exemple, nous verrons comment le cryptage du texte est effectué et comment il est décrypté pour revenir au texte d'origine à l'aide de la clé privée. La fonction de chiffrement et de déchiffrement sera utilisée dans l'exemple pour montrer comment chiffrer sera chiffré et déchiffré.

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)

Production:

Comme nous pouvons le voir, le texte d'entrée «Bonjour les pairs!» Transmis à la fonction de chiffrement est chiffré à l'aide de la clé publique. Le chiffrement chiffré transmis en tant que paramètre à la fonction de déchiffrement déchiffre le message d'origine partagé à l'aide de la clé privée du récepteur. Pour effectuer la signature numérique avec la cryptographie, il faudra la méthode `` signer '' et `` vérifier '', le signe sera effectué par l'expéditeur à l'aide de la clé privée, lorsque les informations sont transférées au destinataire, la fonction de vérification est effectuée à l'aide de la clé publique.

Avantages de la signature numérique de la cryptographie

  1. Améliorez la sécurité du transfert d'informations.
  2. Améliorez le flux de travail plus numérisé.
  3. Meilleure expérience client.
  4. Améliorez l'efficacité commerciale et la validité juridique.
  5. Réduit l'effort manuel et fait gagner du temps.

Démérites de la signature numérique de la cryptographie

  1. Cela nécessite beaucoup de temps pour la vérification.
  2. Il ne protège pas contre les vulnérabilités
  3. L'infrastructure et la mise en place de la cryptographie ne sont pas économiques.

Conclusion

Dans le monde numérique moderne, l'algorithme de signature numérique avec cryptographie joue un rôle vital en fournissant un environnement sûr et sécurisé et est l'un des meilleurs outils d'authentification. Dans un monde technologique en pleine croissance, il jouera son rôle crucial en termes de sécurité contre les menaces et les vulnérabilités.

Article recommandé

Ceci est un guide de la cryptographie à signature numérique. Nous discutons ici de l'architecture de cryptographie à signature numérique ainsi que de l'implémentation du code. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Logiciels de signature numérique avec travail
  2. Cryptographie vs cryptage | Comparaison des 6 meilleurs
  3. Qu'est-ce que le chiffrement asymétrique?
  4. Introduction aux types de signature numérique