Mezi námi, zkonstruovat hash tak, aby se lišil v jednom bajtu nebo dokonce bitu je docela obtížné, nebo nemožné. Princip hashe by měl být, že malá změna způsobí že vyjde naprosto jiný hash, který se nepodobá ničemu.
Když to vezmu do důsledků pokud předložím uživateli dva hashe, které se liší v jednom písmenku, většina si toho nevšimne. Nikdo nebude kontrolovat, že jsou všechna písmenka stejná. Když kontroluju správnost bitcoinové adresy, koukám jen na první čtyři a poslední čtyři znaky. Taky hlavně proto, že spoléhám na interní checksum, který by překlep v jednom znaku měl odhalit (on by měl odhalit i překlep ve více znacích, když má vyhrazeny celé 4 bajty)
Když budu dělat podepisování tajným klíčem v dedikovaném zařízení, třeba v mobilu, nebo v Trezoru, mohu na display zařízení zobrazit celou zprávu, kterou podepisuju. To funguje do té doby, dokud jde o krátkou zprávu. Jak podepíšu dokument ve Wordu?
Smyslem ochrany má být, že uživatel nahraje dokument, zobrazí se mu hash a adekvátní obrázek. Měl by si samozřejmě spočítat hash bokem a ten obrázek taky vygenerovat. Věří webové stránce, že to udělá správně. Pokud ale technika podpisu probíhá přes třetí stranu, chce mít uživatel pocit, že to so v zařízení odsouhlasí je skutečně ten dokument, který na stránku uploadoval. Bez zobrazení samotného dokumentu mu zbývá zobrazit otisk, tedy celý hash a porovnat jej s tím co mu vyšlo při vkládání dokumentu. Tak má jistotu, že nedošlo k pozměnění požadavku cestou. Má to pokrýt nejjednoduší způsoby hacknutí. Těžko někdo bude k právě vloženému dokumentu provádět hledání hodně podobného hashe, když je to mnohdy operace na několik let či staletí.
Mimochodem, když člověk nahrává dokument do nějakého systému veřejné nebo poloveřejné zprávy (třeba pojišťovna) mnohdy tam sedí Active X, podepisuje privátním klíčem certifikátu a zobrazuje SHA-1 Hash místo obsahu dokumentu a čeká, aby to uživatel odbouchnul. Tomu nic nezbude a doufá, že podepsal opravdu ten dokument, který chtěl podepsat,