od Keleen » 17. 6. 2008 15:05
Tak ja se zase pokusim...uvidime co z toho vyleze:).
Asi zasadni pro osvetleni je zapis toho, jak se vlastne spocte z retezce v i-tem cyklu sifrovani retezec v (i+1)-nim cyklu sifrovani.
L(i+1) = R(i)
R(i+1) = L(i) xor F[R(i),K(i)]
Tohle tedy v kazdem cyklu plati. Mno z vlastnosti xor si muzeme posledni rovnost napsat
L(i) = R(i+1) xor F[R(i),K(i)]
R(i) = L(i+1)
a druha rovnost je proste otocenou uplne prvni rovnosti. Tim jsme ale dostali vlastne postup desifrovani, aneb jak z retezcu v (i+1)-nim kroce dostat retezce v i-tem kroce. No a prave diky tomu zadnou inverzni F nepotrebuju - kdyz sifrujeme, jdeme od kroku i k i+1 a platnost R(i+1) = L(i) xor F[R(i),K(i)] nam zarucuje, ze az budeme desifrovat, bude platit L(i) = R(i+1) xor F[L(i+1),K(i)].
Vim, ze je to trochu indexovaci zalezitost, ale je za tim proste ta myslenka, ze pouziti rovnice se xorem pri sifrovani nam zaruci platnost te same rovnice (pouzite ovsem v opacnem smeru) pri desifrovani:).
Tak ja se zase pokusim...uvidime co z toho vyleze:).
Asi zasadni pro osvetleni je zapis toho, jak se vlastne spocte z retezce v i-tem cyklu sifrovani retezec v (i+1)-nim cyklu sifrovani.
L(i+1) = R(i)
R(i+1) = L(i) xor F[R(i),K(i)]
Tohle tedy v kazdem cyklu plati. Mno z vlastnosti xor si muzeme posledni rovnost napsat
L(i) = R(i+1) xor F[R(i),K(i)]
R(i) = L(i+1)
a druha rovnost je proste otocenou uplne prvni rovnosti. Tim jsme ale dostali vlastne postup desifrovani, aneb jak z retezcu v (i+1)-nim kroce dostat retezce v i-tem kroce. No a prave diky tomu zadnou inverzni F nepotrebuju - kdyz sifrujeme, jdeme od kroku i k i+1 a platnost R(i+1) = L(i) xor F[R(i),K(i)] nam zarucuje, ze az budeme desifrovat, bude platit L(i) = R(i+1) xor F[L(i+1),K(i)].
Vim, ze je to trochu indexovaci zalezitost, ale je za tim proste ta myslenka, ze pouziti rovnice se xorem pri sifrovani nam zaruci platnost te same rovnice (pouzite ovsem v opacnem smeru) pri desifrovani:).