Taille de la signature RSA?

Je voudrais savoir quelle est la longueur de la signature RSA ? Est-ce toujours la même taille que la taille de la clé RSA comme si la taille de la clé est 1024 alors la signature RSA est 128 octets, si la taille de la clé est 512 bits alors la signature RSA est 64 octets ? qu'est-ce que RSA module ? Aussi que signifie RSA-sha1 ? Tous les pointeurs grandement appréciés.

33
demandé sur emboss 2011-07-12 05:57:11

1 réponses

, Vous avez raison, la signature RSA taille dépend de la taille de la clé, la signature RSA taille est égale à la longueur du module en octets. Cela signifie que pour une "clé de N bits", la signature résultante aura exactement n bits de long. Bien que la valeur de signature calculée ne soit pas nécessairement n bits, le résultat sera complété pour correspondre exactement à n bits.

Maintenant, voici comment cela fonctionne: L' RSA algorithme est basé sur exponentiation modulaire. Pour un tel calcul La finale le résultat est le reste de la "normale" résultat divisé par le module. L'arithmétique modulaire joue un rôle important dans La Théorie des nombres . Là, la définition de congruence ( ≡ ) est

m is congruent to n mod k if k divides m - n

Exemple Simple-soit n = 2 et k = 7, puis

2 ≡ 2 (mod 7) because: 7 divides 2 - 2
9 ≡ 2 (mod 7) because: 7 divides 9 - 2
16 ≡ 2 (mod 7) because: 7 divides 16 - 2
...

7 en fait fait diviser 0, La définition de la division est

Un entier a divise un entier b s'il existe un entier n avec la propriété que b = na

Pour a = 7 et b = 0, choisissez n = 0. Ce implique que chaque entier divise 0, mais cela implique également que la congruence peut être étendue à des nombres négatifs (n'entrera pas dans les détails ici, ce n'est pas important pour RSA).

Donc, l'essentiel est que le principe de congruence élargit notre compréhension naïve des restes, le module est le "nombre après mod", dans notre exemple, il serait 7. Comme il y a une quantité infinie de nombres congruents étant donné un module, nous parlons de cela comme des classes de congruence et choisissons généralement un représentant (le plus petit entier congruent > 0) pour nos calculs, tout comme nous le faisons intuitivement quand on parle du "reste" d'un calcul.

Dans RSA, signer un message M signifie exponentiation avec l '"exposant Privé" d, le résultat r est le plus petit entier >0 et plus petit que le module n de sorte que

m^d ≡ r (mod n)

Cela implique deux choses

  • La longueur de r (en bits) est borné par n (en bits)
  • La longueur de m (en bits) doit être

Pour que la signature soit exactement n bits, une certaine forme de remplissage est appliquée. Cf. PKCS#1 pour les options valides.

Le deuxième fait implique que les messages plus grands que n devraient soit être signés en cassant m en plusieurs morceaux fonctions de hachage cryptographiquement sécurisées telles que SHA-1 que vous avez mentionné. L'application de SHA-1 à un message de longueur arbitraire m produira un" hachage " de 20 octets de long, plus petit que la taille typique D'un module RSA, les tailles courantes sont de 1024 bits ou 2048 bits, c'est-à-dire 128 ou 256 octets, de sorte que le calcul de la signature peut être appliqué à tout message arbitraire.

Les propriétés cryptographiques d'une telle fonction de hachage assurent (en théorie-la falsification de signature est un sujet énorme dans la recherche communauté) qu'il n'est pas possible de forger une signature autrement que par la force brute.

44
répondu emboss 2017-10-25 12:57:43