auguste kerckhoffs bruce schneier cisco systems claude shannon code morphing common law computer security computer virus computer worm contract cryptography cryptosystem fraud full disclosure gsm incompatible timesharing system inside job internet explorer kernel patch protection microsoft outlook microsoft windows morris worm multics need to know obfuscated code open source outlook express premier election solutions pretty good privacy reverse engineering secrecy secure by design security security engineering statute terms of use university of bradford web browser