Merkle-Hellman adalah cryptosystem asimetris-kunci, yang berarti bahwa dua kunci yang diperlukan untuk komunikasi :
sebuah kunci publik dan sebuah kunci pribadi.Selanjutnya, tidak seperti RSA, itu adalah satu arah: kunci publik hanya digunakan untuk enkripsi, dan kunci pribadi hanya digunakan untuk dekripsi. Oleh karena itu tidak dapat digunakan untuk otentikasi dengan penandatanganan kriptografi. Sistem Merkle-Hellman didasarkan pada masalah bagian sum (kasus khusus dari knapsack problem). Masalahnya adalah sebagai berikut: diberikan satu set nomor A dan sejumlah b, menemukan bagian dari A yang merangkum ke b. Secara umum, masalah ini dikenal NP-lengkap. Namun, jika himpunan bilangan (disebut ransel) adalahsuperincreasing, yang berarti bahwa setiap elemen dari himpunan lebih besar dari jumlah semua angka sebelum, masalahnya adalah "mudah" dan dipecahkan dalam waktu polinomial dengan sederhana algoritma Greedy.Contoh
Pertama, superincreasing urutan w dibuat
w = {2, 7, 11, 21, 42, 89, 180, 354}
Ini adalah dasar untuk sebuah kunci pribadi. Dari ini, menghitung jumlahnya.
Kemudian, memilih nomor q yang lebih besar dari jumlah tersebut.
q = 881
Juga, memilih nomor r yang ada di kisaran dan coprime untuk q.
r = 588
Kunci pribadi terdiri dari q, w dan r.
Untuk menghitung kunci publik, menghasilkan urutan β dengan mengalikan setiap elemen dalam w oleh r q mod
β = {295, 592, 301, 14, 28, 353, 120, 236}
karena
(2 * 588) mod 881 = 295 (7 * 588) mod 881 = 592 (11 * 588) mod 881 = 301 (21 * 588) mod 881 = 14 (42 * 588) mod 881 = 28 (89 * 588) mod 881 = 353 (180 * 588) mod 881 = 120 (354 * 588) mod 881 = 236
Urutan β membuat kunci publik.
Katakanlah Alice ingin mengenkripsi "a". Pertama, dia harus menerjemahkan "a" ke biner (dalam hal ini, menggunakan ASCII atau UTF-8 )
01100001
Dia mengalikan setiap bit masing dengan jumlah yang sesuai pada β
a = 01100001
0 * 295
+ 1 * 592
+ 1 * 301
+ 0 * 14
+ 0 * 28
+ 0 * 353
+ 0 * 120
+ 1 * 236
= 1.129
Dia mengirimkan ini ke penerima.
Untuk mendekripsi, Bob mengalikan 1129 oleh r -1 mod (Lihat terbalik Modular )
1129 * 442 mod 881 = 372
Sekarang Bob terurai 372 dengan memilih elemen terbesar di w yang kurang dari atau sama dengan 372. Kemudian memilih elemen terbesar berikutnya kurang dari atau sama dengan perbedaan, sampai perbedaan adalah :
372 - 354 = 18
18 - 11 = 7
7 - 7 = 0
Unsur-unsur yang kita dipilih dari kunci pribadi kami sesuai dengan 1 bit dalam pesan
01100001
Ketika diterjemahkan kembali dari biner, ini "a" adalah pesan didekripsi akhir.
Sumber Artikel (Wikipedia)
Comments
Post a Comment