-
Die
vorliegende Erfindung betrifft Integrierte-Schaltung-Karten zum
Steuern des Zugriffs zu einer darauf enthaltenen Mehrzahl von Dateien
durch Verwendung von Zugriffsberechtigungsreferenzdaten.
-
Konventionelle
Integrierte-Schaltung-Karten (nachfolgend IC-Karten genannt) weisen üblicherweise
einen zweistufigen logischen Aufbau auf, wie er in 12 dargestellt
ist. Der interne Speicher 200 der IC-Karte enthält eine
einzige Mutterdatei 201 in der ersten Ebene sowie eine
Mehrzahl von Tochterdateien, 202, 203, in der
zweiten Ebene. Die Tochterdateien 202, 203 sind
für verschiedene
Anwendungen einsetzbar. Die Mutterdatei 201 wird für eine Mehrzahl
von Anwendungen verwendet und speichert gemeinsame Daten 204 wie
Namen, Adresse und Telefonnummer des Karteninhabers sowie einen von
der jeweiligen Anwendung unabhängigen
Globalschlüssel 205.
In den Tochterdateien 202, 203 sind anwendungsspezifische
Daten 206, 208 und ein lokaler Schlüssel 207, 209 gespeichert.
Der globale Schlüssel 205 und
die lokalen Schlüssel 207, 209 (nachfolgend
gemeinsam als Schlüssel
bezeichnet) werden dazu verwendet, den Zugriff zur Mutterdatei 201 und
den Tochterdateien 202, 203 zu steuern; Zugriff
zur allgemeinen Datei 204 und den anwendungsorientierten
Daten 206, 208 wird nur gewährt, nachdem der erforderliche
Schlüssel
als korrekt überprüft wurde.
-
Die
konventionelle IC-Karten-Dateienstruktur weist nur zwei Ebenen auf,
und die Zugriffsteuerung ist darum ebenfalls auf diese beiden Ebenen
begrenzt. Das heißt,
wenn der globale Schlüssel 205 als
korrekt überprüft wurde,
ist der Zugriff zu den allgemeinen Daten 204 und auch zu
den anwendungsspezifischen Daten 206, 208 möglich, und
wenn nur ein lokaler Schlüssel 207, 209 verifiziert
wurde, besteht Zugriff zu den spezifischen Daten der durch den verifizierten
lokalen Schlüssel
geschützten
Datei.
-
Aus
dieser Dateienstruktur ergeben sich zwei Probleme. Es kann als erstes
kein Dateienaufbau mit drei oder mehr Ebenen verwendet werden, weil
die Zugriffprüfmethode
auf eine zweistufige Dateistruktur begrenzt ist. Wird beispielsweise
eine Enkeldatei (in den Figuren nicht dargestellt) eingerichtet,
die einer Tochterdatei 202 zugeordnet ist, kann es erforderlich
sein, dass der lokale Schlüssel 207 als
globaler Schlüssel
für die
abhängige
Enkeldatei wirkt, was jedoch nicht möglich ist.
-
Zweitens
hat jeder, der den globalen Schlüssel 205 kennt
(üblicherweise
der Kartenherausgeber), Zugriff zu den anwendungsspezifischen Daten 206, 208,
ohne dass diesem Herausgeber die lokalen Schlüssel 207, 209 bekannt
sind. Es ist also nicht möglich,
anwendungsspezifische Dateien zu schaffen, zu denen die die Karten
ausgebende Stelle keinen Zugriff hat; Dateiensicherheit kann nicht
gewährleistet
werden.
-
Aus
FR-A-2 635 891 (entspricht US-A-985 615) ist eine IC-Karte bekannt,
bei der eine erste Art von Schlüsseldaten
verwendet wird, um eine Entscheidung "Zugriff berechtigt/nicht berechtigt" für eine allgemeine
Datei und alle anwendungsorientierten Dateien zu treffen, und eine
zweite Art von Schlüsseldaten
für eine
Entscheidung "Zugang
berechtigt/nicht berechtigt" für eine besondere
Anwendungsdatei und die allgemeine Datei. Ein Speicherabschnitt
zum Speichern der für
die allgemeine Datei registrierten Schlüsseldaten und ein Speicherabschnitt
zum Speichern eines Sortierergebnisses von für die anwendungsorientierten
Dateien registrierten Schlüsseldaten
sind getrennt voneinander angeordnet. Nach der Wahl einer anwendungsorientierten Datei
wird, wenn eine anwendungsorientierte Datei gewählt wird, die sich von der
derzeitig gewählten
anwendungsorientierten Datei unterscheidet, das letztgenannte Sortierergebnis
in einen unsortierten Zustand versetzt. Schlüsseldaten sind also nur dann wirksam,
wenn eine entsprechende Anwendung gewählt wird.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, die oben angeschnittenen
Probleme dadurch zu lösen,
dass eine IC-Karte vorgeschlagen wird, die mit einer hierarchischen
Dateienstruktur kompatibel ist und die Vertraulichkeit von Dateien
des Kartenbenutzers schützt.
-
Um
diese Aufgabe zu lösen,
enthält
eine IC-Karte nach der vorliegenden Erfindung eine Prozesssteuerung,
nicht-flüchtige
Speichermittel und flüchtige
Speichermittel, wie sie in Anspruch 1 spezifiziert sind.
-
Eine
mit einem hierarchischen Dateienaufbau kompatible Zugriffsberechtigungssteuerung
wird dadurch ermöglicht,
dass für
jede Datei eine Kontrollmöglichkeit
für die
Zugriffsberechtigung vorhanden ist und diese Zugriffsberechtigungskontrolle
bei der Entscheidung, ob Dateizugriff gewährt werden soll oder nicht,
in der zu überprüfenden Schlüsselinformation
die Zahl der Ebene für
die zugeordnete Datei enthält.
Dadurch, dass die Zugriffsbedingungen so gesteuert werden, dass
ausschließlich
die Schlüsselinformation
der bestimmten Datei als Referenz dient, können unabhängig vom Kartenherausgeber
Dateien eingerichtet werden.
-
Die
vorliegende Erfindung wird nachfolgend anhand einer detaillierten
Beschreibung und beigefügter
Diagramme erläutert.
Es zeigt:
-
1 ein
Blockdiagramm einer IC-Karte nach einer Ausführungsform der Erfindung,
-
2 ein
Blockdiagramm des nicht-flüchtigen
Speichers einer IC-Karte nach der Erfindung,
-
3 ein
Blockdiagramm der Schlüsseldateistruktur
in einer IC-Karte nach der Erfindung,
-
4 ein
Diagramm des RAM in einer IC-Karte nach der Erfindung,
-
5 ein
Blockdiagramm der Dateienstruktur in einer IC-Karte nach der Erfindung,
-
6 ein
Blockdiagramm des Verzeichnisses in einer IC-Karte nach der Erfindung,
-
7 ein
Flussdiagramm eines Teiles des Steuerverfahrens für die Zugriffberechtigung
in einer IC-Karte nach der Erfindung,
-
8 ein
Diagramm des RAM in einer IC-Karte nach der Erfindung,
-
9 ein
Flussdiagramm eines Teiles des Steuerverfahrens für die Zugriffberechtigung
in einer IC-Karte nach der Erfindung,
-
10 ein
Diagramm des RAM in einer IC-Karte nach der Erfindung,
-
11 ein
Diagramm des RAM in einer IC-Karte nach der Erfindung und
-
12 ein
Blockdiagramm des Speichers in einer bekannten IC-Karte.
-
Nachfolgend
wird eine Ausführungsform
einer IC-Karte mit einer hierarchischen Dateienstruktur nach der
Erfindung mit Bezug auf die beigefügten Zeichnungen beschrieben.
-
In 1 ist
ein Blockdiagramm der Ausführungsform
dieser IC-Karte 1 dargestellt, die eine Prozesssteuerung 2,
RAM 3 sowie einen nicht-flüchtigen Speicher 4 enthält. Die
Prozesssteuerung 2 umfasst eine Eingang/Ausgang-Steuerung 5 und
einen Kommandoprozessor 6. Der Kommandoprozessor 6 weist
eine Zugriffsteuerung 7 mit einem ersten Komparator 8 zum
Vergleichen der eingegebenen Schlüsseldaten mit den gespeicherten
Schlüsseldaten
auf sowie einen zweiten Komparator 9 zum Vergleichen von
8-Bit Daten, die im RAM 3 gebildet werden, mit 8-Bit Daten,
die im Speicher 4 gespeichert sind, wie später noch
detailliert beschrieben wird. Die Prozesssteuerung 2 kann
als Hardware in Form von CPU, ROM und Eingang/Ausgang-Steuerung
oder mit Hilfe anderer Vorrichtungen vorhanden sein, ist aber in 1 als
ein Verarbeitungsblock dargestellt, der als in einer ROM-Anordnung
gespeichertes Software-Programm ausgelegt ist. Ein Detail dieser
Prozesssteuerung 2 wird nachfolgend beschrieben.
-
Der
nicht-flüchtige
Speicher 4 speichert eine Mehrzahl von Dateien, wie in 2 dargestellt,
in einer logischen Dateienstruktur mit fünf Ebenen. Auf Ebene 1 ist
ein Hauptverzeichnis, eine Schlüsseldatei 10 und
eine Datendatei 11 vorhanden. Jede der Ebenen 2 bis 5 enthält ein oder
mehrere Verzeichnisse, Schlüsseldateien
und Datendateien. Ebene 2 zum Beispiel enthält zwei Verzeichnisse, zwei Schlüsseldateien
und zwei Datendateien 21 und 22.
-
In 3 ist
dargestellt, dass die Schlüsseldatei 20 für Ebene
2 acht Schlüsselfelder
enthält
und jedes Schlüsselfeld
einen Schlüssel-Speicherbereich 20a aufweist,
in der eine Schlüssel-Flag
anzeigt, ob Schlüsseldaten
gespeichert sind oder nicht, sowie einen Schlüsseldatenbereich 20b,
in dem Schlüsseldaten
gespeichert werden. So kann die Schlüsseldatei maximal acht verschiedene
Schlüssel
speichern. Solche Schlüssel
können
vom Halter (Benutzer) und/oder dem Herausgeber (Bank, Telefongesellschaft
usw.) der IC-Karte registriert werden. Die anderen Schlüsseldateien
sind wie Schlüsseldatei 20 aufgebaut.
-
Jede
Datendatei und jede Schlüsseldatei wird
vom Verzeichnis 61 verwaltet, das eine Adressenangabe 91 für die aktuelle
Ebene und eine Mutter-Adressenangabe 92 zur Anzeige des
Mutterverzeichnisses enthält,
wie aus 6 hervorgeht.
-
In 5 ist
dargestellt, dass jede Datendatei, beispielsweise Datei 32 der
dritten hierarchischen Ebene 3, einen Datenbereich zum Speichern
von Daten umfasst. Außerdem
gehört
zu jeder Datendatei eine Zugriffberechtigungssteuerung (access condition
controller: ACC) 80, die eine Zugriffschlüsselfeld-Bezeichnungstabelle 81 und
einen logischen Bedingungsbereich 82 aufweist. Der logische
Bedingungsbereich 82 enthält ferner einen Einstellbereich 83 für die Bedingung
des horizontalen Abgleichs sowie eine Einstelltabelle 84 für vertikale
Abgleichbedingungen. Die in der Zugriffberechtigungssteuerung 80 für die Datendateien
eingegebenen Werte sind für jede
Datei unterschiedlich.
-
Die
Zugriffschlüsselfeld-Bezeichnungstabelle 81 wird
im allgemeinen vom Kartenherausgeber festgelegt und gibt die Schlüsselfelder
an, deren gespeicherte Schlüsseldaten
eine Verifizierung erfordern. Bei dem angegebenen Beispiel sind
die Schlüsselda ten
der Schlüsselfelder
1 und/oder 2 zu verifizieren. Wenn vor dem Erlauben eines Zugriffs
auf die Datei beide Schlüsseldatensätze aus
den Schlüsselfeldern
1 und 2 zu verifizieren sind, wird der Einstellbereich 83 für die horizontale
Abgleichbedingung auf "1" gestellt; reicht
jedoch mindestens eines der Schlüsseldaten
der Schlüsselfelder
1 und 2 aus, so wird der Einstellbereich 83 für die horizontale
Abgleichbedingung auf "0" gesetzt. Das heißt, dass
der Einstellbereich 83 für die horizontale Abgleichbedingung
eine logische UND- oder ODER-Bedingung für die bezeichneten Schlüsselfeldzahlen
setzt.
-
Die
Einstelltabelle 84 für
die vertikale Abgleichbedingung wird im allgemeinen ebenfalls vom Kartenherausgeber
festgelegt und gibt die Ebenen vor, aus denen die Schlüsseldateien
genommen werden und zum Prüfen
verwendet werden. Die in der Tabelle 84 für die vertikale
Abgleichbedingung gespeicherten Daten werden zum Steuern von Schaltern
SW1 bis SW5 verwendet, die in den mit dem ODER-Gatter 70 in 4 verbundenen
Leitungen eingefügt
sind, was später
noch erläutert
wird. In dem gegebenen Beispiel ist angezeigt, dass die Schlüsseldateien
der Ebenen 1, 2 und 3 zum Überprüfen verwendet
werden können.
-
RAM 3 enthält eine
Schlüsselverifikationsanzeigetabelle 71,
die in fünf
den fünf
Ebenen der hierarchischen Struktur in 2 entsprechende
Felder unterteilt ist. Jedes Feld umfasst acht Bits, die acht Schlüsselfeldzahlen
entsprechen (wobei Bit 1 der Schlüsselfeldzahl 1 äquivalent
ist). Ist zum Beispiel die Schlüsseldatenangabe
in Schlüsselfeld
1 der Ebene 1 verifiziert worden, wird der Indikator in der rechten
oberen Ecke der Schlüsselverifikationsanzeigetabelle 71 auf "1" gestellt, wie aus 4 hervorgeht.
Ist die Schlüsseldatenangabe
im Schlüsselfeld 2
der Ebene 3 verifiziert, wird der Indikator im entsprechenden Bereich
der Schlüsselverifikationsanzeigetabelle 71 auf "1" gestellt. Eine Anzeige "1" in Tabelle 71 bedeutet, dass
der entsprechende Schlüssel
verifiziert wurde.
-
Weiter
enthält
RAM 3 eine logische ODER-Tabelle 72, die ein logisches
ODER entlang jeder Spalte der Tabelle 71 durch ein ODER-Gatter 70 ausführt, das
mit RAM 3 assoziiert ist. In dem oben beschriebenen Beispiel
sind die beiden rechten Bits "1" und die restlichen
Bits "0". Schalter SW1 bis SW5
sind in fünf
Eingangsleitungen zum ODER-Gatter 70 angeordnet. Die Schalter
SW1 bis SW5 stellen sich auf EIN, wenn das entsprechende Bit in
der Einstelltabelle 84 für die vertikale Abgleichbedingung "1" ist. Dementsprechend sind bei diesem
Beispiel in 5 die Schalter SW1 bis SW3 auf
EIN und die Schalter SW4 und SW5 auf AUS geschaltet. Anstelle des
ODER-Gatters kann
ein UND-Gatter bei 70 verwendet werden.
-
Für die Betriebsweise
sei angenommen, dass Datei 32, die beispielsweise für die Bargeldauszahlung
einer Bank gilt, ausgewählt
wurde, Zugriff zu gewähren.
-
Als
erstes führt
der Kartenbenutzer die IC-Karte in einen Geldautomaten ein (nicht
dargestellt). Nach dem Einführen
der IC-Karte sendet der Geldautomat über Ein-/Ausgang 5 an
den Kommandoprozessor 6 automatisch Identifikationsschlüsseldaten,
die Daten enthalten, welche die Schlüsseldatei 10 in Ebene
1 bezeichnen, sowie Daten, die das Schlüsselfeld 1 bezeichnen. Dann
liest die Zugriffsteuerung 7 entsprechend den von Ebene
1 und Schlüsselfeld
1 empfangenen Daten die in Schlüsselfeld
1 der Schlüsseldatei 10 in
Ebene 1 gespeicherten Daten und vergleicht im Komparator 8 die
empfangenen Identifikationsschlüsseldaten
mit den in Schlüsselfeld
1 der Schlüsseldatei
in Ebene 1 gespeicherten Daten. Passen diese beiden Schlüssel, dann
erzeugt der erste Komparator 8 eine "1",
die in RAM 3, genauer in Tabelle 71 in dem Schlüsselfeld
1 in Ebene 1 entsprechenden Bereich gespeichert wird.
-
Danach
betätigt
der Benutzer eine "Auszahlung"-Taste am Geldautomaten
und gibt seine eigenen geheimen Schlüsseldaten über ein Tastenfeld ein. Durch
das Niederdrücken
von "Auszahlung" wird die Zugriffsteuerung 7 davon
informiert, dass Schlüsseldaten
zum Abgleich in Schlüsselfeld
2 der Schlüsseldatei 30 in
Ebene 3 gespeichert sind. Anschließend werden im Komparator 8 die
vom Benutzer eingegebenen geheimen Schlüsseldaten mit den in Schlüsselfeld
2 der Schlüsseldatei 30 in
Ebene 3 gespeicherten Schlüsseldaten
verglichen. Stimmen die beiden Schlüsseldaten überein, erzeugt der erste Komparator 8 wieder
eine "1", die in RAM 3,
in Tabelle 71 in einem Bereich gespeichert wird, die dem Schlüsselfeld
2 in Ebene 3 entspricht.
-
In
der Zwischenzeit führt
ODER-Gatter 70 aus jeder Spalte der Tabelle 71 eine
logische ODER-Verknüpfung
durch, d.h. aus der gleichen Zahl Schlüsselfelder, und spei chert das
Ergebnis in Tabelle 72. Die in Tabelle 72 gespeicherten
8-Bit Daten werden dem zweiten Komparator 9, einem 8-Bit-Komparator,
zugeführt,
um die in der Zugriffschlüsselfeld-Bezeichnungstabelle 81 gespeicherten 8-Bit
Daten zu vergleichen. Abhängig
von dem Bedingungseinstellbereich 83 für den horizontalen Abgleich
wird bei Erfüllung
der Bedingung durch diese beiden Daten Zugriff zur Datendatei 32 gewährt.
-
Der
Vorgang des Zugriffs auf die Datendatei 32 in Ebene 3 wird
noch im Detail beschrieben. Wie bereits erwähnt wird der Dateiwahlbefehl
in den Ein-/Ausgang 5 eingegeben und vom Kommandoprozessor 6 ausgelegt.
Der Kommandoprozessor 6 sucht nach dem von der externen
Vorrichtung (z.B. dem Geldautomaten) spezifizierten Dateinamen und, wenn
er ihn findet, leitet er die Steuerung an die Zugriffsteuerung 7 weiter.
-
Bisher
bezog sich die Beschreibung auf das Lesen des Datenbereiches, es
ist aber auch eine den Zugriff steuernde Bedingungskontrolle für das Schreiben
vorhanden. Außerdem
ist eine Steuerung für
die Zugriffrechte zu jeder Funktion, einschließlich Schlüsselregistrierung und Eingabe
des derzeit neuesten Standes, vorhanden.
-
Abhängig von
den Einstellungen im Bedingungseinstellbereich 83 für horizontalen
Abgleich und in der Bedingungseinstelltabelle 84 für den vertikalen
Abgleich kann der Zugriff auf unterschiedliche Weise gesteuert werden.
Ein typisches Beispiel wird nachfolgend beschrieben. Bei diesem
Beispiel werden ein Kartenherausgeberschlüssel (Schlüssel Nummer 1) und eine Karteninhaber-Personenidentifikationszahl
(PIN) als Schlüssel
Nummer 2 in Schlüsseldatei 10 (Ebene
1) gespeichert und ein Terminal-Schlüssel (Schlüssel Nummer
1), der in Schlüsseldatei 30 gespeichert
ist, wird für
den Anwendungsfall benutzt, der die Datendatei 32 im Terminal
benutzt.
-
Wenn
für diesen
Anwendungsfall zur Verifikation von sowohl PIN als auch Terminal-Schlüssel das
Lesen des Datenbereiches der Datei 32 erforderlich ist,
dann wird für
die Lesefunktion des Datenbereiches die horizontale Zugriffbedingung
auf das logische Produkt (im horizontalen Einstellbereich festgelegt)
von Schlüssel-Nmmer-1
Schlüssel
und Schlüssel-Nummer-2
Schlüssel
(in Zugriffschlüsselfeld-Bezeichnungstabelle 82 festgelegt)
eingestellt. Wenn bei der Ausgabe der Karte der Schlüssel des Kartenherausgebers
anstelle des Terminal-Schlüssels
verwendet wird, werden, um eine Bearbeitung zu ermöglichen,
solche Teile der Bedingungstabelle 84 zum vertikalen Abgleich,
die den Ebenen 1 und 3 entsprechen, auf "1" gesetzt.
Um im umgekehrten Fall den Datenbereich vor einem Zugriff auch durch
den Kartenherausgeber zu schützen,
wird in der Bedingungstabelle 84 zum vertikalen Abgleich
nur die Ebene 3 auf "1" gesetzt. Auf diese
Weise können
Privatdateien auf der IC-Karte geschaffen werden, die gegen einen
Zugriff des Kartenherausgebers geschützt sind.
-
Um
es dem Karteninhaber zu ermöglichen, die
PIN ohne Hilfe des Kartenherausgebers auf den neuesten Stand zu
bringen, und um es dem Kartenherausgeber zu ermöglichen, Hilfe zu leisten,
falls der Karteninhaber seine PIN vergisst, wird die horizontale
Zugriffbedingung durch Einstellen des Bedingungsbereiches 83 für den horizontalen
Abgleich auf "0" gesetzt, um eine
logische ODER-Verknüpfung
der Schlüssel-Nummern 1 und 2 für die Update-Funktion der
PIN durchzuführen.
-
Es
ist auf diese Weise also möglich,
Dateien vorzusehen, die vom Herausgeber unabhängig sind, und den Zugriff
auf unterschiedliche Weise zu steuern. Außerdem wird die Anzahl der
Datei-Ebenen durch diese Art der Zugriffsteuerung nicht begrenzt.
-
Der
Aufbau der vertikalen Abgleichbedingungstabelle 84 in dieser
Ausführungsform
wurde so beschrieben, dass die Nummer der Ebene, die in den logischen
ODER-Verknüpfungen
verwendet wird, spezifiziert wird; der Aufbau wird jedoch nicht
darauf eingeschränkt.
Es kann jedes Verfahren verwendet werden, mit dem die Identifikation
des Berechnungsverfahrens des logischen ODER möglich ist.
-
Nachfolgend
wird das Verfahren beschrieben, mit dem die Information der Schlüsselverifikationstabelle 71 (nachfolgend
als Schlüsselinformation bezeichnet)
entweder erhalten oder zerstört
wird, wenn eine andere Datei ausgewählt wird. Vorzugsweise können Schlüssel für die höheren Ebenen ebenfalls
als globale Schlüssel
für Dateien
niedrigerer Ebenen dienen. Ein typisches Beispiel dafür ist die
PIN. Kartenbenutzer möchten
häufig
die gleiche PIN für
mehrere Zwecke verwenden. In diesem Fall wird die eine PIN in der
höchsten
Ebene des Datenstrukturzweiges registriert, in dem die Mehrzahl
von Dateien gespeichert sind, anstatt die PIN mit jeder Datei zu
speichern.
-
So
kann eine einzige PIN für
den Zugriff zu allen Dateien verwendet werden, die in der Hierarchie
weiter unten angesiedelt sind. Dieses Globalschlüsselkonzept ist nicht auf PIN-Anwendungen
begrenzt, sondern ist für
jeden gewünschten
Schlüssel zu
verwenden. Anstatt nur den in der höchsten Ebene der Dateienstruktur
registrierten Schlüssel
als Globalschlüssel
auszulegen, kann es von Nutzen sein, jeden für eine Ebene n registrierten
Schlüssel als
Globalschlüssel
für Dateien
einzurichten, die auf Ebenen unterhalb der Ebene n in der Hierarchie
gespeichert sind.
-
Um
dieses zu ermöglichen,
muss die Schlüsselinformation
für Dateien
auf einem gemeinsamen Zweig der Dateistruktur erhalten bleiben,
wenn zwei oder mehr Dateien ausgewählt werden. Wenn es sich in 2 bei
der zuerst ausgewählten
Datei um die Datei 32 handelt und die danach ausgewählte Datei die
Datei 41 ist, bleibt die Schlüsselinformation bis zur Ebene
2 erhalten, weil die Zweige, auf denen Datei 32 und Datei 41 angeordnet
sind, von der gleichen Ebene, nämlich
Ebene 2 ausgehen. Da die Schlüsseldatei 30 für Datendatei 32 (Ebene
3) keine Beziehung zur Datei 41 hat, muss jedoch der Zugriff
zur Datei 41 mit der Schlüsseldatei 30 aus Sicherheitsgründen verboten
sein. Die Schlüsselinformation
für Ebene
3 wird darum vernichtet.
-
Damit
dieses Verfahren auf unterschiedliche Fälle angewendet werden kann,
enthält
die Schlüsselverifikationstabelle 71 in 4 Felder
für jede Ebene,
wie oben beschrieben, und jedes Dateiverzeichnis enthält die in 6 dargestellte
Information (zusätzlich
zu Dateiadresse und anderen Informationen). In 6 ist
nur die Information dargestellt, die für diese Beschreibung erforderlich
ist.
-
Es
wird darauf hingewiesen, dass jedes Verzeichnis die gleiche, in 6 dargestellte
Information enthält.
Das derzeit gültige
Verzeichnis 91 ist gleich der Zahl der derzeitigen Ebene,
in der die Datei angeordnet ist; für Datei 32 ist es "3". Der Herkunftszeiger 92 gibt
(z.B. die Position des Verzeichnisses der Mutterdatei) die Mutterdatei
dieser Datei an. So speichert das Verzeichnis der Datei 32 "das Verzeichnis der
Datei 22" als
Herkunftszeiger 92. Da es für Datei 11 keine Mutterdatei
gibt, wird eine solche Information an den Herkunftsdateizeiger der
Datei 11 geschrieben.
-
Anhand
der 7 wird nachfolgend die mit dieser Information
durchgeführte
Verarbeitung beschrieben. 7 ist ein
Flussdiagramm für
einen Teil der Zugriffsteuerung 7 aus 1,
insbesondere für die
Verarbeitung der Schlüsselinformation
in der Dateienwahlbefehlverarbeitung. Es wird bemerkt, dass in der
folgenden Beschreibung zuerst die Datei A (Datendatei 32)
gewählt
wird und danach die Datei B (Datendatei 41).
-
(1) Schritte 301–304
-
Die
Nummern der Ebenen der Datendateien A (32) und B (42) werden verglichen.
Sind sie gleich, wird X mit der Dateinummer der Datei A und Y mit
der Dateinummer der Datei B registriert und die Verarbeitung schreitet
nach (2) fort.
-
Sind
sie unterschiedlich, wird X mit der Dateinummer einer Datei mit
einer höheren
Ebenennummer (in diesem Fall X-32) registriert. Für die Datei
mit einer niedrigeren Ebenennummer wird der Dateienbaum von unten
nach oben abgesucht, bis die der Ebenennummer von X gleichwertige
Ebene erreicht ist, und die erreichte Dateinummer wird in Y registriert
(in diesem Fall Y-31). Dann schreitet die Verarbeitung zu (2) fort.
-
(2) Schritte 305–308
-
Die
für die
in X und Y registrierten Dateien gemeinsame Ebenennummer wird festgestellt
und bei L registriert (in diesem Fall L-3). Bei Schritt 306 wird
festgestellt, ob X = Y. Da in diesem Fall X = 32 und Y = 31, schreitet
die Verarbeitung nach Schritt 308 weiter, wo X und Y mit
der Nummer der Mutterdatei der derzeit angegebenen Datei registriert
werden. Bei Schritt 308 werden also X = 22 und Y = 22 gesetzt.
Erneut bei Schritt 305 wird die gemeinsame Ebenennummer
der Dateien von X und Y festgestellt und bei L registriert (in diesem
Falle L-2). Sind die bei X und Y registrierten Dateien nicht die
gleiche Datei, werden X und Y wieder zu ihren Mutterdateien zurücküberwiesen
und die Schleife wird wiederholt, bis X = Y erreicht ist. Werden
bei Schritt 306 X und Y mit derselben Datei registriert,
d.h. X = Y, schreitet die Verarbeitung nach Schritt 307 weiter.
Bei Schritt 307 bleibt die Schlüsselinformation von Ebene 1
bis Ebene L erhalten und die Schlüsselinformation für Ebenen
unterhalb L wird gelöscht,
um die Schleife zu beenden.
-
Schleife
(2) wird also wiederholt, bis X und Y gleich sind. Da es auf einer
IC-Karte nur eine Quellendatei gibt, wie in 2 dargestellt,
endet die Schleife immer mit L1. Die Ebenennummern jeder in 6 dargestellten
Datei werden verwendet, um die Ebenennummern von X und Y festzustellen,
und der Herkunftzeiger wird verwendet, um die Mutterdatei jeder
Datei festzustellen.
-
Mit
Bezug auf die in 2 dargestellte Dateienstruktur
wird nachfolgend beschrieben, dass dieses Verfahren unterschiedlichen
Anwendungsfällen angepasst
werden kann.
-
Handelt
es sich bei der zuerst ausgewählten Datei
(Datei A) um Datei 32 (Ebene 3) und bei der danach ausgewählten Datei
(Datei B) um Datei 51 (Ebene 5), dann X = Datei 32,
weil Datei 32 sich auf einer höheren Ebene befindet. Um die
Mutterdatei der Datei 51 zu finden, wird zur Ebene 3 zurückgegangen,
dabei wird Y an der Datei 32 gesetzt. Ebene L ist damit
3. Da X = Y = Datei 32, bleibt die Schlüsselinformation für die Ebenen
1–3 erhalten
und die Schlüsselinformation
für Ebenen
4 und 5 wird aufgegeben. In diesem Fall ergibt sich jedoch tatsächlich keine Änderung,
da die zuerst ausgewählte
Datei (Datei 32) sich auf Ebene 3 befand.
-
Handelte
es sich jedoch bei der zuerst ausgewählten Datei (Datei A) um Datei 51 (Ebene
5) und um die danach ausgewählte
Datei (Datei B) um die Datei 32 (Ebene 3), bleibt die Schlüsselinformation für die Ebenen
1–3 erhalten
und die für
die Ebenen 4 und 5 abgerufenen Schlüsselinformationen werden vernichtet.
-
Wenn
in einem anderen Fall die zuerst gewählte Datei (Datei A) Datei 41 (Ebene
4) ist und die danach ausgewählte
Datei (Datei B) die Datei 51 (Ebene 5), dann X = Datei 41,
Y = Datei 42 und L = 4. Da es sich bei X und Y um unterschiedliche
Dateien handelt, werden die Mutterdateien beider Dateien lokalisiert,
um X und Y gegenüber
Datei 31 bzw. Datei 32 neu zu definieren. Die
Ebene L ist 3. Da sich X und Y immer noch auf verschiedene Dateien
beziehen, werden die Mutterdateien wieder gesucht, was zu X = Mutterdatei 22 und
Y = Mutterdatei 22 führt. Jetzt
passen X und Y und die Ebene L = 2. Die Schlüsselinformation für die Ebenennummern
1 und 2 bleibt darum erhalten und alle Schlüsselinformationen für die Ebenen
3–5 wird
vernichtet.
-
Handelt
es sich bei der zuerst ausgewählten Datei
und der danach ausgewählten
Datei um dieselbe Datei, dann kann der Dateienzugriff mit diesem Verfahren
immer noch korrekt durchgeführt
werden.
-
Bisher
hat sich die Beschreibung des Dateienaufbaus auf ein Dateiensystem
beschränkt,
bei dem zu einem Zeitpunkt nur eine Datei geöffnet und benutzt werden kann.
Wenn es bei einer solchen Beschränkung
des Dateiensystems, d.h., dass zu einem gegebenen Zeitpunkt nur
eine Datei geöffnet sein
kann, erforderlich wird, Zugriff zu einer weiteren Datei zu bekommen,
während
mit der ersten Datei noch gearbeitet wird, dann muss die erste Datei
geschlossen werden, die für
den Zugriff gewünschte Datei
gewählt
und der erforderliche Schlüssel
verifiziert werden, bevor mit der Arbeit fortgefahren werden kann.
Die Wiederholung dieser Folge von Verfahrensschritten wird immer
ineffizienter, wenn zwei Dateien im Wechsel benutzt werden müssen. Es wäre darum
wesentlich einfacher und eine große Hilfe, wenn gleichzeitig
auf mehr als eine Datei zugegriffen und mehr als eine Datei geöffnet werden
könnte.
-
Zur
Vereinfachung der folgenden Beschreibung wird nachfolgend der Prozess,
mit dem gleichzeitig zwei Dateien geöffnet und auf diese Zugriff
gewährt
wird, mit Hilfe von zwei Kanalbezeichnungen (A, B) beschrieben.
Auf welchen der beiden geöffneten
Dateien zugegriffen wird, wird durch die im Befehl enthaltene Kanalbezeichnung
spezifiziert. Um das gleichzeitige Öffnen von zwei Dateien zu ermöglichen,
sind getrennte Schlüsselverifikation-Anzeigetabellen, 71, 73,
für jeden
Kanal im RAM 3 vorgesehen, wie aus 8 hervorgeht.
Die Schlüsselverifikation-Anzeigetabelle 73 für den Kanal
B weist kein Feld für
Ebene 1 auf, weil Ebene 1 immer beiden Kanälen gemeinsam ist.
-
Ob
die Schlüsselinformation
erhalten bleibt oder vernichtet wird, hängt von der Ebenenstruktur der
Datei ab und nicht vom Kanal. Mit anderen Worten, handelt es sich
bei den zuerst ausgewählten
Dateien in den Kanälen
A und B um die Dateien P und Q und bei der danach ausgewählten Datei
im Kanal A um die Datei R, dann bleibt die Summe aus der Schlüsselinformation,
die dem gemeinsamen Zweig der Dateien P und R gemeinsam ist, und
die Schlüsselinformation,
die dem gemeinsamen Zweig der Dateien Q und R gemeinsam ist, erhalten.
-
Es
sei angenommen, dass Datei 41 in 2 die Datei
P ist, dass es sich bei Datei 51 um die Datei Q und bei
Datei 43 um die Datei R handelt. Nach dem oben beschriebenen
Verfahren bleibt die Schlüsselinformation
für die
Ebene 2 erhalten, weil zwischen den Dateien 41 und 43 eine
Relation besteht. Zusätzlich
bleibt die Schlüsselinformation
zur Ebene 3 aufgrund der Relation zwischen Dateien 51 und 43 erhalten.
Da erstere Schlüsselinformation
auch im letzteren Schlüsselinformationssatz
enthalten ist, enthält die
Schlüsselinformation
für Kanal
A die Schlüsselinformation
für letztere,
d.h. für
Ebene 3, die den Dateien 51 und 43 gemeinsam ist.
-
Nachfolgend
wird mit Bezug auf 9 das Verfahren beschrieben,
mit dem dieser Prozess auf alle Fälle angewendet wird. 9 ist
ein Flussdiagramm für
einen Teil der in 1 dargestellten Zugriffsteuerung 7,
insbesondere für
die Verarbeitung der Schlüsselinformation
für Kanal
A.
-
(1) Schritt 311
-
Die
Schlüsselinformation
für Kanal
A wird abhängig
von der Relation der Dateien P und R entweder erhalten oder zerstört. (Das
spezifische Verfahren entspricht dem oben beschriebenen Prozess
für ein
Dateiensystem, bei dem nur eine Datei zur Zeit geöffnet sein
kann.)
-
(2) Schritt 312
-
Die
Nummern der Ebenen 1 - L, für
die die Schlüsselinformation
erhalten bleiben soll, werden der Relation zwischen den Dateien
Q und R entnommen. (Die spezifische Methode entspricht dem oben für ein Dateiensystem
beschriebenen Prozess, bei dem zu einer Zeit nur eine offene Datei
möglich
ist.)
-
(3) Schritt 313
-
Die
Schlüsselinformation
für Kanal
B für die Ebenen
2 - L wird zu der Schlüsselinformation
für Kanal
A hinzukopiert. (Die Schlüsselinformation
für Kanal
B ändert
sich nicht, weil bei den ausgewählten Dateien
keine Veränderung
eintritt).
-
Dieser
Prozess wird mit Bezug auf 2 nachfolgend
detaillierter beschrieben; dabei wird angenommen dass es sich bei
Datei 41 um Datei P, bei Datei 51 um Datei Q und bei
Datei 42 um Datei R handelt. Ist der initialisierte Zustand
wie in 8 dargestellt, dann enthält die Schlüsselinformation für den Kanal
A als Ergebnis des Schrittes 311 die Daten für die Ebenen
1 und 2, wie in 10 dargestellt.
-
Das
Kopieren der Schlüsselinformation
für Ebene
2 ist im obigen Schritt 313 überflüssig, weil die Ebene 2 allen
drei Dateien, 41, 51 und 43, gemeinsam
ist. Das hier beschriebene Verfahren ist immer noch außerordentlich
effektiv, wenn bedacht wird, dass es jede beliebige Anzahl von Möglichkeiten
gibt, unterschiedliche Dateien auszuwählen, und es kann auf alle
möglichen
Fälle angewendet
werden und bleibt dabei außerordentlich
einfach. Es ist schwierig, bei jeder der vielen möglichen
ausgewählten
Dateien die einer Mehrzahl von Dateien gemeinsamen Zweige festzustellen
und dabei Redundanz zu vermeiden; das vorliegende Verfahren ist
dabei wirksam.
-
Ein
weiterer Vorteil dieses Verfahrens ist seine Ausweitungsmöglichkeit.
Wird beispielsweise die Zahl der gleichzeitig zu nutzenden Dateien
auf drei oder mehr (A, B, C, ...) erhöht, so reicht es aus, die Schleifen
durch Schritt 313 einfach fortzuführen. Das vorliegende Verfahren
ist darum hinsichtlich Programmgröße, Verarbeitungsgeschwindigkeit
und Ausweitungsmöglichkeit
besonders vorteilhaft.