2010-10-10 13 views
4

Bonjour à tous J'ai besoin de crypter le texte quel est le meilleur cryptage à utiliser par programme?
En général, j'ai un fichier d'entrée avec la chaîne que j'ai besoin de crypter puis lire le fichier dans l'application
Déchiffrez-le pour le flux d'applications.
avec C++Quel est le cryptage le plus puissant à utiliser pour protéger le texte?

+5

Meilleur dans quel sens? Chaque algorithme a des compromis à prendre en compte lors de la sélection. –

+0

@Ignacio: "Quel est le cryptage __strongest__ [...]?" – sbi

+0

Quels sont les compromis à prendre en compte lors de la sélection? – user63898

Répondre

13

Le cryptage le plus fort consiste à utiliser un one-time pad (avec XOR par exemple). L'algorithme à un bloc de temps (contrairement à la plupart des autres algorithmes couramment utilisés) est sûrement sécurisé lorsqu'il est utilisé correctement.

Un problème sérieux avec cet algorithme est que la distribution du tampon à usage unique doit être effectuée de manière sécurisée et ceci est souvent impraticable. S'il était possible de transmettre le tampon une fois en toute sécurité, il serait également possible d'envoyer le message en toute sécurité en utilisant le même canal.

Dans les situations où il n'est pas possible d'envoyer des informations de manière sécurisée via un autre canal, public key cryptography est utilisé. Généralement, la force de ces algorithmes augmente à mesure que la longueur de la clé augmente, à moins qu'une faiblesse critique ne soit trouvée dans l'algorithme. RSA est un algorithme de clé publique couramment utilisé. Pour obtenir un cryptage fort avec la cryptographie à clé publique, les clés ont tendance à être volumineuses (des milliers de bits ne sont pas rares) et les algorithmes sont lents à calculer. Une alternative consiste à utiliser un symmetric key algorithm à la place. Ceux-ci peuvent souvent obtenir le même cryptage de force avec des clés plus courtes et peuvent être plus rapides à chiffrer et à déchiffrer. Comme les blocs à usage unique, cela pose également le problème de la distribution des clés, mais cette fois, la clé est très courte, il est donc plus facile de la transférer en toute sécurité. Un exemple d'algorithme de clé symétrique couramment utilisé est AES.

+1

+1 pour un tampon unique. – Skarab

+0

Ce n'est pas le seul algorithme sécurisé, loin s'en faut. En fait, le lien Wikipedia fait référence à une classe d'algorithmes "Shannon secure" qui sont tous aussi puissants. Trivally, puisque 'OTP (text, key)' est parfaitement sécurisé, 'OTP (OTP (text, key1), key2)' est aussi bien. – MSalters

+0

@MSalters: Merci pour le commentaire. J'ai mis à jour ma réponse. –

2

Un pad de temps est le plus fort, mais vous cherchez probablement sth que vous pouvez utiliser facilement dans votre application. Consultez cette page pour en savoir plus sur la force des algorithmes - http://security.resist.ca/crypt.shtml et ici vous avez une bibliothèque C++: crypto ++ (le lien pointe vers un benchmark qui compare les performances des différents algorithmes) http://www.cryptopp.com/benchmarks.html.

0

La réponse dépend de ce que vous entendez par "cryptage fort".

Lorsque les cryptographes parlent de forts modes de cryptage, ils attendent généralement qu'il a au moins deux propriétés:

  • confidentialité: à savoir il n'est pas possible de trouver des informations sur le texte en clair avec le texte chiffré (à l'exception possible de la longueur du texte en clair).
  • intégrité: il ne doit pas être possible pour un adversaire de modifier le texte chiffré, sans que le destinataire du message ne remarque la modification.

Lorsque cryptographes appeler un système de chiffrement « prouvable sécurisé sous une hypothèse » ils signifient généralement que le système de chiffrement est sécurisé contre choisi attaques de cryptogramme à moins que les hypothèses (par exemple, il n'y a pas d'algorithme efficace pour un problème bien connu) ne sont pas satisfaits .

En particulier, certaines des autres réponses affirment que le tampon à usage unique est l'algorithme le plus sûr. Cependant, le tampon unique ne fournit aucune intégrité. Sans aucune modification, il est facile de modifier un texte chiffré sans que le destinataire ne remarque la modification. Cela signifie que le tampon unique répond seulement à une notion de sécurité plutôt faible appelée "secret parfait". C'est à dire.De nos jours, il est assez trompeur d'appeler le tampon à usage unique "sûrement sécurisé", sans mentionner que cela ne tient que sous un modèle de sécurité qui n'inclut pas l'intégrité du message.

Pour sélectionner un mode de cryptage fort, vous pouvez également regarder un aspect pratique. Par exemple, combien la cryptanalyse est passée en mode cryptage, ou comment la bibliothèque cryptographique qui implémente l'algorithme a-t-elle été analysée? Dans cet esprit, choisir une bibliothèque cryptographique bien connue, chiffrer correctement avec AES, s'authentifier avec HMAC va être presque optimal.