• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
22
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Pengertian File Teks

File teks merupakan suatu file yang berisi informasi – informasi dalam bentuk teks. Data yang berasal dari dokumen pengolahan kata, angka yang digunakan dalam perhitungan, nama dan alamat dalam basis data merupakan contoh yang termasuk dalam masukan data teks yang terdiri dari karakter, angka dan tanda baca.

Input dan output data teks dipresentasikan sebagai set karakter atau sistem kode yang dikenal oleh sistem komputer. Ada tiga jenis set karakter umum yang dapat digunakan untuk input dan output pada komputer, yaitu ASCII, EBCDIC, dan Unicode. ASCII (American Code for Information Interchange) adalah suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode, tetapi ASCII bersifat universal. Kode ASCII 8 bit memiliki komposisi bilangan biner yang dimulai dari 00000000 sehingga 11111111. Total kombinasi yang dihasilkan adalah 256, dimulai dari kode 0 hingga 255 yang terdapat dalam sistem bilangan desimal. EBCDIC (Extended Binary Codec Decimal Interchange Code) merupakan salah satu set karakter yang diciptakan oleh komputer merk IBM. EBCDIC terdiri dari 256 karakter yang masing – masing karakternya berukuran 8 bit. Adanya keterbatasan pada kode ASCII dan EBCDIC, maka dibuat standar kode internasional baru yang merupakan kode 16 bit yang disebut Unicode. Unicodemerupakan suatu standar industri yang dirancang untuk mengizinkan teks dan simbol dari semua tulisan di dunia agar dapat ditampilkan dan dimanipulasi secara konsisten oleh komputer (Sudewa, 2003).

2.1.1 Format Teks

(2)

1. Teks sederhana (plain text)

Pada teks sederhana ini, jenis format yang sering digunakan adalah format data teks (*.txt).

2. Teks terformat (formatted text)

Merupakan teks terformat dan mengandung styles. Format data dokumen Microsoft Word (*.docx) merupakan contoh format teks jenis.

Contoh format data teks diatas beserta perangkat lunak yang biasa digunakan diantaranya adalah:

1. Format data teks (*.txt)

Format data teks adalah format teks yang dapat digunakan untuk menyimpan huruf, angka, karakter kontrol atau simbol – simbol lain.Format ini biasa digunakan dalam tulisan seperti titik, koma, tanda petik dan sebagainya. Berbeda dengan jenis teks terformat yang satu huruf tersebut seperti font, ukuran, tebal atau tidak dan sebagainya. Kelebihan format data teks ini adalah ukuran datanya yang kecil, yangdikarenakan tiadanya fitur untuk memformat tampilan teks. Saat ini perangkat lunak yang paling banyak digunakan untuk memanipulasi format data ini adalah Notepad.

2. Format data dokumen (*.docx)

Doc merupakan ekstensi arsip dokumen perangkat lunak Microsoft Word yang paling banyak digunakan dalam menulis laporan, makalah dan sebagainya. Docx merupakan jenis teks terformat yang tidak hanya dapat mengatur tampilan teks seperti styles (font, ukuran huruf dan sebagainya), namun juga dapat menyisipkan gambar.

3. Hyper Text Markup Language (*.htm atau *.html)

Merupakan format teks standard untuk tampilan dokumen web. 4. Rich Text Format (*.rtf)

Format teks ini dikembangkan oleh Microsoft yang dapat dibaca oleh berbagai macam platform, seperti Windows, Linux, Mac OS dan sebagainya.

2.1.2 Tipe teks

Tipe teks merupakan tipe dasar yang sudah sangat dikenal dalam kehidupan sehari – hari. Tipe teks terdiri dari tipe karakter (char) dan tipe string. Tipe karakter (char)

(3)

terdiri atas satu huruf, angka, tanda baca, atau karakter khusus seperti “a”, “1”, “*” dan sebagainya. Tipe string terdiri atas nol atau lebih karakter seperti “algoritma”, “teks” dan sebagainya.

2.2 Kriptografi

2.2.1 Pengertian Kripografi

Kriptografi berasal dari bahasa yunani yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain. Dalam perkembangannya, kriptografi juga digunakan untuk mengidentifikasi pengiriman pesan dan tanda tangan digital dan keaslian pesan dengan sidik jari digital (Ariyus, 2005).

Di dalam kriptografi sering ditemukan berbagai istilah yang penting untuk diketahui yaitu (Munir, 2006):

1. Pesan, Plainteks dan cipherteks

Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks. Pesan dapat berupa data atau informasi yang dikirim atau dapat disimpan didalam media perekam. Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra, suara / bunyi, dan video. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks. Cipherteks harusdapat ditransformasikan kembali menjadi plainteks semula agar pesan yang diterima bisa dibaca.

2. Pengirim dan Penerima

Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Pengiriman tentu menginginkan pesan dapat dikirim secara aman, yaitu pengirim yakin bahwa

(4)

pihak lain tidak dapat membaca isipesan yang dikirim. Solusinya adalah dengan cara menyandikan pesan menjadi cipherteks.

3. Enkripsi dan Dekripsi

Proses menyandikan plainteks menjadi cipherteks disebut enkripsi atau enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks dinamakan dekripsi atau deciphering.

4. Cipher dan Kunci

Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen – elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen – elemen antara kedua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan Cipherteks, maka fungsi enkripsi E memetakan P ke C,

E(P) = C

Dan fungsi dekripsi D memetakan C ke P, D(C) = P

Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka kesamaan berikut harus benar

D(E(P)) = P

Kriptografi mengatasi masalah diatas dengan menggunakan kunci. Dalam hal ini algoritma tidak lagi dirahasiakan tetapi kunci harus dijaga kerahasiaannya. Kunci adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau sederetan bilangan. Dengan menggunakan kunci k, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai: Ek(P) = C dan Dk

Dan kedua fungsi ini memenuhi (C) = P Dk (Ek Keterangan: (P)) = P P = Plainteks C = Cipherteks

(5)

K = Kunci Ek

D

= Proses Enkripsi

k

Gambar 2.1 adalah skema enkripsi dan dekripsi dengan menggunakan kunci. = Proses Dekripsi

Gambar 2.1 Skema enkripsi dan dekripsi menggunakan kunci

5. Sistem Kriptografi

Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin dan kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen saja.

6. Penyadap

Penyadap adalah orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak – banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks.

7. Kriptanalisis dan Kriptologi

Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis adalah ilmu seni untuk

memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelaku kriptanalisis disebut kriptanalis. Kriptologi adalah studi mengenai kriptografi dan kriptanalis. Pelaku kriptologi disebut kriptografer.

2.2.2 Sejarah kriptografi

Kriptografi mempunyai sejarah yang panjang. Informasi yang lengkap mengenai sejarah kriptografi dapat ditemukan di dalam buku David Khan yang berjudul The

(6)

Codebreakers. Secara historis ada empat kelompok yang berkontribusi terhadap perkembangan kriptografi yaitu kalangan militer, kalangan diplomatik, penulis buku harian, dan pecinta (lovers) (Munir, 2006).

Kriptografi sudah digunakan dan diperkenalkan oleh bangsa Mesir pada 4000 tahun yang lalu berupahieroglyph untuk mengirim pesan ke pasukan militer yang berada di lapangan. Sehingga, pesan tersebut tidak bisa terbaca oleh pihak musuh maupun kurir pembawa pesan tersebut tertangkap oleh musuh.Jenis tulisan ini bukanlah bentuk standar untuk menulis sebuah pesan. Hieroglyph diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus atau perkamen dibungkus dengan batang kayu. Sistem ini disebut Scytale (Ariyus, 2008).

Gambar 2.2Scytale

Scytale merupakan pita panjang dari daun papyrus ditambah sebatang silinder. Pesan ditulis horizontal (baris per baris). Bila pesan dilepaskan, maka huruf-huruf di dalamnya telah tersusun membentuk pesan rahasia. Untuk membaca pesan, penerima melilitkan kembali silinder yang diameternya sama dengan diameter silinder pengirim. Namun, pada tiga puluh tahun terakhir ini, kriptografi tidak hanya dimonopoli oleh pihak militer saja. Hal yang sama juga dilakukan oleh individu – individu yang menginginkan pesan dan komunikasi mereka tidak diketahui oleh pihak lain,dan setiap individu berhak mengamankan informasi keluarganya, pekerjaan, bisnis dan lain – lain. Apalagi zaman sekarang ini, persaingan yang begitu tingggi menyebabkan mereka rela mengeluarkan sekian dolar hanya untuk menjaga privasi mereka (Ariyus, 2005).

(7)

2.2.3 Tujuan Kriptografi

Dari paparan awal dapat dirangkumkan bahwa kriptografi bertujuan untuk memberi layanan keamanan sebagai berikut: (Munir, 2006)

1. Kerahasiaan (confidentiality)

Adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak – pihak yang tidak berhak. Di dalam kriptografi, layanan ini direalisasikan dengan menyandikan pesan menjadi cipherteks. Misalnya pesan “bahaya” disandikan menjadi “44220273490202729512027”. Istilah lain yang senada dengan confidentiality adalah secrecy dan privacy.

2. Integritas data (data integrity)

Adalah layanan yang menjamin bahwa pesan masih asli / utuh atau belum pernah dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan “Apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi) ?”

3. Otentikasi (authentication)

Adalah layanan yang berhubungan dengan identifikasi baik mengidentifikasi kebenaran pihak – pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. 4. Nirpenyangkalan (non - repudation)

Adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.

2.2.4 Serangan Terhadap Kriptografi

Serangan (attack) merupakan suatu usaha yang dilakukan oleh seorang kriptanalis untuk menemukan kunci atau plainteks dari chiperteks dari sistem kriptografi. Kriptanalis akan berusaha untuk menemukan plainteks dari chiperteks tanpa memiliki akses kunci yang digunakan dari sistem kriptografi. Berdasarkan teknik yang digunakan dalam menemukan kunci, serangan dibagi menjadi exhaustive atau brute force attack dan analytical attack (Fithria, 2007).

(8)

Exhaustive atau brute force attack merupakan serangan untuk mendapatkan plainteks dari chiperteks dengan mencoba satu persatu seluruh kombinasi atau kemungkinan kunci yang digunakan. Dalam hal ini kriptanalis harus tahu jenis algoritma kriptografi yang digunakan oleh pengirim pesan dan juga memiliki sejumlah plainteksdan chiperteksyang bersesuaian yang digunakan untuk mencari pola dari proses enkripsimaupun dekripsidari algoritma kriptografi yang digunakan.

Analytical attack merupakan serangan untuk mendapatkan plainteksdari chiperteksdengan menganalisa kelemahan algoritma kriptografi untuk mengurangi kemungkinan kunci yang tidak mungkin digunakan, sehingga kriptanalis tidak mencoba semua kemugkinan kunci. Dalam hal ini kriptanalis juga harus tahu jenis algoritma kriptografi yang digunakan oleh pengirim pesan. Analisis yang digunakan dengan menggunakan pendekatan matematik dan statistik untuk mendapatkan kunci yang digunakan dalam sistem kriptografi tersebut.

2.3 CSPRNG Berbasis RSA

Pembangkit bilangan acak yang dapat menghasilkan bilangan yang tidak dapat diperdiksi oleh pihak lawan yang cocok untuk kriptografi: pembangkit tersebut dinamakan cryptographically secure pseudorandom generator (CSPRNG). Perancanangan CSPRNG dapat dibagi kedalam beberapa kelompok. Dalam hal ini kita menggunakan perancangan CSPRNG berbasis teori bilangan. Contoh dua CSPRNG yang berdasarkan teori bilangan adalah Blum Blum Shut dan modifikasi RSA (Munir, 2006). Dalam penulisan CSPRNG yang digunakan adalah CSPRNG berbasis RSA. Algoritma pembangkit bilangan acak berbasis RSA adalah sebagai berikut:

1. Pilih 2 bilangan prima rahasia, p dan q, dan bilangan bulat e yang relatif prima dengan (p-1)(q-1).

2. Kalikan keduanya menjadi n = pq 3. Pilih bilangan acak lain, s, sebagai x0

4. Barisan bit acak dihasilkan dengan melakukan itersai berikut sepanjang yang diinginkan:

yang dalam hal ini 2 ≤ s ≤ n.

a. Hitung xi = xi - 1e mod n dengan x0

b. Z

= s.

(9)

5. Barisan bit acak adalah z1, z2, z3,....

Sebagai contoh, untuk menemukan bialangan acak berbasis RSA, yaitu:

Misal p = 11 dan q = 5 N = p.q = 11.5 =55 E(3, or) S = 3 X0 x = 3 i = xi - 1e = 33 x mod 55 = 27 2= 273 x mod 55 = 48 3= 483 x mod 55 =42 4= 423 karena x mod 55 = 3 4 = x1 z

berarti dilakukan pengulangan setelah 3 kali

i z mod 2 1 z = 27 mod 2 = 1 2 = z 48 mod 2 = 0 3 z = 3 mod 2 = 1 4 karena z = 27 mod 2 = 1 4 = z1

jadi baris acak yang dihasilkan

maka pengulangan dilakukan setelah 3 kali

1011 0110 1101 1011 0101 dan seterusnya, kemudian dikonversikan ke bilangan desimal

11 6 13 11 5

2.4 Algoritma Lehmann

Tes yang paling sederhana adalah menggunakan algoritma Lehmann. Cara kerja algoritma Lehmann adalah sebagai berikut :

{ Masukan: p (yang akan diuji keprimaannya)Keluaran: p adalah prima atau tidak prima }

(a) Bangkitkan bilangan acak a yang lebih kecil dari p. (b) Hitung a(p – 1)/2

(c) Jika a

mod p.

(10)

(d) Jika a(p – 1)/2≡ 1 atau –1 (mod p), maka peluang p bukan prima adalah 50%.

Ulangi pengujian dengan algoritma Lehmann di atas sebanyak t kali (dengan nilai a yang berbeda). Jika hasil perhitungan langkah (b) sama dengan 1 atau –1, tetapi tidak selalu sama dengan 1, maka peluang p adalah prima mempunyai kesalahan tidak lebih dari 1/2t. Pengujian menggunakan algoritma Lehmann dianjurkan diulangi sebanyak lima kali dengan nilai a yang berbeda. Jika hasil perhitungan langkah ke-dua sama dengan 1 atau (-1), maka peluang p adalah prima mempunyai kesalahan tidak lebih dari lima puluh persen. Bilangan acak yang digunakan pada algoritma Lehmann dapat dipilih nilai yang kecil agar perhitungan lebih cepat. Algoritma Lehmann menentukan keprimaan suatu bilangan dengan cara yang sangat sederhana dan masih sangat diragukan kevalidannya. Selain algoritma Lehmann, metode lain yang banyak digunakan adalah Rabin-Miller (Schneier, 1996).

2.5 Algoritma Kriptografi RSA

Algoritma kriptografi RSA ditemukan oleh tiga orang yang kemudian nama-nama mereka disingkat menjadi RSA. Ketiga penemu itu adalah Ron Riverst, Adi Shamir, dan Leonard Adleman. RSA dibuat di MIT pada tahun 1977 dan dipatenkan oleh MIT (Massachussets Institute of Technology) pada tahun 1983. Sejak 21 September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas (Brian, 2000). RSA merupakan algoritma yang mudah untuk diimplementasikan dan dimengerti.

Algoritma RSA adalah sebuah algoritma pada enkripsi kunci publik. RSA merupakan algoritma pertama yang cocok digunakan untuk digital signature karena kehandalannya dalam proses enkripsi. Hal ini menjadikan algoritma yang lebih banyak dikembangkan dalam bidang kriptografi public key.

2.5.1 Proses Algoritma RSA

Proses atau cara kerja dari algoritma RSA dapat dilihat sebagai berikut:

1. Menentukan dua bilangan prima p ≠ q secara acak dan terpisah untuk tiap-tiap p dan q. Bilangan prima tersebut diperoleh melalui uji proses prima yang

(11)

menggunakan metode CSPRNG berbasis RSA dan algoritma Lehman. Sifat dari kedua bilangan ini adalah rahasia. Ini berarti hanya pihak pengirim dan penerima saja yang mengetahuinya.

2. Melakukan perhitungan n = p*q. (n merupakan hasil perkalian dari p dikalikan dengan q)

3. Melakukan perhitungan nilai totient φ (n)= (p-1)(q-1).

4. Menentukan nilai kunci enkripsi e dengan syarat bahwa nilangan tersebut merupakan bilangan bulat (integer) 1 <e <φ(n) dimana nilai GCD (φ(n), e)=1. 5. Menghitung kunci enkripsi yang dilakukan dengan perhitungan kunci dekripsi

dengan rumus d ≡ e -1

6. Setelah mendapatkan kunci-kunci tersebut maka dapat dilakukan proses enkripsi maupun proses dekripsi.

mod φ(n).

7. Rumus untuk melakukan proses enkripsi adalah C = M e 8. Rumus untuk melakukan proses dekripsi adalah P = C

mod n

d

mod n

2.5.2 Contoh Kasus Algoritma RSA

Algoritma RSA disimulasikan dalam sebuah simulasi pengiriman pesan yang dilakukan antara Alice dan Bob. Alice mengizinkan Bob untuk mengirimkan sebuah pesan pribadi (private message). Dalam algoritma RSA multiple-key, Alice dan Bob akan melakukan langkah-langkah pada sebagai berikut :

1. Alice (penerima) dan Bob (pengirim) menyepakati dua buah bilangan prima sebagai kunci privat dari pesan yang akan dikirimkan. Misalkan kunci tersebut adalah bernilai p=11 dan q=7.

2. Setelah disepakati kedua bilangan prima tersebut kemudian digunakan untuk menghitung nilai totient dengan rumus n =p*q, sehingga didapat nilai:

n = (11)*(7)= 77

3. Langkah selanjutnya adalah menghitung nilai totient dengan rumus ϕ(n) =(p– 1)(q-1), sehingga didapat nilai: (n) = (11-1)*(7-1))= 60.

Nilai n dan nilai totient akan digunakan dalam perhitungan nilai kunci enkripsi. 4. Dari nilai totient yang didapat, maka Bob dapat menghitung nilai kunci enkripsi

(12)

nilai e relatif prima dengan ϕ(n). Hal ini dapat dihitung dengan menghitung GCD (ϕ(n),e)=1. Dalam perhitungan didapati:

GCD (60, e) = 1 , 1<e<60 e = 19

Didapat nilai e yang memungkinkan dan disepakati oleh keduanya adalah e = 19. Dengan nilai kunci enkripsi ini makan selanjutnya dapat dilakukan proses enkripsi.

5. Kunci dekripsi juga langsung ditetapkan oleh kedua belah pihak dengan syarat rumusan d= e-1

d = e

mod ϕ (n). Dari nilai e yang didapat sebelumnya maka dapat dihitung nilai d dengan langkah sebagai berikut :

-1 d = 19 mod ϕ (n) -1 d = 19 mod 60

Kunci dekripsi digunakan untuk mengembalikan nilai ciphertext ke dalam bentuk plaintext.

6. Proses enkripsi merupakan proses dimana pesan yang sebelumnya berupa plaintext yang dikodekan menjadi ciphertext. Terlebih dahulu Bob akan membuat pesan rahasia berupa teks. Dalam kasus ini pesan yang akan digunakan adalah kode 100. Dari rumus perhitungan enkripsi C = me

Pesan yang akan dikirim M = 100

mod n, maka dapat dihitung kode ciphertext dari setiap pesan tersebut sebagai berikut:

Nilai dari setiap Plaintext P

1

C= M

= 100, maka nilai ciphertext dari setiap pesan dengan perhitungan : e = 100 mod n 19 C = 40 mod 60

7. Setelah mendapatkan semua kode ciphertext maka dapat dirangkai seluruh kode yang menghasilkan ciphertext sebesar 40. Pesan inilah yang akan dikirimkan kepada Alice, sehingga pihak lain tidak akan mengetahui makna pesan sebenarnya.

(13)

8. Alice dapat mendapatkan pesan sebenarnya dengan melakukan proses dekripsi. Dari rumus perhitungan dekripsi P = Cd

C = 40

mod n, maka dapat dihitung kode plaintext dari setiap chipertext tersebut sebagai berikut:

Nilai dari setiap Plaintext : P 1 = C d mod n = C 1 d = 40 mod n 19 P mod 60 1

Setelah mendapatkan semua plaintext terhitung maka dapat dirangkai seluruh kode dan menghasilkan plaintext adalah 40

= 40

9. Dari contoh didapat bahwa Alice dapat membuka kembali pesan yang sudah dienkripsi dengan melakukan proses dekripsi.

2.6 Perhitungan Matematis

Terdapat beberapa perhitungan matematis dalam proses pembangkitan kunci untuk menentukan nilai Totient n. Teori bilangan yang digunakan dalam melakukan proses penyandian yang digunakan adalahGreatest Common Divisor (GCD).

2.6.1. Bilangan Prima

Sifat pembagian pada bilangan bulat melahirkan konsep-konsep bilangan prima dan aritmetika modulo. Dan salah satu konsep bilangan bulat yang digunakan dalam penghitungan komputer adalah bilangan prima. Dengan ditemukannya bilangan prima, teori bilangan berkembang semakin jauh dan lebih mendalam. Banyak dalil dan sifat dikembangkan berdasarkan bilangan prima. Sebagian besar algoritma kunci-publik menggunakan bilangan prima sebagai salah satu nilai parameternya. Bilangan prima yang disarankan berkuran besar sehingga penggunaan tipe data bilangan bulat yang besar mutlak diperlukan.

2.6.2Greatest Common Divisor (GCD)

Pembagi bersama terbesar atau disingkat PBB (Greatest Common Divisor atau GCD) digunakan dalam rancangan algoritma Pohlig-Hellman pada saat penentuan kunci

(14)

tambahan (multiple-key). Kunci tambahan bersyarat harus merupakan anggota dari bilangan ganjil yang mana GCD antara bilangan ganjil tersebut dengan nilai totient yang didapat harus bernilai 1. Dalam notasi dapat dituliskan 𝐾𝐾𝑒𝑒∈𝑂𝑂𝑑𝑑𝑑𝑑, Ke∈𝐺𝐺𝐶𝐶𝐷𝐷(𝐾𝐾𝑒𝑒,𝜃𝜃)=1.

Greatest Common Divisor atau GCD dari bilangan suatu xdan yadalah bilangan bulat terbesar d sedemikian sehingga d | xdan d | y. Dalam hal ini kita nyatakan bahwa GCD (x,y) = d. Misalkan dalam menentukan GCD (5,2) = 1. Didapati bahwa nilai x adalah 5 dan nilai y adalah 2.

2.6.3 Fungsi Totient Eulerφ

Fungsi Totient eulerφ atau biasa disebut dengan fungsi euler digunakan pada algoritma RSA dalam mendefinisikan φ(n) untuk n ≥ 1 yang menyatakan jumlah bilangan bulat positif <n yang relatif prima dengan n (Munir, 2006). Dua bilangan bulat x dan y dikatakan relatif prima jika gcd(x,y) = 1 (pembagi bersama terbesar dari x dan y adalah 1).

Jika n = pq (p dan q bilangan prima)

maka φ(n)= φ(p) φ(q)= (p-1)(q-1)

Sebagai contoh:

φ(15) = φ(3) φ(5) = 2x4 = 8 buah bilangan bulat yang relatif prima terhadap 15, yaitu 1,2,4,7,8,11,13,14.

2.6.4 Proses Pembangkitan Kunci

Proses pembangkitan kunci pada algoritma RSA dilakukan dengan tahapan – tahapan sebagai berikut:

1. Nilai p dan q yang diperoleh dari perhitungan bilangan acak CSPRNG berbasis RSA dan telah melalui proses uji prima dengan algoritma Lehmann. Sifat dari kedua bilangan ini adalah rahasia. Ini berarti hanya pihak pengirim dan penerima saja yang mengetahuinya. Misalnya:

Nilai p = 11, q = 13

(15)

3. Hitung φ(n) = (p-1)(q-1), sehingga nilai φ(n) = (11-1)(13-1) adalah 120 4. Pembangkitan kunci ekripsi e dimana e relatif prima terhadap φ(n).

Nilai GCD(φ(n), e) harus bernilai 1. Untuk menentukan nilai kunci publik (e) yang relatif prima terhadap φ(n) dapat ditunjukkan pada perhitungan dibawah ini.

Jadi, nilai dari kunci publik (e) yang diperoleh adalah 7.

5. Hitung kunci dekripsi (d) dengan menggunakan persamaan 𝑑𝑑 = 1+k .φ(n)

e

Nilai k dapat dihitung dengan mencoba nilai-nilai = 1,2,3,4...sehingga diperoleh nilai d bilangan bulat.

Nilai k Persamaan 𝑑𝑑 =1+k .φ(n)e Hasil 1 𝑑𝑑 =1 + 1 . 1207 17,2857142857 2 𝑑𝑑 =1 + 2 .1207 34,4205714286

Mulai dari Nilai GCD(120, e)

e = 2 120 mod 2 = 0 GCD(2, 120) = 2 e = 3 120 mod = 0 GCD(3, 120) = 3 e = 4 120 mod 4 = 0 GCD(4, 120) = 4 e = 5 120 mod 5 = 0 GCD(5, 120) = 5 e = 6 120 mod 6 = 0 GCD(6, 120) = 6 e = 7 120 mod 7 = 6 7 mod 6 = 1 6 mod 1 = 0 GCD(7, 120) = 1

(16)

3 𝑑𝑑 =1 + 3 . 120 7 51,5714285714 4 𝑑𝑑 =1 + 4 . 7207 68,7148571485 5 𝑑𝑑 =1 + 5 . 1207 85,8571428571 6 𝑑𝑑 =1 + 6. 1207 103

Jadi, nilai dari kunci dekripsi (d) yang diperoleh adalah 103

2.6.5 Proses Enkripsi Pesan

Dalam proses penyandian pesan menggunakan algoritma RSA dapat dianalogikan seperti pengiriman pesan yang dilakukan oleh si pengirim pesan kepada si penerima pesan. Jika si pengirim akan mengirimkan pesan, maka akan terjadi beberapa proses, yaitu:

1. Penentuan kunci enkripsi (e) dan modulus (n) dari pesan dengan terlebih dahulu melakukan proses pembangkitan kunci sehingga mendapatkan nilai e = 7 dan nilai n = 143.

2. Input plaintext yang akan disandikan. Contohnya: HELP!!! GlupGlup. Plaintext yang telah di- input akan diubah sesuai tabel ASCII di bawah ini:

Tabel 2.1 Tabel Konversi Karakter ke dalam Kode ASCII

Bilang an Karakter Bilang an Karakter Bilang an Karakter Bilang an Karakter

000 NUL (Null char \0) 033 ! (exclamation mark) 066 B 099 c 001 SOH (Start of Header) 034 " (double quote) 067 C 100 d 002 STX (Start of Text) 035 # (number sign) 068 D 101 e 003 ETX (End of Text) 036 $ (dollar sign) 069 E 102 f

(17)

004 EOT (End of Transmission)

037 % (percent) 070 F 103 g

005 ENQ (Enquiry) 038 & (ampersand) 071 G 104 h 006 ACK (Acknowledgm ent) 039 ' (single quote) 072 H 105 i

007 BEL (Bell \a) 040 (

(left/opening parenthesis) 073 I 106 j 008 BS (Backspace \b) 041 ) (right/closing parenthesis) 074 J 107 k 009 HT (Horizontal Tab \t) 042 * (asterisk) 075 K 108 l 010 LF (Line Feed \n) 043 + (plus) 076 L 109 m 011 VT (Vertical Tab \v) 044 , (comma) 077 M 110 n 012 FF (Form Feed \f) 045 - (minus or dash) 078 N 111 o 013 CR (Carriage Return \r) 046 . (dot) 079 O 112 p 014 SO (Shift Out) 047 / (forward slash) 080 P 113 q 015 SI (Shift In) 048 0 081 Q 114 r 016 DLE (Data Link Escape) 049 1 082 R 115 s 017 DC1 (XON) (Device Control 1) 050 2 083 S 116 t 018 DC2 (Device Control 2) 051 3 084 T 117 u 019 DC3 (XOFF) (Device Control 3) 052 4 085 U 118 v 020 DC4 (Device Control 4) 053 5 086 V 119 w 021 NAK (Negative Acknowledgem ent) 054 6 087 W 120 x 022 SYN (Synchronous Idle) 055 7 088 X 121 y 023 ETB (End of Trans. Block) 056 8 089 Y 122 z 024 CAN (Cancel) 057 9 090 Z 123 { (left/openi ng brace) 025 EM (End of Medium) 058 : (colon) 091 [ (left/openi ng bracket) 124 | (vertical bar)

(18)

Dari tabel ASCII diperoleh hasil sebagai berikut. P1 =72 P2 =69 P3 =76 P4 =80 P5 =33 P6 P =33 7 =33 P8 =65 P9 =71 P10 =117 P11 =108 P12 P = 112 13 =71 P14 =117 P15 =108 P16 =112

3. Setiap hasil yang diperoleh akan dienkripsi menjadi blok Ci

C

dengan rumus

i = Pie mod n

Pada tahap ini pengirim memberikan kunci ke pada penerima yaitu e = 7 dan nilai n =143. Pengirim melakukan enkripsi setiap blok pesan sebagai berikut: 026 SUB (Substitute) 059 ; (semi-colon) 092 \ (back slash) 125 } (right/closi ng brace) 027 ESC (Escape) 060 < (less than) 093 ] (right/closi ng bracket) 126 ~ (tilde) 028 FS (File Separator) 061 = (equal sign) 094 ^ (caret/circ umflex) 127 DEL (delete) 029 GS (Group Separator) 062 > (greater than) 095 _ (underscor e) 030 RS (Request to Send) (Record Separator) 063 ? (questionmark ) 096 ` 031 US (Unit Separator) 064 @ (AT symbol) 097 a 032 SP (Space) 065 A 098 b

(19)

P Cipherteks i Ci = Pie mod n 72 19 69 108 76 54 80 141 33 110 33 110 33 110 65 65 71 124 108 4 117 39 112 18 71 124 108 4 117 39 112 18

4. Jadi, hasil dari enkripsi atau cipherteks yang akan dikirimkan ke penerima adalah 19-108-54-141-110-110-110-65-124-4-39-18-124-4-39-18.

2.6.6 Proses Dekripsi Pesan

Pada saat penerima menerima pesan berupa ciphertext, maka diperlukan proses dekripsi agar dapat memahami pesan yang dimaksud.

1. Setiap blok ciphertext didekripsi kembali menjadi blok Pi dengan rumus

Pi= Cid

Dekripsi dilakukan dengan menggunakan kunci d = 103, kemudian blok-blok ciphertextyang diterima didekripsikan sebagai berikut:

(20)

C Plaintext i Pi = Cid mod n 19 72 108 69 54 76 141 80 110 33 110 33 110 33 65 65 124 71 4 108 39 117 18 112 124 71 4 108 39 117 18 112

2. Semua hasil cipherteks yang diperoleh pada proses dekripsi akan diubah kembali menjadi plainteks dengan mencocokkan karakter yang ada pada tabel ASCII.

Bilangan Karakter Sesuai ASCII 72 H 69 E 76 L 80 P 33 ! 33 ! 33 ! 65 spasi 71 G 108 l

(21)

117 u 112 p 71 G 108 l 117 u 112 p

3. Jadi bentuk plainteks yang diperoleh adalah HELP!!! GlupGlup.

2.7 Visual Basic 6.0

Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Bahasa pemrograman Visual Basic, yang dikembangkan oleh Microsoft sejak tahun 1991, merupakan pengembangan dari pendahulunya yaitu bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction Code) yang dikembangkan pada era 1950-an. Visual Basic merupakan salah satu Development Tool yaitu alat bantu untuk membuat berbagai macam program komputer, khususnya yang menggunakan sistem operasi Windows. Visual Basic merupakan salah satu bahasa pemrograman komputer yang mendukung object (Object Oriented Programming = OOP).

Aplikasi adalah suatu unit perangkat lunak yang dibuat untuk melayani kebutuhan akan beberapa aktivitas. Aplikasi akan menggunakan sistem operasi (OS) komputer dan aplikasi lainnya yang mendukung Apl. Istilah ini mulai perlahan masuk ke dalam istilah Teknologi Informasi semenjak tahun 1993. Secara historis, aplikasi adalah software yang dikembangkan oleh sebuah perusahaan. Bahasa pemrograman Visual Basic 6.0 dapat digunakan untuk menyusun dan membuat program aplikasi pada sistem operasi windows. Program aplikasi dapat berupa program database, program grafis dan lain sebagainya. Didalam Visual Basic 6.0 terdapat komponen - komponen yang sangat membantu dalam pembuatan programaplikasi. Dalam pembuatan program aplikasi pada Visual Basic 6.0 dapat didukung oleh software seperti Microsoft Access, Microsoft Exel, Seagate Crystal Report, dan lain

(22)

sebagainya. Untuk dapat menyusun dan membuat suatu program aplikasi dari VB 6.0, tentunya harus mengetahui fasilitas – fasilitas yang disediakan agar proses penyusunan dan pembuatan program tersebut berjalan dengan baik.

2.8 Penelitian Terdahulu

Penelitian terdahulu yang berkaitan dengan perancangan aplikasi RSA dengan pengembangan algoritma Lehman dapat dilihat pada table 2.2

Tabel 2.2 Penelitian Terdahulu berkaitan dengan RSA dan algoritma Lehman

No Peneliti / Tahun Judul Keterangan

1 Kamal Mahmudi, 2010

Sifat Prima Terhadap Fungsionalitas Algoritma RSA

Melihat bagaimana algoritma RSA diturunkan, dapat disimpulkan pada dasarnya bilangan prima tidak mutlak harus digunakan, namun penggunaan bilangan prima jauh

sangat mempermudah pembangkitan kunci untuk

algoritma RSA. 2 Anand &Praven, 2012 Implementation of RSA Algorithm on FPGA Tujuanutama dariproyek iniadalah pengembangantinggikinerjaRSA . Montgomery mengimplementasikanRSAdeng anukuranumum

seperti1.024bit, 1.536bit, dan 2048bit. Hasilmenunjukkanbah wadesain yang tepat danantarmukaditerapkan dengan baik.

Gambar

Tabel 2.1 Tabel Konversi Karakter ke dalam Kode ASCII

Referensi

Dokumen terkait

Pada aplikasi ini yang akan dilakukan pertama oleh sistem adalah mencari bilangan acak dengan menggunakan CSPRNG berbasis RSA setelah mendapatkan bilangan acak, bialnagan

Algoritma metropolis ditunjukkan pada Persamaan (5), mengikuti kriteria yang dibahas sebelumnya dan biasanya digunakan dalam Simulated Annealing untuk melakukan

Kelemahan dari algoritma genetik yaitu dikarenakan semua komponen algoritma genetik bersifat random atau acak yang mengakibatkan solusi yang dihasilkan berbeda – beda

Kemudian untuk menghitung pangkat dua (kuadrat) dari bilangan dengan jumlah digit lebih dari dua digit, dapat dilakukan perhitungan bertingkat (nested computation)

Bima menghasilkan kunci RSA-nya dengan memilih dua bilangan prima: p = 11 dan q = 13. Dia memilih 7 untuk kunci publik RSA-nya dan menghitung kunci privat RSA-nya

Algoritma RSA disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya, namun hanya orang tertentu (si penerima

Berdasarkan kedua definisi diatas maka dapat kami simpulkan pengertian pada Sistem Informasi Manufaktur adalah suatu sistem berbasis komputeer yang bekerja dalam

Adapun pada bagian kedua dijelaskan mengenai bilangan acak, pembangkit bilangan acak semu dan berbagai algoritma yang sudah ada, pembangkit bilangan acak semua