NIM : 201731262
Mata Kuliah : Keamanan Sistem Komputer
Kelas : A
Nama Dosen : Desi Rose Hertina, S.T., M.Kom
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.
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.
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 : tidak terdapat syntax program pada blog kelompok Kriptografi
Block Cipher, sehingga tidak dapat di lakukan pengecekan.
4. Persamaan dan Perbedaan RSA da
Block Cipher
Persamaan :
1
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
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.