La clé privée octets de longueur
Donc im génération de 2048 RSA paire de clés. Mais quand je regarde la clé privée de la longueur est seulement 1232 octets. Est ce que cela a quelque chose à voir avec le 2048 ou est le 2048 juste le module de la taille?
- La question ne doit pas être marquées pour suppression - c'est une question raisonnable que les autres en ont, et il a une bonne qualité de réponse.
Vous devez vous connecter pour publier un commentaire.
La taille d'une clé RSA est exprimé en bits, pas d'octets. 2048 bits est de 256 octets.
Un nu-os clé privée RSA est composé de deux entiers, le module (un grand composite entier, sa longueur en bits est la "longueur de clé RSA") et le privé exposant (un autre grand entier, qui, normalement, a la même taille que le module). Cependant, le module et le privé exposant avoir un peu de structure interne, et de connaître plus de détails sur cette structure permet d'accélérer les implémentations (par un facteur de 4). Donc, la clé privée RSA comprennent généralement encore plus de données.
À savoir si le module est n et est le produit de deux nombres premiers p et q, puis la clé privée comprend:
pour un grand total d'environ 1160 octets. Ensuite, il ya un peu de surcharge pour le codage, parce que tous les entiers pourrait avoir des longueurs légèrement différentes (par exemple, rien n'exige que p et q ont exactement la même taille; aussi, e pourrait être plus grande que ça). La structure standard utilise l'ASN.1, ce qui implique quelques octets supplémentaires ici et là. Il est également fréquent pour envelopper la structure dans une structure plus grande, qui identifie également la clé comme clé RSA. 1232 octets est compatible avec 2048 bits RSA clé codée dans le fichier PKCS#8 format.
Pour plus de détails sur le RSA, jetez un oeil à PKCS#1.
N'oubliez pas que
2048
est la longueur du module dans bits, mais votre mesure de la clé privée est en octets. La clé privée est le module et l'inverse multiplicatif du public, exposant, et, selon la boîte à outils que vous utilisez, il peut également stocker votre CN, DN, (pour x509 touches) ou des sous-clés (pour les clés GPG), il suffit donc de comparer les tailles peuvent ne pas être utiles.Autres que les valeurs requises (dont le module est une, comme @sarnold points) et le fait que vous êtes littéralement la comparaison de bits et d'octets, certaines implémentations de calculer aussi quelques autres valeurs à l'avant et de les stocker avec la clé, comme une optimisation. Par exemple, je ne suis pas certain mais je crois que j'ai lu que certaines implémentations de stocker le produit
(p-1)(q-1)
(rappelons que le modulen
est en fait le produitpq
, où p et q sont premiers).@Thomas Pornin,
J'utilise ssh-keygen et openssl genpkey pour générer une paire de clés, chacune avec 2048 keysize, puis imprimer le contenu, c'est comme ça:
Donc, l'exposant est l'256bytes(2048bits), pas le module, n'est-ce pas?