BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis Sistem - Implementasi Zero Knowledge Proof Dengan Protokol Feige Fiat Shamir Dan quadratic Linear Congruential Generator

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.

   Analisis Masalah

3.1.1 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.

  Analisis masalah digambarkan dengan Diagram Ishikawa (fishbone Diagram) berikut ini. Bagian kepala atau segiempat yang berada di sebelah kanan merupakan masalah. Sementara di bagian tulang-tulangnya merupakan penyebab.

  Verifier Metode Ketidak percayaan terhadap sebuah pesan pemverifikasi Feige Fiat Shamir Quadatic Linier Congruential Generator File .txt dan .doc C# Menu Autentikasi data, menu help, pop-up menu menerima Text box, input Autentikasi Data sebagai input menu About

  Machine/tools Material

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.

   Persyaratan Fungsional

3.1.2.1 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.

  3. Sistem melakukan autentikasi menggunakan protokol Feige Fiat Shamir dengan Quadratic Linear Congruential Generator dan Feige Fiat Shamir tanpa pembangkit bilangan acak Quadratic Linear Congruential Generator.

3.1.2.2 Analisis 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.

  Berikut ini adalah diagram use case yang dirancang sebagai pemodelan persyaratan sistem berdasarkan informasi kebutuhan sistem dan aktor yang berperan didalamnya.

  <<extends>> <<extends>> Generate p dan q Metode Lehhman Generate p dan q Metode Lehhman

  <<extends>> <<extends>> Quadratic Linear <<extends>>

  <<extends>> Generate bilangan Generate bilangan Congruential acak acak

  Generator <<extends>> <<extends>> Authentication

  Authentication <<uses>> <<uses>> Input File

  User Input File <<extends>> <<extends>> <<extends>>

  <<extends>> Feige Fiat Shamir

Autentikasi

Feige Fiat Shamir

  

Autentikasi

Gambar 3.2 Use case Diagram yang akan Dikembangkan

  Diagram pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh user, melakukan input data dengan men-generate bilangan prima p dan q dan

  user

  kemudian memproses data dan melakukan autentikasi dengan protokol feige Fiat Shamir dengan beberapa kali percobaan hingga proses autentikasi dinyatakan berhasil.

3.1.3.1 Use 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 1. User telah men-generate bilangan p dan q.

  Success Scenario 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

  Berikut ini adalah activity diagram untuk proses generate p dan q:

  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 Activity Diagram untuk Proses input p dan q

3.1.3.2 Use 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 -

  Berikut ini adalah activity diagram untuk proses pemilihan bilangan acak r

  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.3 Use 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 2. sistem akan melakukan proses autentikasi dengan FFS.

  Alternative Flows - Berikut ini adalah activity diagram untuk proses autentikasi.

  System User Sistem menampilkanoutput x, s, Akses tombol v, v invers Process

  User memasukkan Sistem menampilakan output plaintext hasil autentikasi

Gambar 3.5 : Activity Diagram untuk Proses Autentikasi Analisis Sistem Proses

3.1.4. Pada proses autentikasi ini kita menggunakan algoritma Feige Fiat Shamir (FFS).

  Dalam proses Protokol Feige Fiat Shamir (FFS) ini dibutuhkan bilangan prima yang dicari menggunakan metode Fermat dan bilangan acak yang dicari menggunakan metode Quadratic Linear Congruential Generator (QLCG) Pada diagram gambar 3.6 dapat dilihat sequence diagram untuk proses input p dan q.

  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 Proses bilangan acak

  Tampilkan bilangan acak r

Gambar 3.7 Sequence Diagram untuk Proses input bilangan acak 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 Proses nilai x, v, v invers, dan s Masukkan plaintext pengecekan

  Tampilkan hasil autentikasi

Gambar 3.8 Sequence Diagram untuk Proses identifikasi skema (autentikasi) FFS

3.1.5. Flowchart Sistem

  Flowchart Gambar Umum 3.1.5.1.

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

  Start Pembangkitan bilangan Prima p dan q

  Pembangkitan bilangan Acak Input plaintext

  Pengecekan/ Autentikasi FFS Tampilkan hasil Autentikasi

  End

Gambar 3.9 Gambaran Umum Sistem

3.1.5.2 Flowchart 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++ p-1

  If a = 1(mod p) no False yes true Tampilkan p, q End

Gambar 3.10 Flowchart untuk proses Generate p dan q

  

3.1.5.3.Flowchart dan Pseudocode Proses Pembangkitan Bilangan Acak

Quadratic Linear Congruential Generator (QLCG)

Metode

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

  Mulai a , b , c, for i = 1; i = 256 ; i++ key(i) = (ceil((a*Xo*Xo+b*X0+C) mod 256

  Xo = key(i) Tampilkan bilangan acak

  Selesai

Gambar 3.11 : Flowchart untuk Proses QLCG 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)

  Proses autentikasi dilakukan dengan protokol Feige Fiat Shamir. Langkah- langkah pengecekan atau autentikasi dapat dilhat pada Gambar 3.12.

  Start p,q n = p x q r v = x 2 mod n s 2 = v -1 mod n v

  • -1 = s
  • 2 mod n y = r x mod n= r2 mod n Input paliantext stop x = r 2 mod n no If random bit b=1 x mod n=v(y2 mod n) mod n yes

      Hasil autentikasi , y = rs mod n

    Gambar 3.12 :

      

    Flowchart untuk Proses Autentikasi

      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

       x mod n valA valB r*r mod n if(valA not equals to valB) return false end if 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 Mainform user dapat memilih menu tersedia

      1

      3 __

      2 X File About Help

      4 Implementasi Zero Knowledge Proof dengan

      Feige Fiat Shamir dan Quadratic

    Linear Congruential generator

      5 Lambang USU

      6 DEPARTEMEN S1 ILMU KOMPUTER

    FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

    UNIVERSITAS SUMATERA UTARA

      

    Gambar 3. 13 Rancangan Form Utama

      Komponen yang dipakai untuk membangun antar muka Mainform pada gambar 3.13, dapat dilihat pada tabel 3.4 berikut ini.

    Tabel 3.4 Rincian Rancangan Form Utama

    3.1.5.1 Antar Muka Form Authenticationwith FFS and QLCG

    3 PROTOKOL

    7 Time

      28

      19

      

    26

      25

      24

      23

      22

      21

      20

      14

      27 n

      6

      29 r

      15

      

    8

    Random r

      30

      

    31

    Time

      33 Gambar 3.14 Rancangan Form Authenticationwith FFS and QLCG

      Komponen yang dipakai untuk membangun antar muka form autentikasi pada gambar 3.14 dapat dilihat pada tabel 3.5 berikut :

      5

      9

      No Tipe Teks Nama Keterangan

      2

      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 -

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

      X __ File About Help

      1

       FEIGE FIAT SHAMIR DENGAN QUADRATIC LINEAR CONGRUENTIAL GENERATOR p q x v v-invers s

      10

      Generate p Process Genereate q

      Open File File Information File Name Size Location Authentication

      4

      18

      17

      16

      14

      13

      12

      11

    32 Time

    Tabel 3.5 Rincian Rancangan Form Authentication with FFS and QLCG

      14 Textbox - Tbq Inputan bilangan prima q

      Bangkitkan bilangan prima p

      23 Button Generate p Buttonp

      22 Grupbox Info File - Berisi informasi mengenai file

      21 Textbox - tbFile Tampilan file yang dibuka

      20 Button Open File btnOpen Membuka File

      19 Textbox - tbv_invers Tampilan hasil v invers

      mod n

      2

      18 Textbox - Tbv Tampilan hasil x

      mod n

      2

      17 Textbox - Tbx Tampilan hasil r

      16 Textbox - Tbr Inputan bilangan acak

      15 Textbox - Tbn hasil perkalian p x q

      13 Textbox - Tbp Inputan bilangan prima p

      No Tipe Teks Nama Keterangan

      12 Label S Label9 -

      11 Label v-invers Label8 -

      V Label7 -

      10 Label

      X Label6 -

      9 Label

      8 Label R Label5 -

      7 Label N Label4 -

      6 Label Q Label3 -

      5 Label P Label2 -

      4 Label Judul Label1 -

      3 MenuStrip Help MenuStrip3 Submenu untuk ke Form Help

      2 MenuStrip About Menustrip2 Terdapat submenu untuk beralih ke Form About

      1 MenuStrip File Menustrip1 Terdapat beberapa sub menu

      24 Button Generat q Buttonq Bangkitkan bilangan prima q

    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 Tahapan metode Fermat

    3.2.1 Teorema Fermat menyatakan bahwa jika n adalah bilangan yang akan dites

      keprimaannya dan 1

      ≤ a < n , maka : n-1 a 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

      Pembuktian dilakukan dengan mengambil beberapa nilai a pada interval 1 < a < 47, sebagai contoh a = { 9, 13}

      n-1 a mod n

      Jika a = 9 ,maka :

      47-1

      9 mod 47 = 1 Jika a = 13 ,maka :

      47-1

      13 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}

      n-1 a mod n

      Jika a = 32,maka :

      201-1

      32 mod 201 = 19 Jika a = 149 ,maka :

      201-1

      149 mod 201 = 91 Jika a =199 ,maka :

      201-1

      199 mod 201 = 4 Karena tidak memenuhi persamaan Fermat, maka 201 bukan merupakan bilangan prima.

    • n = 227

      Pembuktian dilakukan dengan mengambil beberapa nilai a pada interval 1 < a < 227, sebagai contoh a = { 7, 45, 167}

      an-1 mod n

      Jika a = 7 ,maka :

      227-1

      7 mod 227 = 1 Jika a = 45 ,maka :

      227-1

      45 mod 227= 1 Jika a = 167 ,maka :

      227-1

      167 mod 227 = 1 Karena memenuhi persamaan Fermat pada semua nilai a, maka 227 merupakan bilangan prima.

    • n = 71

      Pembuktian dilakukan dengan mengambil beberapa nilai a pada interval 1 < a < 71, sebagai contoh a = { 8, 17}

      an-1 mod n

      Jika a = 8 ,maka :

      71-1

      8 mod 71 = 1 Jika a = 17 ,maka :

      71-1

      17 mod 71 = 1

      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 :

      1. Tabel hasil bilangan acak metode QLCG dengan nilai a = 7, b=24, c = 11, m = 16 X = 0

      X

      1 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 16

      = (7*0*0 + 24 * 0 + 11) mod 16 = 11 mod 16 = 11

      X = (a*X *X +b*X +c) mod 16

      2 n-1 n-1 n-1

      = (7*11*11 + 24 * 11 + 11) mod 16 = 1122 mod 16 = 2

      X

      3 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 16

      = (7*2*2 + 24 * 2 + 11) mod 16 = 87 mod 16 selanjutnya dapat dilihat pada tabel 3.8 dibawah ini:

      n

      = (29*49*49 + 31 * 49 + 49) mod 256 = 71197 mod 256 = 29

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

      X

      1 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

      = (29*0*0 + 31 * 0 + 49) mod 256 = 49 mod 256 = 49

      X

      2 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

      X

      8

      3

      = (a*X

      n-1

      n-1

      n-1

      = 25337 mod 256 = 249

      Nilai X

      10 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.

      7

      = 7 Nilai X n selanjutnya dapat dilihat pada tabel 3.7 dibawah ini:

      2

    Tabel 3.7 Tabel dengan nilai a = 7, b=24, c = 11, m = 16

      X n

      X n-1

      1

      11

      2

      3

      7

      7

      4

      10

      5

      7

      6

      10

    • X
      • b*X
      • c) mod 256 = (29*29*29 + 31 * 29 + 49`) mod 256

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

      84

      45

      86

      45 54 173

      22

      65 85 193

      53

      37 21 193

      37 52 165

      9 55 137

      20

      57

      83

      57 51 185

      19

      93

      82

      23

      87

      18

      97 61 225

    Tabel 3.8 menunjukkan hasil pembangkitan kunci dengan menggunakan metode QLCG. Nilai 49, 29, 249, 229, 129 dan seterusnya adalah kunci

      41 95 169

      63

      77 94 205 31 169

      62

      97 30 205

      93

      29

      9 24 117 56 245 88 117

      69 92 197

      60

      89 91 217 28 197

      59

      17 26 253 58 125 90 253 27 217

      89

      17 57 145

      25

      93 50 221

      85 80 213 17 113 49 241 81 113

      X n

      49 33 177

      37

      29 3 249 35 121 67 249 4 229 36 101 68 229 5 129

      66

      29 34 157

      2

      49

      65

      1

      39

      21 64 149

      32

      X n-1

      X n

      X n-1

      X n

      X n-1

      1 69 129 6 237 38 109 70 237 7 201

      73 71 201

      48

      44

      13 78 141 15 105 47 233 79 105 16 213

      46

      33 14 141

      77

      33 45 161

      13

      5 76 133

      25 75 153 12 133

      8

      43

      61 74 189 11 153

      42

      81 73 209 10 189

      41

      53 9 209

      72

      53 40 181

      yang diperoleh dari hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke-65.

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

      98 66 130 98 162 130 194 162 226 194 3 199 35 103

      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

      67

      X n-1

      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

      8

      72 40 104 72 136 104 168 136 200 168 232 200 8 232

      32

      X n

      X

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

      1 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

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

      X

      2 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

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

      X

      3 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

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

      Nilai X

      n

      selanjutnya dapat dilihat pada tabel 3.9 dibawah ini:

      X n

      X n-1

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n

      40

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

      21

      54 23 235 55 139

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

      22

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

      53

      97

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

      75 24 216 56 248

      20

      52

      83 87 115 247 147 151 179 55 211 215 243 119 20 244

      23 51 183

      19

      82

      87 43 119 203 151 107 183 11 215 171 247

      88 24 120 56 152 88 184 120 216 152 248 184 25 245 57 149

      81 13 113 173 145 77 177 237 209 141 241

      92 92 124 124 156 156 188 188 220 220 252 252

    Tabel 3.9 dan Tabel 3.10 menunjukkan hasil pembangkitan kunci dengan menggunakan metode QLCG. Nilai 125, 226, 199, 100, 17, 198, 155, 72, 165,42, 111,

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

      63

      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

      61

      28 29 137

      60

      89 53 121 213 153 117 185 21 217 181 249

      60

      28

      31

      95 91 255 123 159 155 63 187 223 219 127 251

      59

      85 26 186 58 218 90 250 122 26 154 58 186 90 218 122 250 154 27 191

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

      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

      X n

      

    X

    n

      X n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n-1

      9 165

      X n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n-1

      41

      15

      13

      78 78 110 110 142 142 174 174 206 206 238 238

      46

      46

      14

      14

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

      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

      69 73 229 105 133 137 37 169 197 201 101 233

      43

      10 11 111

      74 74 106 106 138 138 170 170 202 202 234 234

      42

      42

      10

      5

      172, dan seterusnya adalah kunci yang diperoleh dari hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke-256.

    • X
      • b*X
      • c) mod 256 = (266*11*11 + 267* 11 + 11) mod 256

      25 71 121 103 217 135 57 167 153 199 249 231

      11 33 235 65 203 97 171 129 139 161 107 193 75 225

      43

      2

      62

      34

      94 66 126 98 158 130 190 162 222 194 254 226

      30 3 221

      35

      61 67 157 99 253 131 93 163 189 195 29 227 125 4 100

      36

      4 68 164 100 68 132 228 164 132 196 36 228 196 5 247 37 215 69 183 101 151 133 119 165 87 197 55 229

      23 6 210 38 242

      70 18 102 50 134 82 166 114 198 146 230 178 7 185

      39

      89 8 232 40 136

      96

      38

      44 76 204 108 108 140 12 172 172 204 76 236 236 13 175 45 143 77 111 109 79 141 47 173 15 205 239 237 207 14 218 46 250

      44

      85 12 140

      21 75 117 107 213 139 53 171 149 203 245 235

      43

      74 70 106 102 138 134 170 166 202 198 234 230 11 181

      42

      72 40 104 200 136 104 168 8 200 168 232

      6

      10

      73 67 105 35 137 3 169 227 201 195 233 163

      99

      41

      72 9 131

      1

      64 96 224 128 128 160 32 192 192 224

      4. Tabel hasil bilangan acak metode QLCG dengan nilai a = 266, b = 267, c = 11, m = 256 X = 0

      n-1

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

      = (266*62*62 + 267* 62 + 11) mod 256 = 1039069 mod 256 = 221

      3 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

      X

      = 35134 mod 256 = 62

      n-1

      n-1

      X n

      = (a*X

      2

      X

      = (266*0*0 + 267* 0 + 11) mod 256 = 11 mod 256 = 11

      1 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

      X

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

      X n-1

      64

      X n

      32 160

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n-1

      X n

      

    X

    n

      X n-1

      X n

      X n-1

      X n

      X n-1

      78 26 110 58 142 90 174 122 206 154 238 186

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

      28

      66 23 105 55 201

      87 41 119 137 151 233 183 73 215 169 247

      9

      24

      56 56 216 88 120 120 24 152 184 184 88 216 248 248 152 25 243 57 211 89 179 121 147 153 115 185 83 217 51 249

      19

      26

      22

      58

      54

      90 86 122 118 154 150 186 182 218 214 250 246 27 229

      59

      69 91 165 123 5 155 101 187 197 219 37 251 133

      92 60 252 92 156 124 60 156 220 188 124 220 28 252 188 29 159 61 127

      22

      93 95 125 63 157 31 189 255 221 223 253 191 30 106 62 138 94 170 126 202 158 234 190 10 222 42 254

      74 31 129 63 225

      95 65 127 161 159 1 191 97 223 193 255

      33 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.

      5. Tabel Hasil bilangan acak metode QLCG dengan nilai a= 96 , b=609, c=353, m=256 X = 0

      X

      1 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

      = (96*0*0 + 609* 0 + 353) mod 256 = 353 mod 256 = 97

      X

      2 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

      = (96*97*97 + 609* 97 + 353) mod 256 = 962690 mod 256 = 130

      X

      3 = (a*X n-1 *X n-1 +b*X n-1 +c) mod 256

      98 54 130 86 162 118 194 150 226 182 2 214 34 246

      7

      X n

      X n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n

      X n-1

      

    X

    n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n-1

      52 52 212 84 116 116 20 148 180 180 84 212 244 244 148 21 231 53 199 85 167 117 135 149 103 181 71 213 39 245

      15 209

      47

      49 79 145 111 241 143 81 175 177 207 17 239 113

      16

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

      49

      91

      81 59 113 27 145 251 177 219 209 187 241 155

      18

      78 50 110 82 142 114 174 146 206 178 238 210 14 242

      46

      19

      13 51 109 83 205 115 45 147 141 179 237 211 77 243 173

      20

      = (96*130*130 + 609* 130 + 353) mod 256

      = 1701923 mod 256 = 35 Nilai X n selanjutnya dapat dilihat pada tabel 3.13 di bawah ini:

      48

      20

      19

      83 83 115 115 147 147 179 179 211 211 243 243

      51

      51

      19

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

      80 80 112 112 144 144 176 176 208 208 240 240 17 113 49 145 81 177 113 209 145 241 177 17 209 49 241

      48

      16

      52

      16

      77 45 109 77 141 109 173 141 205 173 237 205 14 142 46 174 78 206 110 238 142 14 174 46 206 78 238 110 15 175 47 207 79 239 111 15 143 47 175 79 207 111 239 143

      13

      45

      76 76 108 108 140 140 172 172 204 204 236 236 13 237

      44

      44

      12

      12

      11

      20

      52

      43

      59

      29

      61

      92 92 124 124 156 156 188 188 220 220 252 252 29 253

      60

      60

      28

      28

      27

      91 91 123 123 155 155 187 187 219 219 251 251

      59

      84 84 116 116 148 148 180 180 212 212 244 244 21 245

      27

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

      88 88 120 120 152 152 184 184 216 216 248 248 25 121 57 153 89 185 121 217 153 249 185 25 217 57 249

      56

      56

      24

      24

      85 53 117 85 149 117 181 149 213 181 245 213 22 150 54 182 86 214 118 246 150 22 182 54 214 86 246 118 23 183 55 215 87 247 119 23 151 55 183 87 215 119 247 151

      21

      53

      75 75 107 107 139 139 171 171 203 203 235 235

      43

    Tabel 3.13 Hasil bilangan acak metode QLCG dengan nilai a= 96 , b=609, c=353, m=256

      X n-1

      96 96 128 128 160 160 192 192 224 224

      64

      64

      32

      32

      X n-1

      X n

      X n-1

      X n

      X n

      97 33 129 65 161 97 193 129 225 161 1 193 33 225

      X n-1

      

    X

    n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n

      X n-1

      X n

      1

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

      11

      68 68 100 100 132 132 164 164 196 196 228 228 5 229

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

      72 72 104 104 136 136 168 168 200 200 232 232 9 105 41 137 73 169 105 201 137 233 169 9 201 41 233

      40

      40

      8

      8

      69 37 101 69 133 101 165 133 197 165 229 197 6 134 38 166 70 198 102 230 134 6 166 38 198 70 230 102 7 167 39 199 71 231 103 7 135 39 167 71 199 103 231 135

      5

      37

      36

      98

      36

      4

      4

      3

      99 99 131 131 163 163 195 195 227 227

      67

      67

      35

      35

      3

      93 61 125 93 157 125 189 157 221 189 253 221 30 158 62 190 94 222 126 254 158 30 190 62 222 94 254 126 31 191 63 223 95 255 127 31 159 63 191 95 223 127 255 159

    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.

       Tahapan Feige Fiat Shamir

    3.2.3 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

      2

      x =

      2

      = 17 mod 143 = 3

      2

    • Tim : v =

      2

      3 v = 143 = 9

    • 1 -1

      v = v*v mod n = 9*1 mod 143 = 9

    • 1
    • 1
    • 1
    • 1
    • 1
    • 1

      = v

      9

Dokumen yang terkait

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

4 94 135

Algoritma The Sieve Of Eratosthenes Dan Linear Congruential Generator (LCG) Dalam Perancangan Aplikasi Kriptografi RSA

1 68 72

BAB III METODE PENELITIAN 3.1 Jenis Penilitian - BAB III

0 2 22

Pertukaran kunci Diffie-Hellman dengan Pembangkit Bilangan Acak Linear Congruential Generator (LCG)

0 0 5

Institutional Repository | Satya Wacana Christian University: Penggunaan Konstanta 171 dan 11213 dalam Linear Congruential Generator dengan Pola Hexagram Lacing dalam Perancangan dan Implementasi Algoritma Data Berbasis Teks

0 0 25

11 BAB III PERANCANGAN SISTEM 3.1 Ruang Lingkup Game

0 0 17

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Sistem - Perbandingan Metode Analytical Hierarchy Process Dan Weighted Sum Model Pada Sistem Pendukung Keputusan Pemilihan Sepeda

0 0 38

BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis Sistem - Perancangan Sistem Penyampaian Permasalahan Mesin ATM (Automated Teller Machine dan EDC (Electronic Data Capture) Berbasis Platform Menggunakan Phonegap Framework

0 0 117

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Sistem - Perancangan Sistem Pakar Upaya Pengobata Diri Sendiri (Upds) Atau Swamedikasi

0 0 38

BAB 3 ANALISIS DAN PERANCANGAN - Analisis Perbandingan Protokol Better Approach To Mobile Ad Hoc Network (BATMAN) Dengan Protokol Babel Untuk Layanan Voice Over Internet Protocol (VOIP) Pada Mobile Ad Hoc Network (MANET)

0 0 49