Frage

Kann jemand einen schnellen 2-Wege-Verschlüsselungsalgorithmus für lange Ints vorschlagen?

Meine Kandidaten sind:

  • AES:. Der Advanced Encryption Standard spezifiziert durch NIST FIPS-197
  • Blowfish. Der Blowfish-Algorithmus definiert von Bruce Schneier
  • DIE: der Data Encryption Standard-Algorithmus definiert durch NIST FIPS-46-3
  • .
  • DeSede: Der "Triple DES" Algorithmus definiert durch NIST FIPS-46-3.

Bearbeiten -

Geschwindigkeit mehr einen Faktor als Sicherheit. Die tatsächliche Anforderung war zu „verschleiern“ ids über interne Web-Services weitergegeben werden so in dem Fall, dass ein ID jemals ausgesetzt ist man nicht andere ids durch Zugabe von 1 (ein Argument für UUID Schlüssel über Autoinkrement longs ??) erraten konnte

War es hilfreich?

Lösung

Mit AES. Geschwindigkeit war ein wichtiger Aspekt bei der Auswahl DeSede zu ersetzen. Auf moderne PC-Hardware, neigt sie schneller als Blowfish zu sein, und als Standard, ist es wahrscheinlicher, spezialisierte Hardware-Unterstützung haben.

übrigens, alle Chiffren Strom von Bytes lang jeder Integer-Verschlüsselung ist eine ganze Zahl, dargestellt in der Basis-256.

Andere Tipps

  

Ich brauche nicht einen öffentlichen Schlüssel. Die Anforderung ist ids in einer Datenbank zu verschlüsseln, wie sie zwischen den Maschinen übergeben. Beide Maschinen werden das Salz haben

Dann XOR?

Was ist Ihr Hauptkriterium für die Auswahl? Geschwindigkeit oder Sicherheit? Das ist der grundlegende Kompromiss in dem Kryptographie-Geschäft. Hier ist eine Reihe von Benchmark-Ergebnisse für Crypto ++ . Sie werden Ihnen nicht alles sagen, aber Sie werden in der Lage zu sagen, welche Algorithmen sind in der Regel schneller als andere. Hier ist ein White Paper die relativen Stärken von einigen populären Algorithmen diskutieren . Stärke Bestimmung ist eine sehr harte Sache im allgemeinen Fall zu tun, obwohl es einige Algorithmen genug Aufmerksamkeit, die ihre Stärken und Schwächen sind recht gut bekannt (DES, RSA, etc.) gegeben worden. Eine herkömmliche Daumenregel ist, dass längere Schlüssel größere Stärken bedeuten, aber du musst damit sehr vorsichtig sein. Ich vermute, dass in Ihrem Fall entweder AES oder Blowfish in Ordnung sein wird. AES wird wahrscheinlich etwas mehr wird weitgehend unterstützt, aber wirklich - entweder würde wahrscheinlich tun. Halten Sie sich von DES entfernt, es sei denn Geschwindigkeit ein kritischer Faktor ist.

Wenn Sicherheit Ihr Hauptanliegen ist, würde ich mit AES gehen.

Allerdings kann der verschlüsselte Text für Ihre Datenbank zu groß sein. Wenn Sie IV, padding hinzufügen, ist es 64 Zeichen in Hex zumindest. Sie können den Algorithmus verwende ich hier gepostet, wenn Sie in eine solche Grenze lief,

einfache symmetrische Verschlüsselung von lang String (und zurück) in Java

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