Résumé
Le but de ce projet est d'étudier des implémentations en conception-mixte (Co-Design)
des algorithmes DES, AES, SHA et MD5 utilisés par
IPSec. L'étude doit permettre de trouver la répartition optimale
pour obtenir un taux performance/coût maximum. Le résultat
sera ensuite utilisé pour réaliser un co-processeur cryptographique supporté par
l'API-crypto du noyau Linux 2.6.
Abstract
The aim of this project is to study a co-design implementation of the DES,
AES, SHA et MD5 algorithms used in IPSec. This study
should provide the best co-design splitting to reach the highest computing-power/cost
rate. Then, this design will be used to build a cryptographic-co-processor
supported by the Linux kernel 2.6 crypto-API.
Contexte
Le projet STROC s'inscrit dans le cadre d'un ensemble de projets visant la mise
au point d'une carte réseau dotée des mécanismes nécessaires pour supporter le
protocole de réseau sécurisé IPSec (Internet Protocol Security).
Cette carte est prévue pour être intégrée à de gros systèmes serveurs afin de
soulager le travail du processeur principal. Une seconde déclinaison à prix réduit
(low-cost) sera réalisée pour l'intégration à des postes clients
réclamant moins de ressources.
Les étapes suivantes seront abordées:
- la création Co-Design des fonctions cryptographiques
employées par IPSec (projet STROC).
- l'intégration de ces fonctions au noyau Linux pour leur utilisation par l'implémentation
opensource OpenSwan.
- l'intégration au serveur cible et l'adaptation des bibliothèques de communication.
- la création d'une déclinaison du produit pour l'intégration à un poste client.
Projet STROC
Le projet STROC a pour but d'implémenter les algorithmes utilisés couramment avec IPSec
en utilisant
une approche orientée vers la conception mixte (Co-Design). Cette méthodologie
nous permettra de déterminer le taux performances/coût de la réalisation le plus
adapté aux besoins du consommateur. Le mariage entre des réalisations logicielles
et matérielles nous permettra d'optimiser les temps de traitement faisant défaut
aux solutions logicielles tout en réduisant le coût d'une solution entièrement
matérielle. Cette étude devrait ensuite déboucher sur une méthodologie de travail
Co-Design destinée au transfert technologique de la
HES-SO.
Le projet est découpé en 5 étapes:
- étudier le protocole IPSec.
- déterminer les algorithmes cryptographiques les plus couramment utilisés par IPSec.
- étudier ces algorithmes et les décomposer en fonctions simples (logiques ou mathématiques).
- réaliser l'étude de répartition logicielle-matérielle ( Hardware-Software Co-Design )
de ces algorithmes.
- mesurer pour chaque algorithme les performances en fonction de la répartition
matérielle-logicielle.
Protocole IPSec
Le protocole IPSec est un ensemble de règles permettant de définir les
éléments d'une communication sécurisée à travers Internet. Ces règles permettent
à deux hôtes voulant établir une liaison, de définir:
- le protocole de communication à utiliser.
- les algorithmes de cryptographie à employer.
- les clés à utiliser avec les algorithmes.
IPSec fournit deux services principaux: maintenir le confidentialité des
données et protéger l'authenticité. A cet effet, il fait appel respectivement,
à des algorithmes cryptographiques de chiffrement, et de signature. Les algorithmes
de chiffrements codent le texte en clair en un
texte chiffré avec une clé cryptographique. Les algorithmes de
signature produisent une empreinte à partir du texte en clair de manière à ce qu'il
soit impossible que deux textes en clair différents puissent produire deux
empreintes identiques. Généralement ces deux types d'algorithme sont utilisés
conjointement pour apporter la confidentialité et l'authentification des données.
Algorithmes cryptographiques
IPSec et les protocoles sécurisés qu'il définit, peuvent fonctionner
avec différents algorithmes cryptographiques. Le standard d'IPSec propose
un choix d'algorithme afin que deux correspondants utilisant IPSec puissent
trouver un algorithme commun. Après étude, nous
nous rendons compte que quelques-uns de ces algorithmes sont devenus des
standards. Nous avons donc choisi les algorithmes de chiffrement suivant pour notre projet:
- MD5
- SHA
- DES utilisé en boucle
- AES utilisé en boucle.
Décomposition des algorithmes et conception mixte
Afin de mener une étude de conception-mixte (Co-Design) mélangeant des
conceptions électroniques "matérielles" et des conceptions "logicielles" utilisant
une architecture à processeur, nous décomposons les algorithmes en fonctions de
plus bas niveau. Chacune de ces fonctions fera l'objet d'une étude de performance
pour les deux types de réalisation. Les résultats de ces études permettront de
déterminer les règles de conception mixte en fonction du coût et des performances
souhaités.
Réalisation
Afin d'étayer nos résultats, nous effectuerons une implémentation de chaque
algorithme avec une série de mesures.
Perspectives
Ce projet doit premièrement servir à poser les concepts d'une méthodologie
de conception-mixte. Le sujet se prête bien à une telle conception, car les
traitements cryptographiques sont fortement séquentiels, tout en gardant un
traitement logique et donc combinatoire de l'information. Les fonctions de base
sont combinatoires, mais sont appelées à plusieurs reprises de manière cyclique
et traitent généralement des données plus larges que celle usuellement manipulées
par les processeurs.
Cette méthodologie sera donc construite sur la base de la réalisation de ce projet
et permettra de poser les fondements des futurs développements des systèmes
embarqués. Ce type de système sera, en effet, de plus en plus, amené à implémenter
des systèmes personnalisés pour augmenter les performances de traitement. L'
avènement des circuits programmables permet à chacun de créer son propre matériel
et permettra de diminuer le coût à l'achat de circuits spécialisés comme les DSP
(Digital Signal Processor) dont les capacités restent la plupart du temps
sous exploitées.
Pour notre système cryptographique, nous voulons réduire les
coûts apportés par une implémentation uniquement matérielle tout en augmentant ses
performances. Ce périphérique cryptographique
devrait permettre d'accroître les performances d'un serveur utilisant IPSec
sans avoir besoin d'investir massivement dans un système à processeur plus complexe.
L'emploi d'un périphérique est, de plus, moins complexe que le changement d'un serveur.
L'architecture découlant de ces études devrait permettre l'implémentation de plusieurs
types de solution en fonction des besoins et des coûts.
Lexique:
-
Cryptographie : La cryptographie est une discipline incluant
les principes, les moyens et les méthodes de transformation des données,
permettant de masquer leur contenu, d'empêcher leur modification
ou leur utilisation illégale.
- Protocole de communication
: Un protocole est un ensemble de règles établissant la séquence
et le format des échanges lors d'une communication entre deux parties.
- Algorithme
: Un algorithme est le synonyme de "méthode" ou "marche à suivre" en
langage informatique. Il décrit une suite d'opérations à effectuer
pour arriver à un résultat.
- Texte
. Le texte est un terme générique pour désigner un flux de bits
informatique (0 ou 1). Ce flux de bits peut représenter un ensemble de
caractères (un texte au sens conventionnel du terme) ou tout autre
fichier multimédia, programme informatique ou autre information.
- Texte en clair : Le texte en clair est un texte intelligible directement lisible par
un humain pour un texte conventionnel ou par une machine pour les
autres types de fichiers (multimédia, programme ou autre).
- Texte chiffré
: Le texte chiffré est le résultat du traitement d'un algorithme
cryptographique sur un texte en clair. Ce texte est inintelligible
est permet de masquer le texte en clair. Cependant l'algorithme est
conçu de telle manière à ce que l'information contenue dans le texte
en clair subsiste mais soit masquée.
- Clé cryptographique
: Une clé cryptographique est un ensemble de bits comme une suite
de caractères. Cette clé est donnée à l'algorithme cryptographique.
L'algorithme utilise cette clé pour la combiner au texte en clair
pour fournir le texte chiffré. A la réception du message, il faut
alors utiliser la même clé pour pouvoir déchiffrer le message. Toute
la sécurité du système repose sur le secret de la clé. D'autres
systèmes utilisent deux clés différentes: une pour le chiffrement et
l'autre pour le déchiffrement. La première est rendue publique par
le récepteur du message tandis que l'autre est tenue secrète et
gardée par le récepteur. Il n'y a donc plus de secret à transmettre,
c'est le principe de la cryptographie à clé publique.