ANALISIS KEAMANAN KRIPTOSISTEM KUNCI PUBLIK BERDASARKAN MATRIKS INVERS TERGENERALISASI Oleh Budi Murtiyasa FKIP Universitas Muhammadiyah Surakarta
Abstract The paper addresses a security analysis of the public key cryptosystem based on generalized inverses of matrices. The development idea of this cryptosystem is based on the error-correcting code by technique of generalized inverses. The design of public key can described as follow. For the message m, the method of the encryption is c = m G ⊕ E or c = m G ⊕ e(H-)T, where G is generator matrix, H- is generalized re-inverses of parity matrix H, and e is vector binary random. Matrix G and H- are public key. The method of the decryption is m G = c (I ⊕ RT), where R = H-H is private key. From a cryptanalysis, the matrix G is a critical point for the design of the cryptosystem. If G is chosen inaccurate, then the cryptosystem become insecure and inefficient. In generally, the intruder will attack to the cryptosystem by (1) find out matrix H to get error form E, (2) find out binary vector e to get error form E, and (3) try some error form E. From those method, the method by find out binary vector e have greatest probability to success. Key words : matrix, encryption, decryption, security of cryptosystem. A. Pendahuluan Teori matriks invers tergeneralisasi (generalized invers of matrices) telah berkembang sejak awal tahun 1970-an. Tetapi pembahasan matriks invers tergeneralisasi (MIT) ini umumnya terbatas pada lapangan (field) bilangan real (Israel dan Greville, 1974). Tulisan ini mengkaji MIT pada lapangan terhingga Z2. Dapat ditunjukkan bahwa MIT pada Z2 memberikan alternatif baru bidang kriptografi pada kriptosistem kunci publik. Kriptosistem kunci publik, yang menggunakan pendekatan matematis dalam pengembangannya, telah menjadi alternatif baru dalam bidang enkripsi dan dekripsi data. Salah satu kriptosistem kunci publik yang dibangun dengan pendekatan matematis adalah kunci publik berdasarkan MIT (Wu and Dawson, 1998). Tetapi 1
sejauh ini, belum banyak pengkajian yang dilakukan untuk mengetahui tingkat keamanan dari kriptosistem tersebut. Padahal layak tidaknya suatu kriptosistem dipakai untuk melakukan penyandian data sangat tergantung dari tingkat keamanan yang diberikannya. Tulisan ini akan mengkaji tingkat keamanan atau resiko-resiko yang disebabkan oleh enkripsi data menggunakan kriptosistem kunci publik tersebut.
B. Matriks Invers Tergeneralisasi Pembahasan MIT berada dalam himpunan terhingga Z2 = {0,1}. Diketahui matriks umum A yang berdimensi kxn. Suatu matriks B yang berdimensi nxk adalah MIT dari matiks A yang berdimensi kxn, jika berlaku ABA = A. Jika A+ menyatakan MIT dari A, maka : AA+A = A
[1]
(Israel dan Greville, 1974). Sebaliknya,
untuk
matriks
A
tersebut
di
atas,
matriks
re-invers
tergeneralisasi (generalized re-inverses) dari matriks A adalah suatu matriks X berdimensi nxk sedemikian hingga A adalah generalized inverses dari X, jadi berlaku XAX = X. Jika A- menyatakan matriks re-invers tergeneralisasi (MRIT) dari A, maka A- A A- = A-
[2]
(Wu dan Dawson, 1998). Matriks A berdimensi mxn yang mempunyai rank r dapat dibawa ke bentuk : ⎡I PAQ = ⎢ r ⎣O
O⎤ ⎡I , atau A = P-1 ⎢ r ⎥ O⎦ ⎣O
O ⎤ -1 Q O ⎥⎦
[3]
dengan P adalah matriks nonsingular hasil penggandaan matriks baris elementer dan Q adalah matriks nonsingular hasil penggandaan matriks kolom elementer; P-1 dan
2
Q-1 berturut-turut adalah matriks invers dari P dan Q. MIT dari A dalam bentuk [3] adalah : ⎡I A+ = Q ⎢ r ⎣V
U⎤ P W ⎥⎦
[4]
dengan sembarang matriks-matriks U berdimensi rx(m-r), V berdimensi (n-r)xr dan W berdimensi (n-r)x(m-r). Pada Z2 = {0,1), banyaknya MIT tergantung dari banyaknya cara untuk memilih U, V, dan W yang berbeda; dalam hal ini banyaknya adalah 2r(n-r)+n(m-r). Secara umum untuk matriks A(m,n) yang mempunyai rank m, bawa matriks A sedemikian hingga A = [Im 0] Q, dengan 0 matriks nol berdimensi mx(n-m) dan Q matriks nonsingular berdimensi nxn. MRIT dari A adalah : ⎡X ⎤ A- = Q-1 ⎢ ⎥ ⎣Y ⎦
[5]
dengan X dan Y memenuhi hubungan : X2 = X dan YX = Y
[6]
Dapat ditunjukkan bahwa matriks Y(n-m,m) sedemikian hingga kolom ke-i semuanya nol jika elemen diagonal ke-i dari matriks X(m,m) adalah 0, pasangan matriks X dan Y ini memenuhi persamaan [6] tersebut [Wu dan Dawson, 1998 : 322].
C. Disain Kriptosistem Diketahui kode linear C–(n,k), matriks generator G = [Ik A] berdimensi kxn; dan matriks paritas H berdimensi (n-k)xn dari kode linear C tersebut. Matriks Hberdimensi nx(n-k) adalah MRIT dari matriks H. Diketahui juga plaintext m adalah vektor biner dengan panjang k; maka mG adalah katakode (code word). Dengan menambahkan bentuk kesalahan (sebagai proses koreksi kesalahan katakode mG): E = e(H-)T
[7] 3
di mana e adalah vektor biner random dengan panjang n-k; diperoleh chipertext : c = mG ⊕ e(H-)T
[8]
Jadi dalam hal ini G dan H- bersifat publik (public key) untuk proses enkripsi pesan m yang menghasilkan chipertext c. Selanjutnya proses dekripsi untuk memperoleh kembali plaintext m dari chipertext c, dapat dilakukan sebagai berikut : (i) hitung mG = c ⊕ E (ii) dapatkan m dari mG dengan menyelesaikan sistem persamaan linear menurut sembarang k vektor kolom G yang bebas linear. Sedangkan bentuk kesalahan E dapat dicari dengan cara sebagai berikut : c(H- H)T = mGHT(H-)T ⊕ e(H-)T (H)T (H-)T = e(H-)T = E. Jadi di sini H- H bersifat rahasia (privat key) untuk proses dekripsi dari chipertext c. Sedangkan prosedur untuk membentuk kunci publik G dan H-, serta kunci rahasia R = H- H dapat dijelaskan sebagai berikut : (1) Pilih matriks generator G = [Ik A]; dengan sembarang A(k, n-k). (2) Bentuk H1 = [AT In-k]. (3) Pilih sembarang S(n-k, n-k) yang nonsingular. (4) Bentuk matriks paritas H = SH1. (5) Bawa H ke bentuk H = [In-k 0]Q, dengan 0(n-k, k) matriks nol dan Q(n, n) matriks nonsingular. (6) Pilih matriks X(n-k, n-k) dan Y(k, n-k) yang memenuhi [6] ⎡X ⎤ (7) MRIT dari H adalah H- = Q-1 ⎢ ⎥ . ⎣Y ⎦ (8) Kunci rahasia (privat key) R = H- H (Wu and Dawson, 1998 : 324). 4
D. Analisis Serangan Analisis resiko terhadap sistem ini didasarkan pada kemungkinan serangan (attack) terhadap sistem kunci publik ini [Murtiyasa dkk, 2002]. Kemungkinan serangan dari kriptosistem kunci publik ini adalah pencarian bentuk kesalahan E, sehingga penyusup dapat memperoleh mG = c ⊕ E, di mana E adalah vektor biner random berdimensi 1xn. Sementera itu, menurut metode enkripsi, E = e(H-)T . Tetapi menurut metode dekripsi, bentuk kesalahan E dapat diperoleh dengan melakukan komputasi E = c(H-H)T atau mendapatkan kunci rahasia R = H- H. Karena matriks G dan H- bersifat publik, maka metode serangan terhadap kriptosistem untuk mendapatkan pesan m dari chipertext c kemungkinannya mendapatakan bentuk kesalahan E dengan cara : (1) Mencari matriks paritas H, untuk mendapatkan kunci rahasia R = H- H, yang digunakan untuk prosedur standard dekripsi. Dalam hal ini mG = c(In ⊕ R)T, yang akhirnya pesan m dapat ditemukan. Matriks H pada dasarnya adalah MIT dari matriks H-. Jika rank dari H- adalah r dan H- berdimensi nx(n-k), banyaknya MIT dari Hadalah
2r(n-k-r)+(n-k)(n-r) = 2r(n-r)+n(n-k-r). Suatu jumlah yang sangat besar untuk
mendapatkan sebuah matriks kunci. (2) Mencari sembarang vektor biner e berdimensi 1x(n-k) untuk menemukan bentuk kesalahan E = e(H-)T yang dipakai pada proses enkripsi. Selanjutnya mG = c ⊕ E dapat diperoleh, yang pada gilirannya pesan m dapat ditemukan. Vektor biner e mempunyai panjang n-k. Jadi banyaknya pilihan yang berbeda untuk menemukan vektor biner e ini adalah 2n-k. Jika n cukup besar dan k cukup kecil, maka 2n-k juga sangat besar. Metode ini juga menjadi tidak praktis untuk 5
dilakukan. Tetapi dibandingkan dengan metode untuk menemukan H, metode mencari vektor biner e mempunyai peluang keberhasilan yang lebih besar. (3) Mencoba sembarang vektor kesalahan E berdimensi 1xn yang digunakan untuk melakukan koreksi kesalahan kode yang menghasilkan chipertext c = mG ⊕ E; sehingga mG = c ⊕ E dapat diperoleh, yang pada gilirannya pesan m dapat ditemukan. Banyaknya cara untuk menemukan E adalah 2n. Ini berarti bahwa peluang menemukan bentuk E ini cukup besar, yang berarti peluang mendapatkan pesan m pun cukup besar.
E. Beberapa Kelemahan Kunci Kriptosistem Dari metode serangan menunjukkan adanya beberapa kelemahan yang memungkinkan menyebabkan ketidakamanan dari enkripsi data yang dihasilkan oleh kriptosistem kunci publik berdasarkan MIT. Keberhasilan terbesar untuk menemukan pesan m diperoleh dari metode serangan yang kedua, yaitu mencari vektor biner e berdimensi 1x(n-k). Disusul kemudian metode serangan yang ketiga, yaitu mencari bentuk kesalahan E yang berdimensi 1xn. Sedangkan metode serangan yang pertama, yaitu mencari matriks paritas H dapat dikatakan sulit untuk dipakai menemukan pesan m. Untuk menemukan vektor biner e dan bentuk kesalahan E, pemilihan nilai k dan n pada proses pembentukan kunci sangat berperan penting dalam kaitannya dengan tingkat keamanan kriptosistem. Karenanya, nilai k dan n ini menjadi titik kritis pada tahap awal proses enkripsi data. Sebab di samping mempengaruhi pembentukan kunci, baik kunci publik maupun kunci rahasia, nilai k dan n juga sangat mempengaruhi tingkat keamanan kriptosistem serta tingkat efisiensi kriptosistem. Ini berarti bahwa di samping pemilihan unsur-unsur matriks generator G menentukan 6
unsur-unsur matriks kunci lainnya, yaitu matriks paritas H dan matriks re-invers H-, pemilihan nilai k dan n juga memegang peranan penting dalam menjamin keamanan kriptosistem. Ini berarti pemilihan matriks generator G (di samping penentuan dimensinya), menjadi titik kritis dari kriptosistem ini. Tabel 1 Tipe serangan terhadap sistem kunci publik untuk k = 32, n = 64 dan rank r = n-k No
Tipe serangan -
Banyaknya
Waktu
yang
diperlukan
kemungkinan
prosesor Intel PIII 1000 Mhz
1.7977e+308
2.1406e+291 tahun
1
Mencari H dari H
2
Mencari vektor biner e 4.2950e+009
1.5907 detik
3
Mencoba sembarang E 1.8447e+19
6832127434.707detik,
atau
79075.54901282 hari [Budi Murtiyasa, 2001]
Dari uraian tersebut dapat disimpulkan bahwa dalam upaya mendapatkan kunci rahasia untuk memperoleh plaintext dari pesan yang dikirimkan, penyusup kemungkinannya mencoba mencari matriks paritas H, mencari bentuk kesalahan E dengan mencoba sembarang vektor biner e, serta mencoba mencari bentuk kesalahan E secara acak. Tabel 1 di atas memberikan ilustrasi banyaknya kemungkinan pencarian matriks paritas H dan vektor biner e, serta bentuk kesalahan E untuk nilai k = 32 dan n = 64. Dalam ilustrasi tersebut diasumsikan bahwa rank dari matriks Hadalah n-k = 32. Pada Tabel 1 tersebut, waktu untuk mendapatkan berbagai kemungkinan matriks paritas H dan vektor biner e serta bentuk kesalahan E diasumsikan menggunakan prosesor Intel PIII 1000MHz yang mampu mengeksekusi 2700000000 intruksi per detik. Setiap pencarian satu alternatif H, e, atau E diasumsikan memerlukan satu kali instruksi (walaupun dalam kenyataannya mungkin lebih dari satu kali intruksi).
7
Memperhatikan kemungkinan serangan para penyusup, dengan jalan mencari berbagai kemungkinan matriks paritas H dan vektor biner e, serta mencoba sembarang bentuk kesalahan E, dari Tabel 1 tersebut tampak bahwa kemungkinan keberhasilan terbesar dengan mencari vektor biner e. Sebaiknya untuk menjaga keamanan dari sistem kunci publik, nilai k dan n ini dibuat atau dipilih cukup besar. Tetapi yang harus diingat walaupun n dan k cukup besar, jika n dan k terlalu dekat, yang berarti n-k menjadi kecil, maka sistem menjadi kurang aman. Sebaliknya nilai n jangan sampai terlalu besar jika dibandingkan nilai k, sebab jika hal ini terjadi akan muncul ekspansi pesan yang sangat besar. Hal ini berakibat sistem menjadi kurang efisien. Sebaiknya nilai n ini sekitar dua kali nilai k supaya sistem tetap efisien dan aman (Wu and Dawson, 1998 : 325). Tabel 2 di bawah memberikan ilustrasi untuk beberapa nilai k dan n dalam pencarian vektor biner e.
Tabel 2. Banyaknya kemungkinan pencarian vektor biner e No
Nilai k dan n
Banyaknya vektor
Waktu
yang
diperlukan
biner e yang mungkin prosesor Intel PIII 1000 Mhz 1
k = 64, n = 127
9.2234e+018
109.8275 tahun
2
k = 128, n = 256
3.4028e+038
4.0519e+021 tahun
3
k = 256, n = 512
1.1579e+077
1.3788e+060 tahun
[Budi Murtiyasa, 2001] Dari tabel 2 tersebut, tampak bahwa untuk n-k = 63, sistem boleh dikatakan cukup aman dari serangan penyusup, sebab dengan banyaknya kemungkinan vektor biner e adalah 9.2234e+018, diperlukan waktu 109.8275 tahun untuk menemukan semua permutasi dari vektor biner e tersebut. Di antara 9.2234e+018 vektor biner e ini memang ada vektor biner e0 = (000…0) dan vektor biner e1 = (111…1), yang mungkin saja tidak pernah dipilih oleh pengirim pesan untuk proses enkripsi. Tetapi berkurangnya pilihan ini tidak signifikan, artinya jumlah ini tetap masih sangat besar 8
untuk segera ditemukan semua permutasinya oleh penyusup. Ini berarti bahwa dengan mengambil nilai k dan n sedemikian hingga n-k > 63, sistem sudah bisa dikatakan cukup aman dari serangan para penyusup. Tentu saja seiring dengan kemajuan teknologi komputasi, yang memungkinkan ditemukannya prosesor yang mampu bekerja lebih cepat, batasan nilai k dan n ini menjadi sangat relatif sifatnya. Ini berarti metode serangan dengan mencoba sembarang E secara acak suatu saat juga menjadi sangat mungkin dilakukan oleh para penyusup. Dengan demikian pencarian vektor biner e dan bentuk kesalahan E menjadi titik kritis dari kriptosistem ini.
F. Simpulan dan saran Memperhatikan kemungkinan serangan para penyusup, dengan jalan mencari berbagai kemungkinan matriks paritas H, mencoba sembarang vektor biner e, dan mencari sembarang bentuk kesalahan E, kemungkinan keberhasilan terbesar dengan mencari vektor biner e. Sebaiknya untuk menjaga keamanan dari kriptosistem kunci publik, nilai k dan n ini dibuat atau dipilih cukup besar. Tetapi yang harus diingat walaupun n dan k cukup besar, jika n dan k terlalu dekat, yang berarti n-k menjadi kecil, maka kriptosistem menjadi kurang aman. Sebaliknya nilai n jangan sampai terlalu besar jika dibandingkan nilai k, sebab jika hal ini terjadi akan muncul ekspansi pesan yang sangat besar. Hal ini berakibat kriptosistem menjadi kurang efisien. Sebaiknya nilai n ini sekitar dua kali nilai k supaya kriptosistem tetap efisien dan aman. Dapat ditunjukkan juga bahwa matriks generator G, yang berfungsi sebagai salah satu kunci publik, merupakan titik kritis bagi pembentukan kunci lainnya. Artinya, jika pemilihan matriks G tidak tepat, maka dipastikan bahwa kriptosistem menjadi tidak aman dari gangguan para penyusup. 9
Di samping itu, kriptosistem kunci publik yang dibangun berdasarkan matriks invers tergeneralisasi ini juga masih memerlukan penelitian lebih lanjut, misalnya dalam hal autentikasi (authentication) dan pertukaran kunci (key exchange). Penelitian lanjutan di bidang keamanan kriptosistem ini juga masih terbuka lebar, khususnya untuk menyakinkan para pengguna, apakah disain kriptosistem ini cukup aman atau tidak untuk melakukan penyandian data.
G. Daftar Pustaka Israel, A.B., dan Greville, T.N.E., 1974, Generalized Inverses : Theory and Applications, New York : John Wiley & Sons. Murtiyasa, 2001, “Kriptanalisis kriptosistem Kunci Publik Berdasarkan Matriks Invers Tergenaralisasi”, Laporan Penelitian. Surakarta : Lembaga Penelitian UMS Surakarta. Murtiyasa, B., Wardoyo, R., dan Palupi, D.J.E., 2002, “Beberapa Karakteristik Kriptosistem Kunci Publik Berdasarkan Matriks Invers Tergenaralisasi” dalam Natural Jurnal, Vol. 6 (Edisi Khusus), Januari 2002, hal. 297-302. Malang : FMIPA Universitas Brawijaya. Wu, C.K., dan Dawson, E., 1998, “Generalised Inverses in Public Key Cryptosystem Design” dalam IEE Proceedings Computer Digit. Tech. Vol. 145 No. 5, September 1998, Pp 321-326.
10