Prosiding SENTIA 2016 – Politeknik Negeri Malang
Volume 8 – ISSN: 2085-2347
PENGUJIAN KEACAKKAN OUTPUT ALGORITMA CLEFIA-128 MODE COUNTER BERDASARKAN NIST SP 800-22 A’mas1, Aprita Danang P.2 Lembaga Sandi Negara
[email protected],
[email protected],
Abstrak CLEFIA merupakan algoritma berbasis block cipher yang menjadi standar penerapan enkripsi simetrik pada perangkat dengan sumber daya ringan berdasarkan ISO/IEC 29192-2. Algoritma ini diperuntukkan sebagai alternatif dalam pengamanan data untuk implementasi hardware dengan sumber daya terbatas. Sebagai algoritma kriptografi standar, aspek kekuatan yang memadai merupakan syarat yang harus dipenuhi. Oleh karena itu perlu adanya beberapa pengujian kriptografis untuk pembuktian keamanan dari algoritma tersebut. Pada paper ini penulis melakukan pengujian keacakkan berdasarkan NIST SP 800-22 terhadap CLEFIA-128 dengan mode operasi Counter (CTR). Penulis menggunakan sampel sebanyak 1000 barisan dengan panjang masingmasing 1.000.000 bit yang dibangkitkan oleh algoritma. Berdasarkan hasil pengujian tersebut didapatkan bahwa algoritma CLEFIA-128 dengan mode CTR lulus uji keacakkan dan layak digunakan dalam aplikasi kriptografi berdasarkan NIST SP 800-22. Kata kunci : CLEFIA-128, Uji Keacakkan, mode operasi CTR dan NIST SP 800-22
1. Pendahuluan Perkembangan teknologi informasi yang pesat saat ini memungkinkan manusia terkoneksi satu sama lain. Kemudahan dalam interaksi user dengan perangkat, baik hardware maupun software, dan kemampuannya untuk berintegrasi satu sama lain meningkatkan efisiensi dan efektifitas manusia dalam menyelesaikan pekerjaannya kapanpun dan dimanapun. Saat ini telah berkembang perangkat komputasi yang melekat pada manusia sehingga dapat diakses dimanapun, kapanpun, dan implikasinya yaitu perangkat tersebut harus diterapkan dalam sumber daya yang terbatas. Salah satu isu penting dalam koneksi dan komunikasi yaitu keamanan. Setiap data sensitif yang melewati perangkat dan jaringan perlu terjamin kerahasiaannya. Salah satu solusi utama dalam pengamanan informasi yaitu penerapan kriptografi. Permasalahannya yaitu bagaimana menerapkan kriptografi secara efisien pada sumber daya terbatas khususnya yang berbasis hardware. Organisasi standar internasional melalui ISO/IEC mengeluarkan standar algoritma enkripsi dengan kriteria tersebut berdasarkan ISO/IEC 29192-2. Salah satu algoritma yang ditetapkan pada standar ini yaitu CLEFIA.
Algoritma CLEFIA sebagai standar algoritma lighweight block cipher harus dibuktikan memenuhi kriteria kekuatan kriptografis yang memadai. Pada penelitian sebelumnya penulis telah melakukan analisis terhadap salah satu komponen utama dalam algoritma CLEFIA, yaitu s-box. S-box S0 dan S1 berukuran 8x8 pada CLEFIA memiliki ketahanan terhadap serangan linear dan differential cryptanalysis yang memadai berdasarkan penghitungan LAT, XOR Table dan nilai nonlinearity (A’mas, 2015). Selain ketahanan terhadap serangan linear dan differential cryptanalysis, algoritma ini perlu pembuktian apakah layak saat digunakan dalam mode operasi tertentu seperti mode Counter. Mode Counter merupakan salah satu mode operasi yang direkomendasikan sesuai NIST SP 800-38 A, dalam mengimplementasikan suatu algoritma block cipher. Apakah algoritma CLEFIA dengan mode operasi Counter menghasilkan barisan acak sehingga sulit untuk dianalisis dengan metode statistik. Berdasarkan hal tersebut penulis melakukan pengujian keacakkan sesuai standar NIST SP 800-22 terhadap output yang dihasilkan. Algoritma yang diuji dalam paper ini yaitu CLEFIA-128, yaitu dengan ukuran blok dan kunci sebesar 128 bit. dengan penelitian ini kita dapat menyimpulkan apakah algoritma ini layak digunakan dalam aplikasi kriptografi jika diimplementasikan mode operasi Counter.
A-184
Prosiding SENTIA 2016 – Politeknik Negeri Malang
Volume 8 – ISSN: 2085-2347
2.Landasan Teori 2.1 CLEFIA-128 (Sony corp, 2007) CLEFIA merupakan algoritma yang didesain atas dasar efisiensi namun tetap memperhatikan keamanan. CLEFIA pertama kali dipublikasikan oleh Sony pada tahun 2007. Pada tahun 2012 CLEFIA ditetapkan sebagai standar lighweight block cipher untuk diterapkan pada perangkat dengan sumber daya terbatas berdasarkan ISO/IEC 29192-2. Kemudian pada tahun 2013 Jepang menjadikan CLEFIA sebagai algoritma yang direkomendasikan untuk penerapan pada layanan publik pemerintah Jepang CLEFIA merupakan algoritma berbasis block cipher dengan ukuran 128 bit blok. Salah satu varian algoritma ini yaitu CLEFIA-128 yang menggunakan kunci berukuran 128 bit. CLEFIA menggunakan struktur Feistel yang membagi blok menjadi 4 jalur masing-masing berukuran 32 bit. Jumlah round pada CLEFIA bervariasi tergantung panjang kuncinya, dimana untuk CLEFIA-128 memiliki jumlah round sebanyak 18. Diagram algoritma CLEFIA dapat dilihat pada Gambar 1.
Gambar 2. Fungsi F0 dan F1 CLEFIA S0 dan S1 merupakan fungsi nonlinear S-box 8x8, sedangkan M0 dan M1 merupakan fungsi perkalian dengan matriks M0 dan M1 untuk proses linear mixing. Perkalian matriks M0 dan M1 ini didefinisikan berdasarkan pada polinomial primitive z8 + z4 + z3 + z2 + 1 dengan menggunakan matriks M0 dan M1 berukuran 4 x 4 berikut :
. 2.2.Penjadwalan Kunci CLEFIA-128 (Sony corp, (2007)) Penjadwalan kunci pada CLEFIA-128, digunakan untuk menyediakan kunci pada proses whitening
Gambar 1. Diagram Algoritma CLEFIA Fungsi F merupakan komponen utama dalam struktur algoritma CLEFIA yang berbasis Feistel. Didalamnya harus melibatkan operasi atau fungsi nonlinear dan memiliki sifat difusi yang maksimal. Fungsi F pada CLEFIA terdiri dari 3 komponen operasi yaitu operasi XOR dengan kunci, fungsi nonlinear Sbox 8x8 dan fungsi linear mixing. Fungsi F pada CLEFIA dapat dilihat pada Gambar 2.
dan
kunci
round
untuk proses tiap round. Fungsi DoubleSwap yang digunakan pada proses penjadwalan kunci didefinisikan sebagai berikut :
menotasikan string sepanjang a bit dipotong dari bit ke-a sampai bit ke-b pada X. Bit ke-0 adalah Most Significant Bit (MSB). Fungsi dapat digambarkan sebagai berikut :
A-185
Prosiding SENTIA 2016 – Politeknik Negeri Malang
Volume 8 – ISSN: 2085-2347
Tabel 1. nilai
Gambar 3. Fungsi DoubleSwap Misal K adalah kunci dan L adalah kunci intermediate dan penjadwalan kunci terdiri dari 2 (dua) langkah : 1. 2.
Membangkitkan L dari K Perluasan (ekspansi) K dan L (pembangkitan dan ). Untuk membangkitkan L dari K, pada 128 bit kunci menggunakan 128 bit permutasi , sedangkan struktur sama seperti diagram algoritma CLEFIA (Gambar 1) dengan jumlah iterasi (round) sebanyak 12.
dan
2.3. Mode Operasi CTR (NIST SP 800-38 A) Mode operasi CTR memungkinkan suatu block cipher digunakan sebagai dasar untuk keystream generator. Mode operasi ini menggunakan nonce dan counter sebagai input block dan kunci yang sama setiap block. Proses enkripsi block cipher dilakukan berulang sedemikian sehingga didapatkan keystream dengan panjang yang dibutuhkan. Untuk lebih jelasnya, mode operasi counter dapat dilihat pada Gambar 4.
Pseudocode untuk penjadwalan kunci CLEFIA128 adalah sebagai berikut :
Gambar 4. Mode operasi CTR
CON merupakan konstanta berukuran 32 bit yang digunakan dalam algoritma penjadwalan kunci. CLEFIA-128 membutuhkan 60 nilai konstan. Pseudocode untuk membangkitkan nilai adalah sebagai berikut :
Parameter dalam pembangkitan nilai
:
P(16) = 0xb7e1 ( = (e - 2) . 216) Q(16) = 0x243f ( = ( - 3) . 216) e = basis dari logaritma natural (2,71828...) = 3,14159
Input
dan
menggunakan Tabel 1
2.4. NIST Test Suite NIST test suite merupakan tools yang berisi kumpulan uji statistik untuk menguji keacakkan pada aplikasi kriptografi berdasarkan pada standar yang dikeluarkan NIST SP 800-22. Metode uji ini pertama kali diperkenalkan oleh Rukhin et.al, yang kemudian diadopsi oleh NIST sebagai standar. Uji keacakkan ini juga pernah digunakan sebagai tools untuk menguji statistik dari kandidat AES. NIST Test Suite (Rukhin, et al. 2010 ) terdiri atas 15 uji, yaitu: a. Frequency (monobit) b. Frequency (block) c. Runs test d. Longest run of ones in a block e. Binary matrix rank f. Discrete Fourier transform (spectral) g. Non-overlapping template matching h. Overlapping template matching i. Maurer’s universal statistical j. Linear complexity k. Serial l. Approximate entropy m. Cumulative sums n. Random excursions o. Random excursions variants 3.
A-186
Metode Pengujian
Prosiding SENTIA 2016 – Politeknik Negeri Malang Pada penelitian ini, varian algoritma yang digunakan yaitu CLEFIA-128. Untuk mengetahui kemampuan algoritma CLEFIA-128 dengan mode Counter dalam menghasilkan barisan acak, maka diberikan 2 (dua) skenario. Skenario yang diberikan yaitu saat salah satu parameter (IV atau Kunci) diberikan nilai konstan yang ekstrim, yaitu nol. Hal ini untuk mengetahui apakah algoritma CLEFIA-128 tetap menghasilkan barisan acak jika diberikan nilai ekstrim pada salah satu parameter inputnya.
Volume 8 – ISSN: 2085-2347
Dari hasil uji tersebut, disimpulkan bahwa algoritma CLEFIA-128 dengan mode CTR lulus keseluruhan uji NIST (kesimpulan uji dapat dilihat pada Tabel 2). Dengan demikian algoritma CLEFIA128 terbukti menghasilkan barisan bit yang acak berdasarkan NIST SP 800-22 dan dapat direkomendasikan untuk aplikasi kriptografi. Tabel 2. Hasil Uji CLEFIA-128 mode CTR IV acak, kunci 0x00
Pembangkitan sampel untuk pengujian ini sesuai dengan skenario yang ditetapkan, yaitu : a. IV = 0 dan Kunci Acak. b. IV acak dan Kunci = 0. Masing-masing skenario pengujian menggunakan sampel sebanyak 1000 barisan, dengan panjang 1.000.000 bit tiap barisan. Banyaknya barisan ini sesuai dengan rekomendasi NIST bahwa untuk hasil uji yang valid membutuhkan barisan sebanyak ≥ 55 barisan. Sedangkan untuk panjang barisan bit yang direkomendasikan jika dilihat secara keseluruhan yaitu sebanyak ≥ 1000000 bit.
1
Frequency (monobit)
LULUS
LULUS
2
Frequency (block)
LULUS
LULUS
3
Runs test
LULUS
LULUS
4
Longest run of ones in a block
LULUS
LULUS
5
Binary matrix rank
LULUS
LULUS
6
Discrete Fourier transform (spectral)
LULUS
LULUS
7
Non-overlapping template matching
LULUS
LULUS
8
Overlapping template matching
LULUS
LULUS
9
Maurer’s statistical
LULUS
LULUS
10
Linear complexity
LULUS
LULUS
11
Serial
LULUS
LULUS
12
Approximate entropy
LULUS
LULUS
13
Cumulative sums
LULUS
LULUS
14
Random excursions
LULUS
LULUS
15
Random variants
LULUS
LULUS
1000 barisan sampel dibangkitkan menggunakan kunci inputan yang sama. Berdasarkan ukuran blok CLEFIA-128, pengujian ini membutuhkan sebanyak 7.812.500 iterasi counter (lihat Gambar 4) untuk dapat menghasilkan barisan bit acak yang dibutuhkan. 1000 barisan bit tersebut kemudian diuji menggunakan tools uji NIST SP 800-22. Pengujian algoritma ini menggunakan seluruh uji statistik pada NIST test suite (15 uji). Proses analisis uji ini mengikuti hasil uji yang tertera dalam file hasil uji NIST (finalAnalysisReport.txt), dimana terdapat dua hasil pada masing-masing uji NIST (188 uji) yaitu uji keseragaman dengan Chi Square dan Uji Proporsi. Untuk uji keseragaman menggunakan taraf kepercayaan 0,01 sehingga lulus jika ρ-value ≥ 0,01. 4. Hasil Pengujian Pengujian keacakkan terhadap CLEFIA-128 mode CTR dengan menggunakan sampel yang telah dibangkitkan, menghasilkan 2 (dua) buah hasil uji. Untuk IV = 0 dan Kunci Acak didapatkan ρ-value antara 0,011709 s.d. 0,999041. Sedangkan untuk IV acak dan Kunci = 0 didapatkan ρ-value antara 0,013380 s.d. 0,990483. Berdasarkan nilai ρ-value tersebut, kedua sampel yang dibangkitkan lulus uji keseragaman untuk keseluruhan uji NIST.
Jenis Uji
IV 0x00, kunci acak
No
universal
excursions
5. Kesimpulan dan Saran CLEFIA pertama kali dipublikasikan oleh Sony pada tahun 2007 dan kemudian ditetapkan sebagai standar lighweight block cipher berdasarkan ISO/IEC 29192-2. Penelitian ini penulis melakukan pengujian keacakkan terhadap CLEFIA-128 dengan mode operasi Counter (CTR). Pengujian ini menggunakan dua skenario pembangkitan sampel. Dengan menggunakan Untuk uji proporsi, seluruh uji menghasilkan sampel sebanyak 1000 barisan dengan panjang masingnilai proporsi yang melebihi batas minimum lulus uji. masing 1.000.000 bit didapatkan hasil bahwa algoritma Hasil uji proporsi secara keseluruhan lebih detilnya CLEFIA-128 mode CTR lulus uji keacakkan dapat dilihat pada lampiran. berdasarkan NIST SP 800-22 meskipun salah satu dari parameter (IV atau Kunci) diberikan nilai ekstrim yaitu
A-187
Prosiding SENTIA 2016 – Politeknik Negeri Malang nol. Selanjutnya algoritma CLEFIA-128 mode CTR ini dapat dipertimbangkan untuk diimplementasikan pada penelitian dan pengembangan rancang bangun aplikasi kriptografi untuk pengamanan data. Daftar Pustaka: A’mas, (2015): Analisis Ketahanan Algoritma Enkripsi Standar Pervasive Computing (CLEFIA) Terhadap Serangan Linear Dan Differential Cryptanalysis Dengan Metode LAT, XOR Table dan Nonlinearity, Seminar Nasional Informatika 2015, 14 November, 2015, pp. 21-27. NIST SP 800-22 (2010): A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications. NIST SP 800-38A (2001): Recommendation for Block Cipher Modes of Operation. Rukhin, et al (2010): A Statistical Test Suite for Random and Pseudorandom Number Generator for Cryptographic Application. Sony Corporation, (2007): The 128-bit Blockcipher CLEFIA, Japan. Lampiran Tabel Hasil Uji NIST algoritma CLEFIA-128 mode CTR NAMA UJI Frequency
JML BARIS 1000
BlockFrequency
1000
CumulativeSums
1000
CumulativeSums
1000
Runs
1000
LongestRun
1000
SUKSES K = 00 IV = 00 990 990 995
984
988
990
991
990
988
991
Template-1 Template-2 Template-3
1000 1000 1000
992
989
988
987
992
987
987
986
Template-4
1000
Template-5
1000
989
989
1000
995
990
1000
992
989
1000
993
988
Template-6 Template-7 Template-8
LULUS LULUS LULUS LULUS LULUS LULUS LULUS LULUS
A-188
LULUS
1000
Template-11
1000
996
986
LULUS
Template-12
1000
987
990
LULUS
990
983
996
988
992
995
991
990
992
992 994
LULUS LULUS
Template-13
1000
Template-14
1000
Template-15
1000
Template-16
1000
Template-17
1000
991
LULUS
LULUS LULUS LULUS LULUS LULUS
Template-18
1000
990
Template-19
1000
995
991
988
990
990
987
992
991
990
985
986
990 992
LULUS
Template-20
1000
Template-21
1000
Template-22
1000
Template-23
1000
Template-24
1000
LULUS LULUS LULUS LULUS LULUS
Template-25
1000
986
Template-26
1000
987
984
LULUS
Template-27
1000
990
985
LULUS
Template-28
1000
990
994
LULUS
Template-29
1000
992
995
Template-30
1000
984
991
989
991
987
992
986
995
Template-31
1000
Template-32
1000
LULUS LULUS LULUS LULUS
Template-33
1000
Template-34
1000
997
987
LULUS
Template-35
1000
988
992
LULUS
989
986
995
993
987
992
984
988
LULUS
LULUS
Non Overlapping Template
HASIL
Template-10
LULUS
LULUS
992
SUKSES K = 00 IV = 00 992 993 992
LULUS
985
1000
1000
LULUS
LULUS
FFT
Template-9
LULUS
987
1000
JML BARIS
LULUS
990
Rank
NAMA UJI
HASIL
992 988
Volume 8 – ISSN: 2085-2347
Template-36
1000
Template-37
1000
Template-38
1000
Template-39
1000
Template-40
1000
991
LULUS
LULUS LULUS LULUS
988
LULUS
992
LULUS
Template-41
1000
994
Template-42
1000
992
984
LULUS
Template-43
1000
981
995
LULUS
Template-44
1000
985
996
LULUS
Template-45
1000
989
LULUS
988
Prosiding SENTIA 2016 – Politeknik Negeri Malang
NAMA UJI
JML BARIS
Template-46
1000
SUKSES K = 00 IV = 00 986 989
Volume 8 – ISSN: 2085-2347
HASIL
NAMA UJI
JML BARIS
LULUS
Template-83
1000
1000
Template-48
1000
993
992
LULUS
Template-85
1000
986
990
LULUS
Template-49
1000
994
990
LULUS
Template-86
1000
986
991
LULUS
989
991
990
982
990
982
987
994
990
993
991
989
990
989 994
LULUS LULUS
Template-51
1000
Template-52
1000
Template-53
1000
Template-54
1000
987
Template-84
LULUS
Template-47
1000
LULUS
HASIL
993
Template-50
992
SUKSES K = 00 IV = 00 987 992
1000
991
992
LULUS
LULUS
Template-87
1000
LULUS
Template-88
1000
LULUS
Template-89
1000
991
992
LULUS
Template-90
1000
987
992
LULUS
Template-91
1000
990
LULUS
Template-92
1000
991
LULUS
Template-93
1000
987
989
988
993
992
992
992
991
994
992
988
993 991
LULUS
Template-55
1000
Template-56
1000
989
991
989
982
993
992
990
992
990
990
996
991 982
LULUS
Template-99
1000
991
1000
Template-58
1000
Template-59
1000
Template-60
1000
Template-61
1000
LULUS
988
985
Template-57
LULUS
LULUS
Template-94
1000
LULUS
Template-95
1000
LULUS
Template-96
1000
LULUS
Template-97
1000
LULUS
Template-98
1000
LULUS LULUS LULUS
LULUS LULUS LULUS LULUS LULUS
Template-62
1000
984
Template-63
1000
987
992
LULUS
Template-100
1000
991
994
LULUS
Template-64
1000
986
992
LULUS
Template-101
1000
991
995
LULUS
Template-65
1000
988
990
985
984
LULUS
Template-66
1000
988
991
994
987
Template-67
1000
991
982
988
988
992
992
993
987
984
992
991
987
991
990
991
987
Template-68
1000
Template-69
1000
Template-70
1000
Template-71
1000
991
Template-72
1000
Template-73
1000
Template-74
1000
Template-75
1000
Template-76
1000
Template-77
1000
LULUS
Template-102
1000
LULUS
Template-103
1000
LULUS
Template-104
1000
LULUS
Template-105
1000
LULUS
Template-106
1000
LULUS LULUS LULUS LULUS
LULUS
Template-107
1000
991
LULUS
Template-108
1000
991
993
LULUS
992
982
LULUS
Template-109
1000
990
986
LULUS
989
992
988
986
993
992
990
984
992
990
990
987
992
991
989
992
988
982
992
990
992
LULUS
Template-115
1000
988
990
LULUS
LULUS
Template-116
1000
988
991
LULUS
989
LULUS LULUS
LULUS
Template-110
1000
LULUS
Template-111
1000
LULUS
Template-112
1000
LULUS
Template-113
1000
LULUS
Template-114
1000
Template-78
1000
993
Template-79
1000
987
992
Template-80
1000
993
990
LULUS
Template-117
1000
986
Template-81
1000
990
991
LULUS
Template-118
1000
994
991
Template-82
1000
993
982
LULUS
Template-119
1000
988
996
A-189
LULUS
LULUS LULUS LULUS LULUS LULUS
LULUS
Prosiding SENTIA 2016 – Politeknik Negeri Malang
NAMA UJI Template-120
JML BARIS 1000
SUKSES K = 00 IV = 00 990 986
Volume 8 – ISSN: 2085-2347
JML BARIS
SUKSES
HASIL
NAMA UJI
LULUS
x=1
593
598
590
LULUS
1000
Template-122
1000
990
989
LULUS
x=3
593
600
588
LULUS
Template-123
1000
990
991
LULUS
x=4
593
593
584
LULUS
989
982
991
990
992
993
Template-125
1000
Template-126
1000
Template-127
1000
Template-128
1000
Template-129
1000
Template-130
1000
Template-131
1000
Template-132
1000
Template-133
1000
Template-134
1000
Template-135
1000
Template-136
1000
x=2
LULUS
Template-121
1000
LULUS
593
HASIL
987
Template-124
987
K = 00 IV = 00 595 589
988
990
990
994
991
995
986
988
990
985
993
988
992
987
991
991
992
989
989
982
LULUS LULUS LULUS LULUS LULUS
LULUS LULUS LULUS LULUS
LULUS
Template-138
1000
992
991
LULUS
Template-139
1000
988
991
LULUS
1000
Template-141
1000
986
987
991
991
589
LULUS
x=-8
596
591
LULUS
x=-7
597
589
LULUS
594
588
597
588
600
588
x=-3
600
589
LULUS
x=-2
595
591
LULUS
x=-1
599
592
LULUS
x=1
596
590
LULUS
599
583
599
584
600
583
599
584
598
585
x=7
599
585
LULUS
x=8
600
586
LULUS
x=9
601
586
LULUS
1000
993
990
LULUS
Serial
1000
993
989
LULUS
Serial
1000
984
982
LULUS
x=2
LULUS
986
592
x=-4
LULUS
989
x=-9
x=-5
LULUS
1000
Jml baris untuk Kunci Acak = 593 Jml baris untuk IV acak = 603
x=-6
LULUS
Template-137
Template-140
Random Excursions Variant
x=3 x=4 x=5 x=6
LULUS LULUS
LULUS LULUS LULUS
LULUS LULUS LULUS LULUS LULUS
992
982
993
994
985
993
1000
996
989
Template-146
1000
992
989
Template-147
1000
993
994
Template-148
1000
993
989
LULUS
1000
986
992
LULUS
Kunci=0x0000000000000000000000000000000
1000
994
989
LULUS
IV = acak.
1000
994
986
LULUS
x=-4
593
599
586
LULUS
x=-3
593
600
593
LULUS
x=-2
593
598
590
LULUS
593
595
590
Template-142
1000
Template-143
1000
Template-144
1000
Template-145
OverlappingTem plate Universal ApproximateEntr opy Random Excursions
x=-1
LULUS LULUS
Linear Complexity Serial
LULUS LULUS LULUS LULUS
Keterangan : K = 00:
IV = 00: Kunci = acak IV = 0x00000000000000000000000000000000.
LULUS
A-190