Peut une clé publique ont une longueur différente (cryptage) que la clé privée?
J'ai une résolution de 1024 bits de la clé privée, et l'utiliser pour générer une clé publique.
Le fait automatiquement dire que ma clé publique a aussi cryptage de 1024? Ou peut-il être d'une moindre taille de cryptage? (512, 256...)
PS: Ce que je suis surtout intéressée, et d'en parler, c'est la taille du module ("n") de clés RSA. La taille est généralement de 1024 ou 2048 bits. Mais je suis content de voir que cela a suscité une discussion, et tout cela est de l'alimentation de mon intérêt pour la cryptographie.
- Je vais avoir du mal à choisir ce que répondre à accepter. Ben la réponse a été la première, il a été direct (et corriger), mais j'avais besoin d'entendre certains de confirmation, à condition que, plus tard, par CodesInChaos dans un assez instructif réponse. Je souhaite que je pourrais sélectionnez les deux, que les deux réponses sont plutôt complémentaires à mes yeux.
Vous devez vous connecter pour publier un commentaire.
Pas. La clé publique d'une paire de clés correspond toujours à la clé privée de taille, en fait, il est dérivé de la clé privée.
Cependant, avec certains la clé publique implémentations cryptographiques, comme OpenPGP, les clés sont créées avec des sous-clés affectés à des tâches différentes. Ces sous-clés peuvent être de tailles différentes les unes des autres et le maître de la clé utilisée pour les créer. Dans ces cas, la clé publique de données indique les tailles de clé pour la clé principale et la sous-clé(s) qui correspond à la clé privée de données.
Tandis que de nombreux autres clés publiques des implémentations ne pas utiliser les sous-clés (par exemple,TLS) de sorte que vous ne verrez jamais la simple taille de la clé. Encore que la taille de la clé sera indiqué dans le public et le privé, clé de données.
La seule variation des tailles de clé, vous verrez, c'est quand le chiffrement asymétrique est utilisé en conjonction avec un chiffrement symétrique. Le symétrique de chiffrement (clé de session) sera plus petit, mais il utilise des algorithmes totalement différents (par exemple, AES, TWOFISH, etc.) et ne fait pas partie de la clé publique (sauf dans OpenPGP, où chiffrement symétrique préférences peut être sauvé parce qu'il n'utilise pas une connexion en direct à établir la manière symétrique chiffrée de la communication et de l'échange de la clé de session de données).
EDIT: Plus de détails sur la relation entre la clé publique et privée de données (également connu que la démonstration de David tort)
Pointant vers RSA est très bien, mais cela dépend du protocole d'échange de clés et pour que nous allions au L'échange de clés Diffie-Hellman et la brevet original, qui est maintenant expiré. Ces deux ont des exemples et des explications des principales méthodes d'échange et de la relation entre les clés publique et privée.
Algorithmes de mise en œuvre de cette relation, y compris RSA et El-Gamal, toutes les créer à la fois le public et le privé simultanément sur les touches. Plus précisément, par la création d'une clé privée qui génère alors la clé publique. La clé publique hérite de toutes les fonctionnalités de la clé privée qui a fait d'elle. Le seulement façon à obtenir dépareillés de détails entre les deux composants serait en quelque sorte la génération d'une clé publique, indépendamment de la clé privée. Le problème, bien sûr, c'est qu'ils n'auraient plus à être une paire de clés.
La génération de la clé de descriptions pour les RSA et El-Gamal expliquer les données communes entre les clés publiques et privées et plus précisément que tous les composants de la clé publique sont une partie de la clé privée, mais la clé privée contient des données supplémentaires nécessaires pour déchiffrer les données et/ou de signer des données. Dans El-Gamal, le public, les composants sont G, q, g et h, alors que le privé sont G, q, g, h et x.
Maintenant, sur l'absence de mention de la taille en bits de la clé de paires dans les algorithmes, oui, c'est vrai, mais à chaque mise en œuvre pratique d'eux intègre les clés de la taille comme l'une des constantes lors de la génération de la clé privée. Voici le code (après toutes les options sont sélectionnées, y compris la sélection de la taille de la clé et de la spécification de la phrase de passe) pour générer des clés GnuPG:
Les légères différences entre les trois algorithmes liés aux valeurs pour les éléments visés dans les algorithmes publiés, mais dans chaque cas, la "nbits" est une constante.
Vous trouverez la même consistance relative à la taille de la clé dans le code pour générer des clés dans OpenSSL, OpenSSH et de tout autre système utilisant la cryptographie à clé publique. Dans chaque mise en œuvre afin de disposer d'un correspondant de clés publique et privée de la paire de clé publique doit être dérivée de la clé privée. Depuis la clé privée est générée avec la taille de la clé comme une constante, que la taille de la clé doit être héritée par la clé publique. Si la clé publique ne contient pas toutes les informations partagées avec la clé privée, puis il sera, par définition, ne correspond pas à celle de la clé et donc le chiffrement/déchiffrement des processus et de la signature/vérification des processus échouera.
x
, ce qui pourrait être une 256 bits. Ensuite, vous calculez la clé publique commeY = G^x
qui est de 2048 bits. Le choix d'une clé privée détermine la clé publique, mais la clé publique peut être plus grand.Cela dépend de l'algorithme de chiffrement et sur ce que précisément vous appelez de clés publique/privée. Parfois, il est possible d'utiliser une taille différente dans la RAM par rapport à la sérialisation sur le disque ou sur le réseau.
RSA
Une clé publique RSA se compose d'un module
n
et un public exposante
. Nous avons l'habitude de choisir une valeur plus petite poure
(3 ou 65537 sont communs). La taille dee
a peu d'influence sur la sécurité. Depuise
est généralement de moins de quatre octets etn
plus d'une centaine de, la taille totale est dominé par le module. Si vous le voulez vraiment, vous pouvez le fixere
dans le cadre de votre spécification de protocole il est donc uniquementn
à stocker.Une clé privée RSA peut être représenté sous différentes formes, mais généralement on stocke les valeurs
p
,q
,dp
,dq
,e
,d
,n
,InvQ
. La combinaison de leur taille est plus grande que la clé publique. La plupart de ces ne sont pas strictement nécessaires, mais il est pratique de les avoir à disposition au lieu de les régénérer. La régénération de tous donnée
,p
etq
est simple.Lorsque nous parlons de la clé de taille dans le contexte du RSA nous toujours dire la taille du module, en ignorant tous les autres éléments. C'est une convention utile, puisque c'est la seule valeur qui affecte la sécurité. Une taille typique pour
n
est de 2048 bits.Fini crypto (échange de clés de Diffie-Hellman, DSA, etc.)
La clé privée est un scalaire de deux fois la taille du niveau de sécurité. Une valeur typique est de 256 bits.
La clé publique est un élément de groupe, ce qui est beaucoup plus grande que la clé privée. Une valeur typique est de 2048 bits.
Donc, avec fini de chiffrement de la clé publique est beaucoup plus grande que la clé privée.
Courbes elliptiques
La clé privée est un scalaire de deux fois la taille du niveau de sécurité. Une valeur typique est de 256 bits. Cette partie est identique à finie domaine de la cryptographie.
La clé publique est un élément de groupe. Il existe deux formes de la sérialisation d'un tel élément. La compression est légèrement plus grande que la clé privée (un couple de bits au plus). La forme non compressée est d'environ deux fois la taille de la clé privée. Une valeur typique pour la forme compressée est de 256 bits et 512 bits pour la forme non compressée.
Clé privée que les semences de
Lors de la génération de clés publique/privée paires vous-même, vous pouvez toujours les stocker sous forme de graines pour un PRNG. De cette façon, ils sont assez petits, 160 bits ou de manière quel que soit le système que vous utilisez. L'inconvénient de cette est que la régénération de la forme naturelle de la clé privée peut être coûteux. Il est nécessaire que la méthode de création de la paire de clés reste constante.
Empreinte de la clé publique
Au lieu de stocker la totalité de la clé publique, vous pouvez stocker que des empreintes digitales, qui est de 160 bits ou alors dans de taille. L'inconvénient de ceci est que cela augmente la taille du message/signature.
Résumé
Pour certains algorithmes, la taille de la clé publique et privée sont même, pour certains, ils diffèrent, et il est souvent possible de compresser un ou l'autre ou les deux d'entre eux à un coût (temps de décompression ou de taille de message).
e
etn
champs de la clé privée sont identiques à la clé publique. Ils sont le même nombre, et pas seulement de la même taille. Si vous prenez la clé privée, avec tous les domaines que j'ai mentionnés et enlever tout saufe
etn
vous obtenez la clé publique.J'étais à la recherche de sources différentes, et ma conclusion est que le module (n=p*q) utilisé pour une clé RSA de génération, est le même pour le public et la clé privée. Le module détermine la longueur de la clé pour les deux.
Pour RSA à clé publique peut être aussi petite que 2 bits. C'est le numéro 3 peut être votre clé publique.
Un choix populaire pour la clé publique RSA est de 17 ans.
De ce que je comprends, il n'est pas nécessaire que les deux touches de la même taille. Vérifiez ci-dessous pour savoir comment générer des clés:
http://en.wikipedia.org/wiki/RSA_algorithm#Key_generation
Cependant, je crois que si une clé (ou facteur de module) est significativement plus faible qu'il affaiblirait la force contre la cryptanalyse.
Edit:
Cette discussion est devenue sans objet, car l'OP de préciser qu'ils étaient les plus intéressés à la taille du module, qui va naturellement de même pour le chiffrement et le déchiffrement (à l'exclusion de toute bizarre inconnu crypto-systèmes).
Juste pour clarifier mon point de vue, je dis simplement que si e << d (ou d << e), vous pouvez distribuer les clés de différentes tailles de clé. Ils seraient générées par le même algorithme en utilisant les mêmes bits de taille mathématiques (par exemple 256 bits), et, de même, le chiffrement et le déchiffrement aurait besoin du même nombre de bits. Si vous regardez (pour la clarté de l'exposé) les numéros 1 et 128, vous avez un éventail de choix dans la façon de les représenter. Ils pourraient à la fois être de 8 bits ou 1 pourrait être représentée par un nombre quelconque de bits de 1 à 7 bits. Cela pourrait être considéré comme un truc pas cher, à moins que votre méthode de génération de clé garanties que l'ordre de grandeur de d et e serait très différent d'une manière prévisible. Toutefois, comme indiqué, je ne vois pas grand-chose à faire.