-
Die
vorliegende Erfindung hat ein Verfahren, das es ermöglicht,
bei Informatiktransaktionen Daten abzusichern, sowie ein System
zu seiner Umsetzung zum Gegenstand. Genauer hat die Erfindung ein
Verfahren zum Gegenstand, das die Vertraulichkeit bzw. Echtheit
der Daten garantiert, während
sie über
ein öffentliches
oder privates Netz übermittelt
werden.
-
Zahlreiche
Systeme der Verschlüsselung oder
Chiffrierung von Dokumenten oder Transaktionen sind bekannt, die
es ermöglichen,
Daten zwischen zwei berechtigten Personen zu übertragen, ohne dass ein Dritter
davon Kenntnis nehmen könnte.
Allerdings weisen alle diese Verschlüsselungssysteme, ob sie nun
symmetrisch oder asymmetrisch sind, Nachteile bei der Aufbewahrung
und Verteilung der Verschlüsselungsschlüssel auf.
Im Folgenden wird unter einem symmetrischen Verschlüsselungssystem
ein Verfahren verstanden, das es ermöglicht, ein Dokument mit Hilfe
eines einzigartigen, geheimen Schlüssels zu verschlüsseln, wobei
das Dokument mit dem gleichen Schlüssel verschlüsselt und
entschlüsselt
werden kann. Ein als asymmetrisch bezeichnetes Verschlüsselungssystem
weist ein Paar von Schlüsseln
auf, davon der eine, als öffentlicher Schlüssel bezeichnet,
zum Verschlüsseln
eines Dokuments, während
der andere, als privater Schlüssel bezeichnet,
das verschlüsselte
Dokument zu rekonstituieren erlaubt. Im Falle eines asymmetrischen
Systems erlaubt es der als öffentlich
bezeichnete Schlüssel
nicht, ein Dokument zu entschlüsseln.
Nur der entsprechende private Schlüssel kann das Dokument oder
die Transaktion entschlüsseln.
-
In
beiden Fällen
stellt sich das Problem der Aufbewahrung und der Verteilung der
Schlüssel,
die es erlauben, ausgehend vom verschlüsselten Dokument oder der verschlüsselten
Transaktion das ursprüngliche
Dokument zu rekonstituieren. Die Schlüssel, die es erlauben, ein
Dokument oder eine Transaktion zu entschlüsseln, müssen nämlich irgendwo im Speicher
oder auf der Festplatte des Rechners der Beteiligten gespeichert
werden. Daraus folgt, dass ein Dritter, wenn er Zugang zu einem Arbeitsplatz
hat, den Entschlüsselungsschlüssel finden
und somit Zugang zum Inhalt der vertraulichen Dokumente oder Transaktionen
erlangen kann. Was die symmetrischen Verschlüsselungssysteme betrifft, so
ist es für
die Übermittlung
des verwendeten Verschlüsselungsschlüssels notwendig, über einen
abgesicherten Kanal zu verfügen,
der sich von den Kommunikationsmitteln unterscheidet, durch die
die verschlüsselten
Daten laufen sollten. Im Falle eines asymmetrischen Verschlüsselungssystems
kann der öffentliche
Schlüssel
eines Benutzers frei über
ein Informatiknetz verteilt werden, um die Verschlüsselung von
Dokumenten oder Transaktionen zu ermöglichen, die nur der Besitzer
des entsprechenden privaten Schlüssels
rekonstituieren kann. Allerdings kann nicht ausgeschlossen werden,
dass ein Dritter mit Mitteln, die Kommunikationen über das
Netz abzufangen, eine Substitution der Schlüssel vornimmt. Nehmen wir zum
Beispiel den folgenden Fall. A und B wünschen, einander verschlüsselte Daten über ein öffentliches
Netz zu übermitteln.
A schickt seinen öffentlichen
Schlüssel
an B. B verwendet den öffentlichen
Schlüssel
von A, um ein Dokument zu verschlüsseln, und schickt das verschlüsselte Dokument an
A. Theoretisch kann nur A mit Hilfe seines privaten Schlüssels das
von B geschickte Dokument entschlüsseln. Nehmen wir nun an, das
C die Kommunikationen zwischen A und B abfangen kann. C erzeugt ein
Paar von Verschlüsselungsschlüsseln. Wenn
A seinen öffentlichen
Schlüssel
an B schickt, fängt
C ihn ab und ersetzt ihn durch seinen eigenen öffentlichen Schlüssel. B
verwendet den Schlüssel
von C, um das Dokument zu verschlüsseln, und übermittelt es an A. C fängt das
verschlüsselte
Dokument ab, entschlüsselt
es mit Hilfe seines privaten Schlüssels, verschlüsselt es
dann mit dem durch A übermittelten öffentlichen
Schlüssel
und übermittelt
es an A, der das normal mit dem an B übermittelten öffentlichen Schlüssel verschlüsselte Dokument
empfängt.
Man stellt mit Hilfe dieses Beispiels fest, dass die asymmetrischen
Verschlüsselungssysteme
das Problem der Verteilung der Verschlüsselungsschlüssel nur teilweise
lösen.
-
Auf
dem Gebiet des mobilen Fernsprechens offenbart das Dokument EP-A-790
587 ein Verfahren zur Initialisierung einer in ein Mobiltelefon
eingesetzten Chipkarte, das auf dem Erkennen einer nach einer asymmetrischen
Verschlüsselung
zwischen dem Telefon und der Chipkarte übermittelten Zufallszahl beruht.
Im Gefolge dieser Initialisierungsphase wird ein zweiter Satz von
asymmetrischen Schlüsseln
erzeugt, um den Datenaustausch einer konkreten Sitzung zu verwalten.
-
Das
Dokument DE-A-197 16 861 beschreibt ein System, das einen Rechner
sowie eine Chipkarte umfasst und zu übermittelnde oder zu archivierende Dokumente
zu kodieren gestattet. Das Dokument wird dann durch einen symmetrischen
Schlüssel
verschlüsselt, der
seinerseits mit dem Dokument verschickt wird, nachdem er durch einen
asymmetrischen Algorithmus verschlüsselt worden ist.
-
Das
den Gegenstand der Erfindung bildende Verfahren zielt darauf ab,
die oben erwähnten
Nachteile abzustellen, indem ein Verfahren angeboten wird, mit dem überprüft werden
kann, dass einerseits der Zugriff auf ein Terminal nur durch eine
autorisierte Person erfolgen kann und dass andererseits die Daten,
die für
ihre Übermittlung
verschlüsselt
werden sollen, nur durch ihren Adressaten gelesen werden können, wobei
diese Operationen ausgeführt
werden, ohne dass Verschlüsselungsschlüssel vorübergehend
in den Rechnern des Absenders oder Empfängers gespeichert werden. Zu
diesem Zweck ist das den Gegenstand der Erfindung bildende Verfahren
durch die in Anspruch 1 erwähnten
Schritte gekennzeichnet.
-
Andere
Vorteile werden aus der folgenden Beschreibung und den in den abhängigen Ansprüchen ausgedrückten Kennzeichen
hervorgehen. Insbesondere sei die durch dieses System gebotene Möglichkeit
erwähnt,
die Integrität
eines Dokuments oder einer Transaktion sowie die Identifizierung
eines Dokuments oder einer Transaktion zu überprüfen. Unter Identifizierung
wird verstanden, mit Sicherheit die Person zu erfahren, die Absender
des Dokuments ist. Was die Integrität eines Dokuments oder einer
Transakion betrifft, so bezieht sie sich auf die Möglichkeit
festzustellen, dass der Inhalt der Transaktion oder des Dokuments
zwischen dem Sender und dem Empfänger
nicht in irgendeiner Art und Weise verändert worden ist.
-
In
der folgenden Beschreibung wird auf zwei bekannte Verschlüsselungstechniken
Bezug genommen. Das 1976 durch die US-Regierung angenommene System
DES (Data Encryption Standard) ist ein Beispiel der symmetrischen
Verschlüsselung
mit einem einzigen Schlüssel.
Als Beispiel einer asymmetrischen Verschlüsselungstechnik zitieren wir
RSA nach den Namen ihrer Autoren (Rivest, Shamir und Adleman). Diese
Technik der asymmetrischen Verschlüsselung benutzt eine mathematische
Einbahnfunktion mit einem „geheimen
Türöffner", der es ermöglicht,
die Funktion umzukehren. Diese asymmetrische Technik verlangt ein
Paar von Schlüsseln,
um realisiert zu werden: einen öffentlichen
Schlüssel,
der frei verteilt werden kann und dazu dient, ein Dokument mittels
eines asymmetrischen Algorithmus zu verschlüsseln, sowie einen privaten
Schlüssel,
der allein in der Lage ist, das Dokument oder die Transaktion zu
entschlüsseln,
die mit Hilfe des entsprechenden öffentlichen Schlüssels verschlüsselt worden
sind. Diese beiden Techniken wer den weithin in der Literatur beschrieben
und in der vorliegenden Anmeldung nicht im Einzelnen wieder aufgenommen. Es
sei allerdings vermerkt, dass die Verschlüsselung durch einen asymmetrischen
Algorithmus (zum Beispiel vom RSA-Typ) ungefähr 1000 Mal langsamer ist als
die Verschlüsselung
durch einen symmetrischen Algorithmus (zum Beispiel vom DES-Typ).
Dies stellt ein Hindernis dar, wenn sehr umfangreiche Dokumente
verschlüsselt
werden sollen.
-
Gleichviel
welche Verschlüsselungstechnik benutzt
wird, muss man über
Schlüssel
einer beträchtlichen
Länge verfügen (512
Bits, 1024 Bits oder mehr), damit es sehr schwierig wird, das verschlüsselte Dokument
zu entschlüsseln.
Die Schlüssellänge ist
ein Parameter, aber zur Erzeugung von asymmetrischen Schlüsseln, die
als stark bezeichnet werden, ist es unumgänglich, sie aus grossen Zufallszahlen
zu berechnen, in deren Nähe
systematisch zwei Primzahlen gesucht werden. Um starke asymmetrische
Schlüssel
zu erzeugen, wird jedes Schlüsselpaar
noch zusätzlichen
mathematischen Kriterien unterworfen, und zwar bis zu dem Punkt,
an dem alle Kriterien erfüllt
sind. Was die symmetrischen Schlüssel
betrifft, ist es nicht unumgänglich,
eine Primzahl zu suchen. Der symmetrische Schlüssel kann aus einer Kette von
Zeichen oder einer beliebigen Zahl bestimmter Länge gebildet werden. Allerdings
ist eine Zufallszahl hoher Qualität einem durch den Benutzer gewählten Text
vorzuziehen, da diese Wahl unter bestimmten Umständen vorhersehbar ist (zum
Beispiel bei einem dem Fälscher
bekannten Benutzer). Ausserdem existiert eine endliche Zahl von
symmetrischen Schlüsseln,
die als schwach betrachtet werden, und folglich wird man überprüfen, dass
der gewonnene Schlüssel
nicht zu dieser Gruppe schwacher Schlüssel gehört.
-
Das
den Gegenstand der Erfindung bildende Verfahren weist zunächst einen
Schritt der Initialisierung auf, um den Zugang zu den Benutzerfunktionen zu
autorisieren, die durch das Anwendungsprogramm vorgesehen sind,
zum Beispiel die Verschlüsselung
des Dokuments oder die Einbettung einer digitalen Signatur. Diese
Phase der Initialisierung verlangt eine kurze Beschreibung der Systemkomponenten,
die die Umsetzung des Verfahrens ermöglichen. Das zu erreichende
Ziel besteht darin, die Vertraulichkeit einer Datenübermittlung
zwischen zwei Benutzern zu garantieren, die über je einen Personalcomputer
vom Standardtyp verfügen,
der Kommunikationsmittel wie ein Modem, eine Netzkarte oder beliebige
andere Mittel aufweist, mit denen im Hinblick auf eine zweiseitig
gerichtete Übermittlung
digitaler Daten eine Fernverbindung aufgebaut werden kann. Diese
Rechner sind ausserdem mit einer an den Rechner angeschlossenen
Vorrichtung zum Lesen von Chipkarten ausgerüstet. Vorzugsweise ist der Chipkartenleser
in die Tastatur des Rechners integriert.
-
Die
zur Benutzung im Leser bestimmten Chipkarten sind klassische Chipkarten
mit zumindest einer Recheneinheit, einem nicht flüchtigen
Speicher, einem flüchtigen
Speicher und einem analogen Zufallszahlengenerator. Der Speicher
der Karte weist zumindest einen geschützten Bereich auf, in dem die dort
im Voraus aufgezeichneten Daten mit Hilfe eines Lesers nicht gelesen
werden können.
Der Inhalt dieses Speicherbereichs kann jedoch durch die Recheneinheit
der Karte wiedergewonnen und genutzt werden. Als nicht einschränkendes
Beispiel sind die für
Kryptographie bestimmten Karten, d.h. Karten, die mit einem kryptographischen
Koprozessor und mit Komponenten ausgestattet sind, die die oben
aufgezählten
Annexfunktionen zu realisieren gestatten, für eine Umsetzung des den Gegenstand
der Erfindung bildenden Verfahrens geeignet. Zu diesem Zweck bettet
man in einen geschützten
Bereich des Speichers der Chipkarte einen privaten Schlüssel eines
asymmetrischen Verschlüsselungssystems,
zum Beispiel vom RSA-Typ, ein. Der entsprechende öffentliche
Schlüssel
hingegen ist in die Datei integriert, die den Code des Programms
enthält,
das auf dem Rechner ablaufen soll. Um die Sicherheit zu verstärken, ist
der im Programm residierende öffentliche Schlüssel in
der als Support des Anwendungsprogramm dienenden Datei nicht als
Klartext gespeichert. Er kann allerdings aus durch den Benutzer
eingegebenen Daten rekonstituiert werden. Als nicht einschränkendes
Beispiel wird jetzt ein Verfahren der Einbettung des öffentlichen
Schlüssels
in das Anwendungsprogramm beschrieben.
-
Mit
der Idee, einen Schlüssel
mit einer Länge von
64 Oktetten einzubetten, konstruiert man eine Zahlentabelle mit
64 Spalten und 128 Zeilen, die mit Zufallszahlen gefüllt werden.
Jede Spalte dieser Tabelle entspricht der Stelle eines Schlüsseloktetts. Jede
Zeile dieser Tabelle entspricht einem der 128 Zeichen des Satzes
von Standardzeichen. Man entscheidet sich dann für eine Passphrase und verwandelt
diese Phrase in eine Phrase, die die gleiche Anzahl von Oktetten
oder Zeichen wie der einzubettende Schlüssel umfasst. Mit einem Schlüssel von
64 Oktetten und einer Passphrase aus lediglich 30 Zeichen zum Beispiel
fügt man
an der 31. Stelle das erste Zeichen der Phrase hinzu, aber um eine
willkürliche
Anzahl von Stellen in der ASCII-Tabelle versetzt. Die 32. Stelle
entspricht dem zweiten Zeichen der Passphrase, um die gleiche Anzahl
von Stellen versetzt, und so weiter, bis eine Phrase mit 64 Zeichen gewonnen
worden ist. Jedes Oktett des Schlüssels wird dann in der Tabelle
an einer x,y-Koordinate untergebracht, wo x das y-te Zeichen der
Passphrase und y die relative Position des betrachteten Oktetts im
Schlüssel
darstellt. Y hat immer Werte zwischen 1 und der Schlüssellänge. Wenn
also das erste Zeichen der Phrase ein A ist, dann wird das erste
Oktett des Schlüssels
in Spalte 1 auf der dem Zeichen A entsprechenden Zeile eingebettet.
Man geht in gleicher Weise für
die 64 Oktette des oben als Beispiel zitierten Schlüssels vor.
-
Um
diesen öffentlichen
Schlüssel
zu rekonstituieren, veranlasst das Anwendungsprogramm den Benutzer,
seine Passphrase mit der Tastatur oder einem beliebigen anderen
Mittel einzuführen,
und bestimmt dann die Koordinaten, die jedem der den Schlüssel bildenden
Oktette entsprechen. Der Schlüssel
wird dann rekonstituiert, indem die verschiedenen, an den rekonstituierten
Koordinaten befindlichen Werte abgelesen werden.
-
Es
ist offensichtlich, dass andere Verfahren ins Auge gefasst werden
können,
mit denen ein Schlüssel
zerlegt und in einer Zahlentabelle zerstreut werden kann. Das zu
erreichende Ziel besteht darin, seine Rekonstitution durch eine
einfache Analyse der ablauffähigen
Datei, die als Support des Anwendungsprogramms dient, zu erschweren.
-
So
ist ein Paar von asymmetrischen Schlüsseln (zum Beispiel des RSA-Typs)
einerseits mit einer Chipkarte und andererseits mit einer Kopie
der Anwendungssoftware assoziiert. In der Initialisierungsphase
muss der Benutzer im Voraus die Chipkarte in den an den Rechner
angeschlossenen Leser einführen,
dann das Anwendungsprogramm starten. Letzteres überprüft zuerst das Vorhandensein
der Karte im Leser, indem es zum Beispiel die Schiene des Lesers
abfragt. Wenn eine Karte im Leser vorhanden ist, veranlasst das
Programm den Benutzer, über
die Tastatur die Passphrase einzugeben, die es ihm ermöglicht,
den in der zuvor erwähnten
Zahlentabelle gespeicherten öffentlichen
Schlüssel
zu rekonstituieren. Das Programm schickt dann ein Initialisierungssignal
an die Chipkarte. Bei Empfang dieses Signals erzeugt die Karte mit
Hilfe ihres analogen Zufallszahlengenerators eine Zufallszahl. Diese
Zufallszahl wird zunächst
in einem zeitweiligen Speicher sichergestellt, dann an das Anwendungsprogramm übermittelt.
Das Anwendungsprogramm verschlüsselt
diese Zufallszahl mit Hilfe eines asymmetrischen Algorithmus, zum
Beispiel vom RSA-Typ, wobei es den im Voraus rekonstituierten öffentlichen Schlüssel verwendet,
und übermittelt
die verschlüsselte
Zufallszahl an die Chipkarte. Bei Empfang dieser Zahl entschlüsselt die
Chipkarte die empfangene Nachricht mit Hilfe des in ihrem geschützten Speicher enthaltenen
privaten Schlüssels
und vergleicht das gewonnene Ergebnis mit der zuvor in ihrem Speicher sichergestellten
Zufallszahl. Bei Gleichheit dieser beiden Zahlen übermittelt
die Chipkarte eine Bestätigung
an das Anwendungsprogramm, das dann weiter abläuft. Wenn die gewonnene Zahl
nicht mit der zuvor im Speicher der Chipkarte sichergestellten identisch
ist, gibt die Karte eine negative Antwort an das Anwendungsprogramm
aus, die dessen sofortiges Anhalten bewirkt. Man wird verschiedene
Vorteile unter dem Gesichtspunkt der Sicherheit bemerken. Erstens
kann nur eine einzige Kombination aus Chipkarte und Anwendungsprogramm
funktionieren. Zweitens sind die Schlüssel, die sowohl in der Chipkarte
als auch im Anwendungsprogramm gespeichert sind, sehr schwer zugänglich.
Der in der Chipkarte gespeicherte asymmetrische Schlüssel kann nämlich nicht
mit Hilfe eines Lesers gelesen werden, da er sich in einem geschützten Bereich
des Speichers befindet. Der entsprechende öffentliche Schlüssel, der
in der ablauffähigen
Datei des Anwendungsprogramms residiert, erscheint dort nicht als Klartext,
denn er ist zerlegt und in einer Zahlentabelle zerstreut. Ausserdem
werden keine sensiblen Daten zwischen dem Leser und dem Rechner übermittelt, da
sie nur eine Zufallszahl austauschen, und zwar einmal im Klartext
und zurück
in verschlüsselter Form.
Man weiss, dass bei asymmetrischen Kodierungen und insbesondere
bei der RSA-Kodierung der Schlüssel,
mit dem die Nachricht verschlüsselt
werden konnte, selbst dann nicht rekonstituiert werden kann, wenn
man zugleich über
die Nachricht im Klartext und über
die verschlüsselte
Nachricht verfügt. Schliesslich
ist der öffentliche
Schlüssel
des Anwendungsprogramms, nachdem er rekonstituiert worden ist, nur
im flüchtigen
Speicher des Rechners vorhanden und hinterlässt daher nach der Programmsitzung keine
Spuren. Dank dieser Initialisierungssequenz wird ein erhöhtes Sicherheitsniveau
gewährleistet, indem
der Ablauf des Anwendungsprogramms nur autorisiert wird, wenn es
mit einer durch das Programm erkannten Chipkarte assoziiert wird
und die Karte im Leser vorhanden ist.
-
Nachdem
diese Initialisierung erfolgreich abgelaufen ist, hat der Benutzer
Zugang zu den Funktionen, zu denen ihn die Karte berechtigt. Als
Beispiel wird jetzt ein Verfahren der Verschlüsselung einer Datei beschrieben.
Das Anwendungsprogramm startet nach einer erfolgreichen Initialisierung
einen Prozess, in regelmässigen
Zeitabständen
das Vorhandensein der Karte im Leser zu überprüfen. Wenn die Karte aus dem
Leser herausgezogen wird, bricht das Programm ab, und man muss erneut
mit der Initialisierungssequenz beginnen, die oben beschrieben wurde.
Das Anwendungsprogramm ersucht dann den Be nutzer, den Namen der
Datei einzugeben, die vor ihrer Übermittlung
verschlüsselt
werden muss. Das Anwendungsprogramm oder vorzugsweise die Chipkarte
liefert eine Zufallszahl, und das Programm benutzt sie nach Überprüfung ihrer
Annehmbarkeit als symmetrischen Schlüssel des DES-Typs zum Beispiel.
Dieser Schlüssel
wird dann mit Hilfe eines asymmetrischen Algorithmus und des rekonstituierten öffentlichen
Schlüssels
verschlüsselt.
-
Das
Anwendungsprogramm stellt den verschlüsselten symmetrischen Schlüssel im
Speicher sicher und verschlüsselt
dann jedes beliebige Dokument oder Informatiktransaktion mit Hilfe
des symmetrischen Schlüssels,
indem es einen symmetrischen Standardalgorithmus benutzt. Es bildet
dann eine Nachricht, die die mit dem symmetrischen Algorithmus verschlüsselte Datei
sowie den symmetrischen Schlüssel
enthält,
der selbst durch den asymmetrischen Algorithmus verschlüsselt wurde.
Diese beiden Elemente werden dann in einer einzigen Informatikdatei
zusammengeführt.
Die folgenden Schritte sind klassische Schritte in den Verschlüsselungsprogrammen
und können
mehrere weitere Schritte aufweisen. Insbesondere sei das Löschen der
Klartext-Quellendatei und die Zerstörung aller zeitweiligen Dateien
genannt, die während
der symmetrischen Verschlüsselung
erzeugt wurden. Am Ende dieser Schritte liegt ein Speicherbild vor,
das eine Datei darstellt, die die ursprüngliche, aber verschlüsselte Nachricht
sowie den gleichfalls verschlüsselten symmetrischen
Schlüssel
umfasst. Dieses Speicherbild kann dann im Hinblick auf seine Übermittlung
in einem Massenspeicher wie der Festplatte des Rechners sichergestellt
werden, wobei die Übermittlung mit
jedem geeigneten Mittel erfolgen kann, sei es über ein Kommunikationsnetz
(Internet, Intranet usw.) oder durch Versand eines Datenträgers (Diskette,
CD-ROM usw.).
-
Um
die übermittelte
Nachricht zu entschlüsseln,
werden die umgekehrten Operationen durch den Empfänger der
Nachricht ausgeführt.
Der Benutzer führt
zuerst seine Karte in den Leser ein, dann startet er das Anwendungsprogramm.
Die Initialisierungsschritte sind mit den oben beschriebenen identisch
und erlauben die Überprüfung, dass
die benutzte Kopie des Programms und die Chipkarte übereinstimmen.
Dann wählt
der Benutzer die Entschlüsselungsoption
des Anwendungsprogramms und wird aufgefordert, die Datei zu benennen,
an der er zu arbeiten wünscht.
Das Anwendungsprogramm beginnt damit, von dieser Datei den verschlüsselten
symmetrischen Schlüssel
des Dokuments abzutrennen, das mit Hilfe dieses Schlüssels verschlüsselt worden
ist. Die Chipkarte über mittelt
dann ihren asymmetrischen privaten Schlüssel an das Anwendungsprogramm, das
dann mit Hilfe des übermittelten
asymmetrischen Schlüssels
den symmetrischen Schlüssel
entschlüsselt.
Das Anwendungsprogramm entschlüsselt
dann das Dokument mit Hilfe des so gewonnenen symmetrischen Schlüssels und
stellt dem Benutzer die entschlüsselte
Datei zur Verfügung.
-
In
einer Variante übermittelt
das Anwendungsprogramm den verschlüsselten symmetrischen Schlüssel an
die Chipkarte, die ihn mit Hilfe ihres privaten asymmetrischen Schlüssels entschlüsselt. Die Chipkarte übermittelt
dann den entschlüsselten
symmetrischen Schlüssel
an das Anwendungsprogramm, das ihn verwendet, um die Datei der Daten zu
entschlüsseln.
-
Durch
dieses Verschlüsselungsverfahren kann
gewährleistet
werden, dass eine übermittelte verschlüsselte Nachricht
nur durch einen Benutzer entschlüsselt
werden kann, der eine spezielle Chipkarte sowie eine Kopie der entsprechenden
Software besitzt. Es muss ebenfalls bemerkt werden, dass in dem
oben erwähnten
Verschlüsselungsverfahren
der symmetrische Schlüssel,
der verwendet wurde, um das Dokument zu verschlüsseln, seinerseits einzigartig
ist und nur ein einziges Mal verwendet wird, wodurch das System
im Falle des Abfangens einer verschlüsselten Nachricht während ihrer Übermittlung weniger
verletzbar gemacht wird. Dieses Vorgehen führt auch nicht zu Problemen
bei der Archivierung von ausgetauschten Nachrichten, da eine übermittelte
Nachricht gleichzeitig das verschlüsselte Dokument und den einzigartigen
Schlüssel
enthält,
der verwendet worden ist, um es zu verschlüsseln, und der seinerseits
mit einem anderen Algorithmus verschlüsselt ist.
-
In
einer Variante wird der symmetrische Sitzungsschlüssel durch
die Chipkarte erzeugt, dann an das Anwendungsprogramm übermittelt.
Bei Empfang des symmetrischen Schlüssels verschlüsselt das Programm
das zu behandelnde Dokument mit Hilfe dieses Schlüssels. Es
verschlüsselt
danach diesen gleichen symmetrischen Schlüssel mit dem asymmetrischen
Algorithmus, indem es seinen rekonstituierten öffentlichen Schlüssel benutzt.
Die folgenden Schritte sind dann mit den zuvor beschriebenen identisch.
-
Um
den Benutzer vom Lieferanten des zuvor beschriebenen Systems unabhängig zu
machen, kann vorgesehen werden, dass die asymmetrischen Schlüssel, die
verwendet werden, um die symmetrischen Sitzungsschlüssel zu
verschlüsseln
und zu entschlüsseln,
sich von denen unterscheiden, die während des Initialisierungsschritts
verwendet werden.
-
Im
oben beschriebenen Beispiel wird tatsächlich ein einziges Paar von
asymmetrischen Schlüsseln
verwendet, der eine ein privater Schlüssel, der in einen geschützten Speicherbereich
der Chipkarte eingebettet ist, der andere ein öffentlicher Schlüssel, der
im Anwendungsprogramm zerstreut ist. Dieses Paar asymmetrischer
Schlüssel
ist dem Lieferanten des Systems bekannt, der sie in die Chipkarte
bzw. das Anwendungsprogramm eingebettet hat. Daher wünscht der
Benutzer des Systems eventuell, dass dieses Paar asymmetrischer
Schlüssel nur
für den
Initialisierungsschritt verwendet wird, der den Zugang zu einem
Terminal zu validieren gestattet, wie oben beschrieben, aber nicht
dafür,
den symmetrischen Sitzungsschlüssel
zu verschlüsseln,
der verwendet wird, um die Daten zu verschlüsseln. Zu diesem Zweck werden
Chipkarten vorgesehen, die mehrere unterschiedliche Speicherbereiche
aufweisen. Einen ersten, schreib- und lesegeschützten Speicherbereich, der
den privaten Schlüssel
enthält, der
Zugang zu einer Kopie der Software gewährt, die den entsprechenden öffentlichen
Schlüssel
enthält, wie
zuvor beschrieben, und einen zweiten Speicherbereich, der nur zugänglich ist,
wenn der Initialisierungsschritt erfolgreich war. Wenn der Initialisierungsschritt
erfolgreich war, ermöglicht
das Anwendungsprogramm die Erzeugung eines zweiten Paares asymmetrischer
Schlüssel,
zum Beispiel des RSA-Typs,
die in der Chipkarte gespeichert werden. Zu diesem Zweck erzeugt
die Chipkarte zwei Zufallszahlen und übermittelt sie an die Anwendungssoftware.
Die Software berechnet aus diesen beiden Zufallszahlen ein Paar
asymmetrischer Schlüssel
und überprüft, dass
die Kriterien für
die Annehmbarkeit der Schlüssel
respektiert werden. Die so erzeugten Schlüssel werden dann an die Chipkarte übermittelt, die
sie im oben erwähnten
zweiten Speicherbereich sicherstellt. Je nach der gewünschten
Nutzung kann man in der Chipkarte das Paar berechneter Schlüssel speichern,
d.h. den privaten Schlüssel
und den öffentlichen
Schlüssel.
Diese Chipkarten, die privat genannt werden, enthalten gleichzeitig
einen öffentlichen
Schlüssel
und einen entsprechenden privaten Schlüssel. Sie ermöglichen
es daher, die für
die Verschlüsselung
der Daten verwendeten Sitzungsschlüssel zu verschlüsseln und
zu entschlüsseln. Man
kann auch nur den öffentlichen
Schlüssel
in der Chipkarte speichern, wobei die Karte dann nur für die Verschlüsselungsoperation
verwendet werden kann.
-
Wenn
man zwei Paare asymmetrischer Schlüssel verwendet, laufen die
Operationen der Verschlüsselung
einer Datei wie folgt ab. Der Initialisierungsschritt ist mit dem
zuvor beschriebenen identisch. Wenn die Initialisierung unter Verwendung
des ersten Schlüsselpaares
gelungen ist, verlangt das Anwendungsprogramm von der Karte, ihm
eine Zufallszahl zu liefern, die als symmetrischer Schlüssel dient,
um die Daten zu verschlüsseln.
Die Chipkarte verschlüsselt
diesen symmetrischen Schlüssel
dann mit Hilfe des öffentlichen
asymmetrischen Schlüssels,
der im zweiten geschützten
Speicherbereich enthalten ist, und übermittelt diesen verschlüsselten symmetrischen
Schlüssel
an das Anwendungsprogramm. Dieses bildet ein Speicherbild, das zugleich den
durch den asymmetrischen Algorithmus verschlüsselten symmetrischen Schlüssel und
die gemäss
dem symmetrischen Algorithmus verschlüsselten Daten enthält. Dieses
Speicherbild kann dann an seinen Adressaten übermittelt werden.
-
Die
Entschlüsselungsoperation
umfasst die folgenden Schritte. Nach einer gelungenen Initialisierung
trennt das Anwendungsprogramm unter Verwendung des ersten Schlüsselpaares
(privater Schlüssel
in der Karte, öffentlicher
Schlüssel
im Anwendungsprogramm zerstreut) den verschlüsselten symmetrischen Schlüssel von
den Daten und übermittelt
dann den verschlüsselten
symmetrischen Schlüssel
an die Chipkarte, die ihn mit Hilfe des privaten Schlüssels des
zweiten Satzes von asymmetrischen Schlüsseln entschlüsselt. Der
durch die Chipkarte entschlüsselte
symmetrische Schlüssel
wird an das Anwendungsprogramm übermittelt,
das sich seiner bedient, um mit Hilfe eines symmetrischen Algorithmus
die Datei der Daten zu entschlüsseln.
In einer Variante kann der in die Chipkarte eingebettete zweite
private Schlüssel
an das Anwendungsprogramm übermittelt
werden, das sich seiner bedient, um mit Hilfe eines asymmetrischen
Algorithmus den symmetrischen Schlüssel zu entschlüsseln.
-
In
den beiden oben vorgestellten Varianten kann vorgesehen werden,
dass der im Anwendungsprogramm gespeicherte öffentliche Schlüssel, der dazu
dient, eine gültige
Kombination von Karte und Programm zu authentifizieren (Initialisierung),
im Klartext im Anwendungsprogramm sichergestellt wird, d.h. ohne
in einer Zahlentabelle zerstreut zu werden. In diesem Falle braucht
der Benutzer keine Passphrase einzugeben, um den öffentlichen Schlüssel des
Anwendungsprogramms zu rekonstituieren. Hingegen wird die Verwendung
eines persönlichen
Identifizierungscodes (PIN-Codes) vorgesehen, der in einen geschützten Speicherbereich
der Chipkarte eingebettet ist. Wenn der Initialisierungsschritt
zwischen der Karte und der Anwendungssoftware gelungen ist, wird
der Benutzer aufgefordert, den ID-Code einzugeben. Der eingegebene
Code wird mit dem in der Chipkarte gespeicherten verglichen, und
bei Übereinstimmung
wird das Programm autorisiert, seine Funktionen zu verfolgen. Ein
Blockieren der Karte kann vorgesehen werden, wenn der Benutzer mehrere
Male hintereinander einen unrichtigen Code eingibt.
-
In
einer bevorzugten Ausführungsform
wird der Umfang der zu behandelnden Dateien verringert, indem sie
vor den Verschlüsselungsoperationen
mit Hilfe eines Komprimierungsalgorithmus komprimiert werden. Die
im Voraus komprimierte Datei der Daten wird dann im Hinblick auf
ihre Übermittlung
mit den oben vorgestellten Verfahren verschlüsselt. Indem man mit im Voraus
komprimierten Dateien von Daten arbeitet, reduziert man die für ihre Verschlüsselung erforderliche
Zeit.
-
Die
obigen Beispiele veranschaulichen ein Verfahren zur Verschlüsselung
einer Informatikdatei. Es ist offensichtlich, dass der Anwendungsteil
des Programms weitere Funktionen wie zum Beispiel die Einbettung
einer verschlüsselten
digitalen Signatur in ein Dokument vorsehen kann, wodurch ermöglicht wird,
mit Gewissheit den Autor des Dokuments zu erfahren. Das Verfahren
der Erzeugung einer digitalen Signatur wird in der vorliegenden
Anmeldung nicht beschrieben, aber es benutzt Schritte, die den oben beschriebenen ähnlich sind,
wobei aber die Rolle der asymmetrischen Schlüssel eine andere ist.
-
Das
gleiche Prinzip lässt
sich auf ein Programm anwenden, das den Zweck hätte, die Integrität eines
Dokuments zu garantieren (Zertifikat genannt). Man berechnet zum
Beispiel ein Aggregat oder Kondensat des Dokuments und fügt es zur
anfänglichen
Datei hinzu. Somit führt
jede Modifikation des ursprünglichen
Dokuments zu einem anderen Aggregat oder Kondensat. Man kann so
jede Abänderung
des ursprünglichen
Dokuments kontrollieren.
-
Die
Vorteile eines solchen Verfahrens und des Systems für seine
Umsetzung sind zahlreich und ermöglichen
es, eine optimale Sicherheit zu gewährleisten. Man vermerke insbesondere,
dass nur die Besitzer einer Chipkarte, die einen identischen privaten
Schlüssel
zum Beispiel vom RSA-Typ sowie die entsprechende Kopie des Anwendungsprogramms enthält, die
an sie gerichteten Nachrichten verschlüsseln und entschlüsseln können. Ausserdem
laufen keine sensiblen Daten wie die öffentlichen Schlüssel im
Klartext über
das Netz zwischen den beiden Korrespondenten. Schliesslich kann
der öffentliche Schlüssel, der
in der Datei zerstreut ist, die den ablauffähigen Anwendungscode enthält, nicht
rekonstituiert werden, ohne die Passphrase zu kennen. Was die über das
Kommunikationsnetz oder durch einen Austausch von Datenträgern übermittelte
Nachricht betrifft, so ist diese auf sichere Weise mittels eines symmetrischen
Algorithmus zum Bei spiel vom DES-Typ verschlüsselt und enthält den Schlüssel, mit
dem sie verschlüsselt
werden konnte, in einer Form, die nur durch den Besitzer einer Karte
und einer adäquaten
Kopie des Programms entschlüsselt werden
kann. Die Tatsache, dass die übermittelte Nachricht
den symmetrischen Schlüssel
enthält,
der seinerseits kodiert ist, erleichtert auch die Archivierung der
Daten. Schliesslich ist der symmetrische Sitzungsschlüssel auf
die Weise einzigartig, dass er nur eine einzige Nachricht oder Transaktion
zu entschlüsseln
erlauben würde,
wenn ein nicht autorisierter Benutzer ihn entschlüsselte.
-
In
einer Variante wird die Einbettung mehrerer asymmetrischer öffentlicher
Schlüssel
in die Anwendungssoftware und/oder in die Chipkarte vorgesehen,
so dass Dokumente für
unterschiedliche Benutzer, die getrennte Chipkarten besitzen, verschlüsselt werden
können.