Le site de M. Chardine. Lycée Pierre Corneille de Rouen

I. Utiliser des portes XOR, base de la cryptographie moderne :

>> Activité pédagogique introductive fournie en classe.

>> Vidéo 1 : La cryptographie dans le domaine de la sécurité informatique : le métier d’expert en cyber-sécurité.

>> Vidéo 2 : fonctionnement chronologique de la cryptographie AES

>> Calculatrice de conversion binaire – hexadécimal

II. Histoire de la cryptographie DES / AES

>> Bande dessinée : Approche histoire de la création des standards de cryptographie moderne. Accès

>> Vidéo 3 : un standard de cryptographie pour les gouverner tous !

Travail 1 : Réaliser un diaporama, à l’aide des documents précédents et d’une recherche sur Internet, retraçant l’histoire de création des standards de cryptographie DES et AES.

III. Entretien d’embauche pour devenir expert en cybersécurité dans une banque

Fiche de poste : Expert/e en sécurité informatique

Étudier la fiabilité du système d’information d’une entreprise et en assurer la sûreté, telle est la mission de l’expert en sécurité informatique. Un défi pour ce spécialiste, à l’heure où les échanges de données se multiplient.

Source : http://www.onisep.fr/Ressources/Univers-Metier/Metiers/expert-experte-en-securite-informatique

Vous postulez en tant qu’ingénieur en cybersécurité dans un établissement bancaire. Afin de tester si vous êtes assez qualifié pour ce travail, votre futur employeur vous propose une rencontre.

  • Employeur : « Bonjour, très heureux de vous rencontrer ! Suite à de nombreuses attaques sur nos systèmes informatiques, nous cherchons un expert en cybersécurité pour nous protéger. Je vais vous poser quelques questions pour tester vos connaissances et savoir si vous êtes qualifié pour ce poste. »
  • Vous : « Trop facile, j’ai eu M. Chardine en NSI ! »
  • Employeur : « hum…. oui …. Je vais vous …»
  • Vous : « Une fois, j’ai même trouvé le code secret de la tirelire de ma petite sœur, alors aucune faille ne peut me résister ! »
  • Employeur : « heu… nous aurions besoin de sécuriser des transferts d’informations en utilisant le protocole AES, pouvez-vous faire cela en Python ? Voici les documents vous indiquant les étapes à suivre… bon courage ! »

Travail 2 : Créer un algorithme avec Python qui permet d’effectuer un XOR sur un chaîne de caractère (comme dans l’activité papier). Documenter avec un diaporama. Voici le début du programme.

Texte = "NSIFOREVER"
Cle = 0b01010010
TexteValeurAscii = []
Cipher = []

L’algorithme doit afficher

Lettre : N | XOR : 0b11100
Lettre : S | XOR : 0b1 Etc…

Vous utiliserez la table ASCII pour transformer chaque lettre en nombre décimaux. Vous afficherez le texte crypté sous forme de nombres binaires avec la fonction bin().

On utilise l’opérateur ^ pour exécuter un XOR en python. L’opérateur XOR ^ fonctionne avec des nombres de n’importe quelle base, inutile de convertir en binaire au préalable.

Une calculatrice XOR pour vérifier à la main http://xor.pw/

Travail 3 : A l’aide des documents suivants, mettez en oeuvre les différentes étapes de la cryptographie AES. Documenter chaque étape dans un diaporama.

Vous utiliserez les vidéos 2 et 4 et les indices suivant pour réaliser en python les différentes étapes du standard AES.

Vidéo 4 : Explication du fonctionnement de la cryptographie AES

Compléter les scripts suivants : Chaque début de script reprend l’état de la matrice 4×4 de l’étape précédente, ce qui permet de valider la justesse de votre algorithme. Les travaux suivants peuvent donc être effectués dans le désordre (même si je vous conseille de terminer par MixColumns)

Hypothèse simplificatrice : Nous utiliserons, non pas la base hexadécimale, mais la base décimale afin de vous permettre de vérifier plus facilement à la main les étapes de vos algorithmes.

Travail 3.a : Etape initiale addRoundKey

Indice : Reprendre le travail précédent et effectuer un XOR entre deux cases du texte et de la clé, positionnées aux mêmes coordonnées. Il faut utiliser une double boucle for imbriquée avec les variables i et j pour parcourir le tableau à deux dimensions. Pour accéder à une valeur d’un tableau à 2 dimensions, on utilise la notation Texte[i][j]

Travail 3.b : Etape SubBytes

Indice : Il existe différentes manières de procéder pour isoler les deux chiffres composant les nombres de chaque case.

  1. Une méthode consiste à couper le nombre en deux parties composées d’un seul chiffre. Nous l’avons déjà fait pour sélectionner un caractère d’une chaîne de caractère.
  2. Une autre méthode consiste à utiliser une division euclidienne et prendre la partie entière d’un côté et le reste de l’autre côté. Utilisez alors la fonction int() pour transformer les chaînes de caractères en entier pour réaliser la division euclidienne avec les opérateurs // et % pour trouver la partie entière et le reste).

Travail 3.c : Etape ShiftRows

Indice : Nous avons déjà vu des écritures pour inverser deux variables, cela pourrait aider… Il faut ensuite appliquer le principe à 4 variables.

Travail 3.d : Etape MixColumns

Indice : Avant de réaliser la véritable opération avec des XOR, nous allons faire une multiplication de matrice. C’est une opération relativement simple dont vous trouverez la méthode ici et une calculatrice en ligne ici. Realiser donc la multiplication des matrices indiquées dans le script et vérifier le résultats de votre script Python avec la calculatrice en ligne. Si cela fonctionne, remplacer vos + par des ^ et c’est terminé 🙂

Vous avez une question ?

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :