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=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 1 Hammingova prověrková matice řádu 3, velikost 7 x 3 1 Regulární matice S, velikost 4x4 1 1
Příklad Permutační matice P, velikost 7x7 Odpovídá permutaci 3257164 1
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 1 1
Příklad Inverzní permutační matice P-1 Odpovídá permutaci 5217364 1
Příklad Součinová matice K 1
Š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 1 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