Certainement, développer un simulateur pour visualiser un phénomène lié à la cryptographie peut être une

Certainement, développer un simulateur pour visualiser un phénomène lié à la cryptographie peut être une tâche fascinante et éducative. Pour cet exemple, nous allons créer un simulateur pour visualiser le processus de chiffrement par substitution simple, un concept fondamental en cryptographie. Nous utiliserons Python et la bibliothèque `matplotlib` pour la visualisation.

### Description du Simulateur

Le simulateur va permettre de chiffrer un message texte en utilisant une clé de substitution simple. Chaque lettre du message sera remplacée par une autre lettre en fonction d’une clé de substitution. Nous allons ensuite visualiser le résultat du chiffrement en comparant le texte original et le texte chiffré.

### Code du Simulateur

« `python
import matplotlib.pyplot as plt
import string

def substitution_cipher(text, key):
alphabet = string.ascii_lowercase
key_alphabet =  ».join(sorted(alphabet.replace(key,  »)))
key_dict = {key_alphabet[i]: alphabet[i] for i in range(len(alphabet))}

encrypted_text =  ».join([key_dict[char] if char.isalpha() else char for char in text.lower()])
return encrypted_text

def visualize_cipher(original_text, encrypted_text):
fig, ax = plt.subplots(2, 1, figsize=(10, 8))

# Original Text
ax[0].text(0.5, 0.5, original_text, ha=’center’, va=’center’, transform=ax[0].transAxes, fontsize=12)
ax[0].set_title(‘Original Text’)
ax[0].axis(‘off’)

# Encrypted Text
ax[1].text(0.5, 0.5, encrypted_text, ha=’center’, va=’center’, transform=ax[1].transAxes, fontsize=12)
ax[1].set_title(‘Encrypted Text’)
ax[1].axis(‘off’)

plt.tight_layout()
plt.show()

# Exemple d’utilisation
original_text = « hello world »
key = « xyz »
encrypted_text = substitution_cipher(original_text, key)

print(f »Original Text: {original_text} »)
print(f »Encrypted Text: {encrypted_text} »)

visualize_cipher(original_text, encrypted_text)
« `

### Explication du Code

1. Fonction `substitution_cipher`:
– Prend un texte et une clé en entrée.
– Crée un dictionnaire de substitution basé sur l’alphabet sans la clé.
– Chiffre le texte en remplaçant chaque lettre par sa correspondance dans le dictionnaire de substitution.

2. Fonction `visualize_cipher`:
– Utilise `matplotlib` pour créer une figure avec deux sous-figures.
– Affiche le texte original et le texte chiffré dans des sous-figures séparées.
– Ajoute des titres pour chaque sous-figure et désactive les axes pour une meilleure visualisation.

3. Exemple d’utilisation:
– Définit un texte original et une clé.
– Chiffre le texte en utilisant la fonction `substitution_cipher`.
– Affiche les textes original et chiffré.
– Visualise le résultat du chiffrement avec la fonction `visualize_cipher`.

### Conclusion

Ce simulateur offre une visualisation simple mais efficace du processus de chiffrement par substitution. Il peut être étendu pour inclure des concepts plus complexes en cryptographie, tels que le chiffrement par blocs ou le chiffrement asymétrique. Ce type de simulation est utile pour l’éducation et la compréhension des principes fondamentaux de la cryptographie.

Retour en haut