Merkle-Hellman Knapsack Cryptosystem.

Merkle-Hellman
Knapsack
Crypt osyst em
AKIK HIDAYAT
MATEMATIKA FMIPA UNPAD

Kript osist em Merkle Hellman
Knapsack
• Merkle Hell man Knapsack pert ama kal i
dideskripsikan ol eh Merkle dan Hell man
pada t ahun 1978
• Didasarkan pada masal ah NP complet e
(Non Det erminist ic Polynomial )
• Knapsack probl em

CRYPTOGRAPHY

sj   si
j 1

i 1


Bent uk umum


Ambil s = (s1 , s2,…, sn) sembarang bilangan integer
n
superincreasing, ambil
p   si
i 1



p   si
n



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



Untuk 0  y  n(P-1), Definisikan Z = a-1y mod P, dK (y) =
(x1, x2 , x3, …. , xn )

n

i 1


i i

x s
n

i 1

i i

T

Knapsack Problem
Probl em Inst ance
I = 1(s
, …, snn,/ 2 T), dimana s1, …, sn dan T adal ah
bil angan
at xposit
{
{ i0 ,adal

1} forah allsi zes
S 1 bul
j a j : xifj . S
j } dan T
adal ah Tar getj  1Sum .
Quest ion

x s

Apakah 0-1 vekt or x = (x1, …, xn) merupakan
n

i 1

i i

T

?


sj   si
j 1

i 1

Algorit ma Merkle-Hellman Knapsack
What we need

s j   si

• S = (s1, …, sn) bilangan int eger superincreasing
j 1

p   si

i 1

n

i 1




p 

 s bilangan prima
n

i 1

i

• a, 1 ≤ a ≤ p -1
• t = a si mod p

Public Key: t
Privat e Key: si , p, a,

Algorit ma Merkle-Hellman Knapsack
Encode:

es(x 1, …, x n) =


n

i 1

x iti

Decode:
z = a-1 y mod p
• penyelesaian masalah subset ( s1, …, sn, Z)
diberlakukan unt uk d K(y) = ( x 1, …, x n).

Cont oh Merkle-Hellman Knapsack
Privat e key :
s = (1, 2, 5, 11, 32, 87, 141)
a = 200
p = 307
Pl aint ext (x) : SYANE MARANNU THANA

Chipert ext : ?????

Perhit ungan Publ ic Key (t ) :
t i = a* si mod p
Didapat kan
t = (200, 93, 79,51, 260, 208, 263)

Plaint ext :
syane marannu t hana
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 t ersebut dikonversi ke biner
s  83 : 1010011
y  89 : 1011001
a  65 : 1000001
n  78 : 1001110
11
e 8 69 : 1000101 dst …
6
5


4

Subset -sum Problem

20

Plaint ext di bagi dalam block sesuai dengan banyaknya s,
pada cont oh ini banyaknya s adalah 7 digit .
1010011 y = 200 + 79 + 208 + 263 = 750
1011001 y = 200 + 79 + 51 + 263 = 593
dst …
Ciphert ext :
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