Software-Verschlüsselung für den Datenschutz:

Erst die zerstörte Struktur bietet Schutz

19.10.1977

Die Notwendigkeit, gespeicherte Daten in EDV-Systemen gegen unbefugte Verwendung zu sichern, führte in der Bundesrepublik zum Datenschutzgesetz. Zwar sind Software-Systeme für die Verschlüsselung von Datenbeständen seit Jahren auf dem Markt; doch hat nun das BDSG für Hardware- und Softwareentwickler ein neues Aufgabenfeld eröffnet, in dem bisher keine gemeinsamen Systemlösungen in Sicht sind. Folgende Teillösungen werden bisher angeboten:

-Transportkontrolle und Zugriffskontrolle durch Verschlüsselung der Daten mittels Software.

-Transportkontrolle durch Verschlüsselung der Daten mittels Hardware.

-Zugriffskontrolle durch Rechner-Betriebssysteme.

Codeumwandlung

Wenn man von Verschlüsselung spricht, denkt man häufig zuerst an Codeumwandlung. Bei der Codeumwandlung findet eine. gewöhnliche Substitution des zu verschlüsselnden Klartextes mit Hilfe der Codetabelle statt.

Die Codeumwandlung ist in Software-Programmen leicht zu realisieren. Im IBM System/370 gibt es dafür eigens die Maschineninstruktion TR = Translate. Die Instruktion wird eingesetzt, um die Anpassung der Zentraleinheit an Terminals zu vereinfachen, wenn diese mit unterschiedlichen Codes operieren.

Einzelne Codezeichen können ohne Tabelle nicht ermittelt werden. Erst das Vorhandensein größerer Zeichenmengen erlaubt die Entschlüsselung und Filterung der darin enthaltenen Informationen in relativ kurzer Zeit. Der Grund liegt in der Beibehaltung der Struktur des ursprünglichen Klartextes (Leerstellen, Häufigkeit der Zeichen).

Verschlüsselung mit Pseudo-Zufallszahlen

Eine gute Verschlüsselung muß mehr leisten als die in dem vorhergehenden Kapitel beschriebene Codeumwandlung. In erster Linie dürfen die im Klartext enthaltenen Strukturen nicht im Schlüsseltext enthalten sein. Weiter wird gefordert, daß bei der Softwareverschlüsselung der volle 8-Bit-Code verwendet werden kann.

Die Auflösung der Strukturen bereitet kein Problem, wenn anstelle der starren Codeumwandlung ein Zufallsprozeß für die Umwandlung des Klartextes zugrunde gelegt wird. Dabei werden alle aufeinanderfolgende Zeichen nach einem bestimmten Verfahren stets durch scheinbar neu ermittelte Zeichen ersetzt. Die Zufallsvariablen, mit der die Zeichenumwandlungen durchgeführt werden, liefern sogenannte Pseudo-Zufallszahlengeneratoren. Solche Generatoren bilden, ausgehend von einem Grundschlüssel, stets eine exakt reproduzierbare Zahlenfolge.

Das Prinzip der nun folgenden Verschlüsselungsmethode beruht auf der Addition der Binärwertigkeit aller Zeichen eines Klartextes mit einer Zufallszahlenreihe zu einem Schlüsseltext (Abb. 1).

Die Rückgewinnung oder Entschlüsselung wird entsprechend durch Subtraktion der gleichen Zufallszahlenreihe, vorn Schlüsseltext gewonnen (Abb. 2).

Im Schlüsseltext läßt sich nicht bei der Codeumwandlung erkennen, wo eine Information beginnt, respektive, ob überhaupt eine Information vorhanden ist. Letzteres ist besonders wichtig, wenn eine Transportkontrolle bei der Datenfernübertragung durchgeführt werden soll.

Die Sicherheit dieses Verfahrt wird durch die Periodenlänge des Zufallszahlengenerators und durch die Vielfalt der Grundschlüssel bestimmt. Bei der Implementierung eines Programms zur Verschlüsselung von 8-Bit-Zeichen auf einem IBM System/370, wurde der auf diesen Anlag häufig verwendete Generator mit der folgenden Schreibweise eingesetzt: Z(n) = 7(5) - Z(n)(1) (mod(2(31)-1))

Der Generator erzeugt eine ausgewogene Gleichverteilung, besitzt eis Periodenlänge von 2(31)-2 und kann mit wenigen Befehlen programmiert werden. Für die erste Zufallszahl Z(1) ist Z(0) der Grundschlüssel. 1 <= Z(0) <= (2(31)-1)

Z(0) muß dem Programm vor Beginn einer Verschlüsselungssequenz über einen gesonderten Aufruf mitgeteilt werden:

CALL SETKEY (ZO)

Für die Verschlüsselung bzw. Entschlüsselung wurden in dem Programm spezielle Eingangspunkte definiert:

Verschlüsselung

CALL ENCODE (SATZ, LAENGE)

Entschlüsselung

CALL DECODE (SATZ, LAENGE) SATZ ist die Adresse für den Datenbereich. LAENGE ist ein Vollwort. Es enthält die Anzahl der Zeichen im Satz.

Ergebnis einer Verschlüsselung mit der Routine ENCODE: Grundschlüssel: 4711(10)

71A276965BBF05F0B56E7601DED04090DA3BFAC779BABA04DD8583EB347D8F049539BF0742FA12BF8D3A3895989DB3B4129A49F1BC57E87EF73031CECBCEE316 Das Ergebnis der Routine ENCODE hat, wie hier sichtbar, mit der Codeumwandlung nichts mehr gemeinsam. Besonders anschaulich wird das in der ersten 16stelligen Leerzeile. Während bei der Codeumwandlung 16 EBCDIC-Zeichen "40" oder 16mal "11" für den erdachten Code geschrieben wurden, erzeugte die Routine ENCODE 16 scheinbar beziehungslose Zeichen. Wo läßt sich nun die Softwareverschlüsselung für den Datenschutz im EDV-Betrieb einsetzen und wo nicht? Durchführbar bei: CPU-Zeit: 2,22 sec/1 Mio. Bytes,

Preis: 4 Mark/1 Mio. Bytes.

Der Preisfaktor wurde aus den Angaben mehrerer EDV-Anwender gemittelt.

Auf kleineren Rechnern mit einer weniger komplexen CPU-Architektur wird das Verhältnis Preis/Datenvolumen noch wesentlich ungünstiger sein.

-Speicherung von Daten auf Magnetbändern, Lochkarten und Lochstreifen

-sequentiell organisierten Plattendateien;

-Datenfernübertragung, wenn auf beiden Seiten Intelligenz vorhanden ist, wie bei der Rechner/Rechner-Kopplung.

Bedingt durchführbar bei:direkt organisierten Plattendateien (Schlüsselprobleme).

Nicht durchführbar bei: Rechner/Terminal-Verbindungen. Nicht wirksam bei: -Zerstörung von Daten durch Überschreiben. Die Softwareverschlüsselung bietet nur einen Leseschutz.

Was bedeutet der generelle Einsatz einer Softwareverschlüsselung für die EDV-Abteilung?

-Mehraufwand bei der Systemerstellung und im Testbetrieb.

-Umstellungsaufwand bei existierenden Systemen.

-Umwandlung der in Frage kommenden Dateien.

-Geschätzte Mehrbelastung der CPU von 10% für kommerzielle Batch-Programme. - Verlängerung der Antwortzeiten bei Online-Systemen. Zusätzlicher CPU-Bedarf für Rechner/Rechner-Verbindungen zur Erzeugung und Übertragung von Scheininformationen in den Pausezeiten (d. h., wenn keine Daten übertragen werden sollen), damit Information und Pausen auf dem Übertragungsweg nicht unterschieden werden können.

-Fehleranfälligkeit in den Programmen, wenn die Verschlüsselungsroutinen im Adreßbereich des Anwendungsprogramms liegen und daher durch diese überschrieben werden können.

Kosten

Zur Ermittlung der Kosten wurden mit den beschriebenen Routinen CPU-Messungen durchgeführt und folgende Zahlen ermittelt: CPU-Typ: IBM System/370-168 Multi Processor mit 80 ns Zykluszeit je CPU Wer die Softwareverschlüsselung ernsthaft in Erwägung zieht, muß deshalb den CPU-Bedarf an eigenen Objekten (Datenbestände, CPU-Typ) messen und eine Hochrechnung, z. B. auf Basis des monatlichen Datendurchsatzes, machen.

Ing. Hartmut Bornemann ist in der Abteilung Systemsoftware des Volkswagenwerkes.