No sistema S/Key:
A proposta do S/Key é obter um conjunto de senhas em que cada uma só pode ser utilizada uma vez. O processo de inicialização do S/Key funciona da seguinte forma:
|
1. O usuário provê um segredo W, a base de todo o processo, que nunca pode ser comprometido.
|
2. Uma função Hash é aplicada n vezes em cima de W, concatenando com um elemento randômico criado durante a inicialização.
|
3. O usuário obtém n senhas correspondentes a cada passagem da função Hash. Dessa forma, o usuário utiliza a senha n para a primeira autenticação, a senha n-1 para a segunda e assim sucessivamente, até esgotar as senhas, quando o processo deverá ser reinicializado.
|
Considerando que a partir de n é inviável deduzir n-1 (envolve reverter uma função Hash), caso n seja comprometida, ela já não mais poderá ser usada, pois cada senha só é usada uma vez. Para facilitar a digitação por parte do usuário, os bytes de cada Hash são convertidos para palavras, utilizando uma tabela de conversão padronizada.