190 likes | 761 Views
Batôžkov algoritmus. Jakub J anek. Batôžkov algoritmus. Navrhnut ý v roku 1978 ( Merkle a Hellman ) Jeden z prvých šifrovacích systémov s verejným kľúčom Asymetrický kryptosystém , s dvoma kľúčmi .
E N D
Batôžkov algoritmus Jakub Janek
Batôžkov algoritmus • Navrhnutý v roku 1978 (Merkle a Hellman) • Jeden z prvých šifrovacích systémov s verejným kľúčom • Asymetrický kryptosystém, s dvoma kľúčmi. • verejný kľúč sa používa pre šifrovanie a súkromný (superrastúca postupnosť) pre dešifrovanie • Nepoužiteľný pre digitálny podpis
Batôžkov problém: • Majme množinu predmetov, každý o určitej hmotnosti. Našou úlohou je z množiny predmetov vybrať taký súbor, aby batoh mal po naplnení predpísanú hmotnosť. S = b1M1 + b2M2 + ... + bnMa M - daná množina hodnôt S - súčet b - množina koeficientov
Príklad • Pomocou batôžkovho algoritmu zašifrujte a následne dešifrujte slovo ahoj ak máme zadané: • a : 01100001 • h : 01101000 • o : 01101111 • j : 01101010 • m=263 • n=31
Vygenerovanie verejného klúča: Postup: • Vygenerovanie ľahkého batohu (KD) • Určiť modul m • Určiť násobiteľa n • Vygenerovanie ťažkého batohu (KE)
Vygenerovanie verejného klúča: • KE=KDi*nmod m • KE1=1*31 mod 263 = 31 • KE2=2*31 mod 263 = 62 • KE3=4*31 mod 263 = 124 • KE4=8*31 mod 263 = 248 • KE5=16*31 mod 263 = 233 • KE6=32*31 mod 263 = 203 • KE7=64*31 mod 263 = 143 • KE8=128*31 mod 263 = 23
Šifrovanie: Postup: • Otvorený text (P) v binárnej podobe • P rozdelíme na bloky • Sčítame prvky batohu • Súčty tvoria zašifrovaný text (C) Vzorec: S = b1M1 + b2M2 + ... + bnMa
Určenie inverzného prvku n-1: Postup: • Potrebujeme m, n • Hľadáme pomocou rozšíreného Euklidovho algoritmu Vzorce: n.n-1 ≡ 1mod m n.n-1 -1 = k.m 1 = n.n-1- k.m
Určenie inverzného prvku n-1: • 1=31-2*15 • 1=31-2*(263-8*31) • 1=31+16*31-2*263 • 1=31*17-2*263 • n-1=17
Dešifrovanie: Postup: • Potrebujeme: C, KD, m, n-1 • Prevedieme operáciu pre výpočet P • Prevedenie P do binárnej sústavy Vzorec: Ci . n -1mod m = Pi
Dešifrovanie: • m=263 • n-1=17 • P1=209*17 mod 263 = 134 =>0*1+1*2+1*4+0*8+0*16+0*32+0*64+1*128 = 01100001 = a • P2=419*17 mod 263 = 22 =>0*1+1*2+1*4+0*8+1*16+0*32+0*64+0*128 = 01101000 = h • P3=788*17 mod 263 = 246 =>0*1+1*2+1*4+0*8+1*16+1*32+1*64+1*128 = 01101111 = o • P4=562*17 mod 263 = 86 =>0*1+1*2+1*4+0*8+1*16+0*32+1*64+0*128 = 01101010 = j
Bezpečnosť • Patent vypršal 19.4.1997 • Algoritmus bol prelomený (Shamir a Rivest) a dnes sa už nepovažuje za bezpečný
Zdroje • Zdroje: • PŘIBYL, J.,KODL.J.: Ochrana dat v informatice, ČVUT 1996 • http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Merkle-Hellman.html • http://www.neerajkumar.net/blog/2012/11/21/merkle-hellman-knapsack-cryptosystem/