La non répudiation de l'origine assure que l'émetteur du message ne pourra pas nier avoir émis le message dans le futur.
La signature digitale est un mécanisme cryptographique qui permet d'assurer la non répudiation de l'origine.
Ce mécanisme repose sur un système cryptographique asymétrique
La signature est calculée en utilisant la clé privé de l'émetteur
La signature est vérifiée en utilisant la clé publique de l'émetteur
L'émetteur du message génère sa paire de clés (publique, privée). Il diffuse sa clé publique te maintient sa clé privée secrète. Pour signer un document l'émetteur commence par calculer le code hashage du document puis signe ce code de hashage avec sa clé privée. Le résultat de cette dernière opération (chiffrement avec clé privée dans le cas de RSA) est la signature digitale qui accompagnera le document. Quand le récepteur reçoit le message et la signature digitale, il recalcule le code de hashage, déchiffre la signature avec la clé publique de l'émetteur et compare les deux codes de hshages. Si les deux codes sont similaires alors la signature est valide.
L'émetteur ne pourra pas nier dans le futur avoir émis le message puisque y a que lui qui peut générer la signature digitale avec sa clé privée secrète.
Initialisation
Choisir deux nombres premiers, p et q, les deux étant plus grands que 10100
Calculer n = p · q (n est le modulus)
Choisir e aléatoire tel que e et ((p - 1) · (q - 1)) n'aient aucun facteur commun excepté 1
Trouver d tel que : ed = 1 mod((p - 1)(q - 1)).
Clé publique : (n,e).
Clé privée : (n,d) ou (p,q,d) si on désire garder p et q.
Signature digitale
L'expéditeur crée la signature s à partir du message m : s = md mod(n), où (n,d) est la clé privée de l'expéditeur.
Le destinataire reçoit s et m et effectue la vérification de m : m = se mod(n), où (n,e) est la clé publique de l'expéditeur.
RSA est connu pour être très lent, ayant une clé très longue.