1. A method of obfuscating data based on a discrete logarithm, the method causing a computing device to perform steps comprising: identifying, via the computing device, a first clear value in source code; replacing, via the computing device, the first clear value in the source code with a first transformed value, the first transformed value generated based on the first clear value and a discrete logarithm, wherein the first clear value is a set of independent data and generating the first transformed value includes steps comprising: generating a random odd value K, generating a random value X that is greater than 10, generating a random value N as follows: K*2^X, generating a value G whose order is O modulo 2^X, and transforming a byte A in the set of independent data to a larger size transformed value A* as follows: A*=G^A modulo N; and updating, via the computing device, portions of the source code that refer to the first clear value such that interactions with the first transformed value provide a same result as interactions with the first clear value.