Keamanan Sistem Komputer dengan Algoritma RSA
KEAMANAN SISITEM KOMPUTER
oleh: Maulida Nabila Akbar
201731268
A. Algoritma
1. Hubungan Keamanan Sistem Komputer dengan Kriptografi RSA
Keamanan komputer merupakan
hal terpenting ketika kita mengoperasikan komputer untuk keperluan apapun.
Perusahaan besar mestinya memberi porsi lebih untuk meningkatkan keamanan komputer.
Alasannya sederhana, apabila keamanan komputer lemah maka hal-hal yang tidak
diinginkan pun dapat terjadi dengan mudahnya. Oleh sebab itu, pengguna komputer
yang pintar tentu melihat sisi waspada sehingga mengerahkan kemampuan untuk
sebisa mungkin keamanan komputer tergolong optimal. Salah satu pengamanannya
yaitu dengan menggunakan Algoritma RSA,mengapa?
Karena
Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan
bilangan non prima menjadi faktor primanya, yang dalam hal ini n = p × q.
Sekali n
berhasil difaktorkan menjadi p dan q, maka φ(n) = (p – 1)x(q – 1) dapat
dihitung. Selanjutnya, karena kunci enkrispi PK diumumkan (tidak rahasia), maka
kunci dekripsi SK dapat dihitung dari persamaan PK ⋅ SK ≡ 1 (mod φ(n)).
Penemu
algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan
demikian hasil kali r = p × q akan berukuran lebih dari 200 digit. Menurut
Rivest dan kawan-kawan, uasaha untuk mencari faktor bilangan 200 digit
membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa
algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini
dan komputer yang dipakai mempunyai kecepatan 1 milidetik).
Untunglah
algoritma yang paling mangkus untuk memfaktorkan bilangan yang besar belum
ditemukan. Inilah yang membuat algoritma RSA tetap dipakai hingga saat ini.
Selagi belum ditemukan algoritma yang mangkus untuk memfaktorkan bilangan bulat
menjadi faktor primanya, maka algoritma RSA tetap direkomendasikan untuk
menyandikan pesan.
2. Algoritma RSA
Pengertian RSA di bidang kriptografi adalah sebuah algoritma pada enkripsi public key. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi, dan salah satu yang
paling maju dalam bidang kriptografi public
key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamankan dengan
menggunakan kunci yang cukup panjang.
Sejarah 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 (Rivest-Shamir-Adleman).
Clifford Cocks, seorang
matematikawan Inggris yang bekerja
untuk GCHQ, menjabarkan tentang sistem ekuivalen pada
dokumen internal pada tahun 1973. Penemuan
Clifford Cocks tidak terungkap hingga tahun 1997 karena alasan top-secret classification.
Algoritme
tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika
Serikat sebagai U.S.
Patent 4.405.829. 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.
Proses Pembentukan
Kunci :
1.Pilih dua
bilangan prima p dan q, (usahakan p > q)
2. hitung n=p
x q
3. hitung Φ(n)=(p-1) x
(q-1)
4. pilih
kunci publik yang relatif prima dengan Φ(n)
5. Hitung
kunci private dengan SK=1+Φ(n)/PK
Proses Enkripsi :
1. Ubahlah
plaintext kedalam kode ASCII
2.Karakter
ASCII disimpan dalam blok-blok atau byte.
3. Lakukan
perkalian dalam tiap blok untuk mendapatkan ciphertext dengan rumus :
C=p^e mod n
Proses Dekripsi :
1. Ubahlah
plaintext kedalam kode ASCII
2.Karakter
ASCII disimpan dalam blok-blok atau byte.
3. Lakukan
perkalian dalam tiap blok untuk mendapatkan plaintext dengan rumus :
P=c^d mod n
FLOWCHART Algoritma
RSA
Keterangan :
Mulai,
Pertama,
masukkan bilangan prima p dan q, dimana p tidak sama denga q tetapi p>q.
Kedua, hitung n
dan Ф(n)
Ketiga,masukkan nilai e atau kunci publik yang
relatif prima terhadap
n dimana 1 < e < n-1.
Keempat, hitung d atau kunci pribadi.
Kelima, tentukan kunci publik (e,n) dan kunci
pribadi (d,n)
Keenam, masukkan pesan atau plaintext.
Ketujuh,ubah pesan atau plaintext tersebut
kedalam kode ASCII
Kedelapan,hitung C dimana akan menghasilkan
output cipher text (pada langkah ke9).
Jika pesan atau plaintext yang telah di
enkripsi ingin di ubah kembali ke plaintext atau di dekripsi maka dilanjutkan
ke langkah ke10 yaitu hitung nilai d dimana akan menghasilkan output
plaintext(pada langkah ke11).
Kemudian,selesai.
3. STUDI KASUS yang
diambil ialah :
Kasus Peretasan Penjualan Tiket Online Citilink Indonesia
Dalam kasus
tersebut Pihak Citilink juga
mengalami kerugian sebesar Rp1.973.784.434 karena ada sejumlah orang yang
membeli tiket dari sindikat peretas tersebut melakukan pembatalan dan refund.
Ada
kemungkinan dari sisi maskapai Citilink sendiri yang rentan seperti belum
membatasi penyaringan terhadap special character yang memungkinkan seorang
penyerang untuk menarik konten di database dari halaman front end aplikasi
(dikenal SQL Injection).
Umumnya dari
hasil ini, seseorang dapat mempergunakan data untuk login ke halaman yang lebih
tertentu (seperti halaman admin) atau dapat juga untuk mengambil data sensitif
pengguna lain.
Namun Taufik
menambahkan, bila ditarik dari kesimpulan tersebut, masih terlalu banyak hal
yang dapat dijadikan dugaan karena tidak hanya SQL Injection yang dapat membuat
seseorang berhasil memperoleh akses masuk.
Peretas
tersebut melakukan atau login ke akun maskapai Citilink, kemudian membagikan
atau menjual tiket tersebut secara murah ke sosial media Facebook.
Pada
algoritma RSA kami menerapkan keamanan pada saat seseorang berusaha login,
misalnya pada kasus diatas, Maka akan diterapkan kunci
publik yang dimiliki semua pegawai citilink dimana kunci publik tersebut
digunakan untuk membuka pesan yang dikirimkan oleh pegawai lain misalnya A, kemudian
si A ini memiliki kunci pribadi yang tidak diketahui orang lain dan hanya dia
saja yang tahu.
kemudian jika si A ingin login maka
akan muncul username dan password beserta kunci pribadi itu. Sehingga seseorang
tidak akan bisa masuk dengan mudahnya ke dalam akun citilink.
4. Syntax Program Menggunakan Bahasa Pemrograman C++
#include<iostream>
#include<math.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
long int p, q, n, t,
flag, e[100], d[100], temp[100], j, m[100], en[100], i;
string msg;
int prime(long int);
void ce();
long int cd(long
int);
void encrypt();
void decrypt();
int prime(long int
pr){
int i ;
j=sqrt(pr);
for (i=2 ; i<=j ; i++){
if (pr%i==0)
return 0 ;
}
return 1 ;
}
int main (){
cout<<"\nMASUKKAN
ANGKA PRIMA : ";
cin>>p;
flag=prime(p);
if (flag==0){
cout<<"\nINPUT
SALAH"<<endl;
exit(1);
}
cout<<"\nMASUKKAN
BILANGAN PRIMA LAINNYA : ";
cin>>q;
flag=prime(q);
if (flag==0 || p==q){
cout<<"\nINPUT
SALAH"<<endl;
exit(1);
}
cout<<"\nMASUKKAN
PESAN"<<endl;
fflush(stdin);
getline(cin,msg);
for(i=0; msg[i] != '\0'; i++)
m[i]=msg[i];
n=p*q;
t=(p-1)*(q-1);
ce();
cout<<"\nANGKA
TERSEDIA DARI E DAN D"<<endl;
for (i=0; i<j -1; i++)
cout<<e[i]<<"\t"<<d[i]<<"\n";
encrypt();
decrypt();
return 0;
}
void ce(){
int k;
k=0;
for(i=2; i<t; i++){
if(t%i==0)
continue;
flag=prime(i);
if (flag==1 && i !=q){
e[k]=i;
flag=cd(e[k]);
if (flag>0){
d[k]=flag;
k++;
}
if (k==99)
break;
}
}
}
long int cd(long int
x){
long int k=1;
while(1){
k=k+t;
if(k%x==0)
return (k/x);
}
}
void encrypt(){
long int pt,ct,key=e[0], k, len;
i=0;
len=msg.length();
while(i != len){
pt=m[i];
pt=pt-96;
k=1;
for(j=0;
j<key; j++){
k=k*pt;
k=k%n;
}
temp[i]=k;
ct=k+96;
en[i]=ct;
i++;
}
en[i]=-1;
cout<<"\nPESAN
ENKRIPSI"<<endl;
for(i=0; en[i] != -1; i++)
printf("%c",en[i]);
}
void decrypt(){
long int pt,ct,key=d[0],k;
i=0;
while(en[i] != -1){
ct=temp[i];
k=1;
for(j=0;
j<key; j++){
k=k*ct;
k=k%n;
}
pt=k+96;
m[i]=pt;
i++;
}
m[i]=-1;
cout<<"\nPESAN DEKRIPSI"<<endl;
for(i=0; m[i] !=-1; i++)
printf("%c",m[i]);
}
5. LINK BLOG
Kelompok 6 :
6. SUMBER
B.Analisa Algoritma
1. Hubungan Keamanan Sistem Komputer antara RSA dan Block Cipher
Algoritma kriptografi block cipehr beroperasi
pada plainteks/cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian
bit dibagi menjadi blok-blik bit yang panjangnya sudah ditentukan sebelumnya.
Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi
memperlakukan 8 karakter setiap kali enkripsi (1 karakter sama dengan 8 bit
dalam pengkodean ASCII).
Algoritma RSA dan Block Cipher memiliki
hubungan dalam keamanan data atau pesan yang diubah kedalam kode ASCII. Dari
segi keamanan, algoritma block cipher ini melindungi kerahasiaan data yang
dikirim melalui media telekomunikasi dan melindungi kerahasiaan data yang
disimpan pada media penyimpanan. Kelemahan dari sistem ini adalah baik pengirim
maupun penerima pesan harus memiliki kunci yang sama, sehingga pengirim pesan harus
mencari cara yang aman untuk memberitahukan kunci kepada penerima pesan.
Contoh lain :
2.Block Cipher
Blok cipher merupakan algoritma kriptografi simetrik
yang mengenkripsi satu blok plaintext dengan jumlah bit tertentu dan
menghasilkan blok ciphertext dengan
jumlah bit yang sama. Misalkan ukuran blok plaintext yang dienkripsi adalah 64
bit, maka akan menghasilkan ciphertext yang
berukuran 64 bit.
Sejarah :
Algoritma blok cipher
menggabungkan beberapa teknik kriptografi klasik dalam proses enkripsi. Dengan kata lain, cipher blok dapat diacu sebagai
super-enkripsi.
Mode
operasi paling awal, ECB, CBC, OFB, dan CFB , tahun 1981 dan ditentukan dalam
FIPS 81, Mode DES Operasi. Pada tahun 2001, Lembaga Standar dan Teknologi
Nasional AS (NIST) merevisi daftar mode operasi yang disetujui dengan
memasukkan AES sebagai chiper block dan menambahkan mode RKPT di SP800-38A,
Rekomendasi untuk Blok Cipher Mode Operasi. Akhirnya, pada bulan Januari 2010,
NIST menambahkan XTS-AES di SP800-38E, Rekomendasi untuk Blok Cipher Mode
Operasi: Mode XTS-AES untuk Kerahasiaan pada Perangkat Penyimpanan. Mode
kerahasiaan lainnya ada yang belum disetujui oleh NIST.
Cara kerja :
- enkripsi : merubah
plaintext menjadi chipertext. dengan menggunakan key yang kita tentukan
sebelumnya. dengan key tersebut plaintext di XOR dengan key maka mendapat hasil
chipertext yang akan di ganti dengan kode ascii.
- dekripsi : merubah
chipertext menjadi plaintext. dengan menggunakan key yang telah di gunakan
sebelumnya terhadap proses enkripsi lalu di XOR kembali. maka hasil dari XOR
tersebut menjadi plaintext kembali.
Flowchart
Electronic Code Book.
Electronic Code Book
Metode standar dari Block Cipher, yaitu masing – masing blok plainteks dienkripsi dengan kunci yang sama secara independen. Kelemahan utama dari metode ini adalah mudahnya pendeteksian, terutama jika ada blok – blok data yang sama dan dienkripsi dengan kunci yang sama maka akan menghasilkan cipherteks yang sama pula. Hal inilah yang menyebabkan mengapa disebut Electronic Code Book,karena seolah kita dapat mengetahui dan membuat sebuah kamus atau ensiklopedi dari plainteks dan cipherteks dengan kunci yang sama.
2. Cipher Block Chaining
Cipher Block Chaining Scheme
Untuk
mengatasi kekurangan yang dimiliki oleh ECB, maka dibentuklah metode Cipher
Block Chaining Ini. Pada dasarnya, konsep enkripsinya sama dengan ECB, namun
ada perbedaan disini, bahwa plaintext yang akan dienkripsi, terlebih dahulu
dilakukan XOR dengan ciphertext fase sebelumnya. Untuk fase pertama
digunakanlah Initialization Vector sebagai nilai awal, yang kemudian di XOR
dengan blok plaintext yang selanjutnya dilakukan enkripsi dengan kunci yang
telah disepakati. Selanjutnya, blok ciphertext yang dihasilkan, selain
dikeluarkan melalui output, blok ciphertext tersebut dilakukan XOR lagi dengan
blok plaintext yang selanjutnya.
Pada
metode dekripsi, yang dilakukan terlebih dahulu adalah mendekripsi blok
ciphertext yang kemudian dilakukan XOR dengan ciphertext sebelumnya, dimana
untuk fase awal digunakan Initialization Vector yang sama dengan pada saat
enkripsi. Selanjutnya, blok ciphertext ini diXOR dengan blok ciphertext
selanjutnya setelah dilakukan proses dekripsi.
3. Pengetesan Algoritma RSA dan Block Cipher
Menggunakan Nama dan NIM
RSA :
4. Persamaan dan Perbedaan RSA da Block
Cipher
dari kedua algoritma tentu saja memiliki persamaan dan perbedaan jadi berikut adalah persamaan dan perbedaan dari kedua algoritma tersebut
Persamaan :
1)
Keduanya sama sama mengubah pesan kedalam kode ASCII
2) Keduanya
merupakan Algoritma Kriptografi Asimetris
3) RSA dan
Block Cipher sebelum dilakukan enkripsi, plaintext yang ada dibagi bagi menjadi
blok-blok yang sama.
Perbedaan
:
1)
RSA memiliki 2 kunci yaitu public key dan private key, sedangka Block
Cipher hanya memiliki 1 kunci yaitu public key.
2) Keamanan
data atau pesan pada RSA lebih terjamin dibandingkan dengan Block Cipher
3) RSA
sangat sulit dalam enkripsi dan dekripsinya sedangkan Block Cipher mudah.
dari persamaan dan perbedaan di atas kita dapat mengetahui apa saja yang membedakan dan apa saja yang menjadikan kedua algoritma tersebut dapat dikatakan sama.
5. LINK BLOG
KELOMPOK ALGORITMA
KRIPTOGRAFI BLOCK CIPHER
Kelompok 7 :
6. SUMBER
C. KESIMPULAN
Berdasarkan hasil analisis dan perhitungan algoritma RSA dapat
disimpulkan bahwa:
• Keamanan algoritma RSA terletak pada tingkat kesulitan dalam
memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini r =
p × q.
• Semakin tinggi angka yang digunakan maka akan semakin sulit pula
pesan/sandi dapat ditebak oleh pihak ketiga.
• Untuk menjaga keamanan dari serangan maka dapat menggunakan atau
menerapkan Algoritma RSA ini dibandingkan dengan Block Cipher yang hanya
memiliki 1 key saja yang dapat diketahui banyak orang sehingga sangat mudah
untuk seseorang bisa masuk/diretas.
Komentar
Posting Komentar