Chiffrement de Hill par blocs de 2 caractères ...

Description

Codage de Hill par bloc de 2 caractères :
(Voir pour plus de détails https://fr.wikipedia.org/wiki/Chiffre_de_Hill)
On souhaite chiffrer le message "BONNEANNEE"
Supposons qu'à chaque lettre de A à Z, on peut associer un nombre entier de 0 à 25
(Ainsi A->0, B->1, ..., Z->25).
On code 2 caractères (p,q) par une fonction :
p' = a*p+b*q modulo(26)
q' = c*p+d*q modulo(26)
Ce qui donnerait 2 caractères codés (p',q').
La matrice A = (a, b ; c, d) doit avoir un déterminant a*d-b*c nombre premier avec 26 (nombre de caractères autorisés).
Par exemple : la fonction genereA(26) du script ci-joint permet de générer une matrice valable pour ce type de chiffrement.
Par exemple ; A = [11, 11, 9, 10] pour les 26 lettres majuscules A à Z.
'BO' devient 'JT' et 'BONNEANNEE' devient 'JTANSKANKY'.
On peut bien sûr généraliser l'algorithme à plus de caractères (espace, majuscules, minuscules, chiffres, caractères
spéciaux ....). Pour cela, il suffit de dé-commenter les lignes concernées dans la fonction alphabet()).

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.