Définition de la cryptographie
Dans le sens éthimologique, le mot cryptographie vient du grec « kruptos » qui signifie caché et « graphein » qui signifie écriture. La cryptographie ou science du secret est un art très ancien, elle est faite pour remplacer un secret encombrant par un secret miniature. Et dans le sens largue, c’est un art de rendre inintelligible, de crypter, de coder, un message à ceux qui ne sont pas habilités à en prendre connaissance en dissimulant une information à l’aide d’un code secret afin de protéger le contenu de certains messages des inévitables curieux aussi dit « espion ». Aussi c’est un ensemble de techniques qui fournit la sécurité de l’information, permettant de stocker des informations sensibles et confidentielles ou de les transmettre à travers des réseaux non sûrs plutôt non sécurisés (tels que l’Internet) de telle sorte qu’elles ne peuvent être lues par personne à l’exception du destinataire convenu. [1] Par contre, l’art de casser les données chiffrées c’est la cryptanalyse c’est à dire un décryptage illégitime. En une seule phrase, la cryptanalyse est l’art pour une personne non habilitée, de décrypter, de décoder, de déchiffrer un message. Et c’est la cryptologie qui embrasse à la fois la cryptographie et la cryptanalyse, c’est la combinaison des deux. En outre, la cryptographie répond à quatre besoins :
Permission de la confidentialité en dissimulant les données sensibles.
Vérification de l’intégrité.
Gestion de l’Authentification et contrôle des accès aux données
Assurance de la non-répudiation se décomposant en trois :
– non-répudiation d’origine l’émetteur ne peut nier avoir écrit le message
– non-répudiation de réception le receveur ne peut nier avoir reçu le message.
– non-répudiation de transmission l’émetteur du message ne peut nier avoir envoyé le message.
Les systèmes à clé public
La cryptographie de clé publique est un procédé asymétrique utilisant une paire de clés pour le cryptage : une clé publique qui crypte des données et une clé privée ou secrète correspondante pour le décryptage. On peut ainsi publier votre clé publique tout en conservant votre clé privée secrète. Tout utilisateur possédant une copie de la clé publique peut ensuite crypter des informations que seul son concepteur pourra les déchiffrer. Même les personnes que vous ne connaissez pas personnellement peuvent utiliser votre clé publique. En d’autre terme, le chiffrement à clé publique, aussi appelé le chiffrement asymétrique, implique une paire de clés : une clé publique et une clé privée. La clé publique est publiée dans des annuaires et ainsi connue de tous alors que la clé privée n’est connue que de la personne à qui la paire appartient. Mais pour envoyer un texte chiffré à une personne, il faut utiliser la clé publique de cette personne et chiffrer le texte. Une fois reçu, le destinataire utilise sa clé privée correspondante pour retrouver le message clair. Les systèmes à clé publique les plus utilisés sont RSA (1977) et PGP (Pretty Good Privacy1991) mais il y a aussi d’autres algorithmes à clé publique :
Diffie-Hellman a été inventé en 1976 par Diffie et Hellman, ce protocole permet à deux tiers de générer un secret partagé sans avoir aucune information préalable l’un sur l’autre. Il est basé sur la cryptologie à clé publique, car il fait intervenir des valeurs publiques et des valeurs privées.
En 1978, l’algorithme à clé publique de Ron Rivest, A Shamir, Léonard Adleman apparaît dit « RSA ». C’est un système à clé publique car l’algorithme n’est pas caché, ni la clé de chiffrement. Son fonctionnement est basé sur la difficulté de factoriser de grands entiers.
Le PGP (Pretty Good Privacy) est un cryptosystème inventé par PhilZimmermann en 1991. Il combine à la fois les meilleures fonctionnalités de la cryptographie à clé privée et de la cryptographie à clé publique. PGP est donc un système hybride.
l’algorithme DSA (Digital Signature Algorithm) se base sur le DSS, qui utilise SHA comme fonction de hachage à sens unique et El Gamal pour la génération et la vérification de la signature. Le DSS est proposé par le NIST en 1991, puis finalement adopté en 1994, DSS (Digital Signature Standard) est la norme de signature numérique du gouvernement Américain.
L’El Gamal est un algorithme à clé publique présent à la base de la norme U.S. de signature électronique. Il fut inventé par TAherELGamal en 1984. Il est basé sur ladifficulté de calculer des logarithmes discrets.
Le chiffrement par blocs (block cipher)
Comme étant une des évolutions de la cryptographie, les cryptosystèmes par blocs sont aujourd’hui utilisés pour une performance de la cryptographie. Dans ce mode de cryptage, le texte clair est fractionné et même traité en blocs de même longueur à l’aide d’une clé unique et c’est la cryptographie symétrique qui utilise la même clé pour les processus de chiffrement et de déchiffrement, une clé étant souvent appelée « secrète » (en opposition à « privée »). L’idée générale du chiffrement par blocs est la suivante :
1. Remplacer les caractères par un code binaire
2. Découper cette chaîne en blocs de longueur donnée
3. Chiffrer un bloc en faisons l’addition bit par bit à une clé.
4. Déplacer certains bits du bloc.
5. Recommencer éventuellement un certain nombre de fois l’opération
6. Passer au bloc suivant et retourner au point 3 jusqu’à ce que tout le message soit chiffré.
Algorithme à clé publique
Les algorithmes à clé publique sont conçus de telle manière que la clé de chiffrement soit différente de la clé de déchiffrement. De plus, la clé de déchiffrement ne peut pas être calculée à partir de la clé de chiffrement. De tels algorithmes sont appelés algorithmes « à clé publique » parce que la clé de chiffrement peut être rendue publique : n’importe qui peut l’utiliser pour chiffrer un message mais seul celui qui possède la clé de déchiffrement peut déchiffrer le message chiffré résultant. Dans de tels systèmes, la clé de chiffrement est appelée clé publique et la clé de déchiffrement est appelée clé privée. La clé privée est aussi appelée clé secrète. Parfois, les messages seront chiffrés avec la clé privée et déchiffrés avec la clé publique ; une telle technique est utilisée pour les signatures numériques.
|
Table des matières
INTRODUCTION
CHAPITRE 1 GENERALITES SUR LA CRYPTOGRAPHIE
1.1 Introduction
1.2 Les principaux systèmes de chiffrement
1.2.1 Définition de la cryptographie
1.2.2 Le cryptosystème
1.2.3 Historique
1.2.4 Systèmes classiques
1.2.5 Systèmes modernes
1.2.6 Systèmes quantiques
1.3 Le chiffrement et le déchiffrement
1.3.1 Clé de chiffrement
1.3.2 Les méthodes de chiffrement
1.4 Les algorithmes cryptographiques
1.4.1 Algorithme à clé secrète
1.4.2 Algorithme à clé publique
1.4.3 Choix d’algorithme
1.4.4 Les systèmes de chiffrement hybride
1.5 Le cryptanalyse
1.5.1 Le principe de kerckhoff
1.5.2 Les principaux types d’attaques
1.5.3 Attaques sur les algorithmes symétriques
1.5.4 Attaques sur les algorithmes asymétriques
1.6 Fonctions de hachage
1.6.1 Fonctions de hachage à sens unique
1.6.2 Intégrité et authentification de l’origine des données
1.6.3 Signature numérique
1.6.4 Scellement
1.7 Conclusion
CHAPITRE 2 LES ALGORITHMES DE CHIFFREMENT SYMETRIQUE
2.1 Introduction
2.2 Le chiffrement par bloc
2.2.1 Les réseaux S-P de Shannon
2.2.2 Le réseau de feistel
2.2.3 Les modes opératoires
2.3 DES (Data Encryption Standard)
2.3. 1 Historique
2.3.2 Principe et fonctionnement
2.3.4 Le déchiffrement
2.3.5 Failles et évolutions du DES
2.4 AES (Advanced Encryption Standard)
2.4.1 Historique
2.4.2 Principe et fonctionnement
2.4.3 Le déchiffrement
2.4.4 Fiabilité et performance
2.5 Conclusion
CHAPITRE 3 DEVELOPPEMENT D’APPLICATION MOBILE SOUS ANDROID
3.1 Introduction
3.2 La naissance d’Android
3.3 Les atouts du succès du système Android
3.4 Les smarthphones
3.5 Les différentes versions d’Android
3.6 Architecture du système Android
3.7 Les caractéristiques d’Android
3.7.1 Les applications
3.7.2 Le framework et le SDK d’Android
3.7.3 Base de données SQLite
3.7.4 Données partagées et communication inter applications
3.7.5 Mémoire optimisée et gestion des processus
3.7.6 Le moteur d’exécution d’Android – La machine virtuelle Dalvik
3.8 Les composantes d’une application Android
3.8.1 Les activités
3.8.2 Service
3.8.3 Broadcast and Intent Receivers
3.8.4 Content providers
3.8.5 Intents
3.9 Cycle de vie d’une application Android
3.10 L’interface graphique sous Android
3.10.1 L’interface de programmation pour les interfaces utilisateurs
3.10.2 L’interface de programmation pour les graphismes et les animations
3.10.3 L’interface de programmation pour le stockage de données
3.10.4 L’interface de programmation pour les connectivités
3.10.5 L’interface de programmation pour le multimédia
3.10.6 L’interface de programmation pour la localisation et les capteurs
3.11 Conclusion
CHAPITRE 4 L’APPLICATION DATA CRYPTE
4.1 Introduction
4.2 Choix de l’algorithme
4.3 Introduction sur l’installation de l’environnement de développement
4.4 Installation du JDK
4.5 Lancement d’Eclipse
4.6 L’installation de l’ADT dans Eclipse
4.7 Le SDK d’Android
4.8 L’Emulateur
4.9 L’application de cryptage Data-Crypte
4.9.1 Description de l’application Data-Crypte
4.9.2 La fonctionnement du logiciel
4.9.3 Décryptage de données
4.9.4 Les autres options
4.10 Conclusion
CONCLUSION GENERALE
BIBLIOGRAPHIE
GLOSSAIRE
Télécharger le rapport complet