LA
CRYPTOGRAPHIE
Voici
une brève introduction à la cryptographie.
La
cryptographie est l’art de transmettre des informations
de façon sécurisée. On entend par la qu’il
faut garantir lors de cet échange d’informations
les 3 principes suivants :
- Confidentialité : seules les personnes
ou systèmes habilités doivent pouvoir comprendre
et interpréter ces informations.
- Intégrité : il faut garantir
que les informations n’ont pas été altérées
ou modifiées pendant l’échange.
- Non répudiation : il faut garantir que
si les règles et mécanismes de sécurité
ont bien été appliqués l’échange
ne peut être contesté par l’une ou l’autre
des parties (particulièrement important lors de transactions
financières par exemple).
La
cryptographie est un art ancien qui remonte à l’antiquité.
La cryptographie a pris une importance croissante avec l’entrée
dans l’ère de l’informatique et des échanges
numériques. Ce sont d’abord les besoins militaires
qui ont permis de développer les principes et les applications
de la cryptographie. Puis les besoins pour les applications civiles
et en particulier les échanges financiers ont considérablement
étendu la sphère d’utilisation de la cryptographie.
On trouve aujourd’hui des mécanismes cryptographiques
dans les ordinateurs, les téléphones mobiles, les
cartes à puces, les distributeurs de billets (DAB), etc…
La
confidentialité des échanges est assurée
par des mécanismes de chiffrement et déchiffrement.
Le principe général du chiffrement / déchiffrement
est d’utiliser une information secrète partagée
uniquement par les 2 entités (personne ou système)
souhaitant communiquer de façon confidentielle. Cet élément
secret, combiné avec l’information à transmettre
dans un algorithme particulier (série d’opérations
mathématiques et logiques) va générer une
nouvelle information dite chiffrée ou cryptée c.a.d
dont le sens est caché. Seule l’entité possédant
le secret pourra déchiffrer l’information c.a.d la
retransformer en une information compréhensible.
On
distingue 2 grandes familles d’algorithmes de chiffrement/déchiffrement.
Ceux dits à clé symétrique et ceux à
clé asymétrique.
L’algorithme à clé symétrique est basé
sur l’utilisation d’une même clé pour
les opérations de chiffrement et déchiffrement.
Cela impose donc de partager exactement le même secret pour
les deux entités souhaitant communiquer. Cela impose donc
en théorie d’avoir une clé secrète
par couple d’entités souhaitant communiquer, ce qui
peut poser des problèmes de gestion de clé (diffusion,
renouvellement) dans le cas ou il y a de multiples entités
devant être identifiées et devant engager leur responsabilité
de façon individuelle.
Pour pallier à ces problèmes de gestion de clés
(génération, distribution, répudiation, renouvellement)
une autre famille d’algorithmes a été conçue,
celle dite à clé asymétrique. Dans ce cas
on n’utilise plus la même clé pour chiffrer
et déchiffrer mais 2 clés différentes. L’une
est appelée clé privée et
l’autre clé publique.
La
clé publique comme son nom l’indique est
destinée à être diffusée largement.
Elle est utilisée dans les 2 cas suivants :
- Vérification par le destinataire de la signature des
données reçues (permet de garantir l’intégrité
des données et la non répudiation). Le destinataire
utilise la clé publique de l’envoyeur pour vérifier
que les données n’ont pas été altérées
et que l’envoyeur est bien celui qu’il dit être.
- Chiffrement des données par l’envoyeur en utilisant
la clé publique du destinataire.
La
clé privée est utilisée dans les
cas suivants :
- signature par l’envoyeur des données. Cette signature
sera ensuite contrôlée par le destinataire au moyen
de la clé publique de l’envoyeur signée elle-même
par une autorité de certification (tiers de confiance).
- Déchiffrement des données. Le destinataire déchiffre
les données avec sa clé privée.
L’utilisation
des clés privée et publique au travers des algorithmes
asymétriques permet de garantir que :
- seul le destinataire peut déchiffrer les données
- seul l’envoyeur peut signer les données
-tout
le monde peut envoyer une donnée chiffrée à
un destinataire
- tout le monde peut vérifier la signature d’un envoyeur.
Les
algorithmes à clé symétrique les plus connus
sont : DES, 3DES, AES (remplaçant du DES).
Les algorithmes à clé asymétrique les plus
connus sont : RSA du nom de leurs inventeurs (Rivest,
Shamir, Adleman).
L’intégrité
des échanges et la non répudiation sont
assurées en ajoutant au message chiffré un code
unique généré à partir des données
à transmettre et de la clé (élément
secret) de l’envoyeur. Pour cela on utilise des algorithmes
dits de « hashage » utilisés dans les fonctions
de MAC « Message Authentication Code » et de signature.
Le principe repose sur l’unicité entre les données
d’entrée et le message de longueur fixe obtenu en
sortie. C.a.d qu’il ne peut pas y avoir d’autres données
qui au travers de ce même algorithme donnent le même
résultat. Cela permet de garantir l’intégrité
des données échangées et la non répudiation.
Les algorithmes de ce type les plus connus sont le SHA, MD5, RC4
etc. Ils sont dits non réversibles car il n’est pas
possible de remonter à l’information en clair à
partir du MAC.
Il
est tout à fait possible d’inventer toute sorte d’algorithmes,
qu’ils soient basés sur des mécanismes à
clé symétrique ou asymétrique. Néanmoins
il est vivement recommandé d’utiliser des
algorithmes connus de la communauté cryptographique
car ils ont généralement été étudiés
et éprouvés par de nombreux spécialistes.
C’est le cas des exemples donnés ci-dessus.
Il
faut aussi noter que la « force » d’un chiffrement
(capacité à résister aux attaques) réside
aussi dans le type et la longueur des clés utilisées.
Enfin
il faut aussi retenir que les implémentations d'algorithmes
symétriques sont généralement plus rapides
que celles à clés asymétriques et que les
performances sont aussi fonction des longueurs de clés.
Plus les clés sont longues plus les calculs sont lents.
Pour
développer et approfondir ces notions vous pouvez suivre
le
module de formation sur la cryptographie appliquée aux
paiements électroniques ou contactez
SOFTBEES pour une étude sur mesure
de vos besoins.