One's complement cryptographic combiner
First Claim
1. A stream cipher cryptosystem comprising:
- an encryption pseudo-random number generator receiving a key and providing an encryption keystream;
an encryption combiner receiving a first plaintext binary data sequence representing a message and the encryption keystream and performing a first one'"'"'s complement operation on the first plaintext binary data sequence and the encryption keystream to provide a ciphertext binary data sequence;
a decryption pseudo-random number generator receiving the key and providing a decryption keystream; and
a decryption combiner receiving the ciphertext binary data sequence and the decryption keystream and performing a second one'"'"'s complement operation on the ciphertext binary data sequence and the decryption keystream to produce a second plaintext binary data sequence that represents the message represented by the first plaintext binary data sequence.
1 Assignment
0 Petitions
Accused Products
Abstract
A stream cipher cryptosystem includes a pseudo-random number generator receiving a key and providing a keystream. A cryptographic combiner combines a first binary data sequence and the keystream with a one'"'"'s complement operation to provide a second binary data sequence. In encryption operations, the cryptographic combiner is an encryption combiner and the first binary data sequence is a plaintext binary data sequence and the second binary data sequence is a ciphertext binary data sequence. In decryption operations, the cryptographic combiner is a decryption combiner and the first binary data sequence is a ciphertext binary data sequence and the second binary data sequence is a plaintext binary data sequence.
-
Citations
37 Claims
-
1. A stream cipher cryptosystem comprising:
-
an encryption pseudo-random number generator receiving a key and providing an encryption keystream;
an encryption combiner receiving a first plaintext binary data sequence representing a message and the encryption keystream and performing a first one'"'"'s complement operation on the first plaintext binary data sequence and the encryption keystream to provide a ciphertext binary data sequence;
a decryption pseudo-random number generator receiving the key and providing a decryption keystream; and
a decryption combiner receiving the ciphertext binary data sequence and the decryption keystream and performing a second one'"'"'s complement operation on the ciphertext binary data sequence and the decryption keystream to produce a second plaintext binary data sequence that represents the message represented by the first plaintext binary data sequence. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
means for controlling the encryption combiner to select the first one'"'"'s complement operation from an addition operation and a subtraction operation; and
means for controlling the decryption combiner to select the second one'"'"'s complement operation to be the inverse of the selected first one'"'"'s complement operation.
-
-
6. The stream cipher cryptosystem of claim 5 wherein the means for controlling the encryption combiner pseudo-randomly selects between the addition operation and the subtraction operation.
-
7. The stream cipher cryptosystem of claim 6 wherein the pseudo-random selection of the encryption combiner is based on a transform of an output from the encryption pseudo-random number generator.
-
8. The stream cipher cryptosystem of claim 5 wherein the means for controlling the encryption combiner selects between the addition operation and the subtraction operation according to the amount of text currently processed.
-
9. The stream cipher cryptosystem of claim 5 wherein the means for controlling the decryption combiner pseudo-randomly selects between the addition operation and the subtraction operation.
-
10. The stream cipher cryptosystem of claim 6 wherein the pseudo-random selection of the decryption combiner is based on a transform of an output from the encryption pseudo-random number generator.
-
11. The stream cipher cryptosystem of claim 5 wherein the means for controlling the decryption combiner selects between the addition operation and the subtraction operation according to the amount of text currently processed.
-
12. The stream cipher cryptosystem of claim 1 wherein the encryption combiner and the decryption combiner are implemented in software and the first and second one'"'"'s complement operations are performed with two'"'"'s complement arithmetic wherein:
-
if the one'"'"'s complement operation is addition, the addition is performed by a two'"'"'s complement addition and then adding a constant with an ADD WITH CARRY instruction to convert the two'"'"'s complement answer to a one'"'"'s complement answer; and
if the one'"'"'s complement operation is subtraction, the subtraction is performed by a two'"'"'s complement subtraction and then subtracting a constant with a SUBTRACT WITH BORROW instruction to convert the two'"'"'s complement answer to a one'"'"'s complement answer.
-
-
13. A stream cipher cryptosystem comprising:
-
a pseudo-random number generator receiving a key and providing a keystream; and
a cryptographic combiner receiving a first binary data sequence and the keystream and performing a one'"'"'s complement operation on the first binary data sequence and the keystream to produce a second binary data sequence. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
means for controlling the cryptographic combiner to select the one'"'"'s complement operation from an addition operation and a subtraction operation.
-
-
19. The stream cipher cryptosystem of claim 18 wherein the means for controlling the cryptographic combiner pseudo-randomly selects between the addition operation and the subtraction operation.
-
20. The stream cipher cryptosystem of claim 19 wherein the pseudo-random selection of the cryptographic combiner is based on a transform of an output from the pseudo-random number generator.
-
21. The stream cipher cryptosystem of claim 19 wherein the means for controlling the cryptographic combiner selects between the addition operation and the subtraction operation according to the amount of text currently processed.
-
22. The stream cipher cryptosystem of claim 13 wherein the cryptographic combiner is implemented in software and the one'"'"'s complement operations is an addition operation performed by a two'"'"'s complement addition and then adding a constant with an ADD WITH CARRY instruction to convert the two'"'"'s complement answer to a one'"'"'s complement answer.
-
23. The stream cipher cryptosystem of claim 13 wherein the cryptographic combiner is implemented in software and the one'"'"'s complement operations is a subtraction operation performed by a two'"'"'s complement subtraction and then subtracting a constant with a SUBTRACT WITH BORROW instruction to convert the two'"'"'s complement answer to a one'"'"'s complement answer.
-
24. A method of encrypting a plaintext binary data sequence, the method comprising the steps of:
-
generating a pseudo-random bit encryption keystream as a function of a key; and
combining the plaintext binary data sequence and the encryption keystream with a one'"'"'s complement operation to provide a ciphertext binary data sequence. - View Dependent Claims (25, 26, 27, 28, 29, 30)
selecting the one'"'"'s complement operation from an addition operation and a subtraction operation.
-
-
28. The method of claim 27 wherein the selecting step pseudo-randomly selects between the addition operation and the subtraction operation.
-
29. The method of claim 24 wherein the combining step is implemented in software and the one'"'"'s complement operations is an addition operation performed with the following steps:
-
performing two'"'"'s complement addition; and
adding a constant with an ADD WITH CARRY instruction to convert the two'"'"'s complement answer to a one'"'"'s complement answer.
-
-
30. The method of claim 24 wherein the combining step is implemented in software and the one'"'"'s complement operations is a subtraction operation performed with the following steps:
-
performing two'"'"'s complement subtraction; and
subtracting a constant with a SUBTRACT WITH BORROW instruction to convert the two'"'"'s complement answer to a one'"'"'s complement answer.
-
-
31. A method of decrypting a ciphertext binary data sequence, the method comprising the steps of:
-
generating a pseudo-random bit decryption keystream as a function of a key; and
combining the ciphertext binary data sequence and the decryption keystream with a one'"'"'s complement operation to provide a plaintext binary data sequence. - View Dependent Claims (32, 33, 34, 35, 36, 37)
selecting the one'"'"'s complement operation from an addition operation and a subtraction operation.
-
-
35. The method of claim 34 wherein the selecting step pseudo-randomly selects between the addition operation and the subtraction operation.
-
36. The method of claim 31 wherein the combining step is implemented in software and the one'"'"'s complement operations is an addition operation performed with the following steps:
-
performing two'"'"'s complement addition; and
adding a constant with an ADD WITH CARRY instruction to convert the two'"'"'s complement answer to a one'"'"'s complement answer.
-
-
37. The method of claim 31 wherein the combining step is implemented in software and the one'"'"'s complement operations is a subtraction operation performed with the following steps:
-
performing two'"'"'s complement subtraction; and
subtracting a constant with a SUBTRACT WITH BORROW instruction to convert the two'"'"'s complement answer to a one'"'"'s complement answer.
-
Specification