Paso 4: Vamos a construir un algoritmo Hash de la clave
Una función hash es una que acepta datos y produce un identificador imprevisible, único, de longitud fija (hash).
Un fuerte algoritmo de hash es una que:
- no se puede revertir para indicar nada sobre la entrada original
- produce un código único para cada documento específico (y no otros)
- tiene el efecto de la fuerte avalancha
- no puede ser intencional a medida mediante la manipulación de los datos de entrada
Asunción
Así que estoy a punto de hacer mi primera suposición (posiblemente desastroso). Voy a asumir que la salida de las cuatro operaciones Unidas entre sí (sería de XOR) dará lugar a las cualidades mencionadas. En otras palabras supongo que la salida sea lo suficientemente ruidosa que es indistinguible al azar y que muy poca o ninguna información estadística puede deducirse de él y que es resistente a la colisión debido a la naturaleza de la diffusion(s).
No estoy planeando usar esto como un hash de público capaz de ver por lo que no estoy muy preocupado pero veo esto como la primera debilidad posible. Para cubrir mis apuestas contra esto estoy pensando en añadir un adicional alrededor agarrando dos teclas adicionales en el camino. Puede ver el proceso como se ilustra arriba.
Abogado del diablo
Si tuviera que buscar debilidad en este hash intentaría determinar si había una relación que podría ser resuelto mediante la comparación de los cuatro métodos de mezcla. Si tal relación podría encontrarse que es posible excluir ciertos resultados, si algo es cierto. No tengo ni idea lo que sea pero que es probablemente donde empezaría. He incluido una recta Hash y Hash de clave de modo que usted puede examinar por sí mismo utilizando diferentes entradas.