mcellisova šifra
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
McEllisova šifra
James Ellis(1924-1997) Clifford Cocks, Malcolm Williamson
AliceBob
zpráva
šum
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
1 0 1 0 1 0 1
0 1 1 0 0 1 1
0 0 0 1 1 1 1
1 1 1 0
0 1 1 0
1 0 1 0
0 0 0 1
Příklad
• Permutační matice P, velikost 7x7
• Odpovídá permutaci 3257164
0 0 1 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 0 1
1 0 0 0 0 0 0
0 0 0 0 0 1 0
0 0 0 1 0 0 0
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 1 0 0 0 0
1 0 0 1 1 0 0
0 1 0 1 0 1 0
1 1 0 1 0 0 1
1 1 0 0
1 0 1 0
1 1 1 0
0 0 0 1
Příklad
• Inverzní permutační matice P-1
• Odpovídá permutaci 5217364
0 0 0 0 1 0 0
0 1 0 0 0 0 0
1 0 0 0 0 0 0
0 0 0 0 0 0 1
0 0 1 0 0 0 0
0 0 0 0 0 1 0
0 0 0 1 0 0 0
Příklad
• Součinová matice K 1 0 1 0 0 1 0
0 1 1 0 1 1 0
1 0 0 0 1 1 1
0 1 0 1 1 0 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
• K=
• X = (1010)• t = (0000100)• X*K = (0010101)• y = (0010001)
1 0 1 0 0 1 0
0 1 1 0 1 1 0
1 0 0 0 1 1 1
0 1 0 1 1 0 1
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