-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft
allgemein ein Verfahren, durch das eine Gruppe von Servern in Gegenwart
mobiler Abhöreinrichtungen,
die gelegentlich in die Server einbrechen und vom gesamten Inhalt
ihrer Speicher Kenntnis erlangen, in der Lage ist, eine gemeinsam
mit einem Client verwendete Menge von Schlüsseln zu verwalten, und insbesondere
betrifft die Erfindung wirksame Verfahren zur Verwaltung geheimer Schlüssel, die
der Benutzer und jeder aus der Gruppe der Server gemeinsam nutzen,
auf Basis regelmäßiger Aktualisierungen
der Schlüssel.
Eine weitere Anwendung der Erfindung besteht in der sicheren Erzeugung
von Zufallszahlen in Gegenwart mobiler Störungen.
-
Beschreibung
des Stands der Technik
-
Die Forderung nach Gewährleistung
einer sicheren Datenübertragung über unsichere
Kanäle
wird immer dringender. Zum Beispiel möchten viele Benutzer („Clients") in einem Mehrbenutzersystem
die Möglichkeit haben,
die eigene Identität
für den
Datenaustausch zu authentifizieren, eine bestimmte Nachricht zu
authentifizieren oder sogar verschlüsselte Nachrichten auszutauschen.
Bei wirksamen Realisierungen solcher Grundfunktionen für eine sichere
Datenübertragung
ist es erforderlich, dass die beteiligten Seiten zuerst einen gemeinsamen,
geheimen Sitzungsschlüssel
generieren.
-
Bei einer Standardlösung des
Problems der Generierung von Sitzungsschlüsseln wird eine sichere, vertrauenswürdige Einheit
oder ein Server verwendet. Das System wird so initialisiert, dass
jeder Benutzer einen geheimen Schlüssel besitzt, der nur ihm selbst
und dem Server bekannt ist. Um einen Sitzungsschlüssel zu
generieren, vereinbaren die beteiligten Seiten dann ein Protokoll
mit dem Server.
-
Ein großer Nachteil des Serververfahrens
besteht darin, dass es auf die absolute Sicherheit des Servers angewiesen
ist. Wenn nämlich
jemand in diesen Server einbricht (d. h. wenn der Inhalt des Serverspeichers
einem unbefugten Dritten bekannt wird), werden alle vertraulichen
Schlüssel
nach außen
bekannt und die Sicherheit des gesamten Systems geht verloren.
-
Daher wird ein Verfahren benötigt, bei
dem die Sicherheit des Systems auch dann nicht beeinträchtigt wird,
wenn jemand in einzelne Komponenten einbricht. Es wird darauf hingewiesen,
dass es eine alternative Möglichkeit
zur Generierung geheimer Sitzungsschlüssel gibt, und zwar die Verwendung
kryptografischer Grundfunktionen für öffentliche Schlüssel (z.
B. der Revist-Shamir-Adelman-Algorithmus (RSA)). Durch diese Lösung entfällt die
Notwendigkeit, zur Generierung jedes Sitzungsschlüssels mit
einem Server in Verbindung zu treten. Zur Authentifizierung der öffentlichen
Schlüssel
wird jedoch weiterhin ein sicherer Server benötigt. Außerdem ist die Kryptografie öffentlicher
Schlüssel
rechenintensiv und beruht auf strengeren Annahmen zur Berechnung.
-
Ein direkter Weg zur Verbesserung
der Sicherheit des Servermechanismus besteht darin, den Server zu „duplizieren". Das heißt, man
verwendet mehrere Server und lässt
jeden Benutzer das Dialogprotokoll mit jedem Server ausführen. Diese
Lösung
weist zwei wichtige Nachteile auf. Erstens ist es äußerst uneffektiv,
da der betreffende Benutzer mit mehreren Servern in Verbindung treten
muss, um jeden der Sitzungsschlüssel
zu erhalten. Zweitens ist das System nicht mehr sicher, wenn zu
irgendeinem Zeitpunkt in jeden Server eingebrochen worden ist.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Es ist daher eine Aufgabe der vorliegenden
Erfindung, ein Verfahren bereitzustellen, durch das eine Gruppe
von Servern in Gegenwart mobiler Abhöreinrichtungen, die gelegentlich
in die Server einbrechen und vom Inhalt ihrer Speicher Kenntnis
erlangen, in der Lage ist, eine gemeinsam mit einem Client verwendete Menge
von Schlüsseln
zu verwalten.
-
Gemäß der Erfindung werden wirksame
Verfahren zur Verwaltung geheimer Schlüssel bei zeitweiliger Gegenwart
eines mobilen Dritten, der gelegentlich zum Zwecke der Informationsgewinnung
bezüglich
der geheimen Schlüssel
des Benutzers in Server einbricht, bereitgestellt, die durch den
Benutzer und jeden aus einer Gruppe von Servern gemeinsam verwendet
werden. Die den Verfahren zugrundeliegende Idee besteht in der periodischen „Auffrischung" aller vertraulichen
Schlüssel
des Benutzers. Ein „ideales" Auffrischungsverfahren würde wie
nachfolgend beschrieben verlaufen. Zu Anfang besitzt der Benutzer
gemeinsam mit jedem Server einen vertraulichen Schlüssel (d.
h., dieser Schlüssel
ist nur dem Benutzer und dem jeweiligen Server bekannt). Nach jedem
Zyklus (etwa jeden Tag oder nach jedem fünften Zugriff des Benutzers
auf die Server) wird dem Benutzer und den Servern automatisch ein
neuer Satz von Schlüsseln
zugewiesen. Dadurch verfügt
jetzt jeder Server über
einen neuen Schlüssel,
der nicht den anderen Servern (wohl aber dem Benutzer) bekannt und
von den alten Schlüsseln
unabhängig
ist. Ein solches ideales Verfahren ist eindeutig „das bestmöglich Erreichbare"; das heißt, dass
der Dritte keine Kenntnis von dem gemeinsamen Schlüssel des Benutzers
und eines Servers in einem Zyklus hat, es sei denn, er bricht während dieses
Zyklus in diesen Server ein.
-
Die Verfahren gemäß der Erfindung erreichen genau
dieselbe Situation, solange der Dritte auf „normale" rechnerische Möglichkeiten beschränkt ist
und sich seine Angriffe auf die Server in Grenzen halten. Das heißt, dass
die Server in jedem Zyklus eine Berechnung durchführen, bei
der jeder Server einen neuen vertraulichen Schlüssel berechnet, den er zusammen
mit dem Benutzer verwendet, sodass der Benutzer ohne Datenaustausch
mit den Servern über
die geänderten
Schlüssel
auf dem Laufenden bleibt. Außerdem
können Dritte
mit beschränkten
rechnerischen Mitteln nicht zwischen Schlüsseln, die mittels der Verfahren
gemäß der Erfindung
berechnet wurden, und Schlüsseln
unterscheiden, die mittels des oben beschriebenen idealen Verfahrens
verbreitet wurden; d. h. jeder Schlüssel ist nur dem einzelnen
Server bekannt und ist von den alten Schlüsseln unabhängig.
-
Die Verfahren gemäß der Erfindung sind sehr wirkungsvoll.
Insbesondere braucht ein Benutzer nur mit einem einzigen Server
in Verbindung zu treten, um einen Sitzungsschlüssel zu erhalten. Der Benutzer
kann den Server auswählen,
mit dem er in Verbindung treten will. Bei dieser Anwendung ist es
nicht erforderlich, dass der Benutzer über die Fähigkeit verfügt, den
bei den Servern gespeicherten Wert zu berechnen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die obigen sowie weitere Aufgaben,
Aspekte und Vorteile können
anhand der folgenden detaillierten Beschreibung einer bevorzugten
Ausführungsart
der Erfindung unter Bezug auf die Zeichnungen besser verstanden
werden, in denen:
-
1 ein
Blockdiagramm ist, das ein verteiltes Datenverarbeitungssystem der
Art ist, in dem die Erfindung realisiert werden kann;
-
2 ein
Flussdiagramm des Prozesses gemäß einer
ersten bevorzugten Ausführungsart
der Erfindung ist;
-
3 ein
Flussdiagramm des Prozesses gemäß einer
zweiten bevorzugten Ausführungsart
der Erfindung ist;
-
4 ein
Flussdiagramm ähnlich
der 3 ist, in dem eine
spezielle Realisierung der zweiten Ausführungsart der Erfindung ausführlicher
gezeigt wird;
-
5 ein
Blockdiagramm ist, das ein Dreiprozessorsystem zeigt, in dem die
zweite Ausführungsart der
Erfindung realisiert wird; und
-
6 ein
Funktionsblockdiagramm ist, das eine Anwendung der Erfindung zum
Authentifizieren von Zugriffen auf ein verteiltes System zeigt.
-
DETAILLIERTE
BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSART DER ERFINDUNG
-
Definitionen
-
Zur Vereinfachung des Kommunikationsnetzwerkes
wird angenommen, dass jeweils zwei Server über einen vertraulichen und
sicheren Kommunikationskanal miteinander verbunden sind. Im Allgemeinen
muss der Kanal nicht vertraulich oder sicher sein. Ferner wird zur
Vereinfachung angenommen, dass die Server synchron betrieben werden,
denn die Datenübertragung
erfolgt in Zyklen; außerdem
greifen alle Beteiligten auf einen gemeinsamen globalen Takt zu.
Im Allgemeinen ist eine solche genaue Synchronisation nicht erforderlich.
-
Der Dritte kann gelegentlich in Server
einbrechen. Nach dem Einbruch in einen Server gelangt der gesamte
Inhalt des Serverspeichers dem Dritten zur Kenntnis. Während jedes
Zyklus kann der Dritte in verschiedene Server einbrechen. Zur Vereinfachung
soll es sich bei den Dritten um Neugierige handeln; das heißt, es wird
angenommen, dass der Dritte nicht das Verhalten eines Servers ändert, in
den er eingebrochen ist, sondern nur „Informationen sammelt". In unseren Verfahren
wird auch vorausgesetzt, dass, wenn es sich bei dem Dritten um Böswillige
handelt (d. h. Dritte, die das Verhalten „beschädigter" Server ändern können), diese keine Informationen
sammeln, die nicht auch von den neugierigen Dritten gesammelt werden.
Die einzige Fehlfunktion, die sie auslösen können, ist die „Dienstverweigerung" (denial of service)
des Servers.
-
Die Anzahl der Server, in die eingebrochen
wird, wird begrenzt. Ein Dritter heißt statisch t-begrenzt, wenn
die Gesamtzahl der Server, in die während des gesamten Rechenprozesses
eingebrochen wird, maximal t beträgt. Ein Dritter heißt dynamisch
t-begrenzt, wenn während
jedes Rechenzyklus in maximal t Server eingebrochen wird.
-
Vereinfacht kann man sagen, dass
ein Schlüssel-Auffrischungsverfahren
sicher ist, wenn es dem idealen Verfahren gleichwertig ist (d. h.
dem Verfahren, bei dem jedem Server in jedem Zyklus automatisch
ein „frischer" vertraulicher Schlüssel zugewiesen
wird, den dieser gemeinsam mit dem Benutzer verwendet). Mit anderen
Worten, ein Verfahren ist statisch t-sicher (bzw. dynamisch t-sicher),
wenn ein polynomisch zeitbegrenzter und statisch t-begrenzter (bzw.
dynamisch t-begrenzter) Dritter über
keine Informationen bezüglich des
Schlüssels
verfügt,
den der Benutzer und ein Server während eines Zyklus verwenden,
es sei denn, der Einbruch in diesen Server erfolgt während dieses
Zyklus.
-
Das vorliegende System verwendet
Pseudozufallsfunktionen. Die Definition einer Familie von Pseudozufallsfunktionen
soll hier kurz dargelegt werden. Eine umfassendere Definition ist
zum Beispiel zu finden bei Mihir Bellare und Phil Rogaway, „Entity
Authentication and Key Distribution", Advances in Cryptology: Proc. of Crypto
93, August 1993. s sei ein Sicherheitsparameter. Für jeden
Wert von s sei
eine
Familie von Funktionen. Anschaulich gesagt ist die Menge F = {F
s} eine Pseudozufallsgröße, wenn kein polynomisch zeitbegrenzter
Dritter für
jedes hinreichend große
s zwischen einer beliebigen aus F
s ausgewählten Funktion
und einer Zufallsfunktion (von {1,0}
y(s) bis
{0,1}
x(s)) unterscheiden kann. Es ist zu
beachten, dass es Pseudozufallsmengen gibt, wenn es nicht umkehrbare
Funktionen gibt. Tatsächlich
benötigt
man nur einen einfachen Fall, bei dem sowohl der Definitionsbereich
als auch der Wertevorrat {0,1}
k ist, wobei
k ein Sicherheitsparameter ist. Für k = 64 kann das Standardsystem
zur Datenverschlüsselung
(data encryption standard, DES), bei dem der Schlüssel als
Eingabewert dient, als geeignetes Verfahren angesehen werden. Für größere k-Werte
gibt es wirksame Standarderweiterungen.
-
Übersicht
-
Es werden wirksame Verfahren zur
Verwaltung geheimer Schlüssel
zwischen einem Client und mehreren Servern in Gegenwart mobiler
Abhöreinrichtungen
offengelegt, die in Server „einbrechen" (und somit den Inhalt
des Serverspeichers in Erfahrung bringen können). Diese Verfahren basieren
auf regelmäßigen Aktualisierungen
der Schlüssel.
Dadurch wird sichergestellt, dass der Schlüssel, den der Client und ein
Server gemeinsam verwenden, so lange sicher bleibt (erstes Verfahren),
wie während
des aktuellen Zyklus nicht in den Server eingebrochen wurde und
es einen Server gibt, in den überhaupt
nicht eingebrochen wurde, oder so lange, wie es während jedes
Zyklus einen Server gibt, in den nicht eingebrochen wurde (zweites
Verfahren). Dieses zweite Verfahren bleibt auch dann sicher, wenn
im Laufe der Zeit einmal in jeden der Server, aber nicht in alle
während
desselben Zyklus, eingebrochen wird.
-
Realisierung
-
In den Figuren, insbesondere in 1, ist ein typisches verteiltes
Datenverarbeitungssystem gezeigt, das mitunter als Client-Server-Netz
bezeichnet wird und eine Vielzahl von Servern und Clients umfasst,
die über
ein Kommunikationsnetzwerk miteinander verbunden sind. Ein Client-Server-System ist
ein verteiltes System, das eine Vielzahl von Prozessoren 101 bis 10n umfasst,
die durch ein Kommunikationsnetzwerk 11 miteinander verbunden
sind. Das Kommunikationsnetzwerk 11 kann zum Beispiel ein
lokales Netz (local area network, LAN), ein Weitverkehrsnetz (wide
area network, WAN) oder ein ähnliches
Netz sein. Die Prozessoren können
als Clients oder als Server oder als beides konfiguriert sein und
mit entsprechenden Speichervorrichtungen 121 bis 12n ausgerüstet sein, wobei alle oder
weniger, als alle Prozessoren auf einige oder alle Speicher zugreifen
können.
Diese Art von Architektur bedient sich der „verteilten Intelligenz" der Server und Clients
(d. h. Workstations) als intelligente, programmierbare Vorrichtungen,
wodurch die volle Rechenleistung aller Einheiten ausgenutzt wird.
Der Vorteil der Client-Server-Architektur besteht darin, dass die
Clients und die Server bei der Verarbeitung der Anwendung zusammenarbeiten
und so die Verarbeitungsleistung erhöhen. Ein solches verteiltes
Datenverarbeitungssystem kann als lokales Netz (LAN) oder als Weitverkehrsnetz
(WAN) geschaltet sein, und die Server können Mikrocomputer, Minicomputer
oder Großrechner
oder eine Kombination davon sein. Somit ist klar, dass das in 1 gezeigte System eine allgemeingültige Veranschaulichung
ist und bei einer speziellen Ausführung bedeutend komplexer sein
kann. Durch diese Umgebung wird ein wirksamer Einsatz der Rechenleistung
ermöglicht,
was jedoch die Anfälligkeit
gegenüber
Angriffen seitens mobiler Abhöreinrichtungen
erhöht,
die den Datenverkehr zwischen Prozessoren an jedem Punkt des Kommunikationssystems 11 abfangen
und zeitweise unbefugten Zugriff auf und die Kontrolle über bestimmte
Server und Clients erlangen können.
Bei der vorliegenden Erfindung soll zwischen den Clients und den
Servern kein grundlegender Unterschied bestehen und es sollen nur
Server erörtert
werden.
-
Das vorliegende System für die sichere
Auffrischung von Schlüsseln
soll beschrieben werden. Die Protokolle werden für einen Benutzer beschrieben.
In einem realen System müssen
die Protokolle für
jeden Benutzer einmal aufgerufen werden. Zu Anfang besitzt jeder
Server si einen geheimen Hauptschlüssel ki, der nur dem Server si und
dem Benutzer u bekannt ist. Dieser Schlüssel kann außerhalb
des System ausgewählt
und zugewiesen werden, sobald der Benutzer in das System aufgenommen
wird.
-
Gemäß einer ersten Ausführungsart
der Erfindung ist das Verfahren, wenn es auf ein System von n Servern
angewendet wird, statisch (n-1)-sicher. Jeder Server besitzt für jeden
Zyklus einen anderen Zyklusschlüssel.
Dieser Zyklusschlüssel
dient als geheimer Schlüssel, über den
während
dieses Zyklus auch der Benutzer verfügt. Während jedes Zyklus wird auf
Basis der von allen Servern empfangenen Informationen für jeden
Server ein neuer Zyklusschlüssel
berechnet. k
i,l sei der Zyklusschlüssel des
Servers s
i während des Zyklus
1.
Dann gilt
wobei {f
k(∘)} eine
Familie von Pseudozufallsfunktionen ist (d. h. einer Menge von Pseudozufallswerten
entnommen) und l∘i
die Verknüpfung
zwischen 1 und i darstellt. Und zwar berechnet jeder Server s
i während
jedes Zyklus
1 nach Empfang von fki(l∘j) von allen Servern s
j den Wert k
i,l und
anschließend
(1) . Der Wert 1 muss nicht der Zyklusnummer entsprechen, sondern
kann eine beliebige Zeitmarke sein.
-
Man beachte, dass der Benutzer, wenn
er alle Schlüssel
kl...kn kennt, für einen
bekannten Server si und einen Zyklus 1 den
Wert ki,l leicht berechnen kann, ohne Daten
zu übertragen.
Außerdem
brauchen weder der Benutzer noch die Server während Zyklen, in denen der
Benutzer nicht mit den Servern in Verbindung treten will, die entsprechenden
Zyklusschlüssel
zu berechnen.
-
Für
diesen Prozess wird nun auf 2 verwiesen.
Zu Beginn des Zyklus 1 werden im Funktionsblock 21 Zwischenwerte
berechnet. Insbesondere werden für
alle j = 1,...,n Zwischenwerte IVi(j) als
Funktion von 1, i, j und/oder ki berechnet
und vorübergehend
in Registern oder Registerabschnitten gespeichert. Die Zwischenwerte
werden dann im Funktionsblock 22 an alle Prozessoren, d.
h. Server sj für alle j = 1,...,n gesendet. Dann
wartet der Prozessor im Funktionsblock 23 darauf, dass
er die Zwischenwerte IVj(i) von den anderen
Prozessoren empfängt.
Wenn die Zwischenwerte IVj(i) empfangen
worden sind, werden sie in Registern oder Registerabschnitten gespeichert.
Im Funktionsblock 24 werden die empfangenen Werte IVj(i) dann zur Berechnung des Schlüssels ki,l für
den Zyklus 1 verwendet. Der Schlüssel für den Zyklus 1 wird
dann im Funktionsblock 25 in den Speicher des Prozessors
si geschrieben. Erst nachdem der Schlüssel für den Zyklus 1 in
den Speicher geschrieben worden ist, wird im Funktionsblock 26 der
Schlüssel
ki,1-l des vorangehenden Zyklus aus dem
Speicher gelöscht.
-
Bei der zweiten Ausführungsart
ist das Verfahren, wenn es auf ein System von n Servern angewendet wird,
dynamisch (n-1)-sicher.
Bei dem dynamischen Verfahren benutzt jeder Server anstelle des
Hauptschlüssels
seinen Zyklusschlüssel
des vorangehenden Zyklus als Index für die Funktion der Pseudozufallsfamilie. Und
zwar gilt in Zyklus
1 für
jeden Server s
i k
i,l =
k
i. Während
des Zyklus l > 1 sendet
jeder Server s
i die Zwischenfunktion ∫k
i1-l(l∘i)
an jeden Server s
j und berechnet dann
-
Ebenso wie beim statisch sicheren
Verfahren kann der Benutzer, der alle Schlüssel k1...kn kennt, ohne Datenübertragung den Wert ki,l für
einen Server si und einen Zyklus 1 berechnen.
Allerdings muss der Benutzer (ebenso wie die Server) die Berechnung
für jeden
Zyklus durchführen.
Nimmt man nun an, dass der Benutzer in den Zyklen l...l' keine Verbindung
zu den Servern herstellen möchte,
muss der Benutzer in Zyklus l+1 insgesamt n(1'-l+2) Gleichungen vom Typ (2)
berechnen.
-
3 zeigt
das allgemeine Verfahren der zweiten Ausführungsart. Der Prozess beginnt
im Funktionsblock 30 mit dem Lesen des alten geheimen Schlüssels aus
dem Speicher und dem Zwischenspeichern des alten geheimen Schlüssels in
einem Register im Arbeitsblock 31. Der Wert des vorübergehend
in dem Register gespeicherten alten geheimen Schlüssels wird
dann im Funktionsblock 32 zur Berechnung einer Vielzahl
von Zwischenwerten benutzt, und zwar je einen Wert für jeden
Prozessor einschließlich
des die Berechnung durchführenden
Prozessors. Die berechneten Zwischenwerte werden in Register oder
Registerabschnitte geladen und im Arbeitsblock 33 über das
Kommunikationsnetzwerk übertragen.
Dann wartet der Prozessor im Funktionsblock 34 darauf,
die berechneten Zwischenwerte von den anderen Prozessoren zu empfangen,
die er dann im Arbeitsblock 35 in entsprechenden Registern
oder Registerabschnitten speichert. Anschließend berechnet der Prozessor
unter Verwendung der empfangenen Zwischenwerte im Funktionsblock 36 den
neuen geheimen Schlüssel
für den
Zyklus und speichert im Arbeitsblock 37 den neuen geheimen
Schlüssel
vorübergehend
in einem Register. Daraufhin wird der neue geheime Schlüssel im
Funktionsblock 38 in den Speicher geschrieben, und erst
dann wird der alte geheime Schlüssel
im Funktionsblock 39 aus dem Speicher gelöscht.
-
4 veranschaulicht
die bevorzugte Realisierung der zweiten Ausführungsart genauer. Insbesondere
wird gezeigt, dass der alte geheime Schlüssel k
i,l-1 im
Funktionsblock
40 aus dem Speicher gelesen und im Arbeitsblock
41 vorübergehend
in einem Register gespeichert wird. Der Wert des alten geheimen
Schlüssels, der
vorübergehend
in dem Register gespeichert bleibt, dient dann im Funktionsblock
42 zur
Berechnung einer Vielzahl von Zwischenwerten IV
i(j)
gemäß
-
Die berechneten Zwischenwerte IV
i(1)...IV
i(n), wobei
n die Anzahl der Prozessoren ist, werden im Arbeitsblock
43 in
Register oder Registerabschnitte geladen und über das Kommunikationsnetzwerkes übertragen.
Dann wartet der Prozessor s
i im Funktionsblock
44 darauf,
die berechneten Zwischenwerte von den anderen Prozessoren zu empfangen,
und speichert im Arbeitsblock
45 die empfangenen Werte
IV
l(i)...IV
n(i)
in entsprechenden Registern oder Registerabschnitten. Anschließend berechnet
der Prozessor anhand der empfangenen Zwischenwerte im Funktionsblock
46 den
neuen geheimen Schlüssel
für den
Zyklus zu
wobei die Summenbildung entweder
als XOR- (exklusives ODER) oder als modulare Addition oder nach
einem gleichwertigen Verfahren erfolgt. Der neue geheime Schlüssel N
i wird im Arbeitsblock
47 vorübergehend
in einem Register gespeichert. Dann wird der neue geheime Schlüssel im
Funktionsblock
48 in den Speicher geschrieben und erst
dann wird der alte geheime Schlüssel
im Funktionsblock
49 aus dem Speicher gelöscht.
-
Als konkreteres Beispiel ist in 5 das Dreiprozessorsystem
gezeigt. Das gezeigte System ist dem in 1 gezeigten allgemeinen Fall ähnlich und
umfasst die Prozessoren 501 , 502 und 503 ,
die über
ein Kommunikationsnetzwerk 51 miteinander verbunden sind.
Jeder der Prozessoren 50i ist mit
einer der entsprechenden Speichervorrichtungen 521 , 522 bzw. 523 verbunden.
Das Innere aller Prozessoren 50i ist
im Wesentlichen identisch, weshalb die Beschreibung des Prozessors 50l als für die beiden anderen Prozessoren
typisch anzusehen ist. Jeder Prozessor beinhaltet ein Speicherzugriffsverfahren
und ein Register 53, um auf den alten Geheimschlüssel aus der Speichervorrichtung 52 des
Prozessors zuzugreifen. Eine Recheneinheit 54 berechnet
die Zwischenwerte IV11, IV12
und IV13, die in ein Register 55 geladen
werden. Einer der Zwischenwerte, IV11, wird
direkt in einen Abschnitt des Registers 56 geladen, während die
beiden anderen Zwischenwerte jeweils zu den beiden anderen Prozessoren
gesendet werden. Wenn der Prozessor 501 die
durch die Prozessoren 502 bzw. 503 berechneten Zwischenwerte IV21 und IV31 empfangen
hat, werden diese Werte ebenfalls in dem Register 56 gespeichert.
Dann berechnet eine zweite Recheneinheit 57 den neuen Geheimschlüssel und speichert
diesen vorübergehend
in einem Register des Speicherzugriffsverfahrens 58. Das
Speicherzugriffsverfahren 53 und das Speicherzugriffsverfahren 58 können identisch
sein, jedoch müssen
dann getrennte Register bereitgestellt werden, um sowohl den alten
Geheimschlüssel
als auch den soeben neu berechneten Geheimschlüssel zwischenzuspeichern. Dann
schreibt das Speicherzugriffsverfahren den neuen Geheimschlüssel in
den Speicher 521 . Dies kann durch
eine Schreiboperation mit anschließender Lesebestätigung erfolgen, um
sicherzustellen, dass der neue Geheimschlüssel richtig in die Speichervorrichtung 521 geschrieben wurde. Nach Beenden der
Schreiboperation wird der alte Geheimschlüssel mittels des Speicherzugriffsverfahrens 58 aus
der Speichervorrichtung 521 gelöscht.
-
Die beiden Verfahren der ersten und
der zweiten Ausführungsart
können
miteinander kombiniert werden, um einen Kompromiss zwischen Leistungsfähigkeit
und Sicherheit zu erreichen. Zu diesem Zweck wird ein spezieller
Zyklus, ein Hauptzyklus definiert. Beispielsweise kann jeder zehnte
Zyklus ein Hauptzyklus sein. In Zyklen vor und nach dem Hauptzyklus
berechnen die Server ihre Schlüssel
unter Verwendung des ersten (statischen) Verfahrens. In den Hauptzyklen
berechnen die Server ihre Schlüssel
unter Verwendung des zweiten (dynamischen) Verfahrens.
-
Einerseits gilt für jeden einfachen Zyklus die
statische Sicherheit, während
die dynamische Sicherheit nur für
die Hauptzyklen gilt. Andererseits ist die Anzahl der durch den
Benutzer zu berechnenden Gleichungen vom Typ (2) nur der Anzahl
der verstrichenen Hauptzyklen proportional, wenn die Verbindung
zu den Servern nach einer langen Pause wiederaufgenommen wird.
-
Die Anwendungen der vorgestellten
Verfahren sollen die Vertraulichkeit der durch die Verfahren bereitgestellten
Schlüssel
ki,l schützen.
Jedes dieser Verfahren kann erweitert werden, um die Verwendung
der Schlüssel
durch Anwendungen zu ermöglichen,
die nicht in der Lage sind, die Vertraulichkeit der Schlüssel zu schützen. Insbesondere
würde die
Anwendung, anstatt den gemäß den Verfahren
berechneten Schlüssel
k
i,l direkt zu erhalten, den Schlüssel k
i,l erhalten, der einen von k
i,l abgeleiteten
Wert darstellt. Zum Beispiel ist
wobei
x eine Konstante oder eine Funktion von k
i,l,
i und/oder 1 ist.
-
6 veranschaulicht
eine Anwendung der Erfindung zur Authentifizierung von Benutzern.
Der Benutzer 61 gibt in eine vertrauenswürdige (d.
h. sichere) Workstation 62, die mit dem Server s1 in dem verteilten Datenverarbeitungssystem 63 verbunden
ist, eine persönliche
Identifikationsnummer (personal identification number, PIN) ein.
Aufgrund der eingegebenen PIN berechnet die Workstation 62 einen
Zyklusschlüssel,
der eine Funktion der PIN, des Serverstandorts und der Zeit (Zyklusnummer)
ist. Dieser Schlüssel
wird als Sitzungsschlüssel
dieses Zyklus für
die Verbindung mit dem Server s1 verwendet.
Der Server s1 erhält diesen Schlüssel durch
die Verfahren der vorliegenden Erfindung. Alternativ benutzt der
Benutzer 64 eine so genannte „Smartcard" 65, die einen Prozessor und einen sicheren
Speicher besitzt, in dem die PIN des Benutzers enthalten ist.
-
Die PIN wird von der „Smartcard" 65 zur Authentifizierung
des Benutzers und zur Berechnung eines Sitzungsschlüssels für den Zyklus
als Funktion aus der Serverkennung und der Zeit (Zyklusnummer) verwendet.
-
Obwohl die Erfindung mittels bestimmter
bevorzugter Ausführungsarten
beschrieben wurde, ist dem Fachmann klar ersichtlich, dass die Erfindung
auch mit Änderungen
innerhalb des Geltungsbereichs der beiliegenden Ansprüche realisiert
werden kann.