Verfahren und Vorrichtung zum sicheren Speichern von Daten und zum Zugreifen auf diese Daten Method and apparatus for securely storing and accessing data
Gebiet der Erfindung Field of the invention
Die Erfindung betrifft das Gebiet der Speicherung von Daten sowie der Zu- greifens auf diese Daten. Insbesondere betrifft die Erfindung ein Verfahren und eine Vorrichtung zum sicheren Speichern von Daten und zum Zugreifen auf diese Daten. Hintergrund der Erfindung The invention relates to the field of storing data and accessing these data. More particularly, the invention relates to a method and apparatus for securely storing and accessing data. Background of the invention
Mehr und mehr Daten stehen in digitaler Form zur Verfügung. Diese Daten müssen gespeichert werden, und zwar in der Regel sicher. Das sichere Speichern von Daten kann als ein Gebiet der Kryptographie betrachtet werden, bei dem der Klartext, die Daten, in verschlüsselter Form an den Benutzer an einem Punkt in der Zukunft geschickt werden. More and more data is available in digital form. These data must be stored, usually safe. The secure storage of data may be considered as an area of cryptography in which the plaintext, the data, is sent in encrypted form to the user at a point in the future.
In einer sicheren Umgebung kann eine Zugriffskontrollmechanismus ohne weiteres umgesetzt werden. In einer unsicheren Umgebung (z.B. in der Cloud) ist dies nicht mehr möglich, da der Zugriffskontrollmechanismus nicht mehr vertrauenswürdig ist. In a secure environment, an access control mechanism can be readily implemented. In an insecure environment (e.g., in the cloud) this is no longer possible because the access control mechanism is no longer trustworthy.
Vor diesem Hintergrund stellt sich der vorliegenden Erfindung die Aufgabe, verbesserte Verfahren und Vorrichtungen zum sicheren Speichern von Daten, und zwar insbesondere zum sicheren Speichern von Daten in unsicheren Umgebungen bereitzustellen. Against this background, the object of the present invention is to provide improved methods and devices for the secure storage of data, in particular for the secure storage of data in unsafe environments.
Zusammenfassung der Erfindung Summary of the invention
Die vorstehenden Aufgaben werden durch die Gegenstände der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen werden in den ab- hängigen Ansprüchen definiert.
Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zum sicheren Speichern von Daten D mittels eines portablen Datenträgers auf einem Terminal bereitgestellt, wobei auf dem portablen Datenträger ein Attributvektor A und ein Masterkey MK hinterlegt sind. Dabei umfasst das Verfahren die folgenden Schritte: das Ableiten eines Schlüssels K aus einem Prädikat P und dem Masterkey MK mittels einer Schlüsselableitungsfunktion KDF, wobei das Prädikat P eine Boolesche Funktion des Attributvektors A ist; das Verschlüsseln der Daten D mit dem Schlüssel K; und das Abspeichern der ver- schlüsselten Daten D zusammen mit dem Prädikat P auf dem Terminal. The above objects are achieved by the subject-matter of the independent claims. Preferred embodiments are defined in the dependent claims. According to a first aspect of the invention, a method for securely storing data D by means of a portable data carrier is provided on a terminal, wherein an attribute vector A and a master key MK are stored on the portable data carrier. In this case, the method comprises the following steps: the derivation of a key K from a predicate P and the master key MK by means of a key derivation function KDF, the predicate P being a Boolean function of the attribute vector A; encrypting the data D with the key K; and storing the encrypted data D together with the predicate P on the terminal.
Vorzugsweise wird der Schlüssel K nach dem Verschlüsseln der Daten D mit dem Schlüssel K vernichtet. Gemäß bevorzugter Ausführungsformen der Erfindung handelt es sich bei dem Masterkey MK um einen globalen Masterkey. Preferably, the key K is destroyed after encrypting the data D with the key K. According to preferred embodiments of the invention, the master key MK is a global master key.
Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zum Zugreifen mittels eines portablen Datenträgers auf verschlüsselte Daten D be- reitgestellt, die mittels eines Verfahrens nach dem ersten Aspekt der Erfindung auf einem Terminal gespeichert worden sind. Dabei umfasst das Verfahren die folgenden Schritte: das Extrahieren des Prädikats P aus den verschlüsselten Daten und dem Prädikat P; das Anwenden des Prädikats P auf den Attributvektor A; und falls der Attributvektor A das Prädikat P erfüllt, das Ableiten des Schlüssels K aus dem Prädikat P und dem Masterkey MK mittels der Schlüsselableitungsfunktion KDF und das Entschlüsseln der verschlüsselten Daten D.
Gemäß einem dritten Aspekt der Erfindung wird ein Verfahren zum sicheren Speichern von Daten D mittels eines portablen Datenträgers auf einem Terminal bereitgestellt, wobei auf dem portablen Datenträger ein Prädikat P und ein Masterkey MK hinterlegt sind. Dabei umfasst das Verfahren die fol- genden Schritte: das Ableiten eines Schlüssels K aus einem Attributvektor A und dem Masterkey MK mittels einer Schlüsselableitungsfunktion KDF, wobei das Prädikat P eine Boolesche Funktion des Attributvektors A ist; das Verschlüsseln der Daten D mit dem Schlüssel K; und das Abspeichern der verschlüsselten Daten D zusammen mit dem Attributvektor A auf dem Ter- minal. According to a second aspect of the invention, a method for accessing encrypted data D by means of a portable data carrier, which has been stored on a terminal by means of a method according to the first aspect of the invention, is provided. In this case, the method comprises the following steps: extracting the predicate P from the encrypted data and the predicate P; applying the predicate P to the attribute vector A; and if the attribute vector A satisfies the predicate P, deriving the key K from the predicate P and the master key MK by means of the key derivation function KDF and decrypting the encrypted data D. According to a third aspect of the invention, a method for the secure storage of data D by means of a portable data carrier is provided on a terminal, wherein a predicate P and a master key MK are stored on the portable data carrier. In this case, the method comprises the following steps: the derivation of a key K from an attribute vector A and the master key MK by means of a key derivation function KDF, the predicate P being a Boolean function of the attribute vector A; encrypting the data D with the key K; and storing the encrypted data D together with the attribute vector A on the terminal.
Vorzugsweise wird der Schlüssel K nach dem Verschlüsseln der Daten D mit dem Schlüssel K vernichtet. Gemäß bevorzugter Ausführungsformen der Erfindung handelt es sich bei dem Masterkey MK um einen globalen Masterkey. Preferably, the key K is destroyed after encrypting the data D with the key K. According to preferred embodiments of the invention, the master key MK is a global master key.
Gemäß einem vierten Aspekt der Erfindung wird ein Verfahren zum Zugreifen mittels eines portablen Datenträgers auf verschlüsselte Daten D bereitge- stellt, die mittels eines Verfahrens nach dem dritten Aspekt der Erfindung auf einem Terminal gespeichert worden sind. Dabei umfasst das Verfahren die folgenden Schritte: das Extrahieren des Attributvektors A aus den verschlüsselten Daten D und dem Attributvektor A; das Anwenden des Prädikats P auf den Attributvektor A; und falls der Attributvektor A das Prädikat P erfüllt, das Ableiten des Schlüssels K aus dem Attributvektor A und dem Masterkey MK mittels der Schlüsselableitungsfunktion KDF und das Entschlüsseln der verschlüsselten Daten D.
Gemäß einem fünften Aspekt der Erfindung wird ein portabler Datenträger bereitgestellt, der dazu ausgestaltet ist, gemäß einem Verfahren nach dem ersten Aspekt der Erfindung oder dem dritten Aspekt der Erfindung Daten D auf einem Terminal zu speichern oder gemäß einem Verfahren nach dem zweiten Aspekt der Erfindung oder dem vierten Aspekt der Erfindung auf Daten D auf einem Terminal zuzugreifen. According to a fourth aspect of the invention, a method for accessing encrypted data D by means of a portable data carrier, which has been stored on a terminal by means of a method according to the third aspect of the invention, is provided. In this case, the method comprises the following steps: extracting the attribute vector A from the encrypted data D and the attribute vector A; applying the predicate P to the attribute vector A; and if the attribute vector A satisfies the predicate P, deriving the key K from the attribute vector A and the master key MK by means of the key derivation function KDF and decrypting the encrypted data D. According to a fifth aspect of the invention there is provided a portable data carrier adapted to store data D on a terminal according to a method of the first aspect of the invention or the third aspect of the invention or according to a method of the second aspect of the invention the fourth aspect of the invention to access data D on a terminal.
Gemäß einem sechsten Aspekt der Erfindung wird ein Terminal bereitgestellt, das dazu ausgestaltet ist, dass Daten D gemäß einem Verfahren nach dem ersten Aspekt der Erfindung oder nach dem zweiten Aspekt der Erfindung auf dem Terminal gespeichert werden oder dass auf Daten D auf dem Terminal gemäß einem Verfahren nach dem zweiten Aspekt der Erfindung oder dem vierten Aspekt der Erfindung zugegriffen wird. Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden detaillierten Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen hervor. Es wird auf die Zeichnungen verwiesen, in denen zeigen: Figur 1 eine schematische Darstellung eines erfindungsgemäßen portablen Datenträgers in Kommunikation mit einem Terminal, According to a sixth aspect of the invention, there is provided a terminal configured to store data D on the terminal according to a method according to the first aspect of the invention or according to the second aspect of the invention, or to store data D on the terminal according to Method according to the second aspect of the invention or the fourth aspect of the invention is accessed. Other features, advantages and objects of the invention will be apparent from the following detailed description of several embodiments and alternative embodiments. Reference is made to the drawings, in which: FIG. 1 shows a schematic representation of a portable data carrier according to the invention in communication with a terminal,
Figur 2 die Schritte eines Verfahrens zum Abspeichern von Daten mit dem portablen Datenträger von Figur 1 gemäß einer ersten bevorzugten Ausführungsform der Erfindung, und Figure 2 shows the steps of a method for storing data with the portable data carrier of Figure 1 according to a first preferred embodiment of the invention, and
Figur 3 die Schritte eines Verfahrens zum Abspeichern von Daten mit dem portablen Datenträger von Figur 1 gemäß einer zweiten bevorzugten Ausführungsform der Erfindung.
Figur 1 zeigt eine schematische Darstellung einer bevorzugten Ausführungsform eines erfindungsgemäßen portablen Datenträgers in Form einer Chipkarte 20 in Kommunikation mit einer externen Instanz in Form eines Termi- nals 10. Figure 3 shows the steps of a method for storing data with the portable data carrier of Figure 1 according to a second preferred embodiment of the invention. FIG. 1 shows a schematic representation of a preferred embodiment of a portable data carrier according to the invention in the form of a chip card 20 in communication with an external entity in the form of a terminal 10.
Der in Figur 1 dargestellte portable Datenträger in Form einer Chipkarte 20 ist dazu ausgestaltet mit dem Lesegerät 10 Daten auszutauschen. Als ein Austausch von Daten wird hier eine Signalübertragung, eine wechselseitige Steuerung und in einfachen Fällen auch eine Verbindung zwischen dem Le- segerät 10 und der Chipkarte 20 verstanden. In der Informationstheorie wird ein Datenaustausch insbesondere durch das Sender-Empfänger-Modell geprägt: Daten bzw. Informationen werden in Zeichen kodiert und dann von einem Sender über einen Übertragungskanal an einen Empfänger übertragen. Dabei ist entscheidend, dass Sender und Empfänger dieselbe Kodierung verwenden, damit der Empfänger die Daten dekodieren kann. The portable data carrier in the form of a chip card 20 shown in FIG. 1 is designed to exchange data with the reader 10. As an exchange of data is here a signal transmission, a mutual control and in simple cases, a connection between the reader 10 and the smart card 20 understood. In information theory, a data exchange is characterized in particular by the transmitter-receiver model: data or information is encoded in characters and then transmitted by a transmitter via a transmission channel to a receiver. It is crucial that the sender and receiver use the same encoding so that the receiver can decode the data.
Zur Datenübertragung bzw. Kommunikation zwischen der Chipkarte 20 und dem Terminal 10 weisen sowohl die Chipkarte 20 als auch das Terminal 10 geeignete Kommunikationsschnittstellen 22 und 12 auf. Die Schnittstellen 22 und 12 können beispielsweise so ausgestaltet sein, dass die Kommunikation zwischen diesen bzw. zwischen der Chipkarte 20 und dem Lesegerät 10 kontaktlos, d.h. über die Luftschnittstelle erfolgt, wie dies in Figur 1 durch den gezackten Pfeil angedeutet ist. Alternativ kann die Chipkarte 20 über die Schnittstelle 22 galvanisch, d.h. kontaktbehaftet, mit der Schnittstelle 12 des Terminals 10 verbunden werden. In diesem Fall ist die Schnittstelle 22 in der Regel als ein auf einer Seite der Chipkarte 20 angeordnetes Kontaktfeld mit Kontaktflächen zum Datenaustausch mit dem Terminal 10 ausgebildet. For data transmission or communication between the chip card 20 and the terminal 10, both the chip card 20 and the terminal 10 have suitable communication interfaces 22 and 12. For example, the interfaces 22 and 12 may be configured so that the communication between them or between the smart card 20 and the reader 10 is contactless, i. via the air interface, as indicated in Figure 1 by the jagged arrow. Alternatively, the smart card 20 may be galvanically, i. contact, be connected to the interface 12 of the terminal 10. In this case, the interface 22 is generally designed as a contact field arranged on one side of the chip card 20 with contact surfaces for data exchange with the terminal 10.
Selbstverständlich werden von der vorliegenden Erfindung auch portable Datenträger in Form von Chipkarten umfasst, die sowohl eine Schnittstelle
zur kontaktbehafteten als auch eine Schnittstelle zur kontaktlosen Kommunikation mit einem Terminal aufweisen und die dem Fachmann als Dual- Interface-Chipkarten bekannt sind. Neben der Schnittstelle 22 zur Kommunikation mit dem Terminal 10 um- fasst die Chipkarte 20 eine zentrale Prozessor- bzw. Recheneinheit (CPU; auch Prozessor genannt) 21, die in Kommunikationsverbindung mit der Schnittstelle 22 steht. Bekanntermaßen gehören zu den primären Aufgaben des Prozessors 21 das Ausführen von arithmetischen und logischen Funktio- nen und das Lesen und Schreiben von Datenelementen, wie dies durch eine auf dem Prozessor 21 ablaufende Softwareapplikation definiert wird. Der Prozessor 21 steht ferner mit einem flüchtigen Arbeitsspeicher (RAM) 23 und einem nichtflüchtigen wieder beschreibbaren Speicher 24 (in Figur 1 als "NVM" (non-volatile memory) bezeichnet) in Verbindung. Vorzugsweise handelt es sich bei dem nichtflüchtigen Speicher 24 um einen Flash-Speicher (Flash-EEPROM). Dabei kann es sich beispielsweise um einen Flash-Speicher mit einer NAND- oder einer NOR- Architektur handeln. Neben einem wieder beschreibbaren Teil kann der nichtflüchtige Speicher 24 ferner einen ROM aufweisen. Of course, the present invention also includes portable data carriers in the form of smart cards, both an interface to the contact as well as an interface for contactless communication with a terminal and which are known in the art as dual-interface smart cards. In addition to the interface 22 for communication with the terminal 10, the chip card 20 comprises a central processor or computing unit (CPU, also called a processor) 21 which is in communication with the interface 22. As is known, among the primary tasks of the processor 21 are the execution of arithmetic and logic functions and the reading and writing of data elements, as defined by a software application running on the processor 21. The processor 21 is further connected to a volatile random access memory (RAM) 23 and a non-volatile rewritable memory 24 (referred to in Figure 1 as "NVM" (non-volatile memory)). Preferably, the nonvolatile memory 24 is a flash memory (flash EEPROM). This may be, for example, a flash memory with a NAND or a NOR architecture. Besides a rewritable portion, the nonvolatile memory 24 may further comprise a ROM.
Bei der in Figur 1 dargestellten bevorzugten Ausführungsform ist in dem nichtflüchtigen Speicher 24 der Chipkarte 20 Programmcode gespeichert, der von dem Prozessor 21 ausgeführt werden kann. Insbesondere kann in dem nichtflüchtigen Speicher 24 der Chipkarte 20 Programmcode implementiert sein, durch den die Chipkarte 20 dazu ausgestaltet, die nachstehend im Zusammenhang mit den Figuren 2 und 3 beschriebenen erfindungsgemäße Verfahren zum Speichern von Daten auf dem Terminal 10 durchzuführen. Bei dem Terminal 10 kann es sich beispielsweise um einen Cloud-Server
handeln, der dazu ausgestaltet ist, dass auf diesem Daten gespeichert werden können. In the preferred embodiment shown in Figure 1 is stored in the non-volatile memory 24 of the smart card 20 program code that can be executed by the processor 21. In particular, program code may be implemented in the nonvolatile memory 24 of the smart card 20, by which the smart card 20 is configured to perform the inventive method for storing data on the terminal 10 described below in connection with FIGS. 2 and 3. For example, the terminal 10 may be a cloud server act that is designed to be stored on this data.
Figur 2 zeigt eine erste bevorzugte Ausführungsform zum Abspeichern von Daten mit dem portablen Datenträger 20 auf dem Terminal 10 oder einem damit in Kommunikation stehenden Hintergrundsystem. FIG. 2 shows a first preferred embodiment for storing data with the portable data carrier 20 on the terminal 10 or a background system in communication therewith.
Schritt Sl von Figur 1 betrifft die Personalisierung des portablen Datenträgers 20, die in der Regel im Rahmen der Herstellung des portablen Datenträ- gers 20 durch den Hersteller oder anschließend durch den Herausgeber des portablen Datenträgers 20 vorgenommen wird. Gemäß Schritt Sl von Figur 2 werden bei der Personalisierung ein Attributvektor A, ein Masterkey MK sowie eine Schlüsselableitungsfunktion KDF ("key derivation function") auf dem portablen Datenträger 20 hinterlegt. Der Attributvektor A besteht vor- zugsweise aus wenigstens, in der Regel aber aus mehreren Komponenten, die jeweils eine bestimmte Eigenschaft (d.h. ein Attribut) des Benutzers des portablen Datenträgers 20 definieren. Attribute dieser Art sind beispielsweise Alter, Geschlecht, Körpergröße, Gewicht, Sicherheitsstatus, Dienstgrad, Abteilung und dergleichen. Vorzugsweise handelt es sich bei dem Master- key MK um einen globalen Masterkey, d.h.um einen Masterkey, der auf einer Vielzahl von portablen Datenträgern, wie dem portablen Datenträger 20 hinterlegt ist. Step S1 of FIG. 1 relates to the personalization of the portable data carrier 20, which is generally carried out as part of the production of the portable data carrier 20 by the manufacturer or subsequently by the publisher of the portable data carrier 20. According to step Sl of FIG. 2, an attribute vector A, a master key MK and a key derivation function KDF ("key derivation function") are stored on the portable data carrier 20 during personalization. The attribute vector A preferably consists of at least, but usually of several components, each defining a particular property (i.e., an attribute) of the user of the portable volume 20. Attributes of this type include age, gender, height, weight, security status, rank, department, and the like. The master key MK is preferably a global master key, that is to say a master key, which is stored on a plurality of portable data carriers, such as the portable data carrier 20.
Der gemäß Schritt Sl von Figur 2 personalisierte Datenträger 20 kann erfin- dungsgemäß dazu verwendet werden, Daten D auf dem Terminal 10 oder einem damit in Kommunikation stehenden Hintergrundsystem sicher abzuspeichern. Hierzu wird in Schritt S2 von Figur 2 vom Terminal 10 ein Prädikat P bereitgestellt. Aus dem Masterkey MK und dem Prädikat wird vorzugsweise in der sicheren Umgebung, die durch den portablen Datenträger
20 bereitgestellt wird, mittels der Schlüsselableitungsfunktion KDF ein Schlüssel K abgeleitet. Wie dies nachstehend noch detaillierter beschrieben wird, handelt es sich bei dem Prädikat um eine Funktion, die als Argument den Attributvektor A hat und als Funktionswert den Wert 0 oder 1 liefert, also um eine Boolesche Funktion, die auf den Attributvektor A angewendet wird. Falls beispielhaft eine Komponente des Attributvektors A das Alter des Benutzers ist, könnte eine im Prädikat P implementierte Abfrage sein, ob der Besitzer bereits 18 Jahre alt ist, die von Prädikat mit 0 oder 1 beantwortet wird. In der Praxis könnte ein Prädikat P beispielsweise mittels TLV- Codierung als Bitstring hinterlegt sein. Vorzugsweise kann das Prädikat vom Benutzer des portablen Datenträgers 20 gewählt werden. Wie dies nachstehend im Detail beschrieben wird, kann der Benutzer des portablen Datenträgers 20 durch die Wahl eines geeigneten Prädikats P bestimmen, welche Personen (d.h. welcher durch den Attributvektor A bestimmte Personenkreis) auf die Daten D Zugriff haben. According to the invention, the data carrier 20 personalized according to step S 1 of FIG. 2 can be used to securely store data D on the terminal 10 or a background system in communication therewith. For this purpose, a predicate P is provided by the terminal 10 in step S2 of FIG. From the Masterkey MK and the predicate is preferably in the secure environment, by the portable disk 20, a key K is derived by means of the key derivation function KDF. As will be described in more detail below, the predicate is a function that has the attribute vector A as its argument and provides the value 0 or 1 as the function value, ie, a Boolean function that is applied to the attribute vector A. By way of example, if a component of the attribute vector A is the user's age, a query implemented in the predicate P could be whether the owner is already 18 years old and is answered by predicate with 0 or 1. In practice, a predicate P could be stored as a bit string, for example by means of TLV coding. Preferably, the predicate can be selected by the user of the portable data carrier 20. As will be described in detail below, by choosing a suitable predicate P, the user of the portable volume 20 may determine which persons (ie, which group of persons designated by the attribute vector A) have access to the data D.
In Schritt S3 von Figur 2 werden die Daten D mit dem Schlüssel K verschlüsselt und die verschlüsselten Daten ENC(D, K) zusammen mit dem Prädikat P auf dem Terminal 10 (oder einem damit in Kommunikation stehenden Hintergrundsystem) abgespeichert. Vorzugsweise wird nach der Verschlüsselung mit dem Schlüssel K dieser Schlüssel wieder gelöscht. Erfindungsgemäß kann die Verschlüsselung sowohl durch den portablen Datenträger 20 als auch das Terminal 10 durchgeführt werden. Zur gemeinsamen Abspeicherung der verschlüsselten Daten ENC(D, K) mit dem Prädikat P können diese vorzugsweise miteinander konkateniert werden, was in Figur 2 durch das Symbol " || " angedeutet ist.
Nachdem die Daten D in den Schritten S2 und S3 von Figur 2 sicher abgespeichert worden sind, kann erfindungsgemäß mittels der Schritte S4 und S5 von Figur 2 wieder auf diese zugegriffen werden. In Schritt S4von Figur 2 wird das Prädikat P aus den in Schritt S3 auf dem Terminal 10 abgespeicherten Datenpaket extrahiert, das aus den verschlüsselten Daten ENC(D, K) und dem Prädikat P besteht. Anschließend wird das so extrahierte Prädikat P auf den Attributvektor A angewendet, der auf dem portablen Datenträger 20 hinterlegt ist. Wie bereits vorstehend beschrieben, handelt es sich bei dem Prädikat P um eine Boolesche Funktion, die mit dem Attributvektor A als Argument zwei Funktionswerte liefern kann, vorzugsweise 0 oder 1. Vorzugsweise bedeutet dabei P(A)=0, dass der Attributvektor A das Prädikat P nicht erfüllt, wohingegen P(A)=1 bedeutet, dass der Attributvektor A das Prädikat P erfüllt. In step S3 of FIG. 2, the data D is encrypted with the key K and the encrypted data ENC (D, K) is stored together with the predicate P on the terminal 10 (or a background system in communication therewith). Preferably, after encryption with the key K, this key is deleted again. According to the invention, the encryption can be carried out both by the portable data carrier 20 and the terminal 10. For common storage of the encrypted data ENC (D, K) with the predicate P, these can preferably be concatenated with each other, which is indicated in Figure 2 by the symbol "||". After the data D have been securely stored in steps S2 and S3 of FIG. 2, according to the invention, these can be accessed again by means of steps S4 and S5 of FIG. In step S4 of FIG. 2, the predicate P is extracted from the data packet stored on the terminal 10 in step S3, which consists of the encrypted data ENC (D, K) and the predicate P. Subsequently, the predicate P thus extracted is applied to the attribute vector A, which is stored on the portable data carrier 20. As already described above, the predicate P is a Boolean function which, with the attribute vector A, can yield two function values as an argument, preferably 0 or 1. Preferably, P (A) = 0 means that the attribute vector A is the predicate P does not satisfy, whereas P (A) = 1 means that the attribute vector A satisfies the predicate P.
Erfindungsgemäß ist nun in Schritt S5 von Figur 2 vorgesehen, dass dann, wenn der Attributvektor A das Prädikat P nicht erfüllt (also im obigen Beispiel P(A)=0), ein Zugriff auf die Daten D verwehrt wird. Nur falls der Attributvektor A das Prädikat P erfüllt (also im obigen Beispiel P(A)=1) wird mit- tels der Schlüsselableitungsfunktion KDF aus dem auf dem portablen Datenträger 20 hinterlegten Masterkey MK und dem Prädikat P der Schlüssel K abgeleitet. Da dieser Schlüssel in Schritt S2 von Figur 2 abgleitet und dazu verwendet worden ist, die Daten D zu verschlüsseln, können die Daten D in Schritt S5 mit diesem Schlüssel wieder entschlüsselt werden, wodurch der Benutzer des portablen Datenträgers 20 wieder Zugriff auf die Daten D hat (oder ein Benutzer eines anderen portablen Datenträgers, dessen Attributvektor A' ebenfalls das Prädikat P erfüllt und der über den gleichen globalen Masterkey MK verfügt).
Figur 3 zeigt eine zweite bevorzugte Ausführungsform der Erfindung zum Abspeichern von Daten mit dem portablen Datenträger 20 auf dem Terminal 10 oder einem damit in Kommunikation stehenden Hintergrundsystem. Die zweite bevorzugte Ausführungsform von Figur 3 unterscheidet sich von der ersten bevorzugten Ausführungsform von Figur 2 im Wesentlichen darin, dass in der zweiten bevorzugten Ausführungsform die Rollen des Prädikats P und des Attributvektors A miteinander vertauscht sind. Dabei kann in Schritt S3' von Figur 3, wie dargestellt, vorzugsweise der Attributvektor A oder alternativ das Prädikat P zur Ableitung des Schlüssels K verwendet werden (sowie bei der entsprechenden Ableitung in Schritt S5' von Figur 3). Da bis auf die Vertauschung der Rollen des Prädikats P und des Attributvektors A keine weiteren Unterschiede zwischen der in Figur 3 dargestellten zweiten bevorzugten Ausführungsform und der in Figur 2 dargestellten ersten bevorzugten Ausführungsform bestehen, kann auf die vorstehende Beschreibung der Schritte Sl bis S5 verwiesen werden.
According to the invention, it is now provided in step S5 of FIG. 2 that, if the attribute vector A does not satisfy the predicate P (ie in the above example P (A) = 0), access to the data D is denied. Only if the attribute vector A satisfies the predicate P (ie in the above example P (A) = 1) is the key K derived from the master key MK stored on the portable data carrier 20 and the predicate P by means of the key derivation function KDF. Since this key is derived in step S2 of Figure 2 and has been used to encrypt the data D, the data D can be decrypted with this key again in step S5, whereby the user of the portable data carrier 20 again has access to the data D. (or a user of another portable volume whose attribute vector A 'also satisfies the predicate P and which has the same global masterkey MK). FIG. 3 shows a second preferred embodiment of the invention for storing data with the portable data carrier 20 on the terminal 10 or a background system in communication therewith. The second preferred embodiment of Figure 3 differs from the first preferred embodiment of Figure 2 essentially in that in the second preferred embodiment, the roles of the predicate P and the attribute vector A are interchanged. In this case, in step S3 'of FIG. 3, as shown, preferably the attribute vector A or alternatively the predicate P can be used to derive the key K (as well as in the corresponding derivation in step S5' of FIG. 3). Since there are no further differences between the second preferred embodiment shown in FIG. 3 and the first preferred embodiment shown in FIG. 2 except for the interchange of the roles of the predicate P and the attribute vector A, reference may be made to the above description of the steps S 1 to S 5.