M. Bäsken

Kodierprogramm


Oft ist es nötig und wünschenswert, Daten - seien es Texte, Bilder oder Programme - vor dem Zugriff anderer zu schützen. Schon in der Antike wurden vor allem für militärische Zwecke verschiedene Datenverschlüsselungsverfahren entwickelt.
Zahlreichen einfachen Verfahren ist aber gemeinsam, daß sie sehr leicht zu "knacken" sind. Wenn z. B. Buchstaben durch andere ersetzt wurden, kann man mit Häufigkeitsanalysen die Daten entschlüsseln (ein solches Entschlüsselungsverfahren
kommt übrigens auch in der Story "Goldkäfer" von E. A. Poe zur Anwendung).
Im abgedruckten Programm wird eine andere Möglichkeit der Datenkodierung benutzt. 

Bild 1: Kodierprogramm von M. Bäsken

Zuerst sind 20 Kodezahlen (zwischen 0 und 255) einzugehen. Dann müssen Anfangs- und Endadresse des zu verschlüsselnden Speicherbereichs eingegeben werden. Dabei ist natürlich zu beachten, daß keine vom KC-BASIC oder vom Betriebssystem benötigen RAM-Bereiche mitverschlüsselt werden. Nun beginnt das eigentliche Kodierverfahren (siehe Zeile 115 bis 160). Die Kodezahlen werden in der eingegebenen Reihenfolge zu den im Speicher stehenden Bytes addiert. Außerdem wird noch das unkodierte (!) Vorgängerbyte (ZA) addiert. Das Addieren erfolgt wie in Maschinenkode (255 + 1 wird 0). Bei der Dekodierung wird analog verfahren, aber statt dessen subtrahiert (Zeile 215 bis 270).
Das Kodierverfahren gewährleistet, daß vor der Kodierung gleiche Bytes nach jener nicht mehr gleich und somit die o. g. Häufigkeitsanalysen ausgeschlossen sind, und damit das Dekodieren zumindest erschwert wird. Das Programm wurde in KC-BASIC geschrieben, dürfte aber sehr leicht in andere BASIC-Dialekte (z. B. GW-BASIC für PCs oder OMIKRON- BASIC für den ST/TT) übertragbar sein.
Zum Schluß noch eine Anregung für eine weitere Verbesserung: Umsetzung des Kodieralgorithmus in Assembler, da die momentane Arbeitsgeschwindigkeit sehr gemächlich ist; das erleichtert auch die Bedienbarkeit des Programms.