Abstract:
A computer implemented method for encrypting one or more files and wrapping them in an HTML document. The HTML document contains the encrypted files, the necessary code to decrypt the files, as well as user interface code to receive a passphrase input from a user. The HTML document can be opened using any modern web browser, to obtain the original files using the same passphrase with which the encryption was performed. This offers a convenient way of sharing encrypted files via email or cloud file sharing services using a platform independent file format (without having to install any additional software).

Description:
FIELD OF THE INVENTION 
     The present invention relates to the field of communication systems. More specifically, the present invention relates to methods and systems for enhancing data privacy in communication systems. 
     BACKGROUND OF THE INVENTION 
     In the wake of recent revelations on privacy attacks, the protection of data using methods like encryption have gained paramount importance. Users can protect the privacy of their data very effectively by encrypting any file prior to sharing it with someone using unsecured means like email or cloud-based file sharing services. File encryption is commonly used for protecting the privacy of data contained in it. Unless the associated key is available, decrypting the file to obtain the original file requires substantial computation power and energy. With symmetric encryption, the same key is used for encryption as well as for decryption. Keys can be derived from a pass phrase using a key derivation function (KDF), for example PBKDF2 (Password-Based Key Derivation Function 2). 
     On the other hand, web browsers are today well known to anyone for retrieving content on Internet. 
     However, there is today no encryption scheme that allows to use a standard web browser for storing and encrypting data. Encryption and compression functionalities are usually implemented by dedicated software which are usually independent from web browsers and need to be installed for allowing such functionalities to be performed. In this sense, performing encryption and compression of data pieces usually remain cumbersome operations for standard users who do not possess particular computer skills. 
     SUMMARY OF THE INVENTION 
     A first goal of the present invention is to enhance privacy in communication systems by providing a method that allows to securely store data pieces in documents which can be interpreted in a web browser, in particular HTML documents. 
     A second goal of the invention is to enhance privacy in communication systems while providing platform independence to allow functionalities such as encryption, compression, storage, extraction, decryption and decompression of any given file or any given set of files to be performed using only any modern web browser, in particular with any computing device that executes an HTML or HTML5 compliant web browser. 
     A third goal of the invention is to provide a method for enhancing privacy in communication systems, in particular a method that allows to easily encrypt and decrypt data pieces, which can be used even by users that do not have any particular computer skills, in other terms a method that allow such functionalities to be implemented without requiring cumbersome operations to be performed. 
     A fourth goal of the invention is to provide a method that enhances data privacy in the context of email or cloud-based data sharing. 
     These goals are achieved with the methods according to the invention described below. 
     According to a first aspect of the invention, a method for storing one or more data pieces in a document which can be interpreted by a web browser is performed by a web browser and comprises the following steps:
         deriving a master key material from an encryption parameter using a key derivation function;   generating one or more random key materials;   encrypting said one or more data pieces with a symmetric encryption scheme, wherein each one of said one or more data pieces is encrypted using a distinct one of said one or more random key materials, so as to obtain one or more ciphertexts;   assembling said one or more random key materials in a list;   computing a verification hash from said list using a cryptographic hash function;   encrypting said list with said master key material using said symmetric encryption scheme to obtain an encrypted list; and   creating said document by including in it said verification hash, said encrypted list, said one or more ciphertexts and additional information which, when interpreted by a web browser, provides
           a user interface allowing a user to submit a decryption parameter,   an implementation of said cryptographic hash function,   an implementation of said key derivation function allowing to compute said master key on the basis of said decryption parameter and   an implementation of a decryption algorithm for inverting said symmetric encryption scheme.   
               

     According to one feature, the method may further comprise a step of using a compression algorithm to compress said one or more pieces of data. 
     According to another feature, said encryption parameter and said decryption parameter may be selected from the group consisting of a password and a passphrase. 
     According to another feature, said one or more data pieces may stem from a single file. 
     According to another feature, said one or more data pieces may stem from a plurality of files. 
     According to another feature, said password or passphrase may be automatically generated. 
     According to another feature, the method may further comprise a step of storing said self-contained HTML document on a storage facility, wherein said storage facility is selected from the group consisting of a local hard drive, a mounted drive, a network attached store and a cloud storage service. 
     According to a second aspect of the invention, a method for extracting from a document which can be interpreted by a web browser one or more original data pieces is performed by a web browser and comprises the following steps:
         requesting submission of a decryption parameter;   retrieving a key derivation function contained in said document;   deriving a master key material from said decryption parameter using said key derivation function;   retrieving an encrypted list contained in said document;   retrieving a decryption algorithm contained in said document;   decrypting said encrypted list using said master key material and said decryption algorithm, obtaining a decrypted list which contains one or more random key materials;   retrieving a hash function contained in said document;   computing a hash of said decrypted list using said hash function;   retrieving a verification hash contained in said document;   comparing said hash to said verification hash; and   if said verification hash and said hash are equivalent,
           extracting one or more ciphertexts contained in said document and   decrypting said ciphertexts using said one or more random key materials and said decryption algorithm, so as to obtain said one or more original data pieces.   
               

     According to one feature, the method may further comprise a step of using a decompression algorithm, an implementation of which is contained in said HTML document, to decompress said ciphertexts. 
     According to one feature, said decryption parameter may be selected from the group consisting of a password and a passphrase. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Other advantages and features of the invention will become more clearly apparent from the following description of the invention which refers to the accompanying drawings, in which: 
         FIG. 1  schematically shows a method for storing data pieces according to invention; 
         FIG. 2  schematically shows a method for extracting data pieces according to the invention. 
     
    
    
     DETAILED DESCRIPTION 
     The invention allows using a web browser to store one or more data pieces directly in a document which can be interpreted by a web browser. The methods according to the invention which are described below are preferably implemented using JavaScript and rely on functionalities provided by HTML5. As will be understood from the following description, the invention pertains to a method for storing data pieces in an HTML document and to the complementary method for extracting data pieces from an HTML document. Both methods are performed by a web browser executed by a computing device. In the sense of the invention, an HTML document is a single file which includes HTML tags and is saved with an “.html” extension. 
       FIG. 1  schematically shows the method for storing data pieces in a document which can be interpreted by a web browser according to a first aspect of the invention. 
     The method requires:
         a cryptographic hash function (H),   a symmetric encryption scheme (E), optionally including a block cipher function and a padding function if necessary and   a key derivation function (D), deterministically producing the necessary key material for E given a password or passphrase.       

     Optionally, the method further requires a compression scheme (Q). 
     An example of an encryption scheme is AES (Advanced Encryption Standard) in cipher block chaining (CBC) mode with PKCS7 padding but any other encryption scheme can be used. 
     An example of a key derivation function is PBKDF2 with SHA256 (secure hash algorithm). Key material may include a block encryption key and an initialization vector. An example of a compression scheme is DEFLATE, which uses a combination of the LZ77 algorithm and Huffman coding. 
     In a first step  100 , the user chooses one or more files F 1 , . . . , F n , i.e. one or more data pieces and submits a password or passphrase P. Alternatively, the password or passphrase P is automatically generated. This first step  100  is the only step where user input is necessary whereas further steps described below are automatically performed by the web browser. 
     Then, in an optional step  102 , each file F j  is compressed using Q to obtain, in a step  104 , compressed bytes Z j . 
     Then, in another step  106 , compressed bytes Z j  are encrypted using E and one or more randomly generated key materials R j , which are generated in a step  122 , to obtain in another step  160  one or more ciphertexts C j . 
     In another step  120 , the randomly generated key materials for all files R 1 , . . . , R n  are combined into a list L. Then, in another step  126 , the cryptographic hash function H on the list L to obtain, in another step  162 , a verification hash V. 
     In another step  142 , a master key material M is derived using the key derivation function D. 
     In another step  146 , the list L is encrypted using E and M to obtain in another step  164  an encrypted list L C . 
     In a last step  180 , a self-contained HTML document is created. The user may store this document on any storage device, or share it with friends through any communication channel or network. 
     One notes that according to the invention, the encryption of the files is separated from the passphrase by means of the list L, which contains the encryption key material M for each input file. The user-provided file or files can be encrypted without waiting for the passphrase input. This provides the advantage, that in the event the user changes the passphrase, only the list L needs to be re-encrypted, and not the whole file or set of files, thus saving time and energy. This speed advantage comes without any compromise on the security provided by the encryption scheme. That is to say, the security is equally resistant to malicious attacks whether an input file is re-encrypted with a newly generated key material each time the passphrase changes or only the key material generated the first time is re-encrypted each time the passphrase changes. 
     Further, it is to be noted that the input files can be compressed and encrypted in parallel, independently of each other. 
     The verification hash V allows for checking the password or passphrase. Upon decryption in accordance with the method described in relation with  FIG. 2 , if V does not match the hash of the decrypted list L, the password or passphrase is deemed wrong and the decryption process can be aborted before decrypting any of the ciphertexts. 
     The self-contained HTML document includes the following contents:
         the ciphertexts C 1 , . . . , C n , in any suitable encoding, for example such as base 64 encoding,   the verification hash V allowing to check if the passphrase is correct,   the encrypted list L C  containing the random key material R 1 , . . . , R n  in encrypted form,   an implementation of a user interface allowing a user to input a passphrase or password, optionally presenting meta data about the encrypted files, such as their names, file types, and file sizes, and optionally showing visual information for example a message, a picture, a password hint, or information about the author of the document,   an implementation of the cryptographic hash function H,   an implementation of the key derivation function D, with additional parameters, which optionally include a salt and a number of iterations, and additional functions, which optionally include a cryptographic hash function, necessary to deterministically derive the master key M from the passphrase or password P,   an implementation of a decompression algorithm Q −1 , with all parameters necessary for decompression,   an implementation of a decryption algorithm E −1 , which inverts E, with additional parameters, which may include an initialization vector (IV), and additional functions, which may include a padding function and a block cipher mode function such as cipher-block chaining (CBC), necessary for decryption.       

       FIG. 2  shows a method for extracting original data pieces from an HTML document according to a second aspect of the invention, when the HTML document has been created by implementing the steps of the method described in relation with  FIG. 1 . In other terms,  FIG. 2  shows the complementary method to the method described in relation with  FIG. 1 , i.e. how the original data pieces can be recovered from the self-contained HTML document described above. 
     In a first step  302 , the user first opens the self-contained HTML document with an web browser. 
     In another step  304 , the user will be presented with an interface requiring submission of a passphrase or password P. 
     In another step  306 , a master key material M is derived from P using the key derivation function contained in the HTML document. 
     In another step  308 , the encrypted list L C  is decrypted using the symmetric decryption algorithm E −1  contained in the HTML document and the master key material M derived at step  306 , so as to obtain the list L with the random key materials R 1 , . . . , R n . 
     In another step  309 , the cryptographic hash H of the decrypted list L is calculated and compared to the verification hash V. If these hashes differ, the provided passphrase is deemed incorrect, and the decryption process is aborted at step  310 . 
     Otherwise, the decryption process proceeds with a step  312  of decrypting all ciphertexts C 1 , . . . , C n  using the respective key materials R 1 , . . . , R n , to obtain the byte sequences Z 1 , . . . , Z n , which, in an optional step  314 , are decompressed using Q −1  to obtain the original files F 1 , . . . , F n . 
     In another step  316 , the user interface presents the files and allows the user to view or save them. 
     As it appears from the description, the invention provides an improvement in the field of communication systems by enhancing data privacy and by providing methods which allow:
         to securely store data pieces in documents which can be interpreted in a web browser, in particular HTML documents,   functionalities such as encryption, compression, storage, extraction, decryption and decompression of any given file or any given set of files to be performed using only any modern web browser and   to easily encrypt and decrypt data pieces, even for users that do not have any particular computer skills.