Stap 5: De hash
ECDSA-ALGORITME wordt gebruikt met een SHA1cryptografische hash van het bericht te ondertekenen (het bestand). Een hash is gewoon een andere wiskundige vergelijking die u toepast op elke byte van de gegevens die zullen geven u een nummer dat uniek is voor uw gegevens. Zoals bijvoorbeeld de som van de waarden van alle bytes kan worden overwogen een zeer domme hash-functie. Dus als er iets verandert in het bericht (het bestand) zullen de hash heel anders zijn. In het geval van het SHA1 hash-algoritme zal het altijd 20 bytes (160 bits). Het is zeer nuttig om te valideren dat een bestand niet is gewijzigd of beschadigd, krijg je de 20 bytes hash voor een bestand van elke grootte en u gemakkelijk dat hash berekenen kunt om ervoor te zorgen dat deze overeenkomt met. Wat de ECDSA-ALGORITME ondertekent is eigenlijk dat hash, dus als de gegevens worden gewijzigd, de hash-wijzigingen en de handtekening is niet geldig meer.
Laten we een voorbeeld gebruiken om gemakkelijker te begrijpen. We gebruiken de eenvoudigste (en domste) hash-functie mogelijk waarin we de som van alle gegevens maken en gebruiken van een modulus 10 op het resultaat.
U moet allereerst begrijpen dat alle gegevens zal worden geïnterpreteerd als een getal. Een tekstbestand is een reeks bytes, die, zoals we eerder hebben uitgelegd vertegenwoordigt 8 bits, wat betekent dat het kan een getal tussen 0 en 255 vertegenwoordigen. Dus als we nemen elke byte als een getal toevoegen van elke byte van het bestand, dan we een modulus door 10 van het resultaat doen, zullen we eindigen met een getal tussen 0 en 9 als de resulterende hash. We krijgen altijd dezelfde hash voor dezelfde gegevens, en als u een byte in het bestand wijzigt, het resultaat kan afwijken. Natuurlijk, zult u ook begrijpen dat het zeer gemakkelijk om te veranderen van het bestand om dezelfde hash aangezien er slechts 10 mogelijkheden (0-9), dan is er een één in 10 kans op het krijgen van dezelfde hash door het veranderen van de inhoud van het bestand zou zijn.
Dat is waar SHA1 komt in het spel, de SHA1-algoritme is nog veel complexer is dan onze eenvoudige "modulus 10" hash-functie, krijgt het een zeer groot aantal (160 bits, dus een nummer met 49 cijfers in decimale notatie) en het heeft de bijzonderheid te radicaal veranderen als een bit van gegevens uit het bestand wordt gewijzigd.
Dit maakt SHA1 een zeer goede hash-algoritme dat is onvoorspelbaar die is zeer veilig en met weinig kans op het krijgen van een "STOOTCONTACT" (wanneer twee verschillende bestanden dezelfde hash hebben) en maakt het vrijwel onmogelijk om het vervalsen van gegevens om een specifieke hash.