Quelle est la différence entre L'obscurcissement, le hachage et le chiffrement?

Quelle est la différence entre L'obscurcissement, le hachage et le chiffrement?

Voici ma compréhension:

  • le hachage est un algorithme à Sens Unique; ne peut pas être inversé
  • L'obscurcissement est similaire au chiffrement mais ne nécessite aucun "secret" pour comprendre (ROT13 est un exemple)
  • Le chiffrement est réversible mais un "secret" est nécessaire pour le faire
30
demandé sur Cade Roux 2008-10-08 23:00:45

11 réponses

Le hachage est une technique de création de clés semi-uniques basées sur des données plus volumineuses. Dans un hachage donné, vous finirez par avoir des "collisions" (par exemple, deux données différentes calculant la même valeur de hachage) et lorsque vous le faites, vous créez généralement une taille de clé de hachage plus grande.

L'obscurcissement implique généralement d'essayer de supprimer des indices utiles (c'est-à-dire des noms de variables/fonctions significatifs), de supprimer les espaces pour rendre les choses difficiles à lire, et généralement de faire les choses de manière alambiquée la suite de ce qui se passe difficile. Il ne fournit aucun niveau de sécurité sérieux comme le chiffrement "vrai".

Le chiffrement peut suivre plusieurs modèles, dont l'un est la méthode "secrète", appelée chiffrement à clé privée où les deux parties ont une clé secrète. Le chiffrement à clé publique utilise une clé unidirectionnelle partagée pour chiffrer et une clé de destinataire privée pour déchiffrer. Avec la clé publique, seul le destinataire doit avoir le secret.

28
répondu theraccoonbear 2008-10-08 19:07:29

C'est une explication de haut niveau. Je vais essayer de les affiner:

Hachage - dans un monde parfait, c'est un oracle aléatoire. Pour la même entrée X, vous recevez toujours la même sortie Y, qui N'est en aucun cas liée à X. Ceci est mathématiquement impossible (ou du moins non prouvé pour être possible). Le plus proche que nous obtenons est les fonctions de trappe. H (X) = Y pour avec H-1 (Y) = X est si difficile à faire que vous feriez mieux d'essayer de forcer un Z tel que H (Z) = Y

Obfuscation ( mon avis) - Tout fonction f, telle que f (a) = b où vous comptez sur f étant secret. F peut être une fonction de hachage, mais la partie "obfuscation" implique la sécurité par l'obscurité. Si vous n'avez jamais vu ROT13 auparavant, ce serait une obscurcissement

Cryptage - EK (X) = Y, Dl(Y) = X où E est connu de tous. k et l sont des clés, elles peuvent être identiques (en symétrique, elles sont identiques). Y est le texte chiffré, X est le texte en clair.

6
répondu Tom Ritter 2008-10-08 19:06:56

Un hash est un un algorithme utilisé pour comparer une entrée avec une référence sans compromettre la référence.

Il est couramment utilisé dans les connexions pour comparer les mots de passe et vous pouvez également le trouver sur votre reciepe si vous magasinez en utilisant la carte de crédit. Vous y trouverez votre numéro de carte de crédit avec quelques numéros cachés, de cette façon, vous pouvez prouver avec une grande propabilité que votre carte a été utilisée pour acheter les choses tandis que quelqu'un cherchant dans vos ordures ne le fera pas être en mesure de trouver le numéro de votre carte.

Un hachage très naïf et simple est "les 3 premières lettres d'une chaîne". Cela signifie que le hachage de "abcdefg" sera "abc". Cette fonction ne peut évidemment pas être inversée, ce qui est le but entier d'un hachage. Cependant, notez que "abcxyz" aura exactement le même hachage, c'est ce qu'on appelle une collision . Encore une fois: un hachage prouve seulement avec une certaine propabilité que les deux valeurs comparées sont les mêmes .

Un autre très naïf et le hash simple est le module 5 d'un nombre, ici vous verrez que 6,11,16 etc.. auront tous le même hachage: 1.

Les algorithmes de hachage modernes sont conçus pour maintenir le nombre de collisions aussi bas que possible, mais ils ne peuvent jamais être complètement évités. Une règle empirique est la suivante: plus votre hachage est long, moins il y a de collisions.

5
répondu 2008-10-08 21:06:16

L'Obfuscation en cryptographie consiste à encoder les données d'entrée avant que elles ne soient hachées ou cryptées.

Cela rend les attaques par force brute moins réalisables, car il devient plus difficile de déterminer le texte clair correct.

3
répondu Rinat Abdullin 2008-10-08 19:09:18

C'est comme ça que je l'ai toujours regardé.

  • Le hachage dérive une valeur de un autre, en utilisant un algorithme de jeu. Selon l'algo utilisé, cela peut être un moyen, peut ne pas être.

  • Obscurcir c'est faire quelque chose plus difficile à lire par symbole remplacement.

  • Le chiffrement est comme le hachage, sauf que la valeur dépend d'une autre valeur que vous fournissez l'algorithme.

2
répondu Wes P 2008-10-08 19:04:11

Ce n'est pas une mauvaise description de haut niveau. Voici quelques considérations supplémentaires:

Le hachage réduit généralement une grande quantité de données à une taille beaucoup plus petite. Ceci est utile pour vérifier le contenu d'un fichier sans avoir à avoir deux copies de comparer, par exemple.

Le cryptage implique le stockage de certaines données secrètes, et la sécurité des données secrètes dépend de garder une "clé" distincte à l'abri des méchants.

L'obscurcissement cache certaines informations sans clé séparée (ou avec une clé fixe). Dans ce cas, garder la méthode secrète est la façon dont vous gardez les données en toute sécurité.

À partir de là, vous pouvez voir comment un algorithme de hachage peut être utile pour les signatures numériques et la validation de contenu, comment le cryptage est utilisé pour sécuriser vos fichiers et vos connexions réseau, et pourquoi l'obscurcissement est utilisé pour la gestion des droits numériques.

2
répondu Mark Bessey 2008-10-10 19:32:06

Une brève réponse:

Hachage-création d'un champ de vérification sur certaines données (pour détecter quand les données sont modifiées). Il s'agit d'une fonction à Sens Unique et les données d'origine ne peuvent pas être dérivées du hachage. Les normes typiques pour ceci sont SHA-1, sha256 etc.

Obfuscation-modifiez vos données / code pour confondre quelqu'un d'autre (pas de protection réelle). Cela peut ou non perdre certaines des données d'origine. Il n'y a pas de normes réelles pour cela.

Cryptage-utilisation d'une clé pour transformer les données de sorte que seuls ceux qui ont la bonne clé peuvent le comprendre. Les données chiffrées peuvent être déchiffrées pour obtenir les données d'origine. Les normes typiques sont DES, TDES,AES, RSA etc.

1
répondu selwyn 2012-08-24 14:13:37

Tout va bien, sauf que l'obscurcissement n'est pas vraiment similaire au chiffrement-parfois il n'implique même pas des chiffrements aussi simples que ROT13.

0
répondu Cade Roux 2008-10-08 19:03:32
  • Le hachage est une tâche à Sens Unique de créer une valeur à partir d'une autre. L'algorithme devrait essayer de créer une valeur aussi courte et aussi unique que possible.

  • L'obscurcissement rend quelque chose illisible sans changer la sémantique. Cela implique la transformation de la valeur,la suppression des espaces, etc. Certaines formes d'obscurcissement peuvent également être unidirectionnelles,il est donc impossible d'obtenir la valeur de départ

  • Le cryptage est bidirectionnel, et il y a toujours un décryptage qui fonctionne l'autre manière autour.

Donc, oui, vous avez surtout raison.

0
répondu Milan Babuškov 2008-10-08 19:11:46

L'obscurcissement cache ou rend quelque chose de plus difficile à comprendre.

Le hachage prend une entrée, l'exécute via une fonction et génère une sortie qui peut être une référence à l'entrée. Ce n'est pas nécessairement unique, une fonction peut générer la même sortie pour différentes entrées.

Le chiffrement transforme l'entrée en sortie d'une manière unique. Il y a une corrélation un-à-un donc il n'y a pas de perte potentielle de données ou de confusion-la sortie peut toujours être transformée en arrière l'entrée avec aucune ambiguïté.

0
répondu Ray 2008-10-08 19:14:32

L'obscurcissement rend simplement quelque chose de plus difficile à comprendre en intrusif des techniques pour confondre quelqu'un. Les obscurcisseurs de Code le font généralement en renommant les choses pour supprimer tout ce qui a un sens des noms de variables ou de méthodes. Ce n'est pas similaire au chiffrement en ce sens que rien ne doit être déchiffré pour être utilisé.

Typiquement, la différence entre le hachage et le chiffrement est que le hachage utilise généralement une formule pour traduire les données sous une autre forme où le chiffrement utilise une formule besoin de clé (s) pour chiffrer / déchiffrer. Des exemples seraient le codage de base 64 étant un algorithme de hachage où md5 étant un algorithme de chiffrement. N'importe qui peut décompresser les données codées en base64, mais vous ne pouvez pas déchiffrer les données cryptées md5 sans clé.

0
répondu Jeremy 2008-10-08 19:15:35