Djoko Nursanto
23202123
DAFTAR ISI
1. Gambaran Umum
1.1 Urgensi Sistem Keamanan .............................................................................
2. Kriptografi
2.1 Pengertian Dasar ...........................................................................................
12
15
16
17
4. Algoritma Montgomery
4.1 Pendahuluan .................................................................................................
17
18
19
21
27
1. Gambaran Umum
1.1 Urgensi Sistem Keamanan
Dalam dunia komunikasi data global yang selalu berubah, hubungan Internet yang
murah, dan cepatnya perkembangan software, keamanan menjadi isu yang semakin
penting. Keamanan saat ini menjadi suatu kebutuhan dasar karena komputasi global
tidak aman. Sebagai contoh, dengan berpindahnya data anda dari titik A ke titik B di
Internet, ia akan melalui beberapa titik lain selama perjalanan, membuka kesempatan
bagi pihak lain untuk memotong data,merubah data bahakan merubah tujuan data .
Beberapa fakta yang membuat sistem keamanan data menjadi penting adalah :
a.
b.
c.
jenis ini dikenal sebagai ``script kiddies''. Motivasi para cracker sangat beragam,
diantaranya adalah untuk propaganda ( deface web site / email ), kriminal murni,
penyerangan destruktif (akibat dendam atau ketidaksukaan terhadap suatu insitusi),
dan lain-lain. Apapun motif dari cracker selalu ada pihak yang dirugikan akibat
tindakannya.
Berbeda dengan Cracker, Hacker adalah entitas yang menemukan kelemahan
(vunerability) sistem dalam konteks security incidents. Seorang hacker bisa menjadi
seorang cracker, tetapi seorang cracker belum tentu menguasai kemampuan yang
dipunyai seorang hacker.
Motivasi para hacker untuk menemukan vunerability adalah untuk membuktikan
kemampuannya atau sebagai bagian dari kontrol sosial terhadap sistem.
Pada prakteknya suatu pembentukan sistem yang aman akan mencoba melindungi
adanya beberapa kemungkinan serangan yang dapat dilakukan pihak lain terhadap
kita antara lain :
Joyrider. Pada serangan ini disebabkan oleh orang yang merasa iseng dan ingin
memperoleh kesenangan dengan cara menyerang suatu sistem. Mereka masuk
ke sistem karena beranggapan bahwa mungkin data yang di dalamnya menarik.
Rata-rata mereka karena rasa ingin tahu, tapi ada juga yang menyebabkan
kerusakan atau kehilangan data.
Vandal. Jenis serangan ini bertujuan untuk merusak sistem. Seringkali ditujukan
untuk site-site besar.
tertarik pada situs-situs tertentu saja. Sebagian dari mereka tak begitu peduli
dengan data yang ada di dalamnya. Saat ini jenis ini lebih dikenal dengan istilah
script kiddies
Mata-mata. Jenis serangan ini bertujuan untuk memperoleh data atau informasi
rahasia dari pihak kompetitor. Saat ini semakin banyak perusahaan yang
memanfaatkan jasa ini.
Terdapat beberapa macam mata-mata, yaitu :
o
The Curious (Si Ingin Tahu) - tipe penyusup ini pada dasarnya tertarik
menemukan jenis sistem dan data yang anda miliki.
The Malicious (Si Perusak) - tipe penyusup ini berusaha untuk merusak
sistem, atau merubah web page anda, atau sebaliknya membuat waktu
dan uang anda kembali pulih.
The High-Profile Intruder (Si Profil Tinggi) - tipe penyusup ini berusaha
menggunakan sistem untuk memperoleh popularitas dan ketenaran. Dia
mungkin menggunakan sistem profil tinggi anda untuk mengiklankan
kemampuannya.
The Competition (Si Pesaing) - tipe penyusup ini tertarik pada data
dalam sistem.
2. Kriptografi
2.1 Pengertian Dasar
Suatu pesan yang tidak disandikan disebut sebagai plaintext ataupun dapat disebut
juga sebagai cleartext. Proses yang dilakukan untuk mengubah plaintext ke dalam
ciphertext
system
atau
cryptosystem
adalah
suatu
fasilitas
untuk
C2 =n.(n-1)
2
dengan n menyatakan banyaknya pengguna. Contoh dari sistem ini adalah Data
Encryption Standard (DES), Blowfish, IDEA.
2. Assymmetric Cryptosystem
Dalam assymmetric cryptosystem ini digunakan dua buah kunci. Satu kunci yang
disebut kunci publik (public key) dapat dipublikasikan, sedang kunci yang lain yang
disebut kunci privat (private key) harus dirahasiakan. Proses menggunakan sistem ini
dapat diterangkan secara sederhana sebagai berikut : bila A ingin mengirimkan
pesan kepada B, A dapat menyandikan pesannya dengan menggunakan kunci publik
B, dan bila B ingin membaca surat tersebut, ia perlu mendekripsikan surat itu dengan
kunci privatnya. Dengan demikian kedua belah pihak dapat menjamin asal surat
serta keaslian surat tersebut, karena adanya mekanisme ini. Contoh sistem ini antara
lain RSA Scheme dan Merkle-Hellman Scheme.
Setiap cryptosytem yang baik harus memiliki karakteristik sebagai berikut :
Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan
algoritma yang digunakan.
Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak dalam
seluruh tes statistik yang dilakukan terhadapnya.
Cryptosystem yang baik mampu menahan seluruh serangan yang telah dikenal
sebelumnya
suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai;
Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu :
setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu
mengenai protokol dan seluruh langkah yang akan dilaksanakan;
setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya;
Seseorang dapat mencoba berbagai cara untuk menyerang suatu protokol. Mereka
yang tidak terlibat dalam protokol dapat menyadap sebagian atau seluruh protokol.
Tindakan ini disebut penyerangan pasif, karena si penyerang tidak mempengaruhi
atau mengubah protokol, ia hanya mengamati protokol dan berusaha untuk
memperoleh informasi.
Selain itu, seorang penyerang dapat berusaha untuk mengubah protokol demi
keuntungannya sendiri. Ia dapat mengirimkan pesan dalam protokol, menghapus
pesan, atau bahkan mengubah informasi yang ada di dalam suatu komputer.
Tindakan-tindakan ini disebut sebagai penyerangan aktif, karena ia membutuhkan
suatu campur tangan aktif.
Seorang penyerang tidaklah hanya berasal dari lingkungan luar protokol, namun ia
mungkin juga berasal dari dalam protokol itu sendiri, ia dapat merupakan salah satu
pihak yang terlibat dalam protokol. Tipe penyerang semacam ini disebut sebagai
cheater. Passive cheater mengikuti protokol, tetapi berusaha memperoleh informasi
lebih banyak daripada yang diperbolehkan protokol bagi dirinya. Active cheater
mengubah protokol dalam usahanya untuk berbuat hal yang bersifat ilegal/curang.
Usaha untuk menjaga keamanan protokol akan semakin sulit apabila pihak-pihak
yang terlibat umumnya merupakan active cheater, oleh karena itu suatu protokol
yang baik harus mampu atau pun harus aman terhadap kemungkinan passive
cheating.
2.5 Berbagai macam basic cryptanalytic attacks
Tujuan cryptanalytic attack adalah untuk mengetahui beberapa plaintext yang sesuai
dengan ciphertext yang ada dan berusaha menentukan kunci yang memetakan satu
dengan yang lainnya. Plaintext ini dapat diketahui karena ia merupakan standar atau
karena pendugaan. Jika suatu teks diduga berada di dalam suatu pesan, posisinya
mungkin tidak diketahui, tetapi suatu pesan lazimnya cukup pendek sehingga
memungkinkan cryptanalyst menduga plaintext yang diketahui dalam setiap posisi
yang mungkin dan melakukan penyerangan pada setiap kasus secara paralel.
Suatu algoritma enkripsi yang kuat tidak hanya mampu bertahan terhadap serangan
plaintext yang dikenal tetapi juga mampu bertahan terhadap adaptive chosen
plaintext. Dalam penyerangan ini, cryptanalyst berkesempatan memilih plaintext yang
digunakan dan dapat melakukannya secara berulang kali, memilih plaintext untuk
tahap N+1 setelah menganalisis hasil tahap N.
Yang dimaksud cryptanalytic attacks adalah usaha-usaha yang dilakukan seseorang
untuk memperoleh informasi ataupun data yang telah dienkripsi. Secara ringkas
terdapat tujuh macam basic cryptanalytic attacks berdasarkan tingkat kesulitannya
bagi penyerang, dimulai dari yang paling sulit adalah :
hasil
enkripsi
sebelumnya.
Dalam
chosen-plaintext
attack,
cryptanalyst mungkin hanya dapat memiliki plaintext dalam suatu blok besar
untuk dienkripsi; dalam adaptive-chosen-plaintext attack ini ia dapat memilih blok
plaintext yang lebih kecil dan kemudian memilih yang lain berdasarkan hasil yang
pertama, proses ini dapat dilakukannya terus menerus hingga ia dapat
memperoleh seluruh informasi.
Chosen-key
attack.
Cryptanalyst
pada
tipe
penyerangan
ini
memiliki
Saat aplikasi menggunakan SSL, sebenarnya terjadi dua sesi, yakni sesi handshake
dan sesi pertukaran informasi. Berikut akan dijabarkan sebuah skenario yang aman
dari sesi handshake SSL :
1. Klien mengirimkan client hello yang harus dijawab dengan server hello. Tahap ini
terjadi kesepakatan atas penggunaan versi protokol, session ID, perangkat
kriptografi, metoda kompresi.
2. Pelayan kemudian dapat mengirim sertifikat kepada klien. Selain itu pelayan bisa
meminta klien untuk menunjukkan sertifikatnya namun tidak harus. Pelayan
lantas mengirimkan pesan server hello done, lalu menunggu jawaban dari klien.
3. Jika pelayan meminta sertifikat dengan pesan certificate request, maka klien
harus mengirimkan pesan certificate mesaage atau no certificate.
4. Pesan client key exchange kini dikirim, dimana pesan yang disandikan itu
tergantung dari algoritma kriptografi kunci publik yang disepakati pada tahap
pertama. Pesan itu berisi kunci-kunci yang dibuat secara acak oleh klien untuk
keperluan enkripsi dan perhitungan sidik jari (hash). Jika memungkinkan, dapat
pula disertai tanda tangan digital melalui pengiriman pesan certificate verify.
5. Lalu pesan change cipher spec dikirimkan oleh klien sambil mengaktifkan
spesifikasi cipher yang telah disepakati. Hal ini dilakukan dengan mengkopi
pending cipher spec ke current cipher spec. Segera setelah itu, klien
mengirimkan pesan finished guna mengakhiri handshake. Hal serupa dilakukan
pula oleh pelayan.
6. Akhirnya pelayan dan klien dapat bertukar pesan dengan menyandikannya
dengan kunci dan algoritma yang telah disepakati bersama pada level aplikasi.
Guna mencegah serangan yang dilakukan terhadap pesan yang disandikan, pelayan
dan klien dapat melakukan handshake beberapa kali pada session ID yang sama
guna mengubah kunci, namun mereka tidak perlu mengubah parameter komunikasi
yang telah disepakati sebelumnya.
Klien perlu memeriksa sertifikat yang diterimanya agar lebih yakin bahwa dia sedang
berkomunikasi dengan pelayan yang diinginkan. Klien memeriksa sertifikat digital itu
dengan membandingkan tanda tangan OS (otoritas sertifikat) pada sertifikat digital itu
dengan daftar OS yang dimiliki. Penyertaan serfikat digital OS utama pada browser
akan menghindarkan klien dari pemalsuan sertifikat OS utama.
10
SSL memanfaatkan teknologi kunci publik 40-bit dari RSA, yang ternyata dapat
dijebol dalam waktu 1,3 hari dengan 100 komputer menggunakan brute-force attack.
Ini tidak berarti teknologi SSL tidak bermanfaat. Tujuannya jelas, yakni agar biaya
yang dikeluarkan oleh pihak penyerang lebih besar dari pada harga informasi yang
dienkripsi melalui SSL, sehingga secara ekonomi tidak menguntungkan.
Sedangkan kunci enkripsi simetris yang dipergunakan adalah 128-bit (40-bit
dienkripsi dan 80-bit tidak dienkripsi saat kunci dipertukarkan). Dengan clear-text
attack, masih sangat sulit untuk memecahkannya.
Ada pula serangan yang berusaha menipu pelayan dengan merekam pembicaraan
antara klien dan pelayan sebelumnya. Dalam skenario SSL tanpa sertifikat klien, hal
ini dapat dicegah dengan penggunaan angka random yang dipertukarkan setiap
terjadi pertukaran pesan. ClientHello.random dan Serverhello.random dapat dibuat
dan dipertukarkan saat tahap pertama.
Contoh Permasalahan
11
Enkripsi Simetrik
Salah satu solusi untuk Alice dan Bob dalam kasus ini adalah tukar-menukar
data disertai suatu kunci digital, dimana keduanya telah sama-sama mengetahui
kunci rahasia tersebut. Alice menggunakan kunci ini untuk mengkodekan
pesan yang dia kirimkan, dan Bob merekonstruksi pesan tersebut kembali
dengan kunci yang sama. Pesan yang dienkrip (ciphertexts) tetap dapat diterima
Eve tetapi tidak dapat membacanya karena tidak mempunyai kunci yang sama
untuk mendekripsi kode pesan tersebut.
Algoritma RSA
Secara umum algoritma metode RSA ini adalah sebagai berikut :
Key Generation
Encryption
1.
C = Pe % n
2.
12
3.
4.
Decryption
5.
P = Cd % n
Key Generation
a. Dapatkan 2 bilangan prima, p dan q
Besar kecilnya bilangan prima ini menentukan tingkat keamanan
data, semakin besar bilangan semakin banyak faktorialnya yang
mengakibatkan semakin sulit data dapat dipecahkan dalam waktu
singkat, sebagai contoh :
P=7
Q=19
c.
13
Secret Key
n = 133
n = 133
E = 5
d = 65
2. Komunikasi
Enkripsi
Pesan dalam proses enkripsi harus merupakan suatu bilangan lebih
kecil dari nilai p dan q. Bagaimanapun, dalam posisi ini kita tidak
mengetahui p atau q, tapi dalam prakteknya suatu lower bound/nilai
yang lebih rendah pada p dan q harus dimunculkan. Contoh proses
ini, kita gunakan nilai "6".
C = Pe % n
= 65
% 133
= 7776 % 133
= 62
Dekripsi
Setelah proses enkripsi seperti di atas, maka dapat dilakukan proses
dekripsi dalam beberapa langkah sebagai berikut :
P = Cd % n
= 6265 % 133
= 62 * 6264 % 133
= 62 * (622)32 % 133
= 62 * 384432 % 133
14
= 62 * (3844 % 133)32
% 133
= 62 * 12032 % 133
Selanjutnya mengulangi urutan operasi yang mengurangi 62 65
sampai 12032 untuk mengurangi eksponen operasi tersebut hingga
menjadi 1.
= 62 * 3616 % 133
= 62 * 998 % 133
= 62 * 924 % 133
= 62 * 852
% 133
= 62 * 43 % 133
= 2666 % 133
= 6
Dengan melakukan langkah di atas, dapat dilihat bahwa pesan/data
telah sama dengan data asli sebelum enkripsi yaitu 6.
3.3 Implementasi RSA Menggunakan Java
Untuk implementasi dari teori di atas dapat digunakan kode java sebagai berikut :
import java.math.BigInteger;
import java.security.SecureRandom;
class Rsa
{
private BigInteger n, d, e;
public Rsa(int bitlen)
{
SecureRandom r = new SecureRandom();
BigInteger p = new BigInteger(bitlen / 2, 100, r);
BigInteger q = new BigInteger(bitlen / 2, 100, r);
n = p.multiply(q);
BigInteger m = (p.subtract(BigInteger.ONE))
.multiply(q.subtract(BigInteger.ONE));
e = new BigInteger("3");
while(m.gcd(e).intValue() > 1) e = e.add(new BigInteger("2"));
d = e.modInverse(m);
}
public BigInteger encrypt(BigInteger message)
{
return message.modPow(e, n);
}
public BigInteger decrypt(BigInteger message)
{
15
d. Secara pararel, Digital Signature yang diterima tadi langsung didekripsi oleh
public key. Hasil dekripsi tersebut tentunya akan memunculkan hashed data
16
yang serupa seperti hashed data sebelum dienkripsi oleh pengirim e-mail.
Hashed data disebut hashed data primer.
e. Proses selanjutnya adalah memperbandingkan hashed data primer dengan
hashed data sekunder. Jika saja saat diperjalanan ada hacker yang
mengubah atau menyadap isi e-mail, paka hashed data sekunder akan
berbeda dengan hashed data primer. Segera mekanisme Digital Signature
tersebut akan menyampaikan peringatan bahwa telah terjadi 'sesuatu' di
tengah jalan.
Setelah saluran data aman dengan menggunakan SSL, gembok terjamin dengan
menggunakan Public Key Cryptography dan validitas data terjaga dengan
menggunakan Digital Signature, tetapi terdapat satu masalah lagi. Siapakah
yang bisa kita percaya untuk menjamin kredibilitas ketiga faktor di atas (SSL,
Public Key Cryptography dan Digital Signature)? Untuk itulah maka fungsi
Certificate of Authority mengambil peranan.
3.5 Sertifikat
Sertificate of Authority (CA) adalah sebuah dokumen elektronis yang digunakan
untuk mengidentifikasikan individu, server, perusahaan atau entitas lainnya dan
mengasosiasikannya identitas tersebut dengan public key. CA digunakan oleh
Public Key Cryptography berkaitan dengan pertanyaan apakah data yang kita
diterima benar-benar ldari pengirim yang kita percaya dan apakah data yang
akan kita kirim akan benar-benar menuju ke penerima yang kita tuju. Masalah
kepercayaan dan kredibilitas ini memang sangat diperlukan oleh sebuah entitas
yang menjalankan suatu transaksi tertentu dengan pihak lain di Internet.
Jika sebuah entitas ingin menyelenggarakan sebuah transaksi di Internet,
semisal e-commerce atau e-banking, maka setelah infrastrukturnya telah siap,
dia tidak langsung beroperasi. Yang harus dilakukannya adalah mendaftarkan
dirinya, server-nya dan perusahaannya ke sebuah institusi resmi untuk
mendapatkan CA. CA tersebut dapat menjadi jaminan atas kredibilitas dan
realibilitas infrastruktur yang dimilikinya. Beberapa institusi internasional di
Internet
yang
menyediakan
layanan
CA
ini
adalah
VeriSign,
Inc
17
4.
Algoritma Montgomery
4.1
Pendahuluan
Montgomery multiplication sekarang ini digunakan sebagai inti algoritma berbasis
kriptosistem dalam aritmatik modular. Munculnya kelas baru pada pemecahan
masalah/attack (timing attack dan power attack), implementasi algoritma ini
menjadi lebih mudah dipelajari.
Selama ini IEEE menggunakan algoritma dari Colin D.Walker sebagai standar
kecepatan RSA, dimana ini dapat ditingkatkan dengan penambahan metode
perkalian montgomery. Selain RSA berbasis kriptosistem, eksponen modular
sering dihitung dengan montgomery multiplication. Beberapa implementasi
algoritma ini telah banyak diterapkan dalam hardware dan software dengan
tujuan utama untuk mempercepat proses enkripsi/dekripsi.
Timing attack dan power attack yang berbasis pada informasi sidechannel merupakan cara mengantisipasi kebocoran akibat divais
hardware.
adalah
algoritma
yang
18
nilai
p harus
memenuhi
Deskripsi
Perkalian montgomery adalah komponen dasar yang digunakan
untuk mengimplementasikan sebuah kotak klasik dan algoritma perkalian
yang menghitung sebuah eksponensial. Hasil perkalian montgomery.......
bukan .......................... tetapi ...................................... Agar hasil operasi
menjadi benar di akhir eksponensial, maka kita perlu membuat :
a.
Pre-multiplication . .................................
b.
Post-multiplication .. ............................
Asumsi :
19
Dan memenuhi :
Dihasilkan :
S < N , S = integer
Pada kasus S = N akan dihilangkan sebab ia harus memenuhi :
4.3.2
Shortcoming
Dengan A, B < 2N, t > 1 dan
output
dibatasi
hasil
: S < 2N selama
perkalian
ini
berlaku
tetapi setelah phase ini tak ada jaminan bahwa S dibatasi oleh 2N. Untuk
mengatasi hal ini dapat menggunakan 2 cara, yaitu :
1. pre-compute
2. menggunakan algoritma perkalian modular normal dan hitung
Akan tetapi inipun menimbulkan masalah kecil yaitu performa akan
tergangggu,
Bound Optimisation
Dengan batasan ( S < 2 N ) dimana
menimbulkan
ini
tidak
akan
dari
dan A < 2N
dimana
Jika kita mulai dari second iterasi terakhir akan didapat :
20
2.
Selanjutnya diperlukan
cycle
.
Sehingga dapat diperkirakan kebutuhan clock cycle untuk perkalian
montgomery sebagai berikut :
4.4.2
Perbandingan Kecepatan
Versi asli algoritma montgomery selalu membuat sebuah pengurang
setelah perkalian dan memilih untuk mengambil hasil pengurangan, jika
hasil tersebut lebih besar dari 0. Modifikasi waktu dapat menghindari
timing attack dengan menggunakan penjumlahan cycle waktu yang sama
sesaat sebelum hasil tersebut dibuang.
21
Timing attack
Algoritma RSA yang original sebelum melalui proses modifikasi apapun
sebenarnya telah memiliki
pembahasan
22
4.5.2
Power attack
Algoritma kecepatan RSA yang original, setelah melakukan pengurangan
akhir , sebuah instruksi kondisi menentukan hasil dimana pengurangan
akhir harus dibuang. Sebab hasil tadi dikembalikan oleh nilai bukan oleh
alamatnya, jika hasil tersebut terus disimpan , ini akan tercetak ulang
(copy). Untuk menghindari terjadinya cetak ulang tersebut sebuah loop
kosong mengsimulasikan waktu pengambilan oleh nilai copy-an tersebut.
Metoda ini dapat dideteksi dengan mudah dalam sebuah power attack.
Dalam versi baru, sebuah penguat keamanan telah dapat menghindari
power attack sebab tak ada instruksi kondisi yang eksis selama proses
montgomery tersebut.
data
tidak
lepas
dari
23
Contoh 2:
RSA crypto chip ( 200 MHZ)
RSA sign ( 1024 bit) 0.5 m
2000 sign./second ( CRT)
Sebagai gambaran awal, sistem CRT dapat digambarkan sebagai berikut :
Dua n/2-bit eksponensials mod P dan mod Q. sebagai ganti satu n-bit
eksponensial mod N ( N=P*Q).
Split n-bit multiplier hardware ke dalam dua n/2-bit pengali, melaksanakan n/2-bit
eksponensials paralel.
24
adalah
memugkinkan kita untuk membagi modulo eksponensial yang besar ke dalam dua
eksponensial yang jauh lebih kecil, satu di atas p dan satu di atas q. Dua modulo ini
adalah faktor utama n yang dikenali. Lebih lanjut
dengan penggunaan teoreme Fermat'S yang lebih Kecil. Metoda ini pertama
diusulkan oleh Quisquater dan Couvreur.
Definisi CRT: Suatu residu sisa suatu divisi dari suatu jumlah yang disebut suatu
modulus ( yaitu residu 5/7 adalah 2).
Definisi CRT: Suatu penyajian residu suatu jumlah x yang diset pada suatu bentuk
residu { r1, r2,, rk} berkenaan dengan modulo { m1, m2,, mk}.
Jika kita menggunakan penyajian residu { r1,r2,, rk} pada x, Teoreme Chinese
remainder membuat ia mungkin untuk menentukan | x| yang disajikan faktor umum
terbesar mengenai seluruh pembawa modulo 1 ( yaitu ( ri, rj)= 1, i!= j). modulo
dikenal sebagai memasangkan prime secara relatif (M. Shahkarami Dan G.A. Jullien,
2002, Universitas Calgary). Hal penting di sini adalah bahwa jika kita membagi
jumlah x ke dalam bentuk residunya, kita dapat melaksanakan operasi pada residu
itu bebas tiap satu dan lainnya. Sekali ketika menyelesaikan proses residu kita dapat
merekonstruksi jawaban akhir menggunakan CRT . Kita mengetahui bahwa residu x
adalah jauh lebih kecil dari x dirinya sendiri, oleh karena itu operasi individu akan
menjadi kompleksitas yang jauh lebih kecil.
Membagi operasi modulo adalah dua kalkulasi mandiri. Sebagai ganti dilakukannya
eksponensial ( mod n) kita membagi x ke dalam ( mod p) dan ( mod q). Karena
kedua-duanya p dan q adalah utama mereka mencukupi kebutuhan untuk
rekonstruksi yang menggunakan
25
Kita kemudian bisa menerapkan CRT untuk merekonstruksi pesan akhir dari Mp
dan Mq.
Single-radix conversion (SRC)
Implementasi CRT unutk memepercepat kriptografi RSA tidak hanya dengan
menbagi kode pesan menjadi dua tetapi juga dapat menggunakan satu langkah
konversi dinamakan SRC.Berikut adalah langkah-langkah untuk SRC berlaku pula
bagi RSA.
Langkah 1: membagi eksponensial kedalam bentuk ( mod p) dan ( mod q)
Mp = Ed (mod p)
Mq = Ed (mod q)
Langkah 2: kurangi kompleksitas dengan menerapkan Teoreme Fermat's kepada
eksponen, kita hanya harus menghitung:
Mp = Ed (mod p)
Mq = Ed (mod q)
Dimana :
d1 = d mod(p-1)
d2 = d mod(q-1)
Ukuran d1, dan d2 kini separuh d. Karena kompleksitas tumbuh bersifat exponen
terhadap d, ini menghasilkan tabungan data sangat besar.
Langkah 3: gunakan CRT untuk merekonstruksi pesan kita
M = Mp(q-1 mod p)q + Mq(p-1 mod q)p (mod n)
26
Mq = Ed (mod q)
Langkah 2: Rekonstruksi pesan menggunakan cara sebagai berikut :
M = Mp + [(Mq - Mp) (p-1 mod q) mod q] p
atau lebih familiar menggunakan :
M = Mq + [(Mp - Mq) (q-1 mod p) mod p] q
seperti kunci pribadi sintaksis PKCS#1 meliputi kebalikan yang diperlukan.
6. Contoh Implementasi Teorema Chinese Remainder (CRT) dan Montgomery
Multiplicattion untuk mempercepat deskripsi RSA
I. Pendahuluan
a. Latar Belakang
Kecepatan public key encription merupakan suatu kendala pada proses
pertukaran informasi rahasia antar dua proses yang membutuhkan kecepatan
tinggi seperti kebutuhan pada protokol secure socket layer (SSL), dimana satu
server melayani permintaan lebih dari satu client menggunakan public key
encription, sehingga secara keseluruhan akan menggunakan waktu proses yang
sangat besar dan memperlambat proses keseluruhan.
Salah satu metoda yang aman untuk mempercepat proses dekripsi RSA
adalah menggunakan Chinese Remainder Theorem. Sedangkan analisis untuk
operasi eksponensialnya menggunakan metoda montgomery.
b. Tujuan
c. Manfaat
Diperoleh suatu cara alternatif untuk menambah kecepatan enkripsi/dekripsi
RSA melalui implementasi hardware dan software yang tidak terlampau banyak
mengubah struktur komputer serta tidak mengabaikan keamanan datanya
II. Teori Penunjang
2.1 RSA
Metoda encript/decript ini dikembangkan oleh Rivest-Shamir-Adleman, dimana
algoritma yang digunakan adalah adanya public key 2 kunci yang berbeda untuk
27
encript dan decript. Keistimewaan metode ini terletak pada kesulitan untuk
memfaktorkan modulus n yang sangat besar, tetapi kelebihan ini mengakibatkan
lambatnya waktu untuk menyelesaikan proses.
2.2.1 Skema
RSA terdiri dari dua kunci, yaitu :
Privat key d, mempunyai karakteristik :
Dipublikasikan bebas
Dapat
berfungsi
sebagai
digital
signature
yang
1.
2.
3.
4.
2.1.2
Implementasi RSA
28
a. c :=1;
b. p :=m;
c.
29
(1) dan (3) dan (2) dan (4), M 1, dq, dan qinv adalah integer modulo p demikian
pula dengan
M2
a = b mod n jika dan hanya jika a dan b menghasilkan sisa yang sama
jika dibagi dengan n
2.
3.
4.
5.
2.4
Perkalian Multipresisi
Didefinikan
dan
adalah
integer
yang
dinyatakan
dalam
30
3. for j = 0 to s -1
3.1. (C,S)
3.2. wi+j
w i+j + x i+ yi + C
S
Perkalian Modular
Montgomery Multiplication
n adalah integer positif k bit dan r serta T adalah integer sedemikian rupa
sehingga r > n, gcd(n,r) = 1 dan 0 < T < n. Tr-1 mod n disebut
montgomery reduction dari T modulo n. Dengan representasi dari
residue class modulo n, algoritma ini menggantikan operasi pembagian
oleh pangkat dari 2. Anggap algoritma memerlukan r dan n relatif prima
yaitu gcd(n,r) = 1. Kemudian ditentukan bahwa r = 2k, maka syarat
gcd(n,r)= 1 dipenuhi jika n adalah ganjil.
Dalam aplikasi RSA criptosystem syarat ini dipenuhi, yaitu
modulus n adalah selalu ganjil. Anggap a dan c adalah integer yang
31
= cr
dan
-1
menggambarkan
algoritma
montgomery
diperlukan
2. m := t.n mod r
3. u = (t + m.n)/r
Karena r adalah
k
2
32
Formula
integer
multiplication.
Dan representasi biasa dari yaitu a :
a = r-1 mod n
a = 1r-1 mod n
Sehingga a dapat dihitung dengan fungsi :
a = monpro (,1)
Cara ini akan efisien pada saat menggunakan montgomery exponential,
karena
hanya
mengulang-ulang
fungsi
monpro()
sedangkan
Montgomery Exponentation
Output : a = Ce mod n
1.
2.
:= C.r mod n
:= 1.r mod n
4.
for i = k 1 downto 0
:= monpro(, )
if ei = 1 then := monpro(, )
5.
a := monpro(,1)
6.
33
______________________________________________________
III.
Software RSA
Menurut rekomendasi dokumen PKCS#1, secara umum perangkat lunak untuk
implementasi RSA meliputi :
Criptographic primitives
Skema enkripsi
Skema signature
Enkripsi
Menghasilkan representasi chipertext dari representasi pesan dibawah
kendali kunci publik. Berikut ini algoritma RSA encription primitive
(RSAEP) ((n,e),m)
Input
:
jika representasi pesan m tidak berada diantara 0 dan n
-1, representasi out of range dihasilkan pada output
2.
c = me mod n
3.
output c
Dekripsi
Representasi pesan dari representasi ciphertext dibawah kendali kunci
privat yang berkaitan. Berikut ini algoritma RSA decription primitive
(RSADP) ((n,d),c).
Input
34
:
1
M 1 = cdp mod p
output m
criptographic primitive
menspesifikasikan
Struktur Data
Skema enkripsi yang aman untuk saat ini adalah menggunakan modulus
n dengan ukuran 1024 bit. Arsitektur komputer 32 bit sekarang yang
mengguanakan kompiler dengan tipe data
metode
chinesse
remainder
(metode
2)
dari
metematika
yang
terlibat
dalam
operasi
35
Implementasi Program
beresiko
memberikan
menimbulkan
jaminan
akan
kesalahan.
keberhasilan
Input
dari
menginput
file
data
lebih
tanpa
1.
2.
3.
4.
2.
for i = h 2 downto 0
a. C = C, C mod n
b. If ei = 1 then C = C,M mod n
3.
return C
2.
= C.r mod n
3.
= 1.r mod n
36
4.
5.
a = monpro(,1)
6.
return a
Multiplication
menghitung
modular
multiplication
dalam
t := .
2.
m := t.n mod r
3.
u = (t + m.n)/r
4.
Algoritma
37
for i = 0 to s 1
2.
3.
for j = 0 to s -1
4.
i.
(C,S)
ii.
wi+j
wi+j + xjyi + C
S
wi+j + xjyi + C
memvisualisasikan
data
dependensi
ini
digunakan
data
wi-j + xjyi + C
dependency
graph
yang
digambarkan
pada
38
gambar
5.2
wi-j + xjyi + C.
Xs-1
x3
x2
x1
x0
Ys-1
y3
y2
y1
y0
__________________________________________________________
Ss-1
S3
S2
S1(x1y0)
S0(x0y0)
Ss
Ss-1
S3
S2
S1(x0y1)
39
Blok Arsitektur
S + a.b + C
Unit kontrol pipeline 4 bit xj dengan 32 bit yi. Dengan melakukan inner
loop sebanyak 128 kali, unit pipeline menghasilkan partial product 512
bit. Unit ini terdiri dari register file A 4 bit untuk menyimpan s word operan
xj, formasi linier 8 elemen pemroses, register geser 8 word 4 bit untuk
menyimpan operan yi. Digunakan 2 buah dual port RAM, satu untuk
menyimpan partial product yang kemudian akan ditambahkan ke unit
pipeline untuk melengkapkan operasi perkalian multi-presisi. Dual port
yang lain menyimpan s word operan Y dan menyimpan hasil perkalian.
Hasil perkalian disimpan ke memori ini pada saat dan cara yang sama
saat partial product
40
4.3.4
untuk
spesifikasi
dengan
bahasa
untuk lebih
deskripsi
VHDL
pemroses memproses operan yang dimilikinya, dan pada state 111 hasil
pemrosesan enam elemen pemroses pertama diberikan ke elemen
pemrosesan terakhir disimpan ke dalam dual port memori. Pada state ini
juga input sum dari dual port memori diberikan ke elemen pemroses
pertama. Periode clock berikutnya state berpindah ke state 110.
Cacahan pencacah ke-2 dan alamat input sum s dan output sum s
dinaikan pada state 110 ini. State 111 dilakukan sebanyak 8 kali dan
dideteksi oleh decision box (?3) yang kemudian state akan berpindah ke
state 010 yang menaikan alamat base input sum sebanyak 8 lokasi.
Kemudian state berpindah ke state 101 yang merupakan state yang
digunakan untuk mendapatkan penundaan satu periode clock. Seluruh
proses tersebut dari state 001 hingga state 101 dilakukan sebanyak 16
kali yang diatur oleh pencacah ke3 dan dideteksi oleh decision box (?
4).
41
4.4 Simulasi
Setiap modul seperti pada gambar 4.4 mempunyai file desain VHDL, dimana
modul-modul tersebut digunakan untuk membentuk modul-modul sistem yang
lebih besar dan akhirnya menjadi top level file desain. Implementasi perangkat
keras di tujukan dengan target chip FPGA dari keluarga FLEX 10K30E.
Tabel 4.1 sumber daya FLEX10K30E yang terpakai
Sumber daya
Logic cell
Embeded cell
EAB
terpakai
636
12
3
Tabel di atas memberikan gambaran jumlah sumber daya chip FPGA yang
digunakan. Jika multiplier 512 bit x 512 bit dirancanng secara paralel yang
berarti rangkaian kombinasional 1024 input, maka akan terdapat 2 1024 suku
sum of product untuk setiap bit output, dengan ada suku product (gerbang AND)
berinput sebanyak 1024 bit.
Simulasi dilakukan untuk mengalikan integer 512 x 512 bit dalam waktu 120 us
dengan perioda sinyal clock 25 ns atau frekuensi clock = 38.46 MHz atau jumlah
siklus clock yang diperlukan adalah sekitar 4616 siklus clock.
4.5 Analisis Performa Desain Hardware
Time complexity dari pencil-and-paper algorithm dinotasikan dengan 0(k 2) bit
operation
dimana
Membandingkan
k2
adalah
performa
problem
antara
satu
size
dari
algoritma
implementasi
dalam
algoritma
bit.
dengan
implementasi lain dengan algoritma yang sama tidak cukup dengan melihat
jumlah siklus clock yang diperlukan, sebab suatu algoritma yang sama dengan
implementasi yang berbeda sering mempunyai problem size yang berbeda.
Misalnya CPU 8086 dengan instruksi perkalian 8 bit x 8 bit dalam 70 siklus clock,
problem size adalah 64 bit, hendak dibandingkan dengan CPU 80C51 dengan
instruksi perkalian 16 bit x 16 bit dalam 12 siklus clock, problem size adalah
sama dengan 256 bit, dapat dikatakan bahwa implementasi algoritma perkalian
pada CPU 80C51 lebih baik daripada implementasi pada CPU 8086, namun kita
tidak mempunyai suatu angka yang menyatakan berapa kali lebih baik CPU
80C51 terhadap CPU 8086.
Untuk mengukur performa dari rancangan, Adnan membuat suatu mesin
hipotesis, komputer x, melakukan perkalian dengan metode pencil-and-paper
algorithm (O(k2) bit operations), bekerja dengan 1 siklus clock untuk
mengoperasikan 1 bit operan. Maka untuk mengalikan integer 8 bit , komputer ini
42
CC
IP = 262144
4616
= 56.79
Berikut tabel indeks performa dari beberapa CPU terhadap komputer x :
Tabel 4.2 Perbandingan indeks performa
CPU
8086
80C51
Rancangan
IP
0.91
21.3
56.79
CCref
82
16 2
512 2
Besaran indeks performa IP hanya mengestimasi suatu nilai eksak yang dapat
digunakan untuk membandingkan performa antara satu implementasi dengan
implementasi lain seperti halnya besarnya time complexity yang mengestimasi
waktu yang diperlukan untuk menyelesaikan algoritma. Dan untuk mendapatkan
perbandingan performa implementasi algoritma yang baik digunakan parameter
CCref yang sama. Sebab jika dimisalkan 80C51 (word size k = 16) digunakan
43
44
Dengan membandingkan persamaan 5.3 dan 5.5 untuk proses dekripsi dengan
kunci privat d, metode CRT mengurangi problem size dengan faktor pembagi
hampir 4.
6
Penutup
Dengan uraian-uaraian di atas maka dapat diambil beberapa kesimpulan, yaitu :
1.
2.
3.
tc = k 2( c 1)
Modifikasi model graph dari data dependency untuk algoritma
45
DAFTAR PUSTAKA
montgomery no final .. :
www.dice.ucl.ac.be/crypto/publications/ 2000/Montgomery.pdf