I've just made the prototype for my new secure password-based authentication method, but there are several doubts about chosen size of password and alphabet. The method is simple - user calculates the checksum of his password (sum of positions of these symbols in different random permutations of the chosen alphabet. So, for each symbol its position in corresponding permutation should be found and added to the sum. The actual value of checksum is a remainder of division of this sum by the total number of all symbols in the chosen alphabet).
Actually, it goes this way (size of password equals 16, size of alphabet equals 20):
- Server sends just generated random permutations of alphabet - one particular permutation for each letter of user password. Let these permutations be called as G1, G2, ... G16;
- User calculates the value of checksum as = (G1(L1) + G2(L2) + G3(L3) + ... + G16(L16)) % 20 (here: L1...L16 - separate letters of the password);
- Server receives the checksum and compares with its own calculation;
- The whole procedure can be repeated to decrease the possibility of accidental guessing.
Actually, I believe it's a reliable method (Or not?), but what about the lengths? I think 16 such letters for password - it's not enough to resist brute-force guessing for this method. Am I right? Would 20 be enough? Alphabet is another big question. Cryptography is not my cup of tea, so, please excuse me for such a cumbersome description. Here is the simple demo of it: secure password-based authentication method. I hope it's much more informative.