Method and Device for Securely Storing Data and for Accessing Said Data
A method for securely storing data on a terminal by means of a portable data carrier, wherein an attribute vector and a master key are deposited on the portable data carrier. The method comprises deriving a key from a predicate and the master key by means of a key derivation function, wherein the predicate is a Boolean function of the attribute vector; encrypting the data with the key; and storing the encrypted data together with the predicate on the terminal. Another method comprises: extracting the predicate from the encrypted data and the predicate; applying the predicate to the attribute vector; and if the attribute vector satisfies the predicate, deriving the key from the predicate and the master key by means of the key derivation function and decrypting the encrypted data.
1 - 10 . (canceled)
11 . A method for securely storing data D by means of a portable data carrier on a terminal, wherein on the portable data carrier there are deposited an attribute vector A and a master key MK, wherein the method comprises the following steps:
deriving a key K from a predicate P and the master key MK by means of a key derivation function KDF, wherein the predicate P is 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.
12 . The method according to claim 11 , wherein after encrypting the data D with the key K the key K is destroyed.
13 . The method according to claim 11 , wherein the master key MK is a global master key.
14 . A method for accessing encrypted data D by means of a portable data carrier, which encrypted data have been stored by means of a method according to claim 11 on a terminal, wherein 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.
15 . A method for securely storing data D by means of a portable data carrier on a terminal, wherein on the portable data carrier there are deposited a predicate P and a master key MK, wherein the method comprises the following steps:
deriving a key K from an attribute vector A and the master key MK by means of a key derivation function KDF, wherein the predicate P is 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.
16 . The method according to claim 15 , wherein after encrypting the data D with the key K the key K is destroyed.
17 . The method according to claim 15 , wherein the master key MK is a global master key.
18 . A method for accessing encrypted data D by means of a portable data carrier, which encrypted data have been stored by means of a method according to claim 15 on a terminal, wherein 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.
19 . A portable data carrier which is configured to store data D on a terminal according to claim 11 or to access data D on a terminal according to a method for securely storing data D by means of a portable data carrier on a terminal, wherein on the portable data carrier there are deposited a predicate P and a master key MK, wherein the method comprises the following steps:
deriving a key K from an attribute vector A and the master key MK by means of a key derivation function KDF, wherein the predicate P is 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.
20 . A portable data carrier which is configured to store data D on a terminal according to claim 15 or to access data D on a terminal according to a method for securely storing data D by means of a portable data carrier on a terminal, wherein on the portable data carrier there are deposited a predicate P and a master key MK, wherein the method comprises the following steps:
deriving a key K from an attribute vector A and the master key MK by means of a key derivation function KDF, wherein the predicate P is 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.
21 . A terminal which is configured for storing data D on the terminal according to claim 11 or for accessing data D on the terminal according to a method for securely storing data D by means of a portable data carrier on a terminal, wherein on the portable data carrier there are deposited a predicate P and a master key MK, wherein the method comprises the following steps:
deriving a key K from an attribute vector A and the master key MK by means of a key derivation function KDF, wherein the predicate P is 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.
22 . A terminal which is configured for storing data D on the terminal according to claim 15 or for accessing data D on the terminal according to a method for securely storing data D by means of a portable data carrier on a terminal, wherein on the portable data carrier there are deposited a predicate P and a master key MK, wherein the method comprises the following steps:
deriving a key K from an attribute vector A and the master key MK by means of a key derivation function KDF, wherein the predicate P is 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.