Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
79 words
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.
Claim 2
Independent Claim
79 words
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.
Claim 3
Dependent Claim
56 words
The method recited in claim 1, further comprising the step of forming an invariant key in response to said input digital data, said invariant key consisting of bits in said invariant bit positions in said input digital data, wherein said output digital data is provided in response to both said user key and said invariant key.
Claim 4
Dependent Claim
29 words
The method recited in claim 2, wherein said step of providing output digital data comprises the step of calculating the exclusive-OR of said first key and said invariant key.
Claim 5
Dependent Claim
30 words
The method recited in claim 1, wherein said step of providing output digital data comprises the step of calculating the exclusive-OR of said input digital data and a final key.
Claim 6
Dependent Claim
22 words
The method recited in claim 1, wherein said step of providing a first key comprises the step of permuting a user key.
Claim 7
Dependent Claim
22 words
The method recited in claim 1, wherein said step of providing a first key comprises the step of shifting a user key.
Claim 8
Independent Claim
129 words
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.
Claim 9
Independent Claim
129 words
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.
Claim 10
Dependent Claim
68 words
The method recited in claim 7, wherein said step of forming an actual user key comprises the steps of: permuting said input user key to form a permuted user key; circularly shifting said permuted user key to form a shifted user key; and filling a location having a length equal to the length of said base key with said shifted user key to form said actual user key.
Claim 11
Dependent Claim
42 words
The method recited in claim 7, wherein said step of forming an actual base key comprises the steps of: circularly shifting a predetermined base key comprising a sequence of bits; and permuting said base key in response to said actual user key.
Claim 12
Dependent Claim
29 words
The method recited in claim 7, wherein said step of forming a final key comprises the step of calculating the exclusive-OR of said semifinal key and said invariant key.
Claim 13
Dependent Claim
77 words
The method recited in claim 8, wherein said step of permuting said input user key comprises the steps of: selecting two selected portions of said input user key, each said selected portion comprising a sequence of bits, each said selected portion determined in response to the value and position within said input user key of each of a plurality of predetermined portions of said input user key; and swapping said selected portions of said input user key.
Claim 14
Dependent Claim
14 words
The method recited in claim 11, wherein each said portion consists of a byte.
Claim 15
Dependent Claim
22 words
The method recited in claim 12, wherein said predetermined portions consist of a plurality of consecutive bytes of said input user key.
Claim 16
Dependent Claim
20 words
The method recited in claim 13, wherein said predetermined portions consist of three consecutive bytes of said input user key.
Claim 17
Dependent Claim
117 words
The method recited in claim 14, wherein: said step of selecting two selected portions of said input user key comprises the steps of: selecting a byte KEY i of said input user key having an index number equal to i; selecting a byte KEY l of said input user key having an index number equal to L; and said step of permuting said input user key comprises repeating said steps of selecting a byte for values of i between 2 and N-1 inclusive, wherein each byte of said input user key has an index number, wherein N is the length of said input user key in bytes, and wherein: L=((KEY i-1 +KEY i +KEY i+1 +i)modulo N)+1.
Claim 18
Dependent Claim
63 words
The method recited in claim 8, wherein said step of circularly shifting said permuted user key comprises the step of: circularly shifting said permuted user key by a number of bit positions, said number determined in response to the value and positional weight of each of a plurality of portions of said permuted user key, each said portion comprising a sequence of bits.
Claim 19
Dependent Claim
101 words
The method recited in claim 16, wherein said step of circularly shifting said permuted user key by a number of bit positions comprises the steps of: forming a shift factor S equal to the sum of the values (255+i)*KEY i for values of i between 1 and N inclusive, wherein KEY is a byte of said user key, wherein each said byte of said user key has an index number, wherein N is the length of said user key in bytes; and circularly shifting said permuted user key by L bit positions toward the most significant bit position, wherein: L=(S modulo(N*8))+1.
Claim 20
Dependent Claim
135 words
The method recited in claim 7, wherein: said step of forming an actual user key comprises the steps of: permuting said input user key to form a permuted user key; circularly shifting said permuted user key to form a shifted user key; and filling a location having a length equal to the length of said base key with said shifted user key to form said actual user key; said step of forming an actual base key comprises the steps of: circularly shifting a predetermined base key by a number of bit positions determined in response to the value and positional weight of each of a plurality of portions of said permuted user key, each said portion comprising a sequence of bits; and permuting said circularly shifted base key in response to said actual user key.
Claim 21
Dependent Claim
113 words
The method recited in claim 18, wherein said step of circularly shifting said predetermined base key by a number of bit positions comprises the steps of: forming a shift factor S equal to the sum of the values (255+i)*KEY i for values of i between 1 and N inclusive, wherein KEY is a byte of said user key, wherein each said byte of said user key has an index number, wherein N is the length of said user key in bytes; and circularly shifting said predetermined base key by L bit positions toward the most significant bit position; wherein M is the length of said base key in bytes, and wherein: L=(S modulo(M*8))+1.
Claim 22
Dependent Claim
32 words
The method recited in claim 7, wherein said step of determining invariant bit positions in response to said semifinal key comprises the step of generating byte position indices and bit position indices.
Claim 23
Dependent Claim
30 words
The method recited in claim 20, wherein said step of determining invariant bit positions in response to said semifinal key further comprises the step of forming an invariant bit mask.
Claim 24
Dependent Claim
55 words
The method recited in claim 7, wherein said step of forming an invariant key comprises the steps of: selecting bits of said digital data in said invariant bit positions in a block of said digital data having a length equal to the length of said semifinal key; and copying and appending together the selected bits.
Claim 25
Dependent Claim
33 words
The method recited in claim 22, wherein said step of determining invariant bit positions in response to said semifinal key comprises the step of forming an invariant bit mask, said invariant bit mask.
Claim 26
Dependent Claim
24 words
The method recited in claim 23 wherein said step of forming an invariant key further comprises the step of circularly filling said invariant bits.
Claim 27
Dependent Claim
50 words
The method recited in claim 24, wherein said step of forming a final key comprises the steps of: forming the exclusive-OR of said semifinal key and said invariant key; and forming the logical AND of said invariant bit mask and said exclusive-OR of said semifinal key and said invariant key.