Principaux systèmes de chiffrement
L’histoire de la cryptographie est déjà longue . On rapport son utilisation en Egypte il y a 4000 ans. Toutefois, pendant des siècles, les méthodes utilisées étaient restées souvent très primitives. D’autre part, sa mise en oeuvre était limitée aux besoins de l’armée et de la diplomatie. Les méthode de chiffrement et de cryptanalyse ont connu un développement très important au cours de la seconde guerre mondiale et ont eu une profonde influence sur le cours de celle-ci. Mais d’après [22], [23], c’est la prolifération actuelle des systèmes de communication qui a fait sortir la cryptographie du domaine militaire. De plus, elle a diversifié la demande et provoqué le développement de nouvelles techniques cryptographiques. Elle est à l’origine d’un développement rapide depuis les dernières décennies, qui ne semble pas s’essouffler aujourd’hui, bien au contraire. Nombreux systèmes de chiffrement [3], [20], [21], [24] différents ont été imaginés pour se protéger contre la curiosité et la malveillance des ennemis depuis des siècles. On peut classer ces systèmes en trois grandes classes que nous allons représenter sur la Figure 1.01.
Sécurité d’un système de chiffrement
La sécurité d’un système de chiffrement en continu dépend entièrement des détails internes du générateur de codons. Si le générateur de codons engendre un flux continu de zéros, le texte chiffré résultant sera identique au texte en clair et toute l’opération sera inutile. Le générateur de codons engendre un flux de bits qui ont l’air aléatoires, mais en fait, il est déterministe et il peut être reproduit de façon infaillible au moment du déchiffrement. Plus la sortie du générateur est aléatoire, plus il est difficile pour le cryptanalyste de le casser. Si, néanmoins, le générateur engendre le même flot de bits chaque fois qu’on l’active, le système cryptographique résultant sera facile à casser. Si le cryptanalyste a un texte chiffré et le texte en clair correspondant, il peut combiner par ou exclusif le texte en clair avec le texte chiffré pour retrouver le flux de codons. Maintenant, chaque fois qu’il intercepte un message chiffré, il a les codons nécessaires pour déchiffrer le message. De plus, il peut déchiffrer et lire tout texte chiffré qu’il aurait intercepté avant. Quand le cryptanalyste obtient une seule paire « texte en clair, texte chiffré », il peut tout lire. C’est pourquoi tous les algorithmes de chiffrement en continu utilisent des clés. La sortie du générateur de codons est une fonction de la clé. Maintenant, s’il a une paire « texte en clair, texte chiffré », il peut seulement lire les messages chiffrés avec une seule clé. Lorsqu’on change la clé, l’adversaire se retrouve à la case de départ.
Mode CBC (Cipher Block Chaining)
En mode chiffrement avec chaînage de blocs ou CBC, le texte en clair est combiné par ou exclusif avec le bloc chiffré précédent avant d’être chiffré. Après qu’un bloc de texte en clair a été chiffré, le texte chiffré correspondant est aussi stocké dans un registre de rétroaction. Avant que le bloc du texte en clair suivant soit chiffré, il est combiné par ou exclusif avec le registre de rétroaction pour devenir la nouvelle entrée de l’algorithme de chiffrement. Le texte chiffré résultant est à nouveau stocké dans le registre pour être combiné par ou exclusif avec le bloc de texte en clair suivant, et ainsi de suite jusqu’à la fin du message. Le chiffrement de chaque bloc dépend de tous les blocs précédents. Un bloc de texte chiffré est déchiffré normalement, et aussi sauvé dans le registre de rétroaction. Une fois que le bloc suivant a été déchiffré, il est combiné par ou exclusif avec le contenu du registre de rétroaction. Ensuite, le bloc suivant de texte chiffré est sauvé dans le registre de rétroaction, et ainsi de suite jusqu’à la fin du message. Le mode CBC présente deux inconvénients : d’abord, il impose de déchiffrer la totalité du fichier avant de pouvoir accéder à une partie de ce fichier ; ensuite, une erreur sur un bloc va se répercuter sur tous les blocs suivants. Ainsi, avec ce mode, on sera très attentif au contrôle d’erreurs.
Le triple DES Puisque la faiblesse de DES est la faible longueur de sa clé, il est naturel de chercher à combiner plusieurs chiffrements pour obtenir un système de chiffrement global avec une clé plus longue. La première idée qui vient à l’esprit est de composer deux chiffrements DES avec des clés différentes. Mais on peut alors monter contre ce « double-DES » une attaque à message clair dite « par le milieu » parce qu’elle s’appuie sur le message intermédiaire (inconnu) apparaissant entre les deux chiffrements DES successifs. Cette attaque consiste à construire la liste des messages intermédiaires possibles en chiffrant par DES un clair avec les 256 clés possibles [21]. En déchiffrant par DES le chiffré correspondant avec des clés différentes, on obtient une autre liste de messages intermédiaires possibles et le véritable message intermédiaire est dans l’intersection des deux listes. Le coût en mémoire de cette attaque est très important mais son coût en temps n’est pas significativement plus élevé que l’attaque exhaustive sur DES. Triple-DES consiste à composer deux chiffrements DES de même clé séparées par un déchiffrement DES avec une autre clé. Plus précisément : Cette façon de faire est préférée à trois chiffrements parce qu’elle généralise DES qui se trouve être le cas particulier où AT, =K2. Bien sûr, le déchiffrement est : Une clé triple DES est donc composée de deux clés DES et fait 112 bits ce qui met Triple DES largement hors de portée d’une attaque exhaustive. On peut aussi concevoir une variante à trois clés DES différentes mais elle reste vulnérable à une attaque de coût en 2__T s’appuyant sur l’un des deux messages intermédiaires [20], [22].
L’AES ou Rijndael: Dans l’AES [22], [28], [29], le bloc comporte 128 bits. La clé peut comporter 128, 196 ou 256 bits, ce qui influent le nombre de tours du chiffrement. La version à 128 bits, comporte 10 itérations. L’algorithme de cadencement de clé produit des sous clés de la même taille que la clé maîtresse. La première itération est précédée par l’addition de la sous-clé numéro 0 qui correspond à la clé-maitre et la dernière itération ne comporte pas de MixColums ou fonction de brouillage de colonne. La fonction itérée se compose du quadruplet de fonctions (SubBytes, ShiftRows, MixColums, AddRoundKey), cette dernière fonction étant simplement l’addition bit-à-bit de la sous clé au bloc courant. On y retrouve trois étapes, conformément aux principes fondamentaux de confusion et de diffusion énoncés par Shannon. La première étape, dite de confusion, la fonction SubBytes, consiste à appliquer à chacun des 16 octets de l’entrée une même permutation S. Cette fonction correspond (à une application affine près) à la fonction inverse dans le corps fini à 28 éléments ; elle assure la résistance de l’algorithme aux attaques différentielle et linéaire. La phase de diffusion est composée des fonctions ShiftRows et MixColums qui représentent des opérations simples sur le corps à 28 éléments. Enfin on effectue un Ou exclusif bit-àbit entre le résultat et la sous-clé de l’itération.
Les sous clés de 128 bits, numérotées de 0 à 10, sont dérivées de la clé secrète de la manière suivante : le sous-clé numéro 0 correspond à la clé secrète ; ensuite, la sous-clé numéro i (utilisée à la i-ème itération) est obtenu à partir de la sous-clé numéro __ − 1!. On permute de manière circulaire, par la fonction RotWord, les quatre derniers octets de la clé numéro __ − 1!, puis on leur applique la fonction SubWord composée de 4 permutations S. Après avoir ajouté une constante (dépendant de i) au premier octet (les trois autres octets de la constante 5I_J du schéma sont nuls), on effectue une addition bit-àbit entre les quatre octets ainsi obtenus et les quatre premiers octets de la sous-clé précédente. Les trois autres blocs de quatre octets de la clé numéro _ sont ensuite simplement le résultat d’un ou exclusif entre le bloc correspondant de la sous-clé __ − 1! et le bloc précédent de la sous-clé _. Toutes les opérations réalisées lors de chiffrage sont réversibles à condition d’avoir la clé. Pour déchiffrer, on procède à l’extension de la clé de la même manière qu’un chiffrage. Les additions par ou exclusifs lors de l’opération d’addition de la clé de la tour sont réversibles. L’opération de transformation SubBytes est inversée en utilisant la table-S inversée. Les décalages de l’opération de décalage (ShiftRows) sont inversés, c’est-à-dire vers la droite. La manipulation matricielle de l’opération de brouillage (MixColums) nécessite une inversion de la matrice.
|
Table des matières
REMERCIEMENTS
TABLE DES MATIERES
NOTATIONS
INTRODUCTION ET POSITION DU PROBLEME
CHAPITRE 1 THEORIE DES NOMBRES ET CRYPTOGRAPHIE
1.1 Définitions
1.2 Eléments de théorie des nombres
1.2.1 Entropie
1.2.2 Secret parfait
1.3 Eléments mathématiques pour la cryptographie
1.3.1 Les nombres premiers.
1.3.2 Congruence dans ℤ
1.3.3 Ensemble quotient ℤ|_ℤ = ℤ
1.3.4 Algorithme d’Euclide.
1.3.5 Algorithme d’Euclide étendu.
1.3.6 Exponentiation modulo n.
1.3.7 Théorème de Fermat et d’Euler.
1.3.8 Système de congruence : Théorème des restes chinois.
1.3.9 Décomposition d’un entier en facteurs premiers.
1.3.10 Résidu quadratique
1.3.11 Symbole de Legendre
1.3.12 Logarithme discret
1.4 Principaux systèmes de chiffrement
1.4.1 Historique
1.4.2 Systèmes classiques
1.4.3 Systèmes modernes
1.4.4 Systèmes de chiffrement quantique
1.4.5 Définitions des Services offertes
1.5 Principe général du chiffrement
1.6 Clé de chiffrement
1.6.1 Chiffrement avec une clé
1.6.2 Chiffrement avec deux clés
1.7 Algorithme cryptographique
1.7.1 Algorithme à clé secrète
1.7.2 Algorithme à clé publique
1.7.3 Choix d’algorithme
1.7.4 Cryptosystèmes hybrides
1.8 Générateurs aléatoires et pseudo-aléatoires
1.9 Fonctions de hachage
1.9.1 Fonctions de hachage à sens unique
1.9.2 Intégrité et authenti f ication de l’origine des données
1.9.3 Signature numérique
1.9.4 Scellement
1.10 Protocoles cryptographiques
1.10.1 Protocoles à apport nul de connaissance
1.10.2 La notion de tiers de confiance
1.10.3 Echange de clé
1.11 Conclusion
CHAPITRE 2 LES TRAITEMENTS MULTIMEDIAS
2.1 Définitions
2.2 Caractérisation du domaine
2.2.1 Médias discrets / Médias continus
2.2.2 Pluridisciplinarité
2.3 Les techniques multimédia
2.3.1 Compression
2.3.2 Réseaux multimédias
2.3.3 Qualité de service
2.3.4 Synchronisation multimédia
2.3.5 Systèmes multimédias
2.3.6 Applications et Services
2.4 Techniques de codage
2.4.1 Principes de base de la réduction de débit
2.4.2 Le codage par plages
2.4.3 Les codages entropiques
2.4.4 Le codage statistique
2.4.5 Les codages par dictionnaire
2.4.6 Codage arithmétique
2.4.7 Codage par prédiction linéaire
2.4.8 Les codages de type psychophysiologique
2.4.9 Remarque
2.5 Les codages d’images
2.5.1 Généralités sur la compression d’image
2.5.2 Taux de compression et redondance
2.5.3 Critères psychovisuels et compression
2.5.4 Contours et Texture
2.5.5 Codage sans perte
2.5.6 Codage avec pertes
2.5.7 Domaine spatial
2.5.8 Domaine fréquentiel
2.6 Insertion de données cachées
2.6.1 Introduction
2.6.2 Généralités sur l’IDC
2.6.3 Algorithmes de tatouage
2.6.4 Manipulations et attaques sur les images
2.7 Conclusion
CHAPITRE 3 ALGORITHMES DE TRANSFERT SECURISE D’INFORMATION
3.1 Introduction
3.2 Optimisation des algorithmes cryptographiques
3.2.1 Introduction
3.2.2 Modélisation mathématique des algorithmes cryptographiques
3.3 Modélisation mathématique d’un appel SIP
3.3.1 Introduction
3.3.2 Analyse et modélisation des trafics VoIP
3.3.3 Analyse des appels
3.3.4 Modèle proposé
3.3.5 Expérience
3.3.6 Modèle polynomial proposé
3.3.7 Vérification
3.4 Modélisation mathématique d’un serveur VoIP
3.4.1 Introduction
b.1.2 Etude comparative des standards VoIP
3.4.2 Description du calcul de la corrélation
3.4.3 Interprétation des résultats
3.4.4 Interprétation et discussion
3.5 Conclusion
CHAPITRE 4 TRANSFERT SECURISE D’INFORMATION APPLIQUE AUX IMAGES
ET A LA VOIX SUR IP
4.1 Introduction
4.2 Transfert sécurisé d’information dans le domaine de la Transformée de Fourier
4.2.1 Compression
4.2.2 Chiffrement AES en mode CFB
4.2.3 Tatouage d’images numériques
4.2.4 Approche proposé
4.2.5 Résultats et interprétation
4.3 Système d’Authentification par Sécurisation d’index
4.3.1 Indexation
4.3.2 Systèmes cryptographiques
4.3.3 Approche proposée
4.3.4 Résultats et interprétations
4.4 Contribution à la sécurisation des communications sur la VOIP
4.4.1 VOIP
4.4.2 Approche proposée
4.4.3 Résultats et interprétations
4.5 Conclusion
CONCLUSION
ANNEXES
Annexe 1 Optimisation des algorithmes de calcul cryptographique basés sur les Courbes
Elliptiques
Annexe 2 Mathematical Modeling of SIP Call
Annexe 3 Transfert sécurisé d’images dans le domaine de la TFD
Annexe 4 Authentication System Securing Index of Image using SVD and ECC
Annexe 5 Théorie de la complexité
BIBLIOGRAPHIE
Télécharger le rapport complet