Prave, ze vygenerovat pozadovane texty a dokumenty je vcelku trivialne. Zakladny princip je v tom, ze pri vytvarani dokumentu sa musia do neho vlozit obidve verzie textu a podla nejakej premennej rozhodnut, ktory obsah sa zobrazi uzivatelovi. A pretoze je to PostScript moznosti tu su.
Tu je priklad snad v zrozumitelnejsom jazyku:
Prvy dokument, ktory sa ukaze sefovi obsahuje:
If ( retazecX == retazecX )
{
Print(“Toto je text co vidi sef.”);
}
Else
{
Print(“Toto je text, ktory potrebuje Alice pre ziskanie prav.”);
}
A tu je druhy dokument, ktory pouzije Alice pre ziskanie pristupovych prav
If ( retazecX == retazecY )
{
Print(“Toto je text co vidi sef.”);
}
Else
{
Print(“Toto je text, ktory potrebuje Alice pre ziskanie prav.”);
}
Jediny rozdiel je v tom, ze prvy dokument porovnava retazecX == retazecX co je vzdy pravda a tak tento dokument zobrazuje vzdy len text “Toto je text co vidi sef.”.
Druhy dokument porovnava retazecX == retazecY co nie je nikdy pravda a tak sa vzdy zobrazi text “Toto je text, ktory potrebuje Alice pre ziskanie prav.”.
Aby obidve dokumenty mali rovnaky hash, musi retazecX generovat rovnaky hash ako retazecY. A pretoze vsetko ostatne v dokumentoch je rovnake tak aj cele dokumenty budu generovat rovnaky hash. A vdaka zverejnenemu algoritmu mozeme ziskat za 45 minut tie dva X a Y retazce, ktore Alice potrebovala.
Skuste si stiahnut tie dva PS subory a uvidite, ze je tam pouzity tento princip. Pricom mozete lubovolne zmenit text. Ak urobite presne rovnake zmeny v obidvoch suboroch, hash obidvoch suborov bude rovnaky. A tak je jednoduche editovat text co vidi sef a co ma vidiet osoba, ktora Alice prideli nove pristupove prava.