METHOD AND SYSTEM FOR ENCRYPTING DATA WITH AN ALL-OR-NOTHING ENCRYPTION SCHEME HAVING ADDITIONAL RANDOMNESS
20190342075 ยท 2019-11-07
Inventors
Cpc classification
G06F17/142
PHYSICS
H04L9/0637
ELECTRICITY
International classification
Abstract
A method for encrypting data for storage on one or more servers includes dividing the data, which includes a first number m of plaintext blocks, into a second number N of equal sized chunks, wherein the second number is based on a number of the servers on which the encrypted data is to be stored, and wherein each chunk includes m/N plaintext blocks. Each of the chunks is encrypted using an all-or-nothing encryption (AONE) scheme so as to output a plurality of ciphertext blocks for each chunk, wherein an additional randomness is embedded into the AONE scheme by an initialization vector derived from the randomness being used as an initial seed for an AONE initialization vector of the AONE scheme. The randomness is encrypted using an XOR-combination of XOR operations performed on the ciphertext blocks for each chunk. The encrypted randomness is stored on each of the servers.
Claims
1. A method for encrypting data for storage on one or more servers, the method comprising: dividing the data, which includes a first number m of plaintext blocks, into a second number N of equal sized chunks, wherein the second number is based on a number of the one or more servers on which the encrypted data is to be stored, and wherein each of the chunks includes m/N plaintext blocks; encrypting each of the chunks using an all-or-nothing encryption (AONE) scheme so as to output a plurality of ciphertext blocks for each of the chunks, wherein an additional randomness is embedded into the AONE scheme by an initialization vector derived from the randomness being used as an initial seed for an AONE initialization vector of the AONE scheme; encrypting the randomness using an XOR-combination of XOR operations performed on the ciphertext blocks for each of the chunks; and storing the encrypted randomness on each of the one or more servers.
2. The method according to claim 1, wherein the encrypted chunks are stored in respective memories of the one or more servers such that an i-th ciphertext block of each of the encrypted chunks is stored on an i-th server.
3. The method according to claim 1, wherein an initialization vector for an (i+1)-th chunk is determined by performing a hash-function on an initialization vector for an i-th chunk, and wherein an initialization vector for a first chunk is determined by calculating the hash-function on the randomness.
4. The method according to claim 1, wherein a Fast-Fourier-Transform All-Or-Nothing transform (FFT-AONT) is applied prior to or after the encrypting of each of the chunks using the AONE scheme.
5. The method according to claim 1, wherein the one or more servers are part of a multi-cloud storage system having different administrative domains.
6. A system for encrypting data for storage on one or more servers, the system comprising memory and one or more processors which, alone or in combination, are configured to provide for execution of a method comprising: dividing the data, which includes a first number m of plaintext blocks, into a second number N of equal sized chunks, wherein the second number is based on a number of the one or more servers on which the encrypted data is to be stored, and wherein each of the chunks includes m/N plaintext blocks; encrypting each of the chunks using an all-or-nothing encryption (AONE) scheme so as to output a plurality of ciphertext blocks for each of the chunks, wherein an additional randomness is embedded into the AONE scheme by an initialization vector derived from the randomness being used as an initial seed for an AONE initialization vector of the AONE scheme; encrypting the randomness using an XOR-combination of XOR operations performed on the ciphertext blocks for each of the chunks; and storing the encrypted randomness on each of the one or more servers.
7. The system according to claim 6, wherein the system is further configured to store or to provide instructions for storing the encrypted chunks in respective memories of the one or more servers such that an i-th ciphertext block of each of the encrypted chunks is stored on an i-th server.
8. The system according to claim 6, wherein the system is further configured such that an initialization vector for an (i+1)-th chunk is determined by performing a hash-function on an initialization vector for an i-th chunk, and such that an initialization vector for a first chunk is determined by calculating the hash-function on the randomness.
9. The system according to claim 6, wherein the system is further configured to apply a Fast-Fourier-Transform All-Or-Nothing transform (FFT-AONT) prior to or after the encrypting of each of the chunks using the AONE scheme.
10. The system according to claim 6, wherein the one or more servers are part of a multi-cloud storage system having different administrative domains.
11. A method for at least partially updating the encrypted data which has been encrypted according to claim 1 and stored in respective memories of the one or more servers such that an i-th ciphertext block of each of the encrypted chunks is stored on an i-th server, the method comprising: determining one or more parts of one or more of the chunks to update; decrypting the randomness by accessing all the encrypted chunks to compute the XOR-combination; decrypting the one or more chunks to update using the decrypted randomness; and updating the decrypted chunks.
12. The method according to claim 11, further comprising re-encrypting the updated decrypted chunks using the AONE scheme, and storing the re-encrypted chunks in the respective memories of the one or more servers such that the i-th ciphertext block of each of the encrypted chunks is stored on the i-th server.
13. An updating entity for at least partially updating the encrypted data which has been encrypted by the system of claim 6 and stored in respective memories of the one or more servers such that an i-th ciphertext block of each of the encrypted chunks is stored on an i-th server, the updating entity comprising memory and one or more processors which, alone or in combination, are configured to provide for execution of a method comprising: determining one or more parts of one or more of the chunks to update; decrypting the randomness by accessing all the encrypted chunks to compute the XOR-combination; decrypting the one or more chunks to update using the decrypted randomness; and updating the decrypted chunks.
14. The updating entity according to claim 13, wherein the updating entity is further configured to re-encrypt the updated decrypted chunks using the AONE scheme, and store the re-encrypted chunks in the respective memories of the one or more servers such that the i-th ciphertext block of each of the encrypted chunks is stored on the i-th server.
15. A tangible, non-transitory computer-readable medium having instructions thereon, which upon being executed by one or more processors with access to memory, provide for execution of the method according to claim 1.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The present invention will be described in even greater detail below based on the exemplary figures. The invention is not limited to the exemplary embodiments. All features described and/or illustrated herein can be used alone or combined in different combinations in embodiments of the invention. The features and advantages of various embodiments of the present invention will become apparent by reading the following detailed description with reference to the attached drawings which illustrate the following:
[0011]
[0012]
[0013]
[0014] and
[0015]
DETAILED DESCRIPTION
[0016] A method and a system are described herein for at least partially updating data encrypted with an All-or-Nothing Encryption scheme supporting partial file updates on content that has been encrypted by using an All-or-Nothing Encryption AONE.
[0017] A method and a system are described herein for at least partially updating data encrypted with an All-or-Nothing Encryption scheme which strengthen the overall security of the encrypted data.
[0018] A method and a system are described herein for at least partially updating data encrypted with an All-or-Nothing Encryption scheme enabling an implementation in an easy way and a sufficient performance.
[0019] A method for at least partially updating data encrypted with an all-or-nothing encryption scheme stored on one or more servers is described herein that is characterized by: [0020] a) Dividing the data comprising a first number of m plaintext blocks into a second number N of equal sized chunks, wherein the second number is based on the number of servers on which said data is to be stored, such that each chunk comprises m/N blocks of the plaintext blocks, [0021] b) Encrypting each of the chunks using an All-Or-Nothing Encryption Scheme with an encryption key, wherein an additional randomness per chunk is embedded into the All-Or-Nothing Encryption scheme, and outputting a plurality of ciphertext blocks for each chunk, [0022] c) Storing the encrypted chunks on the N servers such that the i-th ciphertext block of each encrypted chunk is stored on the i-th server, and wherein a result of a predetermined function performed on said randomness for all encrypted chunks is stored with each encrypted chunk, [0023] d) Determining one or more parts of one or more chunks which need to be updated if any, [0024] e) Reverting said function by accessing all the chunks to acquire the randomness of said determined one or more chunks, [0025] f) Decrypting said determined chunks based on the result of step e), [0026] g) Updating the decrypted chunks, [0027] h) Re-encrypting the updated chunks using said All-Or-Nothing Encryption scheme, and [0028] i) Storing the re-encrypted chunks according to step c).
[0029] A system for at least partially updating data encrypted with an all-or-nothing encryption scheme stored on one or more servers is described herein that is characterized by an updating entity arranged to perform the following steps: [0030] a) Dividing the data comprising a first number of m plaintext blocks into a second number N of equal sized chunks, wherein the second number is based on the number of servers on which said data is to be stored, such that each chunk comprises m/N blocks of the plaintext blocks, [0031] b) Encrypting each of the chunks using an All-Or-Nothing Encryption scheme with an encryption key, wherein an additional randomness per chunk is embedded into the All-Or-Nothing Encryption scheme, and outputting a plurality of ciphertext blocks for each chunk, [0032] c) Storing the encrypted chunks on the N servers such that the i-th ciphertext block of each encrypted chunk is stored on the i-th serve, and wherein a result of a predetermined function performed on said randomness for all encrypted chunks is stored with each encrypted chunk, [0033] d) Determining one or more parts of one or more chunks which need to be updated if any [0034] e) Reverting said function by accessing all the chunks to acquire the randomness of said determined one or more chunks, [0035] f) Decrypting said determined chunks based on the result of step e), [0036] g) Updating the decrypted chunks, [0037] h) Re-encrypting the updated chunks using said All-Or-Nothing Encryption scheme, and [0038] i) Storing the re-encrypted chunks according to step c).
[0039] Partial-only file updates are inherently supported by methods and systems described herein.
[0040] A higher level of security compared to conventional security provisions of conventional All-or-Nothing Encryption schemes is provided by methods and systems described herein.
[0041] Efficiency is enhanced by methods and systems described herein since files which are often accessed, updated, and modified can be more easily updated without having to decrypt and re-encrypt the complete files without reducing the level of security.
[0042] Resistance against an internal adversary who can steal parts of the internal memory of the encryption/decryption procedures is provided by methods and systems described herein.
[0043] A simple and easy-to-implement method and system are provided by methods and systems described herein for updating files.
[0044] According to a preferred embodiment, randomness is used as initial seed for the AONE initialization vector of the All-or-Nothing Encryption schemeIVANOE. This enhances the All-or-Nothing principle, therefore enhancing the security.
[0045] According to a further preferred embodiment the IVAONE is derived from said randomness. This provides a simple and efficient way for providing respectively deriving the IVAONE.
[0046] According to a further preferred embodiment the IVAONE for an (i+1)-th chunk is determined based on performing a hash-function on the IVAONE for the i-th chunk, wherein the IVAONE for the first chunk is determined by calculating said hash-function on the randomness. This allows in an easy and efficient way to derive the IVAONE from the randomness.
[0047] According to a further preferred embodiment the randomness is encrypted using as encryption key an XOR-combination of all ciphertext blocks output in step b)XOREKand said encrypted randomness is stored in all servers wherein for decrypting according to step e) XOREK is used. This ensures that entity needs to access all blocks in order to compute the XOR-combination and to decrypt the randomness which is then used to decrypt each underlying All-or-Nothing encryption AONE.
[0048] According to a further preferred embodiment a fast-fourier-transform All-Or-Nothing transformFFT-AONTis applied prior or after the encryption using the AONE. Therefore a fast-fourier-transform procedure and an encryption procedure is performed. This ensures that the entity which has been revoked needs to store the randomness, the encryption key and all the blocks of a chunk in order to recover partial the data instead of only having one access to all blocks: The entity can then partially decrypt data if it additionally stores the randomness and the encryption key and additional internal states for example.
[0049] According to a further preferred embodiment all data encrypted with the all-or-nothing encryption scheme stored on said one or more servers is determined to be updated. This ensures that an adversary who has access to the data and which has been revoked later on needs the store the encryption key and all the data blocks in order to recover any bit of information.
[0050]
[0051] In
[0052] In
[0053] In a first step and assuming that they are N servershere in
[0054] In a second step an All-or-Nothing encryption AONE is applied on each separate chunk C, preferably by using a All-or-Nothing encryption scheme as disclosed in the non-patent literature of Ghassan Karame, Claudio Soriente, Krzysztof Lichota, Srdjan Capkun, Technical Report, Available from: https://eprint.iacr.org/2014/556.pdf Of course any All-or-Nothing Encryption scheme can be used.
[0055] In a further step the All-or-Nothing Encryption scheme outputs a plurality of ciphertext blocks for each chunk, denoted by c.sub.ij, wherein the index i denotes the number of the ciphertext block and the index j denotes the chunk. For all chunks j=1, N, the i-th ciphertext block c.sub.ij is stored in server S.sub.i.
[0056] If it is determined that some part in chunk j needs to be updated only chunk j is decrypted and re-encrypted using the All-or-Nothing Encryption AONE and then stored appropriately on the servers SV1-SV4. An adversary needs to break into all servers SV1-SV4 and acquire the encryption key in order to be able to decrypt any bit of plaintext. For example this helps in resisting against an adversary who can compromise internal memory. Using the All-or-Nothing Encryption scheme as e.g. disclosed in the non-patent literature of Ghassan Karame, Claudio Soriente, Krzysztof Lichota, Srdjan Capkun, Technical Report, Available from: https://eprint.iacr.org/2014/556.pdf the adversary has to compromise 128N bits of data in order to be able to access any ciphertext of choice later on.
[0057]
[0058] The method shown in
[0059] The first step of this embodiment is identical to the first step disclosed in
[0060] In a second step the All-or-Nothing encryption AONE is applied on each separate chunk C using an encryption key K. In addition to the method disclosed in
[0061] For example the initialization vector for the first chunk may be set to H(R), i.e. a hash function is computed over the randomness R. The initialization vector for chunk 2 is H(H(R)) and so on.
[0062] In a next step for each chunk the XOR operation of all blocks is computed. By denoting Ti the XOR of all blocks in chunk i, the randomness R is encrypted using the new key as an XOR-combination of all Ti: T1 XOR T2 XOR . . . XOR Tn. The encrypted randomness is stored on all the servers SV1-SV4. This ensures that an adversary entity needs to access all blocks in order to compute T1 XOR T2 XOR XOR Tn and to decrypt the randomness R which is then used to decrypt each underlying All-or-Nothing Encryption AONE.
[0063] The method shown in
[0064]
[0065] A method according to the embodiment of
[0066] In the following an embodiment is shown ensuring that the entity which has been revoked needs to store the randomness R, the encryption key K and all the blocks of a chunk in order to recover partial data: In general the embodiment of the method shown in
[0067] In the following a procedure for performing a Fast-Fourier Transform All-or-Nothing transform is shown. It is assumed that E(X, Y, Z) is a block cipher encrypting (YZ) using the key X.
TABLE-US-00001 Algorithm 1: Algorithm of FFT-AONT. Here, we assume that E(X, Y, Z) is a block cipher that encrypts YZ using key X. for j = 1,..., log(n) do for l = 0,..., 2.sup.j 1 do for i = 0,...,2.sup.j1 1 do x.sup.j[i+l*(2.sup.j)], x.sup.j[i+l*(2.sup.j)+2.sup.(j1)] = E(K, x.sup.j1[i+ l * (2.sup.j)], x.sup.j1[i + l * (2.sup.j) + 2.sup.(j 1)]) end for end for end for
[0068]
[0069] In
[0070] In a second step S2 each of the chunks is encrypted using an All-Or-Nothing Encryption Scheme with an encryption key, wherein an additional randomness per chunk is embedded into the All-Or-Nothing Encryption scheme, and a plurality of ciphertext blocks for each chunk is output.
[0071] In a third step S3 the encrypted chunks are stored on the N servers such that the i-th ciphertext block of each encrypted chunk is stored on the i-th server, and wherein a result of a predetermined function performed on said randomness for all encrypted chunks is stored with each encrypted chunk.
[0072] In a fourth step S4 one or more parts of one or more chunks which need to be updated if any are determined.
[0073] In a fifth step S5 said function is reverted by accessing all the chunks to acquire the randomness of said determined one or more chunks.
[0074] In a sixth step S6 said determined chunks based on the result of step S5 are decrypted.
[0075] In a seventh step S7 the decrypted chunks are updated.
[0076] In an eighth step S8 the updated chunks using said All-Or-Nothing Encryption scheme are re-encrypted, and
[0077] In a ninth step S9 the re-encrypted chunks are stored according to step S3.
[0078] The servers SV1-SV4 shown in the
[0079] In
[0080] In summary embodiments of the present invention provide the use of All-or-Nothing Encryption schemes with a lightweight encryption technique in order to efficiently support partial file updates on data which has been encrypted using All-or-Nothing Encryption techniques.
[0081] Further, embodiments of the present invention enhance existing All-or-Nothing encryption schemes by combination of access control mechanisms and lightweight cryptography to resist against an internal adversary who can steal parts of the internal memory of the encryption/decryption routines.
[0082] Embodiments of the present invention have inter alia the following advantages: The present invention enables to enhance the security of hot files. These hot files are often accessed, updated and modified.
[0083] Embodiments of the present invention have further the advantage to inherently support partial file updates and still maintain a decent level of security when compared to the security provisions of conventional All-or-Nothing encryption schemes.
[0084] While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. It will be understood that changes and modifications may be made by those of ordinary skill within the scope of the following claims. In particular, the present invention covers further embodiments with any combination of features from different embodiments described above and below.
[0085] The terms used in the claims should be construed to have the broadest reasonable interpretation consistent with the foregoing description. For example, the use of the article a or the in introducing an element should not be interpreted as being exclusive of a plurality of elements. Likewise, the recitation of or should be interpreted as being inclusive, such that the recitation of A or B is not exclusive of A and B, unless it is clear from the context or the foregoing description that only one of A and B is intended. Further, the recitation of at least one of A, B and C should be interpreted as one or more of a group of elements consisting of A, B and C, and should not be interpreted as requiring at least one of each of the listed elements A, B and C, regardless of whether A, B and C are related as categories or otherwise. Moreover, the recitation of A, B and/or C or at least one of A, B or C should be interpreted as including any singular entity from the listed elements, e.g., A, any subset from the listed elements, e.g., A and B, or the entire list of elements A, B and C.