ECCTK (Elliptic Curve Cryptographic ToolKit)

1.1.0

curve.png

Introduction

ECCTK est un toolkit de cryptographie implémenté en en C/C++, il peut donc facilement être incorporé dans tout programme C/C++.

ECCTK peut-être complété du produit ECCTK-JNI qui permet d'interfacer le produit ECCTK avec des applications JAVA via l'interface JNI (Java Native Interface). Merci de me contacter pour connaître les possibilités et conditions du produit ECCTK-JNI.

L'implémentation des différents algorithmes est basée sur différentes normes et standards. Les algorithmes basés sur les courbes elliptiques sont notamment basés sur le dernier Draft du "Standard Specifications for Public Key Cryptography" (IEEE P1363), et les différents ajouts fait à ce dernier depuis sa standardisation en 2000, à savoir les drafts "Standard Specifications for Public Key Cryptography: Additional Techniques" (IEEE P1363a).

Remarques :

Algorithmes disponibles

Voici la liste des algorithmes supportés par le produit ECCTK.

Algorithmes de HASH, HMAC et MAC :

Algorithmes de HASH :

Taille des empreintes :

Algorithmes de HMAC :

Taille des empreintes :

Remarques :

Algorithmes de MAC :

Taille des empreintes :

Remarques :

Algorithmes symétriques :

Les algorithmes symétriques sont essentiellement des algorithmes de chiffrement. Ils sont utilisés pour la protection de données volumineuses dans la mesure où ils apportent le meilleur rapport sécurité/rapidité. Nous allons distinguer dans cette section les algorithmes utilisant des tailles de blocs de 64 bits et ceux utilisant des tailles de blocs de 128 bits. Ces derniers sont le plus souvent le résultat de soumission au "programme" AES Advanced Encryption Standard. Nous allons également indiqué les différents modes opératoires disponibles pour tous ces algorithmes.

Algorithmes utilisant des tailles de blocs de 64 bits :

Algorithmes utilisant des tailles de blocs de 128 bits :

Taille des clefs :

Sont indiqué ici les tailles de clefs supportés par le produit, ce qui ne correspond pas nécessairement avec les tailles de clefs pouvant être mise en oeuvre par les algorithmes.

Remarques :

Modes de chiffrement :

Les différents modes de chiffrement supportés par le produit sont les suivants :

Algorithmes asymétriques :

Nous allons distinguer les algorithmes en fonction de leur usage. Il existe plusieurs grandes classes d'utilisation des algorithmes asymétriques : chiffrement, signature, échange de clef

Algorithmes de chiffrement :

ECCTK comprend deux algorithmes de chiffrement. Dans le cas des algorithmes asymétriques, le chiffrement est essentiellement utilisé (dans les applications) pour faire transiter des clefs de sessions (utilisées avec les algorithmes symétriques).

Algorithmes de signature :

ECCTK comprend deux algorithmes de signature. Ces algorithmes permettent à toute personne possédant la clef publique d'un tiers, de vérifier que ce dernier a signé ou non une donnée.

Algorithmes d'échanges de clef :

ECCTK comprend deux algorithmes d'échange de clef. Ces algorithmes offre la possibilité à deux entités de dériver une même clef de session. Pour réaliser cette dérivation, les clefs privées & publiques des deux entités sont mises en oeuvre.

Autres algorithmes :

Algorithmes de génération de pseudo-aléa :

ECCTK comprend trois générateur de valeur peudo-aléatoire. Le premier d'entre eux (MT-PRNG) ne doit pas être utilisé pour la génération de "secret" cryptographique (clef de session par exemple). Les deux autres sont basés sur des standards cryptographiques et peuvent être utilisés pour la génération de clefs.

Remarques :

Algorithmes de partage de secret :

ECCTK propose un algorithme de partage de secret. Le principe de cet algorithme est de permettre de "diviser" un secret en plusieurs éléments (nombres variables). Pour reconstruire le secret original, un nombre donné (mais variable) d'éléments est nécessaire. Ainsi, il est possible de partager un secret entre X personnes et d'obliger la présence de Y (Y <= X) personnes pour reconstruire le secret. L'algorithme disponible est celui de Shamir.

Système d'Exploitation & Composition du Produit

Le produit (ECCTK) est disponible pour Windows, Linux et FreeBSD. Il est toutefois possible d'obtenir, à la demande et sous certaines conditions, des versions pour d'autres système d'exploitation : Sun Solaris, MAC OS X, ...

Merci de me contacter pour connaître les possibilités et conditions pour une version destinée à un OS particulier.

En fonction du système d'exploitation, le produit ce compose de divers éléments :

Remarques :

Installation

Remarques :

Le package du produit est structuré en répertoire de la manière suivante :

Installation :

ECCTK Licence

Copyright © 2002-2005 par Ludovic FLAMENT (ludovic.flament@free.fr).

CONDITIONS DE CONCESSION PAR M. Ludovic FLAMENT DU DROIT D'UTILISATION DU PRODUIT ECCTK(Elliptic Curve Cryptographic ToolKit)

VEUILLEZ LIRE ATTENTIVEMENT LE PRESENT CONTRAT DE LICENCE ("CONTRAT"). EN CONTINUANT L'UTILISATION DU PRODUIT, VOUS VOUS ENGAGEZ A RESPECTER SANS RESERVE LES TERMES ET CONDITIONS DU PRESENT CONTRAT.SI VOUS ETES EN DESACCORD AVEC LES CLAUSES ET CONDITIONS, VEUILLEZ NE PAS POURSUIVRE L'UTILISATION ET DETRUIRE LE PRODUIT AINSI QUE TOUTES LES COPIES EN VOTRE POSSESSION.

OCTROI DE LICENCE

M. Ludovic FLAMENT concède le droit d'utiliser en France et au sein des pays de l'union européenne, de manière non exclusive et non transférable ce PRODUIT ("PRODUIT"), et sa DOCUMENTATION ("DOCUMENTATION") sur un nombre d'ordinateurs correspondant au nombre de licences d'utilisation acquises. Le Client s'engage à l'y conserver en mémoire et à l'exploiter conformément à l'usage prévu dans la DOCUMENTATION associée. Le Client pourra reproduire le PRODUIT en UN exemplaire, appelé "copie de sauvegarde" ayant pour but de régénérer le PRODUIT original en cas de détérioration accidentelle. En aucun cas, cette reproduction ne pourra être utilisée à d'autres fins. Attention votre responsabilité pourrait être engagée en cas de reproduction multiple ou d'utilisation du PRODUIT par un tiers. Le Client s'engage à ne jamais, désassembler, décompiler, traduire, ou modifier par quelque procédé que ce soit, tout ou partie du PRODUIT.

REDISTRIBUTION

M. Ludovic FLAMENT concède au Client le droit de redistribuer les librairies dynamiques contenues dans le PRODUIT et uniquement ces dernières avec les produits conçus et réalisés par le Client sur la base du PRODUIT. Le client ne pourra redistribuer que les librairies dynamiques pour lesquelles il aura une licence valide. Cette dernière pouvant être associée à un produit précis développé par le Client, ce dernier s'engage à ne pas redistribuer les librairies dynamiques avec un autre produit qu'il aurait développé. Le Client s'engage à ne pas vendre ou concéder tout ou partie du PRODUIT ou de sa DOCUMENTATION sans autorisation écrite préalable de M. Ludovic FLAMENT.

DROIT D'AUTEUR

Le PRODUIT, exemplaire fourni ou dupliqué, est et demeure exclusivement la propriété de M. Ludovic FLAMENT. Tous les droits de propriété intellectuelle, copyright, marque déposée et secret, applicables au PRODUIT sont et restent acquis à M. Ludovic FLAMENT conformément à la législation sur les droits d'auteur.

Le Client ne peut vendre, transférer, publier, céder, communiquer ou mettre à disposition d'une façon quelconque un PRODUIT ou ses copies à des tiers, sans autorisation écrite de M. Ludovic FLAMENT. Cette clause s'applique également en cas de cession par le client du matériel sur lequel le PRODUIT est installé, quelles qu'en soient les conditions, cette cession entraîne de facto la résiliation de la licence. Le Client s'oblige à assurer la protection de chaque PRODUIT et des copies d'une façon adéquate au maintien des droits de l'auteur. Il prendra toutes mesures appropriées pour remplir cette obligation et la faire remplir par les personnes pouvant avoir accès au PRODUIT ou à ses copies.

LIMITES DE GARANTIE

M. Ludovic FLAMENT garantit, sous réserve d'une exploitation dans les conditions normales d'utilisation, que le PRODUIT fonctionne conformément aux indications spécifiées dans la DOCUMENTATION accompagnant le PRODUIT. La garantie du PRODUIT fourni par M. Ludovic FLAMENT prend effet au jour de l'acquisition du PRODUIT et pendant une période de 90 (quatre vingt dix) jours à compter de cette date. M. Ludovic FLAMENT ne garantit pas que le PRODUIT est exempt de vice de forme. M. Ludovic FLAMENT n'accorde aucune garantie, expresse ou tacite, en cas de dommage relatif au PRODUIT et notamment inadéquation à la commercialisation ou à un usage particulier ou atteinte aux droits des tiers. En aucune circonstance, M. Ludovic FLAMENT, ses fournisseurs ou revendeurs, ne pourront être tenus pour responsable de quelque dommage, direct ou indirect, causé à vous ou à un tiers, notamment, à titre purement indicatif et non limitatif, un mal fonctionnement ou une défaillance informatique, des manques à gagner, dépenses, pertes de données, pertes de logiciels, détériorations ou pertes de matériel supportés par vous-même ou par un tiers, y compris les frais de récupération, reproduction, ou de réparation de telles pertes ou détériorations.

Si le PRODUIT ne fonctionne pas conformément aux indications spécifiées dans la DOCUMENTATION et sous réserve d'une exploitation dans les conditions normales d'utilisation, la seule obligation de M. Ludovic FLAMENT est son assistance pour vous aider à résoudre le problème. Tout PRODUIT de remplacement sera garanti pour le reste de la période de garantie initiale.

REGLEMENTATION CRYPTOGRAPHIQUE

Le PRODUIT met en œuvre des moyens de cryptologie basés sur des algorithmes standards. LE PRODUIT est conforme à la réglementation française et européenne en matière de cryptologie.

Pour tenir compte de la législation française en matière d'exportation de moyens de cryptographie, ainsi que des réglementations en vigueur hors des frontières françaises, Le Client s'engage à se tenir informé et à respecter toute réglementation applicable à l'importation, à l'exportation et à l'utilisation de moyens cryptographiques.


Généré pour ECCTK (Elliptic Curve Cryptographic ToolKit) avec  doxygen