Could we not improve password security by using a public / private key system, integrated in our web browsers?
For example, I give every website I login to a public key. When I login to the website, the website uses this public key to encrypt a secret message. My browser automatically reads the secret message, decrypts it with my private key, and then sends the message back to the website. If it's the correct message, it lets me in. This whole process would be integrated into the web browser making it transparent to the user.
Should the website get hacked, then all they have is my public key. Not much they can do with it. Is there a system already out there that already implements this system of authentication?