Device for and method of cryptographically wrapping information
First Claim
1. A method of cryptographically wrapping information, comprising the steps of:
- (a) if the information is not an even multiple of y bits then padding the information to a length that is an even multiple of y bits;
(b) parsing the result of step (a) into P1, P2, . . . , Pn, where Pi has a length of y bits for i=1,(c) setting Ri=Pi, where i=1, 2, . . . , n, where n is equal to the length of the information divided by y;
(d) setting A equal to a user-definable initialization vector IV, where IV has a length equal to y;
(e) setting j=0;
(f) setting i=1;
(g) setting t to a user-definable value;
(h) combining A and Ri;
(i) encrypting the result of step (h) using an encryptor that puts out 2y bits;
(j) forming a first user-definable set of y bits and a second user-definable set of y bits from the result of step (i) in an invertible manner;
(k) setting Ri equal to the first user-definable set of y bits;
(l) combining the second user-definable set of y bits with t using a user-definable function;
(m) setting A equal to the result of step (l);
(n) if i=n then incrementing j and reset i=1, otherwise incrementing i; and
(o) if j is equal to a user-definable number then returning A, R1, R2, . . . , Rn as the cryptographically wrapped information and stopping, otherwise returning to step (g).
1 Assignment
0 Petitions
Accused Products
Abstract
A device for and method of cryptographically wrapping information by first constructing information to be wrapped into an even multiple of y bits. Information to be wrapped is parsed into equal blocks P1, P2, . . . , Pn. Next, registers Ri are loaded with the blocks Pi. Next, an initialization vector IV is stored into a register A. Set j=0. Set i=1. Set t=(n×j)+i. Concatenate A and Ri. Encrypt the result of the last step to form 2y encrypted bits. Divide the encrypted bits into a first set of y bits and a second set of y bits. Set Ri equal to the first set. Combine the second set with t using a user-definable function. Set A equal to the combination. If i=n then increment j and reset i=1; otherwise, increment i. If j is equal to a user-definable number then return A, R1, R2, . . . , Rn as the cryptographically wrapped information and stop. Otherwise, return to the step where t is set.
30 Citations
16 Claims
-
1. A method of cryptographically wrapping information, comprising the steps of:
-
(a) if the information is not an even multiple of y bits then padding the information to a length that is an even multiple of y bits; (b) parsing the result of step (a) into P1, P2, . . . , Pn, where Pi has a length of y bits for i=1, (c) setting Ri=Pi, where i=1, 2, . . . , n, where n is equal to the length of the information divided by y; (d) setting A equal to a user-definable initialization vector IV, where IV has a length equal to y; (e) setting j=0; (f) setting i=1; (g) setting t to a user-definable value; (h) combining A and Ri; (i) encrypting the result of step (h) using an encryptor that puts out 2y bits; (j) forming a first user-definable set of y bits and a second user-definable set of y bits from the result of step (i) in an invertible manner; (k) setting Ri equal to the first user-definable set of y bits; (l) combining the second user-definable set of y bits with t using a user-definable function; (m) setting A equal to the result of step (l); (n) if i=n then incrementing j and reset i=1, otherwise incrementing i; and (o) if j is equal to a user-definable number then returning A, R1, R2, . . . , Rn as the cryptographically wrapped information and stopping, otherwise returning to step (g). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of cryptographically unwrapping cryptographically wrapped information, comprising the steps of:
-
(a) parsing the wrapped information into C0, C1, . . . , Cn, where Ci has a length of y bits, where y is the same as that used in forming the wrapped information; (b) setting Ri=Ci, where i=1, 2, . . . , n, where n is the same as that used in forming the wrapped information; (c) setting A=C0; (d) setting j=k−
1, where k is the same as a user-definable number used to form the wrapped information;(e) setting i=n; (f) setting t to the same value of t used to form the wrapped information; (g) combining A with t using a function that is the inverse of a function used to combine corresponding values to form the wrapped information; (h) combining the result of step (g) and Ri in a manner that is the inverse of a method used during the wrapping of the information to form two user-definable sets of y bits; (i) decrypting the result of step (h), using the inverse function of an encryptor used to form the wrapped information; (j) forming a first user-definable set of y bits and a second user-definable set of y bits from the result of step (i) in a manner that is the inverse of that to combine A and Ri to form the wrapped information; (k) setting Ri equal to the first user-definable set of y bits; (l) setting A equal to the second user-definable set of y bits; (m) if j=0, i=1, and A=IV used to form the wrapped information then returning R1, R2, . . . , Rn as the unwrapped information and stopping, otherwise proceeding to the next step; (n) if j=0, i=1, and A is not equal to IV then returning an error message and stopping, otherwise, proceeding to the next step; and (o) if i=1 then decrementing j and returning to step (e), otherwise decrementing i and returning to step (f).
-
-
11. A device for cryptographically wrapping information, comprising:
-
(a) a first register A, having a first y-bit input, a second y-bit input, and a y-bit output; (b) n registers R1, R2, . . . , Rn, connected as a shift-register, where each of the n registers R1, R2, . . . , Rn has a first y-bit input, a second y-bit input, and a y-bit output; (c) a combiner, having a first input connected to the output of the first register A, having a second input connected to the output of register R1; (d) an encryptor, having a first input connected to the output of the combiner, having a second input, and having a 2y-bit output configured as a first y-bit output bus connected to the second input of register Rn and a second y-bit bus; and (e) a function block, having a first input connected to the second y-bit output bus of the encryptor, having a second input for receiving a y-bit user-definable value T, and having a y-bit output connected to the second input of the first register A. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A device for cryptographically unwrapping cryptographically wrapped information, comprising:
-
(a) a first register A, having a first y-bit input, where y is the same as that used to form the wrapped information, a second y-bit input, and a y-bit output; (b) n registers R1, R2, . . . , Rn, connected as a shift-register, where each of the n registers has a first y-bit input, a second y-bit input, and a y-bit output; (c) a function block, having a first input connected to the output of the first register A, having a second input, and having a y-bit output that performs an inverse function of a function block used to form the wrapped information; (d) a combiner, having a first input connected to the output of the function block, having a second input connected to the y-bit output of register Rn, and having a 2y-bit output, where the combiner performs an inverse function of a combiner used to form the wrapped information; and (e) a decryptor that performs the inverse of an encryptor used to form the wrapped information, having a first input connected to the output of the combiner, having a second input for receiving a decryption key that will invert an encryption process used to form the wrapped information, and having a 2y-bit output configured as an output of the encryptor used to form the wrapped information having a first y-bit bus connected to the input of register R1 and a second y-bit bus connected to the input of the first register A.
-
Specification