timing attack pada rsa

5
TIMING ATTACK PADA RSA Dewi Setianingrum NPM 0807100761 Teknik III Teknik Kripto, Sekolah Tinggi Sandi Negara Abstraksi Timing attack merupakan sistem yang digunakan untuk mendapatkan informasi kunci rahasia pada algoritma enkripsi dengan memanfaatkan waktu yang digunakan untuk algoritma dalam melakukan operasi kriptografi. RSA merupakan salah satu algoritma yang dapat diserang dengan menggunakan timing attack. Masalah pemfaktoran bilangan besar pada RSA bukan menjadi fokus dalam timing attack. Timing attack juga dapat menyerang protokol seperti OpenSSL. Implementasi RSA dalam OpenSSL dapat diserang dengan menggunakan timing attack. Kata Kunci: OpenSSL, RSA, Timing attack 1. Pendahuluan Saat ini keamanan informasi merupakan hal yang penting dalam komunikasi antar pihak. Terdapat pembagian kategori informasi, yaitu sangat rahasia, rahasia, dan tidak rahasia. Untuk mengamankan informasi tersebut dengan kriptografi. Dalam Handbook of Crytography, kriptografi adalah teknik matematika yang bergantung pada aspek keamanan informasi seperti kerahasiaan, keaslian data, otentikasi pihak dan data. Algoritma kriptografi banyak dikembangkan, salah satunya adalah RSA. RSA merupakan algoritma enkripsi yang dibentuk berdasarkan masalah pemfaktoran bilangan besar. Banyak algoritma yang dirancang untuk memecahkan masalah pemfaktoran bilangan besar. Namun, masih memiliki batasan dalam perhitungan pemfaktoran bilangan besar. Attack yang digunakan untuk menyerang algoritma RSA bukan hanya melalui pemfaktoran bilangan besar. Saat ini, terdapat attack yang berorientasi pada pemfaktoran bilangan besar melainkan memanfaatkan lingkungan kriptografi. Timing attack merupakan algoritma dapat dirancang untuk mendapatkan informasi private

Upload: dewi-setianingrum

Post on 04-Jul-2015

137 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Timing Attack Pada Rsa

TIMING ATTACK PADA RSA

Dewi Setianingrum – NPM 0807100761

Teknik III Teknik Kripto, Sekolah Tinggi Sandi Negara

Abstraksi

Timing attack merupakan sistem yang digunakan untuk mendapatkan informasi kunci

rahasia pada algoritma enkripsi dengan memanfaatkan waktu yang digunakan untuk

algoritma dalam melakukan operasi kriptografi. RSA merupakan salah satu algoritma

yang dapat diserang dengan menggunakan timing attack. Masalah pemfaktoran bilangan

besar pada RSA bukan menjadi fokus dalam timing attack. Timing attack juga dapat

menyerang protokol seperti OpenSSL. Implementasi RSA dalam OpenSSL dapat

diserang dengan menggunakan timing attack.

Kata Kunci: OpenSSL, RSA, Timing attack

1. Pendahuluan

Saat ini keamanan informasi merupakan hal yang penting dalam komunikasi antar

pihak. Terdapat pembagian kategori informasi, yaitu sangat rahasia, rahasia, dan tidak

rahasia. Untuk mengamankan informasi tersebut dengan kriptografi. Dalam

Handbook of Crytography, kriptografi adalah teknik matematika yang bergantung

pada aspek keamanan informasi seperti kerahasiaan, keaslian data, otentikasi pihak

dan data.

Algoritma kriptografi banyak dikembangkan, salah satunya adalah RSA. RSA

merupakan algoritma enkripsi yang dibentuk berdasarkan masalah pemfaktoran

bilangan besar. Banyak algoritma yang dirancang untuk memecahkan masalah

pemfaktoran bilangan besar. Namun, masih memiliki batasan dalam perhitungan

pemfaktoran bilangan besar.

Attack yang digunakan untuk menyerang algoritma RSA bukan hanya melalui

pemfaktoran bilangan besar. Saat ini, terdapat attack yang berorientasi pada

pemfaktoran bilangan besar melainkan memanfaatkan lingkungan kriptografi. Timing

attack merupakan algoritma dapat dirancang untuk mendapatkan informasi private

Page 2: Timing Attack Pada Rsa

key dengan memanfaatkan waktu yang digunakan RSA dalam menghitung pangkat

private key.

2. RSA

RSA merupakan algoritma enkripsi public key yang dibuat pada tahun 1977.

Nama RSA berasal dari inisial nama pembuat RSA, yaitu Ronald Rivest, Adi Shamir,

dan Leonard Adlemand. Dasar pembentukan RSA adalah operasi dasar aljabar pada

intejer besar dan kesulitan pada pemfaktoran bilangan intejer besar.

Saat ini banyak dikembangkan algoritma yang dibuat untuk menyelesaikan

masalah pemfaktoran bilangan besar. Namun, dari algoritma pemfaktoran tersebut

masih terdapat batasan dalam bilangan besar. Salah satu algoritma pemfaktoran

bilangan besar adalah GNFS. GNFS dapat menyelesaikan masalah pemfaktoran

bilangan besar berukuran 150 digit.

Algoritma RSA dapat digunakan untuk proses enkripsi, digital signature, dan key

establishment. Selain itu, RSA juga digunakan pada protokol, misal SSL/TLS, SET,

SSH, S/MIME, PGP, dan DNSSEC. RSA menyediakan confidentiality, integrity, dan

authentication.

Algoritma pembangkitan kunci RSA

Setiap pihak membuat public key RSA dan private key yang berkorespondensi. Pihak

A melakukan :

Bangkitkan dua bilangan acak prima berbeda p dan q, memiliki ukuran yang

sama.

Hitung n = pq dan (n) = (p – 1)(q – 1).

Pilih bilangan acak e, 1 < e < , sedemikian sehingga gcd (e, ) = 1.

Gunakan algoritma Extended Euclidean untuk menghitung intejer unik d, 1 < d <

, sedemikian sehingga ed 1 mod (n).

Public key A adalah (e, n), private key A adalah d.

Algoritma enkripsi dan dekripsi public key RSA

Misal B mengenkripsi pesan m pada A, A mendekripsi pesan m.

Enkripsi. Pihak B melakukan :

Peroleh public key otentikasi A (e, n).

Page 3: Timing Attack Pada Rsa

Representasikan pesan intejer m dalam interval [0, n – 1].

Hitung c = me mod n.

Kirim ciphertext c ke A.

Dekripsi. Untuk memperoleh plaintext m dari c, A melakukan :

Gunakan private key d untuk mendapatkan m = cd mod n.

Penggunaan RSA untuk enkripsi dan digital signature menyebabkan perbedaan

private key dan public key. Untuk private key pada enkripsi digunakan sebagai public

key pada digital seignature begitu juga sebaliknya. Oleh karena itu, setiap kunci

hanya boleh digunakan untuk satu aplikasi saja.

3. Timing Attack

Timing attack pertama kali diperkenalkan oleh Paul Kocher, konsultan

independent kriptografi, pada tahun 1996. Digunakan untuk menyerang kelemahan

dari peralatan komputasi seperti smartcard. Tujuan timing attack adalah untuk

mendapatakan informasi private key seperti RSA, dengan menghitung waktu yang

dibutuhkan untuk melakukan operasi private key atau dekripsi. Timing attack

termasuk dalam kategori side-channel attack.

Pada dasarnya, konsep timing attack sudah ada pada tahun 1995. Namun, hanya

dapat memperoleh sebagian informasi kunci dan membutuhkan informasi waktu

setiap langkah tanpa operasi kriptografi. Timing attack mulai dikembangkan oleh P.

Kocher sehingga dapat memperoleh seluruh informasi kunci hanya dengan

mengetahui banyaknya waktu yang dibutuhkan untuk operasi tersebut.

Dengan memanfaatkan algoritma key-dependent yang memiliki korelasi antara

input dengan waktu running, timing attack dapat dilakukan misal pada RSA, DSA,

Diffie-Helman, dan RC5. Namun, untuk algoritma yang tidak memiliki korelasi

antara input dan waktu running seperti DES, DESX, Triple-DES, RC2, RC4, dan

variasi message digest, timing attack sulit diterapkan.

Untuk penerapan timing attack sukses digunakan pada protokol SSL seperti

smartcard. Adanya timing attack dapat menjadi noise bagi pengiriman data. Oleh

karena itu, timing attack tidak bisa diterapkan pada operasi yang tidak menggunakan

kondisi eksternal seperti digital signature dan enkripsi secara off-line.

Page 4: Timing Attack Pada Rsa

4. Timing Attack pada RSA

Penerapan efektif timing attack pada RSA tepat dilakukan ketika algoritma RSA

diimplementasikan dalam BSAFE dan RSAREF. Timing attack pada RSA

memanfaatkan korelasi antara private key dan runtime operasi kriptografi, yaitu

ekponensial modulus dengan d sebagai bilangan eksponensial.

Untuk menghitung eksponensial modulus menggunakan algoritma repeated

squaring. Jika panjang private key k bit, banyaknya loop running pada d adalah 2k

perkalian modulus. Setiap data dipangkatkan dua dengan perkalian modulus jika bit

yang dipangkatkan tersebut adalah 1. Attacker dapat dengan mudah mendapatkan bit

d diawali dengan LSB terlebih dahulu dengan menghitung runtime operasi private

key pada bilangan acak pesan. Sehingga atacker memperoleh sebagian informasi awal

tentang kunci. Jika pangkat public key yang digunakan kecil, attacker dapat

menemukan kunci bit pertama k/4 dengan metode ini dan sisa bit selanjutnya dapat

didapatkan dengan metode sebelumnya.

Timing attack dapat diatasi dengan mengurangi korelasi antara runtime dengan

pangkat private key. Salah satunya solusi adalah dengan menambahkan delay pada

perhitungan perpengkatan sehingga setiap operasi modulus memiliki waktu yang

sama dan sulit untuk ditemukan perbedaan. Sistem ini dapat bekerja apabila

dilakukan pada smartcard. Solusi yang lain yaitu blinding. Dengan mengubah data

sebelum dipangkatkan dengan private key menggunakan nilai acak yang dibangkitkan

oleh modul kriptografi. Data yang acak tersebut akan menyulitkan attacker untuk

memperoleh informasi mengenai kunci yang digunakan.

Dalam paper yang dibuat oleh Boneh dan Brumley, timing attack dapat dilakukan

dengan jarak jauh pada OpenSSL dengan mengetahui modul kriptografi. Selain itu,

cari ini juga efektif dalam memperoleh private key RSA apabila diimplementasikan

pada modul OpenSSL. Untuk mencegah keberhasilan attacker mendapatkan private

key RSA dapat menggunakan blinding yang diimplementasikan pada OpenSSL tapi

kemungkinan untuk berhasil sekitar 2% - 10%.

Timing attack tidak hanya menyerang RSA namun juga protokol SSL dengan

memanfaatkan perbedaan waktu pada OpenSSL dalam mendeteksi perbedaan error.

Page 5: Timing Attack Pada Rsa

Dengan memilih pesan secara teliti ketika menggunakan kunci simetri block cipher

pada mode CBC.

5. Kesimpulan

Timing attack salah satu metode untuk menyerang RSA dengan memanfaatkan

korealsi antara input dengan private key. Mendapatkan informasi private key dengan

menghitung waktu yang diperlukan dalam perhitungan dengan private key atau proses

dekripsi. Algoritma yang menggunakan protokol OpenSSL mudah diserang dengan

timing attack seperti impelementasi RSA dalam OpenSSL.

6. Daftar Pustaka

[1] Alfred J. Menezes, Paul C. van Oorschot, dan Scott A. Vanstone. “Handbook of

Applied Cryptography”. CRC Press. Oktober 1996.

[2] Burt Kaliski. “Timing Attack on Cryptosystems”. RSA Laboratories Bulletin. 23

Januari 1996.

[3] David Brumley dan Dan Boneh. “Remote Timing Attacks are Practical”. 2003.

[4] Reading Room SANS. “Cryptanalysis of RSA: A Survey”. Sans Institute. 2003.

[5] Zhanxiang. “Timing Attacks to RSA”.