US9270462B2ActiveUtilityA1

Method and system for conducting high speed, symmetric stream cipher encryption

Assignee: GREY HERON TECHNOLOGIES LLCPriority: Jul 25, 2011Filed: Jul 15, 2013Granted: Feb 23, 2016
Est. expiryJul 25, 2031(~5 yrs left)· nominal 20-yr term from priority
G09C 1/00H04L 9/28G09C 1/10H04L 9/0662
46
PatentIndex Score
0
Cited by
24
References
21
Claims

Abstract

A method is provided for processing a digital information set having a plurality of information bytes. The method comprises receiving the information set, determining a set of initialization parameters, initializing a set of state variables using the set of initialization parameters, and generating a plurality of cryptors, each cryptor being a virtual dynamic array containing a monoalphabetic cipher. The method further comprises modifying the state variables and one or more of the cryptors, setting the index value for each cryptor in the plurality of cryptors; and selecting an ordered cryptor subset to be applied to an information byte. The information byte is processed using the ordered cryptor subset to produce a processed information byte. If the information byte is a plaintext byte, the processed byte is an encrypted byte, and vice versa. The actions of modifying, setting, selecting, and processing are then repeated for each remaining information byte.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
       1. A computer-implemented method performed by one or more data processors, for processing a digital information set having a plurality of digital information bytes, the computer-implemented method comprising:
 initializing a set of state variables and storing the set of state variables in a non-transitory storage medium; 
 generating, using the one or more data processors, a set of cryptors comprising a plurality of cryptors and storing the plurality of cryptors in the non-transitory storage medium, each cryptor being a virtual dynamic array containing a monoalphabetic cipher and having an associated index value representing a rotational position of the cryptor; 
 pseudo-randomly modifying, using the one or more data processors, one or more values included within one or more of the set consisting of:
 the state variables, and 
 the plurality of cryptors; 
 
 pseudo-randomly selecting, based on the state variables and using the one or more data processors, an ordered cryptor subset of the plurality of cryptors to be sequentially applied to a digital information byte; 
 pseudo-randomly setting the index value for each cryptor in the ordered cryptor subset; 
 processing, using the one or more data processors, a selected one of the plurality of digital information bytes using the ordered cryptor subset to produce a processed digital information byte, wherein the action of processing a selected one of the plurality of digital information bytes includes:
 sequentially applying each cryptor in the ordered cryptor subset to an input byte, the input byte for a first cryptor application being the selected one of the plurality of information bytes and for each subsequent cryptor application, the input byte being a resultant output byte from the preceding cryptor application, the processed information byte being the output byte from a final cryptor application; 
 
 repeating the actions of pseudo-randomly modifying, pseudo-randomly selecting, pseudo-randomly setting, and processing for each remaining digital information byte of the digital information set, each performance cycle of the actions of pseudo-randomly modifying, pseudo-randomly selecting, pseudo-randomly setting, and processing constituting a process iteration; and 
 assembling the processed digital information bytes from all process iterations to form an output digital information set, 
 wherein the action of pseudo-randomly modifying the plurality of cryptors includes modifying at least one cryptor of the plurality of cryptors independently of each other cryptor of the plurality of cryptors. 
 
     
     
       2. A method according to  claim 1 ,
 wherein the information bytes are plaintext bytes or ciphertext bytes produced from plaintext bytes, and 
 wherein if the information bytes are plaintext bytes, then each processed information byte is a ciphertext byte and if the information bytes are ciphertext bytes, then each processed information byte is a plaintext byte. 
 
     
     
       3. A method according to  claim 1  wherein the action of applying each cryptor includes:
 combining the input byte with the index value associated with the cryptor being applied to create an intermediate output byte, and 
 using the intermediate output byte as an index into the cryptor virtual array to obtain the output byte for the cryptor application. 
 
     
     
       4. A method according to  claim 3  wherein the action of combining the input byte with the index value associated with the cryptor includes at least one of the set consisting of
 adding the input byte and the index value, 
 applying a Boolean exclusive-or operator to the input byte and the index value, and 
 subtracting the index value from the input byte. 
 
     
     
       5. A method according to  claim 1  wherein the action of applying each cryptor includes:
 using the input byte as an index into the cryptor virtual array to obtain an intermediate output byte, and 
 combining the intermediate output byte with the index value associated with the cryptor being applied to produce the output byte for the cryptor application. 
 
     
     
       6. A method according to  claim 1  further comprising:
 generating a plurality of inverse cryptors equal in number to the plurality of cryptors, each inverse cryptor containing a unique monoalphabetic cipher that reverses an encryption effect of a corresponding one of the plurality of cryptors and having the same associated index value as the corresponding one of the plurality of cryptors. 
 
     
     
       7. A method according to  claim 6  wherein the information set is a ciphertext message comprising information bytes that are each ciphertext bytes, the ciphertext message being a result of a previous encryption of a plaintext message based on the initialization parameters and the output information set being a reproduced version of the plaintext message, and wherein the action of processing a selected one of the plurality of information bytes includes:
 sequentially applying, in reverse order, the inverse cryptor corresponding with each cryptor in the ordered cryptor subset to an input byte, the input byte for a first inverse cryptor application being the selected one of the plurality of information bytes and for each subsequent inverse cryptor application, the input byte being a resultant output byte from the preceding inverse cryptor application, the processed information byte being the output byte from a final inverse cryptor application. 
 
     
     
       8. A method according to  claim 7  wherein the action of applying the inverse cryptor corresponding with each cryptor includes:
 using the input byte as an index into the inverse cryptor virtual array to obtain an intermediate output byte, and 
 combining the intermediate output byte with the index value associated with the inverse cryptor being applied to produce the output byte for the inverse cryptor application. 
 
     
     
       9. A method according to  claim 8  wherein the action of combining the intermediate output byte with the index value associated with the inverse cryptor being applied includes at least one of the set consisting of
 adding the index value to the intermediate output byte, 
 using a Boolean exclusive-or operator to apply the index value to the intermediate output byte, and 
 subtracting the index value from the intermediate output byte. 
 
     
     
       10. A method according to  claim 1  wherein the action of processing a selected one of the plurality of information bytes includes:
 determining a pseudo-random target information byte; 
 sequentially applying each rotationally positioned cryptor in the ordered cryptor subset to the target information byte to produce a processed target byte; and 
 combining the processed target byte with the selected one of the plurality of information bytes to produce the processed information byte. 
 
     
     
       11. A method according to  claim 10  wherein the action of combining the processed target byte with the selected one of the plurality of information bytes includes at least one of the set consisting of
 adding the processed target byte and the selected one of the plurality of information bytes, 
 applying a Boolean exclusive-or operator to apply the processed target byte to the selected one of the plurality of information bytes, and 
 subtracting the selected one of the plurality of information bytes from the processed target byte. 
 
     
     
       12. A method according to  claim 1  wherein the action of initializing includes:
 constructing the set of state variables using values derived from a public information string and one or more private information strings. 
 
     
     
       13. A method according to  claim 1  further comprising:
 changing the number of cryptors in the ordered cryptor subset during one or more of the process iterations. 
 
     
     
       14. A method according to  claim 1  wherein the action of pseudo-randomly modifying includes at least one modification selected from the set consisting of
 rearranging the monoalphabetic contents of one or more of the plurality of cryptors, 
 replacing one or more of the plurality of cryptors, and 
 swapping locations of one or more pairs of values within cryptors of the plurality of cryptors. 
 
     
     
       15. A method according to  claim 1  wherein the action of pseudo-randomly selecting an ordered cryptor subset from the plurality of cryptors includes:
 pseudo-randomly selecting the cryptors of the ordered cryptor subset from the plurality of cryptors based on one or more of the state variables. 
 
     
     
       16. A method according to  claim 1  wherein the action of processing a selected one of the plurality of information bytes includes
 pseudo-randomly generating a target byte, 
 sequentially applying each cryptor in the ordered cryptor subset to an input byte, the input byte for a first cryptor application being the target byte and for each subsequent cryptor application, the input byte being a resultant output byte from the preceding cryptor application, the output byte from a final cryptor application being the processed information byte. 
 
     
     
       17. An automated system for processing a digital information set having a plurality of digital information bytes, the system comprising:
 a non-transitory data storage medium; 
 at least one data processor in communication with the non-transitory data storage medium; and 
 a hardware interface configured to establish selective communication between the at least one data processor and at least one of the set consisting of a user for direct information input therefrom, external data processors, one or more local or wide area networks, and a telecommunications network, 
 wherein the non-transitory storage medium has stored therein instructions to cause the at least one data processor to carry out the actions of:
 receiving the information set via the hardware interface, 
 initializing a set of state variables and storing the set of state variables in the non-transitory storage medium, 
 generating, using the set of state variables, a set of cryptors comprising a plurality of cryptors, and storing the set of cryptors in the non-transitory storage medium, each of the plurality of cryptors being a virtual dynamic array containing a monoalphabetic cipher and having an associated index value representing a rotational position of the cryptor, 
 pseudo-randomly modifying one or more values included within one or more of the set consisting of: the set of state variables and the plurality of cryptors, 
 pseudo-randomly selecting, based on the set of state variables, an ordered cryptor subset of the plurality of cryptors to be sequentially applied to a digital information byte of the digital information set, 
 pseudo-randomly setting the index value for each cryptor in the ordered cryptor subset; 
 processing a selected one of the plurality of digital information bytes using the ordered cryptor subset to produce a processed digital information byte, wherein the action of processing the selected one of the plurality of digital information bytes includes:
 sequentially applying each cryptor in the ordered cryptor subset to an input byte, the input byte for a first cryptor application being the selected one of the plurality of information bytes and for each subsequent cryptor application, the input byte being a resultant output byte from the preceding cryptor application, the processed information byte being the output byte from a final cryptor application, and 
 
 repeating the actions of pseudo-randomly modifying, pseudo-randomly selecting, pseudo-randomly setting, and processing for each remaining digital information byte of the digital information set, each performance cycle of the actions of pseudo-randomly modifying, pseudo-randomly selecting, pseudo-randomly setting, and processing constituting a process iteration; and 
 assembling the processed digital information bytes from all process iterations to form a processed digital information set, 
 wherein the action of pseudo-randomly modifying the plurality of cryptors includes modifying at least one cryptor of the plurality of cryptors independently of each other cryptor of the plurality of cryptors. 
 
 
     
     
       18. An automated system according to  claim 17  wherein the software is further configured for execution on the at least one data processor to cause the at least one data processor to carry out the action of
 generating a plurality of inverse cryptors equal in number to the plurality of cryptors, each inverse cryptor containing a unique monoalphabetic cipher that reverses an encryption effect of a corresponding one of the plurality of cryptors and having the same index value as the corresponding one of the plurality of cryptors. 
 
     
     
       19. An automated system according to  claim 18  wherein the software is further configured for execution on the at least one data processor to cause the at least one data processor to carry out the action of
 sequentially applying, in reverse order, the inverse cryptor corresponding with each cryptor in the ordered cryptor subset to an input byte, the input byte for a first inverse cryptor application being the selected one of the plurality of information bytes and for each subsequent inverse cryptor application, the input byte being a resultant output byte from the preceding inverse cryptor application, the processed information byte being the output byte from a final inverse cryptor application. 
 
     
     
       20. An automated system according to  claim 17  wherein the at least one data processor is or includes one of the set consisting of an integrated circuit and a chip. 
     
     
       21. An automated system according to  claim 17  wherein the at least one data processor is or includes a component of a communications device.

Join the waitlist — get patent alerts

Track US9270462B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.