Public and private key encryption that works in the browser