Keamanan Sistem Komputer
1. Hubungan keamanan Sistem Komputer dengan Algoritma RSA
sistem keamanan komputer adalah untuk menjaga sumer daya sistem agar tidak digunakan,modfikasi,interupsi, dan diganggu oleh orang lain. Keamanan bisa diindentifikasikan dalam masalah teknis,manajerial,legalitas, dan politis. agar keamanan sistem tetap terjaga di buatlah algoritma untuk mengamankan sistem tersebut salah satunya yaitu algoritma RSA dimana Algoritma RSA yaitu algoritma pada enkripsi public key yang dipercayakan untuk mengamankan dengan menggunakan kunci yang cukup panjang.
2. Algoritma RSA
Pengertian RSA di bidang kriptografi adalah sebuah algoritme pada enkripsi public key. RSA merupakan algoritme pertama yang cocok untukdigital 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 Algoritme 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.
Pembuatan Kunci
Semisal Alice berkeinginan untuk mengizinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure). Alice melakukan langkah-langkah berikut untuk membuat pasangan kunci public key dan private key:
1. Pilih dua bilangan prima p ≠ q secara acak dan terpisah untuk tiap-tiap p dan q. Hitung N = p q. N hasil perkalian dari p dikalikan dengan q.
2. Hitung φ = (p-1)(q-1).
3. Pilih bilangan bulat (integer) antara satu dan φ (1 < e < φ) yang juga merupakan koprima dari φ.
4. Hitung d hingga d e ≡ 1 (mod φ).
- bilangan prima dapat diuji probabilitasnya menggunakan Fermat's little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima, diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima. Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a, tetapi hal ini sangatlah langka.
- langkah 3 dan 4 dapat dihasilkan dengan algoritme extended Euclidean; lihat juga aritmetika modular.
- langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)/e menghasilkan bilangan bulat, kemudian menggunakan nilai dari d (mod (p-1)(q-1));
- langkah 2 PKCS#1 v2.1 menggunakan &lamda; = lcm(p-1, q-1) selain daripada φ = (p-1)(q-1)).
Pada public key terdiri atas:
- N, modulus yang digunakan.
- e, eksponen publik (sering juga disebut eksponen enkripsi).
Pada private key terdiri atas:
- N, modulus yang digunakan, digunakan pula pada public key.
- d, eksponen pribadi (sering juga disebut eksponen dekripsi), yang harus dijaga kerahasiaannya.
Biasanya, berbeda dari bentuk private key (termasuk parameter CRT):
- p dan q, bilangan prima dari pembangkitan kunci.
- d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1).
- (1/q) mod p (dikenal sebagai iqmp).
Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT). Dalam bentuk ini, seluruh bagian dari private key harus dijaga kerahasiaannya.
Alice mengirimkan public key kepada Bob, dan tetap merahasiakan private key yang digunakan. p dan q sangat sensitif dikarenakan merupakan faktorial dari N, dan membuat perhitungan dari d menghasilkan e. Jika p dan q tidak disimpan dalam bentuk CRT dari private key, maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci.
- Proses enkripsi pesan
Misalkan Bob ingin mengirim pesan m ke Alice. Bob mengubah m menjadi angka n < N, menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme.
Maka Bob memiliki n dan mengetahui N dan e, yang telah diumumkan oleh Alice. Bob kemudian menghitung ciphertext c yang terkait pada n:
c = n e mod N {\displaystyle c=n^{e}\mod {N}}
Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring. Bob kemudian mengirimkan c kepada Alice.
n = c d mod N {\displaystyle n=c^{d}\mod {N}}
Perhitungan di atas akan menghasilkan n, dengan begitu Alice dapat mengembalikan pesan semula
Prosedur dekripsi bekerja karena
Kemudian, dikarenakan ed ≡ 1 (mod p-1) dan ed ≡ 1 (mod q-1), hasil dari Fermat's little theorem.
n e d ≡ n ( mod p ) {\displaystyle n^{ed}\equiv n{\pmod {p}}}
dan
n e d ≡ n ( mod q ) {\displaystyle n^{ed}\equiv n{\pmod {q}}}
Dikarenakan p dan q merupakan bilangan prima yang berbeda, mengaplikasikan Chinese Remainder Theorem akan menghasilkan dua macam kongruen
serta
- flowchart dari algoritma RSA
3. Studi Kasus
Tokopedia, BukaLapak dan Sribu.com dibobol Hacker
Tokopedia, BukaLapak dan Sribu.com dibobol Hacker
Cara bobol Tokopedia dan Bukalapak juga sribu.com
Quote:
4. Sintaks dari Algoritma RSA
#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. Daftar Link blog kelompok 6 :
- Nuraini Kafita Walla
- Syafira Nur Amalia Arif
- Maulida Nabila Akbar
- Alvian Arif Gandari
- Reza Aulianda Putra
6. referensi
7. Kesimpulan
Berdasarkan
hasil analisis dan perhitungan algoritma RSA dapat disimpulkan bahwa:· Kemanan algoritma
RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima
menjadi factor primanya yang dalam hal ini r= p x q.
Komentar
Posting Komentar