> Jediné, čo ma trápi je to, že pri posledných dvoch plainoch sú rovnaké > začiatky. zaujímavé je, že pri "Hello, World11" a "Hello, World111" > nie sú rovnaké začiatky. hm. Skúšal som zmeniť mód na CFB, CBC, ale > vždy tie začiatky sú rovnaké. prečo tomu tak je? dúfal som, že by to > nemalo byť rovnaké.
Ahoj, Podivej se bliz na to, jak funguje AES. Zjistis, ze AES je blokova sifra, kdy se plaintext rozdeli na bloky a ty se zasifruji. Vychazi ti stejny ciphertext v poslednich dvou pripadech, protoze je stejny vstupni blok dat i stejny sifrovaci klic. Ty prvni dva pripady maji jiny ciphertext, protoze vstupni data maji mene nez 16 znaku (128 bitu) a tim padem jsou zarovnane mezerami a nejde o stejny vstup do blokove sifry. Experimentalne zjistis, ze kdyz ke druhemu pokusu (plain = "Hello, World111") pridas na konec jeste jednu jednicku, dostanes stejny vysledek jako v pokusech 3 a 4, protoze len(plain) >= 16. Pro ECB (ktery by se nemel pouzivat pro nic citliveho) tohle plati pro kazdy blok plaintextu, takze pokud bys mel opakovanou sekvenci 16 znaku na vstupu, dostanes pri ECB opakujici se sekvenci na vystupu (tech zasifrovanych 16 znaku). Pri ostatnich modech se do sifrovani bloku X promitne (neni uplne dulezite jak) neco z bloku X-1, takze 16 opakujicich se znaku se v kazdem bloku zasifruje "trochu jinak". Proto pro ty ostatni mody potrebujes inicializacni vektor, coz je prave falesne "neco z bloku X-1" pro x=1 (prvni zasifrovavany blok dat). Snad jsem to moc nezkomplikoval :) Jirka _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python