perbedaan antara RSA,Diffie Mellman,Schnoor
UJIAN CE 4-A
RSA
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 mengamnkan dengan menggunakan kunci yang cukup panjang.
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 (Rivest—Shamir—Adleman).
Clifford
Cocks, seorang matematikawan Inggris yang
bekerja untuk GCHQ,
menjabarkan tentang sistem equivalen pada dokumen internal pada 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 U.S. Patent 4.405.829. Paten tersebut
berlaku hingga21 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.
Skema RSA sendiri
mengadopsi dari skema block cipher, dimana sebelum dilakukan enkripsi,
plainteks yang ada dibagi – bagi menjadi blok – blok dengan panjang yang sama,
dimana plainteks dan cipherteksnya berupa integer(bilangan bulat) antara 1
hingga n, dimana n berukuran biasanya sebesar 1024 bit, dan panjang bloknya
sendiri berukuran lebih kecil atau sama dengan log(n) +1 dengan basis 2. Fungsi
enkripsi dan dekripsinya dijabarkan dalam fungsi berikut :
C = Me mod n ( fungsi enkripsi )
M = Cd mod n (fungsi dekripsi)
C = Cipherteks
M = Message / Plainteks
e = kunci publik
d= kunci privat
n = modulo pembagi(akan
dijelaskan lebih lanjut )
Kedua pihak harus
mengetahui nilai e dan nilai n ini, dan salah satu pihak harus memilki d untuk
melakukan dekripsi terhadap hasil enkripsi dengan menggunakan public key e.
Penggunaan algoritma ini harus memenuhi kriteria berikut :
1. Memungkinkan untuk mencari nilai e, d, n sedemikian rupa
sehingga Med mod n = M untuk semua M < n.
2. Relatif mudah untuk menghitung nilai Me mod n dan Cd mod n untuk semua nilai M < n.
3. Tidak memungkinkan mencari nilai d jika diberikan nilai n dan e.
2. Relatif mudah untuk menghitung nilai Me mod n dan Cd mod n untuk semua nilai M < n.
3. Tidak memungkinkan mencari nilai d jika diberikan nilai n dan e.
Syarat nilai e dan d ini,
gcd(d,e)=1
sebelum memulai penggunaan
RSA ini, terlebih dahulu kita harus memiliki bahan – bahan dasar sebagai
berikut :
1. p, q = 2 bilangan prima
yang dirahasiakan
2. n, dari hasil p.q
3. e, dengan ketentuan gcd
(Φ(n), e) =1
4. d, e-1 (mod Φ(n))
Saya akan berikan satu
contoh :
1. Pilih 2 bilangan prima, misalnya p = 17 dan q = 11.
2. Hitung n = pq = 17 × 11 = 187.
3. Hitung Φ(n) = (p – 1)(q – 1) = 16 × 10 = 160.
4. Pilih nilai e sedemikian sehingga relatif prima terhadap Φ(n) = 160 dan kurang dari Φ(n); kita pilih e = 7.
5. Hitung d sedemikian sehingga de ≡ 1 (mod 160) dan d < 160.Nilai yang didapatkan d = 23,karena 23 × 7 = 161 = (1 × 160) + 1; d dapat dihitung dengan Extended Euclidean Algorithm.
2. Hitung n = pq = 17 × 11 = 187.
3. Hitung Φ(n) = (p – 1)(q – 1) = 16 × 10 = 160.
4. Pilih nilai e sedemikian sehingga relatif prima terhadap Φ(n) = 160 dan kurang dari Φ(n); kita pilih e = 7.
5. Hitung d sedemikian sehingga de ≡ 1 (mod 160) dan d < 160.Nilai yang didapatkan d = 23,karena 23 × 7 = 161 = (1 × 160) + 1; d dapat dihitung dengan Extended Euclidean Algorithm.
Nah, nilai e dan d inilah
yang kita sebut sebagai Public Key(e) dan Private Key(d). Pasangan Kunci
Publiknya ={7,187} dan Kunci Privatnya = {23, 187}
Sekarang kita aplikasikan dalam
proses enkripsi.
Misalnya kita punya M 88. Untuk proses enkripsi, kita akan
menghitung C = 887 mod
187.
= 887 mod
187.
=894,432 mod 187
=11
Nah, kita mendapatkan nilai
C =11.
Selanjutnya, nilai C ini
dikirimkan kepada penerima untuk didekripsi dengan kunci privat miliknya.
M = Cd mod
n
= 1123 mod
187
=79,720,245 mod187
= 88
Pengertian
1. Confidentiality
Confidentiality
Confidentiality merupakan aspek yang menjamin
kerahasiaan data atau informasi. Sistem yang digunakan untuk mengimplementasikan
e-procurement harus dapat menjamin kerahasiaan data yang dikirim, diterima dan
disimpan. Bocornya informasi dapat berakibat batalnya proses pengadaan.
Kerahasiaan ini dapat
diimplementasikan dengan berbagai cara, seperti misalnya menggunakan teknologi
kriptografi dengan melakukan proses enkripsi (penyandian, pengkodean) pada
transmisi data, pengolahan data (aplikasi dan database), dan penyimpanan data
(storage). Teknologi kriptografi dapat mempersulit pembacaan data tersebut bagi
pihak yang tidak berhak.
Seringkali perancang dan implementor
dari sistem informasi atau sistem transaksi elektronik lalai dalam menerapkan
pengamanan. Umumnya pengamanan ini baru diperhatikan pada tahap akhir saja
sehingga pengamanan lebih sulit diintegrasikan dengan sistem yang ada.
Penambahan pada tahap akhir ini menyebabkan sistem menjadi tambal sulam. Akibat
lain dari hal ini adalah adanya biaya yang lebih mahal daripada jika pengamanan
sudah dipikirkan dan diimplementasikan sejak awal.Akses terhadap informasi juga
harus dilakukan dengan melalui mekanisme otorisasi (authorization) yang
ketat. Tingkat keamanan dari mekanisme otorisasi bergantung kepada tingkat
kerahasiaan data yang diinginkan.
2. Integrity
Integrity
Integrity merupakan aspek yang menjamin bahwa data tidak boleh berubah tanpa ijin pihak yang berwenang (authorized). Untuk aplikasi e-procurement, aspek integrity ini sangat penting. Data yang telah dikirimkan tidak dapat diubah oleh pihak yang berwenang. Pelanggaran terhadap hal ini akan berakibat tidak berfungsinya sistem e-procurement.Secara teknis ada banyak cara untuk menjamin aspek integrity ini, seperi misalnya dengan menggunakan messange authentication code, hash function, digital signature.
Integrity merupakan aspek yang menjamin bahwa data tidak boleh berubah tanpa ijin pihak yang berwenang (authorized). Untuk aplikasi e-procurement, aspek integrity ini sangat penting. Data yang telah dikirimkan tidak dapat diubah oleh pihak yang berwenang. Pelanggaran terhadap hal ini akan berakibat tidak berfungsinya sistem e-procurement.Secara teknis ada banyak cara untuk menjamin aspek integrity ini, seperi misalnya dengan menggunakan messange authentication code, hash function, digital signature.
3. Authentication
Authentication
Authentication adalah suatu proses untuk melakukan validasi terhadap user credentials, yang ditujukan untuk menentukan apakah seorang user diperkenankan untuk mengakses jaringan atau computing resources. Bentuk authentication yang paling sering kita hadapi adalah saat kita diharuskan untuk memasukkanuser name dan password. Kedua data tersebut kemudian dievaluasi untuk menentukan apakah Anda adalah user yang sudah dikenal oleh sistem atau bukan–verifikasi identitas. Proses authenticationbisa lebih diperkuat dari sekedar menggunakan user name danpassword sederhana, dengan teknik-teknik yang beragam mulai dari penggunaan one-way hashes sampai smart cards yang menggunakan teknik-teknik strong encryption.
Authentication adalah suatu proses untuk melakukan validasi terhadap user credentials, yang ditujukan untuk menentukan apakah seorang user diperkenankan untuk mengakses jaringan atau computing resources. Bentuk authentication yang paling sering kita hadapi adalah saat kita diharuskan untuk memasukkanuser name dan password. Kedua data tersebut kemudian dievaluasi untuk menentukan apakah Anda adalah user yang sudah dikenal oleh sistem atau bukan–verifikasi identitas. Proses authenticationbisa lebih diperkuat dari sekedar menggunakan user name danpassword sederhana, dengan teknik-teknik yang beragam mulai dari penggunaan one-way hashes sampai smart cards yang menggunakan teknik-teknik strong encryption.
4. Enkripsi
DÍ
bidang kriptografi, enkripsi adalah
proses mengamankan suatu informasi dengan membuat informasi tersebut
tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah
digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki
kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di
pertengahan tahun 1970-an,
enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika
Serikat pada domain
publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce,
jaringan Telepon
bergerak dan ATMpada bank.
Enkripsi dapat digunakan untuk tujuan
keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang
aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message
Authentication Code (MAC)
atau digital signature.
Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.
- Kelebihan dari Enkripsi
- Kerahasiaan suatu informasi terjamin
- Menyediakan autentikasi dan perlindungan integritas pada algoritmachecksum/hash
- Menanggulangi penyadapan telepon dan email
- Untuk digital signature
- Kekurangan dari Enkripsi
- Penyandian rencana teroris
- Penyembunyian record kriminal oleh seorang penjahat
- Pesan tidak bisa dibaca bila penerima pesan lupa atau kehilangan kunci
5. Dekripsi
Deskripsi dalam dunia keamanan komputer merupakan proses
untuk mengubah chiperteks menjadi plainteks atau pesan asli jadi Deskripsi merupakan
kebalikan dari Enkripsi upaya pengolahan data menjadi sesuatu yang dapat
diutarakan secara jelas dan tepat dengan tujuan agar dapat dimengerti oleh
orang yang tidak langsung mengalaminya sendiri.
6. Public Key
dan Private Key
Proses Pembuatan Kunci (Private dan Public Keys)
Alghoritma RSA
melibatkan dua kunci yaitu Private Key dan Public Key. Dimana Public Key dapat
secara aman diketahui oleh semua pihak untuk digunakan sebagai kunci untuk
melakukan enkripsi, sedangkan Private Key harus selalu di simpan secara rahasia
untuk melakukan Dekripsi (Decrypt) data yang telah di enkripsi dengan
menggunakan Public Key.
Data yang telah di
enkripsi oleh Public Key hanya dapat di dekripsi oleh Private Key, hal ini lah
yang membuat data yang dienkripsi dengan alghoritma RSA aman walaupun
Alghoritma RSA-nya diketahui selama Private Key nya tidak diketahui oleh pihak
lain.
Pembuatan Private dan Public key terdiri
dari 5 tahap, diantaranya:
a. Cari 2 Bilangan Prima secara acak dan simpan dalam variabel p dan q, dengan
catatan jumlah bit untuk bilangan ini sama. Nilai p harus lebih besar dari
q dan direkomendasikan minimal untuk menggunakan bilangan di atas 128bit/2 =
64bit bila akan membuat kunci dengan bit-length sebesar 128bit ( min
64bit hex = 0x8000000000000000; min 64bit desimal=9223372036854775808 ).
b. Hitung n = p*q;
Dimana nilai n ini akan digunakan untuk
modulus pada private dan public key.
c. Hitung pq = (p-1) * (q-1);
Untuk digunakan sebagai pencarian nilai
private key.
d. Pilih nilai e untuk public key dengan syarat (1< e < pq) dan
(gcd(e,pq)=1);
Nilai e ini biasanya merupakan nilai yang relatif kecil, yang paling seringvdigunakan adalah 0x10001 = 65537. Bila kriteria e tidak cocok dengan syarat di atas, maka harus dicari nilai e lain yang sesuai, atau bila e sudah ditentukan dengan 0x10001, maka yang harus dicari kembali adalah nilai p, q, n dan pq seperti pada tahap awal.
Nilai e ini biasanya merupakan nilai yang relatif kecil, yang paling seringvdigunakan adalah 0x10001 = 65537. Bila kriteria e tidak cocok dengan syarat di atas, maka harus dicari nilai e lain yang sesuai, atau bila e sudah ditentukan dengan 0x10001, maka yang harus dicari kembali adalah nilai p, q, n dan pq seperti pada tahap awal.
e. Pilih nilai d, dengan syarat nilai d memenuhi: (d*e) mod pq = 1
Diffie
Hellman
Metode yang cukup cerdik
ditemukan oleh Diffie Hellman. Keamanan metode ini berasal dari permasalahan
perhitungan algoritma diskrit, dibandingkan dengan melakukan perhitungan
exponensial pada domain yang sama.
Aturan matematika yang pakai
dalam metode ini cukup sederhana. Pertama-tama, tentukan bilangan prima n dan g
dimana g adalah primitive mod n. nilai prima m tidak perlu rahasia . kedua
nilai ini haruslah sama pada pengirim dan penerima.
Algoritma pertukaran Key-nya
adalah
Dengan kesepakatan
A = Pengirim pertama
B = Penerima pertama
1. A memilih nilai integer x
yang cukup besar dan mengirim
X = gx mod n.
2. B memilih nilai random y yang
cukup besar dan mengirim
Y = gy mod n
3. A melakukan perhitungan
K = Yx mod n
4. B melakukan perhitungan
K’ = Xy mod n
Keduanyan nilai k dan k’ adalah
sama dan bersesuaian dengan nilai gxymod n . seorang yang dapat
melakukan penyadapan informasi yang dikirim hanya akan mengetahui nilai n, g, X
dan Y tetapi tidak mengetahui nilai k dan k’, kecuali penyadap dapat menghitung
nilai logaritma diskrit.
Pemilihan k dan g sangat
berpengaruh pada tingkat keamanan. Nilai (n-1)/2 haruslah bilangan prima dan
nilai n merupakan bilangan yang cukup besar.
2.6.3. Extended Diffie Hellman
Kelemahan yang dimiliki metode
Diffie Hellman adalah kita tidak dapat menentukan key yang akan ditransmisikan,
diperlukannya konfirmasi dari penerima untuk membentuk sebuah key. Permasalahan
ini diatasi oleh metode Extended Diffie Hellman. Dengan ketentuan seperti
Diffie Hellman, algoritma pertukaran key-nya adalah
1. A memilih nilai integer x yang
cukup besar dan mengirim
K = gx mod n.
1. B memilih nilai random y yang
cukup besar dan mengirim
Y = gy mod n
1. A melakukan perhitungan
X = Yx mod n
1. B melakukan perhitungan
= y-1
K’ = Xx mod n
Algoritma ini akan menghasilkan
k dan k’ yang bernilai sama.
Otentikasi (authentication) merupakan identifikasi yang dilakukan
oleh masing – masing pihak yang saling berkomunikasi, maksudnya
beberapa pihak yang berkomunikasi harus mengidentifikasi satu sama lainnya.
Informasi yang didapat oleh suatu pihak dari pihak lain harus diidentifikasi
untuk memastikan keaslian dari informasi yang diterima. Identifikasi terhadap
suatu informasi dapat berupa tanggal pembuatan informasi, isi informasi, waktu
kirim dan hal-hal lainnya yang berhubungan dengan informasi tersebut.
Otentikasi pesan memang berhasil melindungi kedua belah pihak yang saling
bertukar pesan dari pihak ketiga. Tetapi, otentikasi pesan tidak bisa mencegah
kemungkinan kedua belah pihak saling menyerang satu sama lain. Pada situasi
dimana tidak ada kepercayaan penuh antara pengirim dan penerima pesan,
diperlukan suatu mekanisme yang lebih daripada sekedar otentikasi. Solusi yang
paling menarik dari masalah ini adalah tanda tangan digital (digital
signature). Tanda tangan digital adalah suatu mekanisme otentikasi yang
memungkinkan pembuat pesan menambahkan sebuah kode yang bertindak sebagai tanda
tangannya. Tanda tangan tersebut menjamin integritas dan sumber dari sebuah
pesan.
Claus Schnorr’s authentication dan digital
signature scheme mengambil sekuritas dari permasalahan menghitung logaritma
diskrit. Skema ini menggunakan bilangan prima dan perpangkatan modulo dalam
proses pembentukan kuncinya. Skema ini dipatenkan di Amerika Serikat dan akan
berakhir pada tanggal 19 Pebruari 2008. Skema otentikasi dapat dimodifikasi
menjadi skema tanda tanda digital (digital signature scheme). Proses
pembentukan kunci privat dan publiknya sama seperti skema otentikasi, hanya
saja pada skema tanda tangan digital ditambahkan sebuah fungsi hash.
Tidak ada komentar:
Posting Komentar