Hidden Link Dynamic Key Manager for use in Computer Systems with Database Structure for Storage and Retrieval of Encrypted Data
AssigneeMedna, LLC
InventorAshraf Madoukh
Life of this patent
Estimating the term…
Loading patent…
AssigneeMedna, LLC
InventorAshraf Madoukh
Estimating the term…
Abstract of Disclosure A computer system (20) with a security domain (22), at least one client business domain (26), and a plurality of client terminals (34) utilizes a hidden link dynamic key manager (24, 84) and a database structure including encrypted data entities (30C, 30D) and a security identification attribute (32) for storage of encrypted data. A method for encryption, storage, decryption, and retrieval of encrypted data operates on the computer system (20), which also includes an information database (62) and a key database (44). The key database (44) is isolated from the information database (62). The security domain (22) includes a system key manager (84) operable to generate system keys with system key common names and an encryption key manager (24) operable to generate encryption keys having encryption key identifications. The key managers (24, 84) operate on a key server (40), which is mirrored by a secondary key server (42). A general security manager (82) also operates on the key server (40) to control access to the security domain (22). The security information attribute (32) is stored with a persistent data entity (30A) that is associated with the other data entities (30C, 30D) by a database schema. The security information attribute (32) includes the encryption key identification (112) for the encryption key used to encrypt the data entities (30C, 30D). The encryption key identification is encrypted by the system key, and the system key common name hash value (114) is also stored in the security information attribute (32). The information data entities (30) are stored on the information database (62), but the encryption key identification (153), encryption key (154), system key common name hash value (156, 157), and system key common name (158) are stored in the key database (44) inside the security domain (22). The system key itself is stored on a Smart Card reader (56) inside the security domain.
A computer readable medium containing a database structure for storage of encrypted data, the database structure comprising:
The computer readable medium according to claim 1 wherein the at least one encryption key identification is encrypted by a system key, and the database structure further comprises a system key common name corresponding to the system key, and the system key common name being stored in association with the data entity.
The computer readable medium according to claim 2 wherein the system key common name is hashed, and the data structure further comprising a system key common name hash value stored in association with the system common name.
The computer readable medium according to claim 3 wherein the system key common name and the system key common name hash value are stored on a separate database from the at least one data entity.
The computer readable medium according to claim 1 wherein the at least one encryption key identification is encrypted by a system key.
The computer readable medium according to claim 1 wherein the at least one encryption key comprises a dynamic encryption key, and the at least one encryption key identification comprises a dynamic encryption key identification.
The computer readable medium according to claim 1 further comprising a plurality of data entities encrypted by a plurality of encryption keys, and a plurality of encryption key identifications.
The computer readable medium according to claim 7 wherein the plurality of encryption keys comprise dynamic encryption keys, and the plurality of encryption key identifications comprise dynamic encryption key identifications.
The computer readable medium according to claim 1 wherein the data structure further comprises a plurality of hash values with each of the searchable attributes having a corresponding hash value.
The computer readable medium according to claim 1 wherein the data structure further comprises at least one integrity attribute in association with the data entity.
The computer readable medium according to claim 1 wherein the data structure further comprises a security key attribute of the data entity, the security key attribute including the at least one encryption key identification and a system key common name.
The computer readable medium according to claim 1 further comprising a first database including the data entity and encryption key identification stored thereon and a second database including the encryption key stored thereon.
The computer readable medium according to claim 12 wherein the first database further includes a system key common name stored thereon, and the system key common name corresponds to a system key used to encrypt the encryption key identification.
The computer readable medium according to claim 13 further comprising a security token including the system key stored thereon.
The computer readable medium according to claim 14 wherein the security token comprises a Smart Card reader.
The computer readable medium according to claim 1 wherein the at least one encryption key identification is stored as an attribute of the data entity.
The computer readable medium according to claim 1 wherein the data entity comprises a data object having a plurality of attributes.
The computer readable medium according to claim 1 further comprising a second data entity including as attributes the encryption key and the encryption key identification.
The computer readable medium according to claim 18 wherein the second data entity is stored on a separate isolated database from the at least one data entity.
The computer readable medium according to claim 1 further comprising a second data entity encrypted by a second encryption key, the second data entity having a second searchable attribute, and a second encryption key identification corresponding to the second encryption key;
The computer readable medium according to claim 20 wherein the second encryption key identification is stored as an attribute of the second data entity.
The computer readable medium according to claim 20 wherein the first and second encryption key identifications are encrypted by a system key having a system key common name.
The computer readable medium according to claim 22 wherein the system key comprises a public system key.
The computer readable medium according to claim 22 further comprising the system key common name stored as an attribute of the first and second data entities.
The computer readable medium according to claim 20 wherein the first encryption key identification is encrypted by a first system key, and the second encryption key identification is encrypted by a second system key.
The computer readable medium according to claim 20 wherein the first and second data entities contain information for an individual customer.
The computer readable medium according to claim 26 wherein the first data entity contains medical patient name information, and the second data entity contains medical patient address information.
A computer readable data transmission medium containing a data structure for encrypted data, the data structure comprising:
A computer readable data transmission medium containing a data structure for encrypted data, the data structure comprising:
A computer readable medium containing a database structure for storage of encrypted data, the database structure comprising:
The computer readable medium according to claim 30 wherein the data structure further comprises the encryption key identification.
The computer readable medium according to claim 31 wherein the encryption key identification is encrypted by the system key.
The computer readable medium according to claim 30 wherein the plurality of data entities includes a first data entity encrypted by the at least one encryption key and a second data entity encrypted by a second encryption key, and further comprising a first encryption key identification corresponding to the at least one encryption key, and a second encryption key identification corresponding to the second encryption key.
The computer readable medium according to claim 33 wherein the system key common name comprises a first system key common name corresponding to a first system key, and the data structure further comprising the encryption key identification, which is a first encryption key identification, being encrypted by the first system key, and a second system key common name corresponding to a second system key, and wherein the second encryption key identification is encrypted by the second system key.
The computer readable medium according to claim 33 wherein the plurality of data entities includes a third data entity encrypted by the a third encryption key, and further comprising a third encryption key identification corresponding to the third encryption key.
The computer readable medium according to claim 35 wherein the first, second, and third data entities pertain to an individual with the first data entity containing name information for the individual, the second data entity containing address information for the individual, and the third data entity containing telephone information for the individual.
The computer readable medium according to claim 30 wherein the system key common name is hashed.
The computer readable medium according to claim 37 further comprising a system key data entity including the system key common name and the system key common name hash value.
The computer readable medium according to claim 38 wherein the plurality of data entities are stored on a first database, and the system key data entity is stored on a second database.
A method for storage and retrieval of encrypted data, the method comprising:
The method according to claim 40 further comprising:
The method according to claim 41 wherein requesting the data manipulation comprises requesting a data update of new information, and further comprising encrypting the new information with a second encryption key.
The method according to claim 41 wherein requesting the data manipulation comprises requesting an addition of new information, and further comprising encrypting the new information with a second encryption key.
The method according to claim 41 wherein requesting the data manipulation comprises requesting viewing of current information, and further comprising encrypting the viewed information with a second encryption key.
The method according to claim 40 further comprising encrypting the encryption key identification with a system key having a system key common name.
The method according to claim 45 further comprising storing the system key in a security token.
The method according to claim 45 further comprising:
The method according to claim 45 wherein encrypting the encryption key identification with a system key comprises encrypting the encryption key identification with a system public key.
The method according to claim 48 further comprising decrypting the encryption key identification with a system private key.
The method according to claim 45 further comprising storing the system key common name in association with the data entity.
The method according to claim 45 further comprising checking for expiration of the system key, and upon expiration of the system key, discontinuing use of the system key and generating and using a new system key.
The method according to claim 51 further comprising upon expiration of the system key, retaining the system key for decrypting previously encrypted encryption key identifications.
The method according to claim 40 further comprising encrypting the encryption key identification with a system key having a system key common name, hashing the system key common name to create a system key common name hash value, and storing the system key common name and system key hash value in association with the data entity.
The method according to claim 53 further comprising:
The method according to claim 53 further comprising verifying the system key with a private certificate authority, and performing an integrity check on the system key.
The method according to claim 40 further comprising checking the encryption key for expiration.
The method according to claim 56 further comprising upon expiration of the encryption key, generating a new encryption key having an expiration date, retrieving data entities using the encryption key, decrypting the retrieved data entities with the encryption key, encrypting the retrieved data entities with the new encryption key, storing the retrieved data entities.
The method according to claim 40 further comprising hashing searchable attributes of the data entity to determine data entity attribute hash values and storing the data entity hash values in association with the data entity.
The method according to claim 58 further comprising:
The method according to claim 40 further comprising transmitting the data entity over a data transmission line, and wherein encrypting the data entity comprises encrypting only a portion of the data entity in accordance with a business rule.
The method according to claim 40 further comprising generating a new encryption key for each user session.
The method according to claim 40 further comprising generating a new encryption key for each user action.
The method according to claim 40 further comprising retrieving the encryption key from a separate database, and decrypting the data entity with the encryption key.
The method according to claim 40 further comprising auditing the encryption key for a desired event.
The method according to claim 40 wherein the data entity and encryption key identification are stored in a first database, and further comprising storing the encryption key in a second database.
The method according to claim 40 further comprising encrypting the encryption key identification with a system key having a system key common name, and maintaining the system key within a security domain at all times.
The method according to claim 40 further comprising:
A method for retrieval of encrypted data at rest, the method comprising:
The method according to claim 68 further comprising:
A method for storage and retrieval of encrypted data, the method comprising:
The method according to claim 70 wherein the desired event comprises beginning a new user session.
The method according to claim 70 wherein the desired event comprises beginning a new user action.
The method according to claim 70 further comprising encrypting the session encryption key identification with a rotating system key having a system key common name.
A method for storage and retrieval of encrypted data, the method comprising:
The method according to claim 74 further comprising encrypting the first and second encryption key identifications with a system key having a system key common name, and storing the system key common name in association with the first and second data entities.
The method according to claim 75 wherein the first and second data entities are linked and relate to an individual.
The method according to claim 76 further comprising:
The method according to claim 74 further comprising encrypting the first encryption key identification with a first system key having a first system key common name, and storing the first system key common name in association with the first data entity, and encrypting the second encryption key identification with a second system key having a second system key common name, and storing the second system key common name in association with the second data entity.
The method according to claim 78 further comprising:
A computer system comprising:
The computer system according to claim 80 further comprising a system key manager operable to generate a system key having a system key common name, the system key being operable to encrypt the encryption key identification.
The computer system according to claim 81 wherein the information database is further operable to store the system key common name in association with the data entity.
The computer system according to claim 81 further comprising a security token and a security token reader operable to receive the security token, and wherein the system key is stored on the security token.
The computer system according to claim 83 wherein the security token comprises a Smart Card and the security token reader comprises a Smart Card reader.
The computer system according to claim 80 further comprising an encryption key database operable to store the encryption key.
The computer system according to claim 85 further comprising a system key manager operable to generate a system key having a system key common name, the system key manager being further operable to hash the system key common name to create a system key common name hash value, the system key being operable to encrypt the encryption key identification, and a system key database operable to store the system key common name hash value and the system key common name.
The computer system according to claim 80 further comprising a hardware random number generator operable to generate the encryption key.
The computer system according to claim 80 further comprising a key lifetime manager operable to monitor encryption key expiration dates and request new encryption keys upon expiration of old encryption keys.
The computer system according to claim 88 wherein the key lifetime manager is operable to replace the encryption key with the new encryption key.
The computer system according to claim 80 wherein the encryption key manager is operable to generate a new encryption key upon the occurrence of a desired event.
The computer system according to claim 90 wherein the desired event comprises expiration of the encryption key.
The computer system according to claim 90 wherein the desired event comprises beginning a new user action.
The computer system according to claim 80 further comprising a system key manager operable to generate a system key having a system key common name, the system key being operable to encrypt the encryption key identification, and a key lifetime manager operable to monitor system key expiration dates and request new system keys upon expiration of old system keys.
The computer system according to claim 80 further comprising a general security manager operable to communicate with external computer systems, and wherein the encryption key manager is only operable to communicate with the general security manager.
The computer system according to claim 80 further comprising a business logic component operable to determine what portions of the data entity are encrypted, and wherein the encryption key manager is not operable to communicate with the business logic component.
A computer readable medium containing instructions for controlling a computer system to encrypt and decrypt data, by:
The method according to claim 96 further comprising:
A method of providing a secure environment for the storage of information, the method comprising:
The method according to claim 98 further comprising encrypting the encryption key identification with a system key having a system key common name.
A method in a computer system for displaying customer information, the method comprising:
The method according to claim 100 wherein adapting the display parameters to modify the available display fields comprises eliminating available display fields corresponding to information the user is not entitled to view.
The method according to claim 100 wherein checking the security access level of the user comprises checking a role identification of the user.
The method according to claim 100 wherein checking the security access level of the user comprises checking a user identification of the user.
The method according to claim 100 further comprising automatically adding to the security access list a responsible user marking the security status of the information as private.
A method in a computer system for communicating with an encryption server, the method comprising:
The method according to claim 105 wherein retrieving the security key information from the data entity comprises retrieving an encryption key identification.
The method according to claim 105 wherein retrieving the security key information from the data entity comprises retrieving an encryption key identification in an encrypted form and retrieving a system key common name.
The method according to claim 105 wherein retrieving the security key information from the data entity comprises retrieving an encryption key identification in an encrypted form and retrieving a system key common name hash value.
The method according to claim 105 further comprising receiving a plurality of data entities in response to the request, retrieving security key information from the data entities, requesting multiple encryption keys, and receiving multiple encryption keys.
The method according to claim 105 further comprising inserting a security token into a security token reader.
An encryption and decryption method for encrypting and decrypting data, the method comprising:
The method according to claim 111 further comprising encrypting the encryption key with an encryption key manager digital certificate.
The method according to claim 112 further comprising decrypting the encryption key identification with the system key, decrypting the encryption key with an encryption key manager private key corresponding to the encryption key manager digital certificate, and decrypting the data with the encryption key.
The method according to claim 113 wherein decrypting data without authorization requires at least copying an information database, copying a key database, and copying a certificate store.
The method according to claim 111 further comprising decrypting the encryption key identification with the system key and decrypting the data with the encryption key.
The method according to claim 115 wherein decrypting data without authorization requires at least copying an information database, copying a key database, and copying a certificate store.
The method according to claim 111 wherein decrypting data occurs only during run time.
The method according to claim 111 wherein the encryption key is dynamic and rotating, and the system key is rotating.
The method according to claim 111 further comprising encrypting the system key common name and storing the encrypted encryption key identification and encrypted system key common name in association with the data encrypted by the encryption key.
The method according to claim 119 wherein encrypting the system key common name comprises hashing the system key common name.