BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA 3.1 Pengkodean Matriks Ketetanggaan Matriks ketetanggaan A adalah matriks simetri, sehingga, dengan memilih semua elemen pada diagonal utama dan elemen-elemen dibawah diagonal utama, maka akan didapatkan gambaran matiks secara keseluruhan. Karena itu, dapat ditulis sebagai suatu barisan bilangan a21a31a32a41a42a43...am(m-1)a11a22a33...amm dimana bagian pertama (a21a31a32a41a42a43...am(m-1)) berkorespondensi pada semua elemen dibawah diagonal utama, dan bagian selanjutnya (a11a22a33...amm) berkorespondensi dengan diagonal utama. Sebagai contoh perhatikan graf dan pewarnaannya pada Gambar 3. v1 warna 0 v4 warna 1 v2 warna 0 v3 warna 2 Gambar 3.1 Karena a21 a31 a32 a41 a42 a43 a11a22 a33 a44 = 0 1 1 1 0 1 0 0 2 1, diperoleh m = 0111010021. 10 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA 3.2 Pengelompokan Titik Pada Graf Terwarnai Mewarnai suatu graf G menjadi graf n-terwarnai ekivalen dengan mempartisi titik-titik pada graf G menjadi n himpunan, sedemikian sehingga setiap titik di satu himpunan tidak terhubung. Definisi 3.1 Derajat kebebasan suatu titik pada graf G untuk suatu pewarnaan tertentu adalah jumlah warna minimal yang dapat digunakan untuk mewarnai titik tersebut sehingga tidak ada dua titik yang bertetangga menggunakan warna yang sama. Setiap titik-titik pada graf G dengan χ (G ) = n dapat dikelompokkan ke dalam jenis berikut ini : 1. Titik jenis pertama Merupakan titik dengan derajat kebebasan sama dengan 1. Pada setiap kemungkinan pewarnaan graf, titik jenis pertama ini selalu memiliki derajat kebebasan yang tetap, yaitu 1. Sebagai contoh yaitu titik-titik pada graf lengkap Kn. 2. Titik jenis kedua Merupakan titik-titik dengan derajat kebebasan sama dengan y, dimana 1 < y < n ; y ∈ , pada setiap pewarnaan graf tersebut. warna-2 v2 v4 v1 v3 warna-2/3 warna-1 warna-3 Gambar 3.2 11 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA Graf G pada Gambar 3.2 diatas mempunyai titik jenis kedua, yakitu v4 dengan derajat kebebasan 2. Karena itu, matriks ketetanggaan spesial A* dari graf G diatas adalah v1 v2 v3 v4 v1 v2 1 1 1 2 1 1 1 0 v3 1 1 3 0 v4 1 0 0 2/3 3. Titik jenis ketiga Merupakan titik dengan derajat kebebasannya berubah, sesuai dengan pola pewarnaan yang diberikan. warna 1 v1 warna3 v3 warna1 v1 warna1 v3 warna 2 warna 2 v2 v2 warna 3 warna 1 v4 v6 warna 3 warna 3 v6 v4 v5 warna 1/2 v5 warna 2 (a) (b) Gambar 3.3 Pada graf diatas, titik v5 merupakan titik jenis ketiga, karena derajat kebebasan titik tersebut berubah sesuai dengan pola pewarnaan yang diberikan. Pada Gambar 3.3 (a) derajat kebebasan v5 adalah 1, sedangkan pada gambar 3.3 (b) derajat kebebasan v5 adalah 2. 12 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA Matriks ketetanggaan spesial A* dari graf diatas adalah v1 v2 v3 v4 v5 v6 v1 v2 1 1 1 2 0 1 0 1 0 0 1 1 v3 0 1 3 1 0 0 v4 0 1 1 1 1 0 v5 0 0 0 1 2 1 v6 1 1 0 0 1 3 v1 v2 v3 v4 v5 v6 v1 v2 1 1 1 2 0 1 0 1 0 0 1 1 v3 0 1 1 1 0 0 v4 v5 v6 0 0 1 1 0 1 1 0 0 3 1 0 1 1/ 2 1 0 1 3 (b) (a) 3.3 Graf Tereduksi Untuk setiap graf G, dapat dibentuk subgraf yang hanya terdiri atas titik-titik jenis pertama. Untuk setiap subgraf , kita dapat memperoleh himpunan titik minimal yang menentukan n-terwarnai dari subgraf tersebut. Oleh karena itu, titik-titik ini dapat direduksi menjadi himpunan yang lebih kecil. Struktur (bagian) dari graf yang tereduksi merupakan sebuah himpunan titik jenis pertama minimal yang menentukan n-terwarnai pada graf terhubung yang dibentuk oleh titik-titik jenis pertama. warna 3 v4 warna 1 v1 warna 1 v1 v3 v6 warna 2 warna 3 warna 2 v2 warna 2 v2 direduksi menjadi v3 warna 3 v5 warna 1 Gambar 3.4 13 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA 3.4 Menetukan Rahasia (encoding) dari Graf Terwarnai Graf yang akan digunakan dalam membentuk skema pembagian rahasia yang diinginkan adalah graf yang terdiri atas titik jenis pertama dan kedua. Dengan menentukan suatu pewarnaan-n dari graf tersebut, diperoleh n himpunan titik dimana titik-titik dalam satu himpunan tidak terhubung. Terdapat dua bagian terpisah dari rahasia yang dapat dibagi, yaitu bagian yang dibentuk oleh titik-titik jenis pertama dan bagian yang dibentuk oleh titik-titik jenis kedua. Jika hanya satu bagian yang diketahui, maka sisanya masih tetap merupakan suatu rahasia, meskipun peluang untuk memecahkan rahasia tersebut akan semakin besar. 3.4.1 Membagi titik-titik jenis pertama Sebagai langkah awal, tentukan bagian tereduksi untuk titik-titik jenis pertama dari graf G. Masing-masing titik vi , i = 1, 2,..., n dari bagian tereduksi ditandai dengan warna s dimana s ∈ k , k > χ ( G ) = n . Tentu, hanya n buah dari k warna yang dapat digunakan. Dalam hal ini, rahasia yang akan dibagi menggunakan satu ⎛k ⎞ dari ⎜ ⎟ n ! pola pewarnaan yang mungkin. ⎝n⎠ Bagian tereduksi dapat dituliskan dalam bentuk suatu vektor dari n bilangan, S n = {s1 , s2 ,..., sn } dimana s j ∈ k , j = 1, 2,..., n adalah warna-warna yang digunakan untuk mewarnai titik-titik pada bagian tereduksi, titik-titik ditulis berurutan sesuai dengan indeks i. Algoritma 1: Enkripsi titik-titik jenis pertama. 1. Diketahui pewarnaan-n titik dari graf G 2. Tentukan bagian tereduksi untuk titik-titik jenis pertama dari graf G. 3. Susun warna-warna yang digunakan secara berurutan sesuai dengan bilangan asli . Kemudian, nomori dengan bilangan dari himpunan 14 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA {0,1,..., n − 1} . Ini dilakukan mulai dari elemen terkecil pada himpunan ⎛k ⎞ ⎜ ⎟ kombinasi warna yang digunakan. Dengan demikian, ⎝n⎠ diperoleh pemetaan dari k ke n . 4. Selesai. 3.4.2 Membagi titik-titik jenis kedua Jika pola pewarnaan titik-titik jenis kedua (satu bagian dari rahasia) diketahui, maka n warna yang digunakan dari k warna yang tersedia dapat diketahui. Untuk menghindari ini, warna-warna dari k harus digantikan oleh warna-warna dari n . Ini dilakukan dengan menggunakan pemetaan k pada n yang diperoleh untuk titik jenis pertama sebelumnya. Untuk titik-titik jenis kedua, definisikan: a. ni adalah jumlah warna yang tidak boleh digunakan oleh titik tertentu vi . Ini ditentukan dengan memeriksa titik-titik jenis pertama yang bertetangga dengan vi . Dengan jelas, setiap warna yang digunakan untuk menandai setiap titik yang bertetangga dengan vi tidak terdapat pada daftar warna yang tersedia. b. li adalah banyaknya warna yang tersedia untuk mewarnai titik-titik vi , li = n − ni c. li = {0,1, 2,..., li − 1} d. Ci adalah himpunan li warna dari n yang tersedia untuk titik vi . e. w adalah banyaknya titik-titik jenis kedua di graf G. Sesuai dengan kenyataan bahwa graf G adalah n-terwarnai dengan menggunakan warna-warna di n , maka masing-masing titik vi telah diwarnai oleh salah satu 15 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA warna dari Ci . Catat bahwa Ci = li sehingga pemetaan satu-satu antara li dan Ci dapat didefinisikan. Algoritma 2: pemetaan satu-satu antara li dan Ci . Untuk setiap titik jenis kedua vi lakukan: 1. Susun elemen dari li dan Ci secara monoton naik sesuai dengan bilangan asli . 2. Setelah elemen di li dan Ci disusun, mereka dapat dilabeli (enumerated). Ini dilakukan dengan diawali dari elemen terkecil di Ci dan menggunakan bilangan berurutan dari {0,1, 2,..., li − 1} untuk menyusun elemen Ci secara berurutan. 3. Dengan melakukan langkah 2, pemetaan antara Ci dan {0,1, 2,..., li − 1} diketahui, sehingga pemetaan antara Ci dan li juga diketahui. Kemudian masing-masing titik vi dapat dapat diwarnai oleh warna-warna dari li . 4. Selesai. Perhatikan bahwa sebuah warna yang digunakan untuk mewarnai titik-titik jenis kedua tertentu vi , dapat dikodekan dengan sebarang bilangan dari li dengan peluang yang sama. Sehingga, titik jenis kedua yang diwarnai dengan menggunakan li tidak memberikan informasi tentang pengkodean n untuk graf G. Sebagaimana yang disampaikan sebelumnya, jika satu bagian dari rahasia diketahui, maka sisanya masih tetap merupakan suatu rahasia. Akan tetapi, peluang untuk memecahkan rahasia tersebut akan semakin besar. Berikut akan dibahas besarnya kemungkinan seseorang dapat mengetahui rahasia secara keseluruhan ketika salah satu bagiannya (pola pewarnaan untuk salah satu jenis titik) diketahui. 16 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA 1. Jika informasi rahasia untuk titik jenis kedua ditemukan, maka terdapat ⎛k ⎞ setidaknya ⎜ ⎟ n ! kemungkinan pola pewarnaan untuk titik jenis pertama. ⎝n⎠ Hal ini disebabkan karena tidak ada informasi tentang pemilihan n warna dari k warna yang tersedia untuk graf G yang dapat diambil dari pola pewarnaan titik jenis kedua yang diketahui. 2. Jika informasi rahasia untuk titik jenis pertama diketahui, maka terdapat n ∏ a kemungkinan pola pewarnaan titik jenis kedua, dimana a i =1 i i = li untuk titik jenis kedua dan ai = 1 untuk lainnya. Dengan mengetahui pola pewarnaan titik jenis pertama seseorang dapat menentukan warna-warna yang dapat digunakan oleh masing-masing titik jenis kedua, tapi tidak ada informasi tentang warna mana yang dipilih. Berikut ini akan diberikan contoh mengenkripsi pola pewarnaan dari suatu graf. Graf 3-terwarnai dengan warna-warna yang digunakan berasal dari 10 5 v1 2 v2 2 v3 5 v4 5 v6 6 v7 5 v8 6 v5 matriks v1 v1 5 v2 0 v3 1 v4 0 v5 0 v6 0 v7 0 v8 0 A* v2 0 2 0 1 0 0 0 0 v3 1 0 2 1 0 1 1 0 v4 0 1 1 5 1 0 1 0 v5 0 0 0 1 6 0 0 0 v6 0 0 1 0 0 5 1 0 v7 0 0 1 1 0 1 6 1 v8 0 0 0 0 0 0 1 5 Gambar 3.5 Matriks A* memberikan barisan 010011000100100001101000000152256565. 17 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA Langkah 1. Titik-titik jenis pertama: v3, v4, v6, v7 memberikan bentuk tereduksi v3, v4, v7. pemetaan 10 pada 3 didefinisikan sebagai v3 = 0, v4 = 1, v7 = 2 (semuanya dari 3 ), mengakibatkan 2 → 0,5 → 1, 6 → 2 . Sehingga pengkodean 3 untuk graf G adalah v3v4 v7 → 012 . Langkah 2. Titik jenis kedua: v1, v2, v5, v8, penempatan warna dari 10 ke 3 adalah v1 = 5 → 1, v2 = 2 → 0, v5 = 6 → 2, v8 = 5 → 1 . Karena itu, v1v2 v 5 v8 berkorespondensi dengan 1021 di pengkodean 3 . Himpunan bilangan anggota 3 yang tidak boleh digunakan oleh masing-masing titik adalah v1 {0} , v2 {1} , v5 {1} , v8 {2} . Himpunan bilangan anggota 3 yang dapat digunakan oleh masing-masing titik adalah v1 ∈ C1 = {1, 2} , v2 ∈ C2 = {0, 2} , v5 ∈ C5 = {0, 2} , v8 ∈ C8 = {0,1} . Pada contoh ini l i = 2 untuk masing-masing titik v1, v2, v5, v8 sehingga l i = 2 . Langkah 3. • Pemetaan 3 → 2 untuk v1 mendefinisikan 2 untuk v2 {1, 2} → {0,1} sehingga 1 → 0, 2 → 1 , • Pemetaan 3 → dan v5 mendefinisikan {0, 2} → {0,1} sehingga 0 → 0, 2 → 1 , • Pemetaan 3 → 2 untuk v8 mendefinisikan {0,1} → {0,1} sehingga 0 → 0,1 → 1 . Akhirnya, v1v2 v 5 v8 berkorespondensi dengan 0011 dalam pengkodean 2 . Oleh karenanya, untuk graf G yang diketahui diatas, rahasia yang akan dibagi adalah 18 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA 0011256, dengan 0011 berkorespondensi dengan titik-titik jenis kedua dan 256 berkorespondensi dengan titik-titik jenis pertama. Banyaknya cara yang harus dilakukan seseorang untuk mengetahui rahasia secara keseluruhan ketika salah satu bagiannya diketahui adalah: ⎛10 ⎞ Kasus I ⎜ ⎟ 3! = 6! = 720 ⎝3⎠ Kasus II, terdapat empat titik jenis kedua v1, v2, v5, v8 dengan l i = 2 untuk setiap 8 titik, sehingga ∏a i =1 i = 24 = 16 . Pada kedua kasus tersebut, banyaknya cara yang harus dilakukan seseorang untuk mengetahui rahasia tidak terlihat terlalu mengesankan. Akan tetapi, pada kasus secara umum nilai tersebut dapat diperbesar sesuai dengan banyaknya warna serta graf yang digunakan. 3.5 Pembuatan Skema Pembagian Rahasia Rahasia yang akan dibagi dengan menggunakan skema pembagian rahasia merupakan pola pewarnaan dari graf yang telah dienkripsi sebelumnya. Sebagaimana yang telah disampaikan pada bab sebelumnya, skema pembagian rahasia yang akan digunakan adalah KGH (Karnen-Greene-Hellman). Pada metode KGH ini, rahasia yang akan dibagi merupakan suatu vektor dengan panjang η. Berdasarkan proses enkripsi yang telah dilakukan sebelumnya, vektor rahasia yang akan kita bagi pada kasus ini diperoleh dari titik-titik jenis kedua serta titiktitik pada bagian tereduksi dari graf. Panjang vektor rahasia, η, merupakan jumlah titik-titik jenis kedua dan titik-titik tereduksi tersebut. Share yang akan dibagikan kepada partisipan adalah vektor dengan panjang yang sama dengan vektor rahasia 19 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA dimana elemen-elemennya merupakan anggota himpunan k dengan k merupakan bilangan yang lebih besar dari elemen terbesar pada vektor rahasia. Misalkan banyaknya partisipan yang akan memperoleh share adalah t. Untuk t-1 buah share dapat diperoleh dengan membentuk vektor panjang η yang elemenelemennya anggota k secara acak. Sedangkan untuk share yang ke t dapat diperoleh dengan mengurangi vektor rahasia dengan jumlah t-1 buah share yang telah ada dalam modulo k. Untuk contoh yang dibahas sebelumnya, vektor rahasia yang diperoleh adalah S = ( 0, 0,1,1, 2,5, 6 ) . Dapat dipilih nilai k = 9 > max ( 0, 0,1,1, 2,5, 6 ) . Misalkan banyaknya pertisipan yang akan memperoleh share adalah t = 10, maka S1 =(1,2,6,2,1,3,3), S2 =(0,4,0,7,0,2,8), S3 =(3,6,2,6,7,6,2), S4 =(1,2,4,2,7,2,4), S5 =(1,7,2,6,8,4,7), S6 =(7,0,1,1,4,0,5), S7 =(0,6,5,6,6,5,1), S8 =(6,4,3,7,8,4,1), S9 =(6,5,8,5,8,2,6), S10 =(2,0,6,4,7,4,5), dapat menjadi salah satu skema pembagian rahasia KGH, kerena jumlah dari semua vektor tersebut dalam 9 adalah S = ( 0, 0,1,1, 2,5, 6 ) . 3.6 Proses Memecahkan Rahasia (decoding) Untuk memecahkan rahasia, algoritma dibawah ini dapat diterapkan. Algoritma 3 : memecahkan rahasia 1. Partisipan yang berhak mengetahui rahasia mengumpulkan share mereka, sehingga rahasia dari graf G (0011256 untuk contoh diatas) diketahui. 2. Rahasia digunakan untuk: a. menetapkan warna-warna dari k untuk bagian tereduksi. Ini juga dapat memberikan pola pewarnaan dengan menggunakan n (ingat bahwa kedua himpunan berurutan sesuai bilangan asli). 20 BAB III PEMBENTUKAN SKEMA PEMBAGIAN RAHASIA b. Setelah pola pewarnaan bagian tereduksi diketahui, pola pewarnaan semua titik jenis pertama diketahui. c. Tetapkan warna-warna dari li untuk titik-titik jenis kedua. 3. Dengan menggunakan pola pewarnaan pada titik jenis pertama, Ci untuk setiap titik jenis kedua dapat diketahui. 4. Untuk masing-masing titik jenis kedua, tentukan warna n nya, dengan menggunakan li dan Ci. Ingat bahwa keduanya terurut sesuai dengan bilangan asli. 5. Untuk setiap titik jenis kedua, periksa pemetaan k → n dan warna- warna yang digunakan yang berasal dari k . Dengan menjalani prosedur secara lengkap, rahasia dapat diketahui.. 21