Was sind übliche Base64-Verschlüsselungsstrategien?

Während die Base64-Codierung nicht die Absicht zum Verschlüsseln hat, ist es nicht weit hergeholt zu glauben, dass der Codierungsprozess in irgendeiner Weise gemildert werden könnte, um etwas zu erstellen eine Verschlüsselung. Sicherlich bin ich nicht der erste, der an einen solchen Verschlüsselungsversuch mit Base64-Codierung denkt. Daher möchte ich fragen, welche Arten von Base64-Verschlüsselungsstrategien bekannt sind.

Kommentare

  • Wie eine 6-Bit-Stream-Verschlüsselung?
  • Im Allgemeinen erfolgt die Verschlüsselung, bevor die Daten über Base64 ausgeführt werden.
  • Ich ‚ habe zuvor verwendete Base64-Verschlüsselungsschemata gesehen, aber alle können trivial sein Diese Frage ist sinnvoll, da möglicherweise nach solchen Algorithmen gesucht wird. Der gesunde Menschenverstand bedeutet jedoch wahrscheinlich, dass base64 nicht als Chiffre gedacht ist und das Ergebnis einer Verwechslung von Codierung und Verschlüsselung ist. Beachten Sie, dass viele von uns davon ausgehen werden dass die Prämisse dieser Frage falsch ist: dass ein Codierungsschema für die Verschlüsselung verwendet werden kann. Dies könnte zu Abstimmungen führen, selbst wenn die Frage für viele Startkryptographen mindestens interessant ist.
  • Vielleicht tangential relevant: crypto.stackexchange.com/questions/62425/… , crypto.stackexchange.com/questions/5862/… und crypto.stackexchange. com / question / 45215 / …

Antwort

Dies stammt aus dem Wiki-Eintrag für Base64:

base64-Beispiel

Wenn Sie wirklich Um die Base64-Codierung zu manipulieren, um die Verschlüsselung bereitzustellen, kann dies auf der oben hervorgehobenen Indexebene erfolgen. Sie benötigen einen geheimen Schlüssel, eine Schlüsselableitungsfunktion , die darauf zugeschnitten ist, einen Startwert mit hoher Entropie zu erstellen, der dann einen Pseudozufallszahlengenerator startet. Die Ausgabe des Generators (6 Bit) wird dann mit dem Index XOR-verknüpft, um die Codierung für jedes Zeichen zu ändern. Diese Technik kann umgekehrt werden, um die verschlüsselte Nachricht zu entschlüsseln.

Sie sehen, dass alles ist ein bisschen nervig. Traditionell würden Sie den Chiffretext erstellen und dann codieren. Abgesehen vom Zuschneiden einer typischen 8-Bit-Zufallssequenz auf 6 Bit ist die Arbeitslast identisch mit der herkömmlichen Stream-Chiffre . Eigentlich benötigen Sie 33% zusätzliche Berechnungen, aber das ist weder hier noch da.

Sie könnten der erste sein, der an diese Base64-Variante gedacht hat, da niemand ein ähnliches Verhalten zu bemerken scheint. Dies sollte jedoch funktionieren.

Kommentare

  • Vielen Dank für diesen interessanten Vorschlag! Eigentlich hatte ich einfache Dinge im Sinn, wie das Permutieren der 6-Bit-Buchstabentabellenzuordnung. Oder Sie führen einen Schlüssel ein und führen eine bitweise xor-Operation für jeden Buchstaben durch, der durch den Schlüssel läuft, oder ähnliches.
  • @Kagaratsch Nun, ich denke, wir ‚ denken über Ähnliches nach Linien. Um ‚ zu permutieren, benötigen Sie PRNG-Funktionen und um einen Schlüssel mit einem PRNG zu verknüpfen, benötigen Sie ‚ ansonsten eine Art Schlüsselableitungsfunktion ‚ ist eine Nichtübereinstimmung zwischen dem Schlüsselformat und dem Format / Status, das zum Betreiben des PRNG erforderlich ist. Wenn Sie einfach ohne Schlüssel permutieren oder den Zyklus Ihres Schlüsselzeichens verwenden, ist das Schema ‚ nicht sehr sicher und dies ist schließlich crypto.SE 🙂
  • @PaulUszak Dieser technische Name ist tatsächlich ziemlich offensichtlich, sobald Sie ihn kennen … ‚ heißt einfach “ XOR-Verschlüsselung „. 😉 Beachten Sie jedoch, dass die Frequenzanalyse es trivial brechen wird. Gleiches gilt für bekannte Klartextangriffe. Oh, und um in Bezug auf die technische Benennung vollständig zu sein: Wenn Sie ein Prng einwerfen, verwandelt sich eine solche “ XOR-Chiffre “ in eine “ Stream-Verschlüsselung „. Aber Sie wussten wahrscheinlich schon, dass Sie nicht ‚?
  • @PaulUszak Nicht sicher sind, warum Sie “ nein sagen „. Sie können auch sicher sein, dass ich weiß, was “ Radfahren “ bedeutet. Eine XOR-Verschlüsselung durchläuft denselben Schlüssel immer wieder und in derselben Reihenfolge, wie Sie es beschreiben. Überprüfen Sie das “ Beispiel “ dieses Wiki-Links. es stimmt zu 100% mit Ihren Beschreibungen überein… a bitwise xor operation on each letter cycling through the key und Cycling round through the key means that the plain text will be XORed with the same sequence over and over, and in the same order. – das ‚ heißt “ XOR-Verschlüsselung „. Kein Fehler oder Sprachlücke da.
  • Jede Art und Weise, wie Sie base64 wie diese optimieren, kann berücksichtigt werden, indem (a) eine Verschlüsselung für Byte-Zeichenfolgen definiert wird und (b) Standard-base64 auf die Ausgabe angewendet wird, wobei Chiffretext-Byte-Zeichenfolgen einfachem Text zugeordnet werden. ‚ macht das Zusammenführen von (a) und (b) keinen Sinn – es bietet keine Sicherheit und erschwert unnötig die Beschreibung sowohl der zugrunde liegenden Chiffre als auch der implizierten Standardbasis64.

Antwort

Dies ist nicht sinnvoll. In base64 gibt es keinen geheimen Schlüssel: Base64-Codierung und -Decodierung sind öffentliche Funktionen, die jeder auswerten kann.

Base64 hängt nur mit Kryptografie zusammen, da es praktisch ist, Chiffretext aus einem Kryptosystem zu codieren gleichmäßig in 8-Bit-Zeichenfolgen verteilt, in einem begrenzten Satz von US-ASCII, die in Kontexten, die auf einfachen Text beschränkt sind, wie z. B. XML, nicht munged oder abgelehnt werden.

Kommentare

  • +1 (… und base64 erzeugt kürzere Ausgaben als Hex-Codierung, weshalb es entwickelt wurde und häufig in Anwendungen verwendet wird.)
  • Es macht den Meister Sinn 🙂 Die Frage wurde als hypothetisch gestellt und das OP sucht nach Umsetzungsmöglichkeiten. Es gibt ‚ kein Naturgesetz, das vorschreibt, dass jede Verschlüsselung sehr effizient sein muss. Es muss nur verschlüsselt / entschlüsselt werden. Wissen Sie, dass die Leute immer noch Dampfmaschinen bauen und sehr stolz auf sie sind?
  • @PaulUszak ‚ macht als base64, eine öffentliche Transformation, keinen Sinn zwischen zwei äquivalenten Darstellungen von Daten befindet sich ein anderer Objekttyp als ein Verschlüsselungsschema, das Geheimnisse beinhaltet, die einem Gegner nicht bekannt sind. Jede Art und Weise, wie Sie die Schnittstelle und die Interna von base64 ändern, um eine Art Schlüssel und Verschlüsselung darin zu platzieren, kann in die Standardtransformationstransformation von base64 und eine zugrunde liegende Verschlüsselung einbezogen werden, deren Sicherheit für den base64-Teil irrelevant ist. Wenn Sie eine dampfbetriebene Enigma-Maschine hergestellt haben, würden Sie sagen, dass Sie das Konzept der Dampfkraft in ein Verschlüsselungsschema geändert haben?
  • @SqueamishOssifrage Ja.

Antwort

Die goldene Regel der Kryptographie sollte lauten: „Nicht weil Sie den Text nicht lesen können, wird dieser verschlüsselt“. Base64 ist nicht für die Erstellung von Chiffretext vorgesehen und sollte auch nicht für diesen Zweck verwendet werden.

Verschlüsselungsmethoden basieren immer auf einem Geheimnis oder Artefakten, die sicherstellen, dass nur die Akteure der Kommunikation das umkehren können Geheimtext. Wenn dies nicht der Fall ist, wie bei Base64, handelt es sich nicht um eine Verschlüsselung.

Base64 soll Binärdateien als Text mit verschiedenen Vorteilen gegenüber anderen Codierungsschemata codieren. Datenschutz gehört nicht zu diesen Vorteilen.

Antwort

Ja, es besteht ein Interesse an der Verschlüsselung der Upstream-Basis64: Es ist die Wirtschaft Wenn wir Daten verschlüsseln und dann verschlüsseln, müssen wir mindestens zwei Schleifen erstellen: eine zur Verschlüsselung der Daten und eine zur Kodierung der generierten Daten. Durch die Verschlüsselung im Upstream können wir uns auf eine Schleife reduzieren und daher Erzielen Sie eine signifikante Leistung.

@ e-sushi: In der Tat gibt es nicht viele Beispiele außer diesem, das nur eine Schleife verwendet: php_base64encrypted

Es gibt wahrscheinlich andere Möglichkeiten, es besser zu machen, aber es beweist, dass es möglich ist …

Bearbeiten: Entschuldigung, ich bin mit dieser Site nicht sehr vertraut.

Kommentare

  • Können Sie ein Beispiel (Link zu Papier oder etwas anderem) für ein solches „Interesse an der Verschlüsselung von Upstream Base64“ angeben? Ich habe versucht, mit meiner bevorzugten Suchmaschine weitere Informationen zu finden , aber irgendwie habe ich versagt. Ein Zeiger wäre daher viel ca. eciated.
  • Base64-Codierung ist ein streambarer Prozess (d. h. Damit kann ein Datenstrom inkrementell codiert werden, wenn er ‚ generiert wird, ohne dass er zuerst alle Daten lesen muss. Somit wäre es durchaus möglich, dass ein herkömmliches Verschlüsselungsschema seine Ausgabe in einen inkrementellen Base64-Codierer einspeist, ohne dass “ mindestens zwei Schleifen “ über die Daten. Der einzige Grund, warum dies nicht ‚ häufiger vorkommt, ist wahrscheinlich die Tatsache, dass es für Datenströme, die lang genug sind, um dies nützlich zu machen, ‚ Es ist normalerweise viel effizienter, die Base64-Codierung vollständig zu überspringen und sie einfach als binäre Rohdaten zu übertragen und / oder zu speichern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.