170 likes | 320 Views
McEllisova šifra. James Ellis(1924-1997) Clifford Cocks, Malcolm Williamson. šum. Bob. Alice. zpráva. Odstranění šumu. Klíč. 3 matice Prověrková matice H Hammingova kódu řádu r, velikost n=2 r -1 x r. Příslušná generující matice G má velikost n x k=2 r -r-1
E N D
James Ellis(1924-1997) Clifford Cocks, Malcolm Williamson šum Bob Alice zpráva Odstranění šumu
Klíč 3 matice • Prověrková matice H Hammingova kódu řádu r, velikost n=2r-1 x r. Příslušná generující matice G má velikost n x k=2r-r-1 • Regulární matice S, velikost k x k • Permutační matice P, velikost n x n
Příklad • Hammingova prověrková matice řádu 3, velikost 7 x 3 • Regulární matice S, velikost 4x4
Příklad • Permutační matice P, velikost 7x7 • Odpovídá permutaci 3257164
Dále potřebuji spočítat • Generující matici Hammingova kódu G, velikost n x k • Inverzní matici k S: S-1, velikost k x k • Inverzní matici k P: P-1 = PT , velikost n x n • Součin K = S * G * P, velkost n x k
Příklad • Generující matice G • Inverzní matice S-1
Příklad • Inverzní permutační matice P-1 • Odpovídá permutaci 5217364
Příklad • Součinová matice K
Šifrování • Vstupní zpráva x • Spočítám y = x*K + t • t je náhodný „chybový“ vektor délky n s vahou 1 • Šifrování je nedeterministické
Příklad • K= • X = (1010) • t = (0000100) • X*K = (0010101) • y = (0010001)
Dešifrování • Přijmu zprávu y = x*K+t = x*S*G*P+t • Přenásobím zprava maticí P-1 , dostanu m = (x*S*G*P+t)*P-1 = x*S*G*P*P-1+t*P-1 = x*S*G+t*P-1 • Vektor t*P-1 má váhu 1, „chybu“ odstraním metodou pro dekódování Hammingových kódů, získám x*S • Přenásobím zprava maticí S-1, dostanu x
Příklad dešifrování • Přijmu y = (0010001) • Spočítám m=y*P-1=(0001100) • Spočítám syndrom m: synd(m)=m*H=(100) • K „chybě“ došlo na 4. místě: x*S*G=(0000100) • Na základě generující matice G spočítám x*S = (0100) • Přenásobím S-1: x=x*S* S-1=(1010)
Další úvahy • Pro konstrukci šifry potřebuji určit matice H, S, P. • Na jejich základě jednoduchými algoritmy spočítám matice G, S-1, P-1, K. • Pro dešifrování potřebuji znát všechny tyto matice • Pro šifrování mi stačí znát matici K • Z matice K nelze matice H, S a P jednoduše odvodit.
Symetrická šifra • Šifrovací zobrazení y = φ(x,k) • Dešifrovací zobrazení x = ψ(y,k)
Asymetrická šifra • Šifrovací zobrazení y = φ(x,v) • Dešifrovací zobrazení x = ψ(y,t) • v … veřejný, známý, šifrovací klíč • t …soukromý, tajný, dešifrovací klíč • Existuje jednoduchá funkce f: v=f(t) • Funkce f -1 je obtížně vyčíslitelná • F je jednocestná funkce
Další využití (autorizace, „elektronický podpis“) • Pokud navíc platí φ ◦ ψ = ψ ◦ φ • Zprávu x „podepíši“ transformací ψ(x,t) a odešlu. • Příjemce použije transformaci φ: φ(ψ(x,t),v) = φ ◦ ψ (x) = ψ ◦ φ (x) = x • Zpráva je autorizována • McEllisův algoritmus nelze pro autorizaci použít