Digamos que quiero usar un algoritmo de hash de seguridad, como bcrypt, y quiero usar una implementación de bcrypt joven, por ejemplo. llamado libfancybcrypt
, en lugar de una implementación bien establecida.
Por supuesto, simplemente puedo generar unos pocos miles o millones de cadenas aleatorias, hacerlas con libfancybcrypt
y con la biblioteca antigua y bien establecida, y comparar las funciones al final. Así que supongamos que lo he hecho y la nueva biblioteca en cuestión produce el mismo resultado que el bien establecido para todas las entradas aleatorias.
Mi pregunta tiene dos partes:
-
Supongamos que se puede confiar en el autor de la biblioteca. Dada mi prueba de entrada aleatoria anterior: qué tan probable es , que el autor accidentalmente introduce un error con el efecto de que hay entradas para las cuales hash equivocado es calculado?
-
Suponiendo que no se puede confiar en el autor de la biblioteca. Dada mi prueba de entrada aleatoria anterior: ¿qué tan probable es que el autor haya introducido a propósito una puerta trasera de algún tipo?
Relacionado pero aún diferente: