SR06. Cryptographie avancée TD / TP de cryptanalyse appliquée. Walter SCHÖN

Documents pareils
Cours de Probabilités et de Statistique

Coefficients binomiaux

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Probabilités sur un univers fini

Probabilités et Statistiques. Feuille 2 : variables aléatoires discrètes

Les probabilités. Chapitre 18. Tester ses connaissances

Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Objets Combinatoires élementaires

Qu est-ce qu une probabilité?

Initiation à la programmation en Python

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Modes opératoires pour le chiffrement symétrique

LES GENERATEURS DE NOMBRES ALEATOIRES

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

Chapitre 2. Eléments pour comprendre un énoncé

Probabilités sur un univers fini

Bureau N301 (Nautile)

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Programmation linéaire

INF 4420: Sécurité Informatique Cryptographie II

Exercices sur le chapitre «Probabilités»

Analyse Combinatoire

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Des familles de deux enfants

Comparaison de fonctions Développements limités. Chapitre 10

Licence MASS (Re-)Mise à niveau en Probabilités. Feuilles de 1 à 7

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

I. Cas de l équiprobabilité

TP 1. Prise en main du langage Python

Logiciel de Base. I. Représentation des nombres

III- Raisonnement par récurrence

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Université d Aix-Marseille Master Réseaux & Télécoms Cryptographie

1 Introduction au codage

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

GPA435 SE et PS. Sécurité Informatique. Étude de cas: ios Version 2013

Définitions. Numéro à préciser. (Durée : )

Feuille d exercices 2 : Espaces probabilisés

Exemple On lance une pièce de monnaie trois fois de suite. Calculer la probabilité d obtenir exactement deux fois pile.

Probabilités. C. Charignon. I Cours 3

Exercices - Polynômes : corrigé. Opérations sur les polynômes

ÉPREUVE COMMUNE DE TIPE Partie D

Estimation et tests statistiques, TD 5. Solutions

Arbre de probabilité(afrique) Univers - Evénement

Python - introduction à la programmation et calcul scientifique

TSTI 2D CH X : Exemples de lois à densité 1

Travaux dirigés d introduction aux Probabilités

Compression Compression par dictionnaires

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Moments des variables aléatoires réelles

avec des nombres entiers

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

MATH ELEMENTS DU CALCUL DES PROBABILITES

Distribution Uniforme Probabilité de Laplace Dénombrements Les Paris. Chapitre 2 Le calcul des probabilités

LES TYPES DE DONNÉES DU LANGAGE PASCAL

P1 : Corrigés des exercices

Introduction à l algorithmique et à la programmation (Info 2)

Algorithmes récursifs

Chapitre 3 : INFERENCE

Exercices de dénombrement

CALCUL DES PROBABILITES

La persistance des nombres

Base de données relationnelle et requêtes SQL

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Gestion d'une billeterie défilé des talents

MIS 102 Initiation à l Informatique

La simulation probabiliste avec Excel

Chapitre 2 Devine mon nombre!

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

V- Manipulations de nombres en binaire

Probabilités conditionnelles Loi binomiale

Calcul élémentaire des probabilités

INF 162 Probabilités pour l informatique

Comment automatiser la création d index multiples avec Word Paul-Henri Dumas - URFIST

Plateforme d observation sociale et médico-sociale

Correction de l examen de la première session

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Poker. A rendre pour le 25 avril

Oracles Cryptographiques. Trouver une joke de padding

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

4 Distributions particulières de probabilités

1 Description générale de VISFIELD

Cours (7) de statistiques à distance, élaboré par Zarrouk Fayçal, ISSEP Ksar-Said, LES STATISTIQUES INFERENTIELLES

VI. Tests non paramétriques sur un échantillon

Exo7. Probabilité conditionnelle. Exercices : Martine Quinio

DEVENEZ UN POKER-KILLER AU TEXAS HOLD EM!

Estimation: intervalle de fluctuation et de confiance. Mars IREM: groupe Proba-Stat. Fluctuation. Confiance. dans les programmes comparaison

Problèmes de Mathématiques Filtres et ultrafiltres

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

STAGE IREM 0- Premiers pas en Python

Mesures et incertitudes

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

CRÉER UN COURS EN LIGNE

Transcription:

SR06 Cryptographie avancée TD / TP de cryptanalyse appliquée Walter SCHÖN

Rappels de cours La cryptanalyse du chiffre de Cesar est trivial car il n y a que 6 décalages possibles La cryptanalyse d un alphabet mélangé (ou toute substitution mono-alphabétique associant à toute lettre, toujours le même symbole) est un jeu à la portée de tout le monde, à réaliser grâce à l analyse des fréquences. ABCDEFGHIJKLMNOPQRSTUVWXYZ MPLOKINJUBHYVGTCFRXDEWSZQA Une excellente description de ce genre de cryptanalyse figure dans la nouvelle d Edgar Poë «Le scarabée d or»

Travaux pratiques En écrivant de petits programmes dans le langage de votre choix (C, C++, Java, Python, Matlab ) ü Prenez un grand texte Français et analysez le pour calculer les fréquences d occurrence p A,p B, p Z prenez garde de ne compter que les lettres en majuscule ou en minuscules (dans le texte donné en exemple il n y a que des majuscules), ne comptez pas les espaces (dans le texte donné en exemple il n y a pas d espace). ü Utilisez ces valeurs de fréquences pour casser le code alphabet mélangé donné dans le fichier exemple (faites des hypothèses que vous validerez par recoupement, possibilité d utiliser des digrammes fréquents ). ü Gare (quand vous faites des substitutions) à différencier ce qui a été substitué de ce qui ne l a pas été (idée possible : majuscules / minuscules). 3

Rappels de cours Le chiffre de Vigenère (1596), est obtenu en «additionnant» (A = 0 décalage, B = 1 décalage ) le texte à chiffrer avec un texte clé répété autant de fois que nécessaire : + = TO BE OR NOT TO BE CL EC LE CLE CL EC VZ FG ZV PZX VZ FG Revient à utiliser autant d alphabets que de caractères de la clé, l alphabet utilisé étant fonction de la position La cryptanalyse du Vigenère est un est un exercice nettement plus compliqué mais réalisable si la longueur de la clé est faible devant la longueur du texte Rappel : si la clé est réellement aléatoire, de longueur égale à celle du texte et utilisée une seule fois, le système est indéchiffrable. 4

Les pistes de cryptanalyse : séquences répétées Avant tout, il faut trouver la longueur de la clé, car une fois trouvée on sait que toutes les lettres en même position par rapport à la clé sont codés de la même manière, d autant plus triviale à trouver que c est un chiffre de Cesar (simple décalage) Une séquence de lettres identiques a en effet de fortes chances d être une séquence de lettres identiques du texte clair, chiffrée avec la clé dans la même position. Le décalage correspondant est alors un multiple de la longueur de clé : VZ FG ZV PZX VZ FG Longueur de clé : diviseur de 9 S il y a trop de digrammes répétés et que les tests sur les digrammes ne s avèrent pas assez significatifs, refaire sur les trigrammes. Ne retenir que les indices les plus flagrants et prendre le pgcd des pas trouvés. 5

On appelle indice de coïncidence d un texte, la probabilité de tomber sur deux lettres identiques lorsqu on tire deux lettres au hasard. Dans tout ce qui suit on considère un texte ne comportant que les lettres A à Z en majuscules sans chiffres ni espaces ni caractères accentués ou spéciaux (séparer les mots est l étape finale très facile d une cryptanalyse). On note n A n Z le nombre d occurrences des lettres A Z dans le texte composé de n lettres au total. Calculer l indice de coïncidence. 6

On note n A n Z le nombre d occurrences des lettres A Z dans le texte chiffré à analyser composé de n lettres. Calculer l indice de coïncidence. Réponse : I = n A (n A 1) n(n 1) +...+ n Z (n Z 1) n(n 1) n C n = A (n A 1) A C n = n(n 1) manières de tirer lettres A, parmi les n A figurant dans le texte manières de tirer lettres, d où la probabilité de tirer deux lettres A, idem jusqu à Z et on additionne 7

Si maintenant le texte est long et vraiment aléatoire que vaut l indice de coïncidence I Alea? Rappel : pour tout texte de longueur n, l indice vaut : I = n A (n A 1) n(n 1) +...+ n Z (n Z 1) n(n 1) 8

Si maintenant le texte est long et vraiment aléatoire que vaut l indice de coïncidence I Alea? Rappel : pour tout texte de longueur n, l indice vaut : I = n A (n A 1) n(n 1) +...+ n Z (n Z 1) n(n 1) Réponse : pour un texte long si l on note p A = n A n la probabilité de tirer un A en tirant une lettre au hasard, la probabilité de tirer deux A en tirant deux lettres au hasard est proche de p A Mais pour un texte aléatoire p A =p B = p Z =1/6 " I Alea = 6 1 % $ ' # 6& = 1 6 9

Si maintenant le texte est long et écrit en Français que vaut I French sachant que vous connaissez les fréquences en Français (les probabilités p A =p B = p Z )? 10

Si maintenant le texte est long et écrit en Français que vaut I French sachant que vous connaissez les fréquences en Français (les probabilités p A,p B, p Z )? Réponse : IFrench = p A +...+ pz Travaux Pratiques : Utilisant les résultats de p A,p B, p Z donnés plus haut, calculez I French et I Alea que remarquez vous? 11

Lettre Proba (%) Proba^ A 8,11 0,0065771 B 0,81 0,00006561 C 3,38 0,0011444 D 4,8 0,00183184 E 17,69 0,0319361 F 1,13 0,0001769 G 1,19 0,00014161 H 0,74 0,00005476 I 7,4 0,0054176 J 0,18 0,0000034 K 0,0 0,00000004 L 5,99 0,00358801 M,9 0,0005441 N 7,68 0,0058984 O 5, 0,00704 P,9 0,0008564 Q 0,83 0,00006889 R 6,43 0,00413449 S 8,87 0,00786769 T 7,44 0,00553536 U 5,3 0,007359 V 1,8 0,00016384 W 0,06 0,00000036 X 0,53 0,0000809 Y 0,6 0,00000676 Z 0,1 0,00000144 Somme 99,9 0,0805893 Voici mes résultats, donc pour moi I French = 0,0806 (sur le web ou trouve 0,0746 en Français et 0,065 pour l Anglais) Quels sont vos résultats? I Aléa = 0,03846 Comme on pouvait s y attendre, l indice de coïncidence est donc beaucoup plus grand lorsqu on tire les lettres suivant l histogramme très irrégulier de la langue, que lorsqu on les tire sur un histogramme «plat» 1

Et après? Voici l idée : Si on effectue les statistiques sur les k sous-ensembles de lettres qui sont séparés d une distance k (lettres en position 1, k+1, k+1 et on calcule un indice, lettres en position, k+, k+ et on calcule un autre indice etc. et on fait la moyenne des k indices calculés), on trouve par définition l indice de la langue si k est la longueur de clé Si au contraire k n est pas la longueur de clé, comme tente de l illustrer cette figure on va mélanger des histogrammes décalés et trouver un indice se rapprochant de l indice aléatoire qui est beaucoup plus faible. D où méthode 1 : calculer pour k=1, les valeurs de cet indice et s arrêter quand on trouve un indice anormalement grand (et voisin de celui de la langue). Attention l indice vaut aussi celui de la langue pour tout multiple de la longueur de clé. D un autre côté si la longueur de clé admet des diviseurs il faut aussi s attendre à des valeurs d indice important pour ces diviseurs 13

Méthode : on calcule une valeur théorique de l indice de coïncidence du texte complet, en fonction de la longueur de clé noté k et de la longueur n du texte. Lorsque l on prend deux lettres du texte complet (on suppose pour simplifier que n est multiple de k, on imagine que le texte est écrit en n/k lignes de k colonnes) : ü Soit elles sont dans la même position par rapport à la clé : combien y a-t-il de paires qui sont dans ce cas? 14

Méthode : on calcule une valeur théorique de l indice de coïncidence du texte complet, en fonction de la longueur de clé noté k et de la longueur n du texte. Lorsque l on prend deux lettres du texte complet (on suppose pour simplifier que n est multiple de k, on imagine que le texte est écrit en n/k lignes de k colonnes) ü Soit elles sont dans la même position par rapport à la clé : combien y a-t-il de paires qui sont dans ce cas? kc n/k = k " n $ % # k& ' " $ n # k 1 % ' = & n(n k) k k : choix de la colonne C n/k : choix des deux lettres dans la colonne 15

Méthode : on calcule une valeur théorique de l indice de coïncidence du texte complet, en fonction de la longueur de clé noté k et de la longueur n du texte. Lorsque l on prend deux lettres du texte complet (on suppose pour simplifier que n est multiple de k, on imagine que le texte est écrit en n/k lignes de k colonnes) ü Soit elles ne sont dans la même position par rapport à la clé : combien y a-t-il de paires qui sont dans ce cas? 16

Méthode : on calcule une valeur théorique de l indice de coïncidence du texte complet, en fonction de la longueur de clé noté k et de la longueur n du texte. Lorsque l on prend deux lettres du texte complet (on suppose pour simplifier que n est multiple de k, on imagine que le texte est écrit en n/k lignes de k colonnes) ü Soit elles ne sont dans la même position par rapport à la clé : combien y a-t-il de paires qui sont dans ce cas? " n C k " n $ % ' # k& n C k $ % ' # k& = k(k 1) : choix des deux colonnes différentes k = n (k 1) k : choix d une lettre quelconque de chacune de ces deux colonnes On vérifie bien que : n(n k) k + n (k 1) k = n(n 1) 17

Méthode : on calcule une valeur théorique de l indice de coïncidence du texte complet, en fonction de la longueur de clé noté k et de la longueur n du texte. Compte tenu de ce qui précède estimer l indice I Cipher du texte chiffré en se souvenant que l indice est I French dans l ensemble des paires issues d une même colonne, et en considérant qu il sera I Alea pour les paires issues de colonnes différentes (ce qui est évidemment une approximation, on suppose que l effet de tirages dans plusieurs histogrammes décalés correspondant au Français est équivalent à un tirage uniforme). 18

Méthode : on calcule une valeur théorique de l indice de coïncidence du texte complet, en fonction de la longueur de clé noté k et de la longueur n du texte. Compte tenu de ce qui précède estimer l indice I Cipher du texte chiffré en se souvenant que l indice est I French dans l ensemble des paires issues d une même colonne, et en considérant qu il sera I Alea pour les paires issues de colonnes différentes (ce qui est évidemment une approximation, on suppose que l effet de tirages dans plusieurs histogrammes décalés correspondant au Français est équivalent à un tirage uniforme). n(n 1) I Cipher = n(n k) k I French + n (k 1) k I Alea Les deux expressions de part et d autres du signe égale représentent le nombre estimé de paires de lettres identiques Dans l expression précédente, seul k n est pas connu. Calculer k en fonction des indices et de n 19

Méthode : n(n 1) I Cipher = n(n k) k I French + n (k 1) k I Alea Donne après un calcul facile : k = n(i French I Alea ) I French I Cipher + n(i Cipher I Alea ) Travaux pratiques : ü A partir du long texte Vigenere fourni (deux variantes du même texte chiffré avec deux clés de longueur différente) ü Trouver la longueur de clé par l une des méthodes précédentes ü Pour chaque sous-ensemble trouver la lettre la plus fréquente et deviner le décalage de César correspondant ü Déchiffrer le texte 0

Quelques sites http://www.bibmath.net/crypto http://www.dil.univ-mrs.fr/~vancan/inf7/old/ documents/earlyciphers/vigenere.html http://www.apprendre-en-ligne.net/crypto/ crypto 1