BTS SIO 1 : B3 - CyberSécurité

TP - Chiffrement et Déchiffrement

Implémentation des chiffrements de César, Vigenère et RSA en Python.

🦊

Niveaux de difficulté

Introduction, Facile, Moyen, Avancé, Difficile, Expert — puis choisis l'exercice.

& Rappels
Partie 1 : César
Partie 2 : Vigenère
Partie 3 : RSA
Énoncé

Introduction

Le chiffrement est une technique fondamentale en cybersécurité qui permet de protéger des informations en les rendant illisibles sans une clé de déchiffrement. Ce TP présente deux méthodes historiques de chiffrement par substitution et une méthode moderne de chiffrement asymétrique.

Contraintes du TP

  • Des lettres majuscules (A à Z)
  • Sans accents ni caractères spéciaux
  • Une chaîne de caractères ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  • L'opérateur % 26 pour revenir au début de l'alphabet

Rappels utiles

  • Longueur d'une chaîne : len("BONJOUR") → 7
  • Accès à un caractère : "BONJOUR"[0] → 'B'
  • Position d'un caractère : "BONJOUR".index('N') → 2
  • L'opérateur % permet de faire des calculs circulaires

Aide-mémoire : opérateur %

L'opérateur modulo % retourne le reste de la division. Il est très utile pour revenir au début d'une séquence :

# Exemples avec % 26 pour l'alphabet
25 % 26 = 25  # Z reste Z
26 % 26 = 0   # Retour à A
27 % 26 = 1   # Retour à B
30 % 26 = 4   # Retour à E

# Avec des nombres négatifs (pour le déchiffrement)
-1 % 26 = 25  # Avant A, c'est Z
-2 % 26 = 24  # Avant A de 2, c'est Y