Merkle-Hellman Knapsack Cryptosystem AKIK HIDAYAT MATEMATIKA FMIPA UNPAD Kriptosistem Merkle Hellman Knapsack • Merkle Hellman Knapsack pertama kali dideskripsikan oleh Merkle dan Hellman pada tahun 1978 • Didasarkan pada masalah NP complete (Non Deterministic Polynomial) • Knapsack problem CRYPTOGRAPHY j 1 sj si i 1 Bentuk umum • Ambil s = (s1,s2,…,sn) sembarang bilangan integer n superincreasing, ambil p s i i 1 n p si i 1 • bilangan prima, dan ambil 1 a P • untuk 1 i n. • Didefinisikan ti = asi mod P, dan dinyatakan dalam t = ( t1, t2, t3, ... tn ). Ambil P = {0,1)n , C = {0,1,...,n(P-1)}dan ambil K = {(s,P,a,t)}, dimana s,P,a,t dikontruksi seperti diatas, t sebagai Public, dan P,a dan s adalah secret(rahasia). Untuk K = {(s,P,a,t)}, didefinisikan • eK (x1, x2, x3, …., xn) = . x t n i i i 1 • Untuk 0 y n(P-1), Definisikan Z = a-1y mod P, dK (y) = (x1, x2, x3, …., xn ) n x s i i i 1 T Knapsack Problem Problem Instance I = 1(s,…, snn,/ 2 T), dimana s1,…,sn dan T adalah bilangan S 1 bulat { xpositif. ja j : x j S { i0 ,adalah 1} for allsizes j } dan T adalah Targetj 1Sum. Question Apakah 0-1 vektor x = (x1,…,xn) merupakan n x s i i i 1 T ? j 1 sj si i 1 Algoritma Merkle-Hellman Knapsack What we need • S = (s1,…,sn) bilangan integer superincreasing j 1 s j si i 1 n p si i 1 n • p s bilangan prima i i 1 • a, 1 ≤ a ≤ p-1 • t = a si mod p Public Key: t Private Key: si, p, a, Algoritma Merkle-Hellman Knapsack Encode: es(x1,…,xn) = n x iti i 1 Decode: z = a-1 y mod p • penyelesaian masalah subset (s1,…,sn,Z) diberlakukan untuk dK(y) = (x1,…,xn). Contoh Merkle-Hellman Knapsack Private key : s = (1,2,5,11,32,87,141) a = 200 p = 307 Plaintext (x) :SYANE MARANNU THANA Chipertext : ????? Perhitungan Public Key (t) : ti = a* si mod p Didapatkan t = (200,93,79,51,260,208,263) Plaintext : syane marannu thana Dimasukkan dalam kode ASCII x = 83 89 65 78 69 77 65 82 65 78 78 85 84 72 65 78 65 Masing – masing kode ASCII tersebut dikonversi ke biner s 83 : 1010011 y 89 : 1011001 20 a 65 : 1000001 n 78 : 1001110 11 e 8 69 : 1000101 dst… 6 5 4 Subset-sum Problem Plaintext di bagi dalam block sesuai dengan banyaknya s, pada contoh ini banyaknya s adalah 7 digit. 1010011 y = 200 + 79 + 208 + 263 = 750 1011001 y = 200 + 79 + 51 + 263 = 593 dst… Ciphertext : 750 593 dst… Dekripsi : Hitung Z Z = a-1y mod p 200-1=???? dengan algoritma extended euclidian 200-1= 1171 Untuk y = 750: Z = 241*750 mod 307 = 180750 mod 307 = 234 234 = 1*1 + 0*2 + 1*5 + 0*11 + 0*32 + 1*87 + 1*141 Plaintext 1010011 Bob Alice Creates Cryptosystem Private Key s = (1,2,5,11,32,87,141) a = 200 p = 307 Decrypts Ciphertext Plaintext: P= 1010011 Public Key t = (200,93,79,51, 260,208,263) Encryption: Using Public Key y = 200 + 79 + 208 + 263 = 750 Decryption: Z = 241*750mod 307 = 234 234 = 1*1 + 0*2 + 1*5 + 0*11 + 0*32 + 1*87 + 1*141 Plaintext: P= 1010011 Ciphertext: 750