Cryptographie

PF Villard

Objectif

  • En TD :
    • Comprendre les besoins de sécurité
    • Connaître l'historique de la cryptographie
    • Manipuler des objets de cryptographie
    • Utiliser du code de cryptographie
  • En TP
    • Chiffrer, déchiffrer et signer des messages avec GnuPG
    • Stockage des mots de passe
    • Chiffrement symétrique et asymétrique

Securité

Motivation

  • Besoins de sécurité
  • Matériel informatique omniprésent
  • Entreprises nécessitent réseau sécurisé pour transfert des données
  • Evolution constante des techniques
  • Sécurité des données tend à s’améliorer

Applications

  • Carte bancaire
  • Téléphonie mobile
  • Messagerie (signal, telegram, WhatsApp, etc)
  • Carte d’assuré social
  • Monéo
  • Email (protonmail, etc)
  • ...

Menaces

  • Les menaces accidentelles
  • Les menaces intentionnelles :
    • passives
    • actives

Menaces intentionnelles

  • Interruption = problème lié à la disponibilité des données
  • Interception = problème lié à la confidentialité des données
  • Modification = problème lié à l’intégrité des données
  • Fabrication = problème lié à l’authenticité des données

Modèles de sécurité

  • Modèle CIA
  • Le protocole AAA
  • Authentification forte

Modèle CIA

  • Confidentialité : l’information n’est connue que des entités communicantes
  • Intégrité : l’information n’a pas été modifiée entre sa création et son traitement (en ce compris un éventuel transfert)
  • Disponibilité : l’information est toujours accessible et ne peut être bloquée/perdue

Le contrôle d’accès : Le protocole AAA

  1. Identification : Qui êtes-vous ?
  2. Authentification : Prouvez-le !
  3. Autorisation : Avez-vous les droits requis ?
  4. Accounting/Audit : Qu’avez-vous fait ?

Authentification forte

  • Ce que vous savez (mot de passe, code PIN, etc.)
  • Ce que vous avez (carte magnétique, lecteur de carte, etc.)
  • Ce que vous êtes (empreintes digitales, réseau rétinien, etc.)

Stockage des mots de passes

  • Hashage
    • md5
    • sha1,
    • sha256 / sha512
  • Attaque par dictionnaire
  • Attaque par force brute

Gnu Privacy Guard

  • GnuPG est un outil qui permet de chiffrer, déchiffrer et signer des messages en utilisant les algorithmes de chiffrements

  • Un certain nombre d'algorithmes de chiffrement et de hashage sont pris en charge par GnuPG

-> Nous allons voir les algo qui existent aujourd'hui

Fonction de hashage

  • Mots de passe pas stockés directement sur fichier

  • Hash des mot de passe enregistré

  • hash = suite de caractères de taille fixe associée à une chaîne quelconque

Propriétés

  • Difficile de trouver une chaîne ayant un hash donné
  • Difficile de modifier une chaîne sans modifier son hash
  • Difficile de trouver deux chaînes avec le même hash

Algorithmes de hashage

  • md5 (mais cet algorithme n'est plus sûr)
  • sha1,
  • sha256 / sha512

-> Pour vous authentifier sur un site, vous tapez votre mot de passe, et le programme vérifie que son hash est bien identique au hash stocké sur le serveur

Cryptographie

Principes généraux (1/3)

D'après "The Gossip Chain" de Norman Rockwell

Principes généraux (2/3)

D'après "The Gossip Chain" de Norman Rockwell

Principes généraux (3/3)

D'après "The Gossip Chain" de Norman Rockwell

Ordres de grandeur

  • Contre-mesure à l’attaque par « Brute Force »
  • Notion de grandeur
  • e.g. une clef aléatoire de 128 bits \(2^128 \approx 3,4 10^38\)
  • Nombre de gouttes d’eau dans les océans \(4,2 10^25\)
  • Nombre de grains de sables sur Terre \(2 10^26\)
  • Nombre de molécules d’eau sur Terre \(4,6 10^46\)

Garanties cryptographiques

  • Confidentialité
    • Autorisation d’accès pour l’accès au « secret »
    • Indépendant du partage du secret
  • Authenticité
  • Garantie de la légitimité pour l’autorisation d’accès
  • Intégrité
  • Garantie de non-altération du secret lors de l’échange

Age artisanal

  • Steganographie
  • Scytale
  • Code de césar
  • Chiffre de Végenère
  • Chiffre de Marie Stuart

source: commons.wikimedia.org

Steganographie

  • Steganos : couvert
  • Graphein : ecriture
  • Dissimuler l'exstence d'un message

Hérodote Histories

Reine Gordot Tablettes de cire

Steganographie → Cryptographie

  • Kryptos : caché
  • Graphein : ecriture
  • Dissimuler l'exstence Cacher le contenu d'un message

  • Stegano et Crypto peuvent être combinés micropoint, microfilms

substitutions et Transpositions

  • Substitutions : remplacer chaque lettre par une autre selon une règle convenue

        ABCDEFGHIKLMNOPQRSTVXYZ
        ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
        DEFGHIKLMNOPQRSTVXYZABC
  • Transpositions : l’ordre des lettres est changé de façon à aboutir à un mélange sans cohérence

        TON SECRET EST TON PRISONNIER
        
        T N E R T S T N R S N I R
         O S C E E T O P I O N E
        
        TNERTSTNRSNIRIFITDVEDASNRSNIROSCEETOPIONE

Scytale

  • Un des plus anciens chiffrements de transposition ayant été utilisé.
  • Plutarque raconte son utilisation par Lysandre de Sparte en 404 av. J.-C.

        _____________________________________________________________
               |   |   |   |   |   |  |
               | O | n | s | a | m |  |
             __| u | s | e | b | i |__|
            |  | e | n | e | n | c |
            |  | r | y | p | t | o |
            |  |   |   |   |   |   |
        _____________________________________________________________

Code de césar

alphabet clair a b c d e f g h i j k l m n o p q r s t u v w x y z
alphabet chiffré d e f g h i j k l m n o p q r s t u v w x y z a b c
texte clair cestcoollescoursdecrypto
texte chiffré fhvwfrroohvfrxuvghfubswr

→ Combien de combinaison différentes ?

Principe de substitution avancée

  • Alphabet chiffré disposant de toutes les lettres au hasard
  • → Plus de 400 000 000 000 000 000 000 000 000 dispositions
alphabet clair a b c d e f g h i j k l m n o p q r s t u v w x y z
alphabet chiffré d e f g h i j k l m n o p q r s t u v w x y z a b c
texte clair cestcoollescoursdecrypto
texte chiffré fhvwfrroohvfrxuvghfubswr

Cryptanalyste Arabe

  • Décrypter un message sans connaître la clé
  • IX ème siècle par Al Kindi
  • lien entre language et fréquence des lettres

Exemple

BAELXEJ JCKJ ZA JANBH HSXGXWXL XMXPJ LCEEA XK
        GCP JGCPH DPOH. FKXEL AOOA AKJ JAGNPEA O’SPHJCPH LA NX’GKD OA HXMAJPAG,AOOA HA OAMX, YXPHX OA HCO LAMXEJ OA HCKMAGXPE AJ
        OKP LPJ : "IGXEL GCP, LABKPH NPOOA AJ KEA EKPJH RA J’XP GXZCEJA
        OAH OAIAELAH LAH GCPH BXHHAH BKPH-RA NA BAGNAJJGA LA
        HCOOPZPJAG KEA DXMAKG LA MCJGA NXRAHJA ?"
        ABPOCIKA-ZCEJAH LAH NPOOA AJ KEA EKPJH

Occurrences

Lettre Fréquence Lettre Fréquence
----- Occurrences % ----- Occurrences
A 61 19,5 N 9
B 8 2.4 O 23
C 14 4.5 P 26
D 3 1 Q 0
E 19 6.1 R 3
F 1 0,3 S 2
G 18 5.7 T 0
H 28 8,9 U 0
I 3 1 V 0
J 28 8.9 W 1
K 16 5.1 X 20
L 15 4,8 Y 3
M 7 2.2 Z 6

  • les 3 lettres les plus fréquentes : A, H ou Ja, e ou i
  • Occurrences avant ou après les autres lettres de l'alphabet

OA AOOA, OAH

Que vaut A, O et H

Comment résister à l’analyse des fréquences ?

Chiffre de Végenère

  • Utilisation d'un de plusieurs alphabets de 26 lettres
  • nombre de décalage ≠ pour chaque lettre
mot-clef NORMANROCKWELL
texte clair CEQUEJEMAMUSEENCRYPTO
texte chiffré PSHGEWVACWQWPPAQIKPGF

Carre de Vegenere

mot-clef NORMANROCKWELLNORMANR
texte clair CEQUEJEMAMUSEENCRYPTO
texte chiffré PSHGEWVACWQWPPAQIKPGF

Travaux de Babbage

  • Recherche des répétitions de mots courts
  • Recherche de la clé

exemple

XAUNMEESYUEDTLLFGSNBWQUFXPQTYO RUTYIINUMQIEULSMFAFXGUTYBXXAGB HMIFIIMUMQIDEKRIFRIRZQUHIENOOOIG RMLYETYOVQRYSIXEOKIYPYOIGRMLYE TYOVQRYSIXEOKIYPYOIGRFBWPIYRBQ URJIYEMJIGRYKXYACPPQSPBVESIRZQR UFREDYJIGRYKXBLOPJARNPUGEFBWMI LXMZSMZYXPNBPUMYZMEEFBUGENLRD EPBJXONQEZTMBWOEFIIPAHPPQBFLGDE MFWFAHQ

  • Régularités repérées : UMQI, OIGR, IGRY
  • Périodicité : multiple de la longueur de la clé
  • Fréquences 25 et 30, donc longueur clé = 5
  • Recherche du nombre d’occurrences tous les 5
  • Trouver la clé
  • Décoder le message

Age technique : mécanisation

  • Le disque à chiffrer de Alberti
  • Cylindre de Jefferson
  • Machine Enigma

source: commons.wikimedia.org

Disque à chiffrer des Confédérés

  • Vient du XVème siècle
  • inventé par Léon Alberti
  • Utilisé pendant 5 siècles

→ Quel type de chiffrement ?

Exemple d'utilisation

  • Décoder un message chiffré en utilisant une clé
  • Le message est sqfrdz sqfze sqds
  • La clé est IUTSTDIE
    • Positionner la lettre A intérieur en face de la lettre de la clé
    • Lire la lettre intérieur correspondante

Cylindre de Jefferson

A O K U Y U X R I A U K U F H L O N S W K L K T R F P
M Z N C S K Y O N S L K T R F A J Q Q B R T X Y U K A
T H O M A S J E F F E R S O N S W H E E L C I P H E R
V R E U Y W R 3 V P F E 7 J Y I L D D O T L H E I V O
C E P K Q H 6 K S Z G F B V X Y H Z J P S J G W M S 8

Machine Enigma

  • Les connexions échangent des paires de lettres
  • Chaque rotor effectue une substitution
  • L’ordre des rotors peut être changé
  • 1er tourne d’un cran après passage d’une lettre, 2ème quand 1er a fait un tour complet, etc. 263=17 576 possibilités
  • Pour 3 rotors 6x17 576 = 105 456 possibilités
  • Réflecteur : échange de paires de lettres

Principe de la machine Enigma

Déchiffrement d'Enigma

  • Compter sur la rigueur allemande (ex : météo Wetter à 6h05)
  • Essai par mots probables (ex : Wetter ETJWPX)
  • Simplifications du problème grâce à des recherches antérieures polonaises
  • Utilisation de machines mathématiques

Age paradoxal

  • Lucifer
  • Diffie-Hellman
  • RSA
  • PGP
  • GnuPG
  • OpenSSL

source: commons.wikimedia.org

pression des milieux économiques

  • Sécuriser les échanges commerciaux
  • Organiser les relations entre public et privé
    • au plan collectif
    • Dans le code de transmission des messages
  • Faire passer ces questions dans le domaine public c-à-d. abandon du secret défense

Exemple : données bancaires

Passage à un calculateur

Lettre Code Lettre Code Lettre Code
a 1100001 j 1101010 s 1110011
b 1100010 k 1101011 t 1110100
c 1100011 l 1101100 u 1110101
d 1100100 m 1101101 v 1110110
e 1100101 n 1101110 w 1110111
f 1100110 o 1101111 x 1111000
g 1100111 p 1110000 y 1111001
h 1101000 q 1110001 z 1111010
i 1101001 r 1110010

Mécanisme à clé symétrique

Exemple

IUT 1101001 1110101 1110100

  • Transposition

        11 01 00 11 11 01 01 11 10 10 0
        11 10 00 11 11 10 10 11 01 01 0 

1110001 1111010 1101010 QZJ

  • Substitution avec Clé DIE

        Texte clair   : 1101001 1110101 1110100
        clef DIE      : 1100100 1101001 1100101
        Texte chiffré : 0001101 0011100 0010001

Utilisation du Ou exclusif

Table de vérité de XOR
A B R = A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

        Texte clair   : 1101001 1110101 1110100
        clef DIE      : 1100100 1101001 1100101
        Texte chiffré : 0001101 0011100 0010001
        
        Texte chiffré : 0001101 0011100 0010001
        clef DIE      : 1100100 1101001 1100101
        Texte clair   : 1101001 1110101 1110100

Principe

On distingue deux types d'algorithmes :

  • les algorithmes en blocs, qui prennent n bits en entrée et en ressortent n
  • les algorithmes à flots, qui chiffrent bit par bit

DES

  • DES 1977 Data Encryption Standard
    • Niveau de sécurité lié à la clé : secrète
    • Algorithme public : Clair : 64 bits, découpé en 2 blocs, G et D, et un des blocs combiné avec une fonction qui utilise la clé. Itération du procédé.

Du DES à l’AES

  • 1997 : DES cassé en 3 semaines par des ordinateurs effectuant des calculs en parallèle
  • Triple DES
  • AES Advanced Encryption Standard
    • Appel d’offres international. 1997. Clair : 128 bits
    • 2001

Avantages

  • Raisonnablement facile
  • Rapide à exécuter
  • -> Sécuriser de grandes quantités de données

Dans la plupart des situations, la taille normale d'un secret de sécurité symétrique est de 128 ou 256 bits

  • Comment éviter l’échange de clés ?
  • Comment assurer la confidentialité ?

Mécanisme à clé assymétrique

Principe du double cadenas

Principe du double cadenas

Principe du double cadenas

Principe du double cadenas

Principe du double cadenas

Principe du double cadenas

Principe du double cadenas

Ordre du chiffrement

clef d'Alice :

   a b c d e f g h i j k l m n o p q r s t u v w x y z
           H S F U G T A K V D E O Y J B P N X W C Q R I M Z L

Clef de Bernard :

   a b c d e f g h i j k l m n o p q r s t u v w x y z
           C P M G A T N O J E F W I Q B U R Y H X S D Z K L V
Message : vois moi à midi
Crypté avec la clef d'Alice: RBVW YBV H YVUV
Crypté avec la clef de Bernard: YPDZ LPD O LDSD
Décrypté avec la clef d'Alice: MPJY ZPJ L ZJCJ
Décrypté avec la clef de Bernard: cbir wbi y wiai

Inspiration par les 2 cadenas

  • Trouver une fonction f: nombre -> autre nombre
  • Irréversible (ex : peinture, casser oeuf) ≠ doubler
  • -> Arithmétique modulo
  • 2 + 3 ?
  • 2 + 6 ?
  • 10h maintenant et prochain cours dans 6h ?

Arithmétique modulo

2 + 3 = 5 (mod 7) et 2 + 6 = 1 (mod 7)

En math : utilisation du reste de la division


        11 x 9 = 99
                99 : 13 = 7, reste 8
        11 x 9 = 8 (mod 13)

-> Irréversible !

Nombres premiers

\[ 35 = 3 \times 7\\ 77 = 7 \times 11\\ 9991 = 103 \times 97 \\ x^2-y^2=(x+y)(x-y) \]

Principe

  • Exemple de clé publique : Amazon
  • -> On utilise la clé publique pour chiffrer
  • Amazon Utilise sa clé privée pour déchiffrer
  • Clé symétrique : 62, 128 ou 256 bits
  • -> Peut être plus longue que 1024 pour clé publique

La cryptographie à clé publique

  • La cryptographie à clé publique Le principe du double cadenas

  • A : Clé de chiffrement : publique
  • B. Clé de déchiffrement : secrète
  • Le chiffrement est une fonction à sens unique

Le système à clé publique RSA

  • Théorie des nombres et double échange de clés
  • Idée :

    Multiplier 2 très grands nombres premiers est une
            opération facile p = 47, q = 71, module N = 3337. Retrouver les facteurs à partir du résultat est une opération très difficile.
  • Clé de chiffrement : un nombre C premier avec N
  • Clé de déchiffrement : son inverse multiplicatif dans un calcul (modulo)

Principe

  • Chiffrement

\[ C=m^e (mod \ N) \]

m message, C texte chiffré, e clé publique, N autre clé publique

  • Déchiffrement

\[ m=C^d (mod \ N) \]

d clé privée

N est fait à partir de 2 nombres premiers p et q

Résolution

\[ C=m^e (mod \ N) \]

Pour un hacker, ou est l'inconnu de l'equation ?

Seule solution

  • Trouver la factorisation en nombre premier
  • Mais N est très grand

Génération des clés

  1. Prendre des nombres premiers p et q très grands \[ N=pq \]
  2. Résoudre la fonction d'Euler \[ \Phi(N)=(p-1)(q-1) \] -> Effacer p et q
  3. Générer aléatoirement e tel que : \[ 1<e<\Phi(N) \]

Pour la clé privée, trouver d tel que : \[ d=e-1 (mod \ \Phi(N))\\ ed=1 (mod \ \Phi(N)) \]

d plus petit que \(\Phi(N)\) mais plus grand que q et p

Le logiciel semi-libre PGP

  • 1991, Philip Zimmermann
  • = Pretty Good Privacy
  • Système hybride de sécurisation, utilisé pour les communications en ligne dans certaines entreprises ou institutions où les communications sont « sensibles »
  • Chiffrement symétrique (clé privée) et asymétrique (clé publique)

Exercices de TD

Exercices de TD

Ils se trouvent ici

(à lire avec Jupyter Notebook ou Visual Studio Code)

logo logo // reveal.js plugins