McEllisova šifra 1
James Ellis(1924-1997) Clifford Cocks, Malcolm Williamson šum Bob Alice zpráva Odstranění šumu 2
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 3
Příklad 1 Hammingova prověrková matice řádu 3, velikost 7 x 3 1 Regulární matice S, velikost 4x4 1 1 4
Příklad 1 Permutační matice P, velikost 7x7 Odpovídá permutaci 3257164 1 5
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 6
Příklad Generující matice G Inverzní matice S-1 1 1 7
Příklad Inverzní permutační matice P-1 Odpovídá permutaci 5217364 1 8
Příklad Součinová matice K 1 9
Š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é 10
Příklad 1 K= X = (1010) t = (0000100) X*K = (0010101) y = (0010001) 11
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 12
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) 13