FR | EN

STROC


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:

 

  • NULL
  • DES
  • AES
et pour les signatures:

 

  • 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.



REDS
Reconfigurable & embedded Digital Systems Institut REDS
Route de Cheseaux 1
CH-1401 Yverdon-les-Bains
Work+41 24 55 76 330

© 2009 REDS / HEIG-VD