US 12,353,525 B1
Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment
Francois Jacques Malassenet, Raleigh, NC (US); and Glenn Daniel Sidle, Raleigh, NC (US)
Assigned to GSFM LLC, Raleigh, NC (US)
Filed by GSFM LLC, Raleigh, NC (US)
Filed on Apr. 24, 2024, as Appl. No. 18/644,379.
Application 18/644,379 is a continuation of application No. 17/706,661, filed on Mar. 29, 2022, granted, now 12,001,525.
Application 17/706,661 is a continuation of application No. 16/400,147, filed on May 1, 2019, granted, now 11,301,547, issued on Apr. 12, 2022.
Application 16/400,147 is a continuation of application No. 16/003,152, filed on Jun. 8, 2018, granted, now 10,289,816, issued on May 14, 2019.
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 21/14 (2013.01); G06F 9/30 (2018.01); G06F 21/52 (2013.01); G06F 21/75 (2013.01); H04L 9/00 (2022.01)
CPC G06F 21/14 (2013.01) [G06F 9/30036 (2013.01); G06F 21/52 (2013.01); G06F 21/75 (2013.01); H04L 9/002 (2013.01); H04L 2209/16 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A computer implemented method comprising:
receiving one or more obfuscated and encrypted program instructions that implement an obfuscated and encrypted algorithm having fixed obfuscated and encrypted coefficients, wherein:
the one or more obfuscated and encrypted program instructions are configured for:
receiving one or more ciphertext input data;
providing one or more ciphertext output data; and
implementing obfuscated and encrypted versions of one or more plaintext program instructions that implement a plaintext algorithm having fixed plaintext coefficients; wherein:
the one or more plaintext program instructions are configured for:
 receiving one or more plaintext input data; and
 providing one or more plaintext output data;
the one or more ciphertext input data is an encrypted version of the one or more plaintext input data; and
the one or more ciphertext output data is an encrypted version of the one or more plaintext output data;
and
the one or more obfuscated and encrypted program instructions are an encrypted version of the one or more plaintext program instructions using one or more program instruction encryption keys;
receiving one or more program instruction encryption update keys, wherein:
the one or more program instruction encryption update keys are configured for updating the one or more obfuscated and encrypted program instructions into one or more updated obfuscated and encrypted program instructions for updating and securing the plaintext algorithm, or obfuscated and encrypted algorithm;
the one or more updated obfuscated and encrypted program instructions are configured for:
receiving one or more updated ciphertext input data; and
producing one or more updated ciphertext output data, wherein the one or more updated ciphertext input data is an encrypted version of the one or more plaintext input data;
and
the one or more updated ciphertext output data is an encrypted version of the one or more plaintext input data;
executing an update operation on the obfuscated and encrypted instructions using the one or more program instruction encryption update keys to create one or more updated obfuscated and encrypted instructions, wherein:
the one or more updated obfuscated and encrypted instructions comprise fixed updated obfuscated and encrypted coefficients; and
the fixed updated obfuscated and encrypted coefficients are configured for implementing an updated obfuscated and encrypted version of the plaintext algorithm;
and
storing the fixed updated obfuscated and encrypted coefficients.