Kriptosistem Merkle HellmanKnapsack
• Merkle Hellman Knapsack pertama kali dideskripsikan oleh Merkle dan Hellmanpada tahun 1978
• Didasarkan pada masalah NP complete (Non Deterministic Polynomial)
• Knapsack problem
Bentuk umum
1
1
j
isisj
• Ambil s = (s1,s2,…,sn) sembarang bilangan integer superincreasing, ambil
• 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 sepertidiatas, t sebagai Public, dan P,a dan s adalahsecret(rahasia). Untuk K = {(s,P,a,t)}, didefinisikan
• eK (x1, x2, x3, …., xn) = .
• Untuk 0 y n(P-1), Definisikan Z = a-1y mod P, dK (y) = (x1, x2, x3, …., xn )
n
iisp
1
n
iisp
1
n
iisp
1
n
iiitx
1
Knapsack ProblemTsx
n
iii
1
} allfor }1,0{ {2/
1:1 jxaxS j
n
jjj
Problem Instance
I = (s1,…, sn, T), dimana s1,…,sn dan T adalahbilangan bulat positif. Si adalah sizes dan T adalah Target Sum.
Question
Apakah 0-1 vektor x = (x1,…,xn) merupakan
?Tsxn
iii
1
Public Key: t Private Key: si, p, a,
Algoritma Merkle-Hellman Knapsack
1
1
j
isisj
What we need• S = (s1,…,sn) bilangan integer superincreasing
• bilangan prima
• a, 1 ≤ a ≤ p-1
• t = a si mod p
1
1
j
iij ss
n
iisp
1
n
iisp
1
n
iisp
1
Encode:es(x1,…,xn) =
Decode:z = a-1 y mod p
• penyelesaian masalah subset (s1,…,sn,Z) diberlakukan untuk dK(y) = (x1,…,xn).
Algoritma Merkle-Hellman Knapsack
n
iii tx
1
Private key :s = (1,2,5,11,32,87,141)a = 200p = 307
Plaintext (x) :SYANE MARANNU THANA
Chipertext : ?????
Contoh Merkle-Hellman Knapsack
Subset-sum Problem
58
4
11
6
20
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 biners 83 : 1010011y 89 : 1011001a 65 : 1000001n 78 : 1001110e 69 : 1000101 dst…
Plaintext di bagi dalam block sesuai dengan banyaknya s, pada contoh ini banyaknya s adalah 7 digit.
1010011 y = 200 + 79 + 208 + 263 = 7501011001 y = 200 + 79 + 51 + 263 = 593dst…
Ciphertext :750 593 dst…
Dekripsi :
Hitung ZZ = a-1y mod p
200-1=???? dengan algoritma extended euclidian200-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
Alice Bob
Private Keys = (1,2,5,11,32,87,141)a = 200p = 307
Public Keyt = (200,93,79,51,
260,208,263)
Creates Cryptosystem Plaintext:
P= 1010011
Encryption:Using Public Key
y = 200 + 79 + 208 + 263 = 750
Ciphertext:750
Decryption:Z = 241*750mod 307
= 234234 = 1*1 + 0*2 + 1*5 + 0*11 + 0*32 + 1*87 + 1*141
DecryptsCiphertext
Plaintext:P= 1010011