Proceedings, Komputer dan Sistem Intelijen (KOMMIT2004) Auditorium Universitas Gunadarma, Jakarta, 24 – 25 Agustus 2004
ISSN : 1411-6286
KOMPLEKSITAS DAN ANALISIS SANDI LINEAR ALGORITMA ENKRIPSI SUBTITUSI PERMUTASI SEDERHANA 128 BIT Yusuf Kurniawan Teknik Informatika Universitas Pasundan Jl Setiabudi 193 Bandung 40153 Telp. (022) 2019371 Fax. (022)2019352
[email protected] Abstrak Penelitian di bidang pemeriksaan keamanan teknik enkripsi belum banyak di tanah air. Dalam makalah ini, teknik untuk meningkatkan keamanan algoritma enkripsi diperiksa. Peningkatan kompleksitas algoritma diharapkan dapat meningkatkan keamanan algoritma. Namun ternyata, dapat ditunjukkan bahwa peningkatan kompleksitas algoritma, tidak otomatis meningkatkan pula keamanan algoritma. Dalam penelitian ini digunakan algoritma subtitusi-permutasi 7 ronde sederhana dengan kunci 128 bit. Dengan brute force attack, kunci ini dapat ditemukan setelah 1700 trilyun tahun dengan komputer berkemampuan 1015 enkripsi per detik. Analisis sandi yang digunakan adalah analisis sandi linear. Teknik ini berusaha mencari hubungan linear antara masukan dan keluaran algoritma. Dalam penelitian ini akan dibandingkan antara algoritma yang menggunakan kotak subtitusi yang sama dengan yang menggunakan kotak subtitusi berbeda-beda untuk seluruh kotak subtitusinya. Dalam kasus ini, ternyata bahwa keamanan tidak meningkat dan seluruh kunci 128 bit dapat dipecahkan dalam waktu kurang dari satu hari dengan 215 known plaintex dengan analisis sandi linear. Namun, algoritma dengan kotak subtitusi yang berbeda, akan lebih memakan memori pada implementasi, khususnya di perangkat keras. Sehingga, semakin rumit algoritma enkripsi, belum tentu keamanan meningkat. Namun, hampir dapat dipastikan bahwa implementasinya semakin rumit atau bertambah lambat. Kata kunci : enkripsi, kompleksitas, analisis sandi linear, kotak subtitusi, known plaintext attack
1.
Pendahuluan
Primitif komponen algoritma enkripsi adalah subtitusi dan permutasi[6]. Permutasi dianggap tidak memberikan keamanan terhadap algoritma[1], kecuali bila detil algoritmanya tersembunyi. Oleh karena itu, penekanan penelitian di dunia kriptografi terletak pada kotak subtitusinya (kotak-S). Dalam DES (Data Encryption Standard) misalnya, satu-satunya komponen yang dianggap tidak linear adalah kotak-S. Permutasi, ekspansi dan operasi XOR yang digunakan dalam DES dianggap tidak linear. Operasi permutasi[2] bertujuan agar setiap bit masukan mempengaruhi setiap bit keluaran secara acak, serta menghilangkan redundansi plaintext yang dapat dieksploitasi analis sandi. Operasi subtitusi bertujuan menghilangkan hubungan antara plaintext dan ciphertext, sehingga tidak ada sebarang korelasi antara bit-bit masukan dengan bit-bit keluaran, yang dapat dieksploitasi analis sandi. Dalam penelitian ini, penulis memeriksa algoritma subtitusi permutasi sederhana 128 bit seperti pada gambar 1. Algoritma semacam ini sering disebut juga sebagai Subtitusion-Permutation Network (SPN). Algoritma terdiri dari 7 ronde. Setiap ronde (selain ronde 7) terdiri dari pencampuran kunci (subkey mixing) berupa operasi XOR, diikuti operasi subtitusi dan kemudian permutasi. Pada setiap ronde terdapat 16 bit kunci, sehingga total kunci menjadi 128 bit. Pertama-tama akan diperiksa keamanan algoritma bila digunakan kotak-S yang sama untuk ke-28 kotak-S yang ada. Dan berikutnya akan digunakan kotak-S yang tidak sama untuk seluruh 28 kotak-S-nya. Di sini akan diperlihatkan cara mendapatkan kunci enkripsi 128 bit yang dibangkitkan secara acak. Untuk penelitian awal akan digunakan kotak-S yang menghasilkan kotak-S aktif yang banyak. Kotak S diambil secara acak dan kemudian dianalisis untuk mendapat bias linear yang cukup kecil. Kotak-S diperlihatkan pada tabel 1. Kompleksitas Dan Analisis Sandi Linear Algoritma Enkripsi Subtitusi Permutasi Sederhana 128 Bit
1
Proceedings, Komputer dan Sistem Intelijen (KOMMIT2004) Auditorium Universitas Gunadarma, Jakarta, 24 – 25 Agustus 2004
Tabel 1 0 1 2 3
4
5
6
7
8
9
A
B
C
D
E
F
3
F
B
0
9
A
E
D
5
2
1
7
8
4
6
C
ISSN : 1411-6286
Kotak-S tabel 1 menghasilkan tabel bias linear seperti yang ditunjukkan pada tabel 2
Gambar 1. Jaringan subtitusi permutasi sederhana 128 bit
2. Prinsip Analisis Sandi Linear (ASL) Analisis sandi linear merupakan known-plaintext attack yang termasuk paling sering digunakan untuk memeriksa keamanan algoritma enkripsi block cipher. Jadi, sebelum sebuah algoritma dapat dipecahkan, diperlukan pengetahuan pasangan plaintext/ciphertext yang jumlahnya tergantung pada kekuatan algoritma. Semakin banyak pasangan yang diperlukan, semakin kuat algoritma, dan sebaliknya. Untuk penelitian di sini, jumlah kemungkinan masukan plaintext adalah 216. Bila untuk memecahkan algoritma ini dibutuhkan 217, maka algoritma dianggap aman menghadapi analisis sandi ini. Namun tidak ada jaminan bahwa algoritma ini akan sanggup menahan serangan analisis sandi lainnya. Prinsip utama analisis sandi linear adalah untuk memperoleh taksiran linear block cipher. Persamaan linear dapat dituliskan sebagai berikut [3] :
u v w ⊕ ⊕ X Y ⊕ (1) α =1 iα β =1 jβ = γ⊕=1 K kγ di mana X menyatakan bit-bit plaintext, y menyatakan bit-bit ciphertext dan K menyatakan bit-bit kunci. Indeks u,v,w menyatakan lokasi-lokasi bit tertentu. 2
Kompleksitas Dan Analisis Sandi Linear Algoritma Enkripsi Subtitusi Permutasi Sederhana 128 Bit
Proceedings, Komputer dan Sistem Intelijen (KOMMIT2004) Auditorium Universitas Gunadarma, Jakarta, 24 – 25 Agustus 2004
ISSN : 1411-6286
Persamaan tersebut menyatakan bahwa XOR sekumpulan bit masukan dan keluaran akan sama dengan XOR sekumpulan bit keluaran. Posisi bit-bit masukan, keluaran dan kunci dapat sebarang. Bila persamaan (1) dipenuhi dengan peluang p = ½, maka dapat diartikan bahwa cipher memiliki keacakan yang baik dan tidak memiliki sifat linear. Dan bila peluang p = ½ + ε di mana bias ε ≠ 0, maka cipher memiliki sifat linear atau tidak acak dan dapat dieksploitasi. Untuk memeriksa kelinearan kotak-S, bias linear kotak-S diperiksa. Untuk mendapatkan taksiran linear dengan besaran bias tertinggi, kita ikuti notasi Matsui[5]. Untuk kotak-S Sa (kotak S ke a), 1 ≤ α ≤ p dan 1 ≤ β ≤ q, kita definisikan NSa(α,β) sebagai jumlah terjadinya pola masukan p dari Sa, sedemikian sehingga nilai bit-bit masukan yang di-XOR yang di-mask oleh α sesuai dengan nilai bit-bit keluaran yang diXOR-kan yang di-mask dengan β.
y −1 z −1 ≤ p, ⊕ ( x[ s] • α [ s ]) = ⊕ ( sa ( x)[t ] • β [t ]) } s t = 0 = 0 di mana y adalah nomor bit masukan dan z nomor bit keluaran kotak-S.
NSa(α,β) def #
{x 0 ≤ x
3. Pencarian Kunci 128 bit dengan kotak-S sama dengan Analisis Sandi Linear
Tabel 2 0 1 2 3 4 5 6 7 8 9 A B C D E F
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
+8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 +2 -2 +2 -2 0 0 -4 -4 +2 -2 -2 +2
0 -4 -4 0 0 0 0 0 0 0 0 0 0 -4 +4 0
0 0 0 0 -2 -2 +2 +2 +4 0 +4 0 +2 -2 -2 +2
0 0 +2 +2 -4 +4 +2 +2 0 0 -2 -2 0 0 +2 +2
0 +4 -2 +2 -2 -2 0 0 -4 0 +2 -2 -2 -2 0 0
0 0 -2 -2 -4 0 +2 -2 0 +4 -2 +2 0 0 -2 -2
0 0 -2 -2 +2 +2 0 0 0 +4 +2 -2 -2 +2 0 +4
0 +2 0 -2 0 -2 0 +2 0 +2 0 -2 +4 +2 +4 -2
0 +2 0 -2 -2 0 -2 -4 +4 -2 0 -2 -2 0 +2 0
0 -2 +4 -2 0 -2 0 +2 0 +2 0 -2 -4 -2 0 -2
0 +2 0 -2 +2 0 +6 0 0 -2 0 +2 -2 0 +2 0
0 +2 +2 0 0 -2 -2 0 0 +2 -2 +4 0 -2 +2 +4
0 -2 -2 0 -2 -4 0 +2 0 -2 -2 0 -2 +4 0 +2
0 +2 -2 -4 0 +2 -2 +4 0 -2 -2 0 0 -2 -2 0
0 +2 -2 +4 +2 0 0 +2 +4 +2 -2 0 -2 0 0 -2
Dari tabel 2, dapat dilihat bahwa bias linear tertinggi adalah 6, bila jumlah masukan masking kotak-S adalah 616 dan keluarannya B16. Bila kita mengambil nilai ini, maka akan memberikan kotak-S aktif keluaran sebanyak 3 buah, sehingga pada gilirannya akan memperkecil peluang taksiran linear. Inilah alasan pemilihan kotak-S yang digunakan dalam penelitian. Nilai mutlak bias linear tertinggi berikutnya adalah 4. Kita dapat memilih beberapa alternatif. Di sini kita pilih jumlah masking masukan 2 dan jumlah masking keluaran 2 untuk ronde ganjil dan jumlah masking masukan dan keluaran 4 untuk ronde genap. Kecuali di ronde 6 kita gunakan jumlah masukan 4 dan keluaran 6. Hasilnya dapat dilihat pada gambar 2.
Kompleksitas Dan Analisis Sandi Linear Algoritma Enkripsi Subtitusi Permutasi Sederhana 128 Bit
3
Proceedings, Komputer dan Sistem Intelijen (KOMMIT2004) Auditorium Universitas Gunadarma, Jakarta, 24 – 25 Agustus 2004
ISSN : 1411-6286
Gambar 2. Alur Taksiran Linear Dari tabel 2 dan gambar 2, kita gunakan taksiran linear kotak-S sebagai berikut: S12 : X3 = Y3 dengan p = -1/4 S23 : X2 = Y2 dengan p = -1/4 S32 : X3 = Y3 dengan p = -1/4 S43 : X2 = Y2 dengan p = -1/4 S52 : X3 = Y3 dengan p = -1/4 S63 : X2 = Y2 ⊕ Y3 dengan p = -1/4 n
Berdasar rumusan Matsui[3] P = ½ + 2n-1 ∏ ε i maka , diperoleh p = ½ + 26-1 (-1/4)6 = ½ + i =1
0,0078125 = 0,5078125 4
Kompleksitas Dan Analisis Sandi Linear Algoritma Enkripsi Subtitusi Permutasi Sederhana 128 Bit
Proceedings, Komputer dan Sistem Intelijen (KOMMIT2004) Auditorium Universitas Gunadarma, Jakarta, 24 – 25 Agustus 2004
ISSN : 1411-6286
Jadi peluang p bahwa P7 ⊕ i(7,7) ⊕ i(7,11) ⊕ ∑k = 0 adalah 0,5078125 di mana ∑k = K(1,7) ⊕ K(1,10) ⊕ K(3,7) ⊕ K(4,10) ⊕ K(5,7) ⊕ K(6,10) ⊕ K(7,7) dan P7 adalah bit plaintext ke-7 dihitung dari kiri, sedangkan i(7,7) adalah masukan bit ke-7 di ronde 7. Terdapat bias peluang sebesar ε = 0,0078125 yang berarti bahwa cipher cenderung untuk menuju 0 dengan peluang 0,0078125 bila dilakukan taksiran linear seperti di atas. Yang perlu dicatat adalah, rumusan Matsui di atas hanya berlaku bila anggapan bahwa peluang setiap ronde adalah saling bebas terhadap peluang ronde yang lain juga berlaku. Sehingga, peluang total sama dengan peluang setiap ronde dikalikan dengan peluang ronde yang lain. Bila tidak saling bebas, maka dapat terjadi bahwa peluang total tidak sama dengan hasil kali peluang setiap rondenya. Tabel 3 memperlihatkan sebagian hasil percobaan. Kunci yang benar (1C) = K(8,5)..K(8,12) memperlihatkan bias linear tertinggi (0,013062) yang lebih besar dari bias yang dihitung dengan rumus Matsui. Efek semacam ini disebut linear hull. Dan bias yang sebenarnya adalah yang diperoleh dari percobaan. Tabel 3 Kunci
Bias ε
1C 46 6C 6F 27 76 26
0.013062 0.012299 0.011963 0.011902 0.010223 0.010223 0.009949
Percobaan yang dilakukan berupa mencoba ke-256 kunci K(8,5)..K(8,8) dan K(8,9).. K(8,12) yang mungkin dengan 32768 pasang plaintext/ciphertext. Setiap kunci digunakan untuk mencoba ke-32768 pasang plaintext/ciphertext. Bias tertinggi dianggap menunjukkan kunci yang benar. Jumlah pasangan ini diperoleh dari rumus pendekatan Matsui yang menyatakan bahwa jumlah pasangan ciphertext/plaintext yang diperlukan sebanyak kira-kira kelipatan ε-2. 4. Pencarian Kunci 128 bit dengan kotak-S berbeda dengan Analisis Sandi Linear
Pada bagian ini akan diteliti kompleksitas menentukan kunci 128 bit dengan ASL, di mana digunakan kotak-S yang berbeda untuk keseluruh kotak-S yang ada. Penentuan kotak-S di sini dilakukan secara acak. Contoh kotak-S yang dipakai di sini adalah sebagai berikut: Tabel 4 Kotak-S_11 0 1 2 3 4 5 6 E 4 D 1 2 F B Kotak-S_13 0 1 2 3 4 5 6 7 F 6 C B 9 A Kotak-S_21 : 0 1 2 3 4 5 6 F 7 E 2 9 3 8 Kotak-S_23 0 1 2 3 4 5 6 3 D 5 0 6 7 C
7 8 9 A B C D E F 8 3 A 6 C 5 9 0 7 7 8 9 A B C D E F 0 D E 4 5 1 2 8 3 7 8 9 A B C D E F 1 0 A D C 4 6 5 B 7 8 9 A B C D E F 4 9 2 1 F A E 8 B
Kotak-S_12 0 1 2 3 4 5 3 4 6 C F B Kotak-S_14 0 1 2 3 4 5 C 6 4 0 8 2 Kotak-S_22 0 1 2 3 4 5 1 2 F B 8 3 Kotak-S_24 0 1 2 3 4 5 9 2 3 E 1 B
6 7 8 9 A B C D E F 0 9 A E D 5 2 1 7 8 6 7 8 9 A B C D E F E 1 F 5 B 3 A 9 D 7 6 7 8 9 A B C D E F A 6 C 5 9 0 7 E 4 D 6 7 8 9 A B C D E F 8 A C 7 F D 5 6 0 4
Kompleksitas Dan Analisis Sandi Linear Algoritma Enkripsi Subtitusi Permutasi Sederhana 128 Bit
5
Proceedings, Komputer dan Sistem Intelijen (KOMMIT2004) Auditorium Universitas Gunadarma, Jakarta, 24 – 25 Agustus 2004
ISSN : 1411-6286
Gambar 3. ASL pada SPN dengan kotak-S berbeda Dengan cara yang sama seperti sebelumnya dan dengan memperhatikan gambar 3, dapat dihitung peluang setiap ronde : S11 : X1 ⊕ X3 ⊕ X4 = Y2 dengan p = +1/4 S22 : X1 = Y2 dengan p = +1/4 S32 : X2 = Y1 dengan p = -1/4 S41 : X2 = Y4 dengan p = +1/4 S54 : X1 = Y3 dengan p = -1/4 S63 : X4 = Y1 ⊕ Y2 dengan p = -1/4 Sehingga p total cipher = ½ + 26-1(+1/4)3(-1/4)3 = ½ - 0,0078125 = 0,4921875 Dan bias ε = 0,0078125 sama seperti pada kasus sebelumnya Ini berarti bahwa penggunaan kotak-S yang berbeda tidak menjamin peningkatan keamanan. Namun jelas meningkatkan kerumitan analisis. 6
Kompleksitas Dan Analisis Sandi Linear Algoritma Enkripsi Subtitusi Permutasi Sederhana 128 Bit
Proceedings, Komputer dan Sistem Intelijen (KOMMIT2004) Auditorium Universitas Gunadarma, Jakarta, 24 – 25 Agustus 2004
ISSN : 1411-6286
Tabel 5 Kunci
Bias ε
49 40 89 43 4D
0.015198 0.012543 0.011078 0.009827 0.00946
Tabel 5 memperlihatkan sebagian hasil percobaan penemuan kunci. Kunci 49hex yang terletak tepat setelah S71 dan S72 ditemukan dalam waktu 15 detik dengan komputer Duron 1200 Mhz. Sehingga dapat diperkirakan dalam beberapa menit, seluruh kunci akan dapat dipecahkan dengan 32768 pasang plaintext/ciphertext yang telah diketahui sebelumnya. 5. Kesimpulan
Dari penelitian ini dapat disimpulkan hal-hal sebagai berikut: a. Algoritma enkripsi SPN sederhana 128 bit yang dengan brute force attack dapat dipecahkan dalam waktu 1700 trilyun tahun dengan sebuah komputer berkemampuan 1015 enkripsi per detik, ternyata dapat dipecahkan dengan sebuah komputer berkemampuan sekitar 104 enkripsi per detik dengan 32768 pasang plaintext/ciphertext yang telah diketahui
dengan analisis sandi linear b. Dari hasil tersebut dapat diambil kesimpulan pula bahwa semakin lama kunci enkripsi dipergunakan, maka semakin terancam keamanannya. c. Semakin rumit algoritma (dalam kasus ini adalah penggunaan kotak-S yang berbeda) tidak menjamin keamanan meningkat. d. Semakin rumit algoritma, analisis sandi semakin rumit dan implementasinya membutuhkan ketelitian, dan sumber daya (bisa berupa memori atau ruangan, jika diimplementasikan pada perangkat keras) yang lebih banyak. 6. Saran
Beberapa saran yang dapat diberikan adalah : a. Pengubahan kunci enkripsi sesering mungkin dalam setiap pemakaian untuk menghindari pemecahan sandi. b. Meneliti teknik analisis sandi lainnya untuk memastikan tingkat keamanan algoritma enkripsi. c. Meneliti sendiri untuk mendapatkan algoritma enkripsi yang cepat, fleksible dan aman, dan tidak bergantung kepada algoritma luar, karena dikuatirkan terdapat trapkdoor-nya[4]. 7. Daftar Pustaka [1] J. Daemen, Cipher and hash function design. Strategies based on linear and differential cryptanalysis, Doctoral Dissertation, KU Leuven. 1995.pp 17 [2] Shannon C. E. Communication Theory of Secrecy Systems, Bell system Technical Journal (1949) [3] M Matsui, Linear Cryptanalysis Method for DES Cipher, Computer & Information System Lab. Mitsubishi, 1998 Kompleksitas Dan Analisis Sandi Linear Algoritma Enkripsi Subtitusi Permutasi Sederhana 128 Bit
7
Proceedings, Komputer dan Sistem Intelijen (KOMMIT2004) Auditorium Universitas Gunadarma, Jakarta, 24 – 25 Agustus 2004
ISSN : 1411-6286
[4] Hongjun W, Feng B,. Cryptanalysis of Rijmen Preneel Trapdoor Ciphers, Department of Electrical Engineering, National University of Singapore, 1998 [5] K.S. Ooi, Brain C.V, Cryptanalysis of S-DES, University of Sheffield Centre, 2002 [6] Bruce Schneier, Applied Cryptography, 2nd edition, John Wiley & Sons, Inc., 1996
8
Kompleksitas Dan Analisis Sandi Linear Algoritma Enkripsi Subtitusi Permutasi Sederhana 128 Bit