= 1 mod b Algoritma IDEA

Jadi 38 kongruen dengan 13 dalam modulus 5. Catatan: a ≡ b mod m dapat juga ditulis: a mod m = b ,dan a = b + km Dengan b = sisa, k = hasil bagi.

2.3.7. Inversi Modulo

Jika a dan b adalah relatif prima atau PBB a,b = 1; serta b 1, maka invers perkalian dari a mod b = dan dapat ditulis:

a. = 1 mod b

……9 dari defenisi relatif prima diketahui bahwa PBB a,b = 1 dan menurut persamaan 4 terdapat bilangan bulat p dan q sedemikian hingga: pa + qb = 1 yang mengimplikasikan bahwa: pa + qb = 1 mod b dan karena qb ≡ 0 mod b maka pa ≡ 1 mod b kekongruenan yang terakhir ini berarti bahwa p adalah invers perkalian dari a mod b Contoh: Invers dari 17 mod 7 adalah = …? Solusi: PBB 17,7 = 1, maka 17 dan 7 adalah relative prima, sehingga pasti memiliki invers. 17 = 7.2 + 3 → 3 = 17 – 7.2 7 = 3.2 + 1 → 1 = 7- 3.2 3 = 1.3 + 0 1 = 7 – 3.2 = 7 – 17 – 7.2.2 = 7 – 2.17 + 14.7 1 = 15.7 – 2.17 atau - 2.17 + 15.7 = 1 Universitas Sumatera Utara Sudah memenuhi bentuk: p.a + q.b = 1, dengan p = invers perkalian, jadi kita telah memperoleh invers perkalian dari 17 mod 7 yaitu: p = -2.

2.4. Algoritma IDEA

Kriptografi IDEA International Data Encryption Algorithm diperkenalkan pertama kali tahun 1991 oleh Xuejia Lai dan James L Massey. Algoritma ini dimaksudkan sebagai pengganti DES Data Encryption Standard. IDEA adalah revisi minor cipher yang lebih awal, yakni PES, dan pada awalnya disebut IPES Improved PES. IDEA didesain di bawah kontrak Hasler Foundation Al Bahr, Brian. 2007. Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut : 1. Proses enkripsi : e k 2. Proses dekripsi : d M = C k C = M Dimana : e = adalah fungsi enkripsi d = adalah fungsi dekripsi M = adalah pesan terbuka plainteks C = adalah pesan rahasia cipherteks K = adalah kunci enkripsi atau dekripsi Dalam melakukan enkripsi, algoritma IDEA memakai delapan putaran. Setiap putarannya digunakan enam kunci. Pesan dekripsi menggunakan blok penyandi yang sama dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari kunci enkripsi. Algoritma ini menggunakan operasi campuran dari tiga operasi aljabar yang berbeda, yaitu XOR, operasi penjumlahan modulo 2 16 dan operasi perkalian modulo 2 16 + 1 . Semua operasi ini digunakan dalam pengoperasian sub-blok 16-bit. Prinsip perancangan dari algoritma kriptografi IDEA adalah : 1Diffusion Konfusi Konsep ini dilakukan dengan mengusahakan setiap bit plainteks dan setiap bit kunci untuk mempengaruhi setiap bit cipherteks, yang diberikan oleh kotak MA Universitas Sumatera Utara Multiplication - Addition, blok dasar ini hanya menggunakan dua kunci untuk setiap putarannya, dan masukannya adalah F1, F2 sama seperti keluarannya G1, G2 yang dihubungkan oleh penjumlahan mod 2 16 dan perkalian mod 2 16 +1, serta XOR. Gambar 2.7 Kotak MA Multiplication - Addition 2Confusion Difusi Konsep ini dilakukan dengan menggabung tiga prinsip operasi grup aljabar yang berbeda-beda : 1. XOR penambahan modulo 2. 2. Penambahan modulo 2 3. Perkalian dengan modulo 2 16 16 + 1 Algoritma ini melakukan iterasi yang terdiri dari 8 putaran dan 1 transformasi keluaran pada putaran ke-9, dimana gambaran komputasi dan transformasi keluaran ditunjukkan oleh gambar 2.8. Universitas Sumatera Utara

2.4.1. Proses Enkripsi IDEA

Pada proses enkripsi algoritma kriptografi simetri IDEA yang ditunjukkan oleh gambar 2.7, terdapat tiga operasi yang berbeda untuk pasangan subblok 16-bit yang digunakan, yakni: 1XOR dari 2 subblok 16-bit; bit per bit. 2Penjumlahan modulo 2 subblok 16-bit, dimana kedua subblok itu dianggap sebagai representasi biner dari integer biasa, 3Perkalian modulo +1 2 subblok 16-bit, dimana kedua subblok 16-bit itu dianggap sebagai representasi biner dari integer biasa kecuali subblok nol dianggap mewakili integer 2 16 . Simbol dari ketiga operasi tersebut yaitu: 1. = penjumlahan mod 2. ⊗ = perkalian mod +1 3. = XOR Algoritma sistem kriptografi simetri IDEA yakni: aBlok masukan pesan 64-bit mula-mula dibagi menjadi 4 subsub blok 16-bit, yakni: X1, X2, X3, X4. bKeempat subblok 16-bit tadi kemudian ditransformasikan menjadi subblok 16-bit, Y1, Y2, Y3, Y4. Semua proses ini berada di bawah kendali 52 subblok kunci 16-bit yang dibentuk dari blok kunci 128-bit. cKeempat subblok 16-bit: X1, X2, X3, X4, digunakan sebagai masukan putaran pertama dari algoritma IDEA. Dapat dilihat dari gambar bahwa dalam setiap putaran dilakukan operasi XOR, penjumlahan modulo dan perkalian modulo. dDari gambar juga terlihat bahwa keluaran dari putaran sebelumnya merupakan masukan dari putaran berikutnya. Hal ini terus berlangsung sampai 8 putaran. Pada putaran terakhir putaran 9 dilakukan transformasi keluaran yang dikendalikan oleh 4 subblok kunci 16-bit. Sub kunci diberi simbol Z. Universitas Sumatera Utara Gambar 2.8 Algoritma kriptografi simetri IDEA eOperasi yang dilakukan pada setiap putaran dapat dirangkum sebagai berikut: 1 Perkalian dengan Z ke-1 round ke-1 2 Penjumlahan dengan Z ke-2 round ke-1 3 Pejumlahan dengan Z ke-3 round ke-1 4 Perkalian dengan Z ke-4 round ke-1 5 Operasi XOR hasil langkah 1 dan 3 6 Operasi XOR hasil langkah 2 dan 4 7 Perkalian hasil langkah 5 dengan Z ke-5 round ke-1 8 Penjumlahan hasil langkah 6 dengan langkah 7 9 Perkalian hasil langkah 8 dengan Z ke-6 round ke-1 10 Penjumlahan hasil langkah 7 dengan 9 Universitas Sumatera Utara 11 Operasi XOR hasil langkah 1 dan 9 12 Operasi XOR hasil langkah 3 dan 9 13 Operasi XOR hasil langkah 2 dan 10 14 Operasi XOR hasil langkah 4 dan 10 fKeluaran dari setiap putaran 11, 12, 13, 14 menjadi masukan bagi operasi selanjutnya. Pada putaran ke-9 dilakukan transformasi keluaran : 1 Perkalian dengan Z ke-1 round ke-9 2 Penjumlahan dengan Z ke-3 round ke-9 3 Penjumlahan dengan Z ke-2 round ke-9 4 Perkalian dengan Z ke-4 round ke-9 gSetelah semua selesai, keempat subblok 16-bit yang merupakan keluaran dari 9 putaran operasi tadi digabung kembali menjadi blok pesan rahasia 64-bit.

2.4.2. Pembentukan Subkunci Enkripsi

Sebanyak 52 subkunci yang masing-masing panjangnya 16-bit untuk proses enkripsi dibangkitkan dari kunci utama yang panjangnya 128-bit. Kunci utama dimasukkan oleh pengguna. Pada tiap putaran, digunakan enam buah subkunci sehingga dalam delapan putaran digunakan 48 buah subkunci. Empat buah subkunci sisanya digunakan untuk trasformasi akhir. Proses pembangkitan kuncinya key-schedule adalah sebagai berikut. Kunci utama yang panjangnya 128-bit dipartisi tiap 16-bit sehingga dihasilkan delapan bagian dengan panjang masing-masing bagian 16-bit. Delapan bagian ini menjadi delapan kunci pertama proses enkripsi. Kemudian blok kunci yang panjangnya 128-bit dirotasi dari kiri sepanjang 25-bit untuk dipartisi lagi menjadi 8 subblok kunci 16-bit berikutnya. Proses partisi dan rotasi diulangi terus sampai diperoleh 52 buah subkunci , yang panjang tiap subkuncinya 16-bit. Pada tabel berikut ditunjukkan proses pembangkitan kunci pada algoritma IDEA. Universitas Sumatera Utara Tabel 2.1 Penggunaan Kunci di Tiap Putaran Round i = 1 0 – 15 16 – 31 32 – 47 48 – 63 64 – 79 80 – 95 i = 2 96 – 111 112 – 127 25 – 40 41 – 56 57 – 72 73 – 88 i = 3 89 – 104 105 – 120 121 – 8 9 – 24 50 – 65 66 – 81 i = 4 82 – 97 98 – 113 114 – 1 2 – 17 18 – 33 34 – 49 i = 5 75 – 90 91 – 106 107 – 122 123 – 10 11 – 26 27 – 42 i = 6 43 – 58 59 – 74 100 – 115 116 – 3 4 – 19 20 – 35 i = 7 36 – 51 52 – 67 68 – 83 84 – 99 125 – 12 13 – 28 i = 8 29 – 44 45 – 60 61 – 76 77 – 92 93 – 108 109 – 124 i = 9 22 – 37 38 – 53 54 – 69 70 – 85 Pada setiap operasi pada kunci 128-bit, 8 kunci dengan panjang 16-bit diperoleh. Namun hanya enam kunci yang digunakan pada tiap putaran. Kunci yang tersisa disimpan untuk putaran berikutnya.

2.4.3. Proses Dekripsi IDEA

Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi tetapi 52 buah subblok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah subblok kunci enkripsi. Pada kasus ini akan diambil invers dari operasi XOR, penambahan oleh mod dan perkalian mod +1, tergantung pada operasi yang dibuat pada fase enkripsi. Setiap subkunci dekripsi adalah salah satu dari invers penambahan atau perkalian yang berkorespondensi dengan subkunci enkripsi. Tabel subblok kunci enkripsi yang digunakan pada proses enkripsi dapat dilihat pada tabel 2.2. Tabel subblok kunci dekripsi yang diturunkan dari subblok kunci enkripsi dapat dilihat pada tabel 2.3. Keterangan tabel: • Z -1 merupakan invers perkalian modulo 2 16 +1 dari Z, dimana Z Z -1 • -Z merupakan invers penjumlahan modulo 2 = 1 16 dari Z, dimana Z Z -1 = 0 Universitas Sumatera Utara Tabel 2.2 Subblok Kunci Enkripsi Putaran ke-1 Putaran ke-2 Putaran ke-3 Putaran ke-4 Putaran ke-5 Putaran ke-6 Putaran ke-7 Putaran ke-8 Transformasi Output Tabel 2.3 Subblok Kunci Dekripsi Putaran ke-1 Putaran ke-2 Putaran ke-3 Putaran ke-4 Putaran ke-5 Putaran ke-6 Putaran ke-7 Putaran ke-8 Transformasi Output

2.4.3.1. Invers Penjumlahan Modulo 2

16 atau Modulo 65536 A adalah invers penjumlahan dari B iff A + B mod 65536 = 0 Untuk mencari invers penjumlahan, harus dipenuhi: Universitas Sumatera Utara A+B ≡ 0 mod 2 16 kongruen dengan A+B mod 2 16 = 0 Dengan A adalah invers penjumlahan B, sehingga: A = 2 16 – B mod 2 16 Contoh: Invers penjumlahan 189 Solusi: A = 2 16 – B mod 2 16 = 2 16 – 189 mod 2 16 = 2 16 = 65537 – 189 – 189 = 65347 Jadi, invers penambahan dari 189 adalah 65347 atau 189+65347 mod 2 16 = 0

2.4.3.2. Invers Perkalian Modulo 2

16 + 1 = Modulo 65537 1A adalah invers perkalian dari B iff A × B mod 65537 = 1 2Gunakan algoritma Extended Euclidean untuk mencari invers perkalian.

2.4.3.3. Algoritma Extended Euclidean

Karena 2 16 + 1 adalah bilangan prima, maka B dan 2 16 + 1 adalah saling prima relatif, untuk B ≠ 2 16 + 1. Sehingga invers perkalian B mod 2 16 AB ≡ 1 mod 2 + 1 adalah bilangan bulat A sedemikian hingga: 16 kongruen dengan + 1 AB mod 2 16 + 1 = 1 Universitas Sumatera Utara Karena 2 16 + 1 dan B relatif prima, maka PBB B, 2 16 + 1 =1, dan menggunakan algoritma Extended Euclidean terdapat: p.B + q.2 16 + 1 = 1 dengan p adalah invers dari B mod 2 16 A.B + q.2 + 1 atau p = A, sehingga dapat juga ditulis: 16 Langkah-langkah: + 1 = 1 1Dengan algoritma Extended Euclidean diperoleh rangkaian pembagian 2Ekspresikan 1 sama dengan kombinasi linier dari B dan 2 16 + 1, sehingga diperoleh : AB + q.2 16 3Maka A adalah invers dari B mod 2 + 1 = 1 16 Contoh: + 1 Tentukan invers perkalian dari 125 mod 2 16 Solusi: + 1 1Dengan algoritma Extended Euclidean diperoleh: 65537 = 524125 + 37 → 37 = 65537 – 524125 125 = 337 + 14 → 14 = 125 – 337 37 = 214 + 9 → 9 = 37 – 214 14 = 19 + 5 → 5 = 14 – 19 9 = 15 + 4 → 4 = 9 – 15 5 = 14 + 1 → 1= 5 – 14 4 =41 + 0 Semua kombinasi di atas digunakan untuk membentuk: AB + q.2 16 Sehingga benar bahwa PBB125, 2 + 1 = 1 16 + 1 = 1 21 = 5 – 1.4 = 5 – 19 – 1.5 = 1.5 – 1.9 + 1.5 Universitas Sumatera Utara = 2.5 – 1.9 = 2 14 – 1.9 – 1.9 = 2.14 – 2.9 – 1.9 = 2.14 – 3.9 = 2.14 – 337 – 2.14 = 2.14 – 3.37 + 6.14 = 8.14 – 3.37 = 8125 – 3.37 – 3.37 = 8.125 – 24.37 – 3.37 = 8.125 – 27.37 = 8.125 – 2765537-524.125 = 8.125 – 272 16 = 8.125 – 272 + 1 – 524.125 16 = 14156.125 – 272 + 1 + 14148.125 16 Sudah diperoleh bentuk: 1 = AB + q.2 + 1 16 Sehingga diperoleh 14156 adalah invers perkalian dari 125 mod 2 + 1 16 Dan 14156125 ≡ 1 mod 2 + 1 16 + 1

2.4.4. Contoh Komputasi Penggunaan Algoritma IDEA

2.4.4.1. Proses enkripsi

Asumsi diberikan 64-bit plainteks X: X = X1 ,X2, X3, X4 = 7fa9 1c37 ffb3 df05 → dalam hexadesimal Untuk lebih jelas, lihat tabel 2.1 pada pembahasan pembentukan subkunci enkripsi. Subkunci-subkunci enkripsi yang berhasil dibentuk dapat dilihat pada tabel 2.4. Panjang plainteks 64-bit yang dipartisi menjadi empat subblok plainteks dengan panjang 16-bit per blok dan kunci enkripsi 52 subkunci yang juga terdiri dari 16-bit per blok, dilakukan pada blok satu dengan blok lainnya: operasi XOR, perkalian mod 2 16 +1 dan penambahan mod 2 16 , dari round pertama sampai round Universitas Sumatera Utara terakhir transformasi sehingga menghasilkan cipherteks Y 64-bit, yang juga merupakan gabungan dari empat subblok cipherteks 16-bit: Y1, Y2, Y3, Y4. Tabel 2.4 Subkunci-subkunci Enkripsi yang Berhasil Dibentuk Putaran ke-1 5a14 fb3e 021c 79e0 6081 46a0 Putaran ke-2 117b ff03 7c04 38f3 c0c1 028d Putaran ke-3 4022 f7fe 06b4 29f6 e781 8205 Putaran ke-4 1a80 45ef fc0d 6853 ecf8 0871 Putaran ke-5 0a35 008b dff8 1ad0 a7d9 f010 Putaran ke-6 e3cf 0304 17bf f035 a14f b3e0 Putaran ke-7 21c7 9e06 0814 6a01 6b42 9f67 Putaran ke-8 c043 8f3c 0c10 28d 022f 7fe0 Transformasi Output cf80 871e 7818 2051 Cipherteks Y merupakan hasil dari output round terakhir transformasi, yaitu: Y = Y1, Y2, Y3, Y4 = 106b dbfd f323 0867.

2.4.4.2. Proses dekripsi

Universitas Sumatera Utara Dekrispi dilakukan dengan cara yang sama dengan proses enkripsi, kecuali pembentukan subkunci-subkuncinya. Input merupakan blok cipherteks 64-bit dan outputnya merupakan plainteks. Untuk melakukan dekripsi, coba perhatikan kembali tabel 2.3. Pada dasarnya, ada empat kunci pertama untuk dekripsi, yaitu: Z1 = Z2 = Z3 = Z4 = Tabel 2.5 Hasil Perhitungan Setiap Subblok 16-bit dalam 9 Round Subkunci untuk melakukan dekripsi dapat dilihat pada tebel 2.6. Round Round output X1 X2 X3 X4 7fa9 1c37 ffb3 df05 1 c579 f2ff 0fbd 0ffc 2 d7a2 80cb 9a61 27c5 3 ab6c e2f9 f3be 36bd 4 ef5b 9cd2 6808 3019 5 7e09 2445 d223 d639 6 4a6e d7ac ac8c 8b09 7 244d 6f5c 4459 3a9c 8 0f86 7b0b 54df 75f9 9 106b dbfd f323 0867 Y1 Y2 Y3 Y4 Universitas Sumatera Utara Tabel 2.6 Subkunci-subkunci Dekripsi yang Berhasil Dibentuk Putaran ke-1 = = = = = = 9194 78e2 87e8 712a 022f 7fe0 Putaran ke-2 = = = = = = a24c f3f0 70c4 3305 6b42 9f67 Putaran ke-3 = = = = = = c579 f7ec 61fa bf28 a14f b3e0 Putaran ke-4 = = = = = = c53c e841 fcfc 3703 a7d9 f010 Putaran ke-5 = = = = = = cc14 2008 ff75 24f6 ecf8 0871 Putaran ke-6 = = = = = = 4396 03f3 ba11 dfa7 e781 8205 Putaran ke-7 = = = = = = 18a7 f94c 0802 9a13 c0c1 028d Putaran = = = = = = Universitas Sumatera Utara ke-8 55ed 83fc 00fd 2cd9 6081 46a0 Transformasi Output = = = = 0dd8 04c2 fde4 4fd0 Universitas Sumatera Utara Bab 3 ANALISIS DAN PEMODELAN PERANGKAT LUNAK 3.1.Analisis Permasalahan Algoritma IDEA Tahapan analisis terhadap suatu sistem dilakukan sebelum tahapan perancangan dilakukan. Tujuan diterapkannya analisis terhadap suatu sistem adalah untuk mengetahui alasan mengapa sistem tersebut diperlukan, merumuskan kebutuhan- kebutuhan dari sistem tersebut untuk mereduksi sumber daya yang berlebih serta membantu merencanakan penjadwalan pembentukan sistem, meminimalisir penyimpangan yang mungkin terdapat di dalam sistem tersebut sehingga fungsi yang dalam sistem tersebut bekerja secara optimal. Salah satu unsur pokok yang harus dipertimbangkan dalam tahapan analisis sistem ini yaitu masalah perangkat lunak, karena perangkat lunak yang digunakan haruslah sesuai dengan masalah yang akan diselesaikan. Untuk itu, analisis yang dilakukan terhadap perangkat lunak algoritma IDEA terbagi ke dalam dua aspek, yaitu analisis kebutuhan perangkat lunak algoritma IDEA dan analisis fungsi perangkat lunak algoritma IDEA. 3.2.Analisis Kebutuhan Algoritma IDEA Faktor yang mendasari dibentuknya perangkat lunak dengan algoritma kriptografi IDEA adalah keamanan data. Keamanan telah menjadi aspek yang sangat penting dari suatu sistem informasi. Sebuah informasi umumnya hanya ditujukan bagi segolongan tertentu. Oleh karena itu sangat penting untuk mencegahnya jatuh kepada pihak-pihak lain yang tidak berkepentingan. Untuk keperluan tersebut, maka diperlukan teknik kriptografi dengan metode enkripsi dan dekripsi. Salah satu metode enkripsi dan dekripsi data yang digunakan adalah algoritma IDEA. Universitas Sumatera Utara Setiap sistem yang akan dibangun selalu memiliki kebutuhan. Analisis yang dilakukan terhadap kebutuhan suatu sistem dapat berfungsi untuk mereduksi sumber daya yang berlebih dari sistem tersebut serta membantu pembentukan penjadwalan pembentukan sistem Pressman. R.S., 2002. Analisis yang dilakukan untuk mencari kebutuhan dari perangkat lunak algoritma IDEA dapat dilakukan dengan cara menentukan nama dari perangkat lunak yang akan dibangun, mengetahui siapa yang akan menggunakan perangkat lunak tersebut, memahami konsep teknologi yang akan dipakai, tampilan antar muka yang akan dipergunakan, teknik apa yang dipergunakan untuk membentuknya, serta apa yang akan dihasilkan oleh perangkat lunak tersebut. Berdasarkan analisis yang dilakukan terhadap keperluan perangkat lunak, maka dapat diambil keputusan bahwa nama dari perangkat lunak yang akan dibangun adalah IdeaCrypt, dimana Crypt menunjukkan fungsi dari perangkat lunak dan Idea merupakan nama algoritma yang di gunakan. Perangkat lunak yang dibangun nantinya akan menghasilkan file kunci yang berisikan pasangan kunci enkripsi dan kunci dekripsi yang diperoleh dari proses pembentukan kunci, file cipherteks dari proses enkripsi dan menghasilkan file plainteks dari proses dekripsi. Format file cipherteks nantinya akan tetap sama dengan file asli tetapi tidak dapat dipahami oleh pihak yang tidak berhak. Kemudian pengguna dari perangkat lunak ini adalah setiap individu yang membutuhkan keamanan data, untuk itu maka sistem yang dibangun harus dapat dipakai oleh setiap orang secara umum. Maka perangkat lunak yang dibentuk harus memiliki antarmuka yang sederhana dan mudah untuk dipergunakan. Untuk memenuhi kebutuhan tersebut maka perangkat lunak algoritma IDEA dibangun pada sistem operasi dengan platform Microsoft Windows XP, dan bahasa pemrograman yang dipergunakan adalah C++. Untuk memudahkan perancangan perangkat lunak dengan algoritma IDEA tersebut maka dibutuhkan algoritma dan flowchart dari setiap mekanisme yang ada. Alasan penggunaan algoritma dan flowchart adalah karena dengan menggunakan algoritma dan flowchart dapat digambarkan secara jelas alur dari proses, struktur perulangan, teknik pengambilan keputusan serta mekanisme kalkulasi yang ada pada sistem. Setelah algoritma dan flowchart terbentuk, barulah dilakukan proses pembentukan sistem yang sebenarnya. Universitas Sumatera Utara 3.3.Pemodelan Fungsional Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana caranya agar sistem yang dibangun memiliki fungsi yang berdaya guna maksimal. Oleh karena itu, maka fungsi-fungsi yang ada pada sistem tersebut perlu dianalisis. Pada sistem kriptografi IDEA, secara garis besar terdapat tiga fungsi, yaitu: enkripsi pesan, dekripsi pesan, dan pembentukan subkunci. Pemodelan fungsional menggambarkan aspek dari sistem yang berhubungan dengan transformasi dari nilai, seperti fungsi, pemetaan, batasan, dan ketergantungan fungsional. Pemodelan fungsional menangkap sesuatu yang dikerjakan oleh sistem tanpa memperhatikan bagaimana dan kapan hal itu dikerjakan.

3.4. DFD Data Flow Diagram dan Spesifikasi Proses