CBC: c0 = IV cj = EK (mj ⊕ c j-1 ) m’j = c j-1 ⊕ DK (cj )
zmiana wartości bitu w bloku cj wpływana zniekształcenie
dwóch kolejnych bloków w 1 około 50% bitów, zaś w
bloku 2 zniekształcony jest dokl 1 bit.CFB: autosynhronizacja
OFB: zmiana x bitów w bloku powoduje zniekształcenie
tylko tych bitów w wiadomości Atak 2des: Atak tekstem jawn
,Znamy parę (M1,C1),M1 szyfr wszyst możli klui k1 (2^56)
, Wyniki przechow w pos tab, C1 deszy wszyst możl klu k2
do mom napotk X znajduj się w tab,Szyfruj klu k1 i k2
dowolną M2 dla której znamy C2,kon gdy Ek2(Ek1(M2))=C2
Trud prob oblicz:faktoryzacja• obliczanie log dyskretnego•
wyzn pierwias mod n,zag plecak Asym: C = M^emod n
(M, C ∈ Zn) M = C^dmod n ed mod Φ(n) = 1 e = d -1 mod Φ(n)
Rsa: (n = p q). ,Φ(n) = (p - 1)( q - 1) ,d = e^ -1 mod Φ (n),
Elgamall: y=g^x mod p x-k.pryw y-k.publi p-duż l. pierw
g-gen mod p C1 = gk mod p oraz C2 = M*y^k mod p k-losowa
C2 / C1^x mod p = M mod p DF: losujemy p i g duże A losuje
a B losuje b ,A wysyła g^a mod p B a g^b A obliczają k=g^ab
Uwierzytelnienie: tego co wie,co posiada,kim jest,gdzie jest
T=1/2*A^h * z/v a-liczba liter h –dł. Hasła
z-liczba zn wym prot v-prędkość przesyłania Zn
modexp (a, b, n) = {
local(d, bin ); d = 1; bin = binary (b);
for (i = 1, length (bin),
d = Mod(d*d, n);if (bin[i] == 1,
d = Mod(d*a, n); ); );return (d);}
Rsa:p = nextprime(random(10^10))
q = nextprime(random(10^11))
n = p * q; phifn = (p - 1) * (q - 1)
e = random(n)
while(gcd(e, phifn) != 1, e = e + 1)
d = lift(Mod(e, phifn) ^ (-1))
m = wartosc; \r modexp.gp
s=lift(modexp(m,d,n))
m2=lift(modexp(s,e,n))
if(m==m2,zaliczony,obalony)
DF: p = nextprime (random (10^20))
alpha = lift (znprimroot (p))
x = random (p-3)+1;y = random (p-3)+1
c1 = lift(modexp (alpha, x, p))
c2 = lift(modexp (alpha, y, p))
c11 = lift (modexp (c1, y, p))
c12 = lift (modexp (c2, x, p))
if(c11 == c12, zal,olany)
ElG: p = nextprime (random(10^20))
alpha = znprimroot(p)a = random(p-3)+1
m =?;k = random (p-3) + 1
y = modexp (alpha, k, p);a2 = (alpha^a)^k
d = Mod(m * a2, p );m2 = lift(Mod (y^(-a)*d,p))
if (m2 == m,zal,obl);