INF4420: Sécurité Informatique Cryptographie I

Transcription

INF4420: Sécurité Informatique Cryptographie I
INF4420: Sécurité Informatique
Cryptographie I
José M. Fernandez
M-3109
340-4711 poste 5433
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Aperçu du module – Cryptographie (3 sem.)
Définitions et histoire
Notions de base (théorie de l'information)
Chiffrement
Méthodes "classiques"
Cryptanalyse de base
Chiffrement symétrique
Chiffrement à clé publique
Autres primitives cryptographiques
Principes d'applications
Risques résiduels
RÉFÉRENCES :
Stinson, « Cryptography : Theory and Practice », chap. 1,2,3,4.
Bishop, « Computer Security : Art and Science », chap. 9,10,11,32.
2
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Définition et nomenclature
Historique
Modèle de Shannon
Source d’information
Codage et compression
Entropie et redondance
Aperçu – Crypto I (aujourd’hui)
Chiffrement
Chiffrement et codage
Algorithmes « classiques »
Cryptanalyse de base
Force brute
Reconnaissance de texte
Analyse de fréquences
Texte et cryptogramme
choisi
3
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Un peu de grec classique…
Kryptos = "caché", "secret"
Graphos = écriture
=> Cryptographie
=> Cryptanalyse
Logos = "savoir"
=> Cryptologie
Stéganos = "couvert",
"étanche"
=> Stéganographie
Définitions et terminologie
Un peu d'américain…
Alice
Bob
Ève
(Charlie)
Encrypt and Decrypt
Un peu de français !!!
Chiffrer et déchiffrer
Coder et décoder
Crypter et décrypter (!)
Irène !!! (l'ingénieure)
Un peu de math…
4
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Historique
Les trois ères de la cryptographie
« Classique »
• Jusqu’au masque jettable
« Moderne »
• Crypto électro-mécanique et WWII
• Guerre froide …
• Crypto électronique et informatique - DES
« Âge d’or »
• Chiffrement à clé publique
• Cryptologie et autres tâches cryptographiques
• Internet et enjeux commerciaux
5
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Source
Modèle de Shannon
Codeur Canal
Décodeur
Récepteur
Alice
Bob
Source
Irène
Produit des symboles d'un "alphabet" (sigma)
Fonctionne "sur demande" (d'où le "bouton")
Codage
Regroupe et transforme les symboles de la source dans un format
pouvant être transmis ou sauvegardé
Canal
Peut introduire du bruit
Transmission peuvent être interceptés
Décodage
Permet de reconstruire le message original
(séquence des symboles de source)
6
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Source d'informations
Alphabet
Ensemble discret fini Σ = {σ
σ1, …, σM}
Par convention taille de Σ, |Σ
Σ| = M
Contrôle
un "bouton" qui permet d'obtenir un symbole à la fois
Principe de la boîte noire
Autre que le bouton et un nombre petit d'observations (symboles),
on ne peut rien savoir sur le contenu ou fonctionnement de la source
(sauf peut-être Alice, mais pas Ève, Irène ou Bob).
Pourquoi cette abstraction ??
Permet de discuter de l'efficacité du codage (théorie de l'information)
Permet d'analyser correctement la résistance à certaines menaces
• Algorithmes de chiffrement
• Choix de mots de passes et phrases de passe
7
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Sources dérivées
Source par bloc
Étant donné une source S, et un entier positif b,
la source Sb représente la source obtenue en encapsulant S par une
boîte qui mets b symboles de S dans un tampon ("buffer") avant
de les sortir à l'extérieur
Noter que l'alphabet de Sb est maintenant Σb
Source par échantillonnage
Étant donné une source S, et un entier positif b,
la source S1/b représente la source obtenue en encapsulant S par
une boîte qui émet seulement le 1er symbole de chaque b symboles
sortie de S dans
L'alphabet de S1/b est le même que S, soit Σ
8
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Modélisation de la source
Interprétations
"Déterministe"
• La boîte "connaît" à l'avance toute la séquence de symboles
(potentiellement infinie…)
Probabiliste
• La boîte choisit les symboles au fur et à mesure selon un distribution de
probabilité
Processus markovien ou "sans mémoire" :
p_i = Prob (S => " σi"), ∀ 1<i<M
e.g. Prob (Sb => " σi , σj") = pi pj
Processus non-markovien
Les probabilités de symboles peuvent dépendre des symboles
antérieurs sortis de la source…
9
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Codage
Translittération
Un codage traduit les symboles de source vers un autre
"alphabet"
Τ = { τ1, …, τN},
Fonction de codage
F : Σ Τ,
• τ = F(σ), représente comment le symbole σ devra être transmis
Fonction de décodage
F-1: Τ Σ
• σ ' = F-1(τ),
si σ ' ≠ σ, il n'y a eu une erreur de transmission/codage
10
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Efficacité du codage - Compression
Compression
Dans certaines circonstances, on voudrait pouvoir coder en
utilisant moins de bande passante, p.ex. tel que N < M
Efficacité du code est mesuré en bits transmis par chaque symbole
de source émis
1er Théorème de Shannon
• 1. Efficacité maximum d'un code compresseur est approx. égale à H(S)
• 2. Il existe un code compresseur (sans erreur) avec efficacité H(S)+1
11
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Entropie de Shannon
Définitions
H(S) = Σ i pi log2 1/pi
• Q: Comment est-ce qu'on calcule pi si la source n'est pas Markovienne?
• A: En utilisant les fréquences de symboles, calculés sur la chaîne infinie…
Propriétés
Σ = 0,1
• Prob (S="0") = Prob (S="1") = 1/2 => H(S) = 1 bit (valeur maximal)
• Prob (S="1") = 1; Prob (S="0") = 0 => H(S) = 0 bit (valeur minimal)
Σ arbitraire, |Σ
Σ| = N
• Valeur minimale
H(S) = 0 , quand Prob (S= σ)=1 pour un σ donné
• Valeur maximale
H(S) = log N bits, quand Prob (S= σi) = Prob (S= σj), ∀ σi , σj ∈ Σ
Source markovienne
• Si S est markovien, alors
H(Sb) = b*H(S)
• Sinon, en général
H(Sb) ≤ b*H(S)
12
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Interprétation de l’entropie d’une source
Interprétation de H(S)
1er théorème dit que
• chaque symbole émit par S peut être codé
individuellement avec en moyenne H(S) bits
Mais si, on permet que le codage regroupe 2 lettres à la fois ?
Alors, par 1er théorème on peut coder chaque digramme (2 symboles)
avec H(S2) bits, soit H(S2)/2 bits par symbole
Taux de compression
Sans compression
log N bits par symbole
Avec compression par bloc de b lettres
H(Sb)/b bits par lettre
H (S b ) / b
Taux de compression =
log N
13
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Entropie du langage de la source
À cause des propriétés de H, plus b est grand plus le taux
de compression sera élevé, jusqu’à une certaine limite
On définit l’entropie HL du langage associé à la source S
(langage = ensemble de chaînes que S génère)
H (S b )
H L ( S ) = lim
b →∞
b
qui représente le « minimum » de bits par symboles qu’il sera
nécessaire pour coder des chaînes de symboles émises par S,
même si on permet de coder par blocs de plusieurs symboles
à la fois.
14
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Correction d'erreur
Code correcteur d'erreur
L'introduction de bruit dans le canal est compensé en utilisant
code "correcteur d'erreur" t.q.
Prob (F-1(σ
σ') = σ) 1, quand σ' est le symbole reçu via le canal
L'efficacité du code correcteur d'erreur
Dépend du niveau de bruit introduit par le canal
• celui-ci peut être mesuré avec l'entropie de Shannon
Se mesure également en nombre de bits nécessaires par symbole
de source, pour un code qui corrige "presque toutes les erreurs"
2e Théorème de Shannon
• Établit le lien entre l'efficacité du code correcteur d'erreur et le niveau de
bruit du canal
15
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Modèle de Shannon révisé
Ève
σ
Source
τ
Codeur
τ'
Chiffr.
τ
Déchif.
σ
Décodeur
Récepteur
Bob
Alice
Irène
16
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Modèle de Shannon révisé
Ève
Peut intercepter impunément tous les mots de codes τ
transmis sur le canal
Irène
Choisit l'algorithme de chiffrement
Détermine la politique de choix et gestion de clés
Doit tenir en compte le codage
• en considérant les caractéristiques de la source (DP, entropie, etc.)
• en influençant le choix de codage (si possible)
• en choisissant et adaptant l'algorithme de chiffrement en conséquence
(choix de taille de clés, compression/décompression, etc.)
Pourquoi : voir TP 1…
17
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Algorithme de chiffrement – Concepts généraux
Alphabet
Entrée : Τ
Sortie : en général Τ, mais peut-être un autre alphabet
Fonction de chiffrement
Clé de chiffrement = ke
τ' = E(ke, τ) = Ek1 (ττ)
Fonction de déchiffrement
Clé de déchiffrement = kd
τ = D(kd, τ') = Dk2(ττ)
Ne corrige pas les erreurs donc,
En général τ = τ'
18
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Algorithmes "classiques" mono-alphabétiques
Algorithme de César
Source
• texte en caractères latin
Codage
• lettres chiffres de 1 à 26
(20 pour être historiquement exact)
Chiffrement
• x x+3 mod 26
Clés
• nil
Algorithme de décalage
Source et codage
• idem
Chiffrement
• x x + k mod 26
Clés
Algorithme de substitution
Source
• Idem
Codage
• aucun
Chiffrement
• x π(x)
Clé
• π (une table de substitution)
Algorithme afin
Source et codage
• lettres en chiffres
Chiffrement
• x a x + b mod 26
Clé
• (a,b) où a, b ∈ {1,…,26}
• k ∈ {1,…,26}
19
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Algorithme de Vigenère
Algorithme de Vigenère
Source
• Texte en caractères latin
Codage
• lettres chiffres de 1 à 26
Clé
• K = k1 k2 … km , mot/phrase de longueur m
Chiffrement
• xi (xi + k i mod m ) mod 26
C
S
+
E
E
C
X
I
Y
N
S
3 5 3 9 14
19 5 24 25 19
22 10 1
V J A
8
H
7
G
E
E
S
X
T
Y
P
S
A
E
5 19 20 16
5 24 25 19
1
5
21 14 5 16 9
24 25 19 5 24
16 5 ...
25 19 ...
6
F
19 13 24 21
S M N U
15 24 ...
O X ...
10 17 19
J Q S
9
I
U
X
N
Y
E
S
P
E
I
X
7
G
P
Y
E ...
S ...
20
INF
INF4420
4420
Sécurité
SécuritéInformatique
Informatique
Méthode de cryptanalyse de base
Force brute
Taille de l’espace de clés
Critère de reconnaissance ou succès
• Patron ou format reconnaissable
• Le texte « fait du sens »
• Le texte « marche », e.g. mot de passe, etc.
Analyse fréquentielle
Établir le tableau des fréquences
Connaître les fréquences de la source
Codage connu
Rétro-ingénierie de l'algorithme de chiffrement:
• Marche pour les algorithmes de substitution mono-alphabétiques
• Peut marcher pour les poly-alphabétiques, si fréquences connues
Mesure de facilité
ENTROPIE !!!!
• (mais attention : entropie de la source vs. entropie du langage)
COMPRÉSSIBILITÉ !!!
21