A guide to public key encryption in multiple languages