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
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 danGreville, 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 :
PAQ = ⎥
⎦ ⎤ ⎢
⎣ ⎡
O O
O Ir
, atau A = P-1 ⎥
⎦ ⎤ ⎢
⎣ ⎡
O O
O Ir
Q-1 [3]
dengan P adalah matriks nonsingular hasil penggandaan matriks baris elementer dan
Q-1 berturut-turut adalah matriks invers dari P dan Q. MIT dari A dalam bentuk [3]
adalah :
A+ = Q ⎥
⎦ ⎤ ⎢
⎣ ⎡
W V
U Ir
P [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 :
A-= Q-1 ⎥
⎦ ⎤ ⎢ ⎣ ⎡
Y X
[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 H
-berdimensi nx(n-k) adalah MRIT dari matriks H. Diketahui juga plaintext m adalah
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-k0]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]
(7) MRIT dari H adalah H- = Q-1 ⎥
⎦ ⎤ ⎢ ⎣ ⎡
Y X
.
(8) Kunci rahasia (privat key) R = H- H
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 H
-adalah 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
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
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
kemungkinan
Waktu yang diperlukan
prosesor Intel PIII 1000 Mhz
1 Mencari H dari H- 1.7977e+308 2.1406e+291 tahun
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, sertabentuk kesalahan E untuk nilai k
= 32 dan n = 64. Dalam ilustrasi tersebut diasumsikan bahwa rank dari matriks H-
adalah 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
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
biner e yang mungkin
Waktu yang diperlukan
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
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.
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.