The present invention generally relates to user-system independent methods and processes for securing data as well as securely communicating data. More particularly, it relates to a method of end-to-end encryption without previously having a shared secret for secure digital data sharing through a third party, and wherein the process further includes a system of private/public key and symmetric key cryptography with the keys rendered non-discoverable.
End-to-end encryption implies an uninterrupted protection of the confidentiality and integrity of transmitted data by encoding the data at its starting point and decoding it at its destination whilst safeguarding secrets, the keys, at the source and the destination points. This type of encryption involves encrypting useable data at any source with knowledge of an intended recipient, allowing the encrypted data to travel securely through vulnerable communication channels (e.g. public networks) to a recipient where such data may be decrypted based on shared secrets and algorithms.
If a sender and receiver desire to exchange data securely then each must be able to encrypt data to be sent and decrypt data that is received whilst safeguarding secrets on their systems. If the ciphertext, or secret, is a symmetric key, both will need a copy of the same key. If the ciphertext is an asymmetric key having both a public and private key pair then both parties need the other's public key.
In end-to-end encryption the fundamental challenge is how to exchange whatever keys or other information are needed so that no one else can obtain a copy. With the advent of highly secure asymmetric public/private key based algorithms, the encrypting key (i.e. the public key) could be made public, since decryption is only possible with a private decrypting key (i.e. the private key held solely by the recipient).
The problem of key exchange in a non-discoverable fashion where one or more parties may use more than one system has not yet been fully solved. In particular, it has not yet been solved for two previously unknown users attempting to communicate electronically via public networks with which they are in almost constant connection and wherein the user systems may change over time. Various prior art solutions have been proposed, however there is currently no solution to this above-mentioned problem.
U.S. Pat. No. 8,302,173 discloses the exchange of decrypted and encrypted keys, however the system is designed to transfer data between the server and the user. As such, the transaction is bilateral and not trilateral.
U.S. Pat. No. 6,636,838 discloses authentication in a single step. The subsequent exchange of keys happens between the user, who receives an encrypted message and an encrypted key, and then subsequently sends the key to the content screener for identification. If identification is met, then the message is processed. However, in this reference there is just one key involved in this communication rather than multiple keys for increased security.
U.S. Pat. No. 7,080,260 discloses methods and systems for ensuring the encryption and safety of data rather than the secure transmission of data. The system authenticates a user and a client with an encrypted data key. Following this, the system keeps the key in its system and when the user or client revisit, it authenticates them through decryption of the encrypted data key
U.S. Pat. No. 6,954,753 discloses a method wherein the data is transferred to the user by authenticating the encrypted key. The system keeps a table of the encrypted data with the identifier encrypted key. Upon entering the key the encrypted data is retrieved
US 2012/0317655 discloses a method wherein the request for data is sent from the subscriber to the system. This request is not originated by the owner of the data but rather it is the receiver who requests the system to give access to a subscriber or assignee.
U.S. Pat. No. 8,161,565 discloses a method wherein the user sends a ciphertext key to the server and the server decrypts the key and checks with the list of decrypted keys in the system to find the associated information. As such, the associated decrypted information is obtained.
U.S. Pat. No. 7,412,599 discloses a method wherein the record identifier keeps track of all changes happening by each user through the list of mapping and list of users that links the modifications to a specific user. The user authentication happens through a generated public key. When the user is authenticated, the system keeps track of every change done by the user in a record list.
Therefore, there is need for a safe future-proof method and system for end-to-end encryption between two previously unknown users attempting to communicate electronically from various systems by way of unsecured public networks.
This background information is provided to reveal information believed by the applicant to be of possible relevance to the present invention. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art against the present invention.
In at least one embodiment, the present invention provides a method of creating a symmetric encryption key and a strong key by a data owner on a first user system for sending to a third party, the method having the steps of creating at least one symmetric encryption key, the symmetric encryption key associated with a respective at least one data assignee, generating a data owner public key and data owner private key, receiving at least one data assignee public key associated with each respective at least one data assignee, encrypting the at least one symmetric encryption key with the respective at least one data assignee public key, sending at least one encrypted symmetric encryption key encrypted with at least one data assignee public key to the third party, deriving a strong key based on a master password and a set of algorithms, the master password known solely to the data owner and the set of algorithms provided solely by the third party, encrypting each at least one symmetric encryption key and a data owner private key with the strong key using a symmetric algorithm, generating a symmetric encryption set, the symmetric encryption set including each encrypted at least one symmetric encryption key and the data owner private key, sending the symmetric encryption set to the third party, and rendering at least one of the master password, the at least one symmetric encryption key, the strong key and the data owner private key non-discoverable on the first user system.
In another embodiment, the present invention provides a method of transferring secure information from a first user system to a second user system, the method having the steps of securely registering a data owner with a third party, the data owner communicating with the third party from the second user system, sending a set of algorithms from the third party to the data owner on the second user system, deriving a strong key based on a master password and a set of algorithms, the master password known solely to the data owner and the set of algorithms provided solely by the third party, sending at least an encrypted symmetric encryption key set from third party to data owner on the second user system, the encrypted symmetric encryption key set being previously encrypted with the strong key using the first user system, decrypting the encrypted symmetric encryption key set with the strong key on the second user system, rendering at least one of the master password, the strong key and the decrypted symmetric encryption key set non-discoverable on the second user system, and deleting at least one of the master password, the strong key and the decrypted symmetric encryption key set from the second user system.
In another embodiment, the present invention provides a method of rendering at least one secret key associated with a user on a user system non-discoverable, having the steps of mixing a user private key with a user public key based on a predetermined algorithm thereby producing a string, utilizing a set of algorithms to generate a strong string from the string, and encrypting each at least one secret key with the strong string and a symmetric encryption algorithm.
In another embodiment, the present invention provides a method for securely transferring digital data from a data owner to a third party, the data owner having at least one data owner system, having the steps of securely registering the data owner possessing the digital data with the third party, the data owner securely predefining to the third party at least one uniquely identifying coordinate and at least one invitation associated with at least one data assignee, the digital data being associated with the at least one data assignee, the data owner generating a data owner public and private key pair, the data owner generating at least one symmetric encryption key associated with the at least one data assignee, the data owner generating at least one shared password associated with the at least one data assignee, the data owner deriving a strong key using a master password and a set of algorithms, the data owner encrypting the at least one shared password with the at least one symmetric encryption key associated with the at least one data assignee using a symmetric algorithm, the data owner encrypting the at least one symmetric encryption key with the strong key using a symmetric algorithm, the data owner storing the encrypted shared password and encrypted symmetric encryption key and a data owner private key on the at least one data owner system, each at least one data assignee having a corresponding at least one data assignee system, sending the invitation to the at least one data assignee based on the at least one uniquely identifying coordinate, securely registering the at least one data assignee with the third party, generating by data assignee a data assignee public key and a data assignee private key, receiving at least one data assignee public key from each at least one data assignee, each at least one data assignee generating and maintaining access to a data assignee private key, sending the at least one data assignee public key to the data owner, encrypting the digital data with the shared password, encrypting the at least one symmetric encryption key with the at least one data assignee public key, receiving the encrypted at least one symmetric encryption key and the encrypted digital data at the third party, rendering at least one of the data assignee public key and the data assignee private key non-discoverable on the at least one data assignee system and rendering at least one of the shared password, the master password, the strong key, the symmetric encryption key, the owner private key and the data assignee public key non-discoverable on the at least one data owner system, and deleting at least one of the data assignee private key on the at least one data assignee system and deleting at least one of the shared password, the master password, the symmetric encryption key, the strong key and the data owner private key from the at least one data owner system.
In another embodiment, the present invention provides a method for securely transferring digital data from a third party to a data assignee, the data assignee having a data assignee system, having the steps of transferring an encrypted shared password, an encrypted symmetric encryption key and encrypted digital data to the data assignee, and decrypting the encrypted symmetric encryption key with a data assignee private key to obtain the encrypted shared password, decrypting the encrypted shared password with the decrypted symmetric encryption key and decrypting the encrypted digital data with the decrypted shared password.
In another embodiment, the present invention provides a system for securely transferring digital data from a data owner to a third party, the data owner having at least one data owner system, having registration means for securely registering the data owner possessing the digital data with the third party, the data owner securely predefining to the third party at least one uniquely identifying coordinate and at least one invitation associated with at least one data assignee, the digital data being associated with the at least one data assignee, the data owner generating a data owner public key and a data owner private key, the data owner generating at least one symmetric encryption key associated with the at least one data assignee, the data owner generating at least one shared password associated with the at least one data assignee, the data owner deriving a strong key using a master password and a set of algorithms, the data owner encrypting the at least one shared password with the at least one symmetric encryption key associated with the same data assignee using a symmetric algorithm, the data owner encrypting the at least one symmetric encryption key with the strong key using a symmetric algorithm, the data owner storing the encrypted shared password and encrypted symmetric encryption key and an owner private key on the at least one data owner system, each at least one data assignee having at least one corresponding data assignee system, communication means for sending the invitation to the at least one data assignee based on the at least one uniquely identifying coordinate, registration means for securely registering the at least one data assignee with the third party, communication means for receiving at least one data assignee public key from each at least one data assignee, each at least one data assignee generating and maintaining access to a data assignee private key, communication means for sending the at least one data assignee public key to the data owner, encryption means for encrypting the digital data with the shared password, encryption means for encrypting the at least one shared password with the at least one symmetric encryption key, encryption means for encrypting the at least one symmetric encryption key with the at least one data assignee public key, communication means for receiving the encrypted at least one symmetric encryption key and the encrypted digital data at the third party, encryption and communication means for rendering at least one of the data assignee public key and the data assignee private key non-discoverable on the at least one data assignee system and rendering at least one of the shared password, the master password, the strong key, the symmetric encryption key, the owner private key and the data assignee public key non-discoverable on the at least one data owner system, and encryption and communication means for deleting at least one of the data assignee private key on the at least one data assignee system and deleting at least one of the shared password, the master password, the symmetric encryption key, the strong key and the data owner private key from the at least one data owner system.
The present invention will be better understood in connection with the following Figures, in which:
In at least one embodiment, there is provided a method for securely sharing a secret via a third party between a registered user of the third party and a previously unregistered user of the third party which is less cumbersome for the previously unregistered user.
The following definitions will be used throughout the following specification:
Data Owner (also referred to as the “DO”): The person or persons, service or services, that defines the party that possesses Digital Data for sharing, as will be discussed in further detail below. It is contemplated that the Data Owner can be an asset originator or owner. According to at least one embodiment of the present invention, the Data Owner may encrypt and transmit Digital Data and Digital Data Sets to a Third Party, as discussed below. The Data Owner chooses which Data Assignee will receive which Digital Data Set, where it is contemplated that the Digital Data Set can include a part or the whole of Digital Data.
Data Assignee (also referred to as the “DA”): A person, service, or party that has been defined, at any time before a trigger event, by the Data Owner. It is contemplated that the Data Assignee can be identified by both a unique name and detailed coordinates by the Data Owner, among other unique identifying characteristics that will readily be understood by the skilled person. It is contemplated that the Data Assignee can receive a portion of the Digital Data (which will be pre-encrypted), as predefined by the Data Owner in their Digital Data Set, after a trigger event that has occurred and was validated through the third party digital storage provider.
Third Party (also referred to as the “3P”): The third party digital storage provider responsible for obtaining and storing encrypted Digital Data and Digital Data Sets, and managing the interactions between the various systems, the Data Owner and the Data Assignee through communicating notices, events, invitations, among other methods of communication that will be readily understood by the skilled person. It is further contemplated that the Third Party distributes the relevant portion of the Data Owner's Digital Data (called the Digital Data Set as further discussed below) when authorized to do so. The Third Party is also responsible for the arm's length validation of the occurrence of the trigger event as defined by the criteria pre-established by Data Owner.
Third Party Server (also referred to as the “3PS”): The Third Party Server is the environment and means which carries out services of the Third Party. In at least one embodiment, it is contemplated that the Third Party Server is a cloud computing server having internet access for both the Data Owner and the Data Assignee, among other arrangements as will be readily understood by the skilled person.
Invitation: Any traceable, original and unmanipulated, electronic communication that serves as an invitation from one party to another party, such as, but not limited to an SMS code, an email link, a card holding a code, among other electronic communications that will be readily understood by the skilled person.
Digital Data (also referred to as the “DD”): Any digital information, such as but not limited to, a username plus password combination, software code, data files, digital media such as a photo, music, video, a document, text, notes, binary string, among any other digital information that will be readily understood by the skilled person.
Digital Data Set (also referred to as the “DDS”): The specific data which is any part of Digital Data pre-selected by the Data Owner which is to be solely transferred to the Data Assignee upon a trigger event related to that Digital Data Set. It is contemplated that the Digital Data may be the source of multiple Digital Data Sets that may be designated for transfer to multiple Digital Assignees, or alternatively the Digital Data Set may be completely co-extensive and coterminous with the Digital Data, among other arrangements that will be readily understood by the skilled person.
Encryption Key: A key used to encrypt a Secret, as discussed below.
Public Key (also referred to as the “PuKey”): A key generated by a Public Key Infrastructure for a destination party, that is the originator of the public key generation request, which may be shared amongst various other parties to encrypt secret information by a source party and transfer secret information from a source party to the destination party securely over public networks.
Private Key (also referred to as the “PrKey”): A key generated by a Public Key Infrastructure for a destination party which is not shared with any other party and is used solely to decrypt secret information transferred over public networks by a source party that used the public key of the destination party for encryption.
Shared Password (also referred to as the “SP”): A random-character password which is generated by a Data Owner and which is solely used in connection with one Data Assignee.
Symmetric encryption key (also referred to as the “KEK”): A random-character string used with a symmetric encryption algorithm and which is generated by a Data Owner to be solely used in connection with one Data Assignee.
∀: For all.
{ . . . }: The set containing the elements . . . .
K[S]: Using encryption algorithm(s) [ ] with encryption key K to encrypt secret information S.
Vi: Any variable V that can be indexed from 1 to some maximum integer value. The index integer here is represented by “i” but the characters j, k, l, m or n are also used below. The variable can be any capital letter(s).
In at least one embodiment, the present invention provides a novel end-to-end encryption method for digital data sharing through a Third Party, as will be described hereinafter. Although the invention is described in terms of specific illustrative embodiment(s), it is to be understood that the embodiment(s) described herein are by way of example only and that the scope of the invention is not intended to be limited thereby.
Referring to
Referring to
Referring to
In at least one embodiment, DO defines on system S1, the first time MPCU is used, a long string input (LTI) (for example, a long string text which has a number of characters greater than 32 and which contains at least one uppercase, one lower character and one number. It can also contain one or more symbols.) and which DO can easily remember (e.g. a long text whereby page number and paragraphs from an electronic book or a website which are known to DO and are easily remembered by DO) [3.4]. This LTI is inputted, e.g. ‘Copy-Paste’ pass-through, into MPCU at [3.3]. MPCU then determines if LTI is too weak [3.5], is strong enough [3.8] and also makes suggestion(s) of one or more potential strong Master Passwords (SMP) [3.7]. If LTI is too weak then DO is requested to choose another LTI [3.6] and redo the above process from [3.4] to [3.3] to [3.7] and [3.8]. When LTI is deemed strong enough then this process stops and DO chooses either the final LTI or one of the SMP that can easily be remembered as the Master Password MP. Once DO has made this choice the MP is fixed for future use and stored securely in a non-discoverable fashion (see
In at least one embodiment, once MP is known, any system Sm where m>0 can download the set of algorithms SOA from 3PS. These algorithms are composed of three parts [3.10]:
On any Sm once SOA is downloaded it autoplays and its first request is for DO to input MP [3.10]. DO can input MP manually or via pass-through (e.g. via clipboard) [3.11]. SOA then creates a Salt with MP as seed [3.12], creates the number of process cycles NPC used at any stage with MP as a seed to define NPC [3.13], defines the process steps between the use of the Salt in the algorithm(s) in each cycle [3.14] and runs, at each step, the related K creation algorithm(s) therein based on hashing and other algorithms. When SOA terminates it is immediately removed from any memory and storage of the system. [3.15]. The output of this process on any system Sm m>0 is the strong key K which is in one-to-one correspondence with MP [3.16]. Once K is known MP is no more needed on the system since the user remembers how to obtain MP [3.17].
Referring to
Referring to
Referring to
On the DAi system all secret keys, such as for example Shared Password SPi, KEKi and DAiPrKey, are made non-discoverable (see
Referring to
Referring to
The first step is to interleave PuKeyj with PrKeyj with some pre-decided interleave factor for each j which then produces the string STj [28]. Next with STj as input one uses SOA (as already defined in
In at least one embodiment, when encryption is complete all of the source NDK(j,k)'s are removed from any memory or storage of the system to assure that no third party or third party program can find the unencrypted secret keys [31].
Each user j then selects a 6 character or longer password which is referred to here as PSWj. PSMj should be chosen such that user j will not forget it as it should not be saved on j's system where the encrypted secrets are stored [32].
PSWj is then used to encrypt the strong string SSTj as PSWj[SSTj] and the source SSTj is removed from any memory or storage of the system to assure that no third party or third party program can find the unencrypted secret keys. Note that for DO that PSW can be MP and for DAi that PSWi can be found by the same process as MP in
This password, PSWj, is also used with an algorithm in an application called GENERATEj, download from 3PS, which upon selection of “generate location” in the invoked application called GENERATEj is used to produce a file with the following entries NAMEj, PAGEj, YLINEj and XENTRj; this is the so called location Lj [34]. PSWj[SSTj] is then stored in a common file type on the user j's system (e.g. a .doc file) of name NAMEj and therein it is embedded in a predefined location Lj (e.g. (NAMEj, PAGEj, YLINEj, XENTRYj)) which is in one-to-one correspondence with PSWj. After Li is used to store PSWj[SSTj] it and GENERATEj are removed from any memory or storage of the system to assure that no third party or third party program can find the unencrypted secret keys or the application [35]
In at least one embodiment, the decryption occurs automatically upon download from 3PS and invocation of application GENERATEj and the selection of “decrypt strong string” therein. After said selection the user j is prompted to enter PSWj which results in the generation of Lj and the reversal of the order of the process from [35] to [26]. After Lj generation by GENERATEj the application is removed from any memory or storage of the system [36].
Numerous modifications could be made to any of the embodiments described above without departing from the scope of the present invention. Further, it is obvious that the foregoing embodiments of the invention are examples and can be varied in many ways. Such present or future variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CA2013/050382 | 5/17/2013 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
61729358 | Nov 2012 | US |