## JIPI (Jurnal Ilmiah Penelitian dan Pembelajaran Informatika)
Volume 06, Nomor 02, Desember 2021: 400–405

## DESAIN PEMBANGKIT KUNCI BLOCK CIPHER BERBASIS CSPRNG CHAOS MENGGUNAKAN FUNGSI TRIGONOMETRI
Kuniarti Paraditasari 1 , Alz Danny Wowor 2
1,2 Program Studi Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Email: 672017291@student.uksw.edu 1 , alzdanny.wowor@uksw.edu 2

## Abstrak
Banyak fungsi pembangkit yang dapat menghasilkan bilangan acak berbasis CSPRNG chaos salah satunya seperti fungsi logistik dan fungsi polinomial. Penelitian ini meregenerasi fungsi trigonometri dan dijadikan sebagai pembangkit bilangan acak berbasis CSPNRG chaos . Setiap fungsi trigonometri dapat digunakan sebagai fungsi pembangkit, walaupun untuk cos x dan csc x memerlukan sedikit modifikasi. Pengujian enkripsi menunjukkan setiap kunci yang dihasilkan dari setiap fungsi pembangkit, dapat membuat plainteks dan cipherteks tidak berhubungan secara statistik. Kondisi ini akan mempersulit kriptanalis untuk melakukan serangan pada algoritma. Secara spesifik, rancangan algoritma merupakan proses yang baik, karena dapat menghasilkan bilangan acak berbasis CSPRNG chaos . Sehingga fungsi trigonometri dapat digunakan sebagai pembangkit dalam menghasilkan kunci pada kriptografi block cipher .
Kata Kunci: Fungsi Trigonometri, CSPRNG Chaos, Fungsi Pembangkit, Block Cipher

## Abstract
There are many generating functions that can generate random numbers based on CSPRNG chaos, one of which is the logistic function and the polynomial function. This research regenerates trigonometric functions and is used as a random number generator based on CSPNRG chaos. Any trigonometric function can be used as a generating function, although cos x and csc x require some modification. Encryption testing shows that each key generated from each generating function can make plaintext and ciphertext statistically unrelated. This condition will make it difficult for cryptanalysts to attack the algorithm. Specifically, the algorithm design is a good process, because it can generate random numbers based on CSPRNG chaos. So that the trigonometric function can be used as a generator in generating keys in block cipher cryptography.
KeyWords : Trigonometry Function, CSPRNG Chaos, Generating Function, Block Cipher

## I. P ENDAHULUAN
S ETIAP algoritma kriptografi akan memperhatikan proses pembangkitan kunci, karena menjadi variabel utama untuk menghilangkan atau menyamarkan plainteks menjadi cipherteks. Banyak metode yang dapat digunakan, salah satunya dengan menggunakan pembangkit bilangan acak yang menggunakan sebuah fungsi.
Fungsi yang berhasil menjadi pembangkit bilangan acak biasanya akan selalu diupayakan sehingga memenuhi sifat Cryptographically Secure Pseudorandom Generator (CSPNRG) berbasis Chaos, yaitu peka terhadap perubahan kecil pada input atau nilai awal. Sebuah fungsi pembangkit bilangan acak yang berhasil memenuhi sifat CSPRNG Chaos maka bilangan tersebut dapat digunakan sebagai kunci pada kriptografi, dan memberikan jaminan untuk sebuah algortima memenuhi prinsip Shanonn.
Banyak fungsi pembangkit yang dapat menghasilkan bilangan acak berbasis CSPRNG chaos , yang paling terkenal adalah fungsi logistik f ( x ) = rx ( 1 − x ) yang dalam iterasi x i + 1 = rx i ( 1 − x i ) , dan Penelitian [1]–[4] juga menggunakan fungsi logistik sebagai pembangkit untuk menghasilkan sederatan bilangan acak, yang kemudian digunakan sebagai kunci dalam algoritma. Penelitian [5] menggunakan polinomial derajat-1, derajat-2, dan derajat-3, kemudian setiap polinomial diubah menjadi fungsi iterasi dengan metode fixed poin iteration dan dapat menghasilkan beberpa fungsi iterasi yang kemudian beberapa fungsi iterasi berhasil menghasilkan kunci berbasis CSPRNG chaos. Penelitian [6] juga mencari fungsi polinomial derajat tiga yang dapat dijadikan sebagai pembangkit bilangan acak. Diperoleh fungsi f ( x ) = 3 ( x 3 − x 2 − x ) + 2 sebagai salah satu yang memenuhi dan berhasil memperoleh bilangan acak berbasis CSPRNG chaos. Penggunaan fungsi yang polinomial dapat memberikan efek difusi dan konfusi pada algoritma, karena bilangan acak yang dihasilkan dapat memenuhi sifat butterfly effect , dimana perubahan kecil pada input dan akan mengakibatkan perubahan signifikan terjadi pada output . Penelitian yang dilakukan saat ini melakukan pendekatan dengan fungsi yang berbeda dengan penelitian sebelumnya, yaitu menggunakan fungsi trigonometri. Ke-enam nisbah trigonometri yaitu sin x , cos x , tan x , sec x , csc x , dan cot x dijadikan sebagai generator untuk menghasilkan bilangan acak berbasis CSPRNG chaos. Penelitian [7]–[9] sebelumnya juga menggunakan fungsi trigonemetri sebagai pembangkit bilangan acak. Tetapi pendekatan dalam menggunakan fungsi berbeda, penelitian ini menggunakan fungsi pemotongan untuk mengambil bilangan bulat dari mantisa hasil iterasi.
Pengujian visualisasi menggunakan scatter plot , uji statistika, uji keacakan [10], dan juga proses enkripsi menjadi metode pengujian untuk memastikan apakah setiap fungsi trigonometri dapat dijadikan sebagai pembangkit bilangan acak dan kemudian dapat digunakan sebagai kunci pada proses enkripsi.

## JIPI (Jurnal Ilmiah Penelitian dan Pembelajaran Informatika)
Volume 06, Nomor 02, Desember 2021: 400–405

## II. S KEMA P ENELITIAN
Skema penelitian merupakan alur kerja yang dilakukan untuk menuju pada tujuan penelitian berdasarkan masalah penelitian yang telah ditunjukkan pada bagian sebelumnya. Langkah penelitian diberikan dalam beberapa tahapan, dimana setiap tahap secara garis besar diberikan pada Gambar 1. Proses awal, enam nisbah trigonometri sin x , cos x , tan x , sec x , csc x , dan cot x akan dijadikan sebagai fungsi, dan kemudian akan dilanjutkan pada tahapan berikut yaitu mengubah fungsi trigonometri menjadi fungsi iterasi. Fungsi iterasi dilakukan dengan menggunakan nilai input x j , yang akan digunakan untuk mendapatkan nilai selanjutnya x j + 1 dimana j akan dimulai dari 0. Pengujian keacakan ( random test ) dilakukan untuk setiap fungsi trigonometri standar, apabila fungsi tersebut memenuhi sifat keacakan maka akan dilanjutkan pada tahap selanjutnya, apabila tidak maka proses modifikasi perlu dilakukan dan kemudian akan dilakukan pengujian kembali. Setiap fungsi yang lolos pengujian akan menjadi fungsi terpilih, atau dapat dikatakan sebagai fungsi pembangkit bilangan acak berbasis CSPRNG chaos . Proses terakhir adalah menguji setiap kunci yang diperoleh dalam proses kriptografi blok cipher.
fungsi trigonometri fungsi iterasi (fungsi pra-generator) input kunci random test fungsi terpilih uji enkripsi dekripsi yes no

## Gambar 1: Skema Alur Penelitian
Kajian chaos dapat terlihat apabila setiap luaran divisualisasi ke dalam koordinat Cartesius, dimana iterasi sebagai absis dan ordinatnya adalah hasil iterasi. Apabila pada diagram menunjukkan sebuah pola, atau bentuk tertentu yang memudahkan penebakan maka fungsi tersebut gagal sebagai pembangkit. Sebaliknya, grafik yang membentuk chaos akan terlihat setiap hasil iterasi nampak pecah dan tidak mempunyai kecenderungan membentuk sebuah pola.

## III. H ASIL DAN P EMBAHASAN

## A. Pencarian Fungsi Trigonometri
Pencarian pembangkit bilangan acak digunakan untuk setiap fungsi trigonometri. Proses pencarian dilakukan menggunakan alur pada Gambar 1. Fungsi pra-generator dilakukan dengan mengubah setiap fungsi trigonometri menjadi fungsi iterasi seperti yang ditunjukkan pada Persamaan 1.
y = f ( x ) → x i + 1 = f ( x i ) (1)
Apabila setiap fungsi dapat menghasilkan urutan bilangan dan lolos pengujian keacakan, maka fungsi tersebut dapat digunakan sebagai fungsi pembangkit bilangan acak. Pengujian pertama adalah fungsi f ( x ) = sin x , berdasarkan Persamaan 1, diperoleh fungsi iterasi x i − 1 = sin x i . Hasil dari lima belas iterasi pertama diberikan pada Tabel I.
Tabel I: Hasil Iterasi Fungsi y = sin x i x i Data 1 Data 2 Data 3 Data 4 Data 5 1 0.099833416646828 983 341 664 682 81 2 0.099667664132134 966 766 413 213 35 3 0.099502735566960 950 273 556 695 96 4 0.099338624142099 933 862 414 209 94 5 0.099175323126911 917 532 312 691 9 6 0.099012825868156 901 282 586 815 57 7 0.098851125788857 885 112 578 885 74 8 0.098690216387181 869 21 638 718 9 9 0.098530091235332 853 9 123 533 17 10 0.098370743978475 837 74 397 847 52 11 0.098212168333675 821 216 833 367 47 12 0.098054358088848 805 435 808 884 83 13 0.097897307101745 789 730 710 174 49 14 0.097741009298937 774 100 929 893 72 15 0.097585458674833 758 545 867 483 33
Tabel I menunjukkan bagaimana mengambil integer dari mantisa, pada fungsi iterasi x i + 1 = sin x i menghasilkan 5 data. Penelitian ini mengambil tiga digit untuk setiap data, karena memperhatikan maksimum digit dari karakter ASCII sebanyak 256 karakter. Hasil iterasi diberikan pada Gambar 2 untuk 200 iterasi pertama.
Hasil iterasi dari x i + 1 = sin x i pada Gambar 2, nampak secara visual hanya data-3, data-4, dan data-5 yang menghasilkan diagram Scatter yang sudah membentuk chaos . Ketiga bilangan ini dapat dilanjutkan pada pengujian selanjutnya, tetapi untuk data-1 dan data-2 masih gagal dalam uji visualisasi. Data-2 walaupun diagramnya sudah pecah, tetapi masih membentuk pola.

## JIPI (Jurnal Ilmiah Penelitian dan Pembelajaran Informatika)
Volume 06, Nomor 02, Desember 2021: 400–405
(judul) ... 7 0 100 200 1 0 . 5 0 0 . 5 1 i x i hasil iterasi 0 100 200 0 200 400 600 800 1 , 000 i x i data- 1 0 100 200 0 200 400 600 800 1 , 000 i x i data- 2 0 100 200 0 200 400 600 800 1 , 000 i x i data- 3 0 100 200 0 200 400 600 800 1 , 000 i x i data- 4 0 100 200 0 50 100 i x i data- 5 Gambar 2: Scatter Plot 200 Iterasi Pertama untuk Fungsi y = Sin ( x )
Secara visualisasi pola yang dihasilkan dengan koordinat Cartesius pada fungsi y = Sin ( x ) dan pengambilan inisialisasi awal membentuk pola pada hasil iterasi. Kemudian dengan pemecahan bit bilangan pada data x i menghasilkan pola pada data-1. Meskipun pada data-2 grafik terlihat menyebar namun penyebaran bilangan tersebut membentuk pola yang dapat ditebak. Sedangkan pada pola data- 3 pola lebih menyebar meskipun terlihat beberapa pola yang masih menumpuk, namun pada data-4 dan data-5 pola bilangan yang dihasilkan semakin menyebar. Jika fungsi y = Sin ( x ) dilakukan modi- fikasi fungsi dan dilakukan pembangkit inisialisasi seed dengan tepat maka akan dapat menghasilkan bilangan chaos yang lebih baik.
4.1.2 Pencarian pada Fungsi Dasar Trigonometri Cosinus ( Cos ) Fungsi y = Cos ( x ) merupakan fungsi dasar Cosinus pada trigonometri. Fungsi ini akan diuji dengan bilangan bulat kecil sebagai inisialisasi awal, yaitu x o = 0 . 1. Dari hasil iterasi diperoleh 8 iterasi pertama seperti yang ditunjukkan pada 3.
Tabel 3: Hasil iterasi y = Cos ( x ) i X i Data 1 Data 2 Data 3 Data 4 Data 5 1 0 . 995004165278026 995 4 165 278 26 2 0 . 544499395827788 544 499 395 827 788 3 0 . 855386705879360 855 386 705 879 360 4 0 . 6559266636704801 655 926 663 670 480 5 0 . 792483101944809 792 483 101 944 809 6 0 . 702079267990670 702 79 267 990 670 7 0 . 763501033691885 763 501 33 691 885 8 0 . 722419636238973 722 419 636 238 973 Gambar 2: Hasil Iterasi x i + 1 = sin x i . 8 Kuniarti Paraditasari Hasil 200 iterasi pertama diberikan pada 3. Bilangan yang dihasilkan oleh y = Cos ( x ) meng- hasilkan visualisasi grafik yang berpola pada data-1 hingga data-5 seperti yang ditunjukkan pada gambar. 0 100 200 1 0 . 5 0 0 . 5 1 i x i hasil iterasi 0 100 200 0 200 400 600 800 1 , 000 i x i data- 1 0 100 200 0 200 400 600 800 1 , 000 i x i data- 2 0 100 200 0 200 400 600 800 1 , 000 i x i data- 3 0 100 200 0 200 400 600 800 1 , 000 i x i data- 4 0 100 200 0 200 400 600 800 1 , 000 i x i data- 5 Gambar 3: Scatter Plot 200 Iterasi Pertama untuk Fungsi y = Cos ( x )
Hasil pembangkitan bilangan acak menggunakan fungsi y = Cos ( x ) masih belum cukup baik dalam membangkitkan bilangan acak. Bilangan yang dibangkitkan dari data-1 hingga data-5 secara bertahap semakin berkembang, namun secara visualisasi masih cenderung membentuk pola. Se- hingga memungkin untuk fungsi ini dilakukan modifikasi agar dapat membangkitkan bilangan acak lebih baik.
Sehingga percobaan dilakukan modifikasi pada fungsi menjadi y = 2 ⇥ Cos ( 3 2 x ) yang akan diuji coba sebagai fungsi pembangkit. Inisialisasi pada pengujian ini dilakukan percobaan dengan x o = 0 . 1 sebagai inisialisasi awal. Dari hasil iterasi diperoleh 8 iterasi pertama seperti yang ditun- jukkan pada 4.
Tabel 4: Hasil iterasi y = 2 ⇥ Cos ( 3 2 x ) i X i Data 1 Data 2 Data 3 Data 4 Data 5 1 1 . 884444681337320 0.88 444 468 133 732 2 1 . 768692986628510 768 692 986 628 510 3 1 . 718099429293330 718 99 429 293 330 4 1 . 812728358474720 812 728 358 474 720 5 1 . 621391622186670 621 391 622 186 670 6 1 . 941345258001840 941 345 258 1 840 7 1 . 270150310568620 270 150 310 568 620 8 1 . 792371834437610 792 371 834 437 610 Hasil iterasi diberikan pada 4 untuk 200 iterasi pertama. Bilangan yang dihasilkan oleh fungsi Gambar 3: Hasil Iterasi x i + 1 = cos x i .
Pengujian yang kedua adalah untuk fungsi f ( x ) = cos x dalam bentuk iterasi adalah x i + 1 = cos x i . Digunakan input x 0 = 0 . 1, hasil 200 iterasi pertama diberikan pada Gambar 3. Hasil pada fungsi f ( x ) = cos x berbeda dengan f ( x ) = sin x , semua hasil iterasi untuk setiap data- i , i = 1 , ··· , 4 gagal menghasilkan bilangan acak. 10 Kuniarti Paraditasari dihasilkan oleh fungsi y = Tan ( x ) pada data-1 terlihat bilangan yang dihasilkan acak namun berpola, dan pada data-2, data-3, data-4 dan data-5 menunjukkan visualisasi pola yang mulai acak dan menye- bar.
0 100 200 2 0 2 4 6 i x i hasil iterasi 0 100 200 0 200 400 600 800 1 , 000 i x i data- 1 0 100 200 0 200 400 600 800 1 , 000 i x i data- 2 0 100 200 0 200 400 600 800 1 , 000 i x i data- 3 0 100 200 0 200 400 600 800 1 , 000 i x i data- 4 0 100 200 0 200 400 600 800 1 , 000 i x i data- 5 Gambar 5: Scatter Plot 200 Iterasi Pertama untuk Fungsi y = Tan ( x )
Variasi bilangan acak yang dihasilkan oleh fungsi y = Tan ( x ) dengan koordinat Cartesius cukup baik pada pembangkitkan pola penyebaran pada data-1 hingga data-5 bahwa variasi penyebarannya cukup terlihat. Dapat dilihat pada data-1 bilangan yang dihasilkan terdapat sedikit yang menyebar namun masih banyak yang membentuk pola. Pada data-2 bilangan yang dihasilkan lebih banyak yang menyebar. Pada data-3, data-4 dan data-5 bilangan semakin menyebar tak berarah dan acak.
4.1.4 Pencarian pada Fungsi Dasar Trigonometri Cosecan ( Cosec )
Fungsi y = Cosec ( x ) merupakan fungsi trigonometri kebalikan dari fungsi Sinus. Dilakukan uji coba pada fungsi y = Cosec ( x ) untuk menentukan apakah fungsi Cosecan ini dapat dijadikan sebagai fungsi pembangkit. Diperoleh 8 iterasi pertama seperti yang ditunjukkan pada Tabel 6.
Tabel 6: Hasil iterasi y = Cosec ( x ) i X i Data 1 Data 2 Data 3 Data 4 Data 5 1 10 . 016686131634800 0.01 668 613 163 480 2 1 . 792289472927830 0.79 228 947 292 783 3 1 . 025041231585450 0.02 504 123 158 545 4 1 . 169952450019570 0.16 995 245 1 957 5 1 . 086092316913500 0.08 609 231 691 350 6 1 . 130182433070080 0.13 18 243 307 8 7 1 . 105595404738510 0.1 559 540 473 851 8 1 . 118904342597640 0.11 890 434 259 764 Gambar 4: Hasil Iterasi x i + 1 = tan x i . (judul) ... 13 Hasil iterasi untuk 200 iterasi pertama terdapat pada Gambar 7 dimana fungsi y = Sec ( x ) dapat menghasilkan bilangan acak pada data-1, data-2, data-3, data-4 dan data-5, meskipun pada data-1 masih terdapat bilangan dengan kecenderungan pola menumpuk dibawah, namun tingkat penyebaran variatif. 0 100 200 200 100 0 i x i hasil iterasi 0 100 200 0 200 400 600 800 1 , 000 i x i data- 1 0 100 200 0 200 400 600 800 1 , 000 i x i data- 2 0 100 200 0 200 400 600 800 1 , 000 i x i data- 3 0 100 200 0 200 400 600 800 1 , 000 i x i data- 4 0 100 200 0 200 400 600 800 1 , 000 i x i data- 5 Gambar 8: Scatter Plot 200 Iterasi Pertama untuk Fungsi Iterasi y = Sec ( x ) Hasil iterasi pada fungsi y = Sec ( x ) berhasil menghasilkan bilangan acak dengan pola yang vari- atif dapat dilihat pada grafik hasil iterasi bilangan yang dihasilkan membentuk pola datar meskipun terdapat beberapa pola yang menyebar. Namun pada data-1 pembangkitan bilangan mulai menye- bar, walaupun masih terdapat bilangan yang berbentuk pola namun terdapat lebih banyak bilangan yang menyebar. Pada data-2, data-3, data-4 dan data-5 pola bilangan acak yang terbentuk semakin menyebar.
4.1.6 Pencarian pada Fungsi Dasar Trigonometri Cotangen ( Cot ) Seacra matematis, fungsi y = Cot ( x ) merupakan kebalikan dari fungsi tangen yang diperoleh dari hasil bagi antara sisi datar dengan sisi tegak. Melalui fungsi dasar Cotangen ini akan diuji sebagai percobaan fungsi pra-generator dengan memperhatikan koordinat Cartesius. Hasil iterasi diperoleh 8 iterasi pertama seperti yang ditunjukkan pada 9.
Gambar 5: Hasil Iterasi x i + 1 = sec x i .
Hasil iterasi untuk fungi f ( x ) = tan x atau dalam bentuk iterasi adalah x i + 1 = tan x i . Input x 0 = 0 . 1 sebagai inisialisasi maka dihasilkan 200 iterasi pertama yang diberikan pada Gambar 4, berhasil menghasilkan diagram Scatter yang sudah acak. Hanya data-1 yang gagal kerena membentuk pola tertentu. (judul) ...
11
Hasil iterasi diberikan pada Gambar 6 untuk 200 iterasi. Fungsi y = Cosec ( x ) menghasilkan bilangan yang masih cenderung berpola pada data-1 hingga data-5. Grafik yang dihasilkan sangat mudah ditebak polanya.
0 100 200 0 5 10 i x i hasil iterasi 0 100 200 0 200 400 600 800 1 , 000 i x i data- 1 0 100 200 0 200 400 600 800 1 , 000 i x i data- 2 0 100 200 0 200 400 600 800 1 , 000 i x i data- 3 0 100 200 0 200 400 600 800 1 , 000 i x i data- 4 0 100 200 0 200 400 600 800 1 , 000 i x i data- 5 Gambar 6: Scatter Plot 200 Iterasi Pertama untuk Fungsi y = Cosec ( x )
Hasil secara grafik menunjukkan bilangan yang dihasilkan fungsi y = Cosec ( x ) memiliki tingkat keacakan cenderung berpola, pola yang dihasilkan tidak cukup bervariasi sehingga tidak mudah un- tuk dijadikan sebagai fungsi pembangkit. Bilangan yang dibangkitkan dari data-1 hingga data-5 secara bertahap semakin berkembang, namun secara visualisasi masih cenderung membentuk pola. Sehingga memungkinkan untuk fungsi ini dilakukan pengujian dengan melakukan modifikasi pada fungsi Cosecan.
Sehingga percobaan dilakukan modifikasi pada fungsi menjadi y = 2 ⇥ Cosec ( 3 2 x ) yang akan diuji coba sebagai fungsi pembangkit. Inisialisasi pada pengujian ini dilakukan percobaan dengan x o = 0 . 1 sebagai inisialisasi awal. Dari hasil iterasi diperoleh 8 iterasi pertama seperti yang ditun- jukkan pada Tabel.
Tabel 7: Hasil iterasi y = 2 ⇥ Cos ( 3 2 x ) i X i Data 1 Data 2 Data 3 Data 4 Data 5 1 5 . 970360441314690 970 360 441 314 690 2 4 . 297618939095300 0.29 761 893 909 530 3 2 . 422699181823120 0.42 269 918 182 312 4 2 . 000073674791110 0 73 674 791 110 5 2 . 376565385565620 0.37 656 538 556 562 6 2 . 010214178528930 10 214 178 528 930 7 2 . 346503113793960 0.34 650 311 379 396 8 2 . 026195847733530 26 195 847 733 530 Gambar 6: Hasil Iterasi x i + 1 = csc x i . 14 Kuniarti Paraditasari Tabel 9: Hasil iterasi y = Cot ( x ) i X i Data 1 Data 2 Data 3 Data 4 Data 5 1 9 . 966644423259240 966 644 423 259 240 2 1 . 661213511991640 661 213 511 991 640 3 0 . 090664388497665 0,09 66 438 849 766 4 10 . 999450868965600 0,9 994 508 689 656 5 0 . 003876600820365 3 876 600 820 365 6 257 . 956657646314000 7,9 566 576 463 140 7 2 . 773386932968770 773 386 932 968 770 8 2 . 592013981310710 0,59 201 398 131 71 Gambar 8 merupakan hasil 200 iterasi pertama fungsi y = Cot ( x ) dapat dilihat grafik yang di- hasilkan secara visualisasi acak pada data-1 hingga data-5. Secara visualisasi bilangan membentuk pola pada data-1 hal ini dikarenakan pengambilan 3 digit bilangan yang diambil dari X i . 0 100 200 100 0 100 200 i x i hasil iterasi 0 100 200 0 200 400 600 800 1 , 000 i x i data- 1 0 100 200 0 200 400 600 800 1 , 000 i x i data- 2 0 100 200 0 200 400 600 800 1 , 000 i x i data- 3 0 100 200 0 200 400 600 800 1 , 000 i x i data- 4 0 100 200 0 200 400 600 800 1 , 000 i x i data- 5 Gambar 9: Scatter Plot 200 Iterasi Pertama untuk Fungsi Iterasi y = Cot ( x )
Bilangan yang dihasilkan dari pembangkitan fungsi y = Cot ( x ) tidak merata, dapat dilihat dari visualisasi grafik hasil iterasi dimana bilangan yang dihasilkan menyebar, nilai tinggi pada 257 . 956657646314 dan nilai paling rendah pada 136 . 905605069639.

## 4.2 Pemilihan Fungsi
Dilakukan modifikasi pada fungsi Dasar Trigonometri Cosinus y = cos ( x ) menjadi y = cos ( 3 2 x ) dengan iterasi y = 2 sin ( 3 2 x ) untuk melakukan pencarian fungsi pembangkit bilangan acak seperti pada Gambar ?? . Fungsi yang sudah ditetapkan akan melalui proses pencarian nilai (seed) untuk memperoleh luaran berupa bilangan yang dapat dijadikan sebagai kunci. Setiap urutan bilangan yang dihasilkan akan menuju tahap pada pengujian Statistik.
Gambar 7: Hasil Iterasi x i + 1 = cot x i .
Fungsi f ( x ) = sec x juga berhasil memperoleh hasil iterasi yang baik seperti pada fungsi f ( x ) = tan x . Berdasarkan Gambar 5, data-2, data-3, data-4, dan data-5 menghasilkan diagram Scatter yang acak, dan pada data-1 walaupun pada iterasi tertentu membentuk sebuah pola tetapi hasil iterasi lainnya nampak sudah acak.
Gambar 6 adalah hasil iterasi dari x i + 1 = csc x i dengan x 0 = 0 . 1, diperoleh data- i , untuk i = 1 , ··· , 5 semuanya membentuk sebuah pola berupa garis lurus. Walaupun ada beberapa bilangan berbeda yang dihasilkan, tetapi gagal untuk 200 iterasi pertama yang acak. Fungsi f ( x ) = cot x dengan fungsi iterasi x i + 1 = cot x i dan input x 0 = 0 . 1, berhasil mendapatkan diagram Scatter yang sudah chaos untuk data-2, data-3, data-4, dan data-5. f ( x ) = cot x menjadi salah satu fungsi yang berhasil dengan baik dalam menghasilkan bilangan acak, sehingga dapat digunakan sebagai fungsi pembangkit.

## JIPI (Jurnal Ilmiah Penelitian dan Pembelajaran Informatika)
Volume 06, Nomor 02, Desember 2021: 400–405

## B. Modifikasi Fungsi Triginometri
Modifikasi dilakukan apabila fungsi trigonometri tidak berhasil menghasilkan bilangan acak berbasis chaos pada pengujian pertama. Oleh karena itu modifikasi hanya dilakukan pada fungsi f ( x ) = cos x dan f ( x ) = csc x , dengan mengubah setiap x dengan ( 3 − 2 x ) dan kemudain dikalikan dengan konstanta 2. Sehingga diperoleh fungsi yang baru sebagai hasil modifikasi adalah f ( x ) = 2cos ( 3 − 2 x ) dan f ( x ) = 2csc ( 3 − 2 x ) . (judul) ... 9 y = 2 ⇥ Cos ( 3 2 x ) pada data-1 hingga data-5 menghasilkan bilangan acak dengan baik seperti yang ditunjukkan pada gambar. 0 100 200 2 1 0 1 2 i x i hasil iterasi 0 100 200 0 200 400 600 800 1 , 000 i x i data- 1 0 100 200 0 200 400 600 800 1 , 000 i x i data- 2 0 100 200 0 200 400 600 800 1 , 000 i x i data- 3 0 100 200 0 200 400 600 800 1 , 000 i x i data- 4 0 100 200 0 200 400 600 800 1 , 000 i x i data- 5 Gambar 4: Scatter Plot 200 Iterasi Pertama untuk Fungsi y = 2 ⇥ Cos ( 3 2 x )
Secara visualisasi menggunakan koordinat Cartesius hasil dari y = 2 ⇥ Cos ( 3 2 x ) memper- lihatkan pola acak bilangan yang baik. Sehingga pada fungsi modifikasi Cos y = 2 ⇥ Cos ( 3 2 x ) ini memungkinkan untuk diuji dengan melakukan inisialisasi seed dan modifikasi fungsi agar dapat menghasilkan bilangan chaos lebih baik lagi.
4.1.3 Pencarian pada Fungsi Dasar Trigonometri Tangen ( Tan )
Fungsi y = Tan ( x ) merupakan fungsi dasar Tangen pada trigonometri yang akan dilakukan per- cobaan pengujian sebagai fungsi pembangkit. Dari hasil iterasi diperoleh 8 iterasi pertama seperti yang ditunjukkan pada 5.
Tabel 5: Hasil iterasi y = Tan ( x ) i X i Data 1 Data 2 Data 3 Data 4 Data 5 1 0 . 100334672085451 100 334 672 85 451 2 0 . 100672724694484 100 672 724 694 484 3 0 . 101014215100705 101 14 215 100 705 4 0 . 101359201945066 101 359 201 945 66 5 0 . 101707745278116 101 707 745 278 116 6 0 . 102059906603855 102 59 906 603 855 7 0 . 102415748925272 102 415 748 925 272 8 0 . 102775336791631 102 775 336 791 631 Hasil iterasi y = Tan ( x ) diberikan pada Gambar 4 untuk 200 iterasi pertama. Bilangan yang Gambar 8: Hasil Iterasi x i + 1 = 2cos ( 3 − 2 x i ) . 12 Kuniarti Paraditasari
Hasil iterasi diberikan pada 7 untuk 200 iterasi pertama. Bilangan yang dihasilkan oleh fungsi y = 2 ⇥ Cosec ( 3 2 x ) pada data-1 hingga data-5 menghasilkan bilangan acak dengan baik seperti yang ditunjukkan pada gambar.
0 100 200 80 60 40 20 0 i x i hasil iterasi 0 100 200 0 200 400 600 800 1 , 000 i x i data- 1 0 100 200 0 200 400 600 800 1 , 000 i x i data- 2 0 100 200 0 200 400 600 800 1 , 000 i x i data- 3 0 100 200 0 200 400 600 800 1 , 000 i x i data- 4 0 100 200 0 200 400 600 800 1 , 000 i x i data- 5 Gambar 7: Scatter Plot 200 Iterasi Pertama untuk Fungsi y = 2 ⇥ Cosec ( 3 2 x )
Secara visualisasi menggunakan koordinat Cartesius hasil dari y = 2 ⇥ Cosec ( 3 2 x ) memper- lihatkan pola acak bilangan yang baik. Sehingga pada fungsi modifikasi Cos y = 2 ⇥ Cosec ( 3 2 x ) ini memungkinkan untuk diuji dengan melakukan inisialisasi seed dan modifikasi fungsi agar dapat menghasilkan bilangan chaos lebih baik lagi. 4.1.5 Pencarian pada Fungsi Dasar Trigonometri Secan ( Sec ) Fungsi y = Sec ( x ) merupakan fungsi dasar kebalikan dari Cosinus. Dari y = Sec ( x ) akan di- lakukan uji sebagai fungsi pembangkit. Hasil iterasi diperoleh 8 iterasi pertama seperti yang ditun- jukkan pada 8.
Tabel 8: Hasil iterasi y = Sec ( x ) i X i Data 1 Data 2 Data 3 Data 4 Data 5 1 1 . 005020918400460 5 20 918 400 460 2 1 . 865426087421250 865 426 87 421 250 3 3 . 443697117880940 0.44 369 711 788 940 4 1 . 047435787636670 0.04 743 578 763 667 5 2 . 000825672712690 0 825 672 712 690 6 2 . 398671270342770 0.39 867 127 34 277 7 1 . 357781442980820 0.35 778 144 298 82 8 4 . 730198969061360 730 198 969 61 360 Gambar 9: Hasil Iterasi x i + 1 = 2csc ( 3 − 2 x i ) .
Digunakan nilai inisialisasi x 0 = 0 . 1, diperoleh secara berturut-turut hasil dari fungsi iterasi x i − 1 = 2cos ( 3 − 2 x i ) diberikan pada Gambar 8, dan Gambar 9 untuk fungsi iterasi x i − 1 = 2csc ( 3 − 2 x i ) . Fungsi x i − 1 = 2cos ( 3 − 2 x i ) dapat menghasilkan lima data- i , i = 1 , ··· , 5 dalam bentuk chaos, yang sebelumnya tidak ada data yang berhasil. Sedangakan x i − 1 = 2csc ( 3 − 2 x i ) dapat menghasilkan 4 bilangan acak, yang sebelumnya juga tidak dapat menghasilkan bilangan acak.

## C. Pengujian Keacakan
Setiap fungsi yang berhasil menghasilkan diagram Scatter yang chaos , selanjutnya akan dilakukan pengujian bilangan acak dengan metode Mono Bit dan Run Test . Pengujian dilakuan dengan mengambil α = 1% dan apabila p-value > α maka data set dikatakan acak, dan sebaliknya tidak acak.
Tabel II: Pengujian Keacakan Fungsi Fungsi Data p-value Hasil Fungsi Data p-value Hasil Mono Bit Run-Test Mono Bit Run-Test x i = sin ( x i − 1 ) 3 0.2030 0.5005 acak x i = cot ( x i − 1 ) 3 0.2578 0.5018 acak
x i = sin ( x i − 1 ) 4 0.3961 0.5015 acak x i = cot ( x i − 1 ) 4 0.5716 0.4986 acak
x i = sin ( x i − 1 ) 5 0.5716 0.4986 acak x i = cot ( x i − 1 ) 5 0.8875 0.5000 acak
x i = tan ( x i − 1 ) 2 0.8875 0.4994 acak x i = 2cos ( 3 − 2 x i − 1 ) 1 0.5716 0.5008 acak
x i = tan ( x i − 1 ) 3 0.3961 0.4989 acak x i = 2cos ( 3 − 2 x i − 1 ) 2 0.7772 0.5002 acak
x i = tan ( x i − 1 ) 4 0.6713 0.5005 acak x i = 2cos ( 3 − 2 x i − 1 ) 3 0.3221 0.5032 acak
x i = tan ( x i − 1 ) 5 0.5716 0.5008 acak x i = 2cos ( 3 − 2 x i − 1 ) 4 0.3961 0.4981 acak
x i = sec ( x i − 1 ) 2 0.4795 0.5012 acak x i = 2cos ( 3 − 2 x i − 1 ) 5 0.8875 0.4994 acak x i = sec ( x i − 1 ) 3 0.3221 0.5009 acak x i = 2csc ( 3 − 2 x i − 1 ) 2 0.8875 0.5000 acak
x i = sec ( x i − 1 ) 4 0.8875 0.4994 acak x i = 2csc ( 3 − 2 x i − 1 ) 3 4.2902 0.4809 acak
x i = sec ( x i − 1 ) 5 0.4795 0.5012 acak x i = 2csc ( 3 − 2 x i − 1 ) 4 1.0073 0.4875 acak
x i = cot ( x i − 1 ) 2 0.8875 0.4994 acak x i = 2csc ( 3 − 2 x i − 1 ) 5 1.7036 0.4877 acak
Hasil pengujian untuk kedua metode secara berturut-turut diberikan pada Tabel II, data dari setiap fungsi memenuhi pengujian mono bit dan run test , sehingga secara keseluruhan hasilnya adalah acak. Hasil menunjukkan penggunaan fungsi trigonometri sebagai fungsi pembangkit bilangan acak berhasil dengan baik, sehingga setiap fungsi pembangkit yang diberikan pada Tabel 1, berhasil menjadi pembangkit yang akan menghasilkan bilangan acak berbasis CSPRNG chaos . Semua data dari fungsi yang telah berhasil mempunyai digaram Scatter yang tidak berpola, mempunyai nilai p-value yang lebih besar dari α = 0 . 01, Hasil ini menggambarkan keunikan dari fungsi trigonometri dalam proses iterasi, berbeda dengan penggunaan fungsi polinomial, yang telah dilakukan sebelumnya.

## D. Pengujian Kriptografi Blok Cipher
Pengujian ini dilakukan dalam dua bagian, pertama adalah pengujian korelasi antara plainteks dan cipherteks. Kedua adalah pengujian butterfly effect , dimana akan dilihat perubahan kecil pada inisialisasi x 0 apakah akan menghasilkan perubahan yang besar pada cipherteks. Dimana pengujian ini untuk melihat seberapa baik kunci memberikan peran untuk menyamarkan cipherteks.
E k : P + K = C ( mod 256 ) (2)

## E-ISSN : 2540-8984

## JIPI (Jurnal Ilmiah Penelitian dan Pembelajaran Informatika) Volume 06, Nomor 02, Desember 2021: 400–405
Setiap fungsi iterasi yang menghasilkan bilangan acak berbasis CSPRNG chaos digunakan sebagai kunci dalam blok cipher. Pengujian dilakukan dengan proses enkripsi E k : P + K = C mod (256), dimana P , C , dan K secara berturut-turut adalah plainteks, cipherteks dan kunci. Pengambilan modulus 256 karena karakter ASCII berada dalam 256 karakter.
Diambil plainteks "fti uksw salatiga", dan digunakan ukuran block kunci sebesar 256 bit atau sebanding dengan 32 karakter. Pengujian pertama adalah dengan menguji setiap data dari setiap fungsi yang telah berhasil menjadi bilangan acak berbasis CSPRNG chaos untuk dijadikan kunci. Sehingga kunci adalah 32 karakter dari masing-masing data, dan dilakukan operasi enkripsi berdasarkan Persamaan 2, dan menguji korelasi antara plainteks dan cipherteks. Hasil dari setiap pengujian diberikan pada Tabel III.
Tabel III: Pengujian Enkripsi dengan Kunci 256 Bit Fungsi Iterasi Kunci Korelasi Fungsi Iterasi Kunci Korelasi x i = sin ( x i − 1 ) data 3 − 0 . 0002 x i = cot ( x i − 1 ) data 3 0 . 0059 x i = sin ( x i − 1 ) data 4 0 . 0008 x i = cot ( x i − 1 ) data 4 0 . 0008 x i = sin ( x i − 1 ) data 5 0 . 0018 x i = cot ( x i − 1 ) data 5 0 . 0002 x i = tan ( x i − 1 ) data 2 0 . 0015 x i = 2cos ( 3 − 2 x i − 1 ) data 1 − 0 . 0082 x i = tan ( x i − 1 ) data 3 − 0 . 0001 x i = 2cos ( 3 − 2 x i − 1 ) data 2 0 . 0065 x i = tan ( x i − 1 ) data 4 − 0 . 0021 x i = 2cos ( 3 − 2 x i − 1 ) data 3 0 . 0008 x i = tan ( x i − 1 ) data 5 0 . 0004 x i = 2cos ( 3 − 2 x i − 1 ) data 4 0 . 0014 x i = sec ( x i − 1 ) data 2 − 0 . 0009 x i = 2cos ( 3 − 2 x i − 1 ) data 5 0 . 0067 x i = sec ( x i − 1 ) data 3 − 0 . 0019 x i = 2csc ( 3 − 2 x i − 1 ) data 2 0 . 0092 x i = sec ( x i − 1 ) data 4 0 . 0014 x i = 2csc ( 3 − 2 x i − 1 ) data 3 − 0 . 0027 x i = sec ( x i − 1 ) data 5 0 . 0060 x i = 2csc ( 3 − 2 x i − 1 ) data 4 0 . 0025 x i = cot ( x i − 1 ) data 2 0 . 0031 x i = 2csc ( 3 − 2 x i − 1 ) data 5 − 0 . 0078
Hasil dari pengujian korelasi dapat digunakan untuk melihat kekuatan kunci dalam proses enkripsi, sehingga seberapa baik kunci dapat mengamankan informasi pada block cipher . Nilai korelasi negatif maupun positif tidak terlalu diperhatikan, yang dilihat hanya seberapa dekat dengan 0. Hasil yang sangat baik untuk semua pengujian pada Tabel 3, dimana nilai korelasi sangat dekat dengan 0, baik itu berbanding terbalik atau berbanding lurus.
Hasil ini menunjukkan pembangkit kunci dengan fungsi trigonometri mampu membuat plainteks dan cipherteks tidak berhubungan secara statistik. Pengujian ini memberikan informasi bahwa kekuatan kunci dapat membuat kriptanalisis akan kesulitan untuk mencari relasi plainteks dengan cipherteks. Dengan demikian setiap fungsi pembangkit yang diberikan pada Tabel 3, dapat memberikan efek difusi-konfusi pada sebuah algoritma, hal inilah yang perlu diperhatikan oleh para kriptografer dalam merancang algoritma kriptografi.
0 10 20 30 0 100 200 karakter ke- i bilangan ASCII plainteks cipherteks x 0 = 1 . 78244516 0 10 20 30 0 100 200 karakter ke- i bilangan ASCII plainteks cipherteks x 0 = 1 . 78244517
Gambar 10: Perbandingan Plainteks-Cipherteks
Berikut adalah pengujian butterfly effect , diambil plainteks “fti uksw salatiga”, dan digunakan ukuran block sebesar 256 bit atau sebanding dengan 32 karakter. Simulasi dilakukan dengan memilih x i = sin x i , khususnya pada data -4 untuk menjadi kunci. Dipilih sembarang dua nilai inisialisasi x 0 = 1 . 78244517 dan x 0 = 1 . 78244516, dimana keduanya adalah konstanta yang mempunyai perbedaan yang begitu kecil yaitu 10 − 8 . Hasil pengujian yang diberikan dalam koordinat Cartesius untuk plainteks dan cipherteks seperti yang diberikan pada Gambar 10. Perbedaan nilai inisialisasi sebesar 10 − 8 untuk fungsi x i − 1 = sin x i , dapat menghasilkan cipherteks yang sangat berbeda. Hasil ini menunjukkan bahwa fungsi trigonometri juga dapat memenuhi sifat butterfly effect , dimana perubahan kecil pada input fungsi pembangkit, tetapi kunci yang dihasilkan dapat mengubah cipherteks secara signifikan.

## IV. S IMPULAN
Pembangkitan kunci menggunakan fungsi trigonometri sangat baik, karena dapat menghasilkan bilangan acak berbasis CSPRNG chaos . Walaupun untuk fungsi cos x dan csc x memerlukan modifikasi untuk menemukan bilangan acak dengan input inisialisasi x 0 = 0 . 1. Pengambilan tiga bilangan pada mantisa, fungsi trigonometri dapat menghasilkan data set bilangan acak yang lebih banyak, rata-rata untuk setiap fungsi pembangkit dapat menghasilkan 3-5 data set yang memenuhi sifat CSPRNG chaos . Pengujian visualisasi dan juga pengujian keacakan dengan metode mono bit dan run test , kemudian dilanjutkan dengan pengujian enkripsi, diperoleh bahwa fungsi trigonometri berhasil dalam menghasilkan bilangan acak yang dapat dijadikan sebagai kunci pada kriptografi blok cipher. Pengujian korelasi antara plainteks-cipherteks dapat menghasilkan nilai korelasi yang sangat mendekati nol, sehingga fungsi trigonometri dapat menghasilkan kunci yang dapat memenuhi sifat difusi-konfusi pada algoritma kriptografi, sehingga akan mempersulit kriptanalisis melakukan kriptanalisis dengan mencari hubungan secara langsung antara cipherteks dan plainteks.

## JIPI (Jurnal Ilmiah Penelitian dan Pembelajaran Informatika)
Volume 06, Nomor 02, Desember 2021: 400–405

## P USTAKA
[1] H. Solís-Sánchez and E. G. Barrantes, “Using the logistic coupled map for public key cryptography under a distributed dynamics encryption scheme,” Information , vol. 9, no. 7, 2018. [Online]. Available: https://www.mdpi.com/2078-2489/9/7/160
[2] A. D. Wowor and et. all, “Domain examination of chaos logistich function as a key operator in cryptography,” International Journal of Electrical and Computer Engineering , vol. 8, no. 6, pp. 4577–4583, 2018.
[3] M. Lawnik, “Generalized logistic map and its application in chaos based cryptography,” Journal of Physics: Conference Series , vol. 936, p. 012017, dec 2017. [Online]. Available: https://doi.org/10.1088/1742-6596/936/1/012017
[4] Y. Guodong, J. Kaixin, P. Chen, and H. Xiaoling, “An effective framework for chaotic image encryption based on 3d logistic map,” Security and Communication Networks , vol. 936, p. 012017, dec 2018. [Online]. Available: https://www.hindawi.com/journals/scn/2018/8402578/
[5] A. D. Wowor, “Regenerasi fungsi polinomial dalam rancangan algoritma berbasis csprng chaos sebagai pembangkit kunci pada kriptografi block cipher,” Limits Journal , vol. 14, no. 1, pp. 1–15, 2017.
[6] R. Yopeng, M and A. D. Wowor, “The implementation of f ( x ) = 3 ( x 3 − x 2 − x ) + 2 as csprng chaos-based random number generator,” ndonesian Journal on Computing , vol. 6, no. 1, pp. 41–52, 2021.
[7] J. Yetao, T. Jiaze, Z. Hanfeng, G. Wenyong, L. Guoxi, C. Huiling, and W. Mingjing, “An Adaptive Chaotic Sine Cosine Algorithm for Constrained and Unconstrained Optimization,” Hindawi , vol. 2020, pp. 1–36, 2020. [Online]. Available: https://doi.org/10.1155/2020/6084917
[8] A. Moatsum, S. Azman, T. Je Sen, and H. A. Wafa’, “Digital Cosine Chaotic Map for Cryptographic Applications,” IEEE , vol. 7, pp. 150 609–150 622, 2019.
[9] L. Albert and M. K.-H. Kiessling, “Order and chaos in some deterministic infinite trigonometric products,” Journal of Statistical Physics , vol. 168, no. 3, p. 595–619, Jun 2017. [Online]. Available: http://dx.doi.org/10.1007/s10955-017-1811-1
[10] L. E. Bassham, A. L. Rukhin, J. Soto, J. R. Nechvatal, M. E. Smid, E. B. Barker, S. D. Leigh, M. Levenson, M. Vangel, D. L. Banks, N. A. Heckert, J. F. Dray, and S. Vo, “Sp 800-22 rev. 1a. a statistical test suite for random and pseudorandom number generators for cryptographic applications,” Gaithersburg, MD, USA, Tech. Rep., 2010.