• Tidak ada hasil yang ditemukan

Implementasi Zero Knowledge Proof Dengan Protokol Feige Fiat Shamir Dan quadratic Linear Congruential Generator

N/A
N/A
Protected

Academic year: 2016

Membagikan "Implementasi Zero Knowledge Proof Dengan Protokol Feige Fiat Shamir Dan quadratic Linear Congruential Generator"

Copied!
135
0
0

Teks penuh

(1)

IMPLEMENTASI ZERO KNOWLEDGE PROOF DENGAN FEIGE FIAT SHAMIR

DAN QUADRATIC LINEAR CONGRUENTIAL GENERATOR

SKRIPSI

TIAN NOVITA SITUNGKIR 091401041

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(2)

IMPLEMENTASI ZERO KNOWLEDGE PROOF DENGAN FEIGE FIAT SHAMIR

DAN QUADRATIC LINEAR CONGRUENTIAL GENERATOR

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

TIAN NOVITA SITUNGKIR 091401041

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : IMPLEMENTASI ZERO KNOWLEDGE PROOF

DENGAN PROTOKOL FEIGE FIAT SHAMIR

DANQUADRATIC LINEAR CONGRUENTIAL GENERATOR.

Kategori : SKRIPSI

Nama : TIAN NOVITA SITUNGKIR

Nomor Induk Mahasiswa : 091401041

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

(FASILKOM-TI) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Oktober 2013

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

M. Andri Budiman, S.T., M.Comp Dian Rachmawati, S.Si., M.Kom

NIP. NIP.198307232009122004

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(4)

PERNYATAAN

IMPLEMENTASI ZERO KNOWLEDGE PROOF DENGAN PROTOKOL FEIGE FIAT SHAMIR DAN QUADRATIC LINEAR CONGRUENTIAL

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, September 2013

(5)

PENGHARGAAN

Segala puji dan syukur Penulis ucapkan kepada Tuhan Yesus Kristus yang senantiasa melimpahkan rahmat dan karunia-Nya sehingga skripsi ini dapat diselesaikan.

Ucapan terima kasih Penulis sampaikan kepada semua pihak yang telah membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa untuk kedua orangtua terkasih, Ayahanda Suherman Situngkir dan Ibunda Lallu Parapat. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada :

1. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

2. Ibu Dian Rachmawati, S.Si, M.Kom selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

3. Bapak Ade Candra, S. T., M. Kom Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

4. Bapak M. Fadly Syahputra, B. Sc., M. Sc. IT selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

5. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

6. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi Ilmu Komputer, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

7. Abang dan adik Penulis yang tersayang Rahmat Situngkir, Andi Situngkir, Amd., dan Ayu Situngkir.

8. Abang Angga Malau, S. Kom yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.

(6)

10.Teman-teman Ikatan Mahasiswa Dairi (Sunny, Reno, Nurita, Ome, Astri, Nciho, Samson, Wanti).

11.Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.

Medan, September 2013 Penulis,

(7)

ABSTRAK

Sewaktu seseorang menerima atau mengirim pesan, terdapat tiga buah persoalan yang sangat penting, yaitu kerahasian, autentikasi, dan keutuhan. Kerahasian memberi garansi data tidak dapat dibaca oleh orang yang tidak berkepentingan. Autentikasi memberi garansi tentang keaslian data dan dengan siapa berhubungan. Keutuhan memberi garansi bahwa data tidak mengalami perubahan sewaktu perjalanan, dengan kata lain data yang dikirim adalah data yang diterima. Dalam pegiriman informasi dengan beberapa teknik kriptografi, kita membutuhkan suatu cara agar informasi yang ingin kita sampaikan dapat diterima dengan aman oleh orang yang memang berwenang mendapatkannya. Cara atau protokol ini dapat digunakan baik untuk pengiriman pesan ataupun pemberian autentikasi, termasuk juga tanda tangan pada sebuah dokumen. Autentikasi entitas atau identifikasi dirancang agar suatu pihak (verifier) mendapat jaminan bahwa identitas dari pihak lain (claimant) yang ingin berkomunikasi dengannya sesuai dengan apa yang dinyatakan, sehingga mencegah terjadinya peniruan identitas atau penyamaran. Salah satu identifikasi kuat yang dapat digunakan adalah Zero-knowledge Proofs, dimana pada protokol ini pesan yang akan dipertukarkan saat protokol berlangsung bukan informasi rahasia, melainkan pengetahuan tentang informasi rahasia tersebut dan dilakukan tanpa menyatakan apapun tentang informasi rahasia tersebut. Hal yang harus diperhatikan dalam protokol di atas adalah pemilihan dari masalah matematika dan transformasi random yang digunakan sehingga orang lain benar-benar tidak dapat memperoleh informasi apapun tentang masalah yang asli atau solusinya, bahkan setelah dilakukan iterasi protokol secara berulang-ulang, protokol dan transformasi random yang dapat digunakan untuk Zero Knowledge Proof ini yaitu Feige Fiat Shamir dan Qudratic Linear Congruential Generator. Hasil penelitian menunjukkan bahwa hasil autentikasi dengan menggunakan Feige Fiat Shamir dan gabungan antara Feige fiat Shamir dan Quadratic Linear Congruential Generator tidak menunjukkan perbedaan waktu yang signifikan, dan penggunaaan pembangkit bilangan acak Quadratic Linear Congruential Generator menunjukkan bilangan acak yang dapat diprediksi urutan kemunculannya sama seperti Linear Congruential Generator, sehingga Quadratic Linear Congruential Generator kurang tepat digunakan kriptografi.

(8)

DAFTAR ISI

2.2 Pembangkit Bilangan Acak (Cryptographcally-secure Pseudo-RandomNumber Generator 13

(9)

3.1.3.3 Usecase Proses Autentikasi 27 Bilangan Acak Metode Quadratic Linear

Congruential Generator (QLCG) 33 3.1.5.4 Flowchart dan pseudocode Proses

Autentikasi (Identifikasi Skema) Feige

Fiat Shamir (FFS) 34

3.1.6 Rancangan Antar Muka 36

3.1.6.1 Antar Muka Mainform 37

3.1.6.2 Anatr Muka Form Authenticationwith

FFS and QLCG 38

3.2 Tahapan Sistem 40

3.2.1 Tahapan Metode Fermat 40 3.2.2 Tahapan Metode QuadraticLinear Congruential

Generator (QLCG) 42

3.2.3 Tahapan Feige Fiat Shamir 50

Bab 4 Implementasi dan Pengujian 63

4.1 Implementasi Sistem 63

4.1.1 Tampilan Halaman Menu Utama 64 4.1.2 Tampilan Halaman Menu Authentication with FFS

and QLCG 65

4.1.3 Tampilan Halaman Menu About 67

4.1.4 Tampilan Halaman Menu Help 68

4.2 Pengujian Sistem 68

4.2.1 Pengujian Proses Generate p dan q 69 4.2.2 Pengujian Proses Result n 70 4.2.3 Pengujian Proses Random r 71 4.2.4 Pengujian Proses Tampilan Hasil Nilai x,

v, v-invers, dan s 72

4.2.5 Pengujian Proses Open File 74

4.2.6 Pengujian Proses Authentication 76 4.3 Analisis Hasil Pengujian Proses Quadratic Linear

Congruential Generator (QLCG) 78

4.4 Analisis Hasil Pengujian Proses FFS dan QLCG 92 4.5 Analisis Pebandingan Hasil Pengujian FFS dengan dan tanpa

QLCG 98

(10)

5.1 Kesimpulan 100

5.2 Saran 101

(11)

DAFTAR TABEL Tabel 3.5 Rincian Rancangan Form Authentication with FFS and QLCG 39 Tabel 3.6 Lanjutan Rincian Rancangan Form Authentication with FFS

and QLCG 40

Tabel 3.7 Tabel dengan nilai a = 7, b=24, c = 11, m = 16 43 Tabel 3.8 Hasil bilangan acak metode QLCG dengan nilai a= 29, b=31,

c=49, m=256 44

Tabel 3.9 Hasil bilangan acak metode QLCG dengan nilai a= 124,

b=637, c=381, m=256 45

Tabel 3.10 Lanjutan Hasil bilangan acak metode QLCG dengan nilai

a= 124, b=637, c=381, m=256 46

Tabel 3.11 Hasil bilangan acak metode QLCG dengan nilai a= 124,

b=637, c=381, m=256 47

Tabel 3.12 Lanjutan Hasil bilangan acak metode QLCG dengan nilai

a= 124, b=637, c=381, m=256 48

Tabel 3.13 Hasil bilangan acak metode QLCG dengan nilai a= 96 ,

b=609, c=353, m=256 49

Tabel 3.14 Hasil v-invers Percobaan I 51

Tabel 3.15 Hasil kunci private s Percobaan I 52

Tabel 3.16 Hasil v-invers Percobaan II 53

Tabel 3.17 LanjutanHasil v-invers Percobaan II 54 Tabel 3.18 Hasil kunci private 2 Percobaan II 55

Tabel 3.19 Hasil v-invers Percobaan III 56

(12)

Tabel 4.12 Lanjutan Pengujian QLCG dengan m=256 90 Tabel 4.13 Lanjutan Pengujian QLCG dengan m=256

91

Tabel 4.14 Pengujian Running time FFS dan QLCG dengan n sebanyak 4 digit

dan pengulangan (t) = 5 92

Tabel 4.15 Pengujian Running time FFS dan QLCG dengan n sebanyak 4 digit

dan pengulangan (t) = 30 93

Tabel 4.16 Pengujian Running time FFS dan QLCG dengan n sebanyak 5 digit

dan pengulangan (t) = 5 93

Tabel 4.17 Pengujian Running time FFS dan QLCG dengan n sebanyak 5 digit

dan pengulangan (t) = 30 93

Tabel 4.18 Pengujian Running time FFS dan QLCG dengan n sebanyak 6 digit

dan pengulangan (t) = 5 94

Tabel 4.19 Pengujian Running time FFS dan QLCG dengan n sebanyak 6 digit

dan pengulangan (t) = 30 94

Tabel 4.20 Pengujian Running time FFS dan QLCG dengan n sebanyak 7 digit

dan pengulangan (t) = 5 95

Tabel 4.21 Pengujian Running time FFS dan QLCG dengan n sebanyak 7 digit

dan pengulangan (t) = 30 95

Tabel 4.22 Pengujian Running time FFS dan QLCG dengan n sebanyak 8 digit

dan pengulangan (t) = 5 95

Tabel 4.23 Pengujian Running time FFS dan QLCG dengan n sebanyak 8 digit

dan pengulangan (t) = 30 96

Tabel 4.24 Pengujian Running time FFS dan QLCG dengan n sebanyak 9 digit

dan pengulangan (t) = 5 96

Tabel 4.25 Pengujian Running time FFS dan QLCG dengan n sebanyak 9 digit

dan pengulangan (t) = 30 97

Tabel 4.26 Pengujian Running time FFS dan QLCG dengan n sebanyak 10 digit

dan pengulangan (t) = 5 97

Tabel 4.27 Perbandingan Hasil Pengujian Proses FFS dengan dan tanpa QLCG 98 Tabel 4.28 Lanjutan Perbandingan Hasil Pengujian Proses FFS dengan dan tanpa

(13)

DAFTAR GAMBAR

Gambar 2.5 Skema kriptografi kunci asimetri 11

Gambar2.6 Ilustrasi Zero knowledge proof 17 Gambar 3.8 Sequence Diagram untuk Proses identifikasi skema (autentikasi)

FFS 30

(14)

DAFTAR LAMPIRAN

Halaman

A. Listing Program A-1

(15)

ABSTRAK

Sewaktu seseorang menerima atau mengirim pesan, terdapat tiga buah persoalan yang sangat penting, yaitu kerahasian, autentikasi, dan keutuhan. Kerahasian memberi garansi data tidak dapat dibaca oleh orang yang tidak berkepentingan. Autentikasi memberi garansi tentang keaslian data dan dengan siapa berhubungan. Keutuhan memberi garansi bahwa data tidak mengalami perubahan sewaktu perjalanan, dengan kata lain data yang dikirim adalah data yang diterima. Dalam pegiriman informasi dengan beberapa teknik kriptografi, kita membutuhkan suatu cara agar informasi yang ingin kita sampaikan dapat diterima dengan aman oleh orang yang memang berwenang mendapatkannya. Cara atau protokol ini dapat digunakan baik untuk pengiriman pesan ataupun pemberian autentikasi, termasuk juga tanda tangan pada sebuah dokumen. Autentikasi entitas atau identifikasi dirancang agar suatu pihak (verifier) mendapat jaminan bahwa identitas dari pihak lain (claimant) yang ingin berkomunikasi dengannya sesuai dengan apa yang dinyatakan, sehingga mencegah terjadinya peniruan identitas atau penyamaran. Salah satu identifikasi kuat yang dapat digunakan adalah Zero-knowledge Proofs, dimana pada protokol ini pesan yang akan dipertukarkan saat protokol berlangsung bukan informasi rahasia, melainkan pengetahuan tentang informasi rahasia tersebut dan dilakukan tanpa menyatakan apapun tentang informasi rahasia tersebut. Hal yang harus diperhatikan dalam protokol di atas adalah pemilihan dari masalah matematika dan transformasi random yang digunakan sehingga orang lain benar-benar tidak dapat memperoleh informasi apapun tentang masalah yang asli atau solusinya, bahkan setelah dilakukan iterasi protokol secara berulang-ulang, protokol dan transformasi random yang dapat digunakan untuk Zero Knowledge Proof ini yaitu Feige Fiat Shamir dan Qudratic Linear Congruential Generator. Hasil penelitian menunjukkan bahwa hasil autentikasi dengan menggunakan Feige Fiat Shamir dan gabungan antara Feige fiat Shamir dan Quadratic Linear Congruential Generator tidak menunjukkan perbedaan waktu yang signifikan, dan penggunaaan pembangkit bilangan acak Quadratic Linear Congruential Generator menunjukkan bilangan acak yang dapat diprediksi urutan kemunculannya sama seperti Linear Congruential Generator, sehingga Quadratic Linear Congruential Generator kurang tepat digunakan kriptografi.

(16)

BAB I

PENDAHULUAN

1.1Latar Belakang

Sewaktu seseorang menerima atau mengirim pesan, terdapat tiga buah persoalan yang sangat penting, yaitu kerahasian, autentifikasi, dan keutuhan. Kerahasian memberi garansi data tidak dapat dibaca oleh orang yang tidak berkepentingan. Autentifikasi memberi garansi tentang keaslian data dan dengan siapa berhubungan. Keutuhan memberi garansi bahwa data tidak mengalami perubahan sewaktu perjalanan, dengan kata lain data yang dikirim adalah data yang diterima.

Dalam pegiriman informasi dengan beberapa teknik kriptografi, kita membutuhkan suatu cara agar informasi yang ingin kita sampaikan dapat diterima dengan aman oleh orang yang memang berwenang mendapatkannya. Cara atau protokol ini dapat digunakan baik untuk pengiriman pesan ataupun pemberian autentifikasi, termasuk juga tanda tangan pada sebuah dokumen. Autentifikasi entitas atau identifikasi dirancang agar suatu pihak (verifier) mendapat jaminan bahwa identitas dari pihak lain (claimant) yang ingin berkomunikasi dengannya sesuai dengan apa yang dinyatakan, sehingga mencegah terjadinya peniruan identitas atau penyamaran.

(17)

pada protokol ini pesan yang akan dipertukarkan saat protokol berlangsung bukan informasi rahasia, melainkan pengetahuan tentang informasi rahasia tersebut dan dilakukan tanpa menyatakan apapun tentang informasi rahasia tersebut. Hal yang harus diperhatikan dalam protokol di atas adalah pemilihan dari masalah matematika dan transformasi random yang digunakan sehingga orang lain benar-benar tidak dapat memperoleh informasi apapun tentang masalah yang asli atau solusinya, bahkan setelah dilakukan iterasi protokol secara berulang-ulang, dan protokol yang dapat digunkan untuk zero knowledge proof ini yaitu feige fiat shamir.

Beberapa Penelitian yang telah dilakukan sebelumnya yang berkaitan dengan penelitian ini adalah penelitian yang dilakukan oleh Hanson Prihantoro Putro dengan judul “Percobaan Pemanfaatan Graf pada Protokol Kriptografi”, disimpulkan bahwa Pemanfaatan graf pada protokol kriptografi dapat menjadi alternatif bagi penggunaan protokol kriptografi yang telah digunakan saat ini, dengan dasar yang dimiliki Zero Knowledge Proof, bisa diaplikasikan pada protokol kriptografi yang sudah ada dengan beberapa kelebihan maupun kekurangannya. Penelitian lainnya yaitu penelitian yang dilakukan oleh Ronen Gradwohl dengan judul “Cryptographic and Physical Zero-Knowledge Proof Systems for Solutions of Sudoku Puzzles”, peneliti menganggap bahwa kriptografi dan skema Zero Knowledge Proof adalah kombinasi yang baik digunakanan dalam pemecahan permainan Sudoku.

Oleh karena itu, berdasarkan pertimbangan yang ada maka dalam penyusunan tugas akhir ini, penulis tertarik memilih judul “Implementasi Zero Knowledge proof dengan Protokol Feige Fiat Shamir dan Quadratic Linear Congruential Generator”.

1.2Rumusan Masalah

(18)

1.3Batasan Masalah

Agar tulisan ini tidak menyimpang dari ruang lingkup pembahasan, diperlukan batasan masalah sebagai berikut :

a. Algoritma untuk autentikasi Zero Knowledge Proof adalah protokol Feige Fiat Shamir.

b. Algoritma untuk pembangkit bilangan acak yang digunakan adalah Quadratic Linear Congruential Generator.

c. Algoritma Pembangkit bilangan prima yang digunakan yaitu Lehman Theorem

d. Jenis data yang diamankan yaitu data teks (.txt)dan dokumen (.doc) e. Bahasa pemograman yang digunakan adalah C#.

1.4Tujuan Penelitian

Adapun tujuan dari penulisan tugas akhir ini adalah :

a. Mengetahui proses kerja Zero Knowledge Proof dalam pengamanan sebuah data.

b. Mengetahui cara pengimplementasian Zero Konwledge Proof dengan metode Feige Fiat Shamir dan Quadratic Congruential Generator.

c. Mengetahui running time dari Quadratic Linear Congruential Generator (QLCG) dan Feige-Fiat-Shamir (FFS) secara terpisah dan ketika dikombinasikan.

1.5 Manfaat Penelitian

Manfaat yang diambil dari penulisan tugas akhir ini adalah :

a. Membantu pengamanan data tanpa menunjukkan siapa yang melakukan autentifikasi atas keaslian dokumen tersebut, sehingga penyalahgunaannya tidak akan bisa melibatkan pihak yang memverifikasi.

b. Sebagai referensi bagi pengguna yang ingin mengetahui mengenai cara kriptografi Zero Knowledge Proof dengan protokol Feige Fiat Shamir dan quadratic Linear Congruential.

(19)

Tahapan yang dilakukan dalam penelitian ini adalah: 1. Studi Literatur.

Melakukan studi kepustakaan, dengan mengumpulkan dan mempelajari bahan- bahan referensi yang berhubungan dengan kriptografi, Zero Knowledge Proof, Protokol Feige-Fiat-Shamir dan Quadratic Linear Congruential.

2. Analisis Masalah dan Perancangan Sistem.

Analisis masalah yang dimulai dengan tahap mengindentifikasikan masalah, memahami kerja sistem yang akan dibuat, manganalisis dan membuat laporan tentang hasil analisis, dan perancangan yang dimaksud adalah dengan membuat rancangan dan interface sistem dengan protokol Feige-Fiat-Shamir. 3. Implementasi Sistem.

Perancangan sistem diimplementasikan dalam bentuk kode program (coding) dengan menggunakan bahasa pemrograman C#.

4. Pengujian Sistem.

Pengujian dilakukan terhadap program yang telah dibuat. 5. Dokumentasi Sistem.

Penyusunan laporan Tugas Akhir lengkap dengan analisis yang didapatkan.

1.7Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri atas bagian-bagian berikut: BAB I PENDAHULUAN

Bab ini menjelaskan latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematikan penulisan dari skripsi ini.

BAB II LANDASAN TEORI

Bab ini menjelasakan landasan teori dari penelitian yang dilakukan. Teori yang diangkat yaitu kriptografi dan keamanannya, protokol Zero Knowledge Proof, Algoritma Feige-Fiat Shamir, dan Quadratic Linear Congruantial generator BAB III ANALISIS DAN PERANCANGAN SISTEM

(20)

manganalisis dan membuat laporan tentang hasil analisis, dan perancangan yang dimaksud adalah dengan membuat rancangan dan interface sistem dengan protokol Feige-Fiat-Shamir.

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini akan menguraikan hasil pengujian sistem tentang autentikasi sebuah pesan dengan Feige Fiat Shamir dan Quadratic Linear Congruantial generator, dan kompleksitas waktu yang dihasilkan dengan penggabungan dua algoritma tersebut.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang didapat dari hasil pengujian yang dilakukan serta saran-saran yang diberikan untuk penelitian selanjutnya.

(21)

BAB II

TINJAUAN PUSTAKA

2.1 Kriptografi

Secara etimologi (ilmu asal usul kata), kata kriptografi berasal dari gabungan dua kata dalam bahasa Yunani yaitu “kriptos” dan “graphia”. Kata kriptos digunakan untuk mendeskripsikan sesuatu yang disembunyikan, rahasia atau misterius. Sedangkan kata graphia berarti tulisan. Kriptografi didefinisikan sebagai ilmu dan pelajaran untuk tulisan rahasia dengan pertimbangan bahwa komunikasi dan data dapat dikodekan untuk mencegah dari mata-mata atau orang lain yang ingin mengetahui isinya, dengan menggunakan kode-kode dan aturan-aturan tertentu dan metode lainnya sehingga hanya orang yang berhak yang dapat mengetahui isi pesan sebenarnya.

Selain definisi di atas, Schneier (1996) mengemukakan pendapatnya tentang definisi kriptografi yaitu:ilmu dan seni untuk menjaga keamanan pesan. Penggunaan 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 pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” di dalam “cryptography” itu sendiri sudah menyiratkan sebuah seni, (Mollin, 2006)).

Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai di penerima, ciphertext tersebut ditranformasikan kembali ke dalam bentuk plaintext agar dapat dikenali.

(22)

1. Kerahasiaan (Confidentiality), adalah layanan yang digunakan untuk menjaga isi informasi dari siapapun, kecuali yang memiliki kunci rahasia atau otoritas untuk membuka informasi yang telah disandikan.

2. Integritas Data (Message Integrity), berhubungan dengan penjagaan (perlindungan data) dari upaya-upaya pengubahan data secara tidak sah. Untuk dapat menjaga integritas data, suatu sistem harus memiliki kemampuan untuk mendeteksi pemanipulasian data yang dilakukan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pendistribusian data lain ke dalam data yang asli.

3. Autentifikasi (Authentication), berhubungan dengan identifikasi, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomuniasi harus saling memperkenalkan diri. Informasi yang dikirimkan harus diautentikasi keasliannya, isi datanya, waktu pengirimannya dan lain sebagainya.

4. Nirpenyangkalan (Non-repudiation), merupakan usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat, juga sebaliknya.

2.1.1 Konsep Dasar Kriptografi

Pada kriptografi akan ditemukan beberapa istilah-istilah yang penting untuk diketahui dalam memahami ilmu kriptografi. Istilah-istilah dan konsep dasar kriptografi tersebut akan dijelaskan sebagai berikut.

a. Enkripsi dan Dekripsi

(23)

Sedangkan dekripsi merupakan algoritma atau cara yang dapat digunakan untuk membaca informasi yang telah dienkripsi untuk dapat dibaca kembali (Kurniawan. Y., 2004).

Secara umum kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan. Skema enkripsi dan dekripsi dengan menggunakan kunci diperlihatkan pada gambar 2.1 dibawah ini :

Kunci Kunci

Plaintext Plaintext Gambar 2.1 Skema enkripsi dan dekripsi

b. Plaintext dan Ciphertext

Pesan merupakan data atau informasi yang dapat dimengerti maknanya, nama lain dari pesan adalah plaintext. Pesan dapat berupa teks, video, gambar dan lain-lain. Ketika pesan ingin dijaga kerahasiaannya maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami oleh orang lain. Bentuk pesan yang telah tersandikan tersebut dinamakan dengan ciphertext. Perbandingan antara plaintext dan ciphertext dapat dilihat pada gambar 2.3a dan 2.3b.

(24)

(a) Plaintext (b) ciphertext Gambar 2.2 perbandingan plaintext dan ciphertext

c. Kriptanalisis dan kriptologi

Tugas utama kriptografi adalah untuk menjaga agar baik plaintext maupun kunci ataupun keduanya tetap terjaga kerahasiannya. Berbeda dengan kriptanalisis (Cryptanalysis) yang merupakan suatau ilmu dan seni untuk memecahkan chipertext menjadi plaintext tanpa memerlukan kunci yang digunakannya. Jika seorang kriptografer mentranformasikan plaintext ke dalam ciphertext dengan menggunakan kunci, maka sebaliknya seorang kriptanalis berusaha memecahkan ciphertext tersebut untuk menemukan plaintext atau kunci. Sedangkan studi mengenai kriptografi dan kriptanalis tersebut disebut dengan kriptologi (cryptlogy). hubungan antara kriptologi, kriptografi dan kriptanalisis dapat dilihat pada Gambar 2.3.

Kriptologi

Kriptografi kriptanalisis

Gambar 2.3 Hubungan Kriptologi, kriptanalisi, dan kriptografi

2.1.2 Jenis Kriptografi

Terdapat dua jenis algoritma kriptografi berdasarkan jenis kuncinya, yaitu:

a. Algoritma Simetri

(25)

Algoritma simetri ssering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetri tergantung pada kunci, agar komunikasi tetap aman, maka kunci harus tetap dirahasiakan.

Algoritma simetri dapat dibagi dalam dua kategori, jenis pertama beroperasi pada plaintext yang berupa satu bit tunggal pada satu waktu, yang disebut dengan stream algorithms (algoritma aliran atau stream ciphers). Jenis kedua beroperasi pada plaintext dalam grup bit, grup bit-bit ini blok yang disebut sebagai algoritma blok atau kode rahasia blok (block cipher).

Proses dari skema kriptografi simetri dapat dilihat pada Gambar2.4

Enkripsi EK (P)=C

Dekripsi DK (C)=P

Kunci Privat, K

Plaintext, P Ciphertext, C Plaintext, P

Gambar 2.4 Kriptografi Simetri

b. Algoritma Asimetri

(26)

dengan kunci publik, sedangkan kunci dekripsi disebut dengan kunci privat.

Proses dari skema kriptografi asimetri dapat dilihat pada Gambar 2.5.

Enkripsi EK1 (P)=C

Dekripsi DK2 (C)=P

Kunci Publik, K1 Kunci Privat, K2

Palintext, P Ciphertext, C Plaintext, P

Gambar 2.5 Skema kriptografi kunci asimetri

2.1.3 Protokol Kriptografi

Protokol adalah aturan yang berisi rangkaian langkah-langkah, yang melibatkan dua atau lebih orang, yang dibuat untuk menyelesaikan suatu kegiatan. Protokol digunakan untuk mengabtraksikan proses penyelesaian suatu tugas dari mekanisme yang digunakan.

Protokol kriptografi adalah protokol yang menggunakan kriptografi dengan melibatkan sejumlah algoritma kriptografi. Protokol kriptografi memiliki urutan dari awal hingga akhir, setiap langkah harus dilakukan secara berurutan, dan langkh tidak dapat dikerjakan bila langkah sebelumnya belum selesai.

Beberapa jenis protokol kriptografi antara lain: a. Abritated protocol

(27)

Ada beberapa kelemahan menggunakan protocol jenis arbiter. Sangat sulit menemukan seorang atau pihak arbiteryang dapat dipercaya, mampu menjamin tidak terjadi kecurangan, dan mampu menyimpan kerahasiaan data-data yang perlu disembunyikan. Selain itu harus ada biaya tambahan untuk membayar arbiter. Karena menggunakan prosedur dan pihak tambahan dalam komunikasi, maka waktu dalam melakukan transaksi maupun komunikasi akan semakin lama. Delainya pun akan bertambah besar. Bila banyak transaksi yang dilakukan dalam waktu yang hamper bersamaan, maka akan terjadi kemacetan yang dalam bahasa kerennya disebut bottleneck atau leher botol. Kerahasiaannya pun tergantung pada seberapa besar pihak ketiga mampu menjaga kerahasiaan data-data penting.

b. Adjudicated protocol

Protokol ini berbeda dengan protocol yang sebelumnya. Untuk protocol ini, menggunakan pihak ketiga yang hanya bertindak sebagai juri bila terjadi kecurangan. Contoh yang bsa dilihat dalam kehidupan adalah adanya notaris dalam sengketa tanah.

Dalam protocol ini juga terdapat beberapa kelemahan termasuk analisis yang digunakan atau dilakukan harus setelah masalah terjadi dan tidak ada upaya untuk melakukan pencegahan. Tetapi keuntungannya adalah tidak perlu mengeluarkan banyak biaya dibanding dengan menggunakan arbiter karena keterlibatan pihak ketiga terbatas pada adanya masalah.

c. Self-enforcing protocol

(28)

2.2 Pembangkit Bilangan Acak (Cryptographcally-secure Pseudo-Random Number

Generator)

Cryptographically-secure Pseudo-Random Number Generator (CPRNG) adalah suatu peralatan komputasional yang dirancang untuk menghasilkan suatu urutan nilai yang tidak dapat ditebak polanya dengan mudah, sehingga urutan nilai tersebut dapat dianggap sebagai suatu keadaan acak (random). CPRNG ini tidak dapat diterapkan dalam prakteknya.Bilangan acak yang dihasilkan oleh komputer sekalipun tidak benar-benar acak dan kebanyakan bilangan acak yang diterapkan dalam kriptografi juga tidak benar-benar acak, tetapi hanya berupa acak semu.Ini berarti bahwa bilangan acak yang dihasilkan itu dapat ditebak susunan atau urutan nilainya.Dalam kriptografi, bilangan acak sering dibangkitkan dengan menggunakan pembangkit bilangan acak semu (Cryptographically-secure Pseudo-Random Number Generator).

Suatu Cryptographically-secure Pseudo-Random Number Generator(CPRNG) merupakan suatu algoritma yang menghasilkan suatu urutan nilai dimana elemen-elemennya bergantung pada setiap nilai yang dihasilkan.Output dari CPRNG tidak betul-betul acak, tetapi hanya mirip dengan properti dari nilai acak.Kebanyakan algoritma dari Cryptographically-secure Pseudo-Random Number Generator ditujukan untuk menghasilkan suatu sampel yang secara seragam terdistribusi. CPRNG ini sering digunakan dalam kriptografi pada proses pembentukan kunci dari metoda kriptografi. Tingkat kerumitan dari CPRNG ini menentukan tingkat keamanan dari metoda kriptografi.Semakin rumit (kompleks) CPRNG yang digunakan maka semakin tinggi tingkat keamanan dari metode kriptografi.

2.3 Quadratic Linear Congruential Generator

Quadratic Linear Congruential Generator (QLCG) adalah salah satu pembangkit bilangan acak yang dikemukakan oleh Jim Reeds (1294,1295,1296) dan JoanBoyar (1251) dengan rumus:

�� =����−�� +���−�+������

(29)

Periode QLCG pada dasarnya tidak lebih besar dari m, dan pada kebanyakan kasus periodenya kurang dari m. QLCG akan mempunya periode penuh (m-1) jika memenuhi syarat dimana (b-a) mod m=1, m adalah bilangan kelipatan 2 dan c adalah bilangan ganjil.

Keunggulan QLCG terletak pada kecepatannya dan hanya membutuhkan sedikit operasi bit. Jika dilihat dari angka yang dihasilkan, algoritma Qudratic Linear Congruential Generator (QLCG) memiliki kelemahan.Sebab angka (bilangan acak) yang dihasilkan dapat diprediksi urutan kemunculannya.

Contoh:

�� = (7��−12 + 11��−1+ 5 )��� 17 dan �0 adalah 0. Hasil perhitungan

dapat dilihat pada Tabel 2.1.

Tabel 2.1 Contoh QLCG

X

0 0

1 5

2 14

3 1

4 6

5 0

6 5

7 14

8 1

9 6

10 0

11 5

12 14

(30)

yang, namun ia sangat sensitif terhadap pemilihan nilai a, b, c dan m. Pemilihan nilai – nilai yang buruk dapat mengarah pada implementasi QLCG yang tidak bagus.

2.4 Zero Knowledge Proof

Zero-knowledge proof adalah protokol kriptografi yang dapat digunakan oleh seseorang (misalnya Tian yang bertindak sebagai prover) untuk membuktikan kepemilikannya akan suatu secret piece atau informasi rahasia kepada orang lain (misalnya Tika, yang bertindak sebagai verifier) tanpa perlu mengungkapkan isi secret piece tersebut atau memberikan suatu cara bagi Tika untuk mengetahui isi rahasia tersebut.

Proses pembuktian kepemilikan rahasia yang dilakukan oleh Tian ini termasuk ke dalam interactive protocol, dimana Tika akan menanyakan serangkaian pertanyaan kepada Tian. Jika Tian benar-benar mengetahui isi rahasia, maka ia akan dapat menjawab keseluruhan pertanyaan dengan benar. Setelah serangkaian pertanyaan diajukan (misalnya 10 atau lebih pertanyaan) Tika akan yakin bahwa Tian benar-benar memiliki informasi rahasia seperti yang ia katakan.

Zero-Knowledge Proof harus memenuhi tiga sifat yaitu:

a. Completeness:yaitu jika prover memang tahu suatu pernyataan, verifier selalu akan dapat menerimanya.

b. Soundness:yaitu jika prover memang tidak mengetahui pernyataan yang benar, verifier tidak dapat menerimanya, kecuali dalam kemungkinan yang kecil.

c. Zero-knowledge:yaitu walaupun setelah interaksi dilakukan verifier akan yakin bahwa prover benar-benar tahu pernyataan yang sebenarnya, sebenarnya verifier sendiri tetap tidak akan mengetahui pernyataan yang sebenarnya.

(31)

untuk membuka pintu itu, tetapi ketika Tian diminta untuk membuktikannnya, Tian tidak mau memberitahukan kata kuncinya kepada Tika. Cara yang digunakan Tian untuk membuktikan bahwa ia tahu kata rahasia tanpa memberitahukannya kepada Tika adalah dengan menggunakan zero knowledge proof.

Tian dalam hal ini adalah pihak yang akan membuktikan bahwa ia mengetahui rahasia disebut dengan Prover, sedangkan Tika dalam hal ini adalah pihak yang diyakinkan disebut dengan verifier. Gambar di bawah ini adalah ilustrasi zero knowledge proof di dalam gua.

Gambar2.6 Ilustrasi Zero knowledge proof

Gua itu memiliki 2 jalur untuk sampai ke pintu rahasia yaitu jalur A dan jalur B. Langkah-langkah pembuktiannya adalah sebagai berikut : a. Tika berada di posisi A, sedangkan Tian berada di posisi B.

b. Tian akan berjalan menuju ke pintu dengan menggunakan jalan C atau D sesuai dengan keinginan Tian dan dilakukan secara acak.

c. Setelah itu, Tika akan berjalan ke posisi B dan dia meneriakkan jalan C atau D sesuai dengan keinginannya agar Tian berjalan kearah posisi B dengan menggunakan jalan itu.

d. Jika Tian tahu kata rahasia, maka ia akan mampu menuruti semua permintaan Tika, tetapi jika ia ingin mengelabui Tika, maka Tian memiliki probabilitas setengah untuk berhasil.

Tian

(32)

e. Agar pembuktian yang dilakukan akurat maka langkah 1 sampai 5 harus diulang n kali dan Tika percaya jika Tian mampu memenuhi seluruh permintaan Tika.

2.5Feige Fiat Shamir

Konsep zero-knowledge protocol digunakan dalam beberapa protokol untuk identifikasi (zero-knowledge identification protocol). Protokol pertama jenis iniadalah protokol Feige-Fiat-Shamir. Ada tiga aktor yang berperan dalam protokol Fiat-Shamir yaitu trusted center (sebut saja Tim), prover (Tian) dan verifier (Tika). Tim membuat suatu modulus seperti RSA n = pq, mengumumkan n tetapi merahasiakan p dan q. Tian membuat secara acak (menggunakan random number generator) kunci privat s, dimana 0 < s < n dan gcd(s; n) = 1. Kunci publik Tian adalah v = s2 mod n dan v diregistrasi ke Tim. Tika dapat memperoleh kunci publik Tian v yang telah diregistrasi, dari Tim. Langkah-langkah berikut diulang t kali, setiap kali dengan nilai-nilai acak yang baru, agar Tian dapat diidentifikasi oleh Tika.

a. Tian memilih secara acak, menggunakan random number generator, r, 0 < r < n, dan mengirim x = r2 mod n kepada Tika

b. Tika memilih secara acak, menggunakan random number generator, e, e

∈ {0,1}, dan mengirimnya ke Tian.

c. Tian mengkomputasi y = rsemod n dan mengirim y ke Tika.

d. Jika y = 0 atau y2 ≡xve (mod n) maka Tika menolak dan proses identikasi gagal.

Jika langkah-langkah diatas telah diulang t kali tanpa penolakan maka identifikasi Tian diterima oleh Tika. Probabilitas bahwa Tian telah berhasil menipu Tika adalah 1 dalam 2t.

Keamanan dari Feige-Fiat-Shamir berdasarkan pada sukarnya mengkalkulasi akar kuadrat modulo pq jika p dan q tidak diketahui (hanya produknya n = pq yang diketahui). Fungsi pengacakan menggunakan parameter e adalah agar Tian tidak curang. Jika Tika selalu meminta y = r (e = 0) maka jelas Tian tidak perlu mengetahui s untuk menjawabnya. Jika Tika selalu meminta y = rs (mod n), Tian juga dapat mengelabui Tika tanpa mengetahui sebagai berikut. Pada langkah 1 Tian mengirim

(33)

kepada Tika. Ketika diminta untuk mengirim y = rs (mod n) maka Tianmengirim y harus mencari akar kuadrat modulo n karena ia harus mengirim

y = (r2v-1)-2 (mod n).

Untuk menunjukkan bahwa tidak ada rahasia yang bocor ke Tika, kita gunakan cara standar yaitu dengan simulasi. Seseorang yang tidak mengetahui p, q dan s akan tetapi mengetahui apa yang akan diminta Tika untuk e tentunya akan dapat berperan sebagai Tian dengan mengirim x = r2 (mod n) atau x = r2v-1 (mod n) tergantung pada nilai e. Informasi yang dikeluarkan oleh Tian dapat dikeluarkan oleh siapa saja tanpa mengetahui p; q dan s, jaditidak memberi tahu nilai p; q dan s.

Sebetulnya Fiat-Shamir membocorkan 1 bit dari nilai s, yaitu sign (+ atau -) dari s. Protokol Feige-Fiat-Shamir menutup kebocoran ini. Selain itu Feige Fiat-Shamir melakukan k “pembuktian" secara paralel yang mengurangi interaksi antara Tian dan Tika karena langkah-langkah tidak perlu diulang sebanyak pada Fiat-Shamir, bahkan langkah-langkah tidak perlu diulang jika k cukup besar.

Dalam Feige-Fiat-Shamir, Tian membuat k kunci privat s1, s2, ..., sk dimana gcd(si , n) = 1 untuk setiap i, dan mempublikasikan k kunci publik v1, v2,..., vkdimana

vi= si2 (mod n)

untuk setiap i. Langkah-langkah Feige-Fiat-Shamir adalah sebagai berikut. a. Tian memilih secara acak, menggunakan random number generator, r,0

(34)

Jika k = 20, maka probabilitas bahwa Tian berhasil mengelabui Tika kurang dari 1 dalam sejuta, dengan hanya 1 putaran langkah-langkah diatas.

Untuk Feige-Fiat-Shamir ada yang menggunakan vi = 1=si2 mod n untukkunci publik. Jika demikian, maka pada langkah 4, Tika harus memeriksa

� ≡ ± �2��1�2�2 … ��� (����)

Contoh :

Jika n=35 (bilangan pengali yang prima 5 dan 7), kemudian bilangan kuadrat yang mungkin adalah:

1: x2≡1 (mod 35) mempunyai penyelesaian: x = 1, 6, 29,or 34. 4:x2≡ 4 (mod 35) mempunyai penyelesaian: x = 2,12, 23,or33. 9: x2≡9 (mod 35) mempunyai penyelesaian :x = 3,17,18, or32. 11:x2≡11(mod 35)mempunyai penyelesaian: x = 9,16,19,or26. 14: x2≡14 (mod 35) mempunyai penyelesaian: x = 7 or 28. 15: x2≡15 (mod 35) mempunyai penyelesaian: x = 15 or 20. 16: x2≡16(mod 35)mempunyai penyelesaian:x=4,11, 24, or31. 21: x2≡21 (mod 35) mempunyai penyelesaian: x = 14 or 21. 25: x2≡25 (mod 35) mempunyai penyelesaian: x = 5 or 30. 29: x2≡29(mod 35)mempunyai penyelesaian:x= 8,13,22 or 27. 30: x2≡30 (mod 35) mempunyai penyelesaian: x = 10 or 25.

Inversi (mod 35) dan akar pangkat duanya adalah: Tabel 2.2 Inversi (mod 35)

v v-1 S=sqrt(v-1)

1 1 1

4 9 3

9 4 2

11 16 4

(35)

a. Tian memilih sebuah bilangan acak r= 16, hitung 162(mod35)=11, dan kemudian angka tersebut dikirim ke Tika.

b. Tika mengirim Tian bilangan biner acak {1,1,0,1}.

c. Tian menghitung 16*((31)*(41)*(90)*(81))mod 35=31 dan dikirim ke Tika

d. Tika memeriksa bahwa 312*((41)*(111)*(160)*(291)) mod 35=11

(36)

BAB III

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Sebelum dilakukan tahap perancangan sebuah sistem, perlu dilakukan analisis sistem yang akan dibangun. Analisis sistem merupakan istilah yang secara kolektif mendeskripsikan fase-fase awal pengembangan sistem. Tahap ini bertujuan memberikan gambaran yang jelas terhadap sistem yang akan dibangun. Tahap ini menjabarkan kebutuhan-kebutuhan yang berguna untuk perancangan sistem agar sistem yang dibangun sesuai dengan masalah yang akan diselesaikan.

3.1.1 Analisis Masalah

Masalah utama yang diangkat adalah autentikasi sebuah data pada sistem kriptografi. Sistem kriptografi ini menggunakan protokol Feige Fiat Shamir (FFS) yang merupakan salah satu algoritma dari penerapan Zero Knowledge Proof. Seperti yang telah dijelaskan bahwa Zero knowledge Proof ini merupakan prokotol yang aman untuk autentikasi sebuah data karena tidak memberikan informasi apapun tentang data yang dimiliki oleh seorang prover.

(37)

Verifier

Gambar 3.1 Diagram Ishikawa Untuk Analisa Masalah

3.1.2 Analisis Persyaratan (Requirement Analysis)

Analisis ini bertujuan untuk mengidentifikasi dan menyatakan persyaratan apa saja yang akan dibutuhkan oleh sistem agar dapat berjalan sesuai dengan yang diharapkan. Analisis persyaratan terdiri atas dua bagian yaitu analisis fungsional (functional requirement) dan analisis nonfungsional (nonfunctional requirement). Dimana persyaratan fungsional adalah aktifitas dan layanan yang harus diberikan/ disediakan oleh sebuah sistem, dan persyaratan nonfungsional berkaitan dengan fitur, kateristik, dan batasan lainnya yang menetukan apakah sistem memuaskan atau tidak. Persyaratan nonfungsional seringkali berupa batasan atau sesuatu yang menjadi perhatian stakeholder sebuah sistem. Kedua analisis ini merupakan hal penting untuk menentukan hal-hal yang harus dimiliki sistem.

3.1.2.1Persyaratan Fungsional

Analisis fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Berikut dijabarkan fungsi-fungsi yang dapat dikerjakan oleh sistem.

1. Sistem akan melakukan autentikasi pada data berupa .txt atau .doc

2. Sistem menghitung berapa lama waktu yang dibutuhkan dalam memproses seluruh kegiatan autentikasi.

(38)

3.1.2.2Analisis Nonfungsional

Analisis nonfungsional berhubungan dengan hal-hal berikut ini: 1. Performa

Perangkat lunak yang akan dibangun dapat menunjukkan hasil dari proses pemabangkitan bilangan acak, dan autentikasi sebuah pesan.

2. Mudah dipelajari dan digunakan

Perangkat lunak yang akan dibangun memiliki tampilan yang user friendly dan responsif.

3. Hemat biaya

Perangkat lunak yang dibangun akan memprmudah pengguna untuk efesiensi waktu, sehingga hemat biaya.

4. Dokumentasi

Perangkat lunak yang akan dibangun dapat menyimpan hasil autentikasi pesan serta memiliki panduan penggunaan.

5. Kontrol

Perangkat lunak yang dibangun akan menampilkan pesan error untuk setiap input yang tidak sesuai.

3.1.3 Pemodelan Sistem dengan Use Case dan Ac tivity Diagram

Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem serta hal-hal apa saja yang dilakukan oleh sistem. Use case adalah salah satu pemodelan yang digunakan untuk memodelkan persyaratan sistem. Dengan use case ini digambarkan siapa saja yang berinteraksi dengan sistem dan apa saja yang dapat dilakukan dengan sistem.

Berdasarkan analisis kebutuhan sistem, secara garis besar sistem melakukan proses autentikasi dengan protokol Feige Fiat Shamir dan autentikasi dengan protokol Feige Fiat Shamir dengan pembangkit bilangan acak quadratic linear Congruential Generator.

(39)

Generate p dan q

Gambar 3.2 Use case Diagram yang akan Dikembangkan

Diagram pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh user, user melakukan input data dengan men-generate bilangan prima p dan q dan kemudian memproses data dan melakukan autentikasi dengan protokol feige Fiat Shamir dengan beberapa kali percobaan hingga proses autentikasi dinyatakan berhasil.

3.1.3.1Use Case generate Bilangan Prima p dan q

Berikut ini merupakan spesifikasi use case generate Input p dan q Tabel 3.1 Spesifikasi Use Case generate p dan q

Name Enkripsi

Actors User

Trigger User men-generate p dan q yang akan menghasilkan nilai n Preconditions -

Post Conditions p dan q akan menghasil nilai n yang didapat dari perkalian bilangan prima p dan q

Success Scenario 1. User telah men-generate bilangan p dan q. 2. User mengakses tombol generate.

3. Sistem akan melakukan proses pemilihan bilangan prima berdasarkan metode Fermat.

4. Sistem akan menampilkan hasil bilangan prima p dan q. Alternative Flows -

(40)

User System

Akses tombol generate bilangan

prima

proses pemilihan bilangan prima p dan q dengan metode Fermat

Manampilkan bilangan prima p dan q

Gambar 3.3 ActivityDiagram untuk Proses input p dan q

3.1.3.2Use Case generate Bilangan Acak

Berikut ini adalah spesifikasi untuk use case proses pemilihan bilangan acak:

Tabel 3.2 Spesifikasi Use Case Pemilihan Bilangan acak Name Pemilihan bilangan acak

Actors User

Trigger User mengakses tombol pemilihan bilangan random (random r) Preconditions Bilangan n telah diproses dan ditampilkan

Post Conditions Bilangan acak r akan menghasilkan nilai x Success Scenario 1. User mengakses tombol random r.

2. Sistem akan melakukan proses pemilihan bilngan acak dengan Quadratic Linear Congruential

Alternative Flows -

(41)

Verifier System

Akses tombol bilngan random r

Proses memilih dan menampilkan bilangan acak

dengan metode QLCG

Sistem menampilkan bilangan acak r

Gambar 3.4 Activity Diagram untuk Proses pemilihan bilangan acak

3.1.3.3Use Case Proses Autentikasi

Berikut ini adalah spesifikasi untuk use case proses autentikasi Tabel 3.3 Spesifikasi Use Case Autentikasi

Name Authentication

Actors User

Trigger User menginputkan plaintext yang akan di autentikasi Preconditions plaintext telah disimpan sebelumnya

Post Conditions Proses ini akan menghasilkan hasil proses keberhasilan autentikasi

Success Scenario 1. User memasukkan plaintext

(42)

Berikut ini adalah activity diagram untuk proses autentikasi.

User System

Akses tombol Process

Sistem menampilkanoutput x, s, v, v invers

User memasukkan

plaintext

Sistem menampilakan output hasil autentikasi

Gambar 3.5 : Activity Diagram untuk Proses Autentikasi

3.1.4. Analisis Sistem Proses

(43)

User Sistem

Generate p

Generate q

Tampilkan output p dan q

Gambar 3.6 Sequence Diagram Proses Generate p dan q

Hasil dari bilangan prima p dan q yang didapat akan digunakan untuk mendapatkan nilai n. Setelah proses input bilangan prima p dan q selesai dilakukan, kemudian sistem akan melakukan generate bilangan acak dngan metode Quadratic Linear Congruential Generator, yang dapat dilihat pada gambar 3.7.

verifier Sistem

Random r

Tampilkan bilangan acak r

Proses bilangan acak

(44)

Dari sequnce diagram pada gambar 3.7 dapat dilihat bahwa hasil yang didapat oleh user adalah bilangan random r yang akan digunakan untuk mencari nilai x.

Untuk proses identifikasi skema (autentikasi) dengan protokol Feige Fiat Shamir sistem akan memproses dan menampilkan hasil perhitungan nilai n, x, v, v-invers, dan s yang akan digunakan untuk pengecekan. Sequence diagram proses idrntifikasi skema feige Fiat Shamir dapat dilihat pada Gambar 3.8.

verifier Sistem

Tampilkan hasil autentikasi

pengecekan Masukkan plaintext

Proses nilai x, v, v invers, dan s

(45)

3.1.5. Flowchart Sistem

3.1.5.1. Flowchart Gambar Umum

Secara umum proses yang dilakukan ini dapat dilihat pada flowchart gambaran umum pada gambar 3.9.

Start

Input plaintext

End Pembangkitan bilangan Prima

p dan q

Pembangkitan bilangan Acak

Pengecekan/ Autentikasi

FFS

Tampilkan hasil Autentikasi

(46)

3.1.5.2Flowchart dan pseudocode Proses Generate p dan q

Proses gnerate bilangan prima p dan q ini menggunakan metode Fermat. Berikut ini flowchart yang menggambarkan langkah-langkah generate bilangan prima.

start

p, q

For i=0;i<p.length, i++ For i=0;i<q.length, i++

If ap-1 = 1(mod p) False

true

End

no

yes

Tampilkan p, q

(47)

3.1.5.3.Flowchart dan Pseudocode Proses Pembangkitan Bilangan Acak Metode Quadratic Linear Congruential Generator (QLCG)

Proses pembangkitan bilangan acak dilakukan dengan Metode Quadratic Linear Congruential Generator (QLCG), dapat dilihat pada Gambar 3.11.

Mulai

a , b , c,

Xo = key(i) for i = 1; i = 256 ; i++

Selesai

key(i) = (ceil((a*Xo*Xo+b*X0+C) mod 256

Tampilkan bilangan acak

(48)

Pseudocode metode Quadratic Linear Congruential Generator (QLCG).

private int po (n,m)

int hasil1

loop i from 0 to i less then m

hasilhasil*n

return hasil

end loop

public int Generate(index)

array x0

loop i from 1 to i less then 256

x[i]((a*pow(x[i-1],2))+b*x[i-1]+c) mod m

return x[index]

end loop

Pada saat akan melakukan pembangkitan bilangan acak maka program akan mengeksekusi nilai x[i] sampai 256 kali. Ketika algoritma Quadratic Linear Congruential Generator berjalan maka program akan menampilkan hasil seluruh bilangan acak yang di dapat dan memilih salah satu bilangan acak secara random yang akan digunakan pada proses autentikasi selanjutnya.

3.1.5.4.Flowchart dan pseudocode Proses Autentikasi (Identifikasi Skema) Feige Fiat Shamir (FFS)

(49)

Start

p,q

n = p x q

r

v = x2 mod n

s2 = v-1 mod n v-1 = s2 mod n

y = r x mod n= r2 mod n

Input paliantext

stop x = r2 mod n

no If random bit

b=1 yes x mod n=v(y2 mod n) mod n

Hasil autentikasi

, y = rs mod n

(50)

pseudocode Proses Autentikasi (Identifikasi Skema) Feige Fiat Shamir (FFS): private FFSAlgorithm()

QLCGGen(a,b,c,m)

GenerateBigPrime(p)

GenerateBigprime(q)

rgenerate[index]

x(r*r) mod n

v(x*x) mod n

initialize counter to zero

initialize result to zero

while result not equals to 1

counter++

result  (v*counter) mod n

end while

initialize counter to zero

initialize result to zero

while result not equals to 1

counter++

result(counter*counter) mod n

end while

end

public bool otentikasi(int t)

for i equals to 0, i less then t

if (index"0")

y:=r

valA x mod n

valBr*r mod n

if(valA not equals to valB)

return false

(51)

endif

return true

end

Pada saat akan melakukan proses identifikasi skema (autentikasi) dengan protokol Feige Fiat Shamir (FFS) maka program akan memproses nilai n dan r yang diperoleh untuk mendapatkan nilai x, v, v-invers, dan memproses hasil autentikasi setelah user menginputkan data yang akan diidentifikasi.

3.1.6. Rancangan Antar Muka

Sistem akan dibangun menggunakan bahasa pemrograman C# dengan menggunakan software Microsoft Visual Studio. Rancangan antar muka akan disesuaikan dengan kebutuhan dan software yang digunakan. Antar muka menggunakan lima form, form utama ,form about, form Help, form Protokol FFS dengan QLCG, form protokol FFS tanpa QLCG

3.1.6.1.Antar Muka Mainform

Pada Mainformuser dapat memilih menu tersedia

X

__

File About Help

Implementasi Zero Knowledge Proof

dengan Feige Fiat Shamir dan Quadratic Linear Congruential generator

Gambar 3. 13 Rancangan Form Utama

(52)

Tabel 3.4 Rincian Rancangan Form Utama

No Tipe Teks Nama Keterangan

1 MenuStrip File Menustrip1 Terdapat beberapa sub menu 2 MenuStrip About Menustrip2 Terdapat submenu untuk

beralih ke Form About

3 MenuStrip Help MenuStrip3 Submenu untuk ke Form Help

4 Label Judul Label1 -

5 PictureBox LambangUSU PictureBox1 -

6 Label Jurusan Label2 -

3.1.5.1Antar Muka FormAuthenticationwith FFS and QLCG

Pada form Autentikasi user akan menginputkan bilangan prima yang nantinya akan proses.

X

__ File About Help

1 2 3

PROTOKOL FEIGE FIAT SHAMIR DENGAN QUADRATIC LINEAR CONGRUENTIAL GENERATOR

Gambar 3.14 Rancangan Form Authenticationwith FFS and QLCG

(53)

Tabel 3.5 Rincian Rancangan Form Authentication with FFS and QLCG

No Tipe Teks Nama Keterangan

1 MenuStrip File Menustrip1 Terdapat beberapa sub menu

2 MenuStrip About Menustrip2 Terdapat submenu untuk beralih ke Form About 3 MenuStrip Help MenuStrip3 Submenu untuk ke Form

Help

4 Label Judul Label1 -

5 Label P Label2 -

6 Label Q Label3 -

7 Label N Label4 -

8 Label R Label5 -

9 Label X Label6 -

10 Label V Label7 -

11 Label v-invers Label8 -

12 Label S Label9 -

13 Textbox - Tbp Inputan bilangan prima p

14 Textbox - Tbq Inputan bilangan prima q

15 Textbox - Tbn hasil perkalian p x q

16 Textbox - Tbr Inputan bilangan acak

17 Textbox - Tbx Tampilan hasil r2 mod n

18 Textbox - Tbv Tampilan hasil x2 mod n

19 Textbox - tbv_invers Tampilan hasil v invers 20 Button Open File btnOpen Membuka File

21 Textbox - tbFile Tampilan file yang dibuka

22 Grupbox Info File - Berisi informasi mengenai file

23 Button Generate p Buttonp Bangkitkan bilangan prima p

24 Button Generat q Buttonq Bangkitkan bilangan

(54)

Tabel 3.6 Lanjutan Rincian Rancangan Form Autentikasi

No Tipe Teks Nama Keterangan

25 Button Process Proses Proses hasil r, x, v, v invers, s

26 Groupbox Authentication - Menampilkan hasil proses autentikasi

27 Textbox - A Hasil pengecekan pertama

28 Textbox - B Hasil pengecekan kedua

29 Label - LabelTime1 Menampilkan waktu

autentikasi

30 Button Random r Btnr Memproses bilangan acak

31 textBox - Txtbox Menampilkan seluruh

nilai r

32 Label - Labeltime2 Menampilkan waktu

pembangktan bilangan acak

33 Label - Labeltime3 Menampilkan waktu

process

3.2 Tahapan Sistem

3.2.1 Tahapan metode Fermat

Teorema Fermat menyatakan bahwa jika n adalah bilangan yang akan dites keprimaannya dan 1≤ a < n , maka :

an-1 mod n = 1 dimana : a ∈ Z

Nilai a ditentukan secara acak pada interval antara 2 sampai n-1. Jika persamaan tersebut tidak terpenuhi pada satu nilai a maka n adalah bilangan komposit. Sedangkan jika persamaan tersebut dipenuhi pada banyak nilai a, maka n adalah kemungkinan prima.

Berikut beberapa contoh pengujian bilangan prima dengan metode Fermat

n = 47

(55)

an-1 mod n

Jika a = 9 ,maka : 947-1 mod 47 = 1 Jika a = 13 ,maka : 1347-1 mod 47 = 1

Karena memenuhi persamaan Fermat pada semua nilai a, maka 47 merupakan bilangan prima.

n = 201

Pembuktian dilakukan dengan mengambil beberapa nilai a pada interval 1 < a < 201, sebagai contoh a = { 32, 51, 199}

Karena tidak memenuhi persamaan Fermat, maka 201 bukan merupakan bilangan prima.

n = 227

Pembuktian dilakukan dengan mengambil beberapa nilai a pada interval

Karena memenuhi persamaan Fermat pada semua nilai a, maka 227 merupakan bilangan prima.

(56)

Pembuktian dilakukan dengan mengambil beberapa nilai a pada

Karena memenuhi persamaan Fermat pada semua nilai a, maka 71

merupakan bilangan prima.

3.2.2 Tahapan Metode Quadratic Linear Congruential Generator (QLCG)

Penentuan keempat konstanta tersebut akan menentukan kualitas bilangan acak yang dihasilkan Pembangkit bilangan acak QLCG mengalami pengulangan pada periode tertentu atau setelah sekian kali pembangkitan, hal ini adalah salah satu sifat pembangkitan dari metode ini. QLCG mempunyai periode tidak lebih dari m dan kebanyakan kasus periodenya kurang dari m.

Di bawah ini, ada beberapa buah contoh hasil analisis yang penulis lakukan dengan beberapa buah kombinasi keempat konstanta LCG :

(57)

= 7

Nilai Xn selanjutnya dapat dilihat pada tabel 3.7 dibawah ini: Tabel 3.7 Tabel dengan nilai a = 7, b=24, c = 11, m = 16

Tabel 3.3 menunjukkan hasil pembangkitan kunci dengan menggunakan metode QLCG. Nilai 11, 2, 7, 10, 7 adalah kunci yang diperoleh dari hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke tiga.

2. Tabel hasil bilangan acak metode QLCG dengan nilai a= 29, b=31 , c=49, m=256

(58)

Tabel 3.8 Hasil bilangan acak metode QLCG dengan nilai a= 29, b=31, c=49,

(59)

3. Tabel hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256

X0 = 0

X1 = (a*Xn-1*Xn-1+b*Xn-1+c) mod 256 = (124*0*0 + 637* 0 + 381) mod 256

= 381 mod 256 = 125

X2 = (a*Xn-1*Xn-1+b*Xn-1+c) mod 256

= (124*125*125 + 637 * 125 + 381) mod 256 = 2017506 mod 256

= 226

X3 = (a*Xn-1*Xn-1+b*Xn-1+c) mod 256

= (124*226*226 + 637 * 226 + 381) mod 256 = 6477767 mod 256

= 199

Nilai Xn selanjutnya dapat dilihat pada tabel 3.9 dibawah ini:

Tabel 3.9 Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256

Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1

0 0 32 32 64 64 96 96 128 128 160 160 192 192 224 224

1 125 33 29 65 189 97 93 129 253 161 157 193 61 225 221

2 226 34 2 66 34 98 66 130 98 162 130 194 162 226 194

3 199 35 103 67 7 99 167 131 71 163 231 195 135 227 39

4 100 36 132 68 164 100 196 132 228 164 4 196 36 228 68

5 17 37 177 69 81 101 241 133 145 165 49 197 209 229 113

6 198 38 230 70 6 102 38 134 70 166 102 198 134 230 166

7 155 39 59 71 219 103 123 135 27 167 187 199 91 231 251

(60)

Tabel 3.10 Lanjutan Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256

Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1

9 165 41 69 73 229 105 133 137 37 169 197 201 101 233 5

10 42 42 74 74 106 106 138 138 170 170 202 202 234 234 10

11 111 43 15 75 175 107 79 139 239 171 143 203 47 235 207

12 172 44 204 76 236 108 12 140 44 172 76 204 108 236 140

13 57 45 217 77 121 109 25 141 185 173 89 205 249 237 153

14 14 46 46 78 78 110 110 142 142 174 174 206 206 238 238

15 67 47 227 79 131 111 35 143 195 175 99 207 3 239 163

16 144 48 176 80 208 112 240 144 16 176 48 208 80 240 112

17 205 49 109 81 13 113 173 145 77 177 237 209 141 241 45

18 114 50 146 82 178 114 210 146 242 178 18 210 50 242 82

19 23 51 183 83 87 115 247 147 151 179 55 211 215 243 119

20 244 52 20 84 52 116 84 148 116 180 148 212 180 244 212

21 97 53 1 85 161 117 65 149 225 181 129 213 33 245 193

22 86 54 118 86 150 118 182 150 214 182 246 214 22 246 54

23 235 55 139 87 43 119 203 151 107 183 11 215 171 247 75

24 216 56 248 88 24 120 56 152 88 184 120 216 152 248 184

25 245 57 149 89 53 121 213 153 117 185 21 217 181 249 85

26 186 58 218 90 250 122 26 154 58 186 90 218 122 250 154

27 191 59 95 91 255 123 159 155 63 187 223 219 127 251 31

28 60 60 92 92 124 124 156 156 188 188 220 220 252 252 28

29 137 61 41 93 201 125 105 157 9 189 169 221 73 253 233

30 158 62 190 94 222 126 254 158 30 190 62 222 94 254 126

31 147 63 51 95 211 127 115 159 19 191 179 223 83 255 243

(61)

4. Tabel hasil bilangan acak metode QLCG dengan nilai a = 266, b = 267, c =

Nilai Xn selanjutnya dapat dilihat pada tabel 3.8 dan 3.11 dibawah ini:

(62)

Tabel 3.12 Lanjutan Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637,

Tabel 3.11 dan 3.12 menunjukkan hasil pembangkitan kunci dengan menggunakan metode QLCG. Nilai 11, 62, 221, 100, 247, 210, 185, 232 dan seterusnya adalah kunci yang diperoleh dari hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke 256.

(63)

= 1701923 mod 256 = 35

Nilai Xn selanjutnya dapat dilihat pada tabel 3.13 di bawah ini:

(64)

Tabel 3.13 menunjukkan hasil pembangkitan kunci dengan menggunakan metode QLCG. Nilai 97, 130, 35, 4, 229, 134, 167, 8, 105, 138, 43, 12 dan seterusnya adalah kunci yang diperoleh dari hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke 256.

Pada bab sebelumnya sudah disinggung bahwa QLCG mempunyai periode tidak lebih besar dari m. Jika a, b, c dan m dipilih secara tepat (misalnya (b-a) mod m = 1, c merupakan bilangan ganjil, dan m merupakan bilangan kelipatan 2), maka QLCG akan mempunyai periode maksimal, yaitu m – 1. Dari grafik di atas, dapat kita buktikan pernyataan tersebut. Pada tabel 3.5, Tabel 3.6 dan Tabel 3.7, terlihat kombinasi secara tepat antara a, b, c dan m, sehingga QLCG mempunyai periode maksimal (m-1), dimana dengan m = 256, perulangan terjadi pada n=256. Sedangkan pada Tabel 3.2 kombinasi a, b, dan m sangat buruk, sehingga terjadi perulangan saat n=3 dengan m=256, dan Tabel 3.3 terjadi perulangan pada saat n=65 dengan m=256 sehingga tidak memenuhi syarat untuk menghasilkan QLCG yang memiliki periode maksimal.

3.2.3 Tahapan Feige Fiat Shamir

Nilai r sebagai bilangan acak yang didapatkan dari pembangkit bilangan acak dengn metode Quadratic Linear Congruential Generator, akan digunakan pada tahapan Feige Fiat Shamir.

1. Percobaan I

• Tim : p =11

q = 13  n = 11 x 13 = 143

• Tian : r = 17 x = �2���� = 172 mod 143 = 3

• Tim : v = �2����

(65)

v-1= v*v-1 mod n = 9*2 mod 143 = 18

v-1= v*v-1 mod n = 9*3 mod 143 = 27

dan hasil v-invers dapat dilhat pada Tabel 3.14 berikut ini. Tabel 3.14 Hasil v-invers Percobaan I

v-1 v.v-1 mod n

1 9

2 18

3 27

4 36

5 45

6 54

7 63

8 72

9 81

10 90

11 99

12 108

13 117

14 126

15 135

16 1

s2= v-1(mod n) s sebagai kunci private Tian v-1= s2 mod n

= 12 mod 143 = 1

(66)

= 4

v-1= s2 mod n = 32 mod 143 = 9

v-1= s2 mod n = 42 mod 143 = 16

hasil kunci private s dapat dilihat pada tabel 3.15 berikut ini. Tabel 3.15 Hasil kunci private s Percobaan I

� �2���

1 1

2 4

3 9

4 16

• Tika  random bit (0 atau 1)

• Tian : menentukan y, jika b = 0  y = r

Jika b = 1  y = �.�����

b = 0  y = r = 17 b = 1  y = 68

• Tika : melakukan pengecekan (autentikasi) b = 0 ����� = �2���� = 3

b = 1 ����� = �(�2����)���� = 3

2. Percobaan II

• Tim : p =23

q = 103

n = 23 x 103 = 2369

Gambar

Tabel 3.2 Spesifikasi Use Case Pemilihan Bilangan acak
Gambar 3.4 Activity Diagram untuk Proses pemilihan bilangan acak
Gambar 3.5 : Activity Diagram untuk Proses Autentikasi
Gambar 3.7 Sequence Diagram untuk Proses input bilangan acak
+7

Referensi

Dokumen terkait

pilih tidak terdaftar dalam pemilu terdaftar dalam daftar pemilih

Dari hasil pengamatan diketahui bahwa semua sampel minyak dalam keadaan cair pada suhu ruang (±27ºC) namun ketika pada suhu rendah (±5ºC) terjadi perubahan fase pada beberapa

Pertumbuhan dan Produksi Tanaman Pakcoy (Brassica rapa L.) secara Vertikultur yang Diberikan Pengairan dengan.. Teknik Pengairan Separuh Daerah Akar (PSDA) pada

[r]

Guru sosiologi tidak menerapkan 1 komponen yang tidak dieterapkan yaitu memotivasi siswa.Dari semua komponen keterampilan menutup pelajaran yang terdiri dari 3 komponen

Menurut psikologi, remaja adalah suatu periode transisi dari masa awal anak anak hingga masa awal dewasa, yang dimasuki pada usia kira kira 10 hingga 12 tahun dan berakhir pada usia

perintah Crosstabs digunakan untuk memperoleh jumlah pada nilai-nilai lebih dari satu variabel. • Pada Crosstabs, setiap nilai pada variabel

Produk Bolmut Ikan adalah kombinasi dari berbagai macam sumber daya alam yang merupakan produk diversifikasi dari hasil perikanan untuk di olah menjadi