Dans un monde numérique, garantir l’authenticité des messages est crucial.
Sans vérification de l’origine et de l’intégrité, les informations peuvent être falsifiées, compromettant la sécurité.
Les signatures numériques offrent une solution fiable pour authentifier et protéger vos communications.
Initiez-vous à la Blockchain et explorez ses principes fondamentaux.
Signature numériques
On utilise une signature numérique premièrement pour vérifier l’authentification de l’origine ça veut dire si une personne va nous envoyer un message on va vérifier son authentification.
Deuxièmement grâce à la signature numérique on peut vérifier l’intégrité du message à travers l’utilisation des fonctions de hachage
Pour la signature on a deux étapes premièrement signer le document ensuite vérifier ce document parmi l’un des éléments nécessaires de la signature numérique c’est premièrement le message la deuxième chose c’est l’empreinte ou bien le hash ensuite la clé privée est finalement la signature.
La première chose, ça va consister à faire une empreinte ou bien un hash du document qu’on veut signer.
Pourquoi on va prendre le hash et non pas signer le document en entier ?
Parce que ça va jouer sur la vitesse de la signature. Au lieu de signer tout le document, on va signer Une petite partie, c’est l’empreinte du document qui va représenter la totalité du document.
Pour vérifier une signature, s’il est valide ou pas, on va utiliser la clé publique. Si les signatures sont identiques, donc on a pu vérifier la non-réputation. Par contre, si quelqu’un veut, par exemple, modifier un document, il va falloir y avoir la signature. Et donc, quand on va passer à l’étape de la vérification, on va vérifier que les deux signatures ne sont pas identiques et donc, quelqu’un d’autre a pu modifier ce document et donc, on va savoir qu’il existe une personne malveillante.
Algorithmes signatures numériques
Parmi l’un des algorithmes de génération des clés et des signatures il y a l’RSA et DSA. RSA est un algorithme asymétrique.
Pour le somme de contrôle ou bien pour les fonctions de hachage pour générer les empreintes, on peut utiliser le SHA ou bien le MD5. il existe plusieurs fonctions de hachage qu’on peut les utiliser, peu importe l’algorithme, mais le concept reste le même.
Implémentation
On va faire une démonstration à travers un code Python dans lequel on va essayer de signer un message. Cette méthode peut s’appliquer que ce soit sur un fichier ou bien une image. Il suffit juste de convertir l’image ou bien notre fichier d’un type de codage textuel et ensuite le passer pour l’algorithme.
from base64 import b64encode, b64decode
from Crypto.Hash import SHA256
from Crypto.Signature import PKCS1_v1_5
from Crypto.PublicKey import RSA
message = "Bonjour Alphorm"
digest = SHA256.new()
digest.update(message.encode('utf-8'))
On a importé les bibliothèques nécessaires et Préparé le message et calcul du hash
private_key = False
with open( "private_key.pem", "r") as myfile:
private_key = RSA.importKey(myfile.read())
Cette commande pour la lecture de la clé privée à partir d’un fichier (Vous pouvez utiliser OpenSSL pour générer une clé privée si vous n’en avez pas déjà une)
opensslgenrsa -out private_key.pem 2048
Téléchargez et installez OpenSSL depuis OpenSSL (Cette commande à faire dans la terminale)
signer = PKCS1_v1_5.new(private_key)
sig = signer.sign(digest)
Cette commande pour signer le message
verifier = PKCS1_v1_5.new(private_key.publickey())
verified = verifier.verify(digest, sig)
assert verified, 'Signature verification failed'
print('Successfully verified message')
Cette commande pour vérifier la signature du message
On remarque que l’étape de la signature s’est bien passée et ensuite, dans l’étape de la vérification, il a vérifié que la signature est valide, donc il nous a affiché le message « Successfully verified message ».
Pour faire une signature invalide, je vais juste déclarer la variable statiquement et la changer. On clique ensuite sur Run. On va le lancer à travers le terminal. Et directement, l’erreur va être lancée.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment fonctionne une signature numérique?
Pourquoi utiliser une empreinte plutôt que signer le document entier?
Quels sont les algorithmes utilisés pour les signatures numériques?
Comment vérifier une signature numérique?
Comment implémenter une signature numérique en Python?
Conclusion
En conclusion, les signatures numériques sont essentielles pour garantir la sécurité et l’intégrité des communications numériques. Quelle sera la prochaine avancée technologique dans ce domaine?