Qu'est-ce que la différence de performance de l'infrastructure à clé publique pour le chiffrement symétrique?
Nous cherchons à faire à de fortes exigences en matière de sécurité sur notre projet, et nous avons besoin de faire beaucoup de chiffrement qui est très performant.
Je pense que je sais que l'ICP est beaucoup plus lente et plus complexe que de chiffrement symétrique, mais je ne peux pas trouver les numéros de sauvegarder mes sentiments.
OriginalL'auteur stevemac | 2008-09-23
Vous devez vous connecter pour publier un commentaire.
Oui, purement chiffrement asymétrique est beaucoup plus lente que la méthode de chiffrement symétrique (comme le DES ou AES), qui est pourquoi les applications réelles d'utilisation la cryptographie hybride: les coûteuses opérations à clé publique sont effectués uniquement pour chiffrer (et de l'échange) d'une clé de chiffrement pour l'algorithme symétrique qui va être utilisée pour crypter le message.
Le problème de cryptographie de clé publique résout c'est qu'il n'y a pas de secret partagé. Avec un chiffrement symétrique, vous devez faire confiance à toutes les parties concernées de garder le secret de la clé. Cette question devrait être une beaucoup plus grande préoccupation que les performances (qui peut être atténué avec une approche hybride)
OriginalL'auteur Thilo
Sur un Macbook OS X 10.5.5 et une augmentation des stocks de OpenSSL, "openssl vitesse" horloges AES-128-CBC à de 46 000 blocs de 1024 bits par seconde. La même boîte de horloges 1024 bit RSA à 169 signatures par seconde. AES-128-CBC est le "manuel" bloc de l'algorithme de chiffrement, et RSA 1024 est le "manuel" algorithme de clé publique. Il est des pommes avec des oranges, mais la réponse est: RSA est beaucoup, beaucoup plus lent.
Ce n'est pas pourquoi vous ne devriez pas être à l'aide de la clé publique de chiffrement, cependant. Voici les vraies raisons:
Clé publique de chiffrement opérations ne sont pas prévu pour les matières premières, le chiffrement des données. Des algorithmes tels que l'échange de clés Diffie-Hellman et RSA ont été conçues comme un moyen d'échange de clés pour le bloc d'algorithmes de chiffrement. Ainsi, par exemple, vous souhaitez utiliser un générateur de nombre aléatoire pour générer un cryptage de 128 bits de clé aléatoire pour l'AES, et de chiffrer ces 16 octets avec le RSA.
Des algorithmes tels que RSA sont beaucoup moins "user-friendly" que les AES. Avec une clé aléatoire, un bloc de texte en clair vous nourrir de l'AES, va sortir aléatoire à n'importe qui sans la clé. C'est pas vraiment le cas avec le RSA, qui est --- plus que d'AES --- juste une équation mathématique. Donc, en plus de stocker et de gérer des touches correctement, vous devez être extrêmement prudent avec la façon dont vous format votre RSA en clair, les blocs, ou vous vous retrouvez avec des vulnérabilités.
Clé publique ne fonctionne pas sans une infrastructure de gestion des clés. Si vous n'avez pas un schéma pour vérifier les clés publiques, les attaquants peuvent se substituer leurs propres paires de clés pour le réel, pour le lancement de "l'homme du milieu" des attaques. C'est pourquoi le protocole SSL vous oblige à passer par le rigamarole de certificats. Bloc d'algorithmes de chiffrement comme AES ne souffrent de ce problème aussi, mais sans l'ICP AES n'est pas moins sûr que le RSA.
Clé publique de chiffrement opérations sont sensibles à plus de la mise en œuvre des vulnérabilités que AES. Par exemple, les deux côtés d'un RSA transaction se mettre d'accord sur paramètres, qui sont des nombres de la fed pour le RSA équation. Il y avait de mauvaises valeurs les attaquants peuvent se substituer à de désactiver automatiquement le chiffrement. Il en va de même pour l'échange de clés Diffie Hellman et encore plus pour les courbes Elliptiques. Un autre exemple est la Signature RSA Faux vulnérabilité qui s'est produite il y a 2 ans dans plusieurs haut de gamme implémentations SSL.
À l'aide de la clé publique est la preuve que vous êtes en train de faire quelque chose "hors de l'ordinaire". Hors de l'ordinaire est exactement ce que vous jamais veux être avec de la cryptographie; au-delà des algorithmes de chiffrement dessins sont vérifiés et testés pendant des années avant qu'ils ne soient considérés comme sûrs.
À nos clients qui veulent utiliser la cryptographie dans leurs applications, nous faire deux recommandations:
Pour "les données au repos", l'utilisation de PGP. Vraiment! PGP a été battu pendant plus d'une décennie et est considéré comme sûr de la muette de la mise en œuvre des erreurs. Il y a l'open source et commerciaux variantes de celui-ci.
Pour les "données de vol", utiliser le protocole TLS/SSL. Pas de protocole de sécurité dans le monde est de mieux comprendre et de mieux testé que TLS; les institutions financières partout accepter comme une méthode sûre pour déplacer les données les plus sensibles.
Voici un décent writeup [matasano.com moi et Nate Lawson, un professionnel de la cryptographe, écrit quelques années en arrière. Il couvre ces points plus en détail.
OriginalL'auteur tqbf
Utiliser OpenSSL
vitesse
commande pour comparer les algorithmes et de voir par vous-même.OriginalL'auteur Cristian Ciupitu
Pratique en fonction de PKI cryptage, les systèmes utilisent un chiffrement asymétrique pour chiffrer une clé symétrique, puis de chiffrement symétrique avec cette clé pour chiffrer les données (cela dit, quelqu'un va remarquer un contre-exemple).
De sorte que la charge supplémentaire imposée par des algorithmes de cryptographie asymétrique sur symétrique est fixe, elle ne dépend pas de la taille des données, juste sur la taille des clés.
Dernière fois que j'ai testé, la validation d'une chaîne de 3 ou alors X. 509 certificats [modifier pour ajouter: et les données qu'ils ont la signature] a été prise en une fraction de seconde sur un BRAS de l'exécution à 100MHz (en moyenne plus de beaucoup de répétitions, évidemment). Je ne me souviens pas comment les petits n'est pas négligeable, mais moins d'une seconde.
Désolé je ne me souviens pas les détails exacts, mais le résumé est que si vous êtes sur un système très strict ou faire beaucoup de chiffrement (comme si vous voulez accepter autant que possible les connexions SSL d'une seconde), le NIST a approuvé le chiffrement asymétrique méthodes sont rapides.
OriginalL'auteur Steve Jessop
Apparemment, il est 1000x pire. (http://windowsitpro.com/article/articleid/93787/symmetric-vs-asymmetric-ciphers.html). Mais à moins que vous êtes vraiment à travailler à travers un grand nombre de données qu'il ne va pas à la matière. Ce que vous pouvez faire est d'utiliser un chiffrement asymétrique pour échanger une clé de chiffrement symétrique.
OriginalL'auteur stimms
Peut-être vous pouvez ajouter quelques détails au sujet de votre projet de sorte que vous obtenez une meilleure qualité des réponses. Qu'essayez-vous d'obtenir? De qui? Si vous pouviez expliquer les exigences de votre sécurité, vous aurez une bien meilleure réponse. La Performance ne signifie pas grand chose si le mécanisme de chiffrement n'est pas de la protection de ce que vous pensez.
Par exemple, les certificats X509 sont un standard de l'industrie des moyens de s'assurer de client/serveur systèmes d'extrémité. PGP le blindage peut être utilisé pour sécuriser des fichiers de licence. Pour des raisons de simplicité, Cipher block chaining avec Blowfish (et une foule d'autres algorithmes) est facile à utiliser en Perl ou Java, si vous contrôlez les deux points d'extrémité.
Grâce.
OriginalL'auteur jjohn