Home | Produits | Services | Références | Contact | FAQ | English
 






FAQs
FAQ Lastwall
FAQ SafeAPI


Contact
SafeLogic
27-29, rue Raffet
75016 Paris - FRANCE
Tel +33 (0)1 45 72 25 15
Fax +33 (0)1 45 72 14 06

FAQ SafeAPI


Quel est l'objectif de ce FAQ ?

Ce document a pour but de "valider" ou "prouver" la qualité de l'implémentation des algorithmes de cryptographie dans SafeAPI. La lecture de ce document suppose la connaissance des notions de base en cryptographie.

Comment tester l'implémentation de MD5 ?

Le RFC 1321 définit une suite de tests pour MD5. Cf. http://www.faqs.org/rfcs/rfc1321.html.
Voici la suite complète. Le résultat correspond à la conversion en chaîne hexadécimale du résultat en bytes :

MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
= d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("123456789012345678901234567890123456789012345678901234567890123456
78901234567890") = 57edf4a22be3c955ac49da2e2107b67a

Comment tester l'implémentation de SHA-1 ?

Le FIPS 180-1 définit deux tests pour SHA-1. Cf. http://www.itl.nist.gov/fipspubs/fip180-1.htm.

SHA-1( "abc") = "A9993E364706816ABA3E25717850C26C9CD0D89D
SHA-1( "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")
= "84983E441C3BD26EBAAE4AA1F95129E5E54670F1"

Comment tester l'implémentation de Blowfish ?

Un jeu de test, recommandé par l'auteur de Blowfish, est défini à :
ftp://ftp.psy.uq.oz.au/pub/Crypto/Blowfish/test.data.

Blowfish est par ailleurs présenté en détail à :
http://www.counterpane.com/blowfish.html.

Blowfish est implémenté dans SafeAPI en mode CFB (Cipher Feedback Block) sans padding. On peut faire le test CFB :

Clé en hexadécimal :
0123456789ABCDEFF0E1D2C3B4A59687

IV (Initialisation Vector) en hexa :
FEDCBA9876543210

Chaîne hexa en clair :
37363534333231204E6F77206973207468
652074696D6520666F722000

Chaîne hexa chiffrée :
E73214A2822139CAF26ECF6D2EB9E76E3DA
3DE04D1517200519D57A6C3

Comment tester l'implémentation de CAST-128 ?

Le RFC 2144 définit un jeu de test pour CAST, mais uniquement avec le mode ECB. Cf. http://www.faqs.org/rfcs/rfc2144.html. CAST-128 est implémenté en mode CFB dans SafeAPI, il n'y a donc pas de jeu de test "normalisé".

Comment tester l'implémentation d'IDEA ?

Les tests IDEA son définis par un fichier téléchargeable d'ASCOM à :
http://www.it-sec.com/idea.html.
IDEA est implémenté en CFB dans SafeAPI. Voici deux tests extrait du jeu d'essai en mode CFB :

Clé en hexadécimal :
729A27ED8F5C3E8BAF16560D14C90B43
IV en hexa : C121A1B050D8286C

Test 1
Chaîne hexa en clair : D53FABBF94FF8B5F
Chaîne hexa chiffrée : E42323CAF932B933

Test 2
Chaîne hexa en clair : 94FF8B5F
Chaîne hexa chiffrée : A5E3032A

Comment sont générés les nombres pseudo-aléatoires avec SafeAPI ?

Les nombres pseudo-aléatoires sont générés en utilisant l'algorithme ANSI X9.17.
X9.17 est un générateur de nombre pseudo-aléatoire "fort" qui prend en input un couple (valeur random, clé) et le crypte avec une clé fournie par l'utilisateur et algorithme symétrique pour produire un nouveau couple (valeur random, clé) imprévisibles pour un attaquant.

Comment est généré le IV en CFB avec SafeAPI ?

Le IV (Initialisation Vector) pour le mode CFB est généré en utilisant l'algorithme ANSI X9.17.

Comment sont stockées les clés secrètes ?

Avant enregistrement sur le disque dur, la clé secrète est chiffrée avec :

  • L'algorithme choisi par l'utilisateur dans l'API : Blowfish, CAST-128, IDEA.
  • Le mode CFB.
  • Une clé de 128 bits qui est la valeur hash MD5 de la passphrase passée comme paramètre à GenSecretKey.
Les clés secrètes ne sont à aucun moment stockées en clair sur le disque dur.

Comment sont stockées les clés privées RSA ?

Avant enregistrement sur le disque dur, la clé privée est chiffrée avec :

  • L'algorithme Blowfish.
  • Le mode CFB.
  • Une clé de 128 bits qui est la valeur hash MD5 de la passphrase passée comme paramètre à GenKeyPair.
Les clés privées RSA ne sont à aucun moment stockées en clair sur le disque dur.


Copyright © 2005 SafeLogic