cara cari yg lain

31
persyaratan yang diperlukan. Attribute-based cryptography pertama kali muncul berupa skema enkripsi berbasis atribut (attribute-based encryption scheme /ABE), yang merupakan sebuah pengembangan dari fuzzy identity-based cryptosystem. Kemudian, ide dari ABE dikembangkan lagi oleh para ahli untuk mengurangi panjang dari ciphertext- nya. Setelah itu, para ahli memperkenalkan attribute-based signature (ABS), yang berhubungan dengan ide dari threshold ring signature atau mesh signature, tetapi jauh lebih fleksibel dan bervariasi dalam mendesain sistem kompleks yang aman, karena signature tidak hanya terhubung ke user sendiri, tetapi juga pada atributnya. Konsekuensinya, signature ini memiliki banyak penerapan seperti private access control, anonymous credential, trust negotiation, distributed access control mechanism untuk adhoc network, attribute-based messaging, dan sebagainya. Pada tahun 2012, Herranz, et. al. memperkenalkan sebuah skema short attribute-based signature untuk threshold predicate yang memiliki dua versi skema, dimana versi pertama mendukung threshold predicate untuk atribut berukuran kecil dan versi kedua untuk atribut berukuran besar (Herranz, et. al., 2012). Oleh karena itu, penulis tertarik untuk membahas dan mempelajari proses kerja dari skema tersebut dan sekaligus merancang proses penerapan dari skema tersebut dalam melakukan pengiriman pesan rahasia pada 1

Upload: afief-d-renz-chidori

Post on 26-Sep-2015

32 views

Category:

Documents


0 download

DESCRIPTION

ini hanya sekedar prcobaan

TRANSCRIPT

BAB III

PAGE

persyaratan yang diperlukan. Attribute-based cryptography pertama kali muncul berupa skema enkripsi berbasis atribut (attribute-based encryption scheme /ABE), yang merupakan sebuah pengembangan dari fuzzy identity-based cryptosystem. Kemudian, ide dari ABE dikembangkan lagi oleh para ahli untuk mengurangi panjang dari ciphertext-nya. Setelah itu, para ahli memperkenalkan attribute-based signature (ABS), yang berhubungan dengan ide dari threshold ring signature atau mesh signature, tetapi jauh lebih fleksibel dan bervariasi dalam mendesain sistem kompleks yang aman, karena signature tidak hanya terhubung ke user sendiri, tetapi juga pada atributnya. Konsekuensinya, signature ini memiliki banyak penerapan seperti private access control, anonymous credential, trust negotiation, distributed access control mechanism untuk adhoc network, attribute-based messaging, dan sebagainya. Pada tahun 2012, Herranz, et. al. memperkenalkan sebuah skema short attribute-based signature untuk threshold predicate yang memiliki dua versi skema, dimana versi pertama mendukung threshold predicate untuk atribut berukuran kecil dan versi kedua untuk atribut berukuran besar (Herranz, et. al., 2012).Oleh karena itu, penulis tertarik untuk membahas dan mempelajari proses kerja dari skema tersebut dan sekaligus merancang proses penerapan dari skema tersebut dalam melakukan pengiriman pesan rahasia pada jaringan komputer, sehingga dapat digunakan bahan pembelajaran mengenai proses implementasi skema secara praktikal, dengan mengambil tugas akhir yang berjudul Implementasi Skema Short Attribute-Based Signature untuk Proses Komunikasi pada Jaringan Komputer.1.2Rumusan Masalah

Berdasarkan uraian latar belakang pemilihan judul di atas, maka permasalahan dalam penyusunan tugas akhir ini adalah bahwa tanda tangan digital (digital signature) konvensional tidak mendukung sifat anonim untuk signer.1.3Tujuan dan Manfaat

Tujuan penyusunan Tugas akhir ini adalah untuk menunjukkan proses implementasi dari skema Short Attribute-Based Signature sekaligus melakukan proses pengujian terhadap berbagai kemungkinan yang dapat terjadi.

Manfaat dari penyusunan Tugas akhir ini, yaitu:a. Perangkat lunak dapat dijadikan sebagai pengembangan sebuah sistem yang menerapkan skema Short Attribute-Based Signature.

b. Analisis terhadap hasil implementasi dapat digunakan untuk mengetahui ketangguhan dari skema Short Attribute-Based Signature dalam menangani kemungkinan-kemungkinan yang dapat terjadi dalam proses penerapan skema.1.4Batasan MasalahPembatasan dari penelitian ini dapat dirincikan sebagai berikut:

a. Skema Short Attribute-Based Signature yang dibahas adalah skema versi pertama yang mendukung threshold predicate untuk atribut berukuran kecilb. Pesan input bertipe data string (mencakup angka, karakter dan simbol-simbol), yaitu mencakup semua karakter ASCII yang ada di keyboard.

c. Untuk bagian tutorial, panjang pesan dibatasi maksimal 100 karakter. Pembatasan panjang pesan ini dilakukan untuk mempermudah proses pemahaman terhadap prosedur kerja dari skema. Sementara itu, untuk bagian implementasi, tidak ada pembatasan panjang pesan.

d. Untuk bagian tutorial, semua bilangan yang digunakan dalam perangkat lunak bertipe data bilangan bulat positif dengan panjang minimal 2 digit dan maksimal 4 digit, dengan pertimbangan bahwa nilai kunci yang terlalu besar akan mempersulit proses pemahaman terhadap prosedur kerja dari skema.e. Jumlah signer dibatasi minimal 2 dan maksimal 10, dengan pertimbangan bahwa jumlah signer yang terlalu besar akan meningkatkan tingkat kerumitan dari perhitungan sehingga susah untuk dipahami.

1.5Metodologi Penelitian

Langkah langkah penyusunan tugas akhir ini antara lain:

1. Mengumpulkan dan mempelajari materi yang berhubungan dengan topik dari buku dan Internet.

2. Mempelajari proses kerja dari skema dengan menggunakan alat bantu berupa activity diagram.3. Mengembangkan perangkat lunak (sistem) yang terdiri dari langkah-langkah :a. Memodelkan fungsi yang terdapat pada sistem dengan menggunakan use case diagram.

b. Merancang tampilan interface dari perangkat lunak.

c. Mengimplementasikan aplikasi dengan menggunakan bahasa pemrograman Microsoft Visual C#.

d. Memperbaiki kesalahan yang terdapat pada program.

4. Melakukan pengujian yang mencakup :

a. Mengubah isi pesan dan memverifikasi Short Attribute-Based Signature yang terdapat pada pesan tersebut, kemudian melihat hasil verifikasi yang diperoleh.

b. Mengubah signature yang dihasilkan oleh Short Attribute-Based Signature dan memverifikasi Short Attribute-Based Signature tersebut, kemudian melihat hasil verifikasi yang diperoleh.

5. Menarik kesimpulan berdasarkan hasil pengujian yang dilakukan.6. Menyusun laporan tugas akhir.

1.6Tinjauan Pustaka1.6.1.KriptografiKata kriptografi (cryptography) berasal dari bahasa Yunani, yaitu kriptos yang artinya secret (rahasia), dan graphein, yang artinya writing (tulisan). Jadi, kriptografi berarti secret writing (tulisan rahasia). Ada beberapa definisi kriptografi yang telah dikemukakan di dalam berbagai literatur. Definisi yang dipakai di dalam buku-buku yang lama (sebelum tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Definisi ini mungkin cocok pada masa lalu di mana kriptografi digunakan untuk keamanan komunikasi penting seperti komunikasi di kalangan militer, diplomat dan mata-mata. Namun saat ini kriptografi lebih dari sekadar privacy, tetapi juga untuk tujuan data integrity, authentication, dan non-repudiation.

Definisi kriptografi yang dikemukakan di dalam Applied Cryptography, yaitu: Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (cryptography is the art and science of keeping messages secure).

Sebagai pembanding, selain definisi tersebut di atas, terdapat pula definisi lainnnya yaitu:

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data serta otentikasi.

Kata seni di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan. (Munir, 2006)1.6.2.Sistem KriptografiKriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptographic system atau cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi, semua plaintext dan ciphertext yang mungkin dan kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen saja. (Munir, 2006)

Ada dua jenis cryptosystem, yakni : public-key cryptography dan secret-key cryptography. Dalam secret-key cryptography, kunci yang sama digunakan pada saat enkripsi maupun dekripsi. Sedangkan dalam public-key cryptography, masing-masing user memiliki satu public-key (kunci umum) dan satu private-key (kunci rahasia). Kunci publik dapat diumumkan (dibuat publik) tetapi kunci rahasia tetap dirahasiakan. Enkripsi dilakukan dengan menggunakan kunci publik sedangkan dekripsi dilakukan dengan mengunakan kunci rahasia.

1.6.2.1. Algoritma SimetrisAlgoritma simetris, yang kadang-kadang disebut algoritma konvensional, adalah algoritma dimana kunci enkripsi dapat dikalkulasi dari kunci dekripsi dan demikian juga sebaliknya. Pada kebanyakan algoritma simetris, kunci enkripsi dan kunci dekripsi adalah sama. Algoritma ini, yang juga disebut sebagai algoritma kunci rahasia (secret-key algorithm), algoritma kunci tunggal (single-key algorithm) atau algoritma satu kunci (one-key algorithm), memerlukan pengirim dan penerima untuk setuju (sepakat) pada sebuah kunci sebelum mereka dapat berkomunikasi secara aman. Sekuritas dari algoritma ini tergantung sepenuhnya pada kunci, sehingga membocorkan atau memberitahukan kunci kepada orang lain berarti bahwa orang tersebut dapat melakukan proses enkripsi dan dekripsi terhadap suatu pesan.

Proses enkripsi dan dekripsi dengan sebuah algoritma simetris dapat didenotasikan sebagai berikut:

EK(M) = C

DK(C) = M

(Schneier, 1996)

Ilustrasi dari algoritma kunci-simetris ini dapat dilihat pada gambar 2.3:

Gambar 1. Ilustrasi Algoritma Kunci Simetris

Sumber : Schneier, 1996Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini baik pengirim maupun penerima memiliki kunci yang sama. Algoritma kunci-simetri modern beroperasi dalam mode bit dan dapat dikelompokkan menjadi dua kategori:

1. Cipher aliran (stream cipher)

Algoritma kriptografi beroperasi pada plaintext / ciphertext dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan / didekripsikan bit per bit. Cipher aliran mengenkripsi satu bit setiap kali.

2. Cipher blok (block cipher)

Algoritma kriptografi beroperasi pada plaintext / ciphertext dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memperlakukan 8 karakter setiap kali enkripsi (1 karakter = 8 bit dalam pengkodean ASCII). Cipher blok mengenkripsi satu blok bit setiap kali. (Munir, 2006)

1.6.2.2. Algoritma AsimetrisAlgoritma kunci publik (sering juga disebut sebagai algoritma asimetris) didesain sedemikian sehingga kunci yang digunakan untuk proses enkripsi berbeda dengan kunci yang digunakan untuk proses dekripsi. Lebih lanjut lagi, kunci dekripsi tidak dapat (paling tidak dalam jangka waktu yang masuk akal) dikalkulasi dari kunci enkripsi.

Algoritma ini disebut kunci publik (public-key) karena kunci enkripsi dipublikasikan. Orang lain dapat menggunakan kunci enkripsi untuk mengenkripsi pesan, tetapi hanya orang tertentu yang memiliki kunci dekripsi dapat mendekripsi pesan. Pada sistem ini, kunci enkripsi sering disebut kunci publik dan kunci dekripsi disebut kunci privat.

Proses enkripsi dengan menggunakan kunci publik K dapat didenotasikan sebagai:

EK(M) = C

Sekalipun kunci publik dan kunci privat berbeda, proses dekripsi dengan kunci privat yang berkoresponden dapat didenotasikan sebagai:

DK(C) = M

Ilustrasi dari algoritma kunci-asimetris ini dapat dilihat pada gambar 2.4:

Gambar 2. Ilustrasi Algoritma Kunci Asimetris

Sumber : Schneier, 1996

Kadang-kadang, pesan akan dienkripsi dengan menggunakan kunci privat dan didekripsi dengan menggunakan kunci publik, hal ini digunakan pada tanda tangan digital (digital signature). (Schneier, 1996)1.6.3.Tanda Tangan Digital (Digital Signature)

Sejak berabad-abad lamanya, tanda tangan digunakan untuk membuktikan otentikasi dokumen kertas (misalnya surat, piagram, ijazah, buku, karya seni, dan sebagainya). Tanda tangan mempunyai karakteristik sebagai berikut:

1. Tanda tangan adalah bukti yang otentik.

2. Tanda tangan tidak dapat dilupakan.

3. Tanda tangan tidak dapat dipindah untuk digunakan ulang.

4. Dokumen yang telah ditandatangani tidak dapat diubah.

5. Tanda tangan tidak dapat disangkal (non-repudiation).

Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk otentikasi pada data digital seperti pesan yang dikirim melalui saluran komunikasi dan dokumen elektronis yang disimpan di dalam memori komputer. Tanda tangan pada data digital ini dinamakan tanda tangan digital (digital signature). Yang dimaksud dengan tanda tangan digital bukanlah tanda tangan yang di-digitisasi dengan alat scanner, tetapi suatu nilai kriptografis yang bergantung pada pesan dan pengirim pesan. Dengan tanda tangan digital, maka integritas data dapat dijamin, disamping itu ia juga digunakan untuk membuktikan asal pesan (kebsahan pengirim) dan nirpenyangkalan.

Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara:

1. Enkripsi pesan

Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan yang terenkripsi sudah menyatakan bahwa pesan tersebut telah ditandatangani.

2. Tanda tangan digital dengan fungsi hash (hash function)

Tanda tangan digital dibangkitkan dari hash terhadap pesan. Nilai hash adalah kode ringkas dari pesan. Tanda tangan digital berlaku seperti tanda tangan pada dokumen kertas. Tanda tangan digital ditambahkan (append) pada pesan. (Munir, 2006)1.6.4.Sifat yang Dimiliki oleh Tanda Tangan DigitalSifat yang diinginkan dari tanda tangan digital diantaranya adalah :

1 Tanda tangan itu asli (otentik), tidak mudah ditulis/ditiru oleh orang lain. Pesan dan tanda tangan pesan tersebut juga dapat menjadi barang bukti, sehingga penandatangan tak bisa menyangkal bahwa dulu ia pernah menandatanganinya. Autentikasi sangat diperlukan dalam berkomunikasi di Internet, harus dipastikan bahwa memang benar si A yang telah mengirimkan suatu informasi elektronik, bukan si B yang mengaku menjadi si A. Hal ini menjadi penting sebab pertanggungjawaban suatu subjek hukum tergantung kepada kejelasan identitasnya. Kebutuhan akan autentikasi ini dapat tercapai dengan menggunakan sertifikat digital.2 Tanda tangan itu hanya sah untuk dokumen (pesan) itu saja. Tanda tangan itu tidak bisa dipindahkan dari suatu dokumen ke dokumen lainnya. Ini juga berarti bahwa jika dokumen itu diubah, maka tanda tangan digital dari pesan tersebut tidak lagi sah.3 Tanda tangan itu dapat diperiksa dengan mudah.4 Tanda tangan itu dapat diperiksa oleh pihak-pihak yang belum pernah bertemu dengan penandatangan.5 Tanda tangan itu juga sah untuk copy dari dokumen yang sama persis.Tanda tangan digital dalam banyak hal mirip dengan tanda tangan biasa. Ada beberapa fungsi dari tandatangan digital yaitu :

1. Untuk memverifikasi pembuat pesan serta waktu ditandatanganinya pesan tersebut.

2. Untuk mengotentikasi isi pesan pada waktu ditandatangani pesan tersebut.

3. Harus bisa diverifikasi oleh pihak ketiga untuk menyelesaikan perselisihan mengenai integritas dan sumber pesan. (Schneier, 1996)

1.6.5.Persyaratan Tanda Tangan DigitalDari fungsi-fungsi di atas maka dapat disusun persyaratan-persyaratan yang harus dipenuhi oleh sebuah tanda tangan digital yaitu (Stalling, 1995) :

1. Tanda tangan tersebut haruslah berupa pola bit yang tergantung pada pesan yang ditandatangani.

2. Tanda tangan tersebut harus menggunakan beberapa informasi yang menunjukkan pengirimnya, baik untuk mencegah pemalsuan pesan atau pengingkaran.

3. Relatif mudah untuk mengenali dan memverifikasi tanda tangan digital.

4. Tidak bisa secara komputasi untuk memalsukan sebuah tanda tangan digital, baik dengan mengkonstruksi sebuah pesan baru dari tanda tangan digital yang ada ataupun dengan mengkonstruksi sebuah tanda tangan digital dengan menggunakan pesan yang diberikan.

5. Duplikat tanda tangan digital tersebut mudah disimpan.

Persyaratan-persyaratan di atas dapat dipenuhi dengan mengkombinasikan fungsi hash dengan enkripsi public-key. Jadi setelah pengirim pesan A menambahkan nilai hash dari pesan tersebut, selanjutnya nilai hash itu akan dienkripsi dengan menggunakan kunci pribadi pengirim dan kemudian mengirimkan pesan itu kepada B. B kemudian mendekripsi nilai hash tersebut dengan menggunakan kunci publik A. Karena hanya A yang bisa mengenkripsi nilai hash tersebut maka pastilah pesan itu berasal dari A. Gambar proses kerja dari Digital Signature adalah sebagai berikut :

Gambar 2. Skema Proses Kerja dari Digital Signature

Sumber : William Stallings, 2011Pesan asli (original text) ditandatangani dengan menggunakan kunci privat. Pesan yang telah ditandatangani (signed message) tersebut dikirimkan kepada si penerima pesan. Kemudian, si penerima pesan memverifikasi signed message tersebut dengan menggunakan kunci publik. (Schneier, 1996)

1.6.6.Cara Kerja Tanda Tangan DigitalTeknologi tanda tangan digital yang memanfaatkan teknologi kunci publik dimana sepasang kunci yaitu kunci publik dan kunci rahasia dibuat untuk keperluan tertentu. Kunci rahasia disimpan oleh pemiliknya dan dipergunakan untuk membuat tanda tangan digital. Sedangkan kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen. Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing (membuat sidik jari dokumen) dan enkripsi asimetris. Namun sebenarnya ada masalah dalam pendistribusian kunci publiknya. Katakanlah Anto hendak mengirim kunci publiknya (PbA) kepada Badu. Tapi pada saat kunci itu dikirim lewat jaringan publik, pencuri mengambil kunci PbA. Kemudian pencuri tersebut menyerahkan kunci publik (PbM) kepada Badu, sambil mengatakan bahwa kunci itu adalah kunci publik milik Anto.

Badu, karena tidak pernah memegang kunci publik Anto yang asli, percaya saja saat menerima PbM. Saat Anto hendak mengirim dokumen yang telah ditandatanginya dengan kunci rahasianya (PvA) kepada Badu, sekali lagi pencuri mengambilnya. Tanda tangan Anto pada dokumen itu lalu dihapus dan kemudian pencuri itu membubuhkan tanda tangannya dengan kunci rahasianya (PvM). Pencuri itu lalu mengirim dokumen itu ke Badu sambil mengatakan bahwa dokumen itu berasal dari Anto dan ditandatangani oleh Anto. Badu kemudian memeriksa tanda tangan itu dan mendapatkan bahwa tanda tangan itu sah dari Anto. Tentu saja kelihatan sah karena Badu memeriksanya dengan kunci publik PbM bukan dengan PbA. Untuk mengatasi masalah keamanan pendistribusian kunci publik, maka kunci publik itu direkatkan pada suatu sertifikat digital. Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jati diri pemilik kunci tersebut, sebagaimana layaknya KTP, sertifikat digital juga ditandatangani secara digital oleh lembaga yang mengeluarkannya yakni oteritas sertifikat (OS) atau certificate authority (CA). dengan menggunakan kunci publik dari suatu sertifikat digital, pemeriksa tanda tangan dapat merasa yakin bahwa kunci publik itu memang berkolerasi dengan seseorang yang namanya tercantum dalam sertifikat digital itu. (Schneier, 1996)

1.6.7.Alasan Penggunaan Tanda Tangan DigitalPada saat ini tidak ada metode yang benar dan secara efektif untuk mengidentifikasikan seseorang yang mengirim pesan E-mail. Tanda tangan digital berfungsi seperti paspor yang menegaskan siapa kita dan membuat seluruh transaksi E-mail sedikit lebih dapat dipercaya serta memberi jaminan dan kepercayaan kepada penerima E-mail kita.

Tanda tangan digital bekerja atau tidak ditentukan oleh pada siapa kita dapat memperoleh sertifikat. Sekali sebuah tanda tangan digital telah diterima, maka identitas pengirim akan mudah dicek oleh perusahaan yang mengeluarkan sertifikat.

Meskipun ada banyak teknik penggunaan tanda tangan digital ada baiknya kita melihat sebuah teknik yang umumnya dipakai. Tanda tangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tanda tangan itu hanya berlaku untuk dokumen yang bersangkutan saja. Tetapi bukan dokumen tersebut secara keseluruhan yang ditandatangani, namun biasanya yang ditandatangani hanyalah sidik jari dari dokumen itu beserta filestamp-nya dengan menggunakan kunci rahasia. Timestamp berguna untuk menentukan waktu pengesahan dokumen.

Untuk melihat proses bagaimana fungsi hash menangani masalah tanda tangan digital maka dapat dilihat pada Gambar 2.2.

Gambar 2.2 Proses Tanda Tangan Digital yang memakai fungsi Hash

Sumber : William Stallings, 20111.6.8.Short Attribute-Based Signature Scheme for Threshold Predicates

Berikut dijabarkan attributed-based signature dengan ukuran konstan, untuk threshold predicate. Kunci rahasia sk( untuk seorang user memiliki sebuah kumpulan atribut ( yang terdiri dari |(| + n buah elemen, dimana n adalah ukuran maksimum dari kumpulan atribut. Konstruksi ini adalah untuk atribut kecil P = {at1, , atn}, untuk beberapa integer n ( N. Konstruksi dibangun oleh Herranz, et. al. Rincian algoritma dari skema ini dapat dijabarkan sebagai berikut:

1. TSetup((, P, n): algoritma setup terdiri dari beberapa langkah berikut:

a. Pilih group (G, GT) dari order prima p > 2( dengan sebuah pemetaan bilinier e : G x G ( GT. Pilih generator g, h ( G secara acak dan pilih sebuah fungsi hash H : {0, 1}* ( {0, 1}k.

b. Definisikan sebuah fungsi encoding injektif ( untuk menghasilkan setiap atribut dari n buah atribut ( P pada setiap elemen ((at) = x ( Zp*. Pilih sebuah kumpulan D = {d1, , dn 1} terdiri dari n 1 pasangan elemen berbeda dari Zp*. Untuk setiap integer i yang lebih kecil atau sama dengan n 1, Di disimbolkan sebagai kumpulan {d1, , di}.

c. Hasilkan Groth-Sahai reference string dengan memilih generator acak g1, g2 ( G dan definisikan vektor g1 = (g1, 1, g)T ( G3 dan g2 = (1, g2, g)T ( G3. Kemudian, untuk setiap i ( {0, , k}, pilih (i, 1, (i, 2 ( Zp secara acak dan definisikan sebuah vektor g3, i = g1(i, 1 . g2(i, 2 = (g1(i, 1, g2(i, 2, g(i,1 + (i,2)T.

Output-nya adalah parameter publik berikut:

2. MSetup(pms): algoritma master setup memilih nilai (, ( ( Zp* dan set u = g(( dan v = e(g(, h).

Kunci rahasia master adalah msk = ((, () dan kunci publik master adalah:

3. Keygen(pms, mpk, msk, (): untuk menghasilkan sebuah kunci dari kumpulan atribut, (, pilih r ( Zp* dan kunci privatnya adalah:

4. Sign(pms, mpk, SK(, Msg, (): untuk menandatangani Msg ( {0, 1}* dengan perjanjian ( = (t, S), dimana S ( P adalah sebuah kumpulan atribut dengan ukuran s = |S| ( n dan 1 ( t ( s ( n, algoritma mengembalikan ( jika |( ( S| < t. Jika tidak, maka SK( di-parsing menjadi:

dan lakukan beberapa langkah berikut:

a. Anggap (S adalah sembarang subset dari ( ( S dengan |(S| = t. Dari semua ( (S, hitung nilai:

b. Definisikan nilai P((S, S)(() sebagai:

Karena |(S| = t, derajat dari polinomial P((S, S)(X) adalah n 2. Oleh karena itu, dapat dihitung:

Dan lakukan operasi perkalian antara nilai ini dengna elemen terakhir dari SK(, dimana:

Sehingga diperoleh:

c. Hitung M = m1, , mk = H(Msg, () ( {0, 1}k dan gunakan M untuk membentuk sebuah pesan khusus Groth-Sahai CRS gM = (g1, g2, g3,M). Untuk i = 0 sampai k, parsing g3,i sebagai (gx,i, gy,i, gz,i)T ( G3.

Kemudian, definisikan vektor:

d. Gunakan gM = (g1, g2, g3,M) untuk menghasilkan Groth-Sahai commitment T1 dan T2. Kemudian, pilih r1, s1, t1, r2, s2, t2 ( Zp dan hitung CTj = (1, 1, Tj)T . g1rj . g2sj . g3, Mtj untuk j ( {1, 2}. Kemudian, hasilkan sebuah pembuktian NIZK yang meng-commit variabel (T1, T2). Hitung sebuah variabel auxiliary ( ( G, dengan commitment C( = (1, 1, ()T . g1r( . g2s( . g3, Mt( untuk r(, s(, t( ( Zp secara acak, dimana nilai ( = h dan buktikan bahwa:

dimana:

Pembuktian untuk persamaan diatas disebut sebagai (1 dan (2.

Output signature:

5. Verify(pms, mpk, Msg, (, (): pertama parsing ( sebagai pasangan nilai (t, S) dan ( adalah (CT1, CT2, C(, (1, (2). Kemudian, hitung M = m1 mk = H(Msg, () ( {0, 1}k dan bentuk vektor berikut:

Kemudian, parsing pembuktian (1 dan (2 sebagai vektor ((1,1, (1,2, (1,3)T dan ((2,1, (2,2, (2,3)T. Definisikan:

dan kembalikan 1 (True) jika persamaan berikut terpenuhi:

Jika tidak, maka kembalikan nilai 0 (False), yang berarti bahwa signature tidak valid.

1.7.Daftar PustakaHerranz, J., F. Laguillaumie, B. Libert and C. Rafols. (2012). Short Attribute-Based Signatures for Threshold Predicates, RSA Conference 2012, San Francisco: Amerika Serikat.

Stallings, W. (2011). Cryptography and Network Security: Principles and Practice, Fifth Edition, Prentice Hall.

1.8.Lampiran1.8.1.Activity Diagram1 TSetup

2 MSetup

3 Keygen

4 Sign

5 Verify

1.8.2.Prototype1 Form Login

2 Form Registrasi

3 Form Main

4 Form Signature

5 Form Verifikasi

11

_1487234133.vsdSistem

Pilih nilai dan

Hitung nilai u dan v

Hitung kunci publik master mpk

Output mpk

_1487235290.vsdSistem

Verifier

Cek apakah signer termasuk dalam kumpulan atribut

Input pesan Msg

Muncul pesan kesalahan

Ya

Tidak

Parsing SK

Signer

Hitung nilai A1

Hitung nilai P(S, S)()

Hitung nilai T2

Hitung nilai M = m1 mk

Bentuk sebuah pesan khusus Groth-Sahai CRS

Hitung Groth-Sahai commitment T1 dan T2

Hitung nilai CTJ

Hasilkan sebuah pembuktian NIZK

Tentukan nilai r, s, t secara acak

Hitung sebuah variabel auxiliary

Hitung nilai 1 dan 2

Output signature

Kirimkan pesan dan signature kepada verifier

Terima pesan dan signature

_1487235691.vsdVerifier

Input pesan dan signature

Hitung M = m1 mk

Bentuk vektor g3,M

Hitung nilai HS

Verifikasi signature

Signature VALID

Sistem

Signature TIDAK VALID

Ya

Tidak

_1487234348.vsdSistem

Pilih nilai r

Hitung nilai kunci privat SK

Signer

Output SK

_1487233883.vsdSistem

Pilih generator g dan h

Pilih n buah atribut

Tentukan n 1 pasangan elemen berbeda

Pilih generator g1 dan g2 secara acak

Pilih i, 1, i, 2 secara acak

Output pms