2010-07-22 7 views
1

J'utilise la norme PKCS # 1 2.0 (OAEP) (signature avec annexe), mais certains problèmes ne me semblent pas clairs.Signature RSA PKCS # 1

  1. Quel est l'objet physique qui est signé? Je sais que c'est la valeur de la fonction de hachage et ainsi de suite (I do connaître l'algorithme), mais est-il calculé à partir de la forme binaire du fichier, quel que soit le contenu?

  2. Quel est le résultat physique de la signature? Un fichier contenant le hachage signé? Ce fichier doit-il être placé dans un emplacement spécifié? Quel est le format ou l'extension d'une telle chose?

  3. Si j'ai plusieurs fichiers que je veux signer, cette opération doit-elle être effectuée séparément pour chacun d'entre eux? Ou devraient-ils être concaténés? Encore une fois - quel est le résultat d'une telle opération (fichier?)?

+1

Veuillez noter que le remplissage OAEP est utilisé pour le chiffrement, mais pas pour les signatures. Vous devriez soit utiliser l'ancien (mais toujours populaire) padding PKCS # 1 v1.5 ou le padding PSS. – Accipitridae

Répondre

2

PKCS # 1 est parfois appelée « RSA brute » et est une primitive cryptographique de bas niveau: il ne fonctionne pas sur les fichiers et ne produit pas les fichiers, il fonctionne sur des données brutes: entrée est un nombre plus petit que la clé publique et la sortie est un nombre de la taille de la clé publique (par exemple 1024 bits pour RSA-1024).

Si vous voulez un fichier de signature , vous voulez probablement utiliser PKCS#7/CMS format, comme c'est le format de signature le plus utilisé à la fois pour les signatures attachées et détachées (même les signatures dans les fichiers PDF sont généralement PKCS # 7 enveloppes en fait). PS: Je ne sais pas grand-chose sur OAEP, mais d'après ce que j'ai lu, il semble que ce soit un schéma de remplissage (quelque chose que vous faites pour les données avant la signature brute) donc mon argument devrait être valide.

+0

J'ajoute qu'une signature PKCS # 7 est un objet beaucoup plus complexe (et plus gros) qu'une simple signature PKCS # 1 et implique l'utilisation de certificats X.509 entre autres choses, donc ce n'est peut-être pas ce que vous cherchez, selon sur les circonstances. OTOH est un format complet qui prend en charge un grand nombre de programmes et peut correctement vérifier, tandis que si vous utilisez PKCS n ° 1, c'est principalement à vous de décider ce que vous en ferez. – lapo

+0

Votre formulation "entrée est un nombre plus petit que la clé publique" est assez floue. L'entrée est soit un tableau d'octets presque arbitrairement long qui est d'abord haché puis signé ou c'est déjà le condensé de hachage qui est ensuite directement signé. Lequel dépend de l'interface de la librairie crypto utilisée. – Accipitridae

+2

Non, PKCS # 1 inclut un remplissage pour rendre l'entrée "juste assez grande" mais n'inclut pas le hachage ou la distinction entre signature attachée et détachée, c'est quelque chose géré à un niveau supérieur, comme dans PKCS # 7. – lapo