Frage

Was ist der Unterschied zwischen Obfuscation, Hashing und Verschlüsselung?

Hier ist mein Verständnis:

  • Hashing ist ein Einweg-Algorithmus; kann nicht rückgängig gemacht
  • werden
  • Obfuscation Verschlüsselung ähnlich ist, aber erfordert kein „Geheimnis“ zu verstehen (ROT13 ist ein Beispiel)
  • Die Verschlüsselung ist reversibel, aber ein „Geheimnis“ ist erforderlich, dies zu tun
War es hilfreich?

Lösung

Hashing ist eine Technik der Schaffung halb eindeutige Schlüssel basierend auf größere Stücke von Daten. In einem gegebenen Hash haben Sie schließlich „Kollisionen“ (beispielsweise zwei verschiedene Daten auf den gleichen Hash-Wert Berechnung) und wenn Sie tun, Sie in der Regel eine größere Hash-Schlüsselgröße erstellen.

Verschleierung der Regel beinhaltet die versuchen, hilfreich Hinweise zu entfernen (das heißt sinnvolle Variable / Funktionsnamen), Leerzeichen zu entfernen, um die Dinge schwer zu lesen, und in der Regel Dinge in gewundenen Wegen tun, um nach dem, was auf schwer geht. Es stellt kein ernsthaftes Sicherheitsniveau wie „true“ Verschlüsselung würde.

Die Verschlüsselung kann mehrere Modellen folgen, eines davon ist die „Geheimnis“ Methode, die so genannte Private-Key-Verschlüsselung in denen beide Parteien einen geheimen Schlüssel haben. Public-Key-Verschlüsselung verwendet einen gemeinsamen Einweg-Schlüssel zu verschlüsseln und einen privaten Empfängerschlüssel zu entschlüsseln. Mit dem öffentlichen Schlüssel, nur muss der Empfänger das Geheimnis haben.

Andere Tipps

Das ist eine hohe Erklärung. Ich werde versuchen, sie zu verfeinern:

Hashing - in einer perfekten Welt, es ist ein zufälliges Orakel. Für den gleichen Eingang X, empfangen sie immer den gleichen Ausgang Y, die in keiner Weise im Zusammenhang X. Dieser mathematisch unmöglich sind (oder zumindest nicht beweisen möglich sein). Die nächstgelegene wir bekommen, ist Falltür Funktionen. H (X) = Y für mit H-1 (Y) = X ist so schwer zu tun bist du besser dran versuchen, solche Brute eine Z-Kraft, daß H (Z) = Y

Obfuscation (meiner Meinung nach) - Jede Funktion f, so daß f (a) = b, wo Sie verlassen sich auf f Geheimnis zu sein. F kann eine Hash-Funktion sein, aber der „Verschleierung“ Teil bedeutet Sicherheit durch Unklarheit. Wenn Sie ROT13 nie zuvor gesehen haben, würde es Verschleierungs

sein

Verschlüsselung - Ek (X) = Y, Dl (Y) = X, wobei E für jedermann bekannt ist. k und l sind Schlüssel, können sie gleich sein (in symmetrisch, sie sind gleich). Y ist der Chiffretext, X ist der Klartext.

A hash ist ein Einzel Algorithmus verwendet einen Eingang mit einer Referenz vergleichen, ohne die Referenz zu beeinträchtigen.

Es wird allgemein in Logins verwendet Passwörter zu vergleichen und Sie können es auch auf Ihrem reciepe finden, wenn Sie Kreditkartengeschäft mit. Dort finden Sie Ihre Kreditkartennummer mit einigen Zahlen versteckt, auf diese Weise finden Sie beweisen können, mit hohem propability , dass Ihre Karte verwendet wurde, das Zeug zu kaufen, während jemand der Suche durch Ihren Müll nicht in der Lage sein wird, die Nummer Ihrer Karte zu finden.

Eine sehr naive und einfache Hash ist "Die ersten drei Buchstaben eines String" . Das bedeutet, dass der Hash von „abcdefg“ wird „abc“. Diese Funktion kann natürlich nicht rückgängig gemacht werden, die der gesamte Zweck eines Hash ist. Beachten Sie jedoch, dass „abcxyz“ genau den gleichen Hash haben wird, ist dies eine genannt Kollision . Also noch einmal: ein Hash beweist nur mit einer gewissen propability, dass die beiden verglichenen Werte gleich sind

.

Eine weitere sehr naive und einfache Hash ist die 5-Modul einer Reihe, hier werden Sie sehen, dass 6,11,16 etc .. werden alle den gleichen Hash haben. 1

Moderne Hash-Algorithmen sind so konzipiert, um die Anzahl der Kollisionen so gering wie möglich zu halten, aber sie können nie vollständig vermieden werden. Eine Faustregel gilt:. Je länger Ihr Hash ist, desto weniger Kollisionen haben

Verschleierung in der Kryptographie ist das Codieren der Eingangsdaten Vor es gehasht oder verschlüsselt.

Das macht Brute-Force-Angriffe weniger machbar, da es schwieriger wird, die richtige unverschlüsselt zu bestimmen.

Dies ist, wie ich schon immer es sieht.

  • Hashing ableitet einen Wert von eine andere, unter Verwendung eines Satz Algorithmus. Je nach algo verwendet wird, kann dies eine Möglichkeit sein, möglicherweise nicht.

  • Verschleierung macht etwas härter durch das Symbol zu lesen Ersatz.

  • Die Verschlüsselung ist wie Hashing, mit Ausnahme der Wert auf einen anderen Wert, den Sie den Algorithmus liefern abhängig ist.

Das ist keine schlechte High-Level-Beschreibung. Hier sind einige zusätzliche Überlegungen:

Hashing reduziert typischerweise eine große Menge von Daten zu einer viel geringeren Größe. Dies ist nützlich für den Inhalt einer Datei zu überprüfen, ohne zwei Kopien zu haben, die zum Beispiel vergleichen.

Verschlüsselung beinhaltet einige geheime Daten und die Sicherheit des geheimen Daten zu speichern, hängt von einer separaten „Schlüssel“ zum Schutz vor den bösen Jungs zu halten.

Obfuscation wird einige Informationen ohne einen separaten Schlüssel versteckt (oder mit einem festen Schlüssel). In diesem Fall ist ein Geheimnis, das Verfahren zu halten, wie Sie die Daten sicher zu halten.

Von diesem können Sie sehen, wie ein Hash-Algorithmus für digitale Signaturen und Inhaltsvalidierung nützlich sein könnte, wie Verschlüsselung verwendet wird Ihre Dateien und Netzwerkverbindungen zu sichern, und warum Verschleierung für Digital Rights Management verwendet wird.

Eine kurze Antwort:

Hashing - ein Prüffeld auf einige Daten zu erstellen (zu erkennen, wenn Daten geändert wird). Dies ist eine Einweg-Funktion, und die ursprünglichen Daten nicht aus dem Hash abgeleitet werden. Typische Standards hierfür sind SHA-1, SHA256 etc.

Obfuscation - ändern Sie Ihre Daten / Code sonst jemand (kein wirklicher Schutz) zu verwechseln. Dies kann oder kann nicht einen Teil der ursprünglichen Daten verloren. Es gibt keine wirklichen Standards für diese.

Verschlüsselung - mit einem Schlüssel Daten zu transformieren, so dass nur mit dem richtigen Schlüssel diejenigen es verstehen können. Die verschlüsselten Daten können die ursprünglichen Daten zu erhalten, entschlüsselt werden. Typische Standards sind DES, TDES, AES, RSA, etc.

All in Ordnung, außer Verschleierung der Verschlüsselung nicht wirklich ähnlich ist -. Manchmal ist es gar nicht so einfach, wie Chiffren ROT13 beinhaltet

  • Hashing ist eine unidirektionale Aufgabe, einen Wert von einem anderen zu schaffen. Der Algorithmus sollte versuchen, einen Wert zu schaffen, die so kurz und so einzigartig wie möglich ist.

  • Verschleierung macht etwas unleserlich ohne Semantik zu ändern. Es geht um Werttransformation, das Entfernen Leerzeichen, usw. Einige Formen der Verschleierung kann auch ein Weg sein, so ist es unmöglich, den Startwert

  • bekommen
  • Verschlüsselung ist Zwei-Wege, und es gibt immer einige Entschlüsselung in die andere Richtung arbeitet rund um.

Also, ja, Sie sind meist richtig.

Obfuscation versteckt oder macht etwas schwerer zu verstehen.

Hashing nimmt einen Eingang, läuft es durch eine Funktion und erzeugt eine Ausgabe, die einen Verweis auf die eingegeben werden können. Es ist nicht unbedingt einzigartig, eine Funktion kann die gleiche Leistung für verschiedene Eingänge erzeugen.

Verschlüsselung wandelt die Eingabe in eine Ausgabe in einer einzigartigen Weise. Es gibt eine Eins-zu-Eins-Korrelation, so dass kein möglicher Datenverlust oder Verwirrung ist -. Der Ausgang immer ohne Zweideutigkeit auf den Eingang umgewandelt werden kann

Die Verschleierung ist nur etwas zu machen schwerer zu verstehen Techniken von intruducing jemanden zu verwirren. Code obfuscators tut dies in der Regel durch Dinge Umbenennung alles entfernen sinnvoll von Variablen oder Methodennamen. Es ist nicht ähnlich, dass nichts Verschlüsselung entschlüsselt werden verwendet werden.

Typischerweise ist der Unterschied zwischen Hashing und Verschlüsselung, die im allgemeinen nur Hashing eine Formel verwendet, die Daten in einer anderen Form zu übersetzen, wo die Verschlüsselung eine Formel verwendet erfordern Taste (n) zu verschlüsseln / entschlüsseln. Beispiele würden ist, um einen Hash-Algorithmus Base-64-Codierung sein, wo MD5-Algorithmus eine Verschlüsselung ist. Jeder kann Base64-codierten Daten unhash, aber Sie können nicht md5 verschlüsselte Daten ohne Schlüssel entschlüsseln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top