Stap 4: Laten we bouwen een sleutel hash-algoritme
Een hash functie behoort die gegevens accepteert en produceert een onvoorspelbare, unieke, vaste lengte id (de hash).
Een sterke hash-algoritme is een waar:
- kan niet worden teruggedraaid om aan te geven om het even wat over de oorspronkelijke ingang
- produceert een unieke code voor elke specifieke document (en geen andere)
- heeft sterke lawine-effect
- kan niet worden opzettelijk is afgestemd door het manipuleren van de invoergegevens
Veronderstelling
Dus ik ben bezig met het maken van mijn eerste (eventueel rampzalige) veronderstelling. Ik ga ervan uit dat de uitvoer van alle vier operaties samengevoegd (XOR zou) zal resulteren in de bovengenoemde kwaliteiten. Met andere woorden ik neem aan dat de output moet worden voldoende lawaaierige dat er niet te onderscheiden van willekeurige en dat zeer weinig of geen statistische informatie daaruit kan worden opgedaan en dat er resistente botsing vanwege de aard van de diffusion(s).
Ik ben niet van plan om dit te gebruiken als een openbare weergave-baar hash dus ik niet overdreven bezorgd ben maar ik zie dit als de eerste mogelijke zwakte. Om te dekken van mijn weddenschappen tegen dit ben ik van plan om toe te voegen een extra ronde grijpen twee extra sleutels langs de weg. Je ziet het proces zoals hierboven geïllustreerde.
The Devil's advocate
Als ik op zoek naar zwakte in deze hash zou ik proberen om te bepalen of er een relatie die kan worden opgelost door het vergelijken van de vier methoden van het mixen was. Als een dergelijke relatie dat het wellicht mogelijk om uit te sluiten van bepaalde resultaten vinden kan als iets waar is. Ik heb geen idee wat dat zou zijn maar dat is waarschijnlijk waar ik zou beginnen. Ik heb een rechte Hash en de Sleutel Hash opgenomen zodat u het kunt controleren voor jezelf met behulp van verschillende ingangen.