Hola @NEBIRE, estoy diseñando una función propia, no implementando una.
Luego resulta parco decir: "quiero probarla" ... "al parecer mis scripts de pruebas no funcionan".
Sinceramente no sé a que te referís con esto, si es a que es redundante decir que mis scripts
de pruebas no funcionan, puede que así sea. Si, por el contrario, te referís a lo amplio que suena "quiero probarla", me refiero a que quiero ejecutar las pruebas del NIST.
En qué consisten las pruebas y/o cuáles son?.
Las pruebas son las siguientes:
- Resistencia a preimagen
- Resistencia a segunda preimagen (colisiones)
- Resistencia a la contribución de bits (agregar bits al mensaje)
- Resistencia a la resta de bits (no me acuerdo el nombre real, quitar bits del mensaje)
Cada test tiene que repetirse de 2 a 4 veces la cantidad de bits de salida de la función, si no mal recuerdo. Los primeros dos son fáciles de implementar, donde me perdí es en los últimos dos, es decir ¿cómo es posible "agregarle" o "quitarle" bits al mensaje?, bytes es fácil, ¿pero bits?
.
Luego planeo hacer mi "propias" pruebas de segunda preimagen, basadas en diccionarios que andan rondando por ahí.
Es decir si estás haciendo una función hash propia, qué importac ningún programa que no sabe nada de tu hash?.
Si con esto te referís a qué importancia tiene probar mi función, no lo sé, la estoy desarrollando por hobby
. Si te referís a qué "importaría" al programa, sería una implementación de mi función (todo por ese
"importac", perdón).
En fin, gracias por tu respuesta y perdón por la poca especificidad del post original.