disini

advertisement
BAB2
LANDASAN TEORI
2.1.
Teori Bilangan
Teori Bilangan (Number Theory) menurut Kenneth. H. Rosen (2000, p1)
adalah
cabang dari ilmu matematika
hubungan-hubungan dari
berbagai
yang mempelajari tentang sifat-sifat,
macam
bilangan.
bilangan alam (natural numbers) adalah kelompok
Kelompok
bilangan
bilangan­
terpenting yang
dipelajari di dalam Teori Bilangan dari berbagai macam kelompok bilangan yang
terdapat di dalam teori bilangan. Dari kelompok bilangan-bilangan alam tersebut
yang peranannya menonjol adalah bilangan prima, yang merupakan bilangan
alam yang lebih besar dari 1 dan pembagi positifuya hanyalah 1 dan bilangan itu
sendiri. Salah satu hasil dari Teori Bilangan menunjukkan bahwa perkalian dari
bilangan-bilangan prima dapat menghasilkan
yang disebut dengan Teorema
Fundamental dari Aritmatika. Perkembangan
Teori Bilangan ini sudah berlangsung
hingga
sekarang
ini dan
semua bilangan alam kecuali 1,
sejak beratus-ratus tahun yang lampau
rnenghasilkan
begitu
banyak
teori-teori
serta
pengernbangan terhadap Teori Bilangan ini.
Ilmu kriptografi juga rnerupakan salah satu bagian yang dari Teori
Bilangan di mana dalarn sistern kriptografi, pesan-pesan, data serta informasi
diwakili
oleh
nilai-nilai
bilangan
tertentu
dan
dalarn
rnernprosesnya
rnenggunakan operasi rnaternatika tmtuk rnentransforrnasikan nilai input rnenjadi
nilai output. Perkembangan Teori Bilangan modem semakin pesat ketika salah
10
seorang ahli matematika terbesar, yaitu Johann Carl Friedrich Gauss (17771855), menciptakan Teori Kongruensi (Theory
of Congruences). Pen&,ou:naan
teori kongruensi ini memberikan sumbangan banyak bagi perkembangan Teori
Bilangan modern dan banyak dipakai juga di d.alam ilmu
kriptografi untuk
melakukan perhitungan-perhitungan yang
besar.
kompleks dan
Beberapa
terminologi d.ari Teori Bilangan yang sering digunakan disini adalah:
2.1.1.
Pembagian (Division)
Sebuah bilangan a dapat dibagi oleh b dimana diperoleh sisa pembagian
yang merniliki nilai yang lebih kecil dari b, dinotasikan sebagai berikut:
a=qb+r
integer q dan r berturut-turut disebut sebagai hasil bagi dan sisa dari pembagian
a dan b. Contoh pembagian adalah sebagai berikut:
o
Misalkan a= 1, b = -7
maka diperoleh 1
o
2.1.2.
= 0 (-7) + 1
Misalkan a= 2034, b
=9
maka dipero1eh 2034
= 226
(9) + 0
Divisibilitas (Divisibility)
Teori Bilangan akan banyak berhubungan dengan bilangan-bilangan bu1at
(integers) dan akan terlihat salah satu sifat bilangan yang cukup penting yaitu
sifat divisibilitas.
11
Defmisi
Misalk:an a dan b adalah integer dengan a
terdapat suatu integer k di mana b
Contoh: 3 115
= ak dan
=t=
0 . Bilangan a membagi b jika
diberi notasi dengan
alb.
-15 160.
Proposisi tentang divisibilitas yang sering dipakai di dalam kriptografi adalah
sebagai berikut:
Proposisi
1. Untuk setiap a
=t=
0, a I 0, dan a I a, dan 1 I b untuk setiap b.
2. Jika a I b dan b I c, maka a I c.
3. Jika a I b dan a I c, maka a
2.1.3.
l ( sb + tc) untuk
semua integers dan t.
Bilangan Prima (Prime Number)
Menurut Kenneth. H. Rosen (2000, p66) bilangan prima adalah integer
yang lebih besar dari 1 dan pembagi positifnya hanyalah 1 dan dirinya sendiri.
Contoh bilangan prima adalah 2, 3, 5, 7, 11, 13, 17, .... Integer yang lebih
besar dari 1 dan bukan bilangan prima disebut bilangan komposit (composite
number). Seorang ahli matematika dari Yunani kuno, yaitu Euclid (325 SM265 SM), telah membuktikan bahwa bilangan prima yang ada di semesta ini
adalah tidak berhingga banyaknya.
Teori Bilangan Prima:
Misalkan 7Z(x) adalah banyaknya semua bilangan prin1a yang lebih kecil dari x.
Maka untuk sembarang bilangan real positif x berlaku,
12
Jr(x)_·_
X
lnx
yaitu rasio
;;x)
-71 untuk
x
-7 oo.
llnx
Contoh:
Untuk mencari estimasi jumlah bilangan prima yang merniliki 100 digit, maka
dihitung sebagai berikut:
Setiap integer positif memiliki suatu representasi unik dari hasil perkalian
bilangan prima berpangkat, contoh :
2.1.4.
Pembagi Persekutuan Terbesar (Greatest Common Divisor)
Menurut Kenneth. H. Rosen (2000, p80) pembagi persek"Utuan terbesar
adalah pembagi yang bukan merupakan 0 dan integer terbesar yang membagi
dua buah integer a dan b. Pembagi Persekutuan Terbesar dari integer a dan b
adalah integer positif terbesar yang membagi
(a,b)
Contoh : gcd (6, 4) = 2
gcd (5, 7)
= 1.
a dan b dan diberi notasi gcd
13
Untuk mencari gcd ada 2 cara yang umum digunakan:
l. Faktorkan a dan b atas bilangan-bilangan prima dan liliat faktomya yang
sama dan diambil yang memiliki pangkat terkecil
Contoh: 1728
= 26 · 32
gcd (1728, 135)
135
= 33 · 5
= 32 = 9
127008 = 25 . J. 7
2
3500
= 22 . 53 . 7
gcd (127008, 3500) = 2 2 . 7 = 28.
2. Jika a dan b adalah integer positif yang besar nilainya maka tidaklah
mudah
menggunakan cara
yang
pertama,
sehingga
akan
digunakan
Algoritma Pembagian (.4/goritma Euclid).
Algoritma Pembagian
Menggunakan Algoritma Pembagian akan diperoleh
a
=
b
=
0r
=
O r3 <r2
2
< r1
=
=
yang menghasilkan gcd (a, b)= rk.
Contoh:
Akan dicari gcd (1180, 482) dengan menggunakan Algoritma Pembagian
diatas
1180
=
2x482+216
14
482
=
2x216+50
216
=
4
50
=
3 X 16
16
=
8x2+0
X
50
+ 16
+2
yang menghasilkan gcd (1180, 482) = 2.
2.1.5.
Kongruensi ( Congruences )
Salah satu dasar yang penting dan berguna eli dalam Teori Bilangan
adalah Arimatika Modular atau Kongruensi. Teori kongruensi diperkenalkan
untuk pertama kali oleh ahli matematika German yang bernama Carl Friedrich
Gauss
(1777-1855) pada
hasil
karyanya
yang
berjudul "Disquisitiones
Arithmeticae". Menurut Wade Trappe (2002, p66) defmisi dari kongruensi
ditunjukkan sebagai berikut.
Defmisi
Diberikan integer a, b, n dengan n > 0. Maka a adalah kongruen dengan b
modulo n dinotasikan:
a
Contoh: 32
= 7 (mod 5)
= b (mod
hila n I (a-b)
n),
-12
= 37 (mod 7).
Proposisi-proposisi untuk kongruensi yang sering dipakai adalah sebagai
berikut:
Proposisi 1
Untuk integer a, b ,c, n dengan n > 0, berlaku:
1. a
= 0 (mod n) jika dan hanya jika n I a.
2. a= a (modn).
15
3. a
= b (mod n) jika dan
hanyajika b =a (mod n).
= c (mod n), maka a = c (mod n).
4. Jika a= b (mod n) dan b
Proposisi 2
Untuk integer a, b, c, d, n dengan n > 0
c
= d (mod n), maka
a +c
2.1.6.
dan
a - b
(mod n) dan
berlaku:
= b +d(modn), a- c = b -d (modn), ac = bd
(mod n)
Eksponensial Modulo (Modular Exponentiation)
Dalam
melakukan
perhitungan
Kriptografi akan banyak
ditemukan
bentuk
xa (modn)
Teori eksponensial modulo ini akan mempermudah perhitungan yang memiliki
bentuk seperti di atas.
Contoh:
Akan dihitung 2 1234 (mod 789), jikalau dhitung terlebih dahulu 2 1234
kemudian bam dilakukan mod 789, maka perhitungan menjadi tidak efisien
karena akan melibatkan integer yang sangat besar, walaupun pada akhimya
hasil yang akan diperoleh setelah di mod berupa 3 digit. Cara yang lebih efisien
adalah sebagai berikut (semua kongruensi dengan mod 789):
22
= 4 (mod 789)
24
= 42 = 16 (mod 789)
28
= 162 = 256
216
= 2562 = 49 (mod 789)
232
= 34 (mod 789)
( mod 789 )
16
2
64
= 367
(mod 789 )
2 128
= 559
(mod 789)
2
= 37 (mod 789)
2512
= 580 (mod 789
256
2
Karena 1234
1024
)
= 286 (mod 789)
= 1024 + 128 + 64 + 16 + 2, maka
2
= 286 · 559 · 367 · 49 · 4
789)
1234
=
akan didapatkan:
481 (mod
Dengan cara di atas maka tidak perlu dilakukan perhittm.gan yang lebih besar
dari 7882.
Cara atau metode tersebut bersifat umum, sehingga jika akan dihitung
ab
(mod n ), maka cukup dilakukan perhitungan 2 log
2
(b) perkalian dengan
mod n, dan tidak akan perlu ada perhitungan yang lebih besar dari n 2. Yang
berarti perhitungan eksponensial akan dapat diselesaikan dengan cepat dan
hemat memory komputer. Cara ini akan sangat berguna jika a, b, n berupa
integer dengan 100 digit, sebab jika dilak.llkan perhitungan ab terlebih dahulu
barn kemudian di mod n, maka tidak akan dapat ditampung oleh memori
komputer ( computer memory overflow). Bilangan ab merniliki lebih dari 10 100
digit, yang bahkan melebihi dari jumlah digit partikel yang ada di semesta ini.
Namun perhitungan dengan eksponensial modular ini dapat dicapai k.llfllng dari
700 langkah dengan metode di atas.
17
2.1.7.
Teorema Fermat (Fermat's Littk Theorem) dan Teorema Euler (Euler's
Theorem)
Kedua teorema Fermat dan teorema Euler merupakan suatu teorema yang
memiliki nilai aplikasi yang penting di dalam kriptografi.
Fermat's Little Theorem
Jika p adalah bilangan prima dan p tidak membagi a, maka
c?1 = 1 (modp)
Sebelum membahas teorema Euler
maka
akan
dijelaskan terlebih dahulu
Fungsi Phi-Euler (Euler's Phi-Function) yang akan digunakan pada teorema
Euler dibawah ini.
Fungsi Phi-Euler
Defrnisi
Untuk n1, ambil
<D(n) dimana nilai <D(n) adalah besamya integer positif
yang tidak melebihi n dan relatifprima terhadap n. Contoh fungsi Phi-Euler:
<D(6) = 2
<D(2) = 1
Mengingat gcd (a, b)
=
<D(30) = 8.
1 jika dan hanya jika a dan b prima relatif, maka
didapat:
•
<D(l) = 1
•
<D(3)
= 2,
karena ada 2 bilangan prima yang lebih kecil dari 3 dan relatif
prima terhadap 3, yaitu 1,2
• <D(30)
= 8,
karena ada 8 bilang prima yang lebih kecil dari 30 dan relatif
prima terhadap 30, yaitu 1,7,11,13,17,19,23,29
18
Euler's Theorem:
Jika n 2': 1 dan gcd ( a,n ) = 1 maka
a'P(n)
2.2.
=
1 (mod n)
Kriptografi (Cryptography)
Menurut David.M.Burton (2002, p144) kriptografi adalah suatu teknik
atau metode yang bertujuan untuk melindnngi informasi yang dikirimkan melalui
jaringan
komunikasi publik.
Menurut
Kenneth.
H.
Rosen
(2000,
p260)
kriptografi adalah bagian dari kriptologi (ilmu yang mempelajari tentang sistem
keamanan) yang berhubungan dengan desain dan implementasi dari sistem
rahasia. Menurut http://www.stallion.comlhtmllsupporthl ossarv.html pengertian
kriptografi adalah
sebuah proses yang berhubungan dengan
pengacakan teks
(baik teks biasa atau teks khusus) ke dalam ciphertext (sebuah proses yang
dinamakan enkripsi), dan dikembalikan kembali (sebuah proses yang dinamakan
dekripsi.
Kriptanalisis (Cryptanalysis) merupakan ilmu dan seni pembongkaran
data,
informasi,
kriptografi
atau
pesan.
Kriptologi
(Cryptology) adalah
dan kriptanalis. Fungsi-fimgsi yang mendasar
panduan
dari
dalam kriptografi
adalah enkripsi dan dekripsi. Enkripsi adalah suatu proses mengubah pesan asli
(plain text) menjadi suatu pesan dalam bahasa sandi (Ciphertext). Sedangkan
dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi pesan
asli kembali. Cryptanalyst adalah seorang pakar kriptografi yang mempelajari
atau mengamati suatu
ciphertext dan pada umunmya
bermaksud untuk
19
membongkar ciphertext tersebut. Berikut ini adalah hal-hal penting yang dicakup
dan sering dibahas di dalam merancang program aplikasi kriptografi ini.
2.2.1.
Kunci Simetris (Symetric Key)
Menurut Wade Trappe (2002, p4) pengertian k."UUlci simetris adalah
pasangan kunci kriptografi yang telah ditentukan terlebih dahulu bersama-sama
oleh pengirim dan penerima pesan. Suatu kunci rahasia (private key) yang akan
digunakan untuk
melakukan enkripsi dan dekripsi terhadap pesan, data,
ataupun informasi yang hendak disampaikan. Kunci rahasia yang dimiliki oleh
pengirim dan penerima memiliki suatu nilai yang sama, sehingga dikatakan
bersifat statis. Contoh algoritrna yang terkenal menggunakan kunci simetris
adalah DES
(Data Encryption Standard) dan
AES
(Advanced Encryption
Standard).
2 2.2.
Kunci Asimetris (fisymmetric Key)
Menurut Wade
Trappe
(2002, p4) Kunci Asimetris adalah pasangan
kllilci kriptografi yang salah satunya digunakan untuk proses enkripsi dan yang
satu lagi untuk dekripsi. Kunci
asimetris juga sering disebut sebagai Public
Key. Semua orang yang mendapatkan hmci publik dapat menggunakannya
untuk
mengenkripsikan suatu
pesan, sedangkan hanya satu orang saja yang
merniliki rahasia tertentu- dalam hal ini kunci pribadi (private key) - untuk
melak.llk:an pembongkaran terhadap sandi yang dikirim untuk:nya. Dalam hal
penggunaan kunci asimetris antara pernilik kunci tidak diperluk:an suatu nilai
k."UUlci yang sama atau yang disepakati terlebih dahulu. Contoh algoritma yang
20
terkenal menggunakan kunci asimetris adalah RSA (singkatan dari penemunya
Rivest, Sharnir, dan Adleman).
2.2.3.
Algoritma RSA (RSA 's Algorithm)
Algoritma RSA yang diciptakan oleh Ronald Rivest, Adi Shamir, dan
Leonard Adleman pada tahun 1977 merupakan salah satu algoritma kriptografi
yang sukses dan sangat baik: di mana algoritma ini berdasarkan pada
sistem
kriptografi yang men&,ounakan kunci publik: dengan fah. orisasi dari bilangan
integer dan modulo dalam nilai yang besar. Algoritma RSA dapat dijelaskan
sebagai berikut:
Penjelasan variabel-variabel yang digunakan:
A= pihak pertama (penerirna)
B
=
P
= kunci
rahasia prima 1
Q
= kunci
rahasia prima 2
E
= kunci
publik 1
N
= kunci
publik 2
D
= kunci
rahasia dekripsi
pihak kedua (pengirim)
M = pesan, data, atau informasi
C
= pesan,
data, atau informasi yang telah dienkripsi
Langkah-langkah dalam algoritma RSA:
1. A menentukan suatu nilai-nilai prima rahasia P dan Q lalu menghitung nilai
N=P·Q
21
2. A menentukan suatu nilai E dengan gcd (E, (P-1) (Q-1)) = 1
3. A menghitung nilai D denganDE= 1 (mod (P-1) (Q-1))
4. A membuat N danE sebagai kunci publik dan menyimpan nilai P, Q, dan D
sebagai kunci pribadi atau rahasia.
5. Jika M lebih besar dari N, maka M akan dipecah menjadi blok-blok yang
lebih kecil dari N.
6. B mengenkripsi M sebagai C = Jv.f (mod J.l) dan mengirimkan nilai C ke A.
7. A melakukan dekripsi dengan menghitung nilai .Nf
= cD (mod
N ).
Variabel P dan Q adalah pasangan k.Llilci prima rahasia yang ditentukan
oleh masing-masing pihak dan pada umumnya berupa bilangan prima yang
sangat besar.
Sedangkan
variabel
N
dan
E
yang
diperoleh dari hasil
perhitungan dengan variabel P dan Q, akan digunakan sebagai kunci pasangan
publik
yang
akan
disebarluaskan,
sehingga
ketika
pengirim
mengirimkan data atau informasi (yang dilambangkan dengan
hendak
variabel M),
pengirim akan menggunakan kunci publik penerima untuk melakukan enkripsi
data atau informasi tersebut. Variabel D adalah kunci rahasia masing-masing
pihak atau yang sering disebut sebagai kunci dekripsi, yang diperoleh dari
perhitungan dengan variabel E, P, dan Q. Dengan menggunakan variabel D
(kunci dekripsi) maka penerima dapat melakukan dekripsi data atau informasi
yang telah dienkripsi (yang dilambangkan dengan variabel C) menggunakan
kunci publik E dan N nya sendiri.
22
Tentukan nilai prima P dan Q danE= 1
Hitung N = P · Q
E=E+1
Hitung D, D ·E = 1 (mod ((P-1)(0-1))
End
Gambar 2.1. Flowchart algoritma perhitungan key RSA
23
Start
Ambil kunci publik E dan N penerima
Enkripsi C =
M= (mod N)
End
Gambar 2.2. Flowchart algoritma enkripsi RSA
Dekripsi M =
cV
(mod N)
End
Gambar 2.3. Flowchart algoritma dekripsi RSA
24
RSA seringkali disebut dengan RSA - n bit,. di mana n menunjukkan
jumlah digit kunci yang digunakan. Semakin tinggi bit RSA yang digunakan
maka akan semakin besar nilai kunci-k."l.lllci prima P dan
Q yang akan
digunakan dan akan semakin sulit untuk dipecahkan oleh pihak-pihak yang
tidak diinginkan atau hacker, karena pencarian nilai D, yang digunakan sebagai
kunci untuk dekripsi juga akan semakin sulit. Keamanan data pada RSA sangat
bergantung pada "faktor keija" ( Work Factor) yanmampu dilakukan oleh
komputer dalam menghitung hasil dari 2 bilangan prima yang sangat besar.
Misalkan digunakan kunci P
= 23
(2 byte= 16 bit) dan Q = 29 (2 byte= 16 bit),
maka metode RSA yang digunakan akan disebut RSA - 32 bit.
2.2.4.
Serangan pada RSA
Menurut David. M. Burton (2002, p 150) komputer tercepat saat ini
mampu melakukan test 200 digit angka prima dengan waktu kurang dari 20
detik (di mana waktu untuk menghitung bilangan non
prima atau composite
number tidak diperhitungkan). Diperkirakan algoritma fal1:orisasi tercepat saat
ini mampu melakukan sekitar 1.2 x 1023 operasi komputer untuk memecahkan
integer yang memiliki 200 digit menjadi bilangan-bilangan prima yang
memiliki 200 digit. Andaikan 1 operasi komputer membutuhkan wak.1:u 1 ns
(10-9 detik), maka waktu untuk melakukan fak.i:orisasi tersebut sekitar 3.8
X
106
tahun. Melihat waktu yang dibutuhkan untuk memecahkan sebuah hmci
rahasia prima RSA yang sedemikian lama maka dapat dijamin bahwa teknik
atau metode RSA masih sangat efektif dan efisien saat ini tmtuk mengamankan
data atau informasi. Namun yang menjadi suatu masalah adalah ketika hendak
25
memecahkan kunci RSA menggunakan suatu jaringan
komputer secara luas
secara bersama-sama dalam melakukan faktorisasi untuk mencari bilangan
prima tersebut, sehinggan mengurangi \val"tu dalam melak.-ukan faktorisasi.
Sehingga
satu-satunya teknik yang memungkinkan untuk dapat menyerang
RSA dan berhasil adalah teknik Bntte Force. Teknik brote force adalah suatu
teknik yang menggunakan cara seperti yang telah dijelaskan diatas, yakni
mencari
satu
per
satu
kunci-kunci prima
yang
cocok.
Sebab
teknik
penyerangan biasa tidak berhasil pada RSA, baik serangan linear maupun
serangan diferensial.
Menurut Wade Trape (2002, p3) serangan-serangan dasar pada suatu
cryptosystem dapat dikategorikan sebagai berikut:
•
Cipher Text Only Attack
Informasi yang diketahui
serangan
dilakukan dengan
oleh cryptanalyst
adalah ciphertext , dan
mengamati ciphertext (file hasil enkripsi)
untuk memperoleh kunci yang digunakan atau plaintext (file asli).
•
Known Plain Text Attack
Informasi yang diketahui oleh cryptanalyst adalah ciphertext dan plaintext
dari ciphertext yang bersangkutan. Bila kunci yang digunakan tidak segera
dirubah maka
cryptanalyst dapat mengetahui pesan, data, atau informasi
yang dikirim berikutnya.
26
•
Chosen Plain Text Attack
Informasi yang diperoleh oleh cryptanalyst adalah sebagian besar dari
plaintext dan ciphertext yang sesuai dengan keincainannya, sehingga dapat
digunakan untuk menentukan kunci yang digunakan. Serangan ini
dapat
dilakukan hila cryptanalyst berhasil mengakses peralatan enkripsi yang
digunakan dan mengenkripsi pesan sesuai keinginannya untuk memperoleh
ciphertext-nya .
•
Chosen Cipher Text Attack
Jenis serangan ini mengasumsikan cryptmwlyst
peralatan
dekripsi
berhasil
mengakses
yang digunakan. Kemudian cryptanalyst
mencoba
melakukan dekripsi terhadap beberapa kumpulan string yang terdiri dari
simbol-simbol tertentu
dan berusaha memecahkan kunci yang digunakan
dari hasil yang didapat.
2.2.5
Tanda Tangan Digital (Digital Signature)
Manusia selalu membubuhkan tanda tangan, stempel, atau apapun yang
dapat menunjukkan bahwa dokumen tersebut adalah asli atau sah dari pihak
yang mengirimkan. Misalkan di dalam transaksi menggunakan kartu kredit,
maka slip pembayaran akan dibubuhi tanda tangan pemegang kartu tersebut.
Hal yang sama dilakukan pada dokumen elektronik dengan menandatangani
secara digital pada dokumen elektronik tersebut sebagai tanda kepemilikan
27
atau keabsahan dari pemilik dokumen tersebut. Pembubuhan tanda tangan
digital pada suatu dokumen elektronik disertakan langsung pada dok'l.llllen
tersebut, sehingga tidak dapat dipisahkan. Keabsahan tanda tangan digital yang
dibubuhkan pada
suatu
dokumen elek'tronik
dapat
diperiksa oleh pihak
penenma.
Jaminan bahwa suatu pesan, data, atau infonnasi adalah benar dan tidak
dirubah oleh pihak mana pun, adalah dengan pengecekan tanda tangan digital
pada pesan, data, atau informasi tersebut. Autentiflkasi ini dibutuhkan di dalam
E-Mail, £-Banking, dan transaksi elektronik lainnya. Penggunaan algoritma
kriptografl RSA dapat digunakan untuk membubuhkan tanda tangan digital
pada suatu pesan, data, ataupun informasi yang akan dienkripsi dan dikirimkan.
Penjelasan penggunaan dengan algoritrna RSA Digital Signatures sebagai
berikut:
.
f!l:
Penjelasan variabel-variabel yang digunakan:
A
= pihak
pertama (penerima)
-.,
--
\ PfllPUSTAKAAN
UNIVHlSITAS
B = pihak kedua (pengirim)
EA , NA = kunci publik A
EB, NB = kunci publik B
DA
= kunci
rahasia dekripsi A
DB = kunci rahasia dekripsi B
M = pesan, data, atau informasi
C = pesan, data, atau informasi yang telah dienkripsi
S = pesan, data, atau informasi yang telah dienkripsi dan ditandatangani
28
Langkah-langkah dalam algoritma RSA Digital Signatures:
1. B
hendak
mengirimkan
pesan
kepada
A,
maka
B
melak."llkan
S = M De (mod nB) untuk membubuh..l(an tanda tangan digital B.
2. B melakukan enkripsi,
C
= SE.. (mod n A)
kemudian
mengirimkan C
kepadaA
3. A melakukan dekripsi, S =CD_. (modnA).
4. A melakukan pengecekan tanda tangan digital dari B, dengan melak.'Ukan
M
= SEs (modnB).
Penandatanganan yang dilakukan oleh pihak pengirim pesan, data, atau
informasi adalah dengan cara melakukan perhitungan eksponensial modulo
dengan menggunakan kunci rahasia dekripsinya sendiri terhadap pesan, data,
atau informasi yang hendak dienkripsi. Hasil penandatanganan tersebut yang
kemudian dihitung menggunakan eksponensial modulo dengan kunci publik
dari pihak penerima. Barulah pesan, data, atau informasi yang telah dienkripsi
dan dibubuhkan tanda tangan tersebut dikirimkan ke pihak penerima. Pihak
penerima harus melakukan hal yang sama untuk dapat mendekripsi pesan, data,
atau
informasi
tersebut
dengan
menggunakan kunci rahasia
cara
dekripsinya
melakukan eksponensial modulo
sendiri bam
kemudian hasilnya
dilanjutkan dengan eksponensial modulo menggunakan kunci publik dari pihak
pengirim. Pesan, data, atau informasi yang diterima oleh penerirna, hanya dapat
dibuat
oleh
pengirim
saja
karena
hanya
pengirim
tersebut
yang
bisa
membubuhkan tanda tangan digitalnya dengan menggunakan kunci rahasia D
29
dari pengirim tersebut. Sehingga pengirim tidak bisa menyangkal bahwa isi
pesan, data, atau informasi tersebut memang berasal dari dia dan penerima bisa
yakin bahwa memang isi pesan, data, atau informasi memang berasal dari
pengirim tanpa ada perubahan apapun.
Start
Ambil kunci publik E 8 dan N8
Tanda tangan digital A,
S
= MD
8
(modnB)
End
Gambar 2.4. Flowchart algoritma Enkripsi RSA Digital Signature
30
Start
Ambil kunci publik EA dan NA
Cek Tanda tangan digitalA,
M
= SEn (mod n.B)
End
Gambar 2.5. Flowchart algoritma Dekripsi RSA Digital Signature
2.2.6
Pertukaran Kunci Publik (Public Key Exchange)
Sejak tahun
1970-an sebuah
konsep
baru
diperkenalkan
dan
dikembangkan, yaitu Public Key Cryptography. Pada Public Key Cryptograhy
ini 2 orang yang hendak berkomunikasi tidak perlu saling menentukan terlebih
dahulu key yang sama, melainkan masing-masing pihak memiliki sebuah
private key yang hanya pemegangnya yang mengetahuinya dan sebuah public
key yang diketahui setiap orang. Dengan menggunakan Public Key System ini,
maka seseorang dapat mengirimkan pesan atau
data dengan menggunakan
public key rnereka sehingga hanya orang tersebut yang dapat rnernbentuk ulang
pesan atau data tersebut kembali dengan menggunakan private key-nya.
31
Misalkan ada 2 pihak A dan B, A hendak mengirimkan pesan atau
dokumen rahasia ke B melalui suatu jaringan komputer. Maka sebelurnnya B
hams mengirimkan kunci publik-nya ke A agar A dapat melakllkan enkripsi
yang pesannya hanya dapat dibuka oleh B. Demikian juga sebaliknya A hams
mengirimkan kunci publik-nya kepada B agar B dapat memeriksa keaslian
tanda tangan A pada pesan yang dikirim. Dengan c.ara ini A dapat memastikan
pesannya sampai ke tujuan, sedangkan B dapat yakiD bahwa pengirimnya
adalah A. A dan B masing-masing bisa mendapatkan kunci publik lawan
bicaranya dari suatu pihak yang dipercaya, misalnya P. Setiap anggota jaringan
diasumsikan telah memiliki saluran komunikasi pribadi yang aman dengan P.
2.3.
Jaringan (Network)
Menurut Gary Govanus (1999) Network
adalah suatu hubungan fisik
yang terbentuk antara terminal dengan terminal untuk memungkinkan teljadinya
komunikasi data. Terminal-terminal tersebut terhubung melalui suatu hardware
yang disebut Ethernet Card yang terhubung menggunakan kabel RJ-45 untuk
mentransfer data. Suatu jaringan bersifat Server Client, di mana ada 1 terminal
yang menjadi pusat atau server yang bertugas mengatur komunikasi yang teljadi
antar terminal-terminal yang terhubung kepadanya. Dengan penggunaan jaringan
akan meningkatkan kinelja suatu perusahaan atau organisasi maupun pengguna,
karena memungkinkan berbagi informasi (sharing infomwtion) dan menghemat
perangkat-perangkat keras tertentu.
32
2.4.
STD (State Transition Diagram)
STD merupakan suatu
modelling
tool yang
menggambarkan sifat
ketergantungan pada waktu di sistem. Pada mulanya SID hanya digunakan
untuk menggambarkan suatu
sistem
yang
memiliki sifat real time, seperti
process control, telephone switching system, high speed data acquisition, dan
lain-lainnya. Pada SID terdapat 2 macam keija:
2.4.1
Pasif (Passi·ve)
Sistem ini melakukan kontrol terhadap lingk.llllgan, tetapi lebih bersifat
memberikan reaksi atau menerima data saja. Contoh: sistem yang bertugas hanya
mengumpulkan atau menerima data melalui sinyal yang dikirimkan.
2.4.2
Aktif (Active)
Sistem melakukan kontrol terhadap lingkungan
menerima data serta memberikan respon
secara ak.rtif dan dapat
terhadap lingk.lll1gan sesuai dengan
program yang telah ditentukan. Contoh: sistem komputer yang ditempatkan pada
suatu robot atau sistem yang digunakan pada proses kontrol.
Notasi:
1. State disimbolkan dengan segi empat dan berbentuk
State dipakai untuk mernpresentasikan status rnenunggu terhadap keadaan
yang akan terjadi
2. Transition State disirnbolkan dengan anak panah dan berbentuk
33
State adalah kumpulan keadaan atau atribut yang mencirikan seseorang
atau suatu benda pada waktu tertentu atau kondisi tertentu. Contoh: menung_gu
pengguna memberikan input, menunggu instruk:si beril.lltnya, dan lain-lainnya.
Kondisi (Condition) adalah suatu
kejadian (event) pada
lingkllllgan
eksternal yang dapat dideteksi oleh sistem. Contoh : sebuah sinyal, interupsi, dan
lain-lainnya. Hal ini akan
menyebabkan perubahan terhadap state dari
state
menunggu A ke state menunggu B atau memindahkan aktifitas A ke aktifitas B.
Aksi (Action) adalah dilakukan sistem bila teijadi pembahaan state atau
mempakan reaksi
terhadap kondisi. Aksi
akan
menghasilkan output
atau
tampilan display pada layar, menghasilkan hasil kallmlasi dan lainnya.
Kondisi
Aksi
Gambar 2.6. SID (State Transition Diagram)
2.5.
Interaksi Manusia dan Komputer
Dalam merancang suatu program atau sistem, hams diperhatikan satu hal
yang
sangat penting, yaitu
interaksi antara
pengguna dengan program atau
sistem. Interaksi ini hams user friendly, yang berarti mudah untuk digunakan
oleh pengguna yang awam sekalipun. Dalam merancang program atau
yang user friendly ada beberapa kriteria yang hams dipenuhi:
sistem
34
•
Waktu
belajar yang
singkat
sehingga pengguna yang
awam
dapat
menggunakan tanpa harus mempelajarinya dengan wal.-ru yang cuk.'llp lama.
•
Kecepatan penyajian data
atau infonnasi yang relatif cepat agar pengguna
tidak menunggu terlalu lama dan menjadi bosan.
•
Tingkat kesalahan yang dilakukan pengguna rendah.
•
Penghafalan sesudah melampaui jangka waktu tertentu, artinya seberapa jauh
pengetahuan pengguna setelah sekian lama yang berhubungan dengan
frekuensi pemakaian.
•
Kepuasan pribadi dari
pengguna terhadap berbagai aspek yang terdapat
dalam sistem tersebut..
2.6.
Penelitian Relevan
Penelitian yang relevan telah dilal.'llkan dan dapat mendukung dalam
perancangan program aplikasi kriptografi ini adalah sebagai berikut :
• An Algebraic Method For Public Key Cryptogrpahy, Iris Anshel, Michael
Anshel, dan Dorian Goldfeld, 1999
Dalam penelitian yang dilakukan oleh Iris Anshel, Michael Anshel,
dan Dorian Goldfield memiliki tujuan untuk merancang suatu metode aljabar
untuk mencari k-unci publik dari
kriptografi yang menggunakan kunci
asimetris. Penggunaan su..'ltu metode aljabar yang kompleks ini akan dapat
menghasilkan suatu protokol untuk membangun atau membuat su..'ltu kunci
rahasia.
35
Sedangkan dalam perancangan program aplikasi kriptografi RSA yang
dibuat pada penulisan skripsi ini, kunci rahasia prima yang akan dimasu.\kan
merupakan pilihan bebas dari pemakai atau user dan tidak menggunakan
suatu metode aljabar tertentu dalam membangun kll!lci tersebut.
• Proof Checking RSA Public Key Encryption Algorithm, Robert.S.Boyer dan
J.Sthrother Mooer, 1982.
Dalam penelitian yang dilakukan oleh Robert.S.Boyer dan J.Sthrother
Mooer
adalah untuk melakukan veri.tikasi pembuktian algortima enk:ripsi
kunci publik RSA dengan menggunakan beberapa lemma, dan salah satu teori
yang banyak digunakan adalahFennat's Theorem.
Sedangkan dalam perancangan program aplikasi kriptografi RSA yang
dibuat pada penulisan skripsi ini, tidak dilak'llkan verifikasi pembuk'iian
algoritma enkripsi dan dekripsi RSA.
Download