Here's how it could work: There could be metatags that specify where to submit the public key. The website will then send back a message that can only be decrypted with the private key. The browser has the user type in the password to access their private key, decrypts the message, and sends it back to the website. The user has now started a session with their public key.
Since you would use the same public key on all websites, your identity would be the same. This would not require a central server like OpenID.