際際滷

際際滷Share a Scribd company logo
Mengenal Algoritma Enkripsi RSA
Oleh: Iwan Ariawan (2097200608)
Sebagai tugas mata kuliah Sistem Keamanan Komputer
Sejarah RSA
Algortima RSA dijabarkan pada tahun [[1977]] oleh tiga orang : [[Ron Rivest]], [[Adi Shamir]]
dan [[Len Adleman]] dari [[Massachusetts Institute of Technology]]. Huruf '''RSA''' itu sendiri
berasal dari inisial nama mereka ('''R'''ivest'''S'''hamir'''A'''dleman).
[[Clifford Cocks]], seorang matematikawan [[Inggris]] yang bekerja untuk [[GCHQ]],
menjabarkan tentang sistem equivalen pada dokumen internal di tahun [[1973]]. Penemuan
Clifford Cocks tidak terungkap hingga tahun [[1997]] karena alasan ''top-secret classification''.
Algoritma tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun [[1983]]
di [[Amerika Serikat]] sebagai {{US patent|4405829}}. Paten tersebut berlaku hingga [[21
September]] [[2000]]. Semenjak Algoritma RSA dipublikasikan sebagai aplikasi paten, regulasi
di sebagian besar negara-negara lain tidak memungkinkan penggunaan paten. Hal ini
menyebabkan hasil temuan Clifford Cocks di kenal secara umum, paten di Amerika Serikat
tidak dapat mematenkannya.
Introduction
RSA adalah sebuah algoritma berdasarkan skema public-key cryptography. Diberi nama RSA
sebagai inisial para penemunya: Ron Rivest, Adi Shamir, dan Leonard Adleman. SA dibuat di
MIT pada tahun 1977 dan dipatenkan oleh MIT pada tahun 1983. Setelah bulan September
tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya
dengan bebas.
Lebih jauh, RSA adalah algoritma yang mudah untuk diimplementasikan dan dimengerti.
algoritma RSA adalah sebuah aplikasi dari sekian banyak teori seperti extended Euclid
algorithm, euler's function sampai fermat theorem.
Artikel ini menjelaskan algoritma RSA dari dasar. Saya akan menggunakan nilai-nilai yang
kecil untuk menjelaskan bagaimana cara kerja algoritma RSA.
Public-Key Cryptography
Konsep fundamental dari Public-Key Cryptography ditemukan oleh Whitfield Diffie dan Martin
Hellman, dan secara terpisah oleh Ralph Merkle. Sedangkan konsep dasar Public-Key
Cryptography terletak pada pemahaman bahwa keys selalu berpasangan: encryption key dan
decryption key. Juga perlu diingat bahwa sebuah key tidak dapat digenerate dari key lainnya.
Pemahaman encryption dan decryption key sering disebut sebagai public dan private key.
Seseorang harus memberikan public key-nya agar pihak lain dapat meng-encrypt sebuah pesan.
Decryption hanya terjadi jika seseorang mempunyai private key.
Scenario
Bagian ini menjelaskan skenario bagaimana public-key cryptosystem bekerja. Saya akan
menggunakan partisipan klasik Alice dan Bob sebagai orang-orang yang melakukan pertukaran
informasi.
1. Alice dan Bob setuju untuk menggunakan public-key cryptosystem.
2. Bob mengirimkan public key-nya kepada Alice.
3. Alice meng-encrypt pesan yang dibuatkan dengan menggunakan public key milik Bob dan
mengirimkan pesan yang sudah di-encrypt kepada Bob.
4. Bob men-decrypt pesan dari Alice menggunakan private key miliknya.
Mathematical Notation
Untuk memahami algoritma RSA, seseorang harus memahami beberapa notasi matematika
dasar, teori dan formula. Hal tersebut dibutuhkan untuk mendukung semua kalkulasi yang
dilakukan dalam algoritma RSA.
1. Modulo (didenotasikan dengan 'x mod m' atau 'x % m' dalam beberapa bahasa komputer)
- x % m = x mod m = pembagian x dengan m dan mengambil sisanya.
- Contoh: 25 mod 5 = 0 karena 5 habis membagi 25
25 mod 4 = 1 karena 25 / ( 4 * 6 ) menyisakan 1
x mod m = x jika dan hanya jika x < m
2. Z/mZ
- Z/7Z : { 0,1,2,3,4,5,6 } dimana [7]=[0], [8]=[1], [9]=[2] dan seterusnya.
- Operasi yang didukung dalam Z/mZ aalah penjumlahan, pengurangan, pembagian dan
perkalian.
- Inverse: Sebuah elemen dalam Z/mZ seperti A, memiliki sebuah inverse B jika dan hanya
jika [A]x[B] = [1]
- Units: Setiap elemen dalam Z/mZ yang memiliki inverse adalah sebuah unit.
- Contoh: Z/7Z
Penjumlahan: [2]+[3] = [5] ; [5]+[5] = [10] ... [10-7] = [3]
Pengurangan: [2]-[3] = [-1] = [6] ; [6]-[4] = [2]
Pembagian : [6]/[2] = [3] ; [6]/[4] = [5] ([4]x[5] = [20] = [6])
Perkalian : [2]x[6] = [12] = [5] ;
Soal: [6]/[4]
a. Tempatkan dalam formula [6] = [X][4]
b. Cari inverse dari [4], yaitu [2] ... [4]x[2] = [8] = [1]
c. Kali inverse dengan [6] ... [2]x[6] = [12] = [5]
d. Sehingga [4]x[5] = [20] = [13] = [6]
3. GCD(A,B)
GCD = greatest common divisor.
GCD(A,B) = D
GCD(78,32) = 2, karena tidak ada bilangan yang lebih besar dari dua yang
membagi 78 dan 32.
GCD(A,B) dapat ditemukan dengan menggunakan algoritma extended euclid.
Jika GCD(A,B) = 1 maka A and B dalah coprime satu sama lainnya (dengan kata lain, A
dan B adalah relatively prime).
4. Memecahkan 8x mod 13 = 1, dimana x adalah bilangan yang belum diketahui.
- Cari gcd(8,13) yang berarti 1 ... yang berarti persamaan dapat diselesaikan.
- Membuat sebuah matriks dan menggunakan operasi gaussian dalam matriks.
8 | 1 0 r2=r2-r1 8 | 1 0 r1=r1-r2
13 | 0 1 ---------> 5 | -1 1 --------->
3 | 2 -1 r2=r2-r1 3 | 2 -1
5 | -1 1 ---------> 2 |-3 2
lakukan sampai kita mendapatkan format : 1 | s t
0 | s' t'
s, t, s', t' dapat berupa bilangan apa saja.
Jika hasil akhir yang di dapat sbb: 0 | s' t' , kita harus
1 | s t
rotasi atas-bawah hasil nya menjadi format: 1 | s t
0 | s' t'
sehingga sekarang kita mendapatkan d = 1, s = 5, t = -3, sehingga
x = s = 5.
5. Euler's phi function (jangan sampai keliru dengan phi = 3.14)
- Euler's phi function adalah sebuah total bilangan unit dalam Z/mZ
- Theorem
a. Jika p adalah sebuah bilangan prima, maka phi(p) = p - 1
p dan phi(p) adalah (contoh: gcd(p,phi(p)) = 1)
ii): phi(m*n) = phi(m) * phi (n)
phi(p^a) = (p^a) - p^(a-1)
b. Contoh:
-- phi(7) = 6
-- phi(840) = phi(8) * phi(105) = phi(2^3) * phi(3*5*7)
= [(2^3) - (2^2)] * phi(3) * phi(5) * phi(7)
6. Pangkat. pow(a,b)
Saya akan menggunakan notasi '^' seperti pada a^b
Key Generation
Misalkan Alice ingin Bob mengirimnya sebuah pesan melalui jalur yang aman. Alice akan
memberikan public keynya kepada Bob dan menyimpan private key untuk dirinya.
a. Pilih 2 bilangan prima besar seperti p,q dimana p tidak sama dengan q.
b. Hitung M = p x q
c. Hitung phi(M) = phi(p) * phi(q)
d. Pilih sebuah integer 'e' dimana 1 < e < phi(M) dan 'e' serta phi(M) adalah coprime.
e. Hitung 'd' integer sehingga (d * e) mod M = 1
f. (M,e) adalah public key dimana M adalah modulo dan e adalah eksponen encryption.
g. (M,d) adalah private key dimana M adalah modulo dan d adalah eksponen decryption.
Encrypting Message
Misalkan Bob ingin mengirim sebuah pesan 'H' kepada Alice.
a. Alice harus membuat keynya; sehingga ia memiliki private dan public keys.
private key = (M,d)
public key = (M,e)
b. Mengubah 'H' menjadi sebuah bilangan yang menggunakan alphabet yang valid dengan tabel
bilangan. Sebuah contoh mudah adalah mapping A = 1, B = 2 ... Z = 26.
sehingga H = 8
c. C = 8^e (mod M)
C adalah sebuah bilangan ter-encrypt.
d. Bob mengirimkan bilangan tersebut kepada Alice sehingga Alice dapat melakukan decode
ulang menggunakan private keynya.
Decrypting Message
Misalkan Alice menerima sebuah pesan ter-encrypt, ia akan men-decrypt-nya menggunakan
tahapan-tahapan berikut:
a. Alice mempunyai private key dari langkah-langkah di atas (M,d)
b. N = C^d (mod M)
c. N adalah bilangan. Gunakan konversi table alphabet untuk mengubah
N menjadi karakter yang direpresentasikannya.
Example
a. Generate Key (kita dapat melewati langkah ini untuk menemukan p dan q)
1. M = 101 , sebuah bilangan prima --> phi(M) = 100
2) a] Misalkan e = 13
b] Cari d (e*d) mod M = 1
Gunakan persamaan (a*x) mod M = 1
d = 77
b. Kata "HELLO" digunakan sebagai pesan, dan diubah menurut numerical representationnya.
HELLO = 08 05 12 12 15
c. Encoding pesan.
8^13 mod 101 = 18
5^13 mod 101 = 56
12^13 mod 101 = 53
15^13 mod 101 = 7
Sehingga pesan ter-encrypt atau ciphertext adalah 18,56,53,53,07.
d. Decoding pesan.
18^77 mod 101 = x1
56^77 mod 101 = x2
53^77 mod 101 = x3 = x4
07^77 mod 101 = x5
Closure
RSA merupakan contoh yang powerful dan cukup aman dari Public-Key Cryptography.
Berdasarkan matematika, proses yang digunakan berdasarkan fungsi-fungsi trap-door satu arah.
Sehingga melakukan encryption dengan menggunakan public key sangat mudah bagi semua
orang, namun proses decryption menjadi sangat sulit.
Proses decryption sengaja dibuat sulit agar seseorang, walaupun menggunakan Cray
supercomputers dan ribuan tahun, tidak dapat men-decrypt pesan tanpa mempunyai private key.
Perlu diingat juga bahwa pemilihan p*q = M haruslah sebuah bilangan yang sangat besar
sehingga sulit dicari eksponen decoding-nya karena sulit melakukan pemfaktoran bilangan
prima.
''Padding schemes''
''[[Padding Scheme]]'' harus dibangun secara hati-hati sehingga tidak ada nilai dari ''m'' yang
menyebabkan masalah keamanan. Sebagai contoh, jika kita ambil contoh sederhana dari
penampilan [[ASCII]] dari ''m'' dan menggabungkan [[bit|bit-bit]] secara bersama-sama akan
menghasilkan ''n'', kemudian pessan yang berisi ASCII tunggal karakter <code>NUL</code>
(nilai numeris 0) akan menghasilkan ''n''= 0, yang akan menghasilkan ''ciphertext'' 0 apapun itu
nilai dari ''e'' dan ''N'' yang digunakan. Sama halnya dengan karakter ASCII tunggal
<code>SOH</code> (nilai numeris 1) akan selalu menghasilkan ''chiphertext'' 1. Pada
kenyataannya, untuk sistem yang menggunakan nilai ''e'' yang kecil, seperti 3, seluruh karakter
tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman, dikarenakan
nilai terbesar ''n'' adalah nilai 255, dan 255<sup>3</sup> menghasilkan nilai yang lebih kecil
dari modulus yang sewajarnya, maka proses dekripsi akan menjadi masalah sederhana untuk
mengambil pola dasar dari ''ciphertext'' tanpa perlu menggunakan modulus ''N''. Sebagai
konsekuensinya, standar seperti [[PKCS]] didesain dengan sangat hati-hati sehingga membuat
pesan asal-asalan dapat terenkripsi secara aman. Dan juga berdasar pada bagian [[#Kecepatan|
Kecepatan]], akan dijelaskan kenapa ''m'' hampir bukanlah pesan itu sendiri tetapi lebih pada
''message key'' yang dipilh secara acak.
Pengesahan pesan
RSA dapat juga digunakan untuk mengesahkan sebuah pesan. Misalkan Alice ingin mengirim
pesan kepada Bob. Alice membuat sebuah ''[[hash value]]'' dari pesan tersebut, di pangkatkan
dengan bilangan ''d'' dibagi ''N'' (seperti halnya pada deskripsi pesan), dan melampirkannya
sebagai "tanda tangan" pada pesan tersebut. Saat Bob menerima pesan yang telah
"ditandatangani", Bob memangkatkan "tanda tangan" tersebut dengan bilangan ''e'' dibagi ''N''
(seperti halnya pada enkripsi pesan), dan membandingkannya dengan nilai hasil dari ''hash
value'' dengan ''hash value'' pada pesan tersebut. Jika kedua cocok, maka Bob dapat mengetahui
bahwa pemilik dari pesan tersebut adalah Alice, dan pesan pun tidak pernah diubah sepanjang
pengiriman.
Harap dicatat bahwa ''padding scheme'' merupakan hal yang esensial untuk mengamankan
pengesahan pesan seperti halnya pada enkripsi pesan, oleh karena itu kunci yang sama tidak
digunakan pada proses enkripsi dan pengesahan.
Keamanan
Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada
bilangan yang sangat besar. Apabila terdapat faktorisasi metode yang baru dan cepat telah
dikembangkan, maka ada kemungkinan untuk membongkar RSA.
Pada tahun [[2005]], bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang
663 bit, menggunakan metode distribusi mutakhir. Kunci RSA pada umumnya sepanjang 1024
2048 bit. Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada
waktu dekat (hal ini masih dalam perdebatan), tetapi tidak ada seorangpun yang berpendapat
kunci 2048-bit akan pecah pada masa depan yang terprediksi.
Semisal Eve, seorang ''eavesdropper'' (pencuri dengarpenguping), mendapatkan ''public key''
''N'' dan ''e'', dan ciphertext ''c''. Bagimanapun juga, Eve tidak mampu untuk secara langsung
memperoleh ''d'' yang dijaga kerahasiannya oleh Alice. Masalah untuk menemukan ''n'' seperti
pada ''n<sup>e</sup>=c'' mod N di kenal sebagai permasalahan RSA.
Cara paling efektif yang ditempuh oleh Eve untuk memperoleh ''n'' dari ''c'' ialah dengan
melakukan faktorisasi ''N'' kedalam ''p'' dan ''q'', dengan tujuan untuk menghitung (''p''-1)(''q''-1)
yang dapat menghasilkan ''d'' dari ''e''. Tidak ada metode waktu polinomial untuk melakukan
faktorisasi pada bilangan bulat berukuran besar di komputer saat ini, tapi hal tersebut pun masih
belum terbukti.
Masih belum ada bukti pula bahwa melakukan faktorisasi ''N'' adalah satu-satunya cara untuk
memperoleh ''n'' dari ''c'', tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya
dari sepengatahuan publik).
Bagaimanapun juga, secara umum dianggap bahwa Eve telah kalah jika ''N'' berukuran sangat
besar.
Jika ''N'' sepanjang 256-bit atau lebih pendek, ''N'' akan dapat difaktorisasi dalam beberapa jam
pada [[Personal Computer]], dengan menggunakan [[perangkat lunak]] yang tersedia secara
bebas.
Jika ''N'' sepanjang 512-bit atau lebih pendek, ''N'' akan dapat difaktorisasi dalam hitungan
ratusan jam seperti pada tahun [[1999]]. Secara teori, [[perangkat keras]] bernama [[TWIRL]]
dan penjelasan dari Shamir dan Tromer pada tahun [[2003]] mengundang berbagai pertanyaan
akan keamanan dari kunci 1024-bit. Santa disarankan bahwa ''N'' setidaknya sepanjang 2048-
bit.
Pada thaun [[1993]], [[Peter Shor]] menerbitkan [[Algoritma Shor]], menunjukkan bahwa
sebuah [[komputer quantum]] secara prinsip dapat melakukan faktorisasi dalam waktu
polinomial, mengurai RSA dan algoritma lainnya. Bagaimanapun juga, masih terdapat
pedebatan dalam pembangunan komputer quantum secara prinsip.
Pertimbangan praktis
Pembangkitan kunci
Menemukan bilangan prima besar ''p'' dan ''q'' pada biasanya didapat dengan mencoba
serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima
yang dapat dengan cepat menghapus hampir semua bilangan bukan prima.
''p'' dan ''q'' seharusnya tidak "saling-berdekatan", agar [[faktorisasi fermat]] pada ''N'' berhasil.
Selain itu pula, jika ''p''-1 atau ''q''-1 memeiliki faktorisasi bilangan prima yang kecil, ''N'' dapat
difaktorkan secara mudah dan nilai-nilai dari ''p'' atau ''q'' dapat diacuhkan.
Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan
memberikan informasi penting tentang bilangan prima tersebut kepada penyerang. Biasanya,
pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan. Harap
diingat, bahwa kebutuhan disini ialah "acak" '''''dan''''' "tidak-terduga". Berikut ini mungkin
tidak memenuhi kriteria, sebuah bilangan mungkin dapat dipilah dari proses acak (misal, tidak
dari pola apapun), tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan
bilangan yang mudah ditebak), maka metode tersebut akan kehilangan kemampuan
keamanannya. Misalnya, tabel bilangan acak yang diterbitkan oleh [[Rand Corp]] pada tahun
[[1950-an]] mungkin memang benar-benar teracak, tetapi dikarenakan diterbitkan secara umum,
hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut. Jika
penyerang dapat menebak separuh dari digit ''p'' atau ''q'', para penyerang dapat dengan cepat
menghitung separuh yang lainnya (ditunjukkan oleh [[Donald Coppersmith]] pada tahun
[[1997]]).
Sangatlah penting bahwa kunci rahasia ''d'' bernilai cukup besar, Wiener menunjukkan pada
tahun [[1990]] bahwa jika ''p'' diantara ''q'' dan 2''q'' (yang sangat mirip) dan ''d'' lebih kecil
daripada ''N''<sup>1/4</sup>/3, maka ''d'' akan dapat dihitung secara effisien dari ''N'' dan ''e''.
Kunci enkripsi ''e'' = 2 sebaiknya tidak digunakan.
Kecepatan
RSA memiliki kecepatan yang lebih lambat dibandingkan dengan [[DES]] dan [[algoritma
simetrik]] lainnya. Pada prakteknya, Bob menyandikan pesan rahasia menggunakan algoritma
simetrik, menyandikan kunci simetrik menggunakan RSA, dan mengirimkan kunci simetrik
yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara
simetrik kepada Alice.
Prosedur ini menambah permasalahan akan keamanan. Singkatnya, Sangatlah penting untuk
menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan,
karena Eve dapat melakukan ''bypass'' terhadap RSA dengan menebak kunci simterik yang
digunakan.
Distribusi kunci
Sebagaimana halnya ''cipher'', bagaimana ''public key'' RSA didistribusi menjadi hal penting
dalam keamanan. Distribusi kunci harus aman dari ''[[man-in-the-middle attack]]''
(''penghadang-ditengah-jalan''). Anggap Eve dengan suatu cara mampu memberikan kunci
arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice. Anggap Eve
dapan "menghadang" sepenuhnya transmisi antara Alice dan Bob. Eve mengirim Bob ''public
key'' milik Eve, dimana Bob percaya bahwa ''public key'' tersebut milik Alice. Eve dapat
menghadap seluruh ''ciphertext'' yang dikirim oleh Bob, melakukan dekripsi dengan kunci
rahasia milik Eve sendiri, menyimpan salinan dari pesan tersebut, melakukan enkripsi
menggunakan ''public key'' milik Alice, dan mengirimkan ''ciphertext'' yang baru kepada Alice.
Secara prinsip, baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka.
Pengamanan terhadap serangan semacam ini yaitu menggunakan [[sertifikat digital]] atau
komponen lain dari infrastuktur ''public key''.
Penyerangan waktu
Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun [[1995]]: jika
penyerang, Eve, mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan
mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa
''ciphertext'', Eve dapat menyimpulkan kunci dekripsi ''d'' secara cepat. Penyerangan ini dapat
juga diaplikasikan pada skema "tanda tangan" RSA. SAlah satu cara untuk mencegah
penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang
konstan untuk setiap ''ciphertext'' yang diproses. Cara yang lainnya, yaitu dengan menggunakan
properti multipikatif dari RSA. Sebagai ganti dari menghitung ''c<sup>d</sup> mod N'', Alice
pertama-tama memilih nilai bilangan acak ''r'' dan menghitung ''(r<sup>e</sup>c)<sup>d</sup>
mod N''. Hasil dari penghitungan tersebut ialah ''rm mod N'' kemudian efek dari ''r'' dapat
dihilangkan dengan perkalian dengan inversenya. Nilai baru dari ''r'' dipilih pada tiap
''ciphertext''. Dengan teknik ini, dikenal sebagai ''message blinding'' (pembutaan pesan), waktu
yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ''ciphertext''
sehingga penyerangan waktu akan gagal.
Penyerangan ''ciphertext'' adaptive
Pada tahun [[1998]], [[Daniel Bleichenbacher]] menjelaskan penggunaan penyerangan
''ciphertext'' adaptive, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan
PKCS #1 v1 ''padding scheme''. Dikarenakan kecacatan pada skema PKCS #1, Bleichenbacher
mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada [[protokol]]
[[Secure Socket Layer]], dan secara potensial mengungkap kunci-kunci yang digunakan.
Sebagai hasilnya, para pengguna kriptografi menganjurkan untuk menggunakan ''padding
scheme'' yang relatif terbukti aman seperti ''[[Optimal Asymmetric Encryption Padding]]'', dan
Laboratorium RSA telah merilis versi terbaru dari PKCS #1 yang tidak lemah terdapat serangan
ini.
Penyerangan waktu
Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun [[1995]]: jika
penyerang, Eve, mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan
mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa
''ciphertext'', Eve dapat menyimpulkan kunci dekripsi ''d'' secara cepat. Penyerangan ini dapat
juga diaplikasikan pada skema "tanda tangan" RSA. SAlah satu cara untuk mencegah
penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang
konstan untuk setiap ''ciphertext'' yang diproses. Cara yang lainnya, yaitu dengan menggunakan
properti multipikatif dari RSA. Sebagai ganti dari menghitung ''c<sup>d</sup> mod N'', Alice
pertama-tama memilih nilai bilangan acak ''r'' dan menghitung ''(r<sup>e</sup>c)<sup>d</sup>
mod N''. Hasil dari penghitungan tersebut ialah ''rm mod N'' kemudian efek dari ''r'' dapat
dihilangkan dengan perkalian dengan inversenya. Nilai baru dari ''r'' dipilih pada tiap
''ciphertext''. Dengan teknik ini, dikenal sebagai ''message blinding'' (pembutaan pesan), waktu
yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ''ciphertext''
sehingga penyerangan waktu akan gagal.
Penyerangan ''ciphertext'' adaptive
Pada tahun [[1998]], [[Daniel Bleichenbacher]] menjelaskan penggunaan penyerangan
''ciphertext'' adaptive, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan
PKCS #1 v1 ''padding scheme''. Dikarenakan kecacatan pada skema PKCS #1, Bleichenbacher
mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada [[protokol]]
[[Secure Socket Layer]], dan secara potensial mengungkap kunci-kunci yang digunakan.
Sebagai hasilnya, para pengguna kriptografi menganjurkan untuk menggunakan ''padding
scheme'' yang relatif terbukti aman seperti ''[[Optimal Asymmetric Encryption Padding]]'', dan
Laboratorium RSA telah merilis versi terbaru dari PKCS #1 yang tidak lemah terdapat serangan
ini.

More Related Content

What's hot (19)

Teori himpunan
Teori himpunanTeori himpunan
Teori himpunan
S N M P Simamora
76110863 matlab
76110863 matlab76110863 matlab
76110863 matlab
Jose Costa
Algoritma Symboolon
Algoritma SymboolonAlgoritma Symboolon
Algoritma Symboolon
S N M P Simamora
Algoritma Garis
Algoritma GarisAlgoritma Garis
Algoritma Garis
Farichah Riha
4 Menggambar Grafik Fungsi Dengan Matlab
4 Menggambar Grafik Fungsi Dengan Matlab4 Menggambar Grafik Fungsi Dengan Matlab
4 Menggambar Grafik Fungsi Dengan Matlab
Simon Patabang
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)
Sunarya Marwah
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array
087dwi
Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++
Nurdin Al-Azies
Reed solomon code
Reed solomon codeReed solomon code
Reed solomon code
undeed
Algoritma rsa
Algoritma rsaAlgoritma rsa
Algoritma rsa
Farid_usman
Pp 4(bab4)
Pp 4(bab4)Pp 4(bab4)
Pp 4(bab4)
-Eq Wahyou-
maksimum dan minimum
maksimum dan minimummaksimum dan minimum
maksimum dan minimum
Fazar Ikhwan Guntara
Reed Solomon Code
Reed Solomon CodeReed Solomon Code
Reed Solomon Code
adi234
Aplikasi turunan-stt
Aplikasi turunan-sttAplikasi turunan-stt
Aplikasi turunan-stt
Liza II
Bahan ajar integral tak-tentu
Bahan ajar integral tak-tentuBahan ajar integral tak-tentu
Bahan ajar integral tak-tentu
Nasrial Tanjung
[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf
Fariz Darari
INTEGRAL
INTEGRALINTEGRAL
INTEGRAL
Alv Awg
76110863 matlab
76110863 matlab76110863 matlab
76110863 matlab
Jose Costa
4 Menggambar Grafik Fungsi Dengan Matlab
4 Menggambar Grafik Fungsi Dengan Matlab4 Menggambar Grafik Fungsi Dengan Matlab
4 Menggambar Grafik Fungsi Dengan Matlab
Simon Patabang
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)
Sunarya Marwah
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array
087dwi
Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++
Nurdin Al-Azies
Reed solomon code
Reed solomon codeReed solomon code
Reed solomon code
undeed
Algoritma rsa
Algoritma rsaAlgoritma rsa
Algoritma rsa
Farid_usman
Reed Solomon Code
Reed Solomon CodeReed Solomon Code
Reed Solomon Code
adi234
Aplikasi turunan-stt
Aplikasi turunan-sttAplikasi turunan-stt
Aplikasi turunan-stt
Liza II
Bahan ajar integral tak-tentu
Bahan ajar integral tak-tentuBahan ajar integral tak-tentu
Bahan ajar integral tak-tentu
Nasrial Tanjung
[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf
Fariz Darari
INTEGRAL
INTEGRALINTEGRAL
INTEGRAL
Alv Awg

Viewers also liked (19)

舒亢仆亳从仂于 .丕. 束从舒仍仆仂 仗仂亳于仂亟亠亶于亳 于仆亠仆亠仄 于仄亠舒亠仍于 亳 仗亠亟仂...
舒亢仆亳从仂于 .丕.   束从舒仍仆仂 仗仂亳于仂亟亠亶于亳 于仆亠仆亠仄 于仄亠舒亠仍于 亳 仗亠亟仂...舒亢仆亳从仂于 .丕.   束从舒仍仆仂 仗仂亳于仂亟亠亶于亳 于仆亠仆亠仄 于仄亠舒亠仍于 亳 仗亠亟仂...
舒亢仆亳从仂于 .丕. 束从舒仍仆仂 仗仂亳于仂亟亠亶于亳 于仆亠仆亠仄 于仄亠舒亠仍于 亳 仗亠亟仂...
fuuuup
Ps102 CA Politics Statistics. ppt
Ps102 CA Politics Statistics. pptPs102 CA Politics Statistics. ppt
Ps102 CA Politics Statistics. ppt
mmflack
Sunum gl端cklich
Sunum gl端cklichSunum gl端cklich
Sunum gl端cklich
Irem Bosnal脹
Presentation course tef5402 show
Presentation course tef5402 showPresentation course tef5402 show
Presentation course tef5402 show
flepervanche
Course Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor Lepervanche
Course Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor LepervancheCourse Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor Lepervanche
Course Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor Lepervanche
flepervanche
Presentation course tef5401 slide show
Presentation course tef5401 slide showPresentation course tef5401 slide show
Presentation course tef5401 slide show
flepervanche
Analisis graficasAnalisis graficas
Analisis graficas
LIYIS2327
Wendy sanchez (1)Wendy sanchez (1)
Wendy sanchez (1)
barranes14
Presentacion Leidivic ToroPresentacion Leidivic Toro
Presentacion Leidivic Toro
Leidivic Adriiana
Studenten en social media
Studenten en social mediaStudenten en social media
Studenten en social media
Rob Speekenbrink
DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...
DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...
DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...
Jaak Vlasveld
RSSRSS
RSS
IVIS2015
Presentatie Waternet - Green Water meets Green IT, 10 maart 2011 - water en d...
Presentatie Waternet - Green Water meets Green IT, 10 maart 2011 - water en d...Presentatie Waternet - Green Water meets Green IT, 10 maart 2011 - water en d...
Presentatie Waternet - Green Water meets Green IT, 10 maart 2011 - water en d...
Jaak Vlasveld
DpppDppp
Dppp
UPAV TUXTEPEC
Serebro Lab. 仂仂亳仗 舒亶舒 仄亠弍亠仍仆仂亶 舒弍亳从亳 "亠亞舒仍舒仂仆".
Serebro Lab. 仂仂亳仗 舒亶舒 仄亠弍亠仍仆仂亶 舒弍亳从亳 "亠亞舒仍舒仂仆".Serebro Lab. 仂仂亳仗 舒亶舒 仄亠弍亠仍仆仂亶 舒弍亳从亳 "亠亞舒仍舒仂仆".
Serebro Lab. 仂仂亳仗 舒亶舒 仄亠弍亠仍仆仂亶 舒弍亳从亳 "亠亞舒仍舒仂仆".
从舒仆舒 亠仍亠亰仆仂于舒
Seguridad 2Seguridad 2
Seguridad 2
Jorge Hernandez
永姻艶壊艶稼岳温界庄坦稼喝糸庄艶乙看喝看姻岳庄噛永姻艶壊艶稼岳温界庄坦稼喝糸庄艶乙看喝看姻岳庄噛
永姻艶壊艶稼岳温界庄坦稼喝糸庄艶乙看喝看姻岳庄噛
ziort
Reshape Healthcare
Reshape HealthcareReshape Healthcare
Reshape Healthcare
Rob Speekenbrink
RSS RSS
RSS
97082719346
舒亢仆亳从仂于 .丕. 束从舒仍仆仂 仗仂亳于仂亟亠亶于亳 于仆亠仆亠仄 于仄亠舒亠仍于 亳 仗亠亟仂...
舒亢仆亳从仂于 .丕.   束从舒仍仆仂 仗仂亳于仂亟亠亶于亳 于仆亠仆亠仄 于仄亠舒亠仍于 亳 仗亠亟仂...舒亢仆亳从仂于 .丕.   束从舒仍仆仂 仗仂亳于仂亟亠亶于亳 于仆亠仆亠仄 于仄亠舒亠仍于 亳 仗亠亟仂...
舒亢仆亳从仂于 .丕. 束从舒仍仆仂 仗仂亳于仂亟亠亶于亳 于仆亠仆亠仄 于仄亠舒亠仍于 亳 仗亠亟仂...
fuuuup
Ps102 CA Politics Statistics. ppt
Ps102 CA Politics Statistics. pptPs102 CA Politics Statistics. ppt
Ps102 CA Politics Statistics. ppt
mmflack
Presentation course tef5402 show
Presentation course tef5402 showPresentation course tef5402 show
Presentation course tef5402 show
flepervanche
Course Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor Lepervanche
Course Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor LepervancheCourse Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor Lepervanche
Course Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor Lepervanche
flepervanche
Presentation course tef5401 slide show
Presentation course tef5401 slide showPresentation course tef5401 slide show
Presentation course tef5401 slide show
flepervanche
Analisis graficasAnalisis graficas
Analisis graficas
LIYIS2327
Wendy sanchez (1)Wendy sanchez (1)
Wendy sanchez (1)
barranes14
Presentacion Leidivic ToroPresentacion Leidivic Toro
Presentacion Leidivic Toro
Leidivic Adriiana
Studenten en social media
Studenten en social mediaStudenten en social media
Studenten en social media
Rob Speekenbrink
DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...
DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...
DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...
Jaak Vlasveld
RSSRSS
RSS
IVIS2015
Presentatie Waternet - Green Water meets Green IT, 10 maart 2011 - water en d...
Presentatie Waternet - Green Water meets Green IT, 10 maart 2011 - water en d...Presentatie Waternet - Green Water meets Green IT, 10 maart 2011 - water en d...
Presentatie Waternet - Green Water meets Green IT, 10 maart 2011 - water en d...
Jaak Vlasveld
Serebro Lab. 仂仂亳仗 舒亶舒 仄亠弍亠仍仆仂亶 舒弍亳从亳 "亠亞舒仍舒仂仆".
Serebro Lab. 仂仂亳仗 舒亶舒 仄亠弍亠仍仆仂亶 舒弍亳从亳 "亠亞舒仍舒仂仆".Serebro Lab. 仂仂亳仗 舒亶舒 仄亠弍亠仍仆仂亶 舒弍亳从亳 "亠亞舒仍舒仂仆".
Serebro Lab. 仂仂亳仗 舒亶舒 仄亠弍亠仍仆仂亶 舒弍亳从亳 "亠亞舒仍舒仂仆".
从舒仆舒 亠仍亠亰仆仂于舒
Seguridad 2Seguridad 2
Seguridad 2
Jorge Hernandez
永姻艶壊艶稼岳温界庄坦稼喝糸庄艶乙看喝看姻岳庄噛永姻艶壊艶稼岳温界庄坦稼喝糸庄艶乙看喝看姻岳庄噛
永姻艶壊艶稼岳温界庄坦稼喝糸庄艶乙看喝看姻岳庄噛
ziort

Similar to Algoritma rsa (20)

Prakt modul 9 sym kriptografi
Prakt modul 9 sym kriptografiPrakt modul 9 sym kriptografi
Prakt modul 9 sym kriptografi
Keisha Khairani
Keamanan__Multimedia [Autosaved].pptx
Keamanan__Multimedia [Autosaved].pptxKeamanan__Multimedia [Autosaved].pptx
Keamanan__Multimedia [Autosaved].pptx
dewi892106
Latihan &kasus alpro-I_sns
Latihan &kasus alpro-I_snsLatihan &kasus alpro-I_sns
Latihan &kasus alpro-I_sns
staffpengajar
Konsep Array_sns
Konsep Array_snsKonsep Array_sns
Konsep Array_sns
staffpengajar
Algoritma RSA - Bahasa indonesia. .......
Algoritma RSA - Bahasa indonesia. .......Algoritma RSA - Bahasa indonesia. .......
Algoritma RSA - Bahasa indonesia. .......
wiwid59
Japaness multiplification 3 variables and 4 variables
Japaness multiplification 3 variables and 4 variablesJapaness multiplification 3 variables and 4 variables
Japaness multiplification 3 variables and 4 variables
staffpengajar
MK Keamanan komputer - Sesi 8 & 9 : Kriptografi (Metode El Gammal)
MK Keamanan komputer - Sesi  8  & 9 : Kriptografi (Metode El Gammal)MK Keamanan komputer - Sesi  8  & 9 : Kriptografi (Metode El Gammal)
MK Keamanan komputer - Sesi 8 & 9 : Kriptografi (Metode El Gammal)
Bambang
KR02.pptx
KR02.pptxKR02.pptx
KR02.pptx
Novianty23
Kriptografi - Algoritma RSA
Kriptografi - Algoritma RSAKriptografi - Algoritma RSA
Kriptografi - Algoritma RSA
KuliahKita
CAST encryption
CAST encryptionCAST encryption
CAST encryption
GIST (Gwangju Institute of Science and Technology)
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHERTEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
Rivalri Kristianto Hondro
Pengenalan c++ bagian 2
Pengenalan c++ bagian 2Pengenalan c++ bagian 2
Pengenalan c++ bagian 2
Fazar Ikhwan Guntara
Struktur Kendali Proses-alpro-I_sns
Struktur Kendali Proses-alpro-I_snsStruktur Kendali Proses-alpro-I_sns
Struktur Kendali Proses-alpro-I_sns
staffpengajar
Konsep pointer Univ. BALE
Konsep pointer Univ. BALEKonsep pointer Univ. BALE
Konsep pointer Univ. BALE
staffpengajar
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Saprudin Eskom
Soalprogdasx
SoalprogdasxSoalprogdasx
Soalprogdasx
Musanif Efendi
About Cryptography Encryption Decryption technology
About Cryptography Encryption Decryption technologyAbout Cryptography Encryption Decryption technology
About Cryptography Encryption Decryption technology
surotosuroto37
KRIPTOGRAFI MODERN SIMESTIS.docx
KRIPTOGRAFI MODERN SIMESTIS.docxKRIPTOGRAFI MODERN SIMESTIS.docx
KRIPTOGRAFI MODERN SIMESTIS.docx
ShafiraCut1
Prakt modul 9 sym kriptografi
Prakt modul 9 sym kriptografiPrakt modul 9 sym kriptografi
Prakt modul 9 sym kriptografi
Keisha Khairani
Keamanan__Multimedia [Autosaved].pptx
Keamanan__Multimedia [Autosaved].pptxKeamanan__Multimedia [Autosaved].pptx
Keamanan__Multimedia [Autosaved].pptx
dewi892106
Latihan &kasus alpro-I_sns
Latihan &kasus alpro-I_snsLatihan &kasus alpro-I_sns
Latihan &kasus alpro-I_sns
staffpengajar
Algoritma RSA - Bahasa indonesia. .......
Algoritma RSA - Bahasa indonesia. .......Algoritma RSA - Bahasa indonesia. .......
Algoritma RSA - Bahasa indonesia. .......
wiwid59
Japaness multiplification 3 variables and 4 variables
Japaness multiplification 3 variables and 4 variablesJapaness multiplification 3 variables and 4 variables
Japaness multiplification 3 variables and 4 variables
staffpengajar
MK Keamanan komputer - Sesi 8 & 9 : Kriptografi (Metode El Gammal)
MK Keamanan komputer - Sesi  8  & 9 : Kriptografi (Metode El Gammal)MK Keamanan komputer - Sesi  8  & 9 : Kriptografi (Metode El Gammal)
MK Keamanan komputer - Sesi 8 & 9 : Kriptografi (Metode El Gammal)
Bambang
Kriptografi - Algoritma RSA
Kriptografi - Algoritma RSAKriptografi - Algoritma RSA
Kriptografi - Algoritma RSA
KuliahKita
Struktur Kendali Proses-alpro-I_sns
Struktur Kendali Proses-alpro-I_snsStruktur Kendali Proses-alpro-I_sns
Struktur Kendali Proses-alpro-I_sns
staffpengajar
Konsep pointer Univ. BALE
Konsep pointer Univ. BALEKonsep pointer Univ. BALE
Konsep pointer Univ. BALE
staffpengajar
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Saprudin Eskom
About Cryptography Encryption Decryption technology
About Cryptography Encryption Decryption technologyAbout Cryptography Encryption Decryption technology
About Cryptography Encryption Decryption technology
surotosuroto37
KRIPTOGRAFI MODERN SIMESTIS.docx
KRIPTOGRAFI MODERN SIMESTIS.docxKRIPTOGRAFI MODERN SIMESTIS.docx
KRIPTOGRAFI MODERN SIMESTIS.docx
ShafiraCut1

Algoritma rsa

  • 1. Mengenal Algoritma Enkripsi RSA Oleh: Iwan Ariawan (2097200608) Sebagai tugas mata kuliah Sistem Keamanan Komputer Sejarah RSA Algortima RSA dijabarkan pada tahun [[1977]] oleh tiga orang : [[Ron Rivest]], [[Adi Shamir]] dan [[Len Adleman]] dari [[Massachusetts Institute of Technology]]. Huruf '''RSA''' itu sendiri berasal dari inisial nama mereka ('''R'''ivest'''S'''hamir'''A'''dleman). [[Clifford Cocks]], seorang matematikawan [[Inggris]] yang bekerja untuk [[GCHQ]], menjabarkan tentang sistem equivalen pada dokumen internal di tahun [[1973]]. Penemuan Clifford Cocks tidak terungkap hingga tahun [[1997]] karena alasan ''top-secret classification''. Algoritma tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun [[1983]] di [[Amerika Serikat]] sebagai {{US patent|4405829}}. Paten tersebut berlaku hingga [[21 September]] [[2000]]. Semenjak Algoritma RSA dipublikasikan sebagai aplikasi paten, regulasi di sebagian besar negara-negara lain tidak memungkinkan penggunaan paten. Hal ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum, paten di Amerika Serikat tidak dapat mematenkannya. Introduction RSA adalah sebuah algoritma berdasarkan skema public-key cryptography. Diberi nama RSA sebagai inisial para penemunya: Ron Rivest, Adi Shamir, dan Leonard Adleman. SA dibuat di MIT pada tahun 1977 dan dipatenkan oleh MIT pada tahun 1983. Setelah bulan September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas. Lebih jauh, RSA adalah algoritma yang mudah untuk diimplementasikan dan dimengerti. algoritma RSA adalah sebuah aplikasi dari sekian banyak teori seperti extended Euclid algorithm, euler's function sampai fermat theorem. Artikel ini menjelaskan algoritma RSA dari dasar. Saya akan menggunakan nilai-nilai yang kecil untuk menjelaskan bagaimana cara kerja algoritma RSA. Public-Key Cryptography Konsep fundamental dari Public-Key Cryptography ditemukan oleh Whitfield Diffie dan Martin Hellman, dan secara terpisah oleh Ralph Merkle. Sedangkan konsep dasar Public-Key Cryptography terletak pada pemahaman bahwa keys selalu berpasangan: encryption key dan decryption key. Juga perlu diingat bahwa sebuah key tidak dapat digenerate dari key lainnya. Pemahaman encryption dan decryption key sering disebut sebagai public dan private key.
  • 2. Seseorang harus memberikan public key-nya agar pihak lain dapat meng-encrypt sebuah pesan. Decryption hanya terjadi jika seseorang mempunyai private key. Scenario Bagian ini menjelaskan skenario bagaimana public-key cryptosystem bekerja. Saya akan menggunakan partisipan klasik Alice dan Bob sebagai orang-orang yang melakukan pertukaran informasi. 1. Alice dan Bob setuju untuk menggunakan public-key cryptosystem. 2. Bob mengirimkan public key-nya kepada Alice. 3. Alice meng-encrypt pesan yang dibuatkan dengan menggunakan public key milik Bob dan mengirimkan pesan yang sudah di-encrypt kepada Bob. 4. Bob men-decrypt pesan dari Alice menggunakan private key miliknya. Mathematical Notation Untuk memahami algoritma RSA, seseorang harus memahami beberapa notasi matematika dasar, teori dan formula. Hal tersebut dibutuhkan untuk mendukung semua kalkulasi yang dilakukan dalam algoritma RSA. 1. Modulo (didenotasikan dengan 'x mod m' atau 'x % m' dalam beberapa bahasa komputer) - x % m = x mod m = pembagian x dengan m dan mengambil sisanya. - Contoh: 25 mod 5 = 0 karena 5 habis membagi 25 25 mod 4 = 1 karena 25 / ( 4 * 6 ) menyisakan 1 x mod m = x jika dan hanya jika x < m 2. Z/mZ - Z/7Z : { 0,1,2,3,4,5,6 } dimana [7]=[0], [8]=[1], [9]=[2] dan seterusnya. - Operasi yang didukung dalam Z/mZ aalah penjumlahan, pengurangan, pembagian dan perkalian. - Inverse: Sebuah elemen dalam Z/mZ seperti A, memiliki sebuah inverse B jika dan hanya jika [A]x[B] = [1] - Units: Setiap elemen dalam Z/mZ yang memiliki inverse adalah sebuah unit. - Contoh: Z/7Z Penjumlahan: [2]+[3] = [5] ; [5]+[5] = [10] ... [10-7] = [3] Pengurangan: [2]-[3] = [-1] = [6] ; [6]-[4] = [2] Pembagian : [6]/[2] = [3] ; [6]/[4] = [5] ([4]x[5] = [20] = [6]) Perkalian : [2]x[6] = [12] = [5] ; Soal: [6]/[4] a. Tempatkan dalam formula [6] = [X][4] b. Cari inverse dari [4], yaitu [2] ... [4]x[2] = [8] = [1] c. Kali inverse dengan [6] ... [2]x[6] = [12] = [5]
  • 3. d. Sehingga [4]x[5] = [20] = [13] = [6] 3. GCD(A,B) GCD = greatest common divisor. GCD(A,B) = D GCD(78,32) = 2, karena tidak ada bilangan yang lebih besar dari dua yang membagi 78 dan 32. GCD(A,B) dapat ditemukan dengan menggunakan algoritma extended euclid. Jika GCD(A,B) = 1 maka A and B dalah coprime satu sama lainnya (dengan kata lain, A dan B adalah relatively prime). 4. Memecahkan 8x mod 13 = 1, dimana x adalah bilangan yang belum diketahui. - Cari gcd(8,13) yang berarti 1 ... yang berarti persamaan dapat diselesaikan. - Membuat sebuah matriks dan menggunakan operasi gaussian dalam matriks. 8 | 1 0 r2=r2-r1 8 | 1 0 r1=r1-r2 13 | 0 1 ---------> 5 | -1 1 ---------> 3 | 2 -1 r2=r2-r1 3 | 2 -1 5 | -1 1 ---------> 2 |-3 2 lakukan sampai kita mendapatkan format : 1 | s t 0 | s' t' s, t, s', t' dapat berupa bilangan apa saja. Jika hasil akhir yang di dapat sbb: 0 | s' t' , kita harus 1 | s t rotasi atas-bawah hasil nya menjadi format: 1 | s t 0 | s' t' sehingga sekarang kita mendapatkan d = 1, s = 5, t = -3, sehingga x = s = 5. 5. Euler's phi function (jangan sampai keliru dengan phi = 3.14) - Euler's phi function adalah sebuah total bilangan unit dalam Z/mZ - Theorem a. Jika p adalah sebuah bilangan prima, maka phi(p) = p - 1 p dan phi(p) adalah (contoh: gcd(p,phi(p)) = 1) ii): phi(m*n) = phi(m) * phi (n) phi(p^a) = (p^a) - p^(a-1)
  • 4. b. Contoh: -- phi(7) = 6 -- phi(840) = phi(8) * phi(105) = phi(2^3) * phi(3*5*7) = [(2^3) - (2^2)] * phi(3) * phi(5) * phi(7) 6. Pangkat. pow(a,b) Saya akan menggunakan notasi '^' seperti pada a^b Key Generation Misalkan Alice ingin Bob mengirimnya sebuah pesan melalui jalur yang aman. Alice akan memberikan public keynya kepada Bob dan menyimpan private key untuk dirinya. a. Pilih 2 bilangan prima besar seperti p,q dimana p tidak sama dengan q. b. Hitung M = p x q c. Hitung phi(M) = phi(p) * phi(q) d. Pilih sebuah integer 'e' dimana 1 < e < phi(M) dan 'e' serta phi(M) adalah coprime. e. Hitung 'd' integer sehingga (d * e) mod M = 1 f. (M,e) adalah public key dimana M adalah modulo dan e adalah eksponen encryption. g. (M,d) adalah private key dimana M adalah modulo dan d adalah eksponen decryption. Encrypting Message Misalkan Bob ingin mengirim sebuah pesan 'H' kepada Alice. a. Alice harus membuat keynya; sehingga ia memiliki private dan public keys. private key = (M,d) public key = (M,e) b. Mengubah 'H' menjadi sebuah bilangan yang menggunakan alphabet yang valid dengan tabel bilangan. Sebuah contoh mudah adalah mapping A = 1, B = 2 ... Z = 26. sehingga H = 8 c. C = 8^e (mod M) C adalah sebuah bilangan ter-encrypt. d. Bob mengirimkan bilangan tersebut kepada Alice sehingga Alice dapat melakukan decode ulang menggunakan private keynya. Decrypting Message Misalkan Alice menerima sebuah pesan ter-encrypt, ia akan men-decrypt-nya menggunakan tahapan-tahapan berikut: a. Alice mempunyai private key dari langkah-langkah di atas (M,d) b. N = C^d (mod M) c. N adalah bilangan. Gunakan konversi table alphabet untuk mengubah N menjadi karakter yang direpresentasikannya.
  • 5. Example a. Generate Key (kita dapat melewati langkah ini untuk menemukan p dan q) 1. M = 101 , sebuah bilangan prima --> phi(M) = 100 2) a] Misalkan e = 13 b] Cari d (e*d) mod M = 1 Gunakan persamaan (a*x) mod M = 1 d = 77 b. Kata "HELLO" digunakan sebagai pesan, dan diubah menurut numerical representationnya. HELLO = 08 05 12 12 15 c. Encoding pesan. 8^13 mod 101 = 18 5^13 mod 101 = 56 12^13 mod 101 = 53 15^13 mod 101 = 7 Sehingga pesan ter-encrypt atau ciphertext adalah 18,56,53,53,07. d. Decoding pesan. 18^77 mod 101 = x1 56^77 mod 101 = x2 53^77 mod 101 = x3 = x4 07^77 mod 101 = x5 Closure RSA merupakan contoh yang powerful dan cukup aman dari Public-Key Cryptography. Berdasarkan matematika, proses yang digunakan berdasarkan fungsi-fungsi trap-door satu arah. Sehingga melakukan encryption dengan menggunakan public key sangat mudah bagi semua orang, namun proses decryption menjadi sangat sulit. Proses decryption sengaja dibuat sulit agar seseorang, walaupun menggunakan Cray supercomputers dan ribuan tahun, tidak dapat men-decrypt pesan tanpa mempunyai private key. Perlu diingat juga bahwa pemilihan p*q = M haruslah sebuah bilangan yang sangat besar sehingga sulit dicari eksponen decoding-nya karena sulit melakukan pemfaktoran bilangan prima. ''Padding schemes'' ''[[Padding Scheme]]'' harus dibangun secara hati-hati sehingga tidak ada nilai dari ''m'' yang menyebabkan masalah keamanan. Sebagai contoh, jika kita ambil contoh sederhana dari penampilan [[ASCII]] dari ''m'' dan menggabungkan [[bit|bit-bit]] secara bersama-sama akan menghasilkan ''n'', kemudian pessan yang berisi ASCII tunggal karakter <code>NUL</code> (nilai numeris 0) akan menghasilkan ''n''= 0, yang akan menghasilkan ''ciphertext'' 0 apapun itu
  • 6. nilai dari ''e'' dan ''N'' yang digunakan. Sama halnya dengan karakter ASCII tunggal <code>SOH</code> (nilai numeris 1) akan selalu menghasilkan ''chiphertext'' 1. Pada kenyataannya, untuk sistem yang menggunakan nilai ''e'' yang kecil, seperti 3, seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman, dikarenakan nilai terbesar ''n'' adalah nilai 255, dan 255<sup>3</sup> menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya, maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ''ciphertext'' tanpa perlu menggunakan modulus ''N''. Sebagai konsekuensinya, standar seperti [[PKCS]] didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman. Dan juga berdasar pada bagian [[#Kecepatan| Kecepatan]], akan dijelaskan kenapa ''m'' hampir bukanlah pesan itu sendiri tetapi lebih pada ''message key'' yang dipilh secara acak. Pengesahan pesan RSA dapat juga digunakan untuk mengesahkan sebuah pesan. Misalkan Alice ingin mengirim pesan kepada Bob. Alice membuat sebuah ''[[hash value]]'' dari pesan tersebut, di pangkatkan dengan bilangan ''d'' dibagi ''N'' (seperti halnya pada deskripsi pesan), dan melampirkannya sebagai "tanda tangan" pada pesan tersebut. Saat Bob menerima pesan yang telah "ditandatangani", Bob memangkatkan "tanda tangan" tersebut dengan bilangan ''e'' dibagi ''N'' (seperti halnya pada enkripsi pesan), dan membandingkannya dengan nilai hasil dari ''hash value'' dengan ''hash value'' pada pesan tersebut. Jika kedua cocok, maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice, dan pesan pun tidak pernah diubah sepanjang pengiriman. Harap dicatat bahwa ''padding scheme'' merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan, oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan. Keamanan Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar. Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan, maka ada kemungkinan untuk membongkar RSA. Pada tahun [[2005]], bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit, menggunakan metode distribusi mutakhir. Kunci RSA pada umumnya sepanjang 1024 2048 bit. Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan), tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi. Semisal Eve, seorang ''eavesdropper'' (pencuri dengarpenguping), mendapatkan ''public key'' ''N'' dan ''e'', dan ciphertext ''c''. Bagimanapun juga, Eve tidak mampu untuk secara langsung
  • 7. memperoleh ''d'' yang dijaga kerahasiannya oleh Alice. Masalah untuk menemukan ''n'' seperti pada ''n<sup>e</sup>=c'' mod N di kenal sebagai permasalahan RSA. Cara paling efektif yang ditempuh oleh Eve untuk memperoleh ''n'' dari ''c'' ialah dengan melakukan faktorisasi ''N'' kedalam ''p'' dan ''q'', dengan tujuan untuk menghitung (''p''-1)(''q''-1) yang dapat menghasilkan ''d'' dari ''e''. Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini, tapi hal tersebut pun masih belum terbukti. Masih belum ada bukti pula bahwa melakukan faktorisasi ''N'' adalah satu-satunya cara untuk memperoleh ''n'' dari ''c'', tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik). Bagaimanapun juga, secara umum dianggap bahwa Eve telah kalah jika ''N'' berukuran sangat besar. Jika ''N'' sepanjang 256-bit atau lebih pendek, ''N'' akan dapat difaktorisasi dalam beberapa jam pada [[Personal Computer]], dengan menggunakan [[perangkat lunak]] yang tersedia secara bebas. Jika ''N'' sepanjang 512-bit atau lebih pendek, ''N'' akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun [[1999]]. Secara teori, [[perangkat keras]] bernama [[TWIRL]] dan penjelasan dari Shamir dan Tromer pada tahun [[2003]] mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit. Santa disarankan bahwa ''N'' setidaknya sepanjang 2048- bit. Pada thaun [[1993]], [[Peter Shor]] menerbitkan [[Algoritma Shor]], menunjukkan bahwa sebuah [[komputer quantum]] secara prinsip dapat melakukan faktorisasi dalam waktu polinomial, mengurai RSA dan algoritma lainnya. Bagaimanapun juga, masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip. Pertimbangan praktis Pembangkitan kunci Menemukan bilangan prima besar ''p'' dan ''q'' pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima. ''p'' dan ''q'' seharusnya tidak "saling-berdekatan", agar [[faktorisasi fermat]] pada ''N'' berhasil. Selain itu pula, jika ''p''-1 atau ''q''-1 memeiliki faktorisasi bilangan prima yang kecil, ''N'' dapat difaktorkan secara mudah dan nilai-nilai dari ''p'' atau ''q'' dapat diacuhkan. Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang. Biasanya, pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan. Harap diingat, bahwa kebutuhan disini ialah "acak" '''''dan''''' "tidak-terduga". Berikut ini mungkin
  • 8. tidak memenuhi kriteria, sebuah bilangan mungkin dapat dipilah dari proses acak (misal, tidak dari pola apapun), tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak), maka metode tersebut akan kehilangan kemampuan keamanannya. Misalnya, tabel bilangan acak yang diterbitkan oleh [[Rand Corp]] pada tahun [[1950-an]] mungkin memang benar-benar teracak, tetapi dikarenakan diterbitkan secara umum, hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut. Jika penyerang dapat menebak separuh dari digit ''p'' atau ''q'', para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh [[Donald Coppersmith]] pada tahun [[1997]]). Sangatlah penting bahwa kunci rahasia ''d'' bernilai cukup besar, Wiener menunjukkan pada tahun [[1990]] bahwa jika ''p'' diantara ''q'' dan 2''q'' (yang sangat mirip) dan ''d'' lebih kecil daripada ''N''<sup>1/4</sup>/3, maka ''d'' akan dapat dihitung secara effisien dari ''N'' dan ''e''. Kunci enkripsi ''e'' = 2 sebaiknya tidak digunakan. Kecepatan RSA memiliki kecepatan yang lebih lambat dibandingkan dengan [[DES]] dan [[algoritma simetrik]] lainnya. Pada prakteknya, Bob menyandikan pesan rahasia menggunakan algoritma simetrik, menyandikan kunci simetrik menggunakan RSA, dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice. Prosedur ini menambah permasalahan akan keamanan. Singkatnya, Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan, karena Eve dapat melakukan ''bypass'' terhadap RSA dengan menebak kunci simterik yang digunakan. Distribusi kunci Sebagaimana halnya ''cipher'', bagaimana ''public key'' RSA didistribusi menjadi hal penting dalam keamanan. Distribusi kunci harus aman dari ''[[man-in-the-middle attack]]'' (''penghadang-ditengah-jalan''). Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice. Anggap Eve dapan "menghadang" sepenuhnya transmisi antara Alice dan Bob. Eve mengirim Bob ''public key'' milik Eve, dimana Bob percaya bahwa ''public key'' tersebut milik Alice. Eve dapat menghadap seluruh ''ciphertext'' yang dikirim oleh Bob, melakukan dekripsi dengan kunci rahasia milik Eve sendiri, menyimpan salinan dari pesan tersebut, melakukan enkripsi menggunakan ''public key'' milik Alice, dan mengirimkan ''ciphertext'' yang baru kepada Alice. Secara prinsip, baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka. Pengamanan terhadap serangan semacam ini yaitu menggunakan [[sertifikat digital]] atau komponen lain dari infrastuktur ''public key''.
  • 9. Penyerangan waktu Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun [[1995]]: jika penyerang, Eve, mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ''ciphertext'', Eve dapat menyimpulkan kunci dekripsi ''d'' secara cepat. Penyerangan ini dapat juga diaplikasikan pada skema "tanda tangan" RSA. SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ''ciphertext'' yang diproses. Cara yang lainnya, yaitu dengan menggunakan properti multipikatif dari RSA. Sebagai ganti dari menghitung ''c<sup>d</sup> mod N'', Alice pertama-tama memilih nilai bilangan acak ''r'' dan menghitung ''(r<sup>e</sup>c)<sup>d</sup> mod N''. Hasil dari penghitungan tersebut ialah ''rm mod N'' kemudian efek dari ''r'' dapat dihilangkan dengan perkalian dengan inversenya. Nilai baru dari ''r'' dipilih pada tiap ''ciphertext''. Dengan teknik ini, dikenal sebagai ''message blinding'' (pembutaan pesan), waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ''ciphertext'' sehingga penyerangan waktu akan gagal. Penyerangan ''ciphertext'' adaptive Pada tahun [[1998]], [[Daniel Bleichenbacher]] menjelaskan penggunaan penyerangan ''ciphertext'' adaptive, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS #1 v1 ''padding scheme''. Dikarenakan kecacatan pada skema PKCS #1, Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada [[protokol]] [[Secure Socket Layer]], dan secara potensial mengungkap kunci-kunci yang digunakan. Sebagai hasilnya, para pengguna kriptografi menganjurkan untuk menggunakan ''padding scheme'' yang relatif terbukti aman seperti ''[[Optimal Asymmetric Encryption Padding]]'', dan Laboratorium RSA telah merilis versi terbaru dari PKCS #1 yang tidak lemah terdapat serangan ini.
  • 10. Penyerangan waktu Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun [[1995]]: jika penyerang, Eve, mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ''ciphertext'', Eve dapat menyimpulkan kunci dekripsi ''d'' secara cepat. Penyerangan ini dapat juga diaplikasikan pada skema "tanda tangan" RSA. SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ''ciphertext'' yang diproses. Cara yang lainnya, yaitu dengan menggunakan properti multipikatif dari RSA. Sebagai ganti dari menghitung ''c<sup>d</sup> mod N'', Alice pertama-tama memilih nilai bilangan acak ''r'' dan menghitung ''(r<sup>e</sup>c)<sup>d</sup> mod N''. Hasil dari penghitungan tersebut ialah ''rm mod N'' kemudian efek dari ''r'' dapat dihilangkan dengan perkalian dengan inversenya. Nilai baru dari ''r'' dipilih pada tiap ''ciphertext''. Dengan teknik ini, dikenal sebagai ''message blinding'' (pembutaan pesan), waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ''ciphertext'' sehingga penyerangan waktu akan gagal. Penyerangan ''ciphertext'' adaptive Pada tahun [[1998]], [[Daniel Bleichenbacher]] menjelaskan penggunaan penyerangan ''ciphertext'' adaptive, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS #1 v1 ''padding scheme''. Dikarenakan kecacatan pada skema PKCS #1, Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada [[protokol]] [[Secure Socket Layer]], dan secara potensial mengungkap kunci-kunci yang digunakan. Sebagai hasilnya, para pengguna kriptografi menganjurkan untuk menggunakan ''padding scheme'' yang relatif terbukti aman seperti ''[[Optimal Asymmetric Encryption Padding]]'', dan Laboratorium RSA telah merilis versi terbaru dari PKCS #1 yang tidak lemah terdapat serangan ini.