Inscription / Connexion Nouveau Sujet
Niveau Reprise d'études-Ter
Partager :

Cryptographie

Posté par
Bandicootz
17-10-19 à 15:51

Bonjour,

J'ai un exercice dont je ne comprends pas le corrigé :

On a des entiers de 0 à 25 qui renvoient les caractères a jusqu'à z.

Voici l'algorithme :

Fonction chiffrement_cesar(d msg: tab_car, d clé: entier): tab_car
i, n, p, p_décalé : entier ;

Debut
n := longueur(msg):
pour i de 0 à n-1 faire
p:= code (msg[i]):
p_décalé := (p+clé)mod26; chiffré [i] := caractère(p_décalé);

Fin Pour
renvoyer (chiffré)
Fin

En utilisant cet algo, on cherche à trouver ce que renvoie l'appel de chiffrement cesar pour les caractères i, n, t, o et x

Corrigé (en gras les valeurs à rentrer) :
pour i = 0 :
msg[i] = i
p = 9
p_décalé = {b]11[/b]
chiffré = [b]l{/b]

Ce que je comprends pas, c'est comment on a obtenu 11 à p_décalé ?
D'ailleurs la clé correspond à quoi exactement ?

Posté par
mathafou Moderateur
re : Cryptographie 17-10-19 à 16:35

Bonjour
la clé est une donnée d'entrée

Fonction chiffrement_cesar( msg, clé)

sans la valeur numérique de cette clé il est impossible de faire quoi que ce soit
le code revient à faire "tourner" l'alphabet d'un certain nombre de cases
la clé est le nombre de cases dont on fait tourner l'alphabet.

par exemple si clé = 3
A devent D ( 1+3= 4)
B devient E
etc
Z devient C (26+3 =29, 29-26 = 3) :
Cryptographie
le tableau de codage est l'alphabet décalé cycliquement de 3 crans vers la gauche.
(de "clé" crans dans le cas général)

Posté par
Bandicootz
re : Cryptographie 17-10-19 à 17:20

Merci de m'avoir apporté quelques éclaircissements,
Dans mon exo, je vois que :

p:= code (msg[i]):
Càd que p correspond à l'entier de i, soit 8 (et non 9 comme le laisse suggérer l'énoncé)
donc, p=8

p_décalé := (p+clé)mod26;
Càd (8+clé)mod26

En fait, ce que je n'ai toujours pas saisi c'est comment on est venu à déterminer que +3 est la clé ?

Posté par
mathafou Moderateur
re : Cryptographie 17-10-19 à 17:52

la clé n'est pas +3
c'est ce qu'on veut
c'est une donnée d'entrée de l'algorithme, au même titre que le message à coder
c'est défini dans la toute toute première ligne, je la remets in extenso sans la "simplifier" :

 Fonction chiffrement_cesar(d msg: tab_car, d clé: entier) 
les entrées de l'algorithme sont msg et clé
le reste sert à définir que ce sont des variables de ce type là (un tableau de caractères pour msg, un entier pour clé)
elle doit donc être donnée dans le texte de l'énoncé

mon "3" est un exemple dont la valeur n'a été choisie que pour pouvoir "pomper" le tableau de codage sur le site de "Ars Cryptographica"

d'ailleurs dans le programme les lettres de l'alphabet sont numérotées de 0 à 25 alors que dans mon calcul elles le sont de 1 à 26
ce qui ne change rien au final
juste que cela permet au programme de simplifier le calcul du rebouclage cyclique de l'alphabet par un simple "modulo 26"

(je suis d'accord avec toi que ce qui est suggéré par l'énoncé est faux ; le rang de "i" dans l'alphabet est bien 8 et pas 9 si les lettres sont numérotées de 0 à 25)

ton "énoncé" me semble bien "partiel" d'ailleurs en oubliant des choses que tu n'as pas jugé bon de recopier très certainement :
le message entier à coder, la valeur de la clé, bref la ligne d'appel du programme
un truc du genre :
on appelle la fonction par : chiffrement_cesar("introduction aux codes", 3)
suivi des questions.

Posté par
Bandicootz
re : Cryptographie 17-10-19 à 18:08

Et dire que je me cassais la tête à trouver cette fameuse clé en tentant plusieurs calculs, alors qu'elle était de base mentionnée et qu'on ne pouvait l'inventer...

Citation :
on appelle la fonction par : chiffrement_cesar("introduction aux codes", 3)
suivi des questions.
Lol, c'est exactement ça.

C'est ça...

Merci infiniment, tu m'as évité une occasion d'être chauve...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !