DATA ACCESS CONTROL
20220394020 · 2022-12-08
Inventors
Cpc classification
H04L63/045
ELECTRICITY
H04L9/0861
ELECTRICITY
H04L9/085
ELECTRICITY
H04L9/0825
ELECTRICITY
International classification
Abstract
A method for controlling access to data by users, where a system generates a first symmetric encryption key stream and defines a number of shares of which a number is required to calculate each of said symmetric encryption keys; a sequential portions of data being symmetrically encrypted with the symmetric encryption key; the key stream data further being asymmetrically encrypted with at least one public asymmetric encryption key that is received by the system; and transmitting the asymmetrically encrypted key stream data and said first symmetrically encrypted data file or stream comprising sequential portions of encrypted data to a data storage.
Claims
1. A method to allow a user to view symmetrically encrypted data payloads whose Session Key is separated into two or more shares among shareholders, comprising: a. receiving, from a server, a user share or sub-share asymmetrically encrypted using the user's public key which can be used in the decryption of a symmetrically encrypted data payload stored on the server; b. decrypting the asymmetrically encrypted share or sub-share using the user's private key to obtain said user share or sub-share; c. when decryption of the symmetrically encrypted data payload is required: i. requesting other trusted parties that have shares or sub-shares needed to solve for the Session Key to decrypt their shares or sub-shares, asymmetrically encrypt them using the user's public key and transmit them to the user; ii. decrypting the transmitted asymmetrically encrypted shares using the user's private key; iii. solving for the Session Key using the decrypted shares and sub-shares; iv. decrypting the encrypted data payload; and v. viewing the decrypted data payload; and d. when receiving a request to provide said user share or sub-share to another authenticated one of said shareholders: i. encrypting said user share or sub-share using a public key of said other authenticated one of said shareholders; and ii. transmitting said encrypted user share or sub-share in response to said request.
2. The method of claim 1, wherein receiving a share or sub-share from a server further comprises receiving additional information accompanying the share or sub-share, wherein the additional information comprises a symmetrically encrypted data payload which the user's share or sub-share used for decrypting, the fiduciary parameter of the symmetrically encrypted data payload, the fiduciary sub-share parameters of the symmetrically encrypted data payload and a list of shareholders from whom the user may request shares and sub-shares.
3. The method of claim 1, further comprising, prior to decrypting the encrypted data payload, requesting and receiving from a server storing the symmetrically encrypted data payload which the user's share or sub-share is used to decrypt, the symmetrically encrypted data payload which the user's share or sub-share is used to decrypt.
4. The method of claim 1, further comprising, prior to step (c)(i), determining the number of shares and sub-shares from each category required to decrypt the symmetrically encrypted data payload by requesting and receiving from the server the fiduciary parameter of the symmetrically encrypted data payload, the fiduciary sub-share parameters of the symmetrically encrypted data payload and a list of shareholders from whom the user may request shares and sub-shares to inform the user of where and to whom to transmit the request.
5. The method of claim 1, wherein step (c)(i) comprises manually transmitting requests to other shareholders.
6. The method of claim 1, wherein step (c)(i) comprises submitting a request to a share exchange facilitator which will automatically transmit the user's request to all relevant shareholders without the user needing to know of or be in contact with the shareholders.
7. The method of claim 1, wherein receiving a request to provide a user share or sub-share comprises receiving a request directly from another user.
8. The method of claim 1, wherein receiving a request to provide a user share or sub-share comprises receiving a request from a share exchange facilitator.
9. The method of claim 1, wherein encrypting said user share or sub-share involves transmitting the share or sub-share to an encrypter unit separate from the user's computer.
10. The method of claim 1, wherein encrypting said user share or sub-share involves encrypting the share or sub-share using an encrypter unit in the user's computer.
11. The method of claim 1, transmitting said encrypted user share or sub-share in response to said request comprises transmitting the encrypted share or sub-share to the requesting user directly.
12. The method of claim 1, transmitting said encrypted user share or sub-share in response to said request comprises transmitting the encrypted share or sub-share to an authenticator or a share exchange facilitator, which will in turn transmit the encrypted share or sub-share to the requesting user, so that the user remains anonymous.
13. The method of claim 1, wherein the shares and sub-shares represent points of a polynomial function the degree of which is equal to the fiduciary parameter, where the Session Key is the zero of the polynomial function to allow for more efficient decryption.
14. The method of claim 1, further comprising, if solving for the Session Key using the decrypted shares and sub-shares and decrypting the encrypted data payload are performed on a user's computer, using some implementations of secure data processing already included by the manufacturers in the processor of the user's computer to ensure that no rogue computer programs may access the Session Key or decrypted data payload.
15. The method of claim 1, wherein any transmission or request of information sent from the user is first transmitted to an authenticator before reaching its eventual destination, so that an authenticator system can track which users communicate with each other, which users share shares or sub-shares, and which users view which data payloads.
16. The method of claim 1, wherein any transmission or request of information sent from the user is accompanied by the user's User ID to allow for a system authenticator to track which users communicate with each other, which users share shares or sub-shares, and which users view which data payloads.
17. A computer-readable non-transitional memory storing instructions executable by a computer device of a user for viewing symmetrically encrypted data payloads whose Session Key is separated into two or more shares among shareholders, comprising: at least one instruction for causing: receiving, from a server, a user share or sub-share asymmetrically encrypted using the user's public key which can be used in the decryption of a symmetrically encrypted data payload stored on the server; decrypting the asymmetrically encrypted share or sub-share using the user's private key to obtain said user share or sub-share; when decryption of the symmetrically encrypted data payload is required: requesting other trusted parties that have shares or sub-shares needed to solve for the Session Key to decrypt their shares or sub-shares, asymmetrically encrypt them using the user's public key and transmit them to the user; decrypting the transmitted asymmetrically encrypted shares using the user's private key; solving for the Session Key using the decrypted shares and sub-shares; decrypting the encrypted data payload; and viewing the decrypted data payload; and when receiving a request to provide said user share or sub-share to another authenticated one of said shareholders: encrypting said user share or sub-share using a public key of said other authenticated one of said shareholders; and transmitting said encrypted user share or sub-share in response to said request.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The proposed solutions will be better understood by way of the following detailed description of embodiments of the invention with reference to the appended drawings, in which:
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
DETAILED DESCRIPTION
[0036]
[0037]
[0038] As is known in the art, the Shamir Secret Sharing algorithm provides a way to divide a given secret, herein the Session Key, into unique parts that are passed down to different participants. In order to reconstruct the secret, a minimum number of participants need to come together and provide their unique part. This technique ensures that even if a share, or multiple shares, has been compromised, it remains impossible to access the encrypted sensitive data if the threshold of required shares is not reached. This threshold of required shares is further defined as the fiduciary parameter.
[0039] The implementation of SSS is done through the definition of a polynomial of the order that is equivalent to the fiduciary parameter minus one. As will be further illustrated in
[0040] In an embodiment of the present application, the Session Key is randomly generated to be a randomized 512-bit integer value. The space in which the mathematical calculations for the SSS implementation are being computed may also comprise values ranging from 0 to 2.sup.512-1 both in the horizontal and vertical axes. Computer extensions to perform calculations on 512-bit vectors on processors, such as Intel's AVX-512, may be used. It will be appreciated by someone skilled in the art that the implementation of this solution may be done using different bit lengths, whether to a lesser or greater length, as this only affect the level of security by reducing or increasing the amount of possible encryption key.
[0041]
[0042] An example of a situation for which the sub-shares may be useful is for the access to encrypted data, such as video surveillance footage, in a police investigation. During an investigation, an investigator may require access to sensitive data that requires authorization from either his supervisor, a judge, both or any number of supervisors and judges. If every participant receives a unique share of the Session Key required to decrypt the requested video surveillance footage, a number of participants from only one of the categories, such as multiple investigators, may come together and be able to solve the Session Key secret without inputs from a supervisor and a judge.
[0043] The embodiment of
[0044] In yet another embodiment, the nested SSS system implementation may be replaced by using non-unique fiduciary shares, such that a number of parties have the same fiduciary share. In this embodiment, all the categories from the previous example may have a single fiduciary share per category, thus effectively preventing multiple parties from a given category from having access by itself to the Session Key. This embodiment has the disadvantage of not being able to track which specific parties gave their authorization to access the encrypted data, although this may be done through any other means.
[0045] The embodiments illustrated in
[0046]
[0047] In another embodiment, the process illustrated in
[0048]
[0049] In another embodiment, the process illustrated in
[0050] In the embodiment shown in
[0051] It will be appreciated by someone skilled in the art that, in other embodiments, the reconstruction of the polynomial may be made using any other polynomial interpolation methods, such as Newton polynomials.
[0052]
[0053]
[0054] In another embodiment, the polynomial function may be of any higher polynomial order, as would be defined by the fiduciary parameter input. In some embodiments, the secret may be any point along the polynomial function. The point may be defined as the function result at a randomized location or at a location that may be defined by an administrator of the security system.
[0055]
[0056] In this embodiment of the data access process, the requested fiduciary shares may be transmitted to the requesting user 45 after being encrypted with the public key of the requesting user 44. Thereafter, the requesting user may proceed with the share solver 46 in order to determine the Session Key with which the requested sensitive data has been encrypted. The Session Key determined, the requesting user may then decrypt 47 and view the sensitive data 48.
[0057] In some embodiments, the sensitive data 48 may be a single data file whereas, in other embodiments, the sensitive data 48 may be a data stream. Streams of data, such as security camera video footage, may be separated in multiple data files each containing a given amount of data (e.g. separated when reaching a certain time length or when reaching a certain file size). The separation and encryption of multiple data files of a data stream may significantly increase the security of data access, since gaining access to a single data file does not grant access to the whole data stream (i.e. an unauthorized user finding the decryption key for a data file may only view a 5 second video clip of a security camera video footage instead of a full day of video surveillance).
[0058] In order to view a requested data stream, the requesting user may receive the plurality of fiduciary shares required to find all the Session Keys necessary to decrypt the sequential portion of the data stream that was requested. This may be implemented in order for the requesting user to be able to watch continuous footage without the system having to process new queries each time a data file from the requested data stream is finished playing.
[0059]
[0060]
[0061] The Share Exchange Facilitator module 54 accesses the information on how the data from the Block ID was encrypted, namely the fiduciary parameter that was defined based on the desired number of trusted parties that are required to come together in order to unlock the secret of the Session Key. In an embodiment in which multiple categories of trusted parties exists, as shown in
[0062] It will be appreciated that the Share Exchange Facilitator 54 is only one of the possible ways for a requesting user 58 to obtain the required fiduciary shares to unlock the Session Key and access the sensitive data. The Share Exchange Facilitator 54 provides an automated service that may very well be replaced by any other means, such as the requesting user personally asking trusted parties 57 from other categories to provide him with their fiduciary share. The trusted parties 57 may then provide their fiduciary share to the requesting user 58 through the Encrypter 56, such that their fiduciary shares are not being transmitted unencrypted. In such embodiment, the users would have access to a repository of data concerning the fiduciary parameters for each Block ID of encrypted data. Furthermore, the users may have access to a list of trusted fiduciary share holders from each category, in order for them to know which trusted parties 57 they would need to contact.
[0063] This second set of Authenticator 55 provides the authorization request to the trusted parties 57 of its category and further provides the User ID to an Encrypter unit 56. Once the authorizing users 57 agree to authorize the data access, their fiduciary share is transferred to the Encrypter unit 56 to be encrypted with the requesting user's public key. It will be appreciated that the Encrypter unit 56 may be a separate module for the category or may be implemented in each trusted party 57 computer unit.
[0064] Furthermore, the embodiment presented in
[0065] It will be appreciated that the embodiment illustrated in
[0066] In another embodiment, the Store of Sensitive Data 52 may be separated in two entities, one in which the encrypted data resides and another in which the fiduciary share parameters reside. This embodiment may allow quicker access to the sensitive data and the distribution of the information on the fiduciary parameters in an embodiment for which a Share Exchange Facilitator 54 would be the connecting service between the requesting user 58 and the trusted parties 57 holding the necessary fiduciary shares.
[0067] It will be appreciated by someone skilled in the art that the Store of Sensitive Data 52, as shown in the embodiment of
[0068] In some embodiments, the requestor unit may incorporate the solver and the data decrypter inside the CPU. Using some implementations of secure data processing already included by manufacturers in their processor (include AMD secure processing reference?) may ensure that no rogue computer programs may access the Session Key decryption secret.
[0069]
[0070]
[0071] In some embodiments, the control user may be a server. This implementation of the system allows the tracking of who requests access to what sensitive data and, more importantly, may be used to prevent someone who would have stolen a computer to have the ability to access the sensitive data in cases where a user's private key is implemented for calculations directly inside the CPU. The control server may then refuse all the authorization requests from a given compromised user.
[0072]
[0073] Nesting a share solving step for the different categories may result in increased security when deciding who, from the trusted parties, may access the sensitive data. It will be appreciated that different embodiments may allow different distribution of access and authorizing rights to different categories. In an embodiment, the users from one category may have enough fiduciary shares to solve between themselves the Session Key secret, whereas other trusted parties from other categories may yet require a fiduciary part from the first independent category in order to have enough information to solve the Session Key secret.
[0074]
[0075] In the embodiment of
[0076] The requestor unit 49 comprises a key solver 59, which may solve input fiduciary shares and sub-shares 70, which may include nested categories share solving, to ultimately result in the session key required to decrypt the requested sensitive data. Once the key solver 59 outputs the session key, a data decrypter 60 may use it to decrypt the requested sensitive data received from the store of sensitive data 52, such that the requesting user may view the sensitive data on a content viewer 61.
[0077] Now referring to
[0078] A user desiring to gain access to sensitive data that has been encrypted with a session key as described herein must first request such access 40, which may be as simple as a user asking a supervisor's approval, filling necessary paperwork or filing a request on a network program. This request step 40 also provides the requesting user with the possibility of identifying the fiduciary parameters and the required fiduciary shares and sub-shares to decrypt the desired data 71.
[0079] The user may thereafter retrieve the fiduciary shares or sub-shares, from the key share holders, which may be included on physical mediums (e.g. usb key) 72. Once retrieved, the key shares and sub-shares may be input in the requestor unit 73, which may be done by connecting the usb key to the requestor unit, by manually entering the keys with the keyboard or in any other related physical manner.
[0080] Following this, the requestor unit may access the fiduciary shares or sub-shares 74 such that they may be used in the user share solving process 46. In some embodiments, a nested category share solving process 68 may also be included prior to the user share solving process 46. The decryption of the requested sensitive data 47 may then be done with the solved session key and therefore the requesting user may view the sensitive data 48 at his discretion.