CPC G06F 12/1408 (2013.01) [G06F 8/423 (2013.01); G06F 9/544 (2013.01); G06F 21/14 (2013.01); G06F 21/54 (2013.01); G06F 21/60 (2013.01); H04L 9/0631 (2013.01); H04L 65/75 (2022.05); G06F 2221/2125 (2013.01); H04L 63/0428 (2013.01); H04L 2209/16 (2013.01)] | 16 Claims |
1. A method comprising:
randomly selecting at least one dynamic encoding algorithm at runtime during execution of a program by a processor when the processor performs at least one of encoding, decoding and/or re-encoding a data flow of the program, the selecting at runtime made randomly from a pool of encoding algorithms injected into the program at build-time, where the encoding algorithms in the pool each comprise at least one function for encoding, decoding and/or re-encoding the data flow by altering a data value without altering a data type associated with said data value;
wherein the selected at least one dynamic encoding algorithm is associated with at least one tagged data element in the program for encoding, decoding or re-encoding data stored in the tagged data element; and
wherein:
unencoded data is encoded by the selected at least one dynamic encoding algorithm when the unencoded data is copied to the tagged data element;
encoded data is re-encoded by the selected at least one dynamic encoding algorithm when the encoded data is copied from a differently tagged data element to the tagged data element; or
encoded data is decoded by the selected at least one dynamic encoding algorithm when the encoded data is copied from the tagged data element to an untagged data element.
|