throbber
RIV-1021
`Riverbed Technology v. Silver Peak Systems
`IPR2014-00245 / Page 1 of 12
`
`

`

`U.S. Patent
`
`Sep. 19, 2006
`
`Sheet 1 0f 6
`
`US 7,111,005 B1
`
`SECURITY; 3‘
`
`'5 % DATABASE
`
`ADMINISTRATOR 106 . ‘ .
`
`. '
`
`ADMINISTRATOR 108
`
`‘
`USER
`ADMINISTRATOR 104'.
`
`CLIENT 110
`
`
`
`USER 102
`
`DATABASE SERVER 112
`
`KEY MANAGEMENT
`FUNCTION 114
`
`OBFUSCATED
`KEYFILE 116
`
`
`
`
`
`
`
`DATABASE 118 j
`
`
`
`
`
`KEYFILE 120
`
`CLIENT 110
`
`
`
`FIG. 1
`
`
`
` N N (I)
`N (a)O
`
`
`
` .<E
`
`ZZZ
`
`DATABASE SERVER 112
`KEY MANAGEMENT
`
`
`FUNCTION 114
`
`
`OBFUSCATED
`
`KEYFILE 116
`
`A)
`N(A)on
`ENCRYPTION
`FUNCTION 204
`
`CD I —-L
`
`N 0
`
`1(
`
`DECRYPTION
`FUNCTION 206
`
`STORING
`FUNCTION 203
`
`
`
`RETRIEVING
`FUNCTION 210
`
`
`
`FIG. 2
`
`METADATA 222
`
`DATABASE 1 18
`
`
`IPR2014-00245 / Page 2 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 2 of 12
`
`

`

`U.S. Patent
`
`Sep. 19, 2006
`
`Sheet 2 0f 6
`
`US 7,111,005 B1
`
`START
`
`RECEIVE REQUEST TO CREATE KEYFILE
`302
`
`RECEIVE NUMBER OF KEYS TO CREATE
`304
`
`RECEIVE NAME OF KEYFILE
`305
`
`RECEIVE RANDOM KEY GENERATOR SEED
`308
`
`GENERATE KEYS AND KEY IDENTIFIERS
`310
`
`STORE KEYFILE
`
`312
`
`MOVE OBFUSCATED KEYFILE TO SERVER
`314
`
`END
`
`FIG. 3
`
`IPR2014-00245 / Page 3 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 3 of 12
`
`

`

`U.S. Patent
`
`Sep. 19, 2006
`
`Sheet 3 0f 6
`
`US 7,111,005 B1
`
`START
`
`RECEIVE REQUEST TO CREATE A PROFILE
`402
`
`RECEIVE NAME OF PROFILE TO CREATE
`
`404
`
`RECEIVE ALGORITHM TO USE
`406
`
`RECEIVE KEY LENGTH TO USE
`
`408
`
`RECEIVE INTEGRITY TO USE
`
`410
`
`CREATE PROFILE
`
`412
`
`STORE PROFILE IN PROFILE TABLE
`414
`
`FIG. 4
`
`IPR2014-00245 / Page 4 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 4 of 12
`
`

`

`U.S. Patent
`
`Sep. 19, 2006
`
`Sheet 4 0f 6
`
`US 7,111,005 B1
`
`START
`
`RECEIVE REQUEST TO ENCRYPT A COLUMN
`502
`
`
`
`HOW ARE
`
`PARAMETERS
`BY PROFILE
`
`
`SPECIFIED?
`
`504
`
`
`RETRIEVE PARAMETERS FROM PROFILE
`
`506
`
`DOES
`
`COLUMN CONTAIN
`
`
`DATA?
`
`508
`
`
`IS DATA
`
`
`ALREADY
`YES
`
`
`ENCRYPTED?
`
`
`510
`
`
`RETRIEVE CLEAR-TEXT DATA
`
`
`516
`
`
`
`
`RETRIEVE ClPHER-TEXT DATA
`512
`
`DECRYPT DATA
`514
`
`ENCRYPT DATA
`518
`
`STORE CIPHER-TEXT DATA
`520
`
`
`
`STORE PARAMETERS IN METADATA
`522
`
`a m 5
`
`IPR2014-00245 / Page 5 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 5 of 12
`
`

`

`U.S. Patent
`
`Sep. 19, 2006
`
`Sheet 5 0f 6
`
`US 7,111,005 B1
`
`RECEIVE CLEAR-TEXT FROM CLIENT
`602
`
`EXAMINE METADATA FOR COLUMN ID
`604
`
`
`
`
`
`IS
`
`COLUMN
`ENCRYPTED?
`606
`
`
`
`
`
`
`
`
`STORE DATA IN DATABASE
`612
`
`
`
`
`
`FIG. 6
`
`RETRIEVE ENCRYPTION PARAMETERS
`608
`
`RETRIEVE ENCRYPTION KEY
`609
`
`ENCRYPT THE DATA
`610
`
`
`
`
`
`
`
`IPR2014-00245 / Page 6 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 6 of 12
`
`

`

`U.S. Patent
`
`Sep. 19, 2006
`
`Sheet 6 0f 6
`
`US 7,111,005 B1
`
`RECEIVE REQUEST FOR DATA FROM CLIENT
`702
`
`
`
`
`
`RETRIEVE THE DATA
`704
`
`EXAMINE METADATA FOR COLUMN ID
`706
`
`
`
`
`
`IS
`
`COLUMN
`
`
`ENCRYPTED?
`708
`
`
`
` REQUEST
`
`FROM AUTHORIZED
`
`USER?
`709
`
`
`
`
`
`
`
`RETRIEVE ENCRYPTION PARAMETERS
`710
`
`RETRIEVE THE DECRYPTION KEY
`711
`
`
`
`DECRYPT THE DATA
`712
`
`RETURN DATA TO CLIENT
`714
`
`FIG. 7
`
`IPR2014-00245 / Page 7 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 7 of 12
`
`

`

`US 7,111,005 B1
`
`1
`METHOD AND APPARATUS FOR
`AUTOMATIC DATABASE ENCRYPTION
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention relates to computer security and
`databases within computer systems. More specifically, the
`present invention relates to a method and apparatus for
`automatically encrypting and decrypting data to be stored in
`a database.
`2. Related Art
`
`Modern database systems store and retrieve vast quanti-
`ties of information. Some of this information is sensitive,
`such as credit card numbers, bank balances, and nuclear
`secrets, and hence must be protected so that the information
`does not end up in the wrong hands.
`Some database systems are able to restrict access to
`specific information by using access controls that are speci-
`fied in security profiles assigned to each client. Such systems
`prevent a client from accessing information other than what
`has been authorized for the client. This normally protects the
`sensitive information and, therefore, leads users to trust the
`database system to ensure that information stored within the
`database system remains secret.
`There is, however, a major weakness in these types of
`database systems. The data base administrator (DBA) has
`access to everything that
`is stored within the database
`system. This unrestricted access allows an unscrupulous
`DBA to steal information from the database system and to
`use the stolen information for illicit purposes. Note that is
`not practical to implement access controls for the DBA
`because doing so prevents the DBA from performing nec-
`essary database maintenance functions.
`Sensitive information can be kept secret from the DBA by
`encrypting the sensitive information within the user appli-
`cation at the client. In this approach, all sensitive informa-
`tion is stored in an encrypted form within the database
`system and is consequently protected from examination by
`the DBA. This approach has the advantage that the DBA is
`not restricted from performing database maintenance func-
`tions. Amajor drawback to this approach, however, is that all
`user applications that handle sensitive information need to
`be able to encrypt and decrypt information. Providing such
`encryption and decryption code in all of the numerous
`applications that handle sensitive data is very inefficient.
`What is needed is a method and an apparatus that allows
`a DBA to have unrestricted access to the database system
`while protecting sensitive information within the database
`system in an efficient manner.
`
`BRIEF SUMMARY OF THE INVENTION
`
`invention provides a
`One embodiment of the present
`system for managing encryption within a database system
`that is managed by a database administrator, and wherein a
`user administrator not otherwise associated with the data-
`
`base system, manages users of the database system. This
`system performs encryption automatically and transparently
`to a user of the database system. The system operates by
`receiving a request to store data in a column of the database
`system. If a user has designated the column as an encrypted
`column, the system automatically encrypts the data using an
`encryption function. This encryption function uses a key
`stored in a keyfile managed by the security administrator.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`
`After encrypting the data, the system stores the data in the
`database system using a storage function of the database
`system.
`In one embodiment of the present invention, the system
`manages decrypting encrypted data stored in the database
`system. The system operates by receiving a request
`to
`retrieve data from the encrypted column of the database
`system. If the request to retrieve data is from an authorized
`user of the database system, the system allows the autho-
`rized user to decrypt encrypted data, otherwise, the system
`prevents decrypting encrypted data if the request to retrieve
`data is received from the database administrator, the security
`administrator, or the user administrator.
`In one embodiment of the present invention, the security
`administrator selects the mode of encryption for the column.
`The mode of encryption can be, but is not limited to, data
`encryption standard (DES) or triple DES.
`In one embodiment of the present invention, the security
`administrator,
`the database administrator, and the user
`administrator are distinct roles. A person selected for one of
`these roles is not allowed to be selected for another of these
`roles.
`
`In one embodiment of the present invention, the security
`administrator manages the keyfile. In doing so, the security
`administrator creates the keyfile. Next, the security admin-
`istrator establishes how many keys are to be stored in the
`keyfile. The security administrator then establishes a rela-
`tionship between a key identifier and the key stored in the
`keyfile. The keyfile can be stored in a location such as an
`encrypted file in the database system, or a location separate
`from the database system. Finally, the security administrator
`moves an obfuscated copy of the keyfile to a volatile
`memory within a server associated with the database system.
`In one embodiment of the present invention, the security
`administrator specifies a column to be encrypted. If the
`column currently contains encrypted data,
`the system
`decrypts the data using the previous key. After decrypting
`the encrypted data or if the column contains clear-text data,
`the system encrypts the data using a new key.
`the key
`In one embodiment of the present invention,
`identifier associated with the encrypted column is stored as
`metadata associated with a table containing the encrypted
`column within the database system.
`In one embodiment of the present invention, the security
`administrator establishes encryption parameters for
`the
`encrypted column. These encryption parameters include, but
`are not limited to, encryption mode, key length, and integrity
`type. The security administrator can manually enter the
`encryption parameters for an encrypted column. The secu-
`rity administrator can also establish a profile table in the
`database system for saving and recovering encryption
`parameters for the encrypted column.
`
`BRIEF DESCRIPTION OF THE SEVERAL
`VIEWS OF THE DRAWINGS
`
`FIG. 1 illustrates a database system in accordance with an
`embodiment of the present invention.
`FIG. 2 illustrates details of a database system in accor-
`dance with an embodiment of the present invention.
`FIG. 3 is a flowchart illustrating the process of creating a
`keyfile in accordance with an embodiment of the present
`invention.
`
`FIG. 4 is a flowchart illustrating the process of creating an
`encryption profile in accordance with an embodiment of the
`present invention.
`
`IPR2014-00245 / Page 8 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 8 of 12
`
`

`

`US 7,111,005 B1
`
`3
`FIG. 5 is a flowchart illustrating the process of establish-
`ing a column in the database as an encrypted column in
`accordance with an embodiment of the present invention.
`FIG. 6 is a flowchart illustrating the process of storing
`data in the database system in accordance with an embodi-
`ment of the present invention.
`FIG. 7 is a flowchart illustrating the process of retrieving
`data from the database system in accordance with an
`embodiment of the present invention.
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`The following description is presented to enable any
`person skilled in the art to make and use the invention, and
`is provided in the context of a particular application and its
`requirements. Various modifications
`to the disclosed
`embodiments will be readily apparent to those skilled in the
`art, and the general principles defined herein may be applied
`to other embodiments and applications without departing
`from the spirit and scope of the present invention. Thus, the
`present invention is not intended to be limited to the embodi-
`ments shown, but
`is to be accorded the widest scope
`consistent with the principles and features disclosed herein.
`The data structures and code described in this detailed
`
`description are typically stored on a computer readable
`storage medium, which may be any device or medium that
`can store code and/or data for use by a computer system.
`This includes, but is not limited to, magnetic and optical
`storage devices such as disk drives, magnetic tape, CDs
`(compact discs) and DVDs (digital versatile discs or digital
`video discs), and computer instruction signals embodied in
`a transmission medium (with or without a carrier wave upon
`which the signals are modulated). For example, the trans-
`mission medium may include a communications network,
`such as the Internet.
`
`Database System
`FIG. 1 illustrates a database system in accordance with an
`embodiment of the present invention. As illustrated in FIG.
`1, client 110 is coupled to database server 112. Client 110
`and database server 112 may include any type of computer
`system, including, but not limited to, a computer system
`based on a microprocessor, a mainframe computer, a digital
`signal processor, a personal organizer, a device controller,
`and a computational engine within an appliance.
`Database server 112 is also coupled to database 118.
`Database 118 can include any type of system for storing data
`in non-volatile storage. This includes, but is not limited to,
`systems based upon magnetic, optical, and magneto-optical
`storage devices, as well as storage devices based on flash
`memory and/or battery-backed up memory.
`Database server 112 includes key management function
`114 and obfuscated keyfile 116. Obfuscated keyfile 116
`contains a copy of the data in keyfile 120. Keyfile 120
`contains keys and key identifiers for encrypting and decrypt-
`ing data. Keyfile 120 is stored on a system separate from the
`database system or can be stored as an encrypted table in
`database 118.
`
`User 102 accesses database 118 through client 110. User
`administrator 104 grants privileges to user 102 for accessing
`database 118. User administrator 104 is not allowed to
`access the database.
`
`Security administrator 106 manages the encryption sys-
`tem through database server 112. Managing the encryption
`system includes, but is not limited to managing keyfile 120
`and specifying which columns of tables in database 118 are
`encrypted.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`Database administrator 108, manages the database system
`by performing services such as data backup, data recovery,
`storage allocation, and the like.
`Within the database system, user administrator 104, secu-
`rity administrator 106, and database administrator 108 are
`distinct roles. A person selected for any one of these roles
`may not be selected to perform any of the other roles.
`Database Details
`
`FIG. 2 illustrates details of a database system in accor-
`dance with an embodiment of the present
`invention. In
`addition to key management function 114 and obfuscated
`keyfile 116, database server 112 also includes, but is not
`limited to, encryption function 204, decryption function 206,
`storing function 208, and retrieving function 210.
`Encryption function 204 uses keys from obfuscated key-
`file 116 to encrypt data 202 received from client 110.
`Decryption function 206 uses keys from obfuscated keyfile
`116 to decrypt data 212 received from database 118. Storing
`function 208 stores data 212 in database 118, while retriev-
`ing function 210 retrieves data 212 from database 118.
`Database 118 includes, but is not limited to, table 218,
`profiles 220, and metadata 222. Table 218 is organized with
`related data located in a single row that spans columns 224,
`226, 228, and 230. As illustrated in FIG. 2, the first row of
`table 218 contains XXX in column 224, national identifier
`NID in column 226, YYY in column 228, and ZZZ in
`column 230. Data 212 is stored and retrieved from rows of
`table 218.
`
`Metadata 222 stores encryption parameters for table 218
`in columns 240, 242, 244, and 246. The first row of metadata
`222 relates to column 226 in table 218. Column 240 iden-
`
`tifies column 226 as encrypted. Column 242 contains the key
`identifier for the key within obfuscated keyfile 116 that is
`used to encrypt data in column 226. Column 244 indicates
`the encryption mode.
`In this example, data encryption
`standard (DES) encryption is being used. Column 246
`indicates the data integrity mechanism to be used to detect
`tampering with the encrypted data. In this example, message
`digest 5 (MD5) is being used. Encryption parameters are
`supplied to database server 112 as parameters 216 for storing
`in metadata 222.
`
`Profiles 220 stores encryption profiles created by security
`administrator 106 in columns 232, 234, 236, and 238. The
`first row of profiles 220 contains a profile. Column 232
`indicates the name, 999, of the profile. Column 234 indicates
`the encryption mode. In this example, the profile indicates
`that data encryption standard (DES) encryption is being
`used. Column 236 indicates the key-length to use. This
`example indicates a key-length of 56 bits. Column 238
`indicates the data integrity mechanism to be used with the
`profile. This example indicates that secure hash algorithm 1
`(SHA-l) is being used. Profiles are supplied to database 118
`as profile 214.
`
`Creating a Keyfile
`FIG. 3 is a flowchart illustrating the process of creating
`keyfile 120 in accordance with an embodiment of the present
`invention. The system starts when key management function
`114 receives a request from security administrator 106 to
`create keyfile 120 (step 302). Key management function 114
`receives the number of keys to create from security admin-
`istrator 106 (step 304). Next, key management function 114
`receives the name of keyfile 120 from security administrator
`106 (step 306). Key management function 114 also receives
`a random key generator seed from security administrator
`106 (step 308).
`
`IPR2014-00245 / Page 9 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 9 of 12
`
`

`

`US 7,111,005 B1
`
`5
`Key management function 114 generates the keys and
`matching key identifiers (step 310). Next, key management
`function 114 stores keyfile 120 (step 312). Note that keyfile
`120 may be stored in a location remote to the database
`system or may be stored as an encrypted table within
`database 118.
`
`Finally, key management function 114 makes an obfus-
`cated copy of keyfile 120 and stores it as obfuscated keyfile
`116 in volatile memory of database server 112 (step 314).
`
`Creating a Profile
`FIG. 4 is a flowchart illustrating the process of creating an
`encryption profile in accordance with an embodiment of the
`present invention. The system starts when key management
`function 114 receives a request from security administrator
`106 to create an encryption profile (step 402). Key manage-
`ment function 114 receives the name of the profile to create
`from security administrator 106 (step 404). Next, key man-
`agement function 114 receives the encryption algorithm to
`associate with the profile (step 406). Key management
`function 114 then receives the key-length to associate with
`the profile (step 408). Next, key management function 114
`receives the type of data integrity to associate with the
`profile (step 410). Key management function 114 creates the
`profile (step 412). Finally, key management function 114
`stores the profile, consisting of the profile name, encryption
`mode, key-length, and integrity type in columns 232, 234,
`236, and 238, respectively,
`in the next available row of
`profiles 220 (step 414).
`
`Establishing an Encrypted Column
`FIG. 5 is a flowchart illustrating the process of establish-
`ing a column in the database as an encrypted column in
`accordance with an embodiment of the present invention.
`The system starts when database server 112 receives a
`request to encrypt a column, say column 226, of table 218
`in database 118 (step 502). Database server 112 first deter-
`mines how security administrator 106 specified the encryp-
`tion parameters (step 504).
`If the encryption parameters are supplied by using a
`profile, database server 112 retrieves the profile 214 from
`profiles 220 in database 118 (step 506). After retrieving the
`encryption parameters form profile 214 or if the parameters
`were supplied in the request at step 504, database server 112
`determines if the column already contains data (step 508).
`If the column already contains data in step 508, database
`server 112 inspects metadata 222 to determine if the data in
`the column was previously encrypted (step 510). If the data
`in the column was previously encrypted in step 510, retriev-
`ing function 210 retrieves the cipher-text data from table 218
`(step 512). Next, decryption function 206 decrypts the data
`using the previous key obtained from metadata 222 (step
`514).
`If the data is not encrypted at step 510, retrieving function
`210 retrieves the clear-text data from table 218 (step 516).
`When the clear-text is available after step 514, or step 516,
`encryption function 204 encrypts the data (step 518). Next,
`storing function 208 stores the cipher-text data in table 218
`(step 520).
`If the column does not contain data at step 508 or after the
`cipher-text data is stored in step 520, database server 112
`stores the encryption parameters for the column in metadata
`222 (step 522).
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`Storing Data in the Database
`FIG. 6 is a flowchart illustrating the process of storing
`data in database 118 in accordance with an embodiment of
`
`65
`
`the present
`
`invention. The system starts when database
`
`6
`server 112 receives a request to store data 202 from client
`110 (step 602). Database server 112 examines metadata 222
`to determine if the column where the data will be stored is
`
`encrypted (step 604). If the column is encrypted (step 606),
`database server 112 retrieves the encryption parameters for
`the column from metadata 222 (step 608). Database server
`112 then retrieves the encryption key related to the key
`identifier (KID) from obfuscated keyfile 116 (step 609).
`Next, encryption function 204 encrypts the data (step 610).
`After the data is encrypted in step 610 or if the column is not
`encrypted at step 606, storing function 208 stores the data in
`table 218 (step 612).
`
`Retrieving Data from the Database
`FIG. 7 is a flowchart illustrating the process of retrieving
`data from database 118 in accordance with an embodiment
`
`of the present invention. The system starts when database
`server 112 receives a request from client 110 to retrieve data
`from database 118 (step 702). Retrieving function 210
`retrieves the data from table 218 in database 118 (step 704).
`Next, database server 112 determines if the request is from
`an authorized user (step 709).
`If the request is from an authorized user at step 709,
`database server 112 examines metadata 222 to determine if
`
`the column related to the data is encrypted (step 708). If
`database server 112 determines that the data is encrypted in
`step 708, database server 112 retrieves the encryption
`parameters from metadata 222 (step 710). Database server
`uses the key identifier (KID) to retrieve the decryption key
`from obfuscated keyfile 116.
`Next, decryption function 206 decrypts the data (step
`712). After the data is decrypted in step 712 or if the data was
`determined to not be encrypted in step 708, database server
`112 returns the data to client 110 (step 714). If the request
`is not from an authorized user at step 709, the data is not
`returned to the client. Specifically, the database administra-
`tor, the security administrator, and the user administrator are
`not authorized users and,
`therefore, are prevented from
`decrypting and receiving encrypted data stored within the
`database.
`
`The foregoing descriptions of embodiments of the inven-
`tion have been presented for purposes of illustration and
`description only. They are not intended to be exhaustive or
`to limit the present invention to the forms disclosed. Accord-
`ingly, many modifications and variations will be apparent to
`practitioners skilled in the art. Additionally, the above dis-
`closure is not intended to limit the present invention. The
`scope of the present invention is defined by the appended
`claims.
`
`What is claimed is:
`
`1. A method for managing encryption within a database
`system, wherein encryption is performed automatically and
`transparently to a user of the database system, the method
`comprising:
`receiving a request at the database system to store data in
`the database system;
`wherein the request is directed to one or more columns of
`the database system that have been designated as
`encrypted;
`in response to the request:
`creating a digest of the data using a cryptographic
`function, and
`automatically encrypting the data within the database
`system using an encryption function and an encryp-
`tion key, wherein information about the encryption
`key is stored in a metadata table, which includes
`
`IPR2014-00245 / Page 10 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 10 of 12
`
`

`

`US 7,111,005 B1
`
`7
`information identifying the cryptographic function
`used to create the digest; and
`storing the encrypted data in the database system.
`2. The method of claim 1,
`wherein the encryption function uses a key stored in a
`keyfile managed by a security administrator; and
`wherein the encrypted data is stored using a storage
`function of the database system.
`3. The method of claim 2, further comprising:
`receiving a request to retrieve data from a column of the
`database system;
`if the request to retrieve data is received from a database
`administrator, preventing the database administrator
`from decrypting the encrypted data;
`if the request to retrieve data is received from the security
`administrator, preventing the security administrator
`from decrypting the encrypted data; and
`if the request to retrieve data is from an authorized user of
`the database system, allowing the authorized user to
`decrypt the encrypted data.
`4. The method of claim 2, wherein the security adminis-
`trator selects one of, data encryption standard (DES) and
`triple DES as a mode of encryption for a column.
`5. The method of claim 2, wherein the security adminis-
`trator, a database administrator, and a user administrator are
`distinct roles, and wherein a person selected for one of these
`roles is not allowed to be selected for another of these roles.
`
`6. The method of claim 2, wherein managing the keyfile
`includes, but is not limited to:
`creating the keyfile;
`establishing a plurality of keys to be stored in the keyfile;
`establishing a relationship between a key identifier and
`the key stored in the keyfile;
`storing the keyfile in one of,
`an encrypted file in the database system, and
`a location separate from the database system; and
`moving the obfuscated copy of the keyfile to a volatile
`memory within a server associated with the database
`system.
`7. The method of claim 6, wherein the key identifier
`associated with a column is stored as metadata associated
`
`with a table containing the column within the database
`system.
`8. The method of claim 6, further comprising establishing
`encryption parameters for a column, wherein encryption
`parameters include encryption mode, key length, and integ-
`rity type by:
`entering encryption parameters for the column manually;
`and
`
`recovering encryption parameters for the column from a
`profile table in the database system.
`9. The method of claim 2, wherein upon receiving a
`request from the security administrator specifying a column
`to be encrypted, if the column currently contains data, the
`method further comprises:
`decrypting the column using an old key if the column was
`previously encrypted; and
`encrypting the column using a new key.
`10. A computer-readable storage medium storing instruc-
`tions that when executed by a computer causes the computer
`to perform a method for managing encryption within a
`database system, wherein encryption is performed automati-
`cally and transparently to a user of the database system, the
`method comprising:
`receiving a request at the database system to store data in
`the database system;
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`wherein the request is directed to one or more columns of
`the database system that have been designated as
`encrypted;
`in response to the request:
`creating a digest of the data using a cryptographic
`function, and
`automatically encrypting the data within the database
`system using an encryption function and an encryp-
`tion key, wherein information about the encryption
`key is stored in a metadata table, which includes
`information identifying the cryptographic function
`used to create the digest; and
`storing the encrypted data in the database system.
`11. The computer-readable storage medium of claim 10,
`wherein the encryption function uses a key stored in a
`keyfile managed by a security administrator; and
`wherein the encrypted data is stored using a storage
`function of the database system.
`12. The computer-readable storage medium of claim 11,
`the method further comprising:
`receiving a request to retrieve data from a column of the
`database system;
`if the request to retrieve data is received from a database
`administrator, preventing the database administrator
`from decrypting the encrypted data;
`if the request to retrieve data is received from the security
`administrator, preventing the security administrator
`from decrypting the encrypted data; and
`if the request to retrieve data is from an authorized user of
`the database system, allowing the authorized user to
`decrypt the encrypted data.
`13. The computer-readable storage medium of claim 11,
`wherein the security administrator selects one of, data
`encryption standard (DES) and triple DES as a mode of
`encryption for a column.
`14. The computer-readable storage medium of claim 11,
`wherein the security administrator, a database administrator,
`and a user administrator are distinct roles, and wherein a
`person selected for one of these roles is not allowed to be
`selected for another of these roles.
`
`15. The computer-readable storage medium of claim 11,
`wherein managing the keyfile includes, but is not limited to:
`creating the keyfile;
`establishing a plurality of keys to be stored in the keyfile;
`establishing a relationship between a key identifier and
`the key stored in the keyfile;
`storing the keyfile in one of,
`an encrypted file in the database system, and
`a location separate from the database system; and
`moving the obfuscated copy of the keyfile to a volatile
`memory within a server associated with the database
`system.
`16. The computer-readable storage medium of claim 15,
`wherein the key identifier associated with the column is
`stored as metadata associated with a table containing a
`column within the database system.
`17. The computer-readable storage medium of claim 15,
`wherein the method further comprises establishing encryp-
`tion parameters for a column, wherein encryption param-
`eters include encryption mode, key length, and integrity type
`by:
`entering encryption parameters for the column manually;
`and
`
`recovering encryption parameters for the column from a
`profile table in the database system.
`18. The computer-readable storage medium of claim 11,
`wherein upon receiving a request from the security admin-
`
`IPR2014-00245 / Page 11 of 12
`
`RIV-1021
`
`RIV-1021
`IPR2014-00245 / Page 11 of 12
`
`

`

`US 7,111,005 B1
`
`9
`istrator specifying a column to be encrypted, if the column
`currently contains data, the method further comprises:
`decrypting the column using an old key if the column was
`previously encrypted; and
`encrypting the column using a new key.
`19. An apparatus that facilitates managing encryption
`within a database system, wherein encryption is performed
`automatically and transparently to a user of the database
`system, comprising:
`a receiving mechanism that is configured to receive a
`request at the database system to store data in the
`database system;
`wherein the request is directed to one or more columns of
`the database system that have been designated as
`encrypted;
`a digest creating mechanism configured to create a digest
`of the data using a cryptographic function;
`an encrypting mechanism that is configured to automati-
`cally encrypt the data within the database system using
`an encryption function and an encryption key, wherein
`information about the encryption key is stored in a
`metadata table, which includes information identifying
`the cryptographic function used to create the digest;
`and
`
`is configured to store the
`a storing mechanism that
`encrypted data in the database system.
`20. The apparatus of claim 19,
`wherein the encryption function uses a key stored in a
`keyfile managed by a security administrator; and
`wherein the encrypted data is stored using a storage
`function of the database system.
`21. The apparatus of claim 20, further comprising:
`the receiving mechanism that is further configured to
`receive a request to retrieve data from a column of the
`database system;
`is configured to prevent a
`an access mechanism that
`database administrator and the security administrator
`from decrypting the encrypted data; and
`wherein the access mechanism is configured to allow an
`authorized user of the database system to decrypt the
`encrypted data.
`22. The apparatus of claim 20, further comprising a
`selection mechanism that is configured to select one of, data
`encryption standard (DES) and triple DES as a mode of
`encryption for a column.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`10
`23. The apparatus of claim 20, wherein the security
`administrator, a database administrator, and a user admin-
`istrator are distinct roles, and wherein a person selected for
`one of these roles is not allowed to be selected for another
`of these roles.
`
`24. The apparatus of claim 20, further comprising:
`a creating mechanism that is configured to create the
`keyfile;
`an establishing mechanism that is configured to establish
`a plurality of keys to be stored in the keyfile;
`wherein the

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket