1. A method of obfuscating data based on a discrete logarithm, the method causing a computing device to perform steps comprising: identifying a clear value in source code; replacing the clear value in the source code with a transformed value based on the clear value and a discrete logarithm; and updating portions of the source code that refer to the clear value such that interactions with the transformed value provide a same result as interactions with the clear value.