Nel caso in cui si parli di One Time Password
c'è un motivo semplice, perché gli algoritmi TOTP utilizzano una chiave simmetrica sul client / dispositivo e sul lato server.
Se si dà un'occhiata a HOTP-TOTP (RFC6238), viene derivato da HOTP-OTP (RFC4226), l'algoritmo OTP basato su eventi.
Questo è stato specificato nel 2005. Il primo smartphone è nato nel 2007.
Quindi cosa? Gli algoritmi OTP sono progettati per funzionare con dispositivi hardware. Questi dispositivi hardware hanno un display, in modo che l'utente possa inserire la password one time. Durante la generazione della password one time, RFC definisce un metodo di troncamento, in modo che l'utente sia effettivamente in grado di eseguire il punch in un numero limitato di caratteri.
L'output di HMAC-SHA1 è 20 byte escode. Nessuno vuole inserirla come password unica.
Per poter eseguire la crittografia asimmetrica, puoi non utilizzare qualsiasi funzione di troncamento. Altrimenti la chiave pubblica non sarebbe in grado di verificare la firma. La chiave privata non sarebbe in grado di decifrare il messaggio.
I dati da trasferire con le chiavi assimmetriche sarebbero molto più grandi - 1024 bit, 2048 bit ... Ancora una volta, l'utente dovrebbe inserire manualmente una password una tantum molto lunga.
Bene, se il cliente trasmette questi dati elettronicamente non dovresti troncarlo. Ma di nuovo non stiamo parlando di password una tantum ma di crittografia di chiave pubblica o autenticazione basata su certificato client.
Quindi alla fine si tratta di leggibilità umana e troncamento .