¿Existe un algoritmo de generación de contraseña de un solo uso (basado en un secreto predefinido y un valor / tiempo / contador / etc cambiante) que sea lo suficientemente simple como para que lo pueda procesar un humano promedio pero lo suficientemente seguro como para que no se pueda encontrar el secreto? solo unas pocas contraseñas (digamos 5-10)?
He visto preguntas sobre varios esquemas de contraseña específicos y qué tan seguros están. Pero me gustaría saber más generalmente si existen algunos algoritmos bien conocidos.
La intuición me dice que si algo es suficientemente fácil de procesar por un humano, entonces también es fácil de romper. Pero, de nuevo, me sorprendió mucho que el cifrado asimétrico fuera posible o el intercambio de claves seguro (DH). Así que, ¡sorprendeme!
Editar: Algunas aclaraciones.
La pregunta surgió cuando estaba pensando en la autenticación de dos factores para uso en exteriores. Una autenticación típica de dos factores para entornos seguros (hogar, oficina, ...) utiliza una contraseña y un generador de OTP en un dispositivo o en su teléfono. Pierdes el dispositivo / teléfono, todavía hay la contraseña. Un keylogger roba su contraseña, todavía existe el dispositivo / teléfono.
Pero, ¿qué pasa con las situaciones donde ambos podrían ser robados? Por ejemplo, utiliza una aplicación para recoger una bicicleta eléctrica en la calle o para abrir un casillero en una estación de tren. Alguien puede verlo mientras ingresa la contraseña en su teléfono y luego también se roba el teléfono.
El problema podría resolverse mediante el uso de contraseñas que se vuelven inútiles en un corto período de tiempo (por ejemplo, 10min). Además, el teléfono tendría un secreto individual (por ejemplo, un certificado de cliente SSL) para hacer que los ataques de fuerza bruta contra la autenticación de contraseña sean más difíciles.
La sugerencia demr.spuratic sobre el algoritmo HCMU de Blum es bastante similar a lo que estaba buscando. Todavía parece un poco demasiado pesado para el humano promedio, pero con algo de práctica sería factible.