PDF 970 ko D312_Chapitre-3

Transcription

PDF 970 ko D312_Chapitre-3
Module 312
Sécurité des systèmes d'information
Encryptage
Substitution, Transposition
DES
RSA
Produits courants
Méthodes spécifiques aux documents multimédias
Bibliographie
Gérard-Michel Cochard
[email protected]
Encryptage
Substitution et Transposition
L’encryptage consiste à transformer un texte « en clair » (plain text) en un texte indéchiffrable (cipher text). L’opération inverse est le
décryptage. Deux clés sont nécessitées de manière générale :
Si clé K1 = clé K2 : système classique ou monoclé Si clé K1 <> clé K2 : système biclé
exemple : construction d'une clé : choix d'un mot particulier
Il existe 2 grandes techniques de base : la méthode de substitution et la méthode de transposition.
●
Méthode de substitution
le chiffre : remplacement d'un signe par un signe
Le chiffre de César (d'après Suétone) consiste en un décalage de 3 lettres dans l'alphabet :
Version "moderne" : On ajoute au code ASCII d'un caractère, un offset fixe (clé) modulo la taille de l'alphabet.
exemple : ajout de 3 au code ASCII
Un outil de cryptographie important est l'analyse en fréquences. Sur un nombre de textes important on recherche la fréquence d'apparition des
différentes lettres ; pour des textes en français, on obtient le résultat indicatif suivant :
exemple : soit le texte (en français) suivant à décoder :
L'analyse de l'apparition de chaque lettre donne le résultat suivant :
On peut donc établir le tableau de correspondance :
Résultat brut :
4) Le mot ANQOISSE doit signifier ANGOISSE donc O -> G et V -> Q
5) Le mot ALLTMER doit certainement être ALLUMER donc A -> U et donc B -> T
6) Le texte devient plus clair et la suite devient plus facile
Marcel Aymé - La rue sans nom.
Le "code" de Vigenère (Blaise de Vigenère ; Traité des chiffres ; 1586) est un chiffre fameux du type substitution. Il est défini par la matrice
suivante :
Soit la clé : MIAGE et le texte à chiffre : "Le ciel est bleu, la mer est verte." On dispose le texte et la clé comme suit :
Les lignes en jaune (ci-dessous) correspondant aux lettres de la clé (2ème colonne) définissent la substitution :
On obtient donc :
On notera que cette méthode est une parade à l'analyse en fréquences.
le code : remplacement d'un mot par un mot.
●
Méthode de transposition
Le texte à crypter est découpé en blocs (de 8 caractères par exemple). Soit K1 = 71265843 ce qui signifie que le
caractère 1 du bloc va en position 7 du bloc encrypté. Ainsi
VIVE L'INFORMATIQUE
devient
IVI' EVLFOITMRNAUE
La clé de décryptage est K2 = 23875416.
exemple plus réel : emploi du codage binaire : principe de la méthode Lucifer (IBM ; Feistel)
Q
Les méthodes usuelles sont des méthodes mixtes où substitution et transposition sont utilisées. Deux méthodes sont bien connues : DES
normalisée depuis 1977 (National Bureau of Standards) et RSA.
DES (Data Encryption Standard) - Système à clé secrète
Cette méthode est normalisée. Le texte est découpé en blocs de 64 bits et une clé de 64 bits est utilisée. Le schéma ci-dessous indique le
processus de codage :
La clé de codage K donne naissance, comme nous le verrons plus loin à 16 clés secondaires utilisées dans le processus de codage. IP et la
transformation inverse IP-1 sont des permutations définies par les tableaux ci-dessous :
IP
IP-1
La signification de IP est que le 58ème bit devient le premier bit, le 50ème devient le deuxième, et ainsi de suite. De même pour IP-1, le premier bit
du résultat est le bit 40, le deuxième bit du résultat est le bit 8, etc.
La fonction f est définie suivant le schéma ci-dessous :
Cette fonction f(R,K) fait intervenir l'opération E qui transforme un bloc de 32 bits en un bloc de 48 bits, les opérations S1 à S8 qui transforment
des groupes de 6 bits en groupes de 4 bits, la permutation P qui agit sur un bloc de 32 bits. Ces opérations sont définies ci-dessous :
opération E
opération P
Le 1er bit de E(R) est le bit 32, le deuxième est le bit 1, etc.. ; en ce qui concerne la permutation P, le premier bit est le bit 16, le deuxième le bit
7, etc...
S1
S2
S3
S4
S5
S6
S7
S8
Explicitons l'usage des opérations Si sur un exemple ; supposons que le sextet à transformer soit 101100 à l'entrée de S1. On sépare le premier bit
(1) et le dernier bit (0) que l'on concatène (10 soit 2 en décimal) ; les quatre bits restant constituent le nombre 0110, soit 6 en décimal. A
l'intersection de la ligne 2 (les lignes et colonnes sont numérotées à partir de 0) et de la colonne 6 de la matrice S1, on obtient 2, soit sur 4 bits,
0010. Ainsi 101100 se transforme en 0010.
Les clés sont produites sur 48 bits, à partir de la clé de départ K, suivant le processus ci-dessous faisant intervenir les opérations (permuted
choice) PC-1 et PC-2 suivant le schéma ci-dessous :
avec
PC-1 : Les bits de KEY sont numérotés de 1 à 64 ; Les bits de C0 sont les bits 57, 49, 41, 33, .... de KEY tandis que les bits de D0 sont les bits 63,
55, 47, 39, ... de KEY.
PC-2 : le premier bit de Ki est le 14ème bit de CiDi, le deuxième bit de Ki est le 17ème bit de CiDi.
Left Shift : les décalages à gauche sont circulaires : le bit sortant à gauche est réintroduit à droite. Toutefois, le décalage est effectué une fois
ou deux fois suivant les clés suivant le tableau ci-dessous :
Critique du DES : la clé de 64 (en fait 56 bits) est trop courte et on peut la deviner par essais successifs de combinaisons de 56 bits (il faut quand
même du temps, mais les ordinateurs sont de plus en plus performants.). Démonstration de John Gilmore (janvier 1999) : on peut trouver la clé
DES avec une machine coûtant 250 000 $ en 22h et 15 min. DES tend à être remplacé par d’autres systèmes comme IDEA (International Data
Encryption Algorithm) : travail sur blocs de 64 bits clé de 128 bits.
RSA (Rivest, Shamir, Adleman) – système à clé publique
●
●
●
●
●
Breveté par le MIT en 1983, mais le brevé a expiré en 2000.
Il est très utilisé dans le commerce électronique et l'échange de données sur Internet ainsi que les cartes bancaires en France.
Il est basé sur l'utilisation d'une clé publique et une clé privée.
La clé publique est envoyée aux personnes voulant chiffrer des données, la clé privée est gardée secrète pour déchiffrer.
RSA est basé sur le principe qu'il est très difficile de décomposer un très grand nombre en deux facteurs premiers.
Faits de base :
1) On connaît un algorithme rapide pour déterminer si un nombre entier (grand) est premier :
théorème de Fermat : si p est premier il existe n < p tel que np-1 = 1 (modulo p)
Nombre de 130 chiffres : temps machine de quelques minutes
2) On ne connaît pas d’algorithme rapide pour déterminer les facteurs premiers d’un nombre entier (grand) non premier. Pour un
produit de 2 nombres entiers premiers de 63 chiffres chacun, le temps de calcul serait de 40 000 000 000 000 000 années avec un
ordinateur courant (1999) !
Méthode
a) Choisir aléatoirement 2 différents grands nombres premiers (100 chiffres chacun par exemple) p et q. Calculer r = p.q
b) Choisir aléatoirement un grand entier e, premier relativement à (p-1).(q-1) ; e est la clé d'encryptage (publique).
c) Déterminer la clé de décryptage (privée) d telle que d.e = 1 (modulo (p-1).(q-1))
d) Rendre publics r et e, mais pas d
e) Cryptage de P : C = Pe (modulo r)
f) Décryptage :
P = Cd (modulo r)
Deux nombres sont premiers entre eux s'ils n'ont que 1 comme diviseur commun.
Rappelons que A (modulo B) est égal au reste de la division entière de A par B.
Ainsi : 16 (modulo 3) = 1 car 16 - 5*3 = 1 ; 21 (modulo 12) = 9 car 21 - 1*12 = 9 ; 224 (modulo 95) = 34 car 224 - 2*95 = 34.
On peut utiliser les fonctions fournies par quelques calculettes ou par quelques tableurs. Par exemple Excel procure, pour calculer A (modulo B), la
fonction MOD(A;B) qui fonctionne de manière équivalente à A - B*ENT(A/B).
Signalons aussi que l'on peut se réduire à des calculs sur des nombres raisonnables en travaillant sur les puissances :
887 (modulo 187) = [881 (modulo 187) x 882 (modulo 187) x 884 (modulo 187)] = [ 88 (modulo 187) x 7744 (modulo 187) x 59969536 (modulo 187)]
(modulo 187) = [88 x 77 x 132] (modulo 187) = 894432 (modulo 187) = 11 (modulo 187)
exemple (volontairement simple)
a) p = 3, q = 5, r = 15
b) (p-1).(q-1) = 8
c) d.11 = 1 (modulo 8)
e = 11
(nombre premier plus grand que p et q)
d’où d = 3 par exemple
d) Publication de r = 15 et e = 11
e) P = 13 ; encryptage : C = 1311 (modulo 15) = 1 792 160 394 037 (modulo 15)
=7
détail du calcul :
C = 1311 (modulo 15) = [131 (modulo 15) x 132 (modulo 15) x 138 (modulo 15)] (modulo 15) = [13 (modulo 15) x 169
(modulo 15) x 815730721 (modulo 15)] (modulo 15) = [13 x 4 x 1] (modulo 15) = 52 (modulo 15) = 7
f) Décryptage : P = 73 (modulo 15) = 343 (modulo 15) = 13
Une application intéressante : la signature d’un message. Supposons que Alice (A) envoie à Bob (B) un message, crypté en RSA.
●
●
●
●
CPA : clé publique de A (encryptage)
CPB : clé publique de B (encryptage)
CSA : clé secrète de A (décryptage)
CSB : clé secrète de B (décryptage)
On envoie un message P de A vers B. Comment B sait-il que c'est bien A qui a envoyé le message ?
1) au lieu de faire CPB(P), A applique d'abord CSA, puis CPB :
C = CPB(CSA(P))
2) B reçoit le message C. Il applique CSB, puis CPA :
CPA(CSB(C)) = CPA(CSB(CPB(CSA(P)))) = CPA(CSA(P)) = P
B est ainsi sûr d'avoir reçu un message de A.
Produits courants
●
TLS (Transport Layer Security)
- Anciennement nommé Secure Socket Layer (SSL : SSL 2.0, SSL 3.0 et TLS 1.0 existent dans Internet Explorer 6 et
plus).
- Il a été développé à l'origine par Netscape.
- Il a été renommé TLS par l'IETF (Internet Engineering Task Force) suite au rachat du brevet de Netscape en 2001.
- TLS est un protocole de sécurisation des échanges sur Internet.
- Supporté par la majorité des navigateurs web (TLS 1.0 existe mais n'est pas activé par défaut dans IE).
- TLS consiste à mettre en oeuvre un canal de communication sécurisé entre 2 machines (après authentification).
Caractéristiques:
●
●
●
●
Authentification par certificats (recours à un tiers de confiance).
Négociation du niveau de sécurité à appliquer (type d'algorithmes).
Transmission de données encryptées.
SSL (Secure Socket Layer)
- Chiffrement : DES, 3DES, RC2, RC4, AES (algorithmes symétriques).
- Hachage: MD5 (Message Digest), SHA (Secure Hash Algorithm).
- Signature : RSA
Le hashage consiste à calculer, à partir d'un bloc de données, une empreinte numérique. Cette empreinte a une taille
limitée (par exemple 160 bits pour SHA). Une bonne fonction de hashage fournit une empreinte différente pour deux
blocs de données différents.
Ainsi, le récepteur d'un message peut vérifier si ce message a été modifié en calculant son "hash" et le comparer avec
l'empreinte envoyée avec le message.
●
PGP (Pretty Good Privacy)
Fonctionnalités : authentification (RSA), signature (RSA), confidentialité des messages (algorithme à clé secrète
IDEA transmise avec la méthode RSA Version gratuite)
(http://cryptography.org/getpgp.htm)
●
●
●
●
L'usage le plus fréquent de PGP est le courrier électronique mais aussi les fichiers importants ou confidentiels.
C'est la solution la plus connue pour rendre confidentiels la transmission de messages et authentifier
l'utilisateur.
Il existe pour plusieurs plate-formes : Dos, Windows, Linux, Mac OS.
Son code source est accessible, il est alors facile de vérifier qu'il n'y a pas de porte dérobée dans le code
permettant l'écoute des systèmes ou la prise de contrôle à distance.
Principe de PGP :
PGP:
Utilise RSA (à clé publique) et IDEA (à clé secrète), c'est donc une cryptographie hybride.
PGP offre les fonctionalités suivantes :
❍
❍
❍
❍
Signature électronique et vérification de l'intégrité des messages.
Chiffrement de fichiers locaux (fonction utilisant IDEA).
Distribution des clés publiques RSA aux correspondants voulant transmettre des données.
Certification des clés (sigature ou saut garantissant l'authenticité des clés).
IDEA (International Data Encryption Algorithm):
●
●
●
Chiffrement par bloc de 64 bits.
Mais la clé est de 128 bits, pour comparaison, le DES utilise une clé de 56 bits.
Utilise des XOR, des additions modulo 216 et des multiplications modulo 216+1.
Méthodes spécifiques aux documents multimédias
●
Accès conditionnel et embrouillage
Le brouillage s’effectue par entremêlement des éléments d’un document (bits, pixels, plages sonores,…) Raisons du
brouillage : Commerciales (chaînes de TV : Canal Plus avec MediaGuard) Sécurité (confidentialité) Copyright
(protection des droits)
●
Etiquetage
On attache aux données une étiquette (métadonnées) Exemple : pour un programme TV, on peut intercaler un numéro
d’identification toutes les n images.
●
Enveloppe électronique
Le document est fourni avec une partie en clair (informations) et une partie cryptée (document propre)
●
Tatouage
Ajout d’une marque d’identification visible (ou audible) Variante : marquage par une ligne visible (rayure) sur les
images que l’on n’a pas le droit de consulter (fourniture d’un logiciel qui élimine la rayure).
●
Marquage en filigrane (watermarking)
En vogue
Plusieurs méthodes :
- Data hiding : dissimulation par incrustation dans un média d’informations liées à l’identification et au droit d’auteur
- Stéganographie : dissimulation d’une image dans une autre image
- Marque invisible : extension numérique du filigrane (que l’on voit seulement par transparence) : données incrustées
- Fingerprinting : incrustation d’empreintes différentes dans les copies d’un document multimédia fournies aux clients
(comme un numéro de série caché)
Bibliographie
●
●
●
●
●
●
●
●
●
●
●
●
●
A. Tanenbaum : Systèmes d’exploitation (InterEditions)
A. Tanenbaum : Réseaux (InterEditions)
S. Ghernaouti-Helie : Sécurité Internet (Dunod)
W. Stallings : Data and Computer Communications (Prentice Hall)
Maekawa, Oldehoeft & Oldehoeft : Operating Systems (Benjamin)
Réseaux et protection numérique des documents multimédias (études INA)
Réseaux et commerce électronique (études INA)
J.P. Lovinfosse : Le piratage informatique (Marabout)
N.J.Yeager, R.E.McGrath : Technologie des serveurs Web (Thomson Pub.)
S.M.Bellowin, W.R.Cheswick : Firewalls et sécurité Internet (Addison Wesley)
A.Fenyö, F.Le Guern, S. Tardieu : Raccorder son réseau d'entreprise à l'Internet (Eyrolles)
Commission Nationale de l'Informatique et des Libertés : http://www.cnil.fr
S. Singh : Histoire des codes secrets (Le livre de poche)
Exercices
Exercice 1
Encrypter le mot "SECURITE" en utilisant les méthodes suivantes :
a) permutation avec une période de longueur 3 : f(1) = 3 ; f(2) = 1 ; f(3) = 2
b) chiffre de César
c) chiffre de César suivi de la permutation a)
d) algorithme DES en utilisant le code ASCII et la clé 000000.......00000.
e) algorithme RSA avec p = 47, q = 59, d = 157 et le codage : blanc = 00, A = 01, B = 02, ......., Z = 26.

Documents pareils