| 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 |

|
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.
|