Q2: What is the difference with code obfuscation?
Related and complementary techniques for protecting software implementations but with different security goals include code obfuscation and software tamper- resistance. Code obfuscation is aimed at protecting against the reverse engineering of a (cryptographic) algorithm while software tamper-resistance is aimed at protecting against modifications of the code. All these techniques have however in common that the resulting implementation must remain directly executable.
Now, it shows the differences between obfuscation and temper-resistance, but it says nothing about the difference between white-box cryptography and code obfuscation.
So I guess my question is - is those two completely different things? or code obfuscation is a way to achieve white-box cryptography? if the second is true, are there other ways to achieve it?