US 10,892,889 B2
Systems and methods for an enhanced XOR cipher through extensions
Robert Coleridge, Bellingham, WA (US); and Joel Zwald, Everson, WA (US)
Assigned to COLERIDGE ENTERPRISES LLC, Bellingham, WA (US)
Filed by Robert Coleridge, Bellingham, WA (US); and Joel Zwald, Everson, WA (US)
Filed on Aug. 7, 2018, as Appl. No. 16/57,736.
Application 16/057,736 is a continuation in part of application No. 15/082,853, filed on Mar. 28, 2016, abandoned.
Claims priority of provisional application 62/144,027, filed on Apr. 7, 2015.
Prior Publication US 2019/0044704 A1, Feb. 7, 2019
Int. Cl. H04L 9/06 (2006.01); H04L 9/08 (2006.01)
CPC H04L 9/0662 (2013.01) [H04L 9/0869 (2013.01); H04L 2209/043 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for encrypting plaintext data by via a computing system, wherein the computing system comprises
(a) a processor operable to control the computing system,
(b) a data storage operatively coupled to the processor, wherein the data storage is configured to store a plurality of user keys, a plurality of DSG vectors, a plurality of encryption tables, a plurality of working keys, and combinations thereof;
(c) a data interface component, operatively coupled to the processor, wherein the data interface component is configured to receive a plurality of data for transmission to the processor, wherein the data interface component is configured to transmit a plurality of data generated by the processor,
(d) an initialization component operatively coupled to the processor and controlled in part by the processor, wherein the initialization component is configured to generate a plurality of data to be used in the encryption of the plaintext data,
(e) a Deterministic Sequence Generator (DSG) component operatively coupled to the processor and controlled in part by the processor, wherein the DSG component is configured to generate a plurality of encryption tables to be used in the encryption of the plaintext data, and
(f) an encryption component operatively coupled to the processor and controlled in part by the processor, wherein the encryption component is configured to encrypt plaintext data,
the method comprising:
receiving, via the data interface component, at least one request from the associated user to encrypt plaintext data, wherein the at least one user request comprises selected plaintext data to be encrypted, a user key, a first random value, and a set of DSG seeds;
transmitting the first random value and the set of DSG seeds to the initialization component;
generating, by the initialization component, an initialization value from the first random value and the set of DSG seeds;
generating, by the initialization component, a set of initial DSG vectors from the initialization value and the user key and transmitting the initial DSG vectors to the DSG component;
generating, by the DSG component, an additive table, a substitution table, and a first working key from the set of initial DSG vectors;
encrypting, by the encryption component, at least a portion of the selected plaintext data to generate encrypted plaintext data by performing:
(a) an additive operation on each byte of at least a portion of the selected plaintext data using the additive table;
(b) an XOR operation on each byte of at least a portion of the selected plaintext data; and
(c) a substitution operation on each byte of at least a portion of the selected plaintext data using the substitution table;
wherein during the encryption of the plaintext data, the encryption component determines whether the current working key is exhausted,
wherein based on a determination that the current working key is exhausted, generating, by the DSG component, a new working key from the set of initial DSG vectors for use by the encryption component; and
storing at least a portion of the encrypted plaintext data in the data storage.