Sagot :
Bonsoir,
9)
from random import sample
def creerDicoCodage():
alphabet = list("abcdefghijklmnopqrstuvwxyz")
valeurs_alea = sample(alphabet, 26)
cle = {}
for i in range(26):
cle[alphabet[i]] = valeurs_alea[i]
return cle
10)
Il faut que la clé ne soit pas exactement l'alphabet.
Donc il faut qu'au moins une lettre change.
11)
def nombre_apparitions(texte):
alphabet = "abcdefghijklmnopqrstuvwxyz"
nombre = {}
for lettre in alphabet:
nombre[lettre] = 0
for lettre in texte:
nombre[lettre] += 1
return nombre
12)
nombre_apparitions("vlqwkiuqkbkinqkppnqafnqcqayugnqltihqklsdkoqdiuuyntqhknceiuqfqkntidtqiaoqaiqln")
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 1, 'f': 2, 'g': 1, 'h': 2, 'i': 8, 'j': 0, 'k': 8, 'l': 4, 'm': 0, 'n': 8, 'o': 2, 'p': 2, 'q': 15, 'r': 0, 's': 1, 't': 4, 'u': 5, 'v': 1, 'w': 1, 'x': 0, 'y': 2, 'z': 0}
On remarque que c'est la lettre 'q' qui a le plus d'apparition, on peut donc supposer qu'il s'agit de la lettre 'e'. Je dis bien "supposer" car le texte est beaucoup trop court pour être proche des fréquences indiquées par Wikipédia.
J'ai essayé d'obtenir un truc, mais j'ai abandonné, tu auras peut-être plus de courage que moi pour trouver le fameux nombre qu'il parle. Le texte n'est clairement pas assez long.
Je te propose une vidéo d'un vulgarisateur sur YouTube qui parle de l'entièreté de ton devoir et notamment sur comment déchiffrer un texte sans avoir la clé en utilisant notamment les probabilités mais aussi le taux de plausibilité que je trouve très intéressant.
ScienceEtonnante: Comment déchiffrer (presque) n'importe quel message codé ? (26/04/2021, duré 13:24).
Bonne soirée.