L'outil de référence pour atteindre l'excellence en sciences

>> Capsule #1 : Energie et puissance électrique

>> Accéder à la simulation (Télécharger Windows ou Mac nécessite Flash player).

edf

edf2

edf3

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

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 le document 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 à l’étape précédente, ce qui permet de valider ka justesse de votre algorithme. Les travaux suivants peuvent être effectués dans le désordre.

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.

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. Une méthode consiste à couper le nombre en deux parties composées d’un seul chiffre. Une autre méthode consiste à utiliser une division euclidienne et prendre la partie entière et le reste.

Travail 3.c : Etape ShiftRows

Indice :

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é 🙂

Ouvrir pyzo sur votre machine et copier coller dans la zone de script le code à compléter suivant :

>> Script de démarrage (clic droit > enregistrer sous > glisser dans Pyzo > compléter le script)

>> Ajout pour faire un graphique (clic droit > enregistrer sous > glisser dans Pyzo > copier/coller le contenu du script et le coller à la suite du premier script)

Documents d’aide

Memento

Les bases

Tracer des courbes

Vidéos

Les variables

Les conditions

Les interactions

Les graphiques

Nous allons réaliser une opération entre deux nombres binaires, uniquement avec des portes logiques. Pour cela, construire le circuit suivant dans logisim. N’oubliez pas de nommer votre circuit comme indiqué dans la vidéo, cela va nous servir après…

>> Télécharger LogiSim

Vidéo 1 :

Vidéo 2 :

Vidéo 3 :

Vidéo 4 :

Vidéo 5 :

Vidéo 6 :

Les booléens :

Histoire de l’informatique

Vidéo 1 (Les ordinateurs 1966)

Site 1

Vidéo 2 (Les transistors)

Vidéo 3a (Les mémoires à tores de ferrite)

Vidéo 3b (Les mémoires à tores de ferrite et la fusée Saturn V)

Vidéo 4 (de 3’25 à 7’20 puis 15’ à 20’ puis après 20’) : explication physique du fonctionnement du tore comme mémoire et observations puis avantages et inconvénients.

Vidéo 5 (Logisim tutoriel)

>> Télécharger LogiSim

Calculer avec des portes logiques

>> Activité

Cryptographie AES et portes XOR

>> Accès

Thème 2 : L'eau

Séance 1 : Création d’une carte mentale

>> Utiliser le logiciel XMind installé sur les machines ou alors lien de Xmind Portable

Installation : clic droit sur le fichier >> 7 zip >> extraire ici >> Aller dans le repertoire créé >> Démarrer dokeosmind.exe

>> Tutoriel vidéo Xmind / Dokeos Mind

La carte à compléter : 

 

Séance 1 : Création d’une carte mentale

>> lien de Xmind Portable

Installation : clic droit sur le fichier >> 7 zip >> extraire ici >> Aller dans le repertoire créé >> Démarrer dokeosmind.exe

>> Tutoriel vidéo Xmind / Dokeos Mind

La carte à compléter : 

 



Source : https://www.dailymail.co.uk/sciencetech/article-7525627/The-fastest-phone-typers-tap-85-words-minute-touchscreens-match-keyboard-users.html

Typing test : http://typingtest.aalto.fi/

>> Sujet distribué

Travail à réaliser :

I. Distance entre deux mots

1. Créer un algorithme permettant de trouver la distance entre deux mots de même longueur.

Documentez et expliquez votre algorithme avec un diaporama

II. Distance enre un mot et les mots d’un dictionnaire

2. Créer un algorithme permettant de trouver la distance entre un mot (ou un début de mot) et les mots d’un dictionnaire. Tous les mots ont la même longueur de 4 lettres. L’utilisateur saisit 1, 2, 3 ou 4 lettre(s).

Utilisez le script de démarrage : 00-start.py

Etape 1 : Tout d’abord, vous pouvez afficher la suite des distances entre le mot rentré par l’utilisateur et chaque mot du dictionnaire. Le programme affichera une suite de chiffres comme suit (stockés dans une liste) :

Cas 1 : [0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 3, 3, 3, … pour EntreUtilisateur = « ABAT » si l’utilisateur écrit correctement un mot.

Cas 2 : [1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 2, 3, … pour EntreUtilisateur = « ABAS » si l’utilisateur fait une faute de frappe et que le mot n’est pas dans le dictionnaire.

Etape 2 :

Dans le cas 1, aucune intervention n’est nécessaire, l’algorithme affiche « mot correctement orthographié ». Vous pouvez utiliser la commande break pour arrêter la boucle dans ce cas, car nous n’avons pas besoin de suggestion.

Dans le cas 2, l’algorithme propose la liste de mot les plus proches, de distance 1, sinon 2 etc…

Voici le résultat obtenu avec l’entrée utilisateur « ABAS » avec les rangs des mots dans le dictionnaire

ABAT – 0

ABUS – 8

ADAS – 23

AGAS – 35

AMAS – 80

ANAS – 91

Documentez et expliquez votre algorithme avec un diaporama

III. Performance de l’algorithme :

Une des principales caractéristiques d’un algorithme de correction orthographique est sa rapidité. Un algorithme trop lent pourrait perturber l’expérience utilisateur. Etudions comment le temps d’exécution de votre algorithme évolue en fonction de la taille de votre dictionnaire et de la taille des mots.

Etape 1 : Repartir d’un script vide. Créer un algorithme pour générer une liste, de taille n, de mots de 4 lettres,

Pour générer des séquences de 4 lettres, vous pouvez utiliser ce que nous avons vu sur la table ASCII (chr… voir cours) et la fonction suivante permettant de générer des nombres aléatoires. Générer uniquement que des mots avec des majuscules.

from random import randrange
a = randrange(26)
print(a)

 

Etape 2 : Appliquer votre algorithme du II. à ce dictionnaire créé en mesurant le temps d’exécution. La mesure du temps d’exécution s’effectue comme suit :

import time
start = time.time()
VOTRE CODE DU II. A MESURER ICI. RAPPELEZ VOUS D'ENLEVER LES PRINT DE VOTRE CODE, CAR LE TEMPS D'AFFICHAGE EST SOUVENT TRES IMPORTANT;
end = time.time()
print(end - start)

 

Etape 3 : Mesurer le temps d’exécution de l’algorithme avec un dictionnaire dont la taille qui augmente de 10 000 mots à chaque fois. Notez vos valeurs obtenues et réalisez un graphique sur un tableur. Commentez

(Optionnel) Vous êtes un fan de matplotlib ? Modifiez l’algorithme pour que l’algorithme réalisé précédemment s’exécute dix fois avec le même mot, mais avec une taille de dictionnaire qui augmente de 10 000 mots à chaque fois. Réalisez un graphique avec matplotlib. Commentez

Documentez et expliquez votre algorithme avec un diaporama

IV. Historique des entrées utilisateurs

Proposer comme dans le II. des suggestions par ordre alphabétique, est un bon début pour aider l’utilisateur à écrire, mais il serait intéressant de réaliser des propositions de mots qui se basent sur ce qu’il a l’habitude d’écrire, sinon ce dernier devra toujours parcourir fastidieusement les propositions. L’idée est donc d’afficher les propositions, non pas alphabétiquement, mais en fonction des mots précédemment entrés.

Reprendre votre algorithme du II. et vous ajouterez une liste nommée HistoriqueUtilisateur comportant quelques mots du dictionnaire de votre choix. Par exemple HistoriqueUtilisateur = [« YOGA », « ZOUK », « YOYO », « ANAS »]

Votre algorithme doit faire remonter dans la liste, en première position les mots présents dans HistoriqueUtilisateur, afin de proposer en priorité les mots que l’utilisateur a l’habitude d’écrire.

Exemple de comportement attendu :

Si on tape « ABAS », on obtient dans l’ordre alphabétique : [‘ABAT’, ‘ABUS’, ‘ADAS’, ‘AGAS’, ‘AMAS’, ‘ANAS’]

Si HistoriqueUtilisateur contient « ANAS« , alors ce mot devra remonter en première position de la liste, et on obtient alors [ ‘ANAS‘, ‘ABAT’, ‘ABUS’, ‘ADAS’, ‘AGAS’, ‘AMAS’, ]

Il faut donc réaliser une comparaison de contenus de deux listes pour extraire les éléments similaires et les faire remonter tout en haut. Il est recommandé d’avoir les propositions de mots, non pas affichées à l’écran, mais stockées dans une liste pour pouvoir manipuler les positions des mots.

De nombreuses méthodes peuvent être envisagées ici. (voici un indice, mais on peut faire sans 🙂 )

Documentez et expliquez votre algorithme avec un diaporama

 V. Créer une interface utilisateur avec TKINTER

Créer une interface graphique pour votre projet. L’utilisateur rentre un mot, appuie sur un bouton, et les mots proposés s’affichent.

Documentation extensive : https://www.python-course.eu/tkinter_labels.php

Tutoriel sur Openclassrooms : https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234859-creez-des-interfaces-graphiques-avec-tkinter

Documentez et expliquez votre algorithme avec un diaporama