Nama : Syafira Nur Amalia Arif
NIM : 201731266
Mata Kuliah : Keamanan Sistem Komputer
Nama Dosen : Desi Rose Hertina, S.T., M.Kom
Kelas : A
Keamanan Sistem Komputer Bidang Perdagangan
Menggunakan Algoritma Kriptografi RSA
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.
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.
Penerapan :
Pada algoritma RSA kami menerapkan keamanan pada saat
seseorang berusaha login, misalnya pada kasus diatas, seseorang yang berhasil
masuk atau login pada server Citilink karena keamanannya masih kurang. 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.
Nah dari kasus itu misalnya si A
login maka akan muncul username dan password beserta kunci pribadi itu. Sehingga
seseorang tidak akan bisa masuk dengan mudahnya ke akun citilink.
Contoh dengan username :
Contoh lain :
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.
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.
3. Pengetesan Algoritma RSA dan Block Cipher
Menggunakan Nama dan NIM
RSA :
Block Cipher :
HASIL ENKRIPSI :
HASIL DEKRIPSI :
4. Persamaan dan Perbedaan RSA da
Block Cipher
Persamaan :
- Keduanya sama sama mengubah pesan
kedalam kode ASCII
- Keduanya merupakan Algoritma
Kriptografi Asimetris
- RSA dan Block Cipher sebelum
dilakukan enkripsi, plaintext yang ada dibagi bagi menjadi blok-blok yang sama.
Perbedaan :
- RSA memiliki 2 kunci yaitu public
key dan private key, sedangka Block Cipher hanya memiliki 1 kunci yaitu public
key.
- Keamanan data atau pesan pada RSA
lebih terjamin dibandingkan dengan Block Cipher
- RSA sangat sulit dalam enkripsi dan
dekripsinya sedangkan Block Cipher mudah.
5.
LINK BLOG
KELOMPOK ALGORITMA KRIPTOGRAFI BLOCK CIPHER
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.