Question

Quelle est la différence entre obfuscation, hachage et chiffrement?

Voici ma compréhension:

  • Le hachage est un algorithme à sens unique. ne peut pas être inversé
  • L'obscurcissement est similaire au cryptage mais ne nécessite pas de "secret". comprendre (ROT13 en est un exemple)
  • Le chiffrement est réversible, mais un "secret". est nécessaire pour le faire
Était-ce utile?

La solution

Le hachage est une technique de création de clés semi-uniques basées sur des données plus volumineuses. Dans un hash donné, vous aurez éventuellement des " collisions " (par exemple, deux éléments de données différents 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’obfuscation consiste généralement à essayer de supprimer les indices utiles (noms de variables / fonctions significatifs), de supprimer les espaces pour rendre la lecture difficile, et de faire les choses de manière compliquée pour rendre difficile la suite des événements. Il n'offre aucun niveau de sécurité sérieux comme "vrai". le cryptage serait.

Le chiffrement peut suivre plusieurs modèles, dont le "secret". méthode, appelée cryptage de 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.

Autres conseils

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

Hashing - 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, c'est-à-dire sans relation avec X. Ceci est mathématiquement impossible (ou du moins non prouvé comme possible). Le plus proche que nous obtenons est fonctions trapdoor. H (X) = Y pour avec H-1 (Y) = X est si difficile à faire que vous feriez mieux d'essayer de forcer brutalement un Z tel que H (Z) = Y

Obfuscation (à mon avis) - Toute fonction f, telle que f (a) = b où vous comptez sur f étant secret. F peut être une fonction de hachage, mais "l'obscurcissement" une partie implique la sécurité par l'obscurité. Si vous n'avez jamais vu ROT13 auparavant, ce serait un 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 (symétriques, elles sont identiques). Y est le cryptogramme, X est le texte en clair.

Un hachage est un algorithme à sens unique utilisé pour comparer une entrée à une référence sans compromettre la référence.

Il est couramment utilisé dans les connexions pour comparer les mots de passe. Vous pouvez également le trouver sur votre reçu si vous effectuez un achat avec une carte de crédit. Vous y trouverez votre numéro de carte de crédit avec certains numéros cachés, ce qui vous permettra de prouver avec une grande propreté que votre carte a été utilisée pour acheter le contenu alors que quelqu'un cherchant dans votre poubelle ne le pourra pas. pour 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 d'un hachage. Cependant, notez que & abcxyz " aura exactement le même hachage, on appelle cela une collision . Encore une fois: un hachage ne prouve avec une certaine probabilité que les deux valeurs comparées sont identiques .

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

Les algorithmes de hachage modernes sont conçus pour limiter autant que possible le nombre de collisions, mais ils ne peuvent jamais être complètement évités. En règle générale, plus votre hash est long, moins il a de collisions.

La confusion dans la cryptographie code les données d'entrée avant que celles-ci ne soient hachées ou cryptées.

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

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

  • Le hachage dérive une valeur de un autre, en utilisant un algorithme d'ensemble. En fonction de l'algo utilisé, il peut s'agir d'une solution ou d'une solution.

  • Obfusquer fait quelque chose plus difficile à lire par symbole remplacement.

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

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 deux copies à comparer, par exemple.

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

L'obscurcissement masque certaines informations sans clé séparée (ou avec une clé fixe). Dans ce cas, garder la méthode secrète, c'est comment garder les données en sécurité.

À partir de là, vous pouvez voir comment un algorithme de hachage pourrait être utile pour la validation de signatures numériques et 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.

Une réponse brève:

Hashing - création d'un champ de vérification sur certaines données (pour détecter le moment où 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 cela sont SHA-1, SHA256, etc.

Obfuscation - modifiez vos données / code pour confondre quiconque (pas de véritable protection). Cela peut ou non perdre certaines des données d'origine. Il n'y a pas de véritable norme pour cela.

Cryptage - utiliser une clé pour transformer les données de sorte que seules les personnes possédant la clé correcte puissent la 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.

Tout va bien, sauf que l'obscurcissement n'est pas vraiment similaire au cryptage - parfois, il ne s'agit même pas de chiffrements aussi simples que ROT13.

  • Le hachage est une tâche à sens unique qui consiste à créer une valeur à partir d'une autre. L'algorithme doit essayer de créer une valeur aussi courte et unique que possible.

  • obfuscation rend quelque chose d'illisible sans changer de sémantique. Cela implique une transformation de valeur, la suppression des espaces, etc. Certaines formes d’obscurcissement pouvant également être à sens unique, il est donc impossible d’obtenir la valeur de départ

  • Le chiffrement
  • est bidirectionnel et il y a toujours un déchiffrement qui fonctionne dans l'autre sens.

Donc, oui, vous avez généralement raison.

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

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

Le cryptage transforme l’entrée en une sortie d’une manière unique. Il existe une corrélation un-à-un, évitant ainsi toute perte éventuelle de données et toute confusion: la sortie peut toujours être reconvertie en entrée sans aucune ambiguïté.

L'obfuscation ne fait que rendre quelque chose de plus difficile à comprendre en intrusant des techniques pour confondre quelqu'un. Pour ce faire, les observateurs de code le font généralement en renommant des éléments pour supprimer tout élément significatif des noms de variable ou de méthode. Ce n'est pas similaire au cryptage en ce que rien ne doit être déchiffré pour être utilisé.

Généralement, la différence entre le hachage et le cryptage réside dans le fait que le hachage utilise généralement une formule pour traduire les données sous une autre forme, le cryptage utilisant une formule nécessitant le chiffrement / déchiffrement de clé (s). Par exemple, le codage en base 64 étant un algorithme de hachage, md5 étant un algorithme de chiffrement. Tout le monde peut décompresser les données codées en base64, mais vous ne pouvez pas déchiffrer les données chiffrées md5 sans clé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top