Merkle-Hellman
Knapsack
Crypt osyst em
AKIK HIDAYAT
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 )
Bent uk umum
1 1 j i si sj• Ambil s = (s1 , s2,…, sn) se mbarang bilangan int eger superincreasing, ambil
• bilangan prima, dan ambil 1 a P
• unt uk 1 i n.
• Didefinisikan t i = asi mod P, dan dinyat akan dalam t = ( t 1, t 2, t 3, . . . t n ). Ambil P = {0, 1)n , C = {0 , 1, . . . , n(P-1)}dan ambil K = {(s, P, a, t)} , dimana s, P, a, t dikont ruksi sepert i diat as, t se bagai Public, dan P, a dan s adalah
secret (rahasia). Unt uk K = {(s, P, a, t )}, didefinisikan
• eK (x1 , x2, x3 , …. , xn) = .
• Unt uk 0 y n(P-1), Definisikan Z = a-1y mod P, dK (y) = (x1, x2 , x3, …. , xn )
n i i s p 1 n i i s p 1
n i i s p 1n i
i it
x
Knapsack Problem
T s x n i i i 1
}
all
for
}
1
,
0
{
{
2 / 1 :1
x
a
x
j
S
j n j j j
Probl em Inst ance
I = (s
1, …, s
n, T), dimana s
1, …, s
ndan T adal ah
bil angan bul at posit i f . S
iadal ah
si zes dan T
adal ah
Tar get Sum.
Quest ion
Apakah 0-1 vekt or x = (x1, …, xn) merupakan
?
T
s
x
n i i i
Public Key
:
tPrivat e Key
: s
i, p, a,
Algorit ma Merkle-Hellman Knapsack
1 1 j i si sj
What we need
• S = ( s1, …, sn) bi langan i nt eger superi ncreasi ng
• bi langan pri ma
• a, 1
≤
a≤
p-1• t = a si mod p
Encode
:
es(x1, …, xn) =
Decode
:
z = a
-1y mod p
• penyelesai an masalah subset (s1, …, sn, Z)
di berlakukan unt uk dK(y) = (x1, …, xn).
Algorit ma Merkle-Hellman Knapsack
i nx
it
iPrivat e key :
s = (1, 2, 5, 11, 32, 87, 141)
a = 200
p = 307
Pl aint ext (x) : SYANE MARANNU T HANA
Chipert ext : ?????
Perhit ungan Publ ic Key (t ) :
t
i= a* s
imod p
Didapat kan
Subset -sum Pr oblem
5
8
4
11
6
20
Plai nt ext :
syane marannu t hana
Di masukkan dalam kode ASCII
x = 83 89 65 78 69 77 65 82 65 78 78 85 84 72 65 78 65
Masi ng – masi ng kode ASCII t ersebut di konversi ke bi ner s
83 : 1010011y
89 : 1011001a
65 : 1000001n
78 : 1001110Plai nt ext di bagi dalam block sesuai dengan banyaknya s, pada cont oh i ni banyaknya s adalah 7 di gi t .
1010011
y = 200 + 79 + 208 + 263 = 7501011001
y = 200 + 79 + 51 + 263 = 593dst …
Ci phert ext :
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
Alice Bob
Private Key
s = (1,2,5,11,32,87,141) a = 200
p = 307
Public Key t = (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 = 234
234 = 1*1 + 0*2 + 1*5 + 0*11 + 0*32 + 1*87 + 1*141
Decrypts Ciphertext