Patent US5673319A successfully refreshed from Google Patents.
US5673319A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Block cipher mode of operation for secure, length-preserving encryption
Assignee: International Business Machines Corp
•
Filing: 1995-02-06
•
Granted: 1997-09-30
•
Expires: 2015-02-06
Abstract
Abstract A method for encrypting a plaintext string into ciphertext begins by cipher block chaining (CBC) the plaintext using a first key and a null initialization vector to generate a CBC message authentication code (MAC) whose length is equal to the block length. The plaintext string is then cipher block chained again, now using a second key and the CBC-MAC as the initialization vector, to generate an enciphered string. The CBC-MAC and a prefix of the enciphered string comprising all of the enciphered string except the last block are then combined to create the ciphertext. The described mode of operation is length-preserving, yet has the property that related plaintexts give rise to unrelated ciphertexts.
Inventors
- 👤 Mihir Bellare
- 👤 Phillip W. Rogaway
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 09:08
CPC Classifications
H; H04; H04L; H04L9/00; H04L9/06; H04L9/0643; H04L9/0618; H04L9/0637; H04L9/50
Claims Analysis
Total Claims: 26
Claim 1
Independent Claim
92 words
A computer-implemented method, using first and second keys, to encrypt a plaintext string x to a ciphertext string F, comprising the steps of: using the string x and the first key a 0 to compute a message authentication code t; using the string x, the second key a 1 , and the message authentication code t to produce an enciphered string y' that depends substantively on the message authentication code; and taking the ciphertext y to comprise the message authentication code t together with a predetermined piece of the enciphered string y'.
Claim 2
Dependent Claim
92 words
A computer-implemented method, using first and second keys, to encrypt a plaintext string x to a ciphertext string F, comprising the steps of: using the string x and the first key a 0 to compute a message authentication code t; using the string x, the second key a 1 , and the message authentication code t to produce an enciphered string y' that depends substantively on the message authentication code; and taking the ciphertext y to comprise the message authentication code t together with a predetermined piece of the enciphered string y'.
Claim 3
Dependent Claim
27 words
The computer-implemented method as described in claim 1 wherein said predetermined piece is shorter than y' yet the plaintext string is still uniquely recoverable given the ciphertext.
Claim 4
Dependent Claim
22 words
The computer-implemented method as described in claim 1 wherein the message authentication code is computed by cipher block chaining a block cipher.
Claim 5
Dependent Claim
14 words
The computer-implemented method as described in claim 2 wherein the block cipher is DES.
Claim 6
Dependent Claim
26 words
The computer-implemented method as described in claim 2 wherein the predetermined piece of the enciphered string includes all but a last block of the enciphered string.
Claim 7
Dependent Claim
21 words
The computer-implemented method as described in claim 2 wherein the message authentication code has a length equal to a block length.
Claim 8
Independent Claim
101 words
A method, using first and second keys, to encrypt a plaintext string to a ciphertext string, comprising the steps of: (a) cipher block chaining (CBC) the plaintext string using the first key and a first initialization vector (IV) to generate a CBC message authentication code whose length is equal to a block length; (b) cipher block chaining the plaintext string using the second key and the CBC message authentication code as a second initialization vector to generate an enciphered string; and (c) combining the CBC message authentication code and a predetermined portion of the enciphered string to form the ciphertext string.
Claim 9
Independent Claim
101 words
A method, using first and second keys, to encrypt a plaintext string to a ciphertext string, comprising the steps of: (a) cipher block chaining (CBC) the plaintext string using the first key and a first initialization vector (IV) to generate a CBC message authentication code whose length is equal to a block length; (b) cipher block chaining the plaintext string using the second key and the CBC message authentication code as a second initialization vector to generate an enciphered string; and (c) combining the CBC message authentication code and a predetermined portion of the enciphered string to form the ciphertext string.
Claim 10
Dependent Claim
25 words
The method as described in claim 7 wherein the predetermined portion of the enciphered string includes all but a last block of the enciphered string.
Claim 11
Dependent Claim
16 words
The method as described in claim 7 wherein the first initialization vector is the null vector.
Claim 12
Dependent Claim
24 words
The method as described in claim 7 wherein the plaintext string has a length that is a multiple of a length of a block.
Claim 13
Dependent Claim
27 words
The method as described in claim 7 wherein the plaintext string has a length that is not equal to a multiple of a length of a block.
Claim 14
Dependent Claim
29 words
The method as described in claim 7 wherein step (c) concatenates the CBC message authentication code and the predetermined portion of the enciphered string to form the ciphertext string.
Claim 15
Dependent Claim
19 words
The method as described in claim 7 wherein the ciphertext string has a length equal to the plaintext string.
Claim 16
Dependent Claim
20 words
The method as described in claim 7 wherein the first and second keys are derived from an underlying secret key.
Claim 17
Independent Claim
133 words
A method, using first and second keys and a block cipher, to decrypt a ciphertext string into a plaintext string, the ciphertext string comprising a CBC message authentication code and an enciphered string, comprising the steps of: (a) decrypting by cipher block chaining the enciphered string using the second key and the CBC message authentication code as an initialization vector to generate a deciphered string; (b) cipher block chaining the deciphered string using the first key and a null initialization vector to generate a string having a last block; (c) calculating a predetermined function of the last block and an inverse of the block cipher under the first key at the CBC message authentication code; and (d) combining the deciphered string and a result of the predetermined function to generate the plaintext string.
Claim 18
Independent Claim
133 words
A method, using first and second keys and a block cipher, to decrypt a ciphertext string into a plaintext string, the ciphertext string comprising a CBC message authentication code and an enciphered string, comprising the steps of: (a) decrypting by cipher block chaining the enciphered string using the second key and the CBC message authentication code as an initialization vector to generate a deciphered string; (b) cipher block chaining the deciphered string using the first key and a null initialization vector to generate a string having a last block; (c) calculating a predetermined function of the last block and an inverse of the block cipher under the first key at the CBC message authentication code; and (d) combining the deciphered string and a result of the predetermined function to generate the plaintext string.
Claim 19
Dependent Claim
13 words
The method as described in claim 15 wherein the block cipher is DES.
Claim 20
Dependent Claim
18 words
The method as described in claim 15 wherein the predetermined function in step (c) is an exclusive OR.
Claim 21
Dependent Claim
104 words
A computer apparatus, comprising: a storage device; program means supported in the storage device for encrypting a plaintext string x to a ciphertext string y, the program means comprising: means for using the string x and a first key a 0 to compute a message authentication code t; means for using the string x, a second key a l , and the message authentication code t to produce an enciphered string y'; and means for taking the ciphertext y to comprise the message authentication code t together with a predetermined piece of the enciphered string y', where said predetermined piece is shorter than y'.
Claim 22
Dependent Claim
104 words
A computer apparatus, comprising: a storage device; program means supported in the storage device for encrypting a plaintext string x to a ciphertext string y, the program means comprising: means for using the string x and a first key a 0 to compute a message authentication code t; means for using the string x, a second key a l , and the message authentication code t to produce an enciphered string y'; and means for taking the ciphertext y to comprise the message authentication code t together with a predetermined piece of the enciphered string y', where said predetermined piece is shorter than y'.
Claim 23
Dependent Claim
136 words
A computer, comprising: a storage device; program means supported in the storage device for decrypting a ciphertext string into a plaintext string, the ciphertext string comprising a CBC message authentication code and an enciphered string, the program means comprising: means for decrypting the enciphered string by cipher block chaining the enciphered string using a secret key and the CBC message authentication code as an initialization vector to generate a deciphered string; means for cipher block chaining the deciphered string using a second secret key and a null initialization vector to generate a string having a last block; means for calculating a predetermined function of the last block and an inverse of a block cipher evaluated using the second secret key; and means for combining the deciphered string and the predetermined function to generate the plaintext string.
Claim 24
Dependent Claim
136 words
A computer, comprising: a storage device; program means supported in the storage device for decrypting a ciphertext string into a plaintext string, the ciphertext string comprising a CBC message authentication code and an enciphered string, the program means comprising: means for decrypting the enciphered string by cipher block chaining the enciphered string using a secret key and the CBC message authentication code as an initialization vector to generate a deciphered string; means for cipher block chaining the deciphered string using a second secret key and a null initialization vector to generate a string having a last block; means for calculating a predetermined function of the last block and an inverse of a block cipher evaluated using the second secret key; and means for combining the deciphered string and the predetermined function to generate the plaintext string.
Claim 25
Dependent Claim
212 words
A program storage device readable by a processor and tangibly embodying a program of instructions executable by the processor to perform encryption and decryption methods, using first and second keys and a block cipher, wherein the encryption method comprises the steps of: (a) cipher block chaining (CBC) a plaintext string using the first key and an initialization vector (IV) to generate a CBC message authentication code; (b) cipher block chaining the plaintext string using the second key and the CBC message authentication code as the initialization vector to generate an enciphered string; and (c) combining the CBC message authentication code and a portion of the enciphered string to form a ciphertext string; and wherein the decryption method comprises the steps of: (a) cipher block chaining the enciphered string using the second key and the CBC message authentication code as the initialization vector to generate a deciphered string; (b) cipher block chaining the deciphered string using the first key and a null initialization vector to generate a string having a last block; (c) calculating a predetermined function of the last block and an inverse of the block cipher under the first key at the CBC message authentication code; and (d) combining the deciphered string and the predetermined function to generate the plaintext string.
Claim 26
Dependent Claim
212 words
A program storage device readable by a processor and tangibly embodying a program of instructions executable by the processor to perform encryption and decryption methods, using first and second keys and a block cipher, wherein the encryption method comprises the steps of: (a) cipher block chaining (CBC) a plaintext string using the first key and an initialization vector (IV) to generate a CBC message authentication code; (b) cipher block chaining the plaintext string using the second key and the CBC message authentication code as the initialization vector to generate an enciphered string; and (c) combining the CBC message authentication code and a portion of the enciphered string to form a ciphertext string; and wherein the decryption method comprises the steps of: (a) cipher block chaining the enciphered string using the second key and the CBC message authentication code as the initialization vector to generate a deciphered string; (b) cipher block chaining the deciphered string using the first key and a null initialization vector to generate a string having a last block; (c) calculating a predetermined function of the last block and an inverse of the block cipher under the first key at the CBC message authentication code; and (d) combining the deciphered string and the predetermined function to generate the plaintext string.
References Cited (Backward Citations)
US3958081A
Cited
US4074066A
Cited
US4319070A
Cited
US4322576A
Cited
US4751733A
Cited
US5319710A
Cited
US5109413A
Cited
US5068895A
Cited
US4982429A
Cited
US5063596A
Cited
US4910776A
Cited
US5184125A
Cited
US5196840A
Cited
US5297208A
Cited
US5491750A
Cited
US5491749A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2000-09-29 | 2001-03-31 | 2001-09-30 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2004-09-29 | 2005-03-31 | 2005-09-30 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2008-09-29 | 2009-03-31 | 2009-09-30 | $7700.00 | Window Closed / Lapsed |