1 Pendahuluan
Bilangan acak merupakan elemen penting di dalam kriptografi. Bilangan acak terbagi men- jadi dua yaitu bilangan acak sejati yang merupakan bilangan acak yang tidak dapat diulang pembangkitannya, sedangkan bilangan semi acak merupakan bilangan yang dibangkitkan dari sebuah prosedur (algoritma) komputasi berdasarkan satu atau lebih parameter nilai awal yang disebut umpan (seed) dan berlaku sebagai kunci (key).
Kriptografi merupakan pembangkit bilangan acak yang aman untuk digunakan karena tidak dapat diprediksi kemunculannya. Cryptographically Secure Pseudorandom Generator (CSPRNG) merupakan pembangkit bilangan acak yang dapat menghasilkan bilangan yang tidak dapat diprediksi. Metode Newton Raphson digunakan untuk mencari pendekatan ter- hadap akar fungsi pada persamaan nonlinear. Penentuan akar-akar persamaan merupakan salah satu persoalan yang terdapat dalam persamaan nonlinear. Suatu persaman dikatakan nonlinear jika suatu persamaan yang memiliki derajat atau variabelnya lebih dari satu.
Metode yang sering digunakan untuk menyelesaikan system persamaan nonlinear dimana persamaan tersebut tidak bisa diselesaikan secara analitik adalah dengan metode numerik dalam bentuk metode iterasi yang menghasilkan penyelesaian berupa sebuah nilai dengan range atau daerah hasil berada antara 0 dan 1. Hasil iterasi dalam bentuk decimal sehing- ga diperlukan fungsi pemotongan untuk menghasilkan integer yang kemudian digunakan sebagai kunci pada kriptografi. Metode iterasi yang digunakan pada penelitian ini adalah metode Newton-Raphson.
Penelitian ini bertujuan untuk mencari pembangkit bilangan acak dengan metode Newton- Raphson menggunakan fungsi 30x3 − 19x − 6. Sebagai pembangkit bilangan acak dalam kriptografi dengan alasan belum pernah digunakan sebelumnya dengan menggunakan me- tode Newton Raphson dimana fungsi tersebut menghasilkan bilangan yang acak.
2 Kajian Pustaka
2.1 Metode Newton-Raphson
Sebuah metode penyelesaian fungsi non-linier secara numerik dengan menggunakan garis singgung pada kurva. Metode Newton-Raphson diberikan pada Algoritma 1
Ilustrasi geometri sebagai sebuah pendekatan garis singgung dengan menggunakan te- bakan titik x0, x1, · · · , xn pada fungsi y = f (x) diberikan pada Gambar 1 [9].
Diasumsikan bahwa fungsi f (x) adalah kontinu. Menghitung akar berdasarkan titik potong antara sumbu x dengan garis singgung pada kurva titik f0(xi−1), sehingga garis singgung mempunyai persamaan
y − f (xi−1) = f0(xi−1)(x − xi−1) (1) akar hampiran diperoleh dengan mengambil y = 0, yaitu
xi = xi−1− f (xi−1)
f0(xi−1) (2)
Algorithm 1 Newton-Raphson function NR(x0, es, imax, iter, ea)
xr = x0 iter = 0 repeat
xrold = xr xr = g(xrold) iter = iter + 1 if xr6= 0 then
ea=
xr− xrold xr
· 100 else ea < es or iter ≥ imax end if
until NR = xr end function
26
4. Metode Newton-Raphson
x0 x1
•
x•
2y = f(x)
y
x
Metode Newton-Raphson melakukan pendekatan menggunakan satu <<k awal dan mendeka<nya dengan kemiringan kurva pada <<k tersebut.
Gambar 3.4: Ilustrasi grafis untuk akar hampiran dalam metode Newton-Raphson
Gambar 1: Ilustrasi Grafis untuk Akar Hampiran dalam Metode Newton-Raphson Diasumsikan bahwa fungsi f (x) adalah kontinu. Idenya adalah menghitung akar yang merupakan titik potong antara sumbu x dengan garis singgung pada kurva titik f0(xn−1), sehingga garis singgung mempunyai persamaan.
y − f (xn−1) = f0(xn−1)(x − xn−1) (3) Karena itu diperoleh akar hampiran dengan mengambil y = 0, yaitu
xn= xn−1− f (xn−1)
f0(xn−1) (4)
2.2 Pengujian Keacakan
Pengujian ini untuk menentukan apakah suatu barisan biner memiliki karakteristik seperti suatu barisan yang trully random, dan biasanya digunakan untuk menentukan urutan bit dari kunci pada kriptografi sudah memenuhi sifat acak berdasarkan uji statistik [10]:
2.2.1 Run Test
Fungsi Panggil
Runs(n), dimana n panjang bit string dan ε adalah urutan bit yang dihasilkan da- ri RNG atau PRNG yang diuji; ini merupakan struktur umum untuk fungsi; ε = ε1, ε2, · · · , εn.
Statistik Tes
Vn(obs) : Jumlah total proses (yaitu, jumlah total operasi nol + jumlah total proses satu kali) di semua n bit. Distribusi referensi untuk statistik uji adalah distribusi χ2.
Deskripsi Tes
– Hitung prates proposisi π dari satu urutan bit π =
P
jεj
n (5)
– Tentukan apakah prasyarat lulus Uji frekuensi: Jika dapat ditunjukkan bahwa
|π − 1/2| ≥ τ , maka uji run tidak perlu dilakukan (yaitu, pengujian seharusnya tidak dijalankan karena kegagalan lulus tes 1, tes Frekuensi (Monobit)). Jika pengujian tidak dapat diterapkan, nilai-P diatur ke 0,0000. Perhatikan bahwa untuk pengujian ini,
τ = 2
√n (6)
telah ditentukan sebelumnya dalam kode pengujian.
– Hitung Uji Statistik
Vn(obs) =
n−1
X
k=1
r(k) + 1 (7)
dimana r(k) = 0 jika εk = εk+1 dan lainnya r(k) = 1.
– Hitung P-value
P-value = erfc |Vn(obs) − 2nπ(1 − π)|
2√
2nπ(1 − π)
(8) Apabila P-value < 0, 01 maka barisan tersebut tidak acak, sebaliknya disimpulkan barisan tersebut dikatakan acak.
2.2.2 Mono Bit
Pengujian ini menentukan apakah jumlah satu dan nol dalam suatu rangkaian kurang lebih sama dengan yang akan diperkirakan terhadap suatu rangkaian yang benar-benar acak.
Sn= X1+ X2 + · · · + Xn (9)
dimana, Xi = 2εi− 1, dengan statistik tes adalah
sobs = |Sn|
√n (10)
Perhitungan untuk p-value = erfc sobs
√2
, dimana erfc adalah komplemen eror yang dide- fenisikan sebagai
erfc = 2
√π Z ∞
z
e−u2du (11)
Penentuan keacakan dilihat Apabila P-value < 0, 01 maka barisan tersebut tidak acak, sebaliknya disimpulkan barisan tersebut dikatakan acak.
3 Fungsi Pemotongan
Suatu fungsi yang digunakan untuk mengambil integer dari bilangan chaos, yang biasanya dalam bilangan rill, antara 0 dan 1. Setiap nilai chaos dikalikan berulang kali sampai menca- pai angka yang diinginkan, lalu memotong hasil tersebut dan mengambil bagian integer-nya saja.
T (x, size) = ||x ∗ 10count||, x 6= 0 (12) Nilai chaos x yang dikonversi menggunakan Persamaan 12, dimana count dimulai dari 1 dan bertambah 1 sampai x × 10count > 10size−1. Hasilnya kemudian diambil bagian integer saja [11].
3.0.1 Nilai Korelasi
Dalam melihat hubungan antar variabel bebas (x) dan variabel tidak bebas (y) digunakan uji korelasi yang persamaannya sebagai berikut:
r = n ·P xy − P x P y
p(n · P x2− (P x)2) · (nP y2− (P y)2) (13) Untuk menetukan acuan koefisien korelasi sebagai berikut:
Tabel 1: Level Nilai Korelasi Interval Koefisien Tingkat Hubungan
0.00 - 0.19 Sangat Rendah
0.20 - 0.39 Rendah
0.40 - 0.59 Cukup
0.60 - 0.79 Kuat
0.80 - 1.00 Sangat Kuat
Batasan interval dari korelasi −1 ≤ r ≤ 1, tetapi baiknya untuk kriptografi mendekati 0, entah dari sisi kiri (negatif) maupun dari sisi kanan (positif). Dalam kondisi ini nilai korelasi negatif dapat langsung di-mutlak-an, karena yang dilihat hanya seberapa jauh dari 0, dan nilai negatif tidak terlalu memberikan pengaruh. Nilai korelasi dari plainteks-cipherteks memberikan informasi secara statistika, sehingga Tabel 1 dapat dijaikan acuan untuk melihat kekuatan algoritma dalam menyembunyikan informasi [12].
4 Metode Penelitian
Ada beberapa langkah yang dilakukan dalam penelitian ini untuk mencapai tujuan peneli- tian, dimana langkah-langkah tersebut dapat dilihat pada Gambar 2.
Pada penelitian ini tahapan yang pertama adalah identifikasi masalah. Identifikasi ma- salah ini dilakukan untuk melihat apa saja kekurangan atau masalah yang ada dalam dunia kriptografi, serta melakukan perancangan kerangka awal penelitian. Memperoleh Pustaka dan acuan terkait penelitian ini dengan melakukan studi literatur. Tahapan kedua pada pe- nelitian ini adalah perencanaan penelitian, dimana masing-masing proses dalam penelitian ini dirancang satu-persatu agar sesuai dengan apa yang dibutuhkan dalam penelitian ini.
Identifikasi Masalah dan Studi Literatur
Perencanaan Penelitian
Pelaksanaan Penelitian (Perancangan Algoritma)
Pengujian & Analisis Hasil
Penulisan Laporan
Gambar 2: Skema Alur Penelitian
Tahapan ketiga adalah pelaksanaa penelitian atau perancangan algoritma. Dimulai de- ngan merancang algoritma dan pemilihan fungsi polinomial derajat berapa yang digunakan.
Kemudian mencari iterasi yang akan digunakan sebagai pembangkit fungsi, lalu mencari tu- runan dari iterasi tersebut sehingga sesuai dengan metode yang digunakan dalam penelitian ini yaitu Newton-Raphson. Tahapan keempat adalah pengujian dan analisis hasil. Dalam tahapan ini dilakukan pengujian berupa run test, dan mono bit. Dan tahapan kelima ada- lah penulisan laporan penelitian. Dalam tahapan ini dilakukan penulisan laporan penelitian yang didalamnya menjelaskan hasil dari penelitian ini.
5 Rancangan Penelitian
Alur kerja penelitian secara umum diberikan pada Gambar 3. Penelitian ini menggunakan fungsi 30x3 − 19x − 6 sebagai pembangkit bilangan acak, sehingga proses untuk mencari nilai x0 yang tepat sebagai inisialisasi menjadi hal yang penting.
Proses awal, adalah mencari nilai x0 secara trial & error pada fungsi yang telah diubah menjadi fungsi iterasi. Metode Newton-Raphson mengubah fungsi sehingga menjadi fungsi iterasi, dan meneriama x0 untuk mencari banyak bilangan berbeda yang dihasilkan dari proses iterasi.
start
input x0
regenerasi fungsi (Newton-Raphson)
simulasi model 30x3− 19x − 6
uji iterasi
inisialisasi terpilih
proses pengujian:
uji visulisasi, keacakan & enkripsi
bilangan acak
end N Y
Gambar 3: Skema Umum Proses Penelitian
Pengujian iterasi adalah proses untuk mencari nilai x0 yang dapat menghasilkan nilai iterasi yang banyak dan berbeda. Setiap nilai inisialisasi yang terpilih adalah tentunya akan menjadi input yang baik pada fungsi, sehingga dapat dijadikan sebagi kunci dalam menghasilkan bilangan berbeda.
Pengujian setiap bilangan acak adalah proses yang terakhir, proses ini memastikan apa- kah setiap bilangan berbeda yang dihasilkan adalah bilangan acak berbasis CSPRNG atau tidak. Uji visualisasi digunakan Scatter Plot, sehingga dapat melihat sebaran data yang membentuk pola atau tidak. Pengujian keacakan adalah uji statistik dengan metode run test dan mono bit. Pengujian terakhir adalah setiap bilangan acak digunakan sebagai kunci dalam proses enkripsi.
6 Hasil dan Pembahasan 6.1 Pencarian Fungsi Iterasi
Fungsi yang digunakan adalah f (x) = 30x3 − 19x − 6, diketahui bahwa turunan pertama dari f (x) pada variabel x adalah f0(x) = 90x2− 19. Dari Persamaan 2, fungsi iterasi yang diperoleh menggunakan metode Newton-Raphson adalah:
xi+1= xi− 30x3− 19x − 6
90x2− 19 (14)
Pendefenisian fungsi menggunakan metode Newton-Raphson dapat digunakan sebagai pembangkit bilangan acak berdasarkan Scatter Plot yang dihasilkan. Menampilkan Scatter Plot untuk penyebaran bilanganan acak juga dilakukan dengan menginisialisasi nilai x0. 6.1.1 Pencarian Nilai Inisialisasi x0
Nilai inisialisasi x0 menjadi faktor penentu dalam pembangkitan bilangan acak, bagian yang sulit adalah menemukan inisialisasi fungsi yang baik. Dengan mensubtitusikan setiap nilai x0
kedalam fungsi iterasi yang diberikan dalam Persamaan 2, dimungkinkan untuk mengetahui rentang fungsi yang tepat untuk menghasilkan range yang optimal.
Tabel 2: Hasil Inisialisasi x0 pada Fungsi Iterasi x0
nilai
x0
nilai
x0
nilai
x0
nilai
berbeda berbeda berbeda berbeda
−5000 69 −1 17 0.27 131 0, 9 4
−2000 138 −0.9 61 0.29 138 1 4
−1000 66 −0.7 157 0.3 200 5 9
−500 125 −0.6 161 0.31 31 10 11
−150 73 −0.59 109 0.32 56 15 12
−100 84 −0.5 22 0.34 11 20 13
−80 115 −0.3 18 0.35 22 40 15
−60 66 −0.2 23 0.36 25 60 14
−40 130 −0.1 98 0.37 56 80 16
−20 56 0 107 0.38 127 100 16
−15 31 0.1 131 0.4 76 150 17
−10 26 0.2 39 0.5 10 500 21
−5 156 0.21 138 0.6 7 1000 19
−3 17 0.25 172 0.7 6 2000 23
−2 22 0.26 169 0.8 5 5000 26
Metode triall-and-error diterapkan dan diperoleh perkiraan nilaii x0 dan sejumlah yang nilai berbeda, seperti yang ditunjukan pada Tabel 2. Pengambilan 200 nilai yang berbeda, diperoleh nilai berbeda tertinggi sebanyak 200 adalah x0 = 0.3. Nilai terbaik kedua adalah x0 = −0.6 dengan 161 nilai yang berbeda. Sedangkan x0 = −500 dapat menghasilkan 125 nilai yang berbeda.
−100 −50 0 50 100
0 100 200
input nilai x0
nilaiberbeda
Gambar 4: Input x0 terhadap fungsi xi+1= x3i − x2i +23
Gambar 4 mengilustrasikan x0 terhadap berbagai nilai yang diberikan dalam grafik, dengan domain dari −60 ≤ x0 ≤ 60. Data yang menyebar menunjukkan bahwa domain x0 yang negatif menghasilkan nilai berbeda lebih banyak dari domain positif, meskipun nilai terbaik ada didomain positif.
6.1.2 Iterasi Fungsi untuk x0 Terpilih
Nilai inisialisasi x0 = 0.3 merupakan nilai domain yang paling optimal, sehingga diperlukan pengujian lebihlanjut. Sembilan iterasi pertama diberikan pada Tabel 3, menggunakan fungsi pemotongan dari Persamaan 12, masing-masing hasil iterasi diambil tiga digit pada mantisa, yang secara berturut-turut dinamakan bil-1, bil-2, bil-3, bil-4, dan bil-5.
Tabel 3: Hasil 9 Iterasi Pertama dengan x0 = 0.3
i xi bil-1 bil-2 bil-3 bil-4 bil-5
1 −0.6126188881447 0.61 261 888 814 467
2 −0.5275043470203 0.52 750 434 702 029
3 −0.4644724968639 0.46 447 249 686 389
4 −0.0292463882226 0.02 924 638 822 263
5 −0.3169948324515 0.31 699 438 254 150
6 −0.4106745384999 0.41 067 453 849 985
7 −0.4926512044507 0.48 256 120 445 072
8 −0.3795494891648 0.37 954 948 916 476
Secara kebetulan, hasil iterasi menghasilkan bilangan negatif atau positif, tetapi dalam kriptografi kuncinya digunakan sebagai bilangan bulat positif, dan kemudia iterasi negatif- nya bisa mutlak sehingga menghasilkan bilangan positif.
0 50 100 150 200
−300
−200
−100 0
i xi
fungsi iterasi
0 100 200
0 200 400 600 800 1,000
i xi
bil-1
0 100 200
0 200 400 600 800 1,000
i xi
bil-2
0 100 200
0 200 400 600 800 1,000
i xi
bil-3
0 100 200
0 200 400 600 800 1,000
i xi
bil-4
0 100 200
0 200 400 600 800 1,000
i xi
bil-5
Gambar 5: Scatter Plot 200 Iterasi Pertama dengan x0 = 0.3
Pengujian pertama dilakukan untuk menentukan apakah suatu fungsi dengan metode Newton-Raphson 30x3− 19x − 6 dan inisialisasi x0 = 0.3 dapat menghasilkan bilangan acak berdasarkan CSPRNG chaos. Hasil pengujian visualisasi menggunakan Scatter Plot untuk setiap data ditunjukan pada Gambar 5.
Hasil iterasi yang ditunjukan pada Gambar 5, menunjukkan hasil yang sangat baik.
Setiap grafik untuk bil-1 hingga bil-5 terlihat chaos, dan tidak membentuk pola tertentu.
Meskipun pada bil-1, penyebaran data terlihat tidak merata seperti pada kumpulan data lainya, inisialisasi x0 = 0.3 dapat menghasilkan gambar yang chaos secara grafis. Hasil ini menujukan bahwa pendekatan dengan pencarian bilangan berbeda dibagian sebelumnya dapat membuktikan perolehan bilangan acak dalam uji visualisasi.
Pengujian keacakan secara statistik perlu dilakukan untuk memastikan apakah setiap data set dari inisialisasi x0 = 0.3, pada fungsi dapat menghasilkan bilangan acak berbasis CSPRNG chaos.
6.2 Relasi Setiap Data Set
Setiap kumpulan pada Tabel 3, untuk bil-i, untuk i = 1, · · · , 5 merupakan hasil iterasi yang dibagi menjadi lima bagian. Semuanya berasal dari satu fungsi yaitu 30x3− 19x − 6 dengan inisialisasi x0 = 0.3. Oleh karena itu, perlu dilakukan pengujian apakah setiap kumpulan da- ta memiliki hubungan statistika atau tidak. Jika setiap kumpulan data memiliki relasi yang kuat, maka akan menjadi masalah jika kemudia digunakan sebagai kunci dalam kriptografi.
Untuk menguji relasi pada stiap kumpulan data, digunakan uji korelasi dengan meme- riksa tingkat hubungan korelasi berdasarkan referensi pada Tabel 1. Dilakukan pengujian 2 dari 5 data set yang diperoleh, sehingga banyak kombinasi 2C5 = 10 pengujian yang harus dilakukan.
Hasil uji korelasi dapat dilihat pada Tabel 4, semua pengujian menunjukan tingkat hu- bungan ”sangat rendah”. Oleh karena itu, fungsi 30x3− 19x − 6 dengan metode Newton- Raphson dapat menjadi pembangkit kunci kriptografi, karena dapat mempersulit kripanalis untuk menemukan kunci, karena sifat kumpulan data tidak terkait satu sama lain.
Tabel 4: Hasil Uji Korelasi
No Relasi Data Hasil Korelasi Tingkat Hubungan 1 bil-1 − bil-2 0.077644316 sangat rendah 2 bil-1 − bil-3 −0.12454702 sangat rendah 3 bil-1 − bil-4 −0.0540053 sangat rendah 4 bil-1 − bil-5 0.068449236 sangat rendah 5 bil-2 − bil-3 −0.080836313 sangat rendah 6 bil-2 − bil-4 0.105837094 sangat rendah 7 bil-2 − bil-5 0.121145719 sangat rendah 8 bil-3 − bil-4 0.089013218 sangat rendah 9 bil-3 − bil-5 −0.060801835 sangat rendah 10 bil-4 − bil-5 −0.028436396 sangat rendah
6.3 Pengujian Keacakan
Metode pengujian statistik yang digunakan adalah Run Test dan Mono Bit. Berdasarkan [9], digunakan nilai uji keacakan α = 1%, apabila p-value < α = 0.01 dinyatakan tidak acak,
dan sebaliknya adalah acak. Hasil pengujian dari kelima data set, secara berturut-turut diberikan pada Tabel 5 dan Tabel 6.
Tabel 5: Hasil Pengujian Run Test
No Data yang Diuji p-value Hasil Pengujian
1 Bilangan-1 0.565454 acak
2 Bilangan-2 0.669484 acak
3 Bilangan-3 0.967809 acak
4 Bilangan-4 0.565420 acak
5 Bilangan-5 0.976512 acak
Hasil pengujian setiap data set dengan metode Run Test diberikan pada Tabel 5. Secara keseluruhan, diperoleh setiap nilai p-value > α, sehingga setiap bil-i untuk i = 1, · · · , 5 berada dalam kategori acak. Pada bil-1, nilai p-value adalah yang terkecil, sehingga paling mendekati α, hasil ini masih juga paralel dengan uji visualisasi sebelumnya. Walaupun dalam kategori acak, tetapi memiliki hasil yang tidak sebaik data set lainnya.
Tabel 6: Hasil Pengujian Mono Bit
No Data yang Diuji p-value Hasil Pengujian
1 Bilangan-1 1.54624E tidak acak
2 Bilangan-2 0.967809 acak
3 Bilangan-3 0.689156 acak
4 Bilangan-4 0.423711 acak
5 Bilangan-5 0.841481 acak
Tabel 6 adalah hasil pengujian dengan metode Mono Bit, nilai p-value untuk bil-1 lebih kecil dari α = 1%, sehingga data set tersebut menjadi tidak acak. Sedangkan data set yang lainnya berhasil memperoleh hasil pengujian acak, dengan perolehan nilai p-value yang sangat baik, karena mempunyai selisih yang tinggi.
Data set dari bil-1 untuk pengujian Mono Bit tidak acak, hasil ini masih searah dengan uji visualisasi dan Run Test, bahwa data tersebut menunjukkan hasil yang mendekati tidak acak. Penelitian ini menggunakan dua metode pengujian keacakan, sehingga apabila setiap data set berhasil dalam kategori acak pada kedua pengujian, maka data set tersebut da- pat dikatakan acak. Tetapi jika salah satu atau kedua pengujiannya tidak berhasil, maka dikategorikan tidak acak. Dengan demikian untuk inisialisasi x0 = 0.3, bil-1 gagal dalam pengujian keacakan, sehingga tidak direkomendasikan untuk digunakan sebagai kunci.
Berdasarkan pengujian keacakan Run Test dan Mono Bit, data set pada bil-2, bil-3, bil-4, dan bil-5 berhasil dalam kategori acak, dan sebelumnya juga sudah berhasil dengan uji visualisasi. Sehingga untuk ke-empat data set dapat disebut bilangan acak berbasis CSPRNG chaos.
6.4 Pengujian Enkripsi
Setiap data set yang berhasil dalam pengujian, perlu dilakukan pengujian enkripsi, dengan memilh beberapa bilangan untuk dijadikan sebagai kunci. Digunakan block cipher dengan panjang kunci 256 bit (setara 32 karakter), juga untuk domain dan range ASCII sehingga
operasi berjalan dalam modulus 256. Digunakan proses enkripsi sederhana, dimana men- jumlahkan plainteks (P ) dan kunci (K), untuk memperoleh cipherteks (C), yang secara umum diberikan pada Persamaan (13).
Ek: P + K = C (mod 256) (15)
Dalam pengujian enkripsi digunakan tiga plainteks yang diharapkan dapat mewakili variasi plainteks yang biasanya digunakan oleh user. Plainteks pertama yaitu OVILIEN NI- DYA EDELLWEYS CHOESNII, untuk mewakili tulisan biasa yang hanya terdiri dari kombinasi huruf. Plainteks kedua 0v1l!en n1dya ED3LLWEY5 CH0E5NI1 digunakan kombinasi huruf, simbol, dan angka. Plainteks terakhir adalah OOOOOOOOOOOOOOOOOOOOOOOOOOOO- OOOVyang mempunyai huruf yang sama dengan satu huruf berbeda.
Pengujian korelasi digunakan untuk melihat hubungan antara plainteks dan cipherteks, sehingga dapat diketahui seberapa baik kunci yang digunakan dapat menyamarkan plainteks, sehingga dapat menghilangan hubungan antara keduanya. Hasil pengujian untuk ketiga palinteks dengan setiap data set diberikan pada Tabel 7.
Tabel 7: Hasil Uji Korelasi
No Kunci Plainteks yang Diuji
Rata-Rata Tingkat Relasi Plainteks 1 Plainteks 2 Plainteks 3
1 bil-2 −0.21384412 0.039870876 −0.246525158 0.120024673 Sangat Rendah 2 bil-3 −0.450519776 0.050407224 0.34901701 −0.017031847 Sangat Rendah 3 bil-4 −0.034139302 0.097764414 −0.174833731 −0.0370695 Sangat Rendah 4 bil-5 −0.227607286 −0.043665368 0.195380366 −0.02529743 Sangat Rendah
Pengujian enkripsi tidak menyertakan bil-1, karena gagal dalam pengujian keacakan.
Hanya data set berbasis CSPRNG chaos yang dijadikan kunci. Hasil pengujian yang di- peroleh menunjukkan secara rata-rata mempunyai tingkat relasi ”sangat randah”, sehingga semua bilangan yang dijadikan sebagai kunci berhasil membuat plainteks tidak berhubung- an secara statistik dengan cipherteks. Secara tidak langsung fungsi 30x3 − 19x − 6 dengan inisialisasi x0 = 0.3, berhasil sebagai generator atau pembangkit bilangan acak.
Pengujian selanjutnya visualisasi plainteks dan cipherteks, dengan memilih bil-3 sebagai kunci, dan menggunakan tiga plainteks yang telah digunakan sebelumnya. Pengujian ini dapat menentukan apakah sebuah kunci yang digunakan dapat membuat cipherteks menjadi tidak mengikuti pola pada plainteks. Jika plainteks dan cipherteks mempunyai bentuk yang berbeda, maka alagoritma (dalam hal ini kunci) telah berhasil membuat efek difusi dan konfusi pada algoritma.
0 5 10 15 20 25 30
0 100 200
karakter ke-i
bilanganASCII plainteks
cipherteks x0= 0.3
Gambar 6: Perbandingan Plainteks-1 dan Cipherteks
Gambar 6 adalah hasil pengujian untuk plainteks 1, OVILIEN NIDYA EDELLWEYS CHO- ESNI. Diagram garis plainteks dan cipherteks sangat berbeda, keduanya tidak menunjukkan pola yang sama. Selain itu, plainteks hanya berada pada interval data 0 ≤ plainteks ≤ 89, sedangkan cipherteks memiliki interval yang lebih besar 0 ≤ cipherteks ≤ 256. Sehingga kunci yang digunakan sangat baik dalam membuat geometri yang berbeda. Sehingga akan mempersulit kriptanalis dalam melakukan penebakan menggunakan pola dan grafik.
Penggunaan plainteks 0v1l!en n1dya ED3LLWEY$ CH0E5NI1 ditunjukkan pada Gambar 7.
Nampak ruang plainteks yang lebih besar dibandingkan dengan plainteks 1, 0 ≤ plainteks
≤ 155 dan memiliki diagram garis yang lebih fluktuatif. Diperoleh cipherteks memiliki interval yang besar juga, 0 ≤ cipherteks ≤ 256, dan memiliki data diagram garis yang fluktuatif juga.
0 5 10 15 20 25 30
0 100 200
karakter ke-i
bilanganASCII plainteks
cipherteks x0= 0.3
Gambar 7: Perbandingan Plainteks-2 dan Cipherteks
Plainteks OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOV adalah pengujian ekstrim, karena menggunakan karakter yang sama. Disini akan melihat, apakah dengan diagram garis yang membentuk sebuah garis lurus, dapat menghasilkan cipherteks yang fluktuatif.
Hasil yang diperoleh Interval plainteks dalam 81 ≤ plainteks ≤ 82, sedangkan cipherteks memiliki interval 0 ≤ cipherteks ≤ 256. Berdasakan diagram garis pada cipherteks dapat dilihat bahwa kunci dapat menyembunyikan pola yang ada pada plainteks, sehingga kunci yang digunakan sangat baik dalam melakukan proses enkripsi.
0 5 10 15 20 25 30
0 100 200
karakter ke-i
bilanganASCII plainteks
cipherteks x0= 0.3
Gambar 8: Perbandingan Plainteks-3 dan Cipherteks
Pengujian visualisasi grafik antara plainteks dan cipherteks menunjukan, kunci yang diperoleh dari pembangkitan bilangan acak dengan fungsi 30x3 − 19x − 6 berhasil meng- hasilkan cipherteks yang selalu stabil pada interval yang besar (0 ≤ cipherteks ≤ 256).
Hasil ini tentunya akan mempersulit penebakan pada plainteks dan cipherteks, karena kun- ci dapat mempertahankan ruang hasil (range) cipherteks. Kriptanalis mungkin akan dapat memecahkan, tetapi tentunya akan memerlukan waktu yang lebih lama walaupun algoritma enkripsi yang digunakan hanya dengan operasi penjumlahan.
Suatu usaha untuk menciptakan algoritma yang optimum terhadap kompleksitas waktu dan ruang, adalah keinginan dari para kriptografer. Penggunaan pembangkit bilangan acak dengan menemukan fungsi yang baru merupakan salah satu cara yang dapat diperhatikan dan dikembangkan. Secara teori, kriptografi One Time Pad (OTP) adalah algoritma yang tidak dapat dipecahkan. Penelitian ini mencari dan menggunakan fungsi 30x3 − 19x − 6 dengan metode Newton-Raphson, adalah sebuah proses untuk menuju pada konsep OTP, sehingga dapat menghasilkan algoritma yang mangkus untuk kompleksitas waktu dan ruang.
7 Kesimpulan
Dengan menggunakan metode Newton Raphson, ada enam langkah yang tidak dapat dipi- sahkan sampai kita mendapatkan nilai acak. Fungsi pertama mengubah 30x3 − 19x − 6 menjadi fungsi iteratif. Kemudian keduanya menemukan nilai inisialisasi yang tepat dari x0 dengan menghasilkan berbagai angka. Hal ketiga adalah mengulangi x0 yang dipilih dan memvisualisasikannya dengan Scatter Plot. Keempat, temukan hubungan antara setiap kumpulan data yang dihasilkan. Kelima, lakukan uji keacakan dengan run test dan mono bit untuk lebih memastikan keacakan fungsi. Kemudian hal terakhir yang keenam adalah melakukan pemeriksaan enkripsi.
Inisialisasi x0 = 0.3 adalah input terbaik untuk menghasilkan hasil pengulangan yang berbeda. Inspeksi visual dengan plot Scatter Plot menghasilkan plot kacau untuk setiap kumpulan data. Pengujian keacakan dengan Run Test dan Mono Bit juga menghasilkan pva- lue yang selalu kurang dari α = 1%, sehingga setiap dataset yang dihasilkan berada dalam daftar acak. Uji enkripsi diperoleh bahwa hubungan ciphertext murni memiliki hubungan yang “sangat lemah” dengan kekuatan sedang. Semua angka acak yang digunakan sebagai kunci berhasil dalam statistik plaintext yang tidak terkait dengan ciphertext. Secara kese- luruhan, fungsi 30x3− 19x − 6 dengan metode NewtonRaphson dan nilai inisialisasi x0 = 0.3 dapat menghasilkan bilangan acak berdasarkan chaos CSPRNG. Jadi fungsi 30x3− 19x − 6 dapat digunakan untuk menghasilkan sebuah kunci dalam cipher block cipher.
8 Saran
Meskipun metode Newton Raphson merupakan metode yang biasa digunakan dalam beru- rusan dengan masalah konsektual, tetapi metode ini memiliki kelemahan yang terkadang membuat sulit pengguna. Salah satu kekurangannya adalah membutuhkan turunan perta- ma dari rumus pengulangan. Jika turunan pertama tidak ditemukan, maka akan menjadi penghalang dalam melakukan perhitungan iterasi. Oleh karena itu dalam pengembangan ke- depannya penulis perlu hati-hati dalam memilih tebakan awal dan juga mempertimbangkan apakah fungsinya dapat dicari turunan pertamanya.