Format-preserving cryptographic systems
First Claim
1. A method for performing decryption at computing equipment in a data processing system that has a key server, comprising:
- at the computing equipment, obtaining ciphertext;
with the computing equipment, providing a key request that includes an identifier to the key server;
at the key server, selecting policy rules to apply to the key request based at least partly on the identifier;
at the key server, applying the selected policy rules to determine whether to fulfill the key request;
when the policy rules are satisfied, generating a key at the key server in fulfillment of the key request using a one-way function that accepts a root secret and the identifier as inputs;
at the computing equipment, receiving the key; and
with a format-preserving decryption algorithm implemented on the computing equipment, decrypting the ciphertext using the key.
11 Assignments
0 Petitions
Accused Products
Abstract
Key requests in a data processing system may include identifiers such as user names, policy names, and application names. The identifiers may also include validity period information indicating when corresponding keys are valid. When fulfilling a key request, a key server may use identifier information from the key request in determining which key access policies to apply and may use the identifier in determining whether an applicable policy has been satisfied. When a key request is authorized, the key server may generate a key by applying a one-way function to a root secret and the identifier. Validity period information for use by a decryption engine may be embedded in data items that include redundant information. Application testing can be facilitated by populating a test database with data that has been encrypted using a format-preserving encryption algorithm. Parts of a data string may be selectively encrypted based on their sensitivity.
-
Citations
24 Claims
-
1. A method for performing decryption at computing equipment in a data processing system that has a key server, comprising:
-
at the computing equipment, obtaining ciphertext; with the computing equipment, providing a key request that includes an identifier to the key server; at the key server, selecting policy rules to apply to the key request based at least partly on the identifier; at the key server, applying the selected policy rules to determine whether to fulfill the key request; when the policy rules are satisfied, generating a key at the key server in fulfillment of the key request using a one-way function that accepts a root secret and the identifier as inputs; at the computing equipment, receiving the key; and with a format-preserving decryption algorithm implemented on the computing equipment, decrypting the ciphertext using the key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for cryptographically processing credit card numbers with a data processing system containing computing equipment, comprising:
-
obtaining an unencrypted credit card number at the computing equipment; obtaining a cryptographic key; removing a checksum digit from the unencrypted credit card number; with an encryption engine implemented on the computing equipment, encrypting the unencrypted credit card number from which the checksum digit was removed to produce an encrypted version of the unencrypted credit card number from which the checksum digit was removed; computing a new valid checksum for the encrypted version; embedding a key selector into a checksum digit by combining the new valid checksum and the key selector; and adding the checksum digit to the encrypted version to produce ciphertext corresponding to the unencrypted credit card number. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for testing applications that access a test database in a test environment before using the applications to access a production database in a production environment, comprising:
-
encrypting sensitive data in the production database using a format-preserving encryption algorithm; and exporting the encrypted data from the production database to the test database; and testing the applications by using the applications in the test environment to access the encrypted data in the test database.
-
-
20. A method for producing ciphertext corresponding to plaintext that contains at least a first plaintext part and a second plaintext part using an encryption engine implemented on computing equipment, comprising:
-
with the computing equipment, encrypting the first plaintext part using a first key to produce a first ciphertext part; applying a one-way function to the first ciphertext part to produce a first part of a second key; forming the second key by combining the first part of the second key with a second part of the second key; and encrypting the second plaintext part with the second key to produce a second ciphertext part, wherein the ciphertext includes the first ciphertext part and the second ciphertext part. - View Dependent Claims (21, 22)
-
-
23. A method for performing decryption at computing equipment in a data processing system that has a key server, comprising:
-
at the computing equipment, obtaining ciphertext; with the computing equipment, providing a key request that includes an identifier to the key server; at the key server, selecting policy rules to apply to the key request based at least partly on the identifier; at the key server, applying the selected policy rules to determine whether to fulfill the key request; when the policy rules are satisfied, obtaining a key at the key server in fulfillment of the key request; at the computing equipment, receiving the key; and with a format-preserving decryption algorithm implemented on the computing equipment, decrypting the ciphertext using the key. - View Dependent Claims (24)
-
Specification