TRDES 0.9 - Data Encryption & Decryption (C)1994 by Thorsten Reinecke, Buchenweg 14, 31559 Haste, GERMANY HINWEISE UND BERMERKUNGEN: DES steht für Data Encryption Standard. Er wurde 1977 vom National Bureau of Standards (NBS) in den USA zur Verwendung für "unclassified computer data" genormt. Ich habe mich in diesem Programm weitgehend nach diesem Standard gerichtet, wobei ich vorsichtshalber auf folgendes hinweise: 1. Die Sicherheit des Verfahrens kann nicht garantiert werden. Mit hohem technischen Aufwand ist das Vefahren für Experten sicherlich zu knacken. Die Schlüssellänge ist mit effektiven 56 Bits dem massiven Einsatz schneller Hardware möglicherweise nicht gewachsen. Da durch die Standardisierung jedem das interne Design des Verfahrens offenliegt, könnten Experten vielleicht ein "Entschlüsselungsprogramm" entwickeln, welches die verschlüsselten Daten auch ohne Kenntnis des Schlüssels entschlüsseln kann. Doch diese Gefahr ist eigentlich bei jedem Verfahren gegeben. 2. Es kann nicht garantiert werden, daß TRDES korrekt nach dem DES-Standard arbeitet. Möglicherweise haben sich Programmier-, Übertragungsfehler oder andere Bugs eingeschlichen. Das Programm wurde nicht durch irgendwelche formalen Kor- rektheitsbeweise auf seine Korrektheit verifiziert. Das Programm wurde auch nicht primär für den konkreten oder gar professio- nellen Einsatz entwickelt (hierfür gibt es spezielle Hardware, die wesent- lich schneller ist), sondern um das Design des DES-Vefahrens kennenzulernen und zu untersuchen. Nun zu den zwei internen Modi des Programms: Auch sie sind genormt. Das ECB-Verfahren (Electronic Code Book) arbeitet streng monoalphabetisch, d.h. in diesem Fall: Gleiche 8-Byte-Blöcke der Origi- naldaten werden auch in gleiche 8-Byte-Blöcke verschlüsselt. Es besteht daher die Gefahr, daß charakteristische Blockwiederholungen in den verschlüsselten Daten Rückschlüsse auf die Daten selbst liefern. Dies wiederum vereinfacht die Entschlüsselung enorm. Das CBC-Verfahren ist in dieser Hinsicht sicherer, weil auch die Blöcke unter- einander zur Verschlüsselung herangezogen werden. Nachteil dieses Verfahrens ist die Anfälligkeit für Übertragungsfehler der Daten. Ein falsches Bit in den verschlüsselten Daten pflanzt sich bei der Entschlüsselung immer weiter fort, so daß auch bei Kenntnis des richtigen Schlüssels eine Entschlüsselung völlig veränderte Daten liefert (ab der Stelle des fehlerhaften Bits). Das ECB-Verfah- ren würde hingegen nur den fehlerhaften Block falsch entschlüsseln. Zur Länge und Beschaffenheit der Schlüssel Jeder Buchstabe wird in 4 Bits umgewandelt. Das Verfahren benötigt 64 Bits pro Schlüssel, d.h. 16 signifikante Buchstaben. Bei kürzeren Schlüsseln werden die verbleibenden Bits mit Nullen aufgefüllt; längere Schlüssel werden ab dem 16. Buchstaben abgeschnitten, bringen also keine weitere Sicherheit. Für den ernsthaften Gebrauch wären also 16 Buchstaben erforderlich. Außerdem sollten dann auch keine naheliegenden Schlüssel verwendet werden. Der erste Angriff auf die verschlüsselten Daten erfolgt meist durch Raten des Schlüssels mit anschließender Überprüfung der damit "entschlüsselten" Daten. Solche Angriffe können automatisiert werden, indem man Wörterbücher oder Dateien mit vermuteten Schlüsselwörtern durchtestet. Die Sicherheit des DES-Vefahrens liegt ja gerade darin, daß 2 hoch 56 verschie- dene mögliche Schlüsselwörter existieren und nicht nur die wenigen tausend sinnvollen Buchstabenkombinationen, die die Wörter einer natürlichen Sprache bilden. OK. - Das wärs. Usage: TRDES [<-sw>...<-sw>] [ ] commands: e : encrypt (verschlüsseln) | d : decrypt (entschlüsseln) | i : Information switches: -k: : use as keyword (up to 16 letters) -286 : use 80186/80286 Code -386 : use 80386 Code -486 : use 80486 Code -cbc : use Cipher Block Chaining without a second key -cbc: : use CBC with given key as first block -drive: : encrypt/decrypt whole drive (be carefull!) if no -k switch given: you are asked for key if no CPU switch given: program autodectects CPU You may copy or distribute TRDES free of charge. You may use TRDES at your own risk. The author disclaims any warranty. For further information call author.