Variable-key cryptography system
First Claim
1. A method for encrypting and decrypting input digital data, comprising the steps of:
- providing a first key comprising a sequence of bits;
selecting a plurality of invariant bit positions in response to said first key; and
providing output digital data having in each of said invariant bit positions a bit equal in value to said bit in a corresponding position in said input digital data and having in all other positions bits determined in response to said first key.
0 Assignments
0 Petitions
Accused Products
Abstract
Binary data is encrypted or decrypted using a final key. The final key is formed by manipulating one or more user keys, a base key and a block of data, and combining the manipulated keys and data using an exclusive-OR operation. The data to be encrypted or decrypted are combined with the final key using a circular exclusive-OR operation. A new final key is formed for each block of data. The user and base keys are binary sequences having any number of bits. The user key may be input to the present invention directly in binary form or in any other suitable form that the present invention can interpret as a binary sequence, such as a string of ASCII-encoded alphanumeric characters. Manipulating the user key includes the steps of shuffling or permuting segments of the user key, such as bytes, circularly shifting the permuted user key by a number of bit positions, and filling a location with one or more copies of the permuted and shifted key such that the result has a length equal to that of the base key. The ordering of the segments of the user key in the permutation step and the number of bit positions by which the user key is shifted in the shifting step are determined in response to the value and position of the segments of the user key itself. Manipulating the base key includes the step of circularly shifting the base key by a number of bit positions that is determined in response to the value and position of segments of the user key.
-
Citations
25 Claims
-
1. A method for encrypting and decrypting input digital data, comprising the steps of:
-
providing a first key comprising a sequence of bits; selecting a plurality of invariant bit positions in response to said first key; and providing output digital data having in each of said invariant bit positions a bit equal in value to said bit in a corresponding position in said input digital data and having in all other positions bits determined in response to said first key. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for encrypting and decrypting digital data, comprising the steps of:
-
forming an actual user key in response to at least one input user key comprising a sequence of bits; forming an actual base key comprising a sequence of bits; forming a semifinal key in response to said actual user key and said actual base key; determining invariant bit positions in response to said semifinal key; forming an invariant key in response to said invariant bit positions and a block of said digital data, said invariant key consisting of bits in said invariant bit positions in said block of said digital data; forming a final key in response to said semifinal key and said invariant key; and calculating the exclusive-OR of said final key and said digital data. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification