• Tidak ada hasil yang ditemukan

BAB II KAJIAN TEORI

2.6 Sistem Waktu Lokal

Dalam dunia komputer terlebih dalam pemograman komputer, konsep waktu merupakan hal yang sangat penting. sistem waktu dapat diukur dengan "Clock System"

yang biasanya diimplementasikan dari hitungan sederhana jumlah detik yang terjadi sejak tanggal dimulai. Hal ini disebut dengan epoch. Pada sistem UNIX dan POSIX, pengaturan sistem waktu dihitung berdasarkan jumlah detik yang telah terlewati sejak awal UNIX epoch yaitu pada 1 Januari 1970 00.00.00 UT, dengan pengecualian untuk detik kabisat. Berbeda dengan sistem yang menerapkan versi 32-bit dan 64-bit Windows API. sistem waktu (Systemtime) dilakukan dengan perhitungan jumlah detik 100 nanosecond sejak 1 Januari 1601 00.00.00 UT yang diwakilkan sebagai nilai tahun, bulan, hari, jam, menit, detik, milidetik.

Sistem waktu dapat dikonverikan menjadi waktu kalender yang dapat dibaca manusia dengan lebih mudah. misalnya waktu sistem UNIX 1.000.000.000 detik dapat diterjemahkan menjadi waktu kalender 9 September 2001 01.46.40 UT. Selain itu Sistem waktu dapat menangani penyesuaian zona waktu, DST (Daylight Saving time), waktu kabisat, dan sistem waktu lokal yang telah diterapkan pada Subrutin Library yang menangani konversi waktu.

UNIX Stamps time merupakan suatu cara untuk menyesuaikan informasi waktu aplikasi dinamis dan terdistribusi baik secara online maupun di sisi klien. Waktu UNIX stamps time melakukan proses dengan melacak waktu sebagai jumlah total yang tersisa yang dihitung dimulai pada zaman UNIX yaitu pada 1 januari 1970 di UTC. Namun karena stamp time bekerja dengan overflow 32-bit, sistem UNIX menyimpan tanggal epoch hingga pada tanggal 19 januari 2038 atau dikenal dengan Y2038.

Pada sistem waktu lokal, UTC menjadi standar waktu untuk menjaga skala waktu dapat tersinkron dengan baik di seluruh dunia. UTC menggunakan dua komponen waktu yaitu International Atomic Time (ITA) dan Universal Time (UT1).

UTC digunakan untuk menunjukkan perbedaan waktu yang relatif pada suatu wilayah yang dapat dinyatakan dengan UTC+n atau UTC-n dimana n adalah perbedaan jam pada suatu wilayah. Universal Time menggunakan GMT yang digunakan sebagai zona waktu. misalkanya Waktu Indonesia Barat (WIB) jam 07.00 WIB setara dengan jam 00.00 GMT dimana berdasarkan satndar UTC Waktu Indonesia Barat (WIB) memiliki standar UTC+7.

BAB III

METODE PENELITIAN

3.1 Tahapan Penelitian

Gambar 3.1 Tahapan Penelitian Adapun tahapan-tahapan penelitian secara umum adalah berikut :

1) Studi literatur

Pada tahapan ini dikumpulkan bahan penelitian dari berbagai sumber pustaka, seperti buku, jurnal (baik cetak maupun online), prosiding, majalah, artikel dan sumber lain yang relevan. Disamping itu juga melakukan konsultasi dengan dosen pembimbing dalam penyususan dan penulisan tesis.

Studi literatur

Pembangkitan bilangan acak semu LFSR dengan waktu lokal sistem

Pengujian keacakan bilangan acak semu

Analisis bilangan acak semu

Hasil dan kesimpulan

2) Pembangkitan bilangan acak semu

Pada proses ini dilakukan dengan membangkitkan bilangan acak semu dengan memodifikasi algoritma LFSR dengan waktu lokal mesin sehingga menghasilkan peningkatan panjang periode maksimum.

3) Pengujian keacakan bilangan acak semu

Pengujian keacakan dilakukan untuk mendapatkan validitas bahwa bilangan yang dibangkitkan dari hasil peningkatan panjang periode maksimum LFSR dengan waktu lokal sistem lolos dari uji statistik bilangan acak semu.

4) Analisis bilangan acak semu

Proses analisis bertujuan untuk mencari perbandingan antara hasil bilangan acak semu dengan meningkatkan panjang periode maksimum LFSR dengan waktu lokal sistem dan hasil bilangan acak semu tanpa peningkatan panjang periode maksimum LFSR dengan waktu lokal sistem

5) Hasil dan kesimpulan

Memaparkan hasil perbandingan dan menyimpulkan hasil penelitian yang telah dilakukan.

3.2 Waktu Penelitian

Waktu yang digunakan untuk melakukan penelitian ini diperkirakan ± 6 (enam) bulan mulai dari studi literatur hingga memaparkan dan menyimpulkan hasil penelitian yang dilakukan.

3.3 Rancangan Pembangkitan Bilangan Acak Semu

Adapun peningkatan panjang periode maksimum yang dibuat pada penelitian ini adalah dengan memodifikasi algoritma Linear Feeedback Shift register dengan cara menggabungkan waktu lokal sistem yang berjalan yaitu dengan mengganti sumber nilai bit input yang sebelumnya berasal dari umpan balik (feedback) LFSR digantikan dengan nilai bit yang berasal dari nilai waktu lokal mesin. Pada awalnya nilai yang muncul pada waktu lokal sistem berupa angka desimal. Oleh karena itu, untuk mendapatkan nilai bit 1 dan 0 maka nilai yang muncul dilakukan perhitungan modulus 2 (mod 2). Setelah itu nilai bit tersebut akan dilakukan proses XOR dengan nilai bit output register.

21

Selain itu terdapat modifikasi dalam pengambilan seed awal yang secara otomatis diambil dari nilai waktu lokal mesin ketika progam dijalankan. Berikut ini adalah flowchart pada proses pembangkitan bilangan acak semu dari algoritma Linear Feedback Shift Register yang telah dimodifikasi dengan waktu lokal sistem dari mesin yang membangkitkan bilangan acak.

Gambar 3.2 Flowchart Pembangkitan LFSR dengan Waktu Lokal Sistem

Berdasarkan flowchart di atas, nilai bit input dipengaruhi oleh nilai waktu yang terus bergerak dari waktu lokal mesin. Pada saat pembangkitan bilangan acak semu dilakukan, maka pada saat itu juga nilai waktu lokal yang muncul terpilih sebagai bit input. Untuk mendapatkan nilai waktu yang terus berubah dengan cepat dari localtime maka peneliti memilih nilai dalam milidetik yang dihitung sejak 1 Januari 1970 00.00.00 UT. Adapun proses pembangkitan bilangan acak semu LFSR menggunakan localtime, peneliti mensimulasikan proses pembangkitan dengan bahasa pemograman Python v.3.6.

Gambar 3.3 Ilustrasi Proses Pembangkitan LFSR dengan Waktu Lokal Sistem 3.4 Pengujian Pembangkitan Bilangan Acak Semu

Pengujian bertujuan untuk mendapatkan hasil percobaan guna mengumpulkan data yang diperlukan untuk melakukan analisa terkait hasil bilangan acak semu yang dibangkitkan dengan meningkatkan panjang periode maksimum algoritma Linear Shift Register dengan waktu lokal sistem. Pembangkitaan nilai bilangan acak semu ditentukan dengan menghitung barisan bit yang terdapat pada kolom register.

Kemudian proses pembangkitan bilangan acak semu akan dilakukan iterasi hingga “N“

kali. Adapun jumlah digit bit dan range bilangan yang dapat dimunculkan dapat dilihat pada tabel berikut :

23

Tabel 3.1 Pengujian Pembangkitan Bilangan Acak Semu

Pengujian

ke- Jumlah digit bit Range bilangan Banyak N bilangan yang dibangkitkan

Probabilitas kemunculan bilangan

1 4 bit 0 – 15 32 kali 1 : 16

2 5 bit 0 – 31 64 kali 1: 32

3 6 bit 0 – 63 128 kali 1 : 64

4 7 bit 0 - 127 256 kali 1 : 128

5 8 bit 0 - 255 512 kali 1 : 256

3.5 Analisis Keacakan Bilangan

Analisis keacakan bilangan perlu dilakukan untuk mengetahui apakah hasil peningkatan panjang periode maksimum algoritma Linear Feedback Shift Regeister dengan waktu lokal sistem sudah memenuhi tujuan yang diharapkan peneliti. Selain itu juga perlu dilakukan pengujian statistik pada bilangan acak semu yang dibangkitkan untuk memastikan apakah bilangan dibangkitkan telah lulus sehingga dapat digunakan pada sistem kriptografi.

BAB IV

HASIL DAN PEMBAHASAN

4.1 Implementasi Sistem

Adapun progam yang digunakan untuk membantu mensimulasikan pembangkitan bilangan acak semu menggunakan bahasa pemograman Python v.3.6. Berikut adalah tampilan awal progam pembangkitan bilangan acak semu LFSR dengan waktu lokal sistem.

Gambar 4.1 Tampilan Simulasi dengan Program Python v.3.6 4.2 Hasil Pembangkitan Bilangan Acak

Pada tahapan ini, pengujian dilakukan dengan membangkitkan bilangan acak semu sebanyak 2Nyang mana N adalah jumlah probabilitas kemunculan angka. Proses pembangkitan bilangan acak dilakukan dengan waktu jeda yang berbeda-beda. Hal ini bertujuan untuk mencegah nilai waktu yang berurut apabila menggunakan iterasi secara otomatis di sistem komputer. Seperti yang telah dijelaskan sebelumnya, modifikasi bilangan acak semu LFSR dengan waktu lokal sistem dilakukan pada Seed awal dan bit input. Berikut hasil tampilan bilangan acak semu yang dibangkitkan dengan meningkatkan panjang periode maksimum algoritma LFSR dengan waktu lokal sistem menggunakan jumlah digit register sebanyak 4 bit.

25

Gambar 4.2 Hasil Bilangan Acak Semu dengan Program Python v.3.6 Berikut tabel yang menunjukkan hasil distribusi bilangan acak semu yang dibangkitkan sebanyak 32 kali dengan panjang register 4 bit.

Tabel 4.1 Hasil Bilangan Acak Semu 4 Bit Bilangan acak semu (1 – 16)

4 10 5 2 1 0 0 0 8 4 10 5 2 9 12 6

Bilangan acak semu (17 – 32)

11 5 2 9 12 14 15 15 15 15 7 11 5 10 5 2

Setelah mendapatkan bilangan acak dari percobaan menggunakan register 4 bit, kemudian dengan cara yang sama peneliti mencoba membangkitkan bilangan acak semu dengan percobaan jumlah bit yang telah diterangkan pada Bab III. Adapun kumpulan hasil dari semua bilangan acak semu yang dibangkitkan dapat dilihat pada tabel berikut :

27 Tabel 4.2 Frekuensi Bilangan yang Dibangkitkan dengan Waktu Lokal Sistem

Register 4 bit Register 5 bit Register 6 bit Register 7 bit Register 8 bit Bilangan Frekuensi Bilangan Frekuensi Bilangan Frekuensi Bilangan Frekuensi Bilangan Frekuensi

0 – 1

4.3 Analisis kinerja algoritma

Berdasarkan penjelasan Bab sebelumnya, penelitian ini bertujuan untuk menghasilkan bilangan acak dengan meningkatkan panjang periode maksimum bilangan dari bilangan acak semu yang dibangkitkan oleh algoritma LFSR.

(a) (b)

Gambar 4.3 Perbandingan Periode Bilangan Acak Semu 4 Bit (a) Localtime LFSR dan (b) LFSR

Dapat dilihat pada grafik diatas, masing-masing algoritma melakukan percobaan dengan membangkitkan bilangan acak semu menggunakan register 4 bit sebanyak 32 kali. Pada masing-masing grafik terdapat dua warna latar yang berbeda yang bertujuan untuk mempermudah melihat perbedaan panjang periode pembangkitan bilangan. Pada Gambar 4.7 (b) terdapat periode yang berulang terhadap algoritma LFSR dimana pola bilangan yang dibangkitkan pada urutan ke-1 sampai dengan urutan ke-15 yang ditandai dengan latar berwarna biru sebagai periode pertama dan berulang kembali pada urutan ke-16 sampai ke-30 yang ditandai dengan latar berwarna merah sebagai periode kedua dan begitu seterusnya. Hal ini menjelaskan bahwa terdapat suatu pola urutan pembangkitan bilangan acak semu memiliki panjang maksimum periode sebesar 15 kali yang apabila pembangkitan bilangan telah mencapai maksimum periode maka bilangan yang muncul setelahnya akan mengulang kembali mengikuti angka pada periode sebelumnya. Berbeda dengan pada Gambar 4.7 (a) dimana terdapat pola yang

0

29

tidak beraturan yang dapat dilihat pada perbedaan grafik antara latar warna biru dan latar warna merah. Hal ini menunjukkan belum adanya perulangan periode pembangkitan bilangan yang dimulai dari urutan 1 hingga urutan ke 32. Jadi dapat kita simpulkan peningkatan panjang periode maksimum algoritma LFSR dengan sistem waktu lokal mempengaruhi output bilangan dari LFSR dimana tidak ada lagi terdapat pola yang mengikuti periode sebelumnya.

(a) (b)

Gambar 4.4 Perbandingan Periode Bilangan Acak Semu 5 Bit (a) Localtime LFSR dan (b) LFSR

Hasil yang serupa juga terjadi pada percobaan menggunakan register 5 bit, 6 bit, 7 bit dan 8 bit. Gambar 4.4 menunjukkan perbandingan hasil pembangkitan bilangan acak semu menggunakan register 5 bit dimana pada Gambar 4.8 (a) terdapat pola yang tidak beraturan dari pembangkitan ke-1 hingga ke-64. Berbeda dengan Gambar 4.8 (b) dimana memiliki panjang maksimum 31 kali sehingga pembangkitan 1 hingga ke-31 (periode pertama latar warna biru) berulang pada pembangkitan ke-32 hingga ke-62 (periode kedua latar warna merah). Berdasarkan hasil tersebut menunjukkan terdapat perulangan pola periode bilangan apabila membangkitkan bilangan acak semu menggunakan algoritma LFSR. Untuk melihat hasil perbandingan panjang periode bilangan yang dibangkitkan pada register 6 bit, 7 bit dan 8 bit dapat dilihat pada

Tabel 4.3 Hasil Perbandingan Ppanjang Periode Maksimum Jumlah

Register LFSR Localtime

LFSR

4.4 Uji Statistik Bilangan Acak Semu 4.4.1 Uji Runtun (The Run Test)

Uji Runtun (The Run Test) digunakan sebagai metode pengujian untuk melihat adanya runtun barisan tanda-tanda yang identik yang didahului atau diikuti oleh sebuah tanda yang berbeda. Adapun hasil Run Test dari sample bilangan acak semu yang dibangkitkan dapat dilihat dengan bantuan aplikasi SPSS yang merupakan aplikasi khusus untuk menghitung suatu nilai statistik. Dengan menggunakan taraf nyata α = 0,05 maka hipotesis H0 dapat diterima apabila nilai p-value > α. Berikut adalah hasil Uji Runtun dari register 4 bit :

Runs Test

Asymp. Sig. (2-tailed) ,604 a. Median

Gambar 4.5 Hasil Runs Test dari Register 4 Bit

Dapat dilihat pada gambar hasil SPSS diatas dibagi 2 Case berdasarkan Test Value 6,5 yang merupakan Median dari keseluruhan bilangan acak semu yang dibangkitkan. Dari total N= 32 maka didapatkan nilai n (n < median) = 17; (m ≥ median) = 15; total Run (R) = 15 dan nilai p-value = 0,604 maka peneliti dapat membuktikan Hipoteis H0 dapat diterima karena nilai p-value > α.

31

Tabel 4.4 Hasil Runs Test Bilangan Acak Semu

Register 4 bit Register 5 bit Register 6 bit Register 7 bit Register 8 bit LFSR Local Rata-rata Localtime LFSR = 0,379

4.4.2 Uji Histogram

Berikut ini adalah perbandingan distribusi frekuensi antara bilangan acak semu dari pembangkit LFSR dan peningkatan panjang periode maksimum LFSR. Adapun hasil dari perbandingan tersebut dapat dilihat pada gambar berikut :

(a)

(b)

Gambar 4.6 Perbandingan Histogram Register 4 Bit (a) Localtime LFSR dan (b) LFSR

Gambar 4.6 menunjukkan perbandingan distribusi angka bilangan acak semu yang dibangkitkan menggunakan register 4 bit. Dapat dilihat pada Gambar 4.6 (a) diatas hasil bilangan acak semu dari peningkatan panjang periode maksimum LFSR dengan waktu lokal sistem memiliki frekuensi yang relatif tidak beraturan. Berbeda halnya dengan Gambar 4.6 (b) yang merupakan hasil dari algoritma LFSR memiliki distribusi angka yang lebih merata.

(a)

(b)

Gambar 4.7 Perbandingan Histogram Register 6 Bit (a) Localtime LFSR dan (b) LFSR

Hal yang sama pada percobaan yang dilakukan menggunakan register 5 bit, 6 bit, 7 bit dan 8 bit. Gambar 4.7 (b) menunjukkan hasil distribusi frekuensi bilangan acak register 6 bit LFSR terlihat lebih rata dari pada hasil distribusi frekuensi bilangan acak register 6 bit LFSR dengan waktu lokal sistem seperti yang ditunjukkan pada Gambar 4.7 (b). Untuk melihat hasil perbandingan distribusi frekuensi bilangan acak pada register 5 bit, 7 bit dan 8 bit dapat dilihat pada Lampiran B.

0

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari hasil percobaan pembangkitan bilangan acak semu dengan peningkatan panjang periode maksimum dengan waktu lokal sistem maka dapat dibuat kesimpulan adalah sebagai berikut :

1. Bilangan acak semu yang dihasilkan oleh dari peningkatan panjang periode maksimum Linear Feedback Shift Register dengan waktu lokal sistem tidak memiliki pola periode bilangan yang beraturan. Dengan begitu tidak ada perulangan periode bilangan acak semu yang membentuk suatu pola tertentu.

2. Dari hasil uji statistik menggunakan Uji Runtun, bilangan acak semu dari hasil peningkatan panjang periode maksimum Linear Feedback Shift Register mendapatkan hasil lolos uji statistik sebesar 100% dari 5 percobaan. Dengan begitu bilangan acak semu ini layak untuk digunakan didalam sistem kriptografi.

3. Hasil histogram yang menunjukkan distribusi frekuensi bilangan acak semu menunjukkan bahwa bilangan acak semu dari hasil peningkatan panjang periode maksimum Linear Feedback Shift Register lebih tidak merata dibandingkan bilangan acak semu Linear Feedback Shift Register.

5.2 Saran

Saran penulis terhadap tesis ini adalah sebagai berikut :

1. Perlu dilakukan pengujian lebih lanjut terkait peningkatan panjang periode maksimum Linear Feedback Shift Register dengan menggunakan beberapa uji

statistik lain untuk lebih meyakinkan bilangan acak semu sangat layak digunakan sebagai sistem kriptografi.

2. Adanya pengembangan penelitian lebih lanjut dari penelitian ini agar dapat mendapatkan hasil bilangan acak yang lebih sempurna.

35

DAFTAR PUSTAKA

Abinaya, N.S & Prakasam, P., 2014. Performance Analysis of Maximum Length LFSR and BBS Method for Cryptographic Application. 2014 International Conference on Electronics and Communication Systems (ICECS). (Online) https://doi.org/10.1109/ECS.2014.6892699 (6 Maret 2018).

Aïssa. B, Khaled, M. & Lakhdar, G. 2014. Implementation of Blum Blum Shub Generator for Message Encryption. Proceedings of International Conference on Control, Engineering & Information Technology (CEIT’14) - Copyright IPCO-2014, pp. 118-123.

Bassham III. L. E, Rukhin, A., Soto, J., Nechvatal, J., Smid, M., Barker, E., Leigh, S., Levenson, M., Vangel, M., Banks, D., Heckert, A., Dray, J. & Vo, S. 2010. A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications. NIST Special Publication 800-22 Revision 1a.

(Online) https://www.nist.gov/publications/statistical-test-suite-random-and-pseudorandom-number-generators-cryptographic (5 Maret 2018).

Biebighauser, D. 2000. Testing Random Number Generators. REU Summer 2000 University of Minnesota - Twin Cities. (Online) http://www-users.math.umn.

edu/~garrett/students/reu/ pRNGs.pdf (6 Maret 2018).

Borujeni, S. E. 2002. Cryptography by Pseudo Random Number Generator. First International IEEE Symposium "Intelligent Systems”, September 2002. 244-247. (Online) https://doi.org/ 10.1109/IS.2002.1044262 (6 Maret 2018).

Curiac, D. I., Iercan, D., Dranga, O., Dragan, F. & Banias, O. 2007. Chaos Based Cryptography : End of the Road?. Proceedings of The International Conference on Emerging Security Information, System, and Technologies (SecureWare 2007). (Online) https://doi.org/10.1109/SECUREWARE.2007. 4385313 (24 Februari 2018).

Conrad, K. 2005. Probability distributions and maximum entropy. (Online) http://citeseerx.ist.psu. edu/viewdoc/summary?doi=10.1.1.692.809 (6 Maret 2018).

Haahr, M. 1999. Introduction to Randomness and Random Number. (Online) https://cran.r-project.org/web/ packages/random/vignettes/random-essay.pdf (5 Maret 2018).

Hong, Z., & D, Ji-xue. 2010. Chaos Theory and its Application in Modern Cryptography. International Conference on Computer Application and System

Modeling (ICCASM 2010). V7:332-334 (Online)

https://doi.org/10.1109/ICCASM.2010.5620110. (6 Maret 2018).

Kelsey, J., Schneier, B., Wagner, D. & Hall, C. 1998. Cryptanalytic attacks on pseudorandom number generators. S. Vaudenay, Ed., Springer-Verlag Fast Software Encryption, LNCS 1372: 168-188. (Online) https://link.springer.com /content/pdf/10.1007%2F3-540-69710-1_12.pdf (6 Maret 2018).

L’Ecuyer, Pierre. 1997. Uniform Random Number Generators: A Review. Proceedings of the 1997 Winter Simulation Conference : 127-134. (Online) https://www.informs-sim.org/wsc97papers/0127.PDF (6 Maret 2018).

Lesne, A. 2014. Shannon entropy: a rigorous notion at the crossroads between probability, information theory, dynamical systems and statistical physics.

Mathematical Structures in Computer Science. 24(03). (Online) https://doi.org/10.1017/ S0960129512000783 (5 Maret 2018).

Lesne, A, Blanc, & L. Pezard. 2009. Entropy estimation of very short symbolic sequences. PHYSICAL REVIEW E79, 046208. (Online) https://doi.org/10.1103/PhysRevE.79.046208 (6 Maret 2018).

Niesa, Chaeroen. 2016. Optimasi Kunci dengan Blum Blum Shub pada Algoritma RC4.

Tesis. Universitas Sumatera Utara.

Rahimov. H, Babaei, M., Farhadi, M. 2011. Cryptographic PRNG Based on Combination of LFSR and Chaotic Logistic Map. Applied Mathematics. 2:

1531-1534. (Online) https://doi.org/ 10.4236/am.2011.212217 (6 Maret 2018).

Rastogi, R., Mittal, S. & Shekhar, S. 2015. Linear Algorithm for Imbricate Cryptography Using Pseudo Random Number Generator. 2015 2nd International Conference on Computing for Sustainable Global Development (INDIACom). 89-94. (Online) http://ieeexplore.ieee.org/document/7100227/ (6 Maret 2018).

Röck, A. 2005. Pseudorandom Number Generators for Cryptographic Applications (Online) https://www.rocq.inria.fr/secret/Andrea.Roeck/pdfs/dipl.pdf (6 Maret 2018).

Rubin, J. M. 2011. Can a computer generate a truly random number? It depends what you mean by random. engineering.mit.edu, 1 November 2011 (diakses 5 Maret 2018).

Saskara, G.A.J.2016. Desain dan Implementasi deteksi kerandoman algoritma kriptografi menggunakan algoritma chaos. Tesis. Institut Teknologi Bandung.

System Time. 2018. en.wikipedia.org/wiki/system_time, (6 Maret 2018).

Sobotík, J. & Plátěnka, V. 2003. A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Application. Security and Protection of Information 2003. 161-167. (Online) https://pdfs.

semanticscholar.org/cf0a/fe558c2638db24a0527a4725fe0ae82cc88b.pdf (6 Maret 2018).

Som, S. & Ghosh, S. 2012. A Stream Cipher Cryptosystem Based on Linear Feedback Shift Register. International Journal of Mathematical. 3(2): 362-372 (Online) https://www.researchgate.net/publication/224329206_A_Stream_Cipher_Cryp tosystem_Based_on_Linear_Feedback_Shift_Register (6 Maret 2018).

Sudjana. 2005. Metoda Statistika ‘Edisi 6”. TARSITO. Bandung

Vajargah, B. F. & Asghari, R.2016. A Novel Pseudo-Random Number Generator for Cryptographic Applications. 9(6). (Online) https://doi.org/10.17485/ijst/2016 /v9i6/73922. (6 Maret 2018)

Yan, S. Y. 2002. Number Theory for Computing. Second Edition. Springer-Verlag : Berlin. Heidelberg. New York. Barcelona. Hong Kong. London. Milan. Paris.

Tokyo.

37

LAMPIRAN A

1. Perbandingan Periode Bilangan Acak Semu 6 Bit

0 10 20 30 40 50 60 70

1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126

Localtime LFSR

0 10 20 30 40 50 60 70

1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126

LFSR

Angka

Urutan

Angka

Urutan

LAMPIRAN A

2. Perbandingan Periode Bilangan Acak Semu 7 Bit

0 20 40 60 80 100 120 140

1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115 121 127 133 139 145 151 157 163 169 175 181 187 193 199 205 211 217 223 229 235 241 247 253

Localtime LFSR

0 20 40 60 80 100 120 140

1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115 121 127 133 139 145 151 157 163 169 175 181 187 193 199 205 211 217 223 229 235 241 247 253

LFSR

Angka

Urutan

Angka

Urutan

39

LAMPIRAN A

3. Perbandingan Periode Bilangan Acak Semu 8 Bit

0 50 100 150 200 250 300

1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254 265 276 287 298 309 320 331 342 353 364 375 386 397 408 419 430 441 452 463 474 485 496 507

Localtime LFSR

0 50 100 150 200 250 300

1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254 265 276 287 298 309 320 331 342 353 364 375 386 397 408 419 430 441 452 463 474 485 496 507

LFSR

Angka

Urutan

Angka

Urutan

LAMPIRAN B

1. Perbandingan Histogram Register 5 Bit

0 2 4 6 8 10 12 14

0 – 3 4 - 7 8 - 11 12 - 15 16 - 19 20 - 23 24 – 27 28 – 32

Localtime LFSR

0 2 4 6 8 10

0 – 3 4 - 7 8 - 11 12 - 15 16 - 19 20 - 23 24 – 27 28 – 32

LFSR

Banyak Angka

Frekuensi

Banyak Angka

Frekuensi

41

LAMPIRAN B

2. Perbandingan Histogram Register 7 Bit

0 5 10 15 20 25 30

0 – 7 8 – 15 16 – 23 24 – 31 32 – 39 40 – 47 48 – 55 56 – 63 64 – 71 72 – 79 80 – 87 88 – 95 96 – 103 104 – 111 112 – 119 120 – 127

Localtime LFSR

Banyak Angka

Frekuensi

0 2 4 6 8 10 12 14 16 18

0 – 7 8 – 15 16 – 23 24 – 31 32 – 39 40 – 47 48 – 55 56 – 63 64 – 71 72 – 79 80 – 87 88 – 95 96 – 103 104 – 111 112 – 119 120 – 127

LFSR

Banyak Angka

Frekuensi

LAMPIRAN B

3. Perbandingan Histogram Register 8 Bit

0 5 10 15 20 25 30 35 40 45 50

0 – 15 16 – 31 32 – 47 48 – 63 64 – 79 80 – 95 96 – 111 112 – 127 128 – 113 114 – 159 160 – 177 176 – 191 192 – 207 208 – 223 224 – 239 240 – 255

Localtime LFSR

28.5 29 29.5 30 30.5 31 31.5 32 32.5 33 33.5

0 – 15 16 – 31 32 – 47 48 – 63 64 – 79 80 – 95 96 – 111 112 – 127 128 – 113 114 – 159 160 – 177 176 – 191 192 – 207 208 – 223 224 – 239 240 – 255

LFSR

Banyak Angka

Frekuensi

Banyak Angka

43

LAMPIRAN C

Soure code dalam pemograman Python 3.4

import time

def timee():

setwaktu = int(round(time.time()*1000)) return setwaktu

#menyiapkan Initial Register kosong def ToReg(n):

List_x = []

for x in range(n):

List_x.append(0) return List_x

#menyiapkan Initial register seed def ToList(x):

List_x = []

biner = bin(int(x))[2:]

PjgBiner = len(biner) for x in range(PjgBiner):

List_x.append(int(biner[x]))

List_1[i]=n[i]

#konversi bit register ke desimal def desimal(n):

#membuat register dari input bit ListReg = ToReg(IntBit)

#input Seed

SeedAwal = seed(ListReg) IntSeed = int(SeedAwal)

#membuat register dari input seed ListSeed = ToList(IntSeed)

45

#memasukkan seed ke register kosong PjgReg = len(ListReg)-1

PjgSeedA = len(ListSeed) PjgSeedB = len(ListSeed)-1 for x in range(PjgSeedA):

ListReg[PjgReg - int(x)] = ListSeed[PjgSeedB - int(x)]

#tampilan Output

print("=======================================================") print("=======================================================") print("| Seed : ",desimal(ListReg))

print("Data ke |input|",ListReg, "|Desimal") awal = 1

ShiftReg = ListReg List_Bilangan_Acak=[]

mas = "y"

while ( mas == "y"):

ulangi = shifting(ShiftReg)

#print("| Iterasi | input | Block Register")

print (" ",awal," |",inputt()^ShiftReg[PjgReg]," |",ulangi,"|",desimal(ulangi)) mas = input("|lagi(y)? ")

List_Bilangan_Acak.append(desimal(ulangi)) ShiftReg = ulangi

awal += 1

print("==========================end==========================")

Dokumen terkait