Ho appena realizzato il prototipo per il mio nuovo metodo di autenticazione sicuro basato su password, ma ci sono molti dubbi sulla scelta della dimensione della password e dell'alfabeto. Il metodo è semplice: l'utente calcola il checksum della sua password (somma delle posizioni di questi simboli in diverse permutazioni casuali dell'alfabeto scelto, quindi per ogni simbolo deve essere trovata la sua posizione nella permutazione corrispondente e aggiunta alla somma. di checksum è un resto della divisione di questa somma per il numero totale di tutti i simboli nell'alfabeto scelto).
In realtà, va in questo modo (la dimensione della password è uguale a 16, la dimensione dell'alfabeto è uguale a 20):
- Il server invia solo permutazioni casuali generate dell'alfabeto - una permutazione specifica per ogni lettera della password dell'utente. Lasciate che queste permutazioni siano chiamate come G1, G2, ... G16;
- L'utente calcola il valore di checksum come = (G1 (L1) + G2 (L2) + G3 (L3) + ... + G16 (L16))% 20 (qui: L1 ... L16 - lettere separate di la password);
- Server riceve il checksum e si confronta con il proprio calcolo;
- L'intera procedura può essere ripetuta per ridurre la possibilità di indovinare accidentalmente.
In realtà, credo che sia un metodo affidabile (o no?), ma per quanto riguarda le lunghezze? Penso che 16 lettere di questo tipo per la password - non è abbastanza per resistere alle ipotesi di forza bruta per questo metodo. Ho ragione? 20 sarebbero sufficienti? L'alfabeto è un'altra grande domanda. La crittografia non è la mia tazza di tè, quindi, per favore scusami per una descrizione così ingombrante. Ecco la semplice demo di questo: metodo di autenticazione sicuro basato su password . Spero sia molto più informativo.