notion that security should not depend on attacker ignorance is
generally accepted, [217] but some would argue that obfuscation and
hiding of both design and implementation has advantages: they raise
the cost to the attacker of compromising the system.