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.