Obfuscation is the transformation of data, but as I understand it, obfuscation permanently transforms data while encryption just encrypts it and can be decrypted with a secret key later. So is cryptography a form for obfuscation or is it in a domain for it self? Im having trouble classifying them.


closed as off-topic by techraf, S.L. Barth, Rory Alsop Oct 16 '16 at 11:44

  • This question does not appear to be about Information security within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    Just Wikipedia that. – UTF-8 Oct 15 '16 at 21:24
  • 1
    I'm voting to close this question as off-topic because it is a terminology question answered simply by the wikipedia pages for each word. – Rory Alsop Oct 16 '16 at 11:44

Obfuscation does not transform data - it makes data difficult to interpret.

If I am writing malware and I want to make it difficult for analysts to understand the flow of logic, then instead of using a function called print I use a random string to name that function. "Print" has not been transformed into a random string, the function is just named that random string. There is nothing to 'revert' the random string to.

When you run a code obfuscator, it takes the names variables and functions, assigns them a key value (think: variable1, function1, etc.), then replaces those names with a random string (and sometimes the random string is itself obfuscated through a renaming function embedded in the code). This is not encryption or hashing. This is a complete renaming with random strings. Yes, you could also use encryption as a renaming function, but why take that computational hit? In the end, the variables and function names need to be consistent in the logic flow at runtime.

  • Im more thinking of obfusaction in the domain of releasing data sets etc. Lets say I generalize some value from "3.2" to "<5". It is difficult to interpret but isnt it transformed? – wandapong Oct 15 '16 at 21:40
  • Ok, then you will need to very, very clearly define what you mean by 'obfuscation' in your question. I'm not sure how anyone could equate 'encryption' with 'generalising values'. – schroeder Oct 15 '16 at 22:50
  • Thats why I asked the question. Because I seem misunderstand the term obfuscation, and if it is the same in terms of data privacy vs obfuscating code, and if encryption is under the category of obfuscating. Obfuscation seems to be a very broad term then – wandapong Oct 16 '16 at 4:26
  • @wandapong Obfuscation is a broad and generic term without a technical definition. Encryption is a specific term with a precise definition. In your data set example, the data is not being transformed, it is being summarised or aggregated. – schroeder Oct 16 '16 at 7:22
  • According to a paper on data obfuscation that is a cetagory of obfuscation called Data Anonymization and is called generalization – wandapong Oct 16 '16 at 18:09

Obfuscation makes code difficult for a human (and potentially even a computer) to understand, but it is still usable as is. Encryption makes code not usable as is, it must be decrypted to be useful.

Not the answer you're looking for? Browse other questions tagged or ask your own question.