BAB III
PAGE
a. karakter dan simbol-simbol), yaitu mencakup semua karakter
ASCII yang ada di keyboard.
b. 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.
c. 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.d. 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
121
_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