Cipher

Status
Nicht offen für weitere Antworten.

dragon456

Mitglied
Hi @ all,

Ich hab mich jetzt länger im Forum umgeschaut und komm einfach nicht mit Cipher klar. Jeder verwendet es anders.
Kann mir mal bitte jemand ein beispiel für eine Cipher verschlüsselung geben.
Am besten AES und was hat des mit den Hashwerten auf sich??

Gruß dragon456
 

wolfgke

Mitglied
Cipher ist nichts anderes als das englische Wort für Verschlüsselungsverfahren.

Beispiele:

- AES/Rijndael (der im Rahmen eines mehrjährigen Wettbewerbes entstandene AES-Standard)
- Serpent (wurde im Rahmen des AES-Wettbewerbes 2. Platz. Gilt als sicherer als AES, ist aber erheblich langsamer. Ich würde trotzdem bevorzugt Serpent gegenüber AES verwenden, aber dies ist mein sehr privater Geschmack - die meisten Programmierer würden auf AES/Rijndael setzen)
- Twofish (wurde im Rahmen des AES-Wettbewerbes 3. Platz; Weiterentwicklung von Blowfish (ein weiterer Cipher))
- Blowfish (aufgrund von Patentfreiheit wurde dieser lange Zeit - auch heute noch - ein Open-Source-Anwendungen verwendet; für Neuentwicklungen würde ich es nicht mehr einsetzen)
- DES (längst geknackt; vor AES war es jedoch sehr verbreitet)
- TEA, XTEA, XXTEA (extrem einfache Cipher, alle 3 haben gewisse Schwächen (die Eigenschaft, dass Microsoft sich dafür entschied TEA fehlerhafterweise als Hash-Funktion zu benutzen, sorgte damals für einen Hack der XBox), sind aufgrund des extrem einfachen Aufbaus dennoch bemerkenswert sicher)
- RC4 bis RC6: alle 3 sind recht sicher (RC4 zumindest dann, wenn man keinen der bekannten schwachen Schlüssel einsetzt). Leider nach meinem Wissen zumindest in den USA mit Patenten behaftet (es fallen daher Lizenzgebühren an) - wie es in Europa aussieht, weiß ich nicht. RC4 wird unter anderem in Skype verwendet

Die bisher genannten Verfahren haben die Eigenschaft, dass der Schlüssel für Ver- und Entschlüsselung gleich ist (symmetrisch). Daneben gibt es auch Verfahren, wo dies nicht der Fall ist (asymmetrisch). Hier sind die Standard-Beispiele
- RSA (Sicherheit basiert darauf, dass es bislang keine schnellen Algorithmen dafür gibt, große Zahlen zu faktorisieren)
und
- ElGamal (Sicherheit basiert darauf, dass es bislang keine schnellen Algorithmen dafür gibt, den diskreten Logarithmus zu berechnen)

Daneben gibt es auch asymmetrische Verfahren, die auf elliptischen Kurven operieren. Sie haben den Vorteil bei gleicher erwarteter Sicherheit mit kürzeren Schlüssellängen auszukommen.
 
G

Guest

Gast
Hi,

das hört sich bis jetzt ja schon recht gut an.
Welche Verschlüsselungsmethode hat denn Platz 1 belegt??

Könntest du mir ein Beispiel mit Serpent geben ??

Wär voll nett.

Danke schon mal im Voraus


Gruß dragon456
 

wolfgke

Mitglied
Rijndael hatte in einer leichten Variante (wenn ich mich nicht täusche ging es hier um Rundenzahl und Schlüssellängen) es auf Platz 1 geschafft und wurde damit zum Sieger von AES (weshalb Rijndael und AES gerne synonym benutzt werden - auch wenn sie nicht ganz identisch sind).

Java-Code zu Serpent gibt es unter http://www.cl.cam.ac.uk/~rja14/serpent.html (der offiziellen Seite).

Wenn Plattformunabhängigkeit keine Rolle spielt, würde ich jedoch eher auf die hochoptimierte Assembler-Variante von Brian Gladman setzen: http://fp.gladman.plus.com/cryptography_technology/serpent/

EDIT: ach ja, bevor du irgendetwas praktisch umsetzt, empfehle ich dir dringend, dir über folgende Begriffe klarzuwerden. Denn praktisch alle Sicherheitslücken bei kryptographischen Verfahren entstehen nicht durch Schwächen der Ciphers, sondern durch fehlerhafte Anwendung:
-Blockchiffre
-Stromchiffre
-Initialisierungsvektor (IV): starker IV, schwacher IV
-ECB (wo ist das Problem? Warum wird er dennoch eingesetzt?),
-Betriebsarten von Blockciphers jenseits von ECB (besonders CBC, CFB, OFB - aber es schadet nicht, weitere zu kennen): auch hier: warum verwendet man sie und wo sind deren Schwächen (Stichworte: Übertragungsfehler, Fehlertoleranz)
- symmetrischer und asymmetrischer Cipher (Public und Private Key)
- sichere Schlüsselübertragung (Public und Private Key vs. Diffie Hellman Key Exchange)

um nur ein paar Stichworte in den Raum zu werfen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben