Is it safe to generate a public/private key pair from a users password using PBKDF2, and send the public key to the server to store as the user's key? Then when the user logs in, it would again generate the private key from the password, and use that to communicate with the server.
The salt would be generated by the server and sent to the client as part of the signup form; however, this salt would be completely unique to each request, and the chosen salt would be sent back to the server with the public key.
My thought is that this would solve the problem of tying up server resources if many users wanted to sign up. I am also wondering if it would be any more secure than simply salt and hash a million times.
Obviously, this is vulnerable to a MitM attack during sign up, but what isn't? It should be immune to an eavesdropper, correct? Except for password strength.