MCSoft Security Solutions
 
MCSoft MCCrypt Pro
 
 
 Produkt Download
 Demo Download
 Kontaktieren Sie uns

Algorithmen

Überblick

Algorithmus Blockgröße Schlüssellänge Ciphermode Anmerkung
Rijndael 16-32 Byte 128-256 Bit* ECB,CBC,CFB,OFB,CTR,CCM,OCB**,COA Keysetup
RC6** 16 Byte 128-256 Bit* ECB,CBC,CFB,OFB,CTR,CCM,OCB**,COA Keysetup
Serpent 16 Byte 128-256 Bit* ECB,CBC,CFB,OFB,CTR,CCM,OCB**,COA Keysetup
Twofish 16 Byte 128-256 Bit* ECB,CBC,CFB,OFB,CTR,CCM,OCB**,COA Keysetup
Blowfish 8 Byte 8-448 Bit ECB,CBC,CFB,OFB,CTR,CCM Keysetup
XORBlock 16-52 Byte 8-2048 Bit ECB,CBC,CFB,OFB Keysetup
XORStream - 8-2048 Bit (stream) Keysetup
* genauere Informationen zur Schlüssellänge auf Anfrage.
** siehe Optionsvergleichstabelle

Tabelle 1: Algorithmen implementiert in MCCrypt Pro

In vielen Anwendungen ist es nicht mehr sinnvoll den Data Encryption Standard (DES) zu verwenden. Der Grund dafür ist die zu geringe Schlüssellänge von 56 Bit. Mit DES verschlüsselte Daten sind nicht mehr sicher. Das Problem der Schlüssellänge wurde von Tripel DES (3DES) gelöst, jedoch wurde DES primär für Hardware Verschlüsselung entwickelt wodurch der Algorithmus in der Software Implementierung relativ ineffizient ist. Zusätzlich ist Triple DES durch die dreifache Anwendung von DES ein überaus langsames Verschlüsselungsverfahren. Die von DES (und einigen anderen bekannten Algorithmen) verwendete 64 Bit Blocklänge ermöglicht zusätzliche Attacken, wenn größere Datenmengen verschlüsselt werden.
Deshalb wurde vom U.S. National Institute of Standards and Technology (NIST) ein Nachfolge Algorithmus gesucht, der Advanced Encryption Standard (AES) genannt wurde. Die Anforderungen waren, dass AES schneller und mindestens gleich sicher wie Triple DES sein sollte. AES sollte 128 Bit (16 Byte) Blöcke verarbeiten und eine Schlüssellänge von 256 Bit aufweisen (wobei 128 Bit und 192 Bit ebenfalls unterstützt werden müssen). Zu den Finalisten des AES Auswahlprozesses zählen Rijndael, Serpent, Twofish, RC6 und MARS. Rijndael wurde vom NIST nach einer sorgfältigen Überprüfung des Algorithmus zum AES ausgewählt. Rijndael wird in den nächsten Jahren den DES - später Triple DES - in vielen kryptographischen Anwendungen ersetzen.

In MCCrypt Pro ist unter anderen der Rijndael Algorithmus implementiert.

MCCrypt Pro bietet noch andere Algorithmen die ebenfalls mit der Sicherheit von Rijndael konform gehen (Ausnahme Serpent, XOR...). Serpent übertrifft die Sicherheit von Rijndael ist aber langsamer und deshalb hat er von der NIST im AES Auswahlverfahren nur Platz 2 bekommen. Serpent wurde für AES mit einer Blockgröße von 16 Byte (128 Bit) und einer Schlüssellänge von 128 bis 256 Bit implementiert. RC6 ist der schnellste Algorithmus und ist in der Implementierung für die AES Auswahl etwas schwächer als Rijndael.

Die AES Kandidaten die in MCCrypt Pro implementiert sind und die die letzte Auswahlrunde erreichten waren Rijndael, Serpent, Twofish, RC6. Algorithmen die es bis dorthin geschafft haben gelten als sicher, d.h. es wurden keine Schwachstellen gefunden und es gibt derzeit keine Attacken, die auf diese Algorithmen anwendbar sind, die effektiver sind als eine Bruthforce Attacke um sie zu brechen. Alle AES Algorithmen sind für Schlüssellängen von 128 bis 256 Bit definiert worden. Twofish übertrifft die Sicherheit von Rijndael zeitweise (kürzere Schlüssellängen als 256 Bit) und erreichte beim AES Auswahlprozess Platz 3.

Es gibt auch keine bekannten Attacken gegen Blowfish, dieser wurde aber nicht AES Kandidat, da unter anderem eine Blockgröße von nur 8 Byte verwendet, was als zu wenig gilt, wenn man große Mengen an Daten verschlüsselt. Die Sicherheit von Blowfish wird nicht offiziell mit AES verglichen. Blowfish hat einen hohen Sicherheitslevel und wurde ebenfalls als Ersatz für DES verwendet. Blowfish erreicht jedoch nicht den Sicherheitslevel von den fünf AES Finalisten kann aber mit den anderen AES Kandidaten verglichen werden. (AES Kandidat wurde sein Nachfolger Twofish)

Die XOR Algorithmen sind bei kurzen Schlüssellängen schwach. Die Stärke der Algorithmen kann jedoch bei XORBlock mit zwei Parametern eingestellt werden: InternalRounds und ExternalRounds, bei XORStream gibt es einen Parameter, die InternalRounds. Es empfiehlt sich bei diesen wenigsten den Wert 4 einzustellen. Die Sicherheit dieser Algorithmen wurde noch nicht untersucht. Es wird sinnvoll sein die Schlüssellänge zu maximieren, um einen annehmbaren Sicherheitslevel zu erhalten.

 

Spezifische Information zu den einzelnen kryptographischen Algorithmen

Rijndael  
Einwickelt von: Joan Daemen, Vincent Rijmen (Banksys/Katholieke Universiteit Leuven, Belgium)
Beschreibung:

Für AES wurde Rijndael als ein 10 bis 14 Runden iterativer Cipher definiert. Die Rundentransformation in Rijndael hat nicht die Feistel Struktur. Statt dessen setzt sich die Rundentransformation aus drei eindeutig invertierbaren Transformationen (Layer der linearen Vertauschungen, nicht-linearer Layer und Schlüssel Additionslayer) zusammen. Dies soll die Resistenz gegen lineare und differentielle Kryptoanalyse erhöhen. Jede Runde wendet vier Funktionen an:

• Byte Substitution mit S-Box Werte: Nichtliniarität
• Reihen Verschiebung: Inter-Spalten-Diffusion
• Spalten Vertauschung: Inter-Byte-Diffusion mit Spalten
• Hinzufügen des Rundenschlüssels

Zusätzlich wird eine anfängliche und abschließende Schlüssel Addition angewendet. Rijndael wurde aus dem SQUARE cipher entwickelt.

Cipher Mode: ECB,CBC,CFB,OFB,CTR,CCM,OCB**,COA
Blocksize: 16, 24 und 32 Byte
KeySize: 16, 24, 32 Byte (entspricht 128 bis 256 Bit)*
Homepage: http://csrc.nist.gov/archive/aes/rijndael/


Serpent  
Entwickelt von: Ross Anderson (Cambridge, UK), Eli Biham (Technion, Israel), Lars Knudsen (U. Bergen, Norway)
Beschreibung: Serpent ist ein 32-Runden Feistel Cipher, wobei in jeder Runde der Schlüssel Mithilfe von XOR und Rotationen vermixt, weiters 8 schlüsselabhängige 4-bit S-Boxen substituiert, und eine lineare Transformation angewendet wird.
Ursprünglich stammt Serpent (Serpent-0) von DES ab. Das Design wurde danach überarbeitet um den Algorithmus zu stärken und um die Leistungsfähigkeit zu erhöhen. Es wurden stärkere S-Boxen implementiert, sowie die Key-Schedule wurde leicht verändert. Damit sollte die Resistenz gegen lineare und differentielle Kryptoanalyse erhöhen werden. Serpent verwendet stückweise Bitoperationen (bitslice operations) für die effiziente Blockverschlüsselung.
Serpent verschlüsselt 128 Bit Blöcke in 32 Runden unter der Verwendung von 33 128 Bit Subschlüssel, wobei die Schlüssellänge für den Benutzer variabel ist (im AES Auswahlverfahren fixiert zu 128, 192 und 256 Bit). Kurze Schlüssellängen werden im Key-Scheduler auf 256 Bit aufgestockt. Serpent verwendet am Anfang und Ende der Verschlüsselungsoperation eine Permutationsfunktion (Whitening).
Cipher Mode: ECB,CBC,CFB,OFB,CTR,CCM,OCB**,COA
Blocksize: 16 Byte
KeySize: 16, 24, 32 Byte (entspricht 128 bis 256 Bit)*
Homepage: http://www.cl.cam.ac.uk/~rja14/serpent.html


Twofish  
Entwickelt von: Bruce Schneier, Kelsey, Whiting, Wagner, Hall, Ferguson (Counterpane Systems, USA)
Beschreibung:

Twofish ist ein 16-Runden Feistel Cipher mit zusätzlichen Whitening des Dateninputs und Outputs. Whitening bezeichnet das XORing des Schlüsselmaterials vor der ersten Runde und nach der letzten Runde und erhöht substanziell die Sicherheit vor Attacken durch Schlüsselsuche im Algorithmus. Twofish verwendet in den einzelnen Runden Rotationen und 4 schlüsselabhängige 8-bit S-boxen, gefolgt von einem linearen Vertauschungsfunktion basierend auf einer Maximum Distance Separable (MDS) Matrix, kombiniert durch die Pseudo-Hadamard Transformation unter hinzufügen von zwei Schlüsselwörtern. Resultate der Funktion werden mit XOR verknüpft.
Ein Teil von Twofish basiert auf Blowfish.

Cipher Mode: ECB,CBC,CFB,OFB,CTR,CCM,OCB**,COA
Blocksize: 16 Byte
KeySize: 16, 24, 32 Byte (entspricht 128 bis 256 Bit)*
Homepage: http://www.schneier.com/twofish.html


RC6**  
Entwickelt von: Ron Rivest, Robshaw, Sidney, Yin (RSA Labs/MIT, USA)
Beschreibung: Für AES wurde RC6 als ein 20-Runden (encryption Depth 3) iterativer Cipher definiert, ist eine Weiterentwickelung von RC5 (und voll parametrisiert), der sechs grundlegende 32-bit Operationen verwendet um die Daten in jeder Runde zu mixen. Diese Operationen sind Addition, Subtraktion, bitweises XOR, Integer Multiplikationen sowie links und rechts Rotationen von 32 Bit Wörtern.
Cipher Mode: ECB,CBC,CFB,OFB,CTR,CCM,OCB**,COA
Blocksize: 16 Byte
KeySize: 16, 24, 32 Byte (entspricht 128 bis 256 Bit)*
Depth: Gibt die Verschlüsselungstiefe an. Für AES wurde eine Tiefe von 3 definiert, dies entspricht 20 Verschlüsselungsrunden. Die Tiefe kann stufenlos von 3 bis 64 verstellt werden.
Homepage: http://www.rsasecurity.com/rsalabs/rc6/

 

Blowfish  
Entwickelt von: B. Schneier, 1994
Beschreibung: Ein 64 bit Block, 16 Runden Feistel Blockcipher mit einer variablen Schlüssellänge. Dieser ist optimiert für Datenverschlüsselung bei der es keines Schlüsselwechsels bedarf, da der Schlüsselwechsel langsam ist. Blowfish verwendet vier sehr große 8* 32 bit Zufallssubstitutionstabellen die aus dem gewählten Schlüssel generiert werden. Jede Runde besteht aus einer schlüsselabhängigen Permutation und einer schlüssel- und datenabhängigen Substitution. Der Output wird durch Additionen und XOR Operationen verarbeitet. Blowfish verwendet eine große Anzahl von Subschlüsseln (4168 Bytes)
In Blowfish können Schlüssel zur Generierung von schwachen S-Boxen führen, dies kann in einer reduzierten Runden Version zu Attacken führen. Jedoch ist diese Attacke komplett ineffizient in der definierten 16 Runden Version. Dadurch sind bislang keine erfolgreichen Attacken auf Blowfish bekannt.
Cipher Mode: ECB,CBC,CFB,OFB,CTR,CCM
Blocksize: 8 Byte
KeySize: Aktuelle Passwortlänge bis maximal 448 Bit.
Homepage: http://www.schneier.com/blowfish.html


XORBlock  
Cipher Mode: ECB,CBC,CFB,OFB
Blocksize: 16, 20, 24, 28, 32, 36, 40, 44, 48 und 52 Byte
KeySize: Aktuelle Passwortlänge bis maximal 2048 Bit.
ExternalRounds: 3 bis 64 Runden
InternalRounds: 3 bis 64 Runden


XORStream  
Cipher Mode: Cipher Mode nur bei Blockcipher.
KeySize: Aktuelle Passwortlänge bis maximal 2048 Bit.
InternalRounds: 3 bis 64 Runden

 

 


Verwandte Themen:

MCCrypt Lite Algorithmen
MCCrypt ActiveX DLL Algorithmen
MCCipher ActiveX DLL Algorithmen
MCRijndael ActiveX DLL Algorithmen
MCCrypt Lite
MCWipe
MCSign
MCVerify