Anda di halaman 1dari 92

METODE ENKRIPSI DAN DESKRIPSI DATA

MENGGUNAKAN KRIPTOGRAFI IDEA

SKRIPSI

Diajukan Untuk Melengkapi Tugas-Tugas dan Memenuhi Syarat-Syarat


Guna Memperoleh Gelar Sarjana Strata Satu (S-1)

OLEH

ABDUL HANAN
NIM : 11111084

PROGRAM STUDI S.1 TEKNIK INFORMATIKA


SEKOLAH TINGGI MANAJEMEN INFORMATIKA
DAN KOMPUTER
STMIK U’BUDIYAH INDONESIA
BANDA ACEH
2013
LEMBAR PENYATAAN

Saya menyatakan bahwa skripsi yang saya susun, sebagai syarat memperoleh
gelar sarjana merupakan karya tulis saya sendiri. Adapun bagian-bagian tertentu
dalam penulisan skripsi ini yang saya kutip dari hasil karya orang lain telah
dituliskan sumbernya secara jelas sesuai dengan norma, kaidah, dan etika
penulisan ilmiah. Saya bersedia menerima sanksi pencabutan gelar akademik yang
saya peroleh dan sanksi-sanksi lainnya sesuai dengan peraturan yang berlaku,
apabila dikemudian hari ditemukan adanya plagiat dalam skripsi ini.

Banda Aceh, 19 Januari 2013


Yang membuat pernyataan,

ABDUL HANAN
Nim: 11111084

iii
ABSTRAK

Dalam dunia kriptografi, block cipher adalah cipher dengan kunci simetrik yang
terdiri dari kumpulan bit-bit dengan panjang tetap, yang disebut sebagai blok.
Algoritma enkripsi dengan menggunakan block cipher menerima masukan n-bit
block yang berisi plaintext dan memberikan keluaran n-bit block ciphertext.
Metode IDEA terdiri dari 8 putaran (iterasi) ditambah 1 putaran transformasi
output. IDEA menggunakan operasi aljabar yang berbeda-beda yaitu XOR,
penambahan modulo 216, dan perkalian modulo 216 + 1. Dalam satu putaran
terdapat 14 langkah algoritma dan proses invers kunci untuk proses dekripsi juga
cukup rumit, menyebabkan metode IDEA ini tergolong panjang dan rumit jika
dikerjakan secara manual. Perangkat lunak kriptografi dengan Algoritma IDEA
dengan menggunakan plaintext 64 bit dan kunci simetris 128 bit melalui proses
enkripsi akan menghasilkan chipertext yang ketika di deskripsi kembali dengan
menggunakan kunci simetris yang sama akan didapat plaintext awal.

Kata Kunci : Algoritma IDEA, plaintext, chipertext, block cipher, kunci simetris
ABSTRACT

In the world of cryptography, a block cipher is a symmetric key cipher consisting


of a collection of bits of fixed length, called blocks. The encryption algorithm
using a block cipher accepts input n-bit block that contains the plaintext and
provides output n-bit block of ciphertext. IDEA method consists of 8 rounds
(iterations) plus 1 round of transformation output. IDEA using algebraic
operations are different XOR, addition modulo 216, and multiplication modulo 2
¬ 16 + 1. In one round there are 14 step algorithm and the inverse process is also
key for the decryption process is quite complicated, causing IDEA method is quite
lengthy and cumbersome if done manually. Cryptographic software with IDEA
algorithm using 64 bit plaintext and 128 bit symmetric key encryption through the
process will produce ciphertext that when the description again using the same
symmetric key plaintext will get the start.

Keywords: Algorithm IDEA, plaintext, ciphertext, block ciphers, symmetric key


KATA PENGANTAR

Assalammu’alaikum Wr, Wb
Puji dan syukur penulis ucapkan kepada Allah SWT, dimana tanpa rahmat dan
hidayah Nya penulis bukanlah siapa-siapa dan tidak mampu menjalani kehidupan ini dengan
baik. Dengan semua yang diberikan Allah SWT kepada manusia semoga penulis dapat
mematuhi perintah dan menjauhi larangan Allah SWT.
Setelah melalui beberapa tahap pembelajaran dan pengorbanan pikiran,waktu,
tenaga dan materi akhirnya penulis mendapat peluang untuk menulis proposal judul tugas
akhir untuk menyelesaikan program studi Strata Satu (S1) jurusan Teknik Informatika di
STMIK U’budiyah Indonesia.
Dalam proposal ini penulis menggambarkan pentingnya Sistem Enkripsi dan
Deskripsi Data dengan Menggunakan Teori IDEA di dalam pelaksanaan kegiatan baik
perusahaan maupun instansi pemerintah.
Pada kesempatan ini, tidak lupa penulis mengucapkan terimakasih yang sebesar-
besarnya kepada :
1. Bapak DR. M. Amin Haris selaku Ketua STMIK U’budiyah Indonesia, yang telah
memberikan penulis kesempatan untuk menuntut ilmu di lembaga yang dipimpinnya.
2. Bapak Muslim, S. Si., M. Info Tech selaku Ketua Prodi Teknik Informatika, yang telah
membantu dalam proses pembelajaran sampai selesainya pendidikan yang penulis
tempuh.
3. Bapak Hendra Fajri, S. Kom sebagai Dosen Pembimbing pembimbing yang telah
membimbing dari awal hingga selesainya penulisan tugas akhir ini.
4. Staff Dosen, yang telah memberikan ilmu pengetahuan, sehingga penulis mampu
menyelesaikan pendidikan di STMIK U’budiyah Indonesia
5. Bapak dan Ibu tercinta yang telah mendidik dan membesarkan saya dengan penuh
pengorbanan dan kasih sayang.
6. Istri dan Anak saya tercinta, yang telah memberikan motivasi serta telah meluangkan
waktu, tenaga, dan pikiran kepada saya sehingga selesainya pendidikan sarjana Strata 1
(S1) saya.
7. Ibu Ina dan staff BAAK yang telah banyak membantu dalam menuntut ilmu di STMIK
U’budiyah Indonesia.
8. Bapak Drs. M. Yusra, SP, selaku atasan yang telah banyak memberikan dorongan dan
semangat, sehingga terlaksananya pendidikan.

iv
Muharram, ST, selaku teman dan rekan kerja yang telah membantu dalam
proses penulisan tugas akhir ini.

9. Teman-teman serta rekan kerja yang telah mendukung dalam penyelesaian tugas akhir.

Mudah-mudahan visi dan misi STMIK U’budiyah Indonesia akan terwujud sebagai
kesuksesan dalam membina mahasiswanya untuk mengikuti kemajuan teknologi yang
padasaat ini semakin berkembang.
Penulis menyadari tugas akhir ini masih banyak kekurangan sehingga saran dan
kritik pembaca merupakan masukan yang sangat berguna, Semoga laporan tugas akhir ini
dapat berguna bagi penulis sendiri juga bagi yang yang membutuhkan.

v
DAFTAR ISI

JUDUL TUGAS AKHIR


HALAMAN PENGESAHAN ................................................................................ i
LEMBAR PERSETUJUAN ................................................................................... ii
LEMBAR PERNYATAAN ..................................................................................... iii
KATA PENGANTAR ............................................................................................ iv
ABSTRAK ............................................................................................................... vi
DAFTAR ISI ........................................................................................................... vii
DAFTAR GAMBAR .............................................................................................. xi
DAFTAR TABEL ................................................................................................... xii

BAB I PENDAHULUAN .............................................................................. 1


1.1 Latar Belakang Masalah ............................................................. 1
1.2 Rumusan Masalah ...................................................................... 2
1.3 Batasan Masalah ......................................................................... 2
1.4 Maksud dan Tujuan Penelitian ................................................... 2
1.5 Manfaat Penelitian ..................................................................... 2

BAB II TINJAUAN PUSTAKA ..................................................................... 3


2.1 Sejarah Kriptografi ..................................................................... 3
2.2 Kriptografi .................................................................................. 5
2.2.1 Terminologi ................................................................... 5
2.2.2 Tujuan Kriptografi .......................................................... 7
2.3 Aplikasi Kriptografi .................................................................. 8
2.3.1 Komunikasi Aman (Secure Communication) ................ 8
2.3.2 Identifikasi dan Otentikasi .............................................. 9
2.3.3 Secret Sharing ................................................................. 9
2.3.4 Sertifikasi (Certification) ................................................ 10
2.3.5 Penemuan Kunci (Key Recovery) .................................. 10

vii
2.4 Jenis-Jenis Kriptografi ................................................................ 10
2.4.1 Kriptografi Kunci Simetris ............................................. 11
2.4.1.1 Block Cipher ..................................................... 11
2.4.1.2 Stream Cipher ................................................... 12
2.4.1.3 Desain Cipher ................................................... 12
2.4.2 Kriptografi Kunci Asimetris ........................................... 13
2.5 Landasan Matematika Kriptografi ............................................. 14
2.5.1 Aritmatika Modulo ........................................................ 14
2.5.2 Invers Perkalian ............................................................. 15
2.5.3 Invers Penjumlahan ....................................................... 17
2.5.4 Operasi XOR ................................................................. 18
2.5.5 Permutasi (Permutation) ................................................ 18
2.5.6 Pergeseran Bit (Shift) .................................................... 19
2.5.7 Rotasi Bit (Rotate) ......................................................... 20
2.5.8 Perkalian Modulo .......................................................... 21
2.6 Algoritma IDEA ......................................................................... 21
2.6.1 Sejarah Algoritma IDEA ............................................... 21
2.6.2 Arsitektur Umum Prosesor Kriptografi IDEA ............... 21
2.6.3 Kekuatan Algoritma IDEA ............................................ 23
2.6.4 Kelebihan Algoritma IDEA ........................................... 24
2.6.5 Algoritma IDEA ............................................................. 25

BAB III METODELOGI PENELITIAN ....................................................... 26


3.1 Data Penelitian ........................................................................... 26
3.2 Alat-Alat Yang Digunakan ......................................................... 26
3.2.1 Perangkat Lunak ............................................................. 26
3.2.2 Perangkat Keras .............................................................. 26
3.3 Proses Enkripsi Algoritma IDEA ............................................... 27
3.4 Proses Dekripsi Algoritma IDEA ............................................... 28
3.5 Flowchart Sistem Dengan Menggunakan Algoritma IDEA ....... 28

viii
3.6 Proses Perancangan dan Analisa ................................................ 31

BAB IV ANALISA DAN PEMBAHASAN .................................................... 32


4.1 Analisa Algoritma IDEA ............................................................ 32
4.1.1 Analisa Permasalahan Algoritma IDEA ......................... 32
4.1.2 Analisa Kebutuhan Algoritma IDEA ............................. 32
4.1.3 Pemodelan Fungsional .................................................... 32
4.2 Perancangan Sistem .................................................................... 33
4.2.1 Perancangan Data ........................................................... 33
4.2.2 Perancangan Struktur Program ....................................... 39
4.2.3 Perancangan Prosedure ................................................... 41
4.2.3.1 Proses Enkripsi Dengan Algoritma IDEA ........ 42
4.2.3.2 Proses Dekripsi Dengan Algoritma IDEA ....... 46
4.3 Diagram Sistem .......................................................................... 52
4.3.1 DFD (Data Flow Diagram) ............................................. 52
4.3.2 Diagram Konteks ............................................................ 52
4.3.3 DFD Level 1 ................................................................... 53
4.3.4 DFD Level 2 Proses P.2 (Proses Enkripsi) ..................... 54
4.3.5 DFD Level 2 Proses P.3 (Proses Dekripsi)...................... 55
4.4 Implementasi ............................................................................... 57
4.4.1 Implementasi Sistem ....................................................... 57
4.4.1.1 Proses Enkripsi ................................................. 57
4.4.1.2 Proses Dekripsi ................................................. 65
4.4.2 User Interface ................................................................. 74
4.4.2.1 Halaman Utama ................................................ 74
4.4.2.2 Form Encrip Data ............................................. 75
4.4.2.3 Form Descrip Data ........................................... 76

BAB V KESIMPULAN DAN SARAN .................................................................. 77


5.1 Kesimpulan .................................................................................. 77
5.2 Saran ......................................................................................... 77
ix
DAFTAR PUSTAKA
LAMPIRAN
BIO DATA PENULIS

x
DAFTAR GAMBAR

Gambar 2.1 Scytale ................................................................................................... 4


Gambar 2.2 Proses Enkripsi/Dekripsi Public Key Cryptography ............................. 14
Gambar 2.3 Arsitektur Prosesor Kriptografi IDEA .................................................. 22
Gambar 3.1 Flowchart Sistem Proses Enkripsi Algoritma IDEA ............................. 30
Gambar 3.2 Flowchart Sistem Proses Dekripsi Algoritma IDEA ............................. 31
Gambar 4.1 Bagan Struktur Program ........................................................................ 40
Gambar 4.2 Diagram Rancangan Proses Enkripsi dan Dekripsi Data ...................... 51
Gambar 4.3 Diagram konteks Sistem Algoritma IDEA ........................................... 52
Gambar 4.4 DFD Level 1 .......................................................................................... 53
Gambar 4.5 DFD Level 2 Proses P.2 (Proses Enkripsi) ........................................... 54
Gambar 4.6 DFD Level 2 Proses P.3 (Ptoses Dekripsi) ........................................... 56
Gambar 4.7 Halaman Utama ..................................................................................... 74
Gambar 4.8 Form Rancangan Proses Enkripsi ......................................................... 75
Gambar 4.9 Form Rancangan Proses Dekripsi ......................................................... 76

xi
DAFTAR TABLE

Table 2.1 Aturan Operasi XOR ................................................................................. 18


Table 2.2 Permutasi 16 bit ........................................................................................ 19
Table 2.3 Contoh Menggunakan Permutasi .............................................................. 19
Table 2.4 Hasil Permutasi ......................................................................................... 19
Table 3.1 Proses Dekripsi ......................................................................................... 29
Table 4.1 Nilai ASCII dari Planteks dan Kunci Enkripsi ......................................... 34
Table 4.2 Langkah Proses Enkripsi ........................................................................... 36
Table 4.3 Proses Transformasi Enkripsi ................................................................... 37
Table 4.4 Nilai ASCII dari Chiperteks ....................................................................... 38
Table 4.5 Langkah Proses Dekripsi .......................................................................... 38
Table 4.6 Proses Transformasi Dekripsi ................................................................... 39

xii
BAB I
PENDAHULUAN

1.1 LATAR BELAKANG MASALAH


Masalah keamanan dan kerahasiaan data merupakan hal yang sangat
penting dalam suatu organisasi maupun pribadi. Apalagi kalau data tersebut
berada dalam suatu jaringan komputer yang terhubung/terkoneksi dengan jaringan
publik misalnya internet. Tentu saja data yang sangat penting tersebut dapat
dilihat atau bahkan dibajak oleh orang tidak berwenang. Sebab kalau hal ini
sampai terjadi kemungkinan data kita akan rusak bahkan bisa hilang yang bisa
menimbulkan kerugian material yang besar. Oleh karena itu, kita membutuhkan
sebuah sistem keamanan pengiriman dan penyimpanan pesan ataupun data yang
dapat menjaga kerahasiaan suatu pesan/data dari akses orang-orang yang tidak
berwenang.
Salah satu sistem yang banyak digunakan pada saat ini adalah kriptografi,
yang mampu menjaga keamanan akses pengiriman dan penyimpanan data penting
agar tidak mudah di rusak atau bahkan tidak diketahui oleh pihak yang tidak
berwenang.
Data (informasi) yang bersifat rahasia harus diamankan terlebih dahulu
dengan menggunakan metode kriptografi sebelum dikirim untuk mencegah agar
data (informasi) tidak diketahui oleh orang lain yang tidak berkepentingan.
Metode yang digunakan untuk mengamankan data ada bermacam-macam,
masing-masing metode mempunyai kelebihan dan kekurangan. Salah satu metode
kriptografi yang dianggap sebagai algoritma block cipher yang terbaik dan
teraman yang tersedia untuk publik sampai saat ini adalah metode Kriptografi
IDEA (International Data Encryption Algorithm ).
Metode IDEA diperkenalkan pertama kali oleh Xuejia Lai dan James
Massey pada tahun 1990 dengan nama PES (Proposed Encryption Standart).
Tahun berikutnya, setelah Biham dan Shamir mendemonstrasikan Cryptanalysis
yang berbeda sang penemu memperkuat algoritma mereka dari serangan dan

1
algoritma hasil pengubahan tersebut diberi nama IPES (Improyed Proposed
Encryption Algorithm). Kemudian pada tahun 1992, IPES mengganti namanya
menjadi IDEA (International Data Encryption Algorithm). Metoda ini
menggunakan beberapa operasi dasar, seperti operasi logika XOR (Exclusive-OR),
operasi perkalian Mod 216+1 ( Multiplication module 216+1 ) dan operasi
penambahan Mod 216 (Addition Modulo 216). Metode ini terdiri dari 8 putaran
(Round) dan menggunakan 64 bit plaintext dengan panjang kunci sebesar 128 bit.
Berdasarkan latar belakang diatas, penulis mengangkat tema penelitian
dengan judul “Metode Enkripsi dan Deskripsi Menggunakan Kriptografi
IDEA”.

1.2 RUMUSAN MASALAH


Dari latar belakang diatas, penulis membuat suatu perumusan masalah
yaitu bagaimana merancang perangkat lunak kriptografi dengan algoritma IDEA
(International Data Encryption Algorithm).

1.3 BATASAN MASALAH


Adapun batasan masalah dalam merancang perangkat lunak ini adalah :
1. Data yang akan di enkripsi berbentuk teks.
2. Perangkat lunak tidak menampilkan tahap-tahap konversi bilangan ke
dalam bilangan biner
3. Menggunakan Bahasa pemrograman Visual Basic 6.0.

1.4 MAKSUD DAN TUJUAN PENELITIAN


Adapun tujuan dari penelitian ini adalah untuk merancang sebuah
perangkat lunak yang dapat digunakan untuk kriptografi dengan algoritma IDEA
(International Data Encryption Algorithm).

1.5 MANFAAT PENELITIAN


Dari hasil perancangan perangkat lunak ini, diharapkan perangkat lunak
kriptografi ini dapat mengamankan sebuah data/tulisan yang bersifat penting dan
rahasia supaya tidak di ketahui oleh orang lain.

1
BAB II
TINJAUAN PUSTAKA

2.1 SEJARAH KRIPTOGRAFI


Adapun sejarah kriptografi dimulai pertama sekali dengan menggunakan
metode pertukaran posisi untuk mengenkripsi suatu pesan. Dalam sejarah
perkembangannya, Julius Caesar dalam mengirimkan pesan yang dibawa oleh
hulubalangnya, sengaja mengacak pesan tersebut sebelum diberikan kepada kurir.
Hal ini dilakukan untuk menjaga kerahasiaan pesan baik bagi kurir maupun bagi
musuh jika kurir tertangkap di tengah jalan oleh musuh. Ada orang yang
mengatakan bahwa apa yang dilakukan oleh Julius Caesar dianggap sebagai awal
dari kriptografi.
Dalam sebuah buku yang berjudul The Codebreaker yang dikarang oleh
David Kahn pada tahun 1963, disebutkan bahwa kriptografi digunakan pertama
sekali oleh bangsa Mesir 4000 tahun yang lalu sampai saat sekarang ini. Sejak
munculnya buku tersebut maka kriptografi pun mulai diperbincangkan secara
luas. Peminat dari buku tersebut ialah peminat yang berhubungan dengan
kemiliteran, layanan diplomatik dan pemerintahan. Kriptografi digunakan sebagai
suatu alat untuk melindungi rahasia dan strategi-strategi negara.
Sampai pada akhir Perang Dunia I, kriptografi merupakan disiplin ilmu
matematika yang spesial. Penelitian dalam bidang ini tidak pernah sampai kepada
umum sehingga tidaklah mengherankan kalau banyak orang tidak mengetahui
keberadaan ataupun manfaat darinya. Kemudian pada Perang Dunia II, pihak
militer pun mulai menyadari akan manfaat dari penggunaan kriptografi maupun
kriptanalisis. Kriptografi memungkinkan untuk berkomunikasi dalam saluran
yang aman (misalnya komunikasi melalui radio gelombang panjang) dengan cara
membuatnya menjadi tidak dapat dimengerti oleh musuh. Kriptografi mencapai
kemajuan yang pesat pada akhir Perang Dunia II. Akan tetapi kriptografi masih
merupakan sesuatu yang sangat rahasia karena kriptografi telah menjadi bagian
yang penting dalam komunikasi militer.

3
4

Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik,


yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan
bantuan alat mekanik sederhana. Secara umum algoritma kriptografi klasik
dikelompokan menjadi dua kategori, yaitu algoritma transposisi (transposition
cipher) dan algoritma subtitusi (substitusion chipper). Cipher transposisi
mengubah susuna huruf-huruf di dalam pesan, sedangkan cipher subtitusi
menganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok
huruf lain. Sejarah kriptografi klasik mencatat penggunaan cipher trasposisi oleh
tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan
alat yang namanya scytale.

Gambar 2.1 Scytale

Sedangkan algoritma substitusi paling awal dan paling sederhana adalah


Caesar cipher, yang digunakan oleh raja Yunani kuno, Julius Caesar. Caranya
adalah dengan mengganti setiap karakter di dalam alfabet dengan karakter yang
terletak pada tiga posisi berikutnya di dalam susunan alfabet (Rinaldi Munir,
2006).
Perkembangan komputer dan sistem komunikasi pada tahun 1960-an
mengakibatkan munculnya kebutuhan pihak swasta akan alat untuk melindungi
informasi dalam bentuk digital dan untuk menyediakan layanan keamanan
informasi. Kriptografi digital dimulai pada tahun 1970 atas usaha Feistel dari IBM
dan memuncak pada tahun 1977 dengan diadopsinya sistem kriptografi DES
(Data Encryption Standard) oleh U.S. Federal Information Processing Standard
untuk mengenkripsi informasi rahasia. DES merupakan mekanisme kriptografi
5

yang paling terkenal dalam sejarah dan tetap menjadi standar pengamanan data
elektronik komersial pada kebanyakan institusi keuangan di seluruh dunia.

2.2 KRIPTOGRAFI
Kriptografi berasal dari bahasa Yunani yakni kriptos yang artinya
tersembunyi dan graphia yang artinya sesuatu yang tertulis, sehingga kriptografi
dapat disebut sebagai sesuatu yang tertulis secara rahasia.
Menurut (Rinaldi Munir, 2006), Kriptografi merupakan suatu bidang ilmu
yang mempelajari tentang bagaimana merahasiakan suatu informasi penting ke
dalam suatu bentuk yang tidak dapat dibaca oleh siapapun serta
mengembalikannya kembali menjadi informasi semula dengan menggunakan
berbagai macam teknik yang telah ada sehingga informasi tersebut tidak dapat
diketahui oleh pihak manapun yang bukan pemilik atau yang tidak
berkepentingan. Sisi lain dari kriptografi ialah kriptanalisis (Cryptanalysis) yang
merupakan studi tentang bagaimana memecahkan mekanisme kriptografi.
Bagi kebanyakan orang, kriptografi lebih diutamakan dalam menjaga
komunikasi tetap rahasia dan khusus. Seperti yang telah diketahui dan disetujui
bahwa perlindungan (proteksi) terhadap komunikasi yang sensitif telah menjadi
penekanan kriptografi selama ini. Akan tetapi hal tersebut hanyalah sebagian dari
penerapan kriptografi dewasa ini.

2.2.1 Terminologi
Beberapa terminologi atau istilah yang penting untuk diketahui didalam
kriptografi menurut (Rinaldi Munir, 2006) dalam bukunya yang berjudul
Kriptografi adalah sebagai beriku:
A. Pesan, Plainteks, dan Cipherteks
Pesan (message) adalah data atau informasi yang dapat dibaca dan
dimengerti maknanya. Nama lain untuk pesan adalah plainteks (plaintext)
atau teks-jelas (cleartext). Pesan tidak hanya berupa teks, tetapi juga dapat
berbentuk gambar (image), suara (audio), vidio, atau berkas biner lainnya.
6

Pesan perlu disandikan ke bentuk lain yang tidak dipahami agar tidak
dapat dimengerti maknanya oleh pihak lain. Bentuk pesan yang tersandi
disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks
harus dapat ditransformasikan kembali menjadi plainteks semula agar
pesan yang diterima bisa dibaca.
B. 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. Entitas di sini
dapat berupa orang, komputer, kartu kredit, dan sebagainya.
C. Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi
(encryption) atau enciphering (standar nama menurut ISO 7498-2).
Sedangkan proses mengembalikan cipherteks menjadi plainteks semula
disebut dekripsi (decryption) atau deciphering (standard nama menurut
ISO 7498-2).
Enkripsi adalah proses mengamankan suatu informasi dengan membuat
informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus.
Keuntungan dari enkripsi adalah kode asli kita tidak dapat dibaca oleh
orang lain.
Dekripsi adalah proses mengembalikan suatu informasi dengan cara
tertentu dan sesuai dengan algoritma enkripsi yang dipakai. Dekripsi
merupakan proses kebalikan dari proses enkripsi, mengubah ciphertext
kembali ke dalam bentuk plaintext. Proses utama dalam suatu algoritma
kriptografi adalah enkripsi dan deskripsi.
D. Cipher dan kunci
Cipher atau algoritma kriptografi adalah aturan untuk enchipering dan
dechipering, atau fungsi matematika yang digunakan untuk enkripsi dan
dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk
enchipering dan dechipering. Kunci (key) adalah parameter yang
7

digunakan untuk tranformasi enchipering dan dechipering. Kunci biasanya


berupa string atau deretan bilangan.
E. Penyadap
Penyadap (eavesdropper) 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.
F. Kriptanalisis dan Kriptologi
Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan
cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan.
Pelakunya disebut kriptanalis. Kriptologi (cryptology) adalah studi
mengenai kriptografi dan kriptanalisis.

2.2.2 Tujuan Kriptografi


Tujuan dari kriptografi yang juga merupakan aspek keamanan informasi
adalah sebagai berikut (Rinaldi Munir, 2006) :
1. Kerahasiaan (confidentiality)
Kerahasiaan bertujuan untuk melindungi suatu informasi dari semua pihak
yang tidak berhak atas informasi tersebut. Terdapat beberapa cara yang
dapat digunakan untuk menjaga kerahasiaan suatu informasi, mulai dari
penjagaan secara fisik misalnya menyimpan data pada suatu tempat khusus
sampai dengan penggunaan algoritma matematika untuk mengubah bentuk
informasi menjadi tidak terbaca.
2. Integritas data (data integrity)
Integritas data bertujuan untuk mencegah terjadinya pengubahan informasi
oleh pihak-pihak yang tidak berhak atas informasi tersebut. Untuk
menjamin integritas data ini kita harus mempunyai kemampuan untuk
mendeteksi terjadinya manipulasi data oleh pihak-pihak yang tidak
berkepentingan. Manipulasi data yang dimaksud di sini meliputi
penyisipan, penghapusan, maupun penggantian data.
8

3. Otentikasi (authentication)
Otentikasi merupakan identifikasi yang dilakukan oleh masing – masing
pihak yang saling berkomunikasi, maksudnya beberapa pihak yang
berkomunikasi harus mengidentifikasi satu sama lainnya. Informasi yang
didapat oleh suatu pihak dari pihak lain harus diidentifikasi untuk
memastikan keaslian dari informasi yang diterima. Identifikasi terhadap
suatu informasi dapat berupa tanggal pembuatan informasi, isi informasi,
waktu kirim dan hal-hal lainnya yang berhubungan dengan informasi
tersebut.
4. Non-repudiation
Non-repudiation berfungsi untuk mencegah terjadinya penyangkalan
terhadap suatu aksi yang telah dilakukan oleh pelaku aksi itu sendiri. Jika
terjadi penyangkalan maka diperlukan suatu prosedur yang melibatkan
pihak ketiga untuk menyelesaikan masalah tersebut.

2.3 APLIKASI KRIPTOGRAFI


Kriptografi telah banyak digunakan di dalam aplikasi-aplikasi khususnya
aplikasi pengamanan data pada saat sekarang ini. Aplikasi khas dari kriptografi
adalah sistem yang dikembangkan dengan teknik dasar. Sistem seperti ini, dapat
memiliki tingkat kompleksitas yang beraneka ragam. Beberapa aplikasi yang lebih
sederhana antara lain , komunikasi yang aman, identifikasi, otentikasi, dan secret
sharing. Aplikasi yang lebih rumit seperti sistem untuk electronic commerce (e-
commerce), sertifikasi, electronic mail yang aman, penemuan kunci dan akses
komputer yang aman. Secara umum, makin sederhana aplikasi makin cepat
menjadi realita.

2.3.1 Komunikasi Aman (Secure Communication)


Komunikasi aman merupakan penggunaan kriptografi yang paling
sederhana. Dua pihak dapat berkomunikasi secara aman dengan cara
mengenkripsi pesan-pesan yang mereka kirimkan di antara mereka. Hal ini dapat
dicapai sedemikian rupa sehingga pihak ketiga yang mendapat bocoran
9

(menyadap) pembicaraan antar kedua pihak tadi mungkin tidak pernah


mengembalikan pesan dalam bentuk acak ke dalam bentuk yang berarti.

2.3.2 Identifikasi dan Otentikasi


Identifikasi dan otentikasi merupakan dua aplikasi kriptografi yang sangat
banyak digunakan saat ini. Identifikasi adalah proses verifikasi identitas seseorang
atau sesuatu. Sebagai contoh, ketika menarik uang dari bank dengan
menggunakan kartu Automatic Teller Machine (ATM) dilengkapi dengan satu
Personal Identification Number (PIN) yang rahasia yang memadukan pemilik
kartu dengan kartu tersebut demikian juga dengan rekening yang bersangkutan.
Ketika kartu dimasukkan ke dalam mesin ATM, mesin tersebut akan meminta
pengguna kartu untuk memasukkan PIN. Jika PIN yang dimasukkan benar, mesin
akan mengidentifikasikan orang tersebut benar sebagai pemilik kartu sehingga
kepada orang tersebut akan diberikan akses. Aplikasi penting lainnya dari
kriptografi adalah otentikasi. Otentikasi mirip dengan indetifikasi, dimana
keduanya memberikan kesempatan untuk akses ke dalam sumber daya tertentu
misalnya Internet Account, tetapi otentikasi memiliki cakupan lebih luas karena
tidak perlu mengidentifikasikan orang atau entity.

2.3.3 Secret Sharing


Menurut (Akhmad Mukhlis, 2011), Secret Sharing merupakan salah satu
aplikasi dari kriptografi yang memungkinkan pendistribusian satu rahasia di
antara sekumpulan orang yang tidak saling mempercayai. Skema secret sharing
merupakan sebuah protokol multi-party yang berhubungan dengan penyediaan
kunci. Adapun latar belakang dari dibuatnya secret sharing adalah: untuk
menjamin kunci kriptografi agar tidak hilang, maka dibuatlah sebuah salinan
sebagai back up-nya. Dimana semakin banyak salinan yang dibuat, maka semakin
besar pula resikonya. Disisi lain, jika salinan yang dibuat sedikit maka resiko
kunci hilang juga akan semakin besar. Dari masalah ini, maka skema secret
sharing dibuat untuk mempertinggi reliabilitas tanpa menambah resiko. skema
secret sharing bisa jadi merupakan sebuah skema sharing control jika input yang
di-share dari dua atau lebih entitas dibutuhkan utuk memungkinkan dilakukan
10

critical action (mungkin proses recovery kunci menjadi pemicu dari action ini,
atau mungkin juga proses recovery itu sendiri yang menjadi critical action).
Dalam sembarang secret sharing scheme, terdapat kumpulan orang yang
terpilih yang informasi kumulatif mereka cukup untuk memecahkan rahasia.
Dalam beberapa implementasi secret sharing schemes, setiap partisipan menerima
rahasia setelah rahasia dimaksud dihasilkan. Dalam implementasi lain, rahasia
sebenarnya tidak pernah dibuat kelihatan kepada partisipan, walaupun akses
diberikan untuk mendapatkan rahasia tersebut diberikan (misalnya akses ke dalam
ruangan atau izin untuk melakukan proses).

2.3.4 Sertifikasi (Certification)


Sertifikasi merupakan salah satu aplikasi lainnya dari kriptografi.
Sertifikasi adalah sebuah skema dimana pihak yang dipercayai seperti penguasa
atau pihak yang berwenang mengeluarkan sertifikat untuk pihak lain. Pihak yang
dipercayai mengeluarkan kupon (vouchers) yang disebut sertifikat yang memiliki
sejumlah arti yang mendalam, misalnya nomor ijazah. Teknologi sertifikasi
dikembangkan untuk identifikasi dan otentikasi dimungkinkan dalam skala besar.

2.3.5 Penemuan Kunci (Key Recovery)


Penemuan kunci adalah suatu teknologi yang memungkinkan sebuah kunci
ditemukan dalam kondisi tertentu tanpa pemilik memberitahukan. Ini perlu untuk
dua alasan, pertama, jika pemilik kunci menghilangkan atau secara tidak sengaja
menghapus kuncinya, penemuan kunci dapat menghindarkan malapetaka. Kedua,
jika aparat penegak hukum ingin mengetahui suatu tindak kriminal tanpa
sepengetahuan tersangka, aparat tersebut harus mampu mendapatkan kunci yang
diinginkan. Teknik penemuan kunci sudah banyak digunakan saat ini, akan tetapi,
penggunaan teknik ini dalam hal penegakan hukum telah menimbulkan
kontroversi.

2.4 JENIS-JENIS KRIPTOGRAFI


Berdasarkan kunci yang dipakai untuk enkripsi dan dekripsi, kriptografi
dapat dibedakan atas dua golongan, yaitu :
11

1. Kriptografi Kunci Simetris (symmantric key cryptography )


2. Kriptografi Kunci Asimetris (Asymmetric key cryptography)

2.4.1 Kriptografi Kunci Simeteris


Algoritma kriptografi kunci simeteris atau disebut juga algoritma
kriptografi konvensioanal adalah algoritma yang menggunakan kunci untuk
proses enkripsi sama dengan kunci yang digunakan untuk melakukan proses
dekripsi (Iswanti Suprapti, 2003).
Algoritma kriptografi simeteris dibagi menajdi 2 kategori yaitu algoritma
aliran (Stream Ciphers) dan algoritma blok (Block Ciphers). Pada algoritma
aliran, proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedang
pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau
byte data (per blok). Contoh algoritma kunci simetris yang terkenal adalah DES
(Data Encryption Standard), IDEA (International Data Encryption Algorithm).
Metode yang paling umum untuk kriptografi kunci rahasia adalah block ciphers,
stream ciphers, Desain Cipher.

2.4.1.1 Block Cipher


Block cipher adalah bentuk algoritma enkripsi kunci simetri yang
mentransformasikan satu blok data tertentu dari plaintext ke dalam satu blok data
ciphertext dengan panjang blok yang sama. Transformasi ini berlangsung melalui
penggunaan kunci rahasia yang disediakan oleh pemakai (user). Dekripsi
dilakukan dengan menggunakan transformasi kebalikan terhadap blok ciphertext
menjadi satu blok plaintext dengan kunci dan panjang blok yang sama. Panjang
blok tertentu disebut ukuran blok (block size) dimana ukuran blok tersebut
bervariasi misalnya 16 bit, 32 bit, 64 bit, 128 bit atau 256 bit tergantung dari
teknik yang digunakan dan perkembangan kemampuan mikroprosesor
selanjutnya.
Karena blok plaintext yang berbeda dipetakan ke blok ciphertext yang
berbeda (untuk memungkinkan dekripsi yang unik), suatu block cipher secara
efektif menyediakan satu permutasi (korespondensi satu ke banyak) dari set pesan
yang mungkin. Permutasi berpengaruh pada saat enkripsi tertentu yang sudah
12

pasti rahasia, karena permutasi tersebut adalah fungsi dari kunci rahasia. Jika kita
menggunakan satu block cipher untuk mengenkrip satu pesan dengan panjang
sembarang, kita menggunakan teknik yang dikenal sebagai modus operasi untuk
block cipher tersebut. Agar dapat berguna, satu modus operasi setidak-tidaknya
seefisien dan seaman cipher fundamental. Teknik enkripsi mungkin memiliki
sifat-sifat tambahan terhadap sifat-sifat dasar yang dimiliki teknik biasa. Teknik
standard DES telah dipublikasi dalam berbagai publikasi. Versi standard yang
lebih umum menggabungkan 4 modus operasi dari DES untuk dapat diaplikasikan
terhadap block cipher dengan ukuran blok sembarang.

2.4.1.2 Stream Cipher


Merupakan jenis algoritma enkripsi simetri yang mentransformasikan data
secara karakter per karakter. Stream ciphers dapat dibuat sangat cepat sekali, jauh
lebih cepat dibandingkan dengan algoritma block cipher yang manapun.
Sementara algoritma block cipher secara umum digunakan untuk unit plaintext
yang berukuran besar sedangkan stream cipher digunakan untuk blok data yang
lebih kecil, biasanya ukuran bit. Proses enkripsi terhadap plaintext tertentu dengan
algoritma block cipher akan menghasilkan ciphertext yang sama jika kunci yang
sama digunakan. Dengan stream cipher, transformasi dari unit plaintext yang
lebih kecil ini berbeda antara satu dengan lainnya, tergantung pada kapan unit
tersebut ditemukan selama proses enkripsi.
Suatu stream cipher akan menghasilkan apa yang disebut suatu keystream
yaitu suatu barisan bit yang digunakan sebagai kunci. Proses enkripsi dicapai
dengan menggabungkan keystream dengan plaintext biasanya dengan operasi
bitwise XOR.

2.4.1.3 Desain Cipher


Terdapat dua prinsip dasar untuk menghasilkan cipher yang aman, yaitu
confusion dan diffusion. Tanpa memperhatikan hal ini, cipher kita mungkin akan
sangat mudah dipecahkan sandinya.
Confusion berarti mengaburkan hubungan antara plaintext dan ciphertext.
Ini akan membuat frustasi usaha untuk mencari keteraturan dan pola statistik
13

antara plaintext dan ciphertext. Cara paling mudah untuk melakukan hal ini adalah
dengan substitusi. Substitusi modern menggunakan cara yang sangat komplek.
Namun cara ini belum cukup. Cipher Jerman, Enigma, yang menggunakan
algoritma substitusi yang komplek dipecahkan oleh Sekutu dalam perang dunia
kedua.
Dimana diffusion berarti menghilangkan redundansi plaintext dengan
menyebarkan masukan ke seluruh ciphertext. Diperlukan waktu yang lebih lama
untuk memecahkan sandi rahasia ini, bila diffusion digunakan. Cara paling mudah
untuk melakukan diffusion adalah transposisi atau permutasi. Dalam dunia
kriptografi modern, confusion dan diffusion ini dilakukan secara sangat intensif
dengan bantuan komputer.

2.4.2 Kriptografi Kunci Asimetri


Algoritma kriptografi asimetri adalah algoritma yang menggunakan kunci
yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini disebut juga
algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dibuat
umum (public key) atau dapat diketahui oleh setiap orang, tapi kunci untuk
dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang
disandikan atau sering disebut kunci pribadi (private key), (Iswanti Suprapti,
2003).
Kriptografi kunci publik diperkenalkan oleh Whitfield Diffie dan Martin
Hellman pada tahun 1976. Kriptografi kunci publik memiliki dua penggunaan
utama, yakni enkripsi dan tanda tangan digital (encryption and digital signatures).
Dalam sistem kriptografi kunci publik, masing-masing pihak mendapat sepasang
kunci, satu disebut kunci publik (public key) dan satu lagi disebut kunci rahasia
(private key). Kunci publik dipublikasikan, sementara kunci rahasia tetap
dirahasiakan. Keharusan penggunaan kunci secara bersama antara pengirim dan
penerima pesan rahasia dihilangkan, semua komunikasi hanya melibatkan kunci
publik, dan tidak ada kunci rahasia yang ditransmisikan atau digunakan bersama.
Dalam sistem ini, tidak ada lagi kecurigaan terhadap keamanan dari sistem
komunikasi. Satu-satunya kebutuhan bahwa kunci publik dikaitkan dengan
14

penggunanya dalam lingkup yang saling mempercayai (contoh dalam suatu


trusted directory). Seseorang dapat mengirimkan pesan rahasia dengan hanya
menggunakan informasi yang umum (kunci publik), tetapi pesan tersebut hanya
mungkin didekrip dengan menggunakan kunci rahasia, dimana satu-satunya yang
memiliki kunci rahasia tersebut hanyalah orang yang diharapkan menerima pesan
tersebut. Kriptografi kunci publik tidak hanya digunakan untuk merahasiakan
pesan, tetapi juga untuk otentikasi (tanda tangan digital) dan teknik lainnya.
Dalam kriptografi kunci publik, kunci rahasia selalu berhubungan secara
matematis terhadap kunci publik. Oleh karena itu, selalu dimungkinkan untuk
menembus (menyerang) sistem kunci publik dengan menurunkan kunci rahasia
dari kunci publik. Biasanya, cara untuk menangkal kemungkinan tersebut adalah
membuat sesulit mungkin untuk menghasilkan kunci privat dari kunci publik.
Sebagai contoh, beberapa kriptosistem kunci publik dibuat sedemikian hingga
penurunan kunci rahasia (privat) dari kunci publik mengharuskan penyerang
melakukan faktorisasi terhadap bilangan yang sangat besar, dalam hal ini sangat
sulit untuk melakukan penurunan. Inilah ide di belakang RSA public-key
cryptosystem. Contoh algoritma terkenal yang menggunakan kunci asimetris
adalah RSA dan ECC.

Kunci Umum Kunci Pribadi

Plaintext Chipertext Plaintext


Enkripsi Dekripsi

Gambar 2.2 Proses Enkripsi/Dekripsi Public Key Cryptography

2.5 LANDASAN MATEMATIKA KRIPTOGRAFI


2.5.1 Aritmatika Modulo
Aritmatika modular merupakan operasi matematika yang banyak
diimplementasikan pada metode kriptografi. Pada metoda IDEA, operasi
aritmetika modular yang dipakai adalah operasi penjumlahan modulo 216 dan
15

operasi perkalian modulo 216+1. Operasi modulo ini melibatkan bilangan 0 dan 1
saja sehingga identik dengan bit pada komputer.
Contohnya:
(65530 + 10) mod 216 = 65540 mod 65536 = 4

(32675 * 4) mod (216 + 1) = 131060 mod 65537 = 65523

2.5.2 Invers Perkalian


Inverse perkalian yang digunakan pada metode IDEA tidak seperti inverse
pada operasi perkalian dalam matematika. Inverse perkalian ini tidak dapat
dijelaskan secara matematis, tetapi dengan menggunakan algoritma berikut ini :
Fungsi Inverse(A As Double) As Double
n = 65537
G0 = n
G1 = A
V0 = 0
V1 = 1
While (G1 <> 0)
Y = Int(G0 / G1)
G2 = G0 - Y * G1
G0 = G1
G1 = G2
V2 = V0 - Y * V1
V0 = V1
V1 = V2
Wend
If (V0 >= 0) Then
Inverse = V0
Else
Inverse = V0 + n
End If
End Fungsi
Contoh:
Misalkan untuk A = 3265, maka proses kerjanya adalah sebagai berikut :
n = 65537
GO = 65537
16

G1 = 3265
VO = 0
V1 = 1
While 3265 <> 0 --> BENAR
Y = Int(65537/3265) = 20
G2 = 65537 - 20 * 3265 = 237
G0 = 3265
G1 = 237
V2 = 0 - 20*1 = -20
V0 = 1
V1 = -20
While 237 <> 0 --> BENAR
Y = Int(3265/237) = 13
G2 = 3265 - 13 * 237 = 184
G0 = 237
G1 = 184
V2 = 1 - 13*-20 = 261
V0 = -20
V1 = 261
While 184 <> 0 --> BENAR
Y = Int(237/184) = 1
G2 = 237 - 1 * 184 = 53
G0 = 184
G1 = 53
V2 = -20 - 1*261 = -281
V0 = 261
V1 = -281
While 53 <> 0 --> BENAR
Y = Int(184/53) = 3
G2 = 184 - 3 * 53 = 25
G0 = 53
G1 = 25
V2 = 261 - 3*-281 = 1104
V0 = -281
V1 = 1104
While 25 <> 0 --> BENAR
Y = Int(53/25) = 2
G2 = 53 - 2 * 25 = 3
17

G0 = 25
G1 = 3
V2 = -281 - 2*1104 = -2489
V0 = 1104
V1 = -2489
While 3 <> 0 --> BENAR
Y = Int(25/3) = 8
G2 = 25 - 8 * 3 = 1
G0 = 3
G1 = 1
V2 = 1104 - 8*-2489 = 21016
V0 = -2489
V1 = 21016
While 1 <> 0 --> BENAR
Y = Int(3/1) = 3
G2 = 3 - 3 * 1 = 0
G0 = 1
G1 = 0
V2 = -2489 - 3*21016 = -65537
V0 = 21016
V1 = -65537
While 0 <> 0 --> SALAH, MAKA KELUAR DARI LOOPING.
If (21016 >= 0) --> BENAR
Invers = 21016
Jadi inverse perkalian dari 3265 adalah 21016.

2.5.3 Invers Penjumlahan

Inverse penjumlahan dalam metode IDEA menggunakan algoritma berikut


ini:
Contoh :
Inverse penjumlahan = 65536 - pnBil
Inverse penjumlahan dari 32654 adalah 65536 – 32654 = 32882
18

2.5.4 Operasi XOR


XOR adalah operasi Exclusive-OR yang dilambangkan dengan tanda “”.
Operasi XOR akan menghasilkan nilai bit “0” (nol) jika meng-XOR-kan dua buah
bit yang sama nilainya dan akan menghasilkan nilai bit “1” (satu) jika meng-
XOR-kan dua buah bit yang masing – masing nilai bitnya berbeda. Aturan yang
berlaku untuk operasi XOR dapat dilihat pada Tabel 2.1 berikut ini:
Tabel 2.1 Aturan Operasi XOR

A B AB
0 0 0
0 1 1
1 0 1
1 1 0

Nilai A jika di-XOR-kan dengan nilai B sebanyak dua kali maka akan
didapatkan nilai A kembali. Karena sifat istimewa yang dimiliki operasi XOR
tersebut sehingga operasi XOR cenderung dipakai dalam proses enkripsi dan
dekripsi yang memiliki algoritma yang sama.
Berikut ini adalah contoh operasi XOR :
1101 0110 0001 0100
1000 0001 1110 0000 
0101 0111 1111 0100

2.5.5 Permutasi (Permutation)


Permutasi merupakan suatu proses korespondensi dari satu ke banyak.
Permutasi dalam kriptografi sering digunakan untuk memindahkan posisi
sejumlah bit ke posisi yang telah ditentukan dalam tabel permutasi. Ada beberapa
metode dalam kriptografi yang menggunakan permutasi pada awal maupun akhir
dari proses enkripsi maupun dekripsi, dan ada juga metode yang menggunakan
permutasi untuk menghasilkan beberapa subkunci yang diperlukan dalam proses
enkripsi dan dekripsi.
Berikut ini adalah contoh permutasi. Misalkan terdapat sebuah tabel
permutasi 16 bit sebagai berikut :
19

Table 2.2 Tabel Permutasi 16 Bit

12 4 13 5

14 6 15 7

0 8 1 9

11 2 3 10

Diberikan 1 baris bit sebagai berikut : 1110 0110 0000 1001


Terhadap barisan bit tersebut akan dilakukan permutasi menggunakan
tabel permutasi sebagai berikut :
Table 2.3 Contoh Menggunakan Permutasi

Bit ke- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Bit 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1

Tabel 2.4 Hasil permutasi

Bit ke- 12 4 13 5 14 6 15 7 0 8 1 9 11 2 3 10

Bit 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0

2.5.6 Pergeseran Bit (Shift)


Pergeseran bit (Shift) adalah operasi pergeseran terhadap suatu barisan bit
sebanyak yang diinginkan. Bit kosong yang telah tergeser akan diberikan nilai bit
“0” (nol). Operasi pergeseran terbagi menjadi dua macam yaitu,
1. Operasi Geser Kiri (Shift Left) yaitu operasi yang menggeser (shift) sejumlah
bit ke kiri (left) dengan nilai bit “0” (nol). Operasi shift left dilambangkan

dengan “<<”.
Contoh operasi shift left :
11000110 << 1 : 10001100
11000110 << 2 : 00011000
20

Operasi Geser Kanan (Shift Right) yaitu operasi yang menggeser (shift)
sejumlah bit ke kanan (right) dengan nilai bit “0” (nol). Operasi shift right

dilambangkan dengan “>>”.


Contoh operasi shift right :
11000110 >> 1 : 01100011
11000110 >> 2 : 00110001

2.5.7 Rotasi Bit (Rotate)


Rotasi bit (Rotate) adalah operasi perputaran terhadap suatu barisan bit
sebanyak yang diinginkan. Bit yang tergeser akan dipindahkan ke sisi barisan bit
yang berlawanan dengan arah putaran bit. Operasi rotasi terbagi atas dua macam
yaitu,
1. Operasi Rotasi Kiri (Rotate Left) yaitu operasi memutar barisan bit ke kiri
sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di
sebelah kanan akan digantikan dengan bit yang telah tergeser di sebelah

kirinya. Operasi rotate left dilambangkan dengan “<<<”. Contoh operasi

rotate left :
11000110 <<< 1 : 10001101
11000110 <<< 2 : 00011011
11000110 <<< 3 : 00110110
2. Operasi Rotasi Kanan (Rotate Right) yaitu operasi memutar barisan bit ke
kanan sebanyak nilai yang diberikan secara per bit, bit kosong yang telah
tergeser di sebelah kiri akan digantikan dengan bit yang telah tergeser di

sebelah kanannya. Operasi rotate right dilambangkan dengan “>>>”.Contoh


operasi rotate right :
11000110 >>> 1 : 01100011
11000110 >>> 2 : 10110001
11000110 >>> 3 : 11011000
21

2.5.8 Perkalian Modulo


Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki invers.
Perkalian modulo n juga tidak memiliki invers jika angka yang dikalikan tidak
relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi
yang memiliki inversi. Angka 65537 (216 + 1) adalah sebuah bilangan prima. Oleh
karena itu, operasi perkalian modulo (216 + 1) pada algoritma IDEA memiliki
inversi. Jika kita membentuk suatu tabel perkalian untuk bilangan-bilangan mulai
dari 1 sampai 65536, maka setiap baris dan kolom hanya berisi setiap bilangan
satu kali saja.
Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol
semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai
dengan bilangan tak bertanda yang diwakilinya.
Contoh :
(32542 * 10) mod 65537 = 325420 mod 65537 = 63272
(3154 * 25) mod 65537 = 78850 mod 65537 = 13313

2.6 ALGORITMA IDEA


2.6.1 Sejarah Algoritma IDEA
Metoda IDEA diperkenalkan pertama kali oleh Xuejia Lai dan James
Massey pada tahun 1990 dengan nama PES (Proposed Encryption Standard).
Tahun berikutnya, setelah Biham dan Shamir mendemonstrasikan cryptanalysis
yang berbeda, sang penemu memperkuat algoritma mereka dari serangan dan
algoritma hasil pengubahan tersebut diberi nama IPES (Improved Proposed
Encryption Algorithm). Kemudian pada tahun 1992, IPES diganti namanya
menjadi IDEA (International Data Encryption Algorithm). IDEA dirancang untuk
menggantikan DES (Data Encryption Standard).

2.6.2 Arsitektur Umum Prosesor Kriptografi IDEA


Pada gambar berikut diperlihatkan arsitektur atau penggambaran umum
sebuah processor yang mengolah sistem keamanan data dengan menggunakan
22

algoritma IDEA. Makalah Perbandingan Algoritma IDEA dengan DES (Stevens


Jethefer) :

Gambar 2.3 Arsitektur Prosesor Kriptografi IDEA

Keterangan :
1. Blok Penyandi IDEA
Blok ini berfungsi untuk melakukan proses penyandian data. Jika sub-
kunci yang diproses oleh blok ini berupa sub-kunci enkripsi maka
pesan yang dihasilkan adalah pesan rahasia (Chipertext) dan jika yang
diproses berupa sub-kunci deskripsi maka pesan yang dihasilkan
adalah pesan sebenarnya (Plaintext).
2. Blok pembangkit sub-kunci
Blok ini berfungsi untuk membentuk 52 buah sub-kunci enkripsi 16 bit
dari kunci enkripsi 128 bit. Sehingga membentuk 52 buah sub-kunci
dekripsi 16 bit dari kunci dekripsi 128 bit.
3. Blok port data-in
Blok ini berfungsi untuk membaca 2 buah blok data masukan 32 bit
dan penyimpanannya sebagai blok data masukan 64 bit yang akan
dienkripsi atau didekripsi.
23

4. Blok port data-out


Blok ini berfungsi untuk mengeluarkan blok data keluaran 64 bit yang
merupakan hasil enkripsi atau dekripsi dengan cara membagi menjadi
2 buah blok data keluaran 32 bit.
5. Blok port kunci-n
Blok ini berfungsi untuk membaca 4 buah blok kunci 32 bit dan
menyimpannya sebagai blok kunci 128 bit.
6. Blok mode operasi
Blok ini berfungsi untuk menentukan mode operasi yang digunakan
pada proses enkripsi dan dekripsi.
7. Blok control
Blok ini berfungsi untuk mengontrol operasi antara blok fungsional
yang menyusun sebuah blok besar seperti sinkronisasi transfer data
antara blok.

2.6.3 Kekuatan Algoritma IDEA


Makalah Perbandingan Algoritma IDEA dengan DES (Stevens Jethefer)
IDEA menunjukkan dirinya sendiri bahwa algoritma yang kebal menghadapi
berbagai serangan dari para kriptanalisis dengan asumsi tertentu. Pembuat dari
algoritma ini mengetahui kelemahan dari DES dan mencoba memperbaikinya dan
membuat suatu algoritma yang lebih kebal/tangguh terhadap berbagai jenis
serangan.
Pada tahun 1992, Joan Daemen menemukan sebuah kelas yang merupakan
titik lemah dari kunci.
Contoh kunci berikut ini, k = 0000,0000,0x00,0000,0000,000x,xxxx,x000
dalam bentuk hexadecimal akan menjadi lemah/rentan terhadap serangan, artinya
adalah seorang kriptanalisis dapat mengidentifikasi kunci ini dengan satu serangan
pada plaintext yang sudah terpilih. Posisi x dapat memiliki nilai apapun dalam
hexadecimal.
Kemungkinan dari tipe kunci yang seperti ini dapat digunakan adalah
hanya 1 sampai 296, dan itu semua mungkin terjadi. Namun hal ini juga bisa
24

dihindari dengan melakukan proses desain yang baik. Sampai tahun 2004,
serangan terbaik yang dapat dilakukan pada semua kunci yang dapat memecahkan
IDEA dilakukan di bawah putaran ke-5 (algoritma IDEA yang penuh
menggunakan 8.5 putaran).
Pada tahun 1996, Bruce Schneier sangat memandang tinggi IDEA, beliau
menulis, "Menurut saya, IDEA merupakan algoritma blok-chiper yang terbaik dan
paling aman yang tersedia pada masyarakat luas pada saat ini." (Applied
Cryptography, 2nd ed.) Akan tetapi, pada tahun 1999 dia tidak lagi
merekomendasikan algoritma IDEA dikarenakan ketersediaan dari algoritma lain
yang lebih cepat, beberapa perkembangan para kriptanalisis, dan munculnya hak
paten pada IDEA.
Sampai saat ini, serangan apapun pada sistem yang menggunakan
algoritma kriptografi IDEA baik secara aljabar maupun linear masih belum
diketahui oleh para kriptanalisis. Pada tahun 1997, Joan Daemen and Vincent
Rijmen akan menciptakan RIJNDAEL, sebuah standar NIST yang baru pada akhir
tahun 2001.

2.6.4 Kelebihan Algoritma IDEA


Algoritma IDEA mempunyai kelebihan-kelebihan sebagai berikut :
1. Dalam segi keamanan penyandian data algoritma IDEA mempunyai
standar yang lebih sederhana namun cukup ampuh untuk mencegah
serangan cryptanalysis terhadap kunci enkripsi dan dekripsi. Pembangkit
kunci yang diperoleh dengan menjalankan fungsi pembangkit bilangan
acak terbukti dapat menyandikan data plaintext menjadi ciphertext yang
sulit untuk diterjemahkan langsung namun mudah untuk didekripsi dengan
menggunakan kunci dekripsi yang asli.
2. Dari segi efisiensi waktu algoritma IDEA mempunyai akselerasi yang
cukup baik dalam mengenkripsi dan mendekripsi data, terutama karena
struktur algoritmanya lebih singkat namun tidak mengurangi kemampuan
dasar dalam mengamankan penyandian data.
25

2.6.5 Algoritma IDEA


IDEA merupakan block cipher (cipher blok), yang beroperasi pada blok
plaintext 64 bit. Panjang kuncinya 128 bit. Algoritma yang sama digunakan untuk
proses enkripsi dan dekripsi. Sebagaimana algoritma enkripsi yang lain, IDEA
menggunakan confusion dan diffusion, berbeda dengan DES yang menggunakan
permutasi dan substitusi untuk confusion dan diffusion, IDEA menggunakan
operasi aljabar yang tidak kompatibel sebagai berikut,
a. XOR.
b. Penambahan modulo 216.
c. Perkalian modulo 216+1 (operasi ini menggantikan kotak-S atau S-Box).
Algoritma IDEA (International Data Encryption Algorithm) menggunakan
perkalian modulo 216+1 dengan pertimbangan berikut ini.
Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki inversi.
Perkalian modulo n juga tidak memiliki inversi jika angka yang dikalikan tidak
relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi
yang memiliki inversi. Angka 65537 (216+1) adalah sebuah bilangan prima. Oleh
karena itu, operasi perkalian modulo (216+1) pada algoritma IDEA memiliki
inversi. Jika kita membentuk suatu tabel perkalian untuk bilangan-bilangan mulai
dari 1 sampai 65536, maka setiap baris dan kolom hanya berisi setiap bilangan
satu kali saja.
Dalam Algoritma IDEA untuk operasi perkalian, bilangan 16 bit yang
terdiri dari nol semua dianggap sebagai bilangan 65536, sedangkan bilangan
lainnya tetap sesuai dengan bilangan tak bertanda yang diwakilinya. Algoritma
IDEA ini dapat dibagi menjadi dua bagian besar, yaitu enkripsi dan dekripsi.
BAB III
METODELOGI PENELITIAN

3.1 DATA PENELITIAN


IDEA merupakan block cipher (chipper blok) yang beroperasi pada blok
plaintext 64 bit dan kunci 128 bit. Dalam proses metode IDEA memiliki input 128
bit kunci (key) yang identik dengan 32 digit heksadesimal ataupun 16 karakter
yang diproses untuk menghasilkan 52 subkey dengan perincian masing-masing 6
buah subkey akan digunakan pada 8 putaran dan 4 buah subkey untuk transformasi
output. Algoritma IDEA ini menggunakan kunci (key) simetris, dimana kunci
yang digunakan enkripsi sama dengan dekripsi.

3.2 ALAT-ALAT YANG DIGUNAKAN


Adapun alat-alat yang digunakan dalam melakukan penelitian ini adalah:

3.2.1 Perangkat Lunak


Adapun perangkat lunak yang akan digunakan dalam penelitian ini adalah:
1. Microsoft Windows 7
2. Microsoft Word 2007
3. Microsoft Visio 2007
4. Visual Basic 6.0

3.2.2 Perangkat Keras


Adapun perangkat keras yang digunakan dalam penelitian ini adalah:
1. Processor Intel Core ™ i5 Turbo Baster
2. RAM 2 GB
3. HDD 500 GB
4. Mouse
27

3.3 PROSES ENKRIPSI ALGORITMA IDEA


Proses enkripsi algoritma IDEA adalah sebagai berikut, pertama–tama
plaintext 64 bit dibagi menjadi 4 buah sub blok dengan panjang 16 bit, yaitu X1,
X2, X3, X4. Empat sub blok ini menjadi masukan bagi iterasi tahap pertama
algoritma. Total terdapat 8 iterasi. Pada setiap iterasi, 4 sub blok di-XOR-kan,
ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16 bit.
Diantara iterasi sub blok kedua dan ketiga saling dipertukarkan. Akhirnya 4 buah
sub blok dikombinasikan dengan 4 subkey dalam transformasi output. Pada setiap
tahapan, urutan berikut ini dikerjakan,
1. Kalikan X1 dengan K1 mod (216 + 1).
2. Tambahkan X2 dengan K2 mod 216.
3. Tambahkan X3 dengan K3 mod 216.
4. Kalikan X4 dengan K4 mod (216 + 1).
5. XOR hasil dari step 1 dan 3.
6. XOR hasil dari step 2 dan 4.
7. Kalikan hasil dari step 5 dengan K5 mod (216 + 1).
8. Tambahkan hasil dari step 6 dan 7 mod 216.
9. Kalikan hasil dari step 8 dengan K6 mod (216 + 1).
10. Tambahkan hasil dari step 7 dan 9 mod 216.
11. XOR hasil dari step 1 dan 9.
12. XOR hasil dari step 3 dan 9.
13. XOR hasil dari step 2 dan 10.
14. XOR hasil dari step 4 dan 10.

Output dari setiap round adalah empat sub blok yang dihasilkan pada langkah 11,
12, 13 dan 14. Sub blok 12 dan 13 di-swap (kecuali untuk putaran terakhir)
sehingga input dari putaran berikutnya adalah hasil kombinasi dari langkah 11 13
12 14.Setelah 8 putaran, akan dilakukan tranformasi output berikut,
1. Kalikan X1 dengan subkey K1 mod (216 + 1).
2. Tambahkan X2 dengan subkey K2 mod 216.
3. Tambahkan X3 dengan subkey K3 mod 216.
4. Kalikan X4 dengan subkey K4 mod (216 + 1).
28

3.4 PROSES DEKRIPSI ALGORITMA IDEA


Proses dekripsi sama persis dengan proses enkripsi. Perbedaannya hanya
terletak pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses
enkripsi dan subkey-nya di-inverse-kan. Subkey pada langkah transformasi output
pada proses enkripsi di-inverse-kan dan digunakan sebagai subkey pada putaran 1
pada proses dekripsi. Subkey pada putaran 8 di-inverse-kan dan digunakan sebagai
subkey pada putaran 1 dan 2 pada proses dekrips. Demikian seterusnya, agar lebih
jelas lihatlah tabel berikut ini.
Table 3.1 Proses Dekripsi

Round Subkey Enkripsi Subkey Dekripsi


-1
1 K1(1) K2(1) K3(1) K4(1) K5(1) K6(1) K1(9) -K2(9)-K3(9) K4(9)-1 K5(8) K6(8)
-
2 K1(2) K2(2) K3(2) K4(2) K5(2) K6(2) K1(8) 1 -K3(8) -K2(8) K4(8)-1 K5(7) K6(7)
-
3 K1(3) K2(3) K3(3) K4(3) K5(3) K6(3) K1(7) 1 -K3(7) -K2(7) K4(7)-1 K5(6) K6(6)
-
4 K1(4) K2(4) K3(4) K4(4) K5(4) K6(4) K1(6) 1 -K3(6) -K2(6) K4(6)-1 K5(5) K6(5)
-
5 K1(5) K2(5) K3(5) K4(5) K5(5) K6(5) K1(5) 1 -K3(5) -K2(5) K4(5)-1 K5(4) K6(4)
-
6 K1(6) K2(6) K3(6) K4(6) K5(6) K6(6) K1(4) 1 -K3(4) -K2(4) K4(4)-1 K5(3) K6(3)
-
7 K1(7) K2(7) K3(7) K4(7) K5(7) K6(7) K1(3) 1 -K3(3) -K2(3) K4(3)-1 K5(2) K6(2)
-
8 K1(8) K2(8) K3(8) K4(8) K5(8) K6(8) K1(2) 1 -K3(2) -K2(2) K4(2)-1 K5(1) K6(1)
Transfor
-
masi K1(9) K2(9) K3(9) K4(9) K1(1) 1 -K2(1) -K3(1) K4(1)-1
output

3.5 Flowchart sistem dengan menggunakan Algoritma IDEA


Berikut ini adalah flowchart sistem kerja dari perangkat lunak kriptografi
dengan Algoritma IDEA yang penulis rancang. Flowchart sistem ini terdiri dari
dua flowchart sistem, yaitu flowchart sistem Enkripsi dan flowchart sistem
dekripsi.
29

START

INPUT PLAIN
TEXT DAN
KUNCI

MENGAMBIL VARIABEL
PLAIN TEXT DAN KUNCI

JIKA VARIBLE TIDAK


MEMENUHI SYARAT
Xn & Kn

YA

TIDAK BLOCK KUNCI


=1

YA

PROSES VARIABLE
DENGAN FORMULA
ENKRIPSI

CHIPER TEKS &


INFORMASI
PROSES
ENKRIPSI

SELESAI

Gambar 3.1 Flowchart Sistem Proses Enkripsi Algoritma IDEA


30

START

INPUT
CHIPER TEXT
DAN KUNCI

MENGAMBIL VARIABEL
CHIPER TEXT DAN
KUNCI

TIDAK KUNCIN DESKRIPT =


KUNCI ENKRIPT

YA

JIKA VARIBLE TIDAK


MEMENUHI SYARAT
Xn & Kn

YA

TIDAK BLOCK KUNCI


=1

YA

PROSES VARIABLE
DENGAN FORMULA
DENKRIPSI

PLAIN TEKS &


INFORMASI
PROSES
DEKRIPSI

SELESAI

Gambar 3.2 Flowchart Sistem Proses Dekripsi Algoritma IDEA


31

3.6 Proses Perancangan dan Analisa


Pada penelitian ini pendekatan yang digunakan dalam pembangunan
sistem ini adalah terstruktur. Perancangan dari bentuk kerja sistem di lakukan
dengan menggunakan DFD. Pengambaran DFD secara lengkap akan di
perlihatkan di dalam bab IV.
BAB IV
ANALISA DAN PEMBAHASAN

4.1 ANALISA ALGORITMA IDEA


4.1.1 Analisa 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.

4.1.2 Analisa 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.
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.
Berdasarkan analisis yang dilakukan terhadap keperluan perangkat lunak,
maka dapat diambil keputusan bahwa nama dari perangkat lunak yang akan
33

dibangun adalah KriptIDEA, dimana Kript menunjukkan fungsi dari perangkat


lunak dan Idea merupakan nama algoritma yang di gunakan. Perangkat lunak
yang dibangun nantinya akan menghasilkan 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.

4.1.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 dua
fungsi, yaitu: enkripsi pesan, dekripsi pesan.

4.2 PERANCANGAN SISTEM


Pada perancangan perangkat lunak dengan algoritma IDEA (International
Data Encryption Algorithm), tahap perancangan yang dilakukan mencakup
perancangan data, perancangan struktur program, dan perancangan prosedural.

4.2.1 Perancangan Data


Secara umum Algoritma penyandian IDEA (International Data Encryption
Algorithm) dihitung menggunakan rumus sebagai berikut:
1. Proses Enkripsi
ek(M) = C ....................................................................................... ( 1)
2. Proses Deskripsi
dk(C) = M ....................................................................................... ( 2)
Keterangan:

e = adalah fungsi enkripsi


d = adalah fungsi dekripsi
M = adalah pesan terbuka
C = adalah pesan rahasia
K = adalah kunci enkripsi atau dekripsi
34

Pada proses enkripsi, terdapat tiga operasi yang berbeda untuk pasangan
sub-blok 16-bit yang digunakan, sebagai berikut :
- XOR dua sub-blok 16-bit bir per bit
- Penjumlahan integer modul (216 + 1) dua sub-blok 16-bit , dimana kedua
sub-blok itu dianggap sebagai representasi biner dari integer biasa,
- Perkalian modulo (216 + 1) dua sub-blok 16-bit, dimana kedua sub-blok
16-bit itu dianggap sebagai representasi biner dari integer biasa kecuali
sub-blok nol dianggap mewakili integer 216
Blok pesan terbuka dengan lebar 64-bit , X, dibagi menjadi 4 sub-blok 16-
bit, X1, X2, X3, X4, sehingga X = (X1, X2, X3, X4). Keempat sub-blok 16-bit itu
ditransformasikan menjadi sub-blok 16-bit, Y1, Y2, Y3, Y4, sebagai pesan rahasia
64-bit Y = (Y1, Y2, Y3, Y4) yang berada dibawah kendali 52 sub_blok kunci 16-bit
yang dibentuk dari dari blok kunci 128 bit.
Keempat sub-blok 16-bit, X1, X2, X3, X4, digunakan sebagai masukan
untuk putaran pertama dari algoritma IDEA. Dalam setiap putaran dilakukan
operasi XOR, penjumlahan, perkalian antara dua sub-blok 16-bit dan diikuti
pertukaran antara sub-blok 16-bit putaran kedua dan ketiga. Keluaran putaran
sebelumnya menjadi masukan putaran berikutnya. Setelah putaran kedelapan
dilakukan transformasi keluaran yang dikendalikan oleh 4 sub-blok kunci 16-bit.
Berikut contoh perhitungan enkripsi dan deskripsi secara manual dengan
variable Plain Text bernilai “abcdefgh” dan kunci bernilai “1234567890123456”
1. Nilai konversi karakter ke binary

Table 4.1 Nilai ASCII dari Plainteks dan Kunci Enkripsi

Char Desimal Binary


a 97 01100001
b 98 01100010
c 99 01100011
d 100 01100100
e 101 01100101
f 102 01100110
g 103 01100111
h 104 01101000
1 49 00110001
2 50 00110010
35

3 51 00110011
4 52 00110100
5 53 00110101
6 54 00110110
7 55 00110111
8 56 00111000
9 57 00111001
0 48 00110000

2. Kemudian Kunci digabung menjadi seperti ini


001100010011001000110011001101000011010100110110001101110
011100000111001001100000011000100110010001100110011010000
11010100110110

3. Kunci dipecah menjadi 8 kelompok


KE1 (Putaran 1) = 0011000100110010
KE2 (Putaran 1) = 0011001100110100
KE3 (Putaran 1) = 0011010100110110
KE4 (Putaran 1) = 0011011100111000
KE5 (Putaran 1) = 0011100100110000
KE6 (Putaran 1) = 0011000100110010
KE1 (Putaran 2) = 0011001100110100
KE2 (Putaran 2) = 0011010100110110

4. Selanjutnya dilakukan rotasi ke kiri sebanyak 25 karakter


(00110001001100100011001100110100001101010011011000110111
001110000011100100110000001100010011001000110011001101000
011010100110110,25) =
011010000110101001101100011011100111000001110010011000000
110001001100100011001100110100001101010011011000110001001
10010001100110

5. Kemudian menghasilkan kunci baru sebagai berikut:


KE3 (Putaran 2) = 0110100001101010
KE4 (Putaran 2) = 0110110001101110
KE5 (Putaran 2) = 0111000001110010
KE6 (Putaran 2) = 0110000001100010
KE1 (Putaran 3) = 0110010001100110
KE2 (Putaran 3) = 0110100001101010
KE3 (Putaran 3) = 0110110001100010
KE4 (Putaran 3) = 0110010001100110

6. Begitu seterusnya sampai 6 kali putaran, sampai pada putaran ke 7


hanya 4 pecahan kunci terakhir yang digunakan sehingga menjadi:
KE1 (Transformasi Output) = 1100110100001101 = X1
KE2 (Transformasi Output) = 0100110110001101 = X2
KE3 (Transformasi Output) = 1100111000001110 = X3
KE4 (Transformasi Output) = 0100110000001100 = X4
36

Ini adalah sebuah kunci yang nantinya akan digunakan untuk perhitungan
enkripsi dan deskripsi.
A. Proses Enkripsi
Pada proses enkripsi ini dilakukan perhitungan 8 kali putaran dengan setiap
putarannya dilakukan sebagai berikut:
Table 4.2 Langkah Proses Enkripsi

L Rumus Nilai Proses Hasil Proses


1 (X1 * K1) mod (2^16 + 1) 0110000101100010 * 1011010001101110
0011000100110010 mod (2^16 + 1)
2 (X2 + K2) mod 2^16 0110001101100100 + 1001011010011000
0011001100110100 mod 2^16
3 (X3 + K3) mod 2^16 0110010101100110 + 1001101010011100
0011010100110110 mod 2^16
4 (X4 * K4) mod (2^16 + 1) 0110011101101000 * 1110000001110011
0011011100111000 mod (2^16 + 1)
5 L#1 XOR L#3 1011010001101110 XOR 0010111011110010
1001101010011100
6 L#2 XOR L#4 1001011010011000 XOR 0111011011101011
1110000001110011
7 (L#5 * K5) mod (2^16 + 1) 0010111011110010 * 1010010011100100
0011100100110000 mod (2^16 + 1)
8 (L#6 + L#7)) mod 2^16 0111011011101011 + 0001101111001111
1010010011100100 mod 2^16
9 (L#8 * K6) mod (2^16 + 1) 0001101111001111 * 0000100000010110
0011000100110010 mod (2^16 + 1)
10 (L#7 + L#9)) mod 2^16 1010010011100100 + 1010110011111010
0000100000010110 mod 2^16
11 L#1 XOR L#9 1011010001101110 XOR 1011110001111000
0000100000010110
12 L#3 XOR L#9 1001101010011100 XOR 1001001010001010
0000100000010110
13 L#2 XOR L#10 1001011010011000 XOR 0011101001100010
1010110011111010
14 L#4 XOR L#10 1110000001110011 XOR 0100110010001001
1010110011111010

Kemudian 4 langkah terakhir 11,12,13,14 menjadi nilai X1,X2,X3,X4


untuk proses selanjutnya. Begitu seterusnya sampai 8 putaran.
Sehingga diperoleh nilai transformasi dari perhitungan ini:
X1 = L#11 = 1011110000010111
X2 = L#13 = 0101111011011111
X3 = L#12 = 1000001001101111
X4 = L#14 = 1101111001110010

Nilai-nilai ini kemudian ditransformasikan dengan rumus seperti ini:


37

Table 4.3 Proses Transformasi Enkripsi

Y Rumus Nilai Proses Hasil Proses

1 (X1 * K1) mod (2^16 + 1) 1011110000010111 * 0110000110000100


1100110100001101 mod (2^16 + 1)
2 (X2 + K2) mod 2^16 0101111011011111 + 1010110001101100
0100110110001101 mod 2^16
3 (X3 + K3) mod 2^16 1000001001101111 + 0101000001111101
1100111000001110 mod 2^16
4 (X4 * K4) mod (2^16 + 1) 1101111001110010 * 0000001101000100
0100110000001100 mod (2^16 + 1)

Hasil Proses (Binary) kemudian diterjemahkah kedalam bentuk karakter


ascii sehingga menjadi:
Y1 = 0110000110000100 = a„
Y2 = 1010110001101100 = ¬l
Y3 = 0101000001111101 = P}
Y4 = 0000001101000100 = D

Ini hasil akhir dari proses perhitungan enkripsi sehingga menghasilkan


sebuah Cipher text dengan nilai “a„¬lP} D”
B. Proses Deskripsi
Pada dasarnya proses yang dilakukan untuk deskripsi ini hampir sama
dengan proses enkripsi, terdapat sedikit perbedaan pada 52 buah sub-blok kunci
yang digunakan masing-masing merupakan hasil turunan 52 buah sub-blok kunci
enkripsi. Berikut bentuk perhitungan manual untuk desckripsi dengan nilai
chipper text “a„¬lP}D” dan kunci “1234567890123456”.
1. Nilai konversi chipper text
Table 4.4 Nilai ASCII dari Chiperteks
Char Desimal Binary
A 97 01100001
„ 132 10000100
¬ 172 10101100
L 108 01101100
80 010100
} 125 01111101
3 00000011
D 68 01000100
38

2. Proses Perhitungan berikutnya sama dengan proses enkripsi yaitu


menggunakan rumus-rumus sebanyak 8 kali putaran sebagai berikut:
Table 4.5 Langkah Proses Dekripsi

L Rumus Nilai Proses Hasil Proses


1 (X1 * K1) mod (2^16 + 1) 0110000110000100 * 1011110000010111
1110101000110011 mod (2^16 + 1)
2 (X2 + K2) mod 2^16 1010110001101100 + 0101111011011111
1011001001110011 mod 2^16
3 (X3 + K3) mod 2^16 0101000001111101 + 1000001001101111
0011000111110010 mod 2^16
4 (X4 * K4) mod (2^16 + 1) 0000001101000100 * 1101111001110010
0010101111000000 mod (2^16 + 1)
5 L#1 XOR L#3 1011110000010111 XOR 0011111001111000
1000001001101111
6 L#2 XOR L#4 0101111011011111 XOR 1000000010101101
1101111001110010
7 (L#5 * K5) mod (2^16 + 1) 0011111001111000 * 1010001010100011
0100011001100110 mod (2^16 + 1)
8 (L#6 + L#7)) mod 2^16 1000000010101101 + 0010001101010000
1010001010100011 mod 2^16
9 (L#8 * K6) mod (2^16 + 1) 0010001101010000 * 1011001101001110
1000011010100110 mod (2^16 + 1)
10 (L#7 + L#9)) mod 2^16 1010001010100011 + 0101010111110001
1011001101001110 mod 2^16
11 L#1 XOR L#9 1011110000010111 XOR 0000111101011001
1011001101001110
12 L#3 XOR L#9 1000001001101111 XOR 0011000100100001
1011001101001110
13 L#2 XOR L#10 0101111011011111 XOR 0000101100101110
0101010111110001
14 L#4 XOR L#10 1101111001110010 XOR 1000101110000011
0101010111110001

Kemudian 4 langkah terakhir 11,12,13,14 menjadi nilai X1,X2,X3,X4


untuk proses selanjutnya. Begitu seterusnya sampai 8 putaran.
Sehingga diperoleh nilai transformasi dari perhitungan ini:
X1 = L#11 = 0000111101011001
X2 = L#13 = 0011000100100001
X3 = L#12 = 0000101100101110
X4 = L#14 = 1000101110000011

Nilai-nilai ini kemudian ditransformasikan dengan rumus seperti ini:


39

Table 4.6 Proses Transformasi Dekripsi

Y Rumus Nilai Proses Hasil Proses


1 (X1 * K1) mod (2^16 + 1) 1011010001101110 * 0110000101100010
1011100111100101 mod (2^16 + 1)
2 (X2 + K2) mod 2^16 1001011010011000 + 0110001101100100
1100110011001100 mod 2^16
3 (X3 + K3) mod 2^16 1001101010011100 + 0110001101100100
1100101011001010 mod 2^16
4 (X4 * K4) mod (2^16 + 1) 1110000001110011 * 0110011101101000
1001011000010100 mod (2^16 + 1)

Hasil Proses (Binary) kemudian diterjemahkah kedalam bentuk karakter


ASCII sehingga menjadi:
Y1 = 0110000101100010 = ab
Y2 = 0110001101100100 = cd
Y3 = 0110010101100110 = ef
Y4 = 0110011101101000 = gh

Ini hasil akhir dari proses perhitungan deskripsi sehingga menghasilkan


sebuah Plain Text dengan nilai “abcdefgh”. Dengan demikian inilah yang
menjadi dasar dari perancangan data dan variable yang akan diterapkan dalam
system aplikasi IDEA nantinya.

4.2.2 Perancangan Struktur Program


Struktur program disebut juga hirarki kontrol yang mempresentasikan
organisasi komponen program (modul) serta mengimplikasikan suatu hirarki
kontrol. Suatu hirarki kontrol tidak mengimplikasikan aspek prosedural dari
perangkat lunak, seperti urutan proses, kejadian/urutan dari keputusan, atau
pengulangan operasi. Banyak notasi yang berbeda yang digunakan untuk
mempresentasikan hirarki kontrol, yang paling umum adalah diagram pohon.
Seperti pada umumnya perancangan program terdiri dari judul program
dan badan program. Dimana badan program ini dibagi lagi menjadi dua bagian
yaitu bagian deklarasi dan bagian pernyataan (statement).
Berikut bentuk bagan struktur program yang akan diterapkan pada
program kriptografi IDEA.
40

JUDUL PROGRAM

BAGIAN DEKLARASI
BLOCK FUNGSI-FUNGSI DAN VARIBEL
PROGRAM

BAGIAN PERNYATAAN
DAN PENERAPAN FUNGSI
IF …… THEN
EKSEKUSI ……
PROSEDUR- END IF
PROSEDUR

Gambar 4.1 Bagan Struktur Program

Pada bagian deklasi fungis-fungsi dan variabel terdapat beberapa fungsi


yang digunakan dalam program sebagai berikut:
1. FBiner2Dec (Fungsi untuk merubah nilai-nilai binary ke dalam bentuk
decimal)
2. FDec2Biner (Fungsi untuk merubah nilai-nilai decimal ke dalam bentuk
binary)
3. FMod (Fungsi untuk mengitung XOR sebuah nilai
4. GetIDEAKey (Fungsi untuk menghitung dan menghasilkan kunci IDEA)
5. FRotateLeftShift (Fungsi untuk merotasi nilai binary)
6. SpyRound (Fungsi untuk membulatkan perhitungan decimal)
7. Inverse (Fungsi untuk proses membalikkan nilai binary)
8. FMinus (Fungsi untuk menghitung pengurangan nilai binary)
9. Proses_Enkrip (Fungsi untuk menghitung enkripsi data)
10. Proses_Deskrip (Fungsi untuk menghitung deskripsi data)
11. Dll

Inilah sebagian fungsi-fungsi yang akan diterapkan dalam program


kriptografi IDEA ini.
41

4.2.3 Perancangan Prosedural


Perancangan prosedural terjadi setelah perancangan data, perancangan
struktur program diselesaikan. Dalam dunia nyata, spesifikasi prosedural
diperlukan untuk menetapkan detail algoritma yang akan digunakan dalam suatu
bahasa, seperti bahasa Indonesia. Sayangnya, ada satu masalah kecil, yakni
perancangan prosedural harus menentukan detail desain, procedural tanpa ada
ambiguitas. Oleh karena itu, untuk menghindari adanya ambiguitas pada
perancangan prosedural, perancangan prosedural perangkat lunak Kript IDEA
(International Data Encryption Algorithm) menggunakan algoritma dan flowchart.
Pada perangkat lunak Kript IDEA, terdapat dua prosedur utama, yaitu
prosedur Enkripsi dan prosedur Dekripsi. Dalam procedure enkripsi ini terdapat 2
(dua) varibel yang akan diproses untuk menghasilkan sebuah chiper text (Pecahan
Symbol) yaitu variabel Plain Text dan Variabel Kunci (Key)
Pada tahap awal , setelah Plain Teks dan Kunci dimasukkan maka program
akan menghitung berapa banyak karakter yang dimasukkan dalam plainteks dan
kunci untuk selanjutnya diciptakan sebuah blok proses perhitungan. Dengan
ketentuan bahwa setiap 1 blok terdapat 8 karakter plaintext dan 16 karakter kunci.
Proses perhitungan blok ini terdapat dalam proses_kunci.
Kemudian system akan menerjemahkan karekter yang diinput tadi
kedalam bentuk binary untuk masing-masing variable. Dalam hal ini untuk plain
teks terdapat proses yang disebut dengan prosespbin. Dan untuk variable kunci
dengan nama proseskbin.
Setelah semua kriteria untuk enkripsi ini memenuhi maka system akan
melakukan sebuah prosedur yang disebut dengan Proses_Encryp. Dimana
didalamnya terdapat rumus-rumus dan urutan baku dalam proses enkripsi data.
Hasil akhir dari enkripsi ini membentuk sebuah variable baru dengan nama
chipper text.
Selanjutnya untuk proses deskripsi langkah-langkahnya kurang lebih sama
dengan proses enkripsi, hanya membedakan pada variable inputan awal, pada
deskripsi plain text sudah berubah menjadi chipper text. Symbol-simbol pada
chipper text ini kemudian dirubah kedalam bentuk binary, untuk selanjutnya
42

dihitung (dideskrip) dengan menggunakan rumus-rumus yang telah di tanam


dalam procedure proses_descript.

4.2.3.1 Proses Enkripsi Algoritma IDEA


Enkripsi adalah proses mengamankan suatu informasi dengan membuat
informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Berikut
ini adalah listing program untuk proses Enkripsi dengan menggunakan Algoritma
IDEA:

Sub Proses_Encryp()
On Error Resume Next
Dim i, cRow As Integer
Dim jlhBaris As Integer
Dim bTmp As Double
Dim tmpHasil As String
Dim jlhx As Integer
Dim X1, X2, X3, X4 As String
Dim proses As Integer

jlhx = (msfp.Rows - 1) * 2
proses = (jlhx / 8) * 14
L1 = ""
L2 = ""
L3 = ""
L4 = ""
L5 = ""
L6 = ""
L7 = ""
L8 = ""
L9 = ""
L10 = ""
L11 = ""
L12 = ""
L13 = ""
L14 = ""
bTmp = 0
tmpHasil = ""
frmmaster.xF.Caption = "Informasi Enkripsi Data:"
'frmmaster.txtinfo.Text = ""
i = 0
For i = 1 To val(txtjlh.Text)
frmmaster.txtinfo.Text = frmmaster.txtinfo.Text & Chr(13) & "
PUTARAN " & i & " " & Chr(13)
With frminfopkunci.msf
jlhBaris = .Rows - 1
Screen.MousePointer = vbHourglass
For cRow = 1 To proses
Select Case cRow
43

Case 1
.TextMatrix(cRow, 1) = "(X1 * K1) mod (2^16 + 1) =(" &
msfp.TextMatrix(cRow, 1) & " * " &
msfk.TextMatrix(cRow, 1) & ") mod (2^16 + 1)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow, 1)) *
FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L1 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 2
.TextMatrix(cRow, 1) = "(X2 + K2) mod 2^16 =" &
msfp.TextMatrix(cRow, 1) & " + " &
msfk.TextMatrix(cRow, 1) & ") mod (2^16)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow, 1)) +
FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp, 2 ^ 16), 16)
L2 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 3
.TextMatrix(cRow, 1) = "(X3 + K3) mod 2^16 =" &
msfp.TextMatrix(cRow, 1) & " + " &
msfk.TextMatrix(cRow, 1) & ") mod (2^16)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow, 1)) +
FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp, 2 ^ 16), 16)
L3 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 4
.TextMatrix(cRow, 1) = "(X4 * K4) mod (2^16 + 1) =(" &
msfp.TextMatrix(cRow, 1) & " * " &
msfk.TextMatrix(cRow, 1) & ") mod (2^16 + 1)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow, 1)) *
FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L4 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 5
.TextMatrix(cRow, 1) = "L#1 XOR L#3 =" & Trim(L1) & "
XOR " & Trim(L3)
tmpHasil = FXORBiner(Trim(L1), Trim(L3), 16)
L5 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 6
.TextMatrix(cRow, 1) = "L#2 XOR L#4 =" & Trim(L2) & "
XOR " & Trim(L4)
tmpHasil = FXORBiner(Trim(L2), Trim(L4), 16)
L6 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
44

Case 7
.TextMatrix(cRow, 1) = "(L#5 * K5) mod (2^16 + 1) =" &
L5 & " * " & msfk.TextMatrix(cRow - 2, 1) & " mod
(2^16 + 1)"
bTmp = FBiner2Dec(Trim(L5)) *
FBiner2Dec(msfk.TextMatrix(cRow - 2, 1))
tmpHasil = FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L7 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 8
.TextMatrix(cRow, 1) = "(L#6 + L#7)) mod 2^16 =" & L6
& " + " & L7 & "mod 2^16"
bTmp = FBiner2Dec(Trim(L6)) + FBiner2Dec(Trim(L7))
tmpHasil = FDec2Biner(FMod(bTmp, 2 ^ 16), 16)
L8 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 9
.TextMatrix(cRow, 1) = "(L#8 * K6) mod (2^16 + 1) =" &
L8 & " * " & msfk.TextMatrix(cRow - 3, 1)
bTmp = FBiner2Dec(Trim(L8)) *
FBiner2Dec(msfk.TextMatrix(cRow - 3, 1))
tmpHasil = FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L9 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 10
.TextMatrix(cRow, 1) = "(L#7 + L#9)) mod 2^16 =" & L7
& " + " & L9 & "mod 2^16"
bTmp = FBiner2Dec(Trim(L7)) + FBiner2Dec(Trim(L9))
tmpHasil = FDec2Biner(FMod(bTmp, 2 ^ 16), 16)
L10 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 11
.TextMatrix(cRow, 1) = "L#1 XOR L#9 =" & L1 & " XOR "
& L9
tmpHasil = FXORBiner(Trim(L1), Trim(L9), 16)
L11 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 12
.TextMatrix(cRow, 1) = "L#3 XOR L#9 =" & L3 & " XOR "
& L9
tmpHasil = FXORBiner(Trim(L3), Trim(L9), 16)
L12 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 13
.TextMatrix(cRow, 1) = "L#2 XOR L#10 =" & L2 & " XOR "
& L10
tmpHasil = FXORBiner(Trim(L2), Trim(L10), 16)
L13 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
45

Case 14
.TextMatrix(cRow, 1) = "L#4 XOR L#10 =" & L4 & " XOR "
& L10
tmpHasil = FXORBiner(Trim(L4), Trim(L10), 16)
L14 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
End Select
Next cRow
d_Grid
End With
Next i
Screen.MousePointer = vbDefault
Call transForm

End Sub

Berikut ini adalah proses yang terjadi pada proses Enkripsi dengan
Algoritma IDEA adalah :
1. Menginput plaintekt dan kunci
2. Ubah biner
3. Lakukan proses berikut untuk sampai 8 putaran
1. Set nilai i = 1
2. Lakukan proses untuk nilai i = 4
Proses yang akan dilakukan
Cek apakah nilai i = 2 atau i = 3
Jika ya
L#i = Xi+Ki mod 216.
Jika tidak
L#i = Xi*Ki mod 216+1.
3. Lakukan proses XOR
L#5 = L#1 XOR L#3.
L#6 = L#2 XOR L#4.
4. Selanjutnya lakukan proses
L#7 = (L#5*K5) mod 216+1
L#8 = (L#6+L#7) mod 216
L#9 = (L#8*K6) mod 216+1
L#10 = (L#7+L#9) mod 216
5. Set untuk nilai i=1.
6. Lakukan proses XOR sampai nilai i = 4.
Proses yang akan dilakukan
46

IF i = 1, maka
Xi = L#1 XOR L#9
Jika tidak IF i = 2, maka
Xi = L#3 XOR L#9
Jika tidak IF i = 3, maka
Xi = L#2 XOR L#10
Jika tidak
Xi = L#4 XOR L#10
4. Kemudian lakukan proses transformasi
1. Set nilai i = 1
2. Lakukan proses sampai nilai i = 4
Proses yang akan dilakukan
Cek apakah i = 2 atau i = 3
Jika ya
L#i = Xi+Ki Mod 216
Jika tidak
L#i = Xi*Ki Mod 216+1
5. Kemudian ubah hasil proses transformasi dari biner ke kode ASCII
1. Set 1 = 1
2. Lakukan perulangan sampai nilai i = 4
3. Yi = L#i
6. Kemudian di dapatkan hasil Chipertekt Y1+Y2+Y3+Y4.

4.2.3.2 Proses Dekripsi Algoritma IDEA


Dekripsi adalah proses mengembalikan suatu informasi dengan cara
tertentu dan sesuai dengan algoritma enkripsi yang dipakai. Berikut ini adalah
listing program untuk proses Dekripsi dengan menggunakan Algoritma IDEA:

Sub Proses_Decryp()
On Error Resume Next
Dim i, cRow As Integer
Dim jlhBaris As Integer
Dim bTmp As Double
Dim tmpHasil As String
Dim jlhx As Integer
Dim X1, X2, X3, X4 As String
Dim proses As Integer

jlhx = (msfp.Rows - 1) * 2
proses = (jlhx / 8) * 14
47

L1 = ""
L2 = ""
L3 = ""
L4 = ""
L5 = ""
L6 = ""
L7 = ""
L8 = ""
L9 = ""
L10 = ""
L11 = ""
L12 = ""
L13 = ""
L14 = ""
bTmp = 0
tmpHasil = ""
frmmaster.xF.Caption = "Informasi Deskripsi Data:"
'frmmaster.txtinfo.Text = ""
i = 0
For i = 1 To val(txtjlh.Text)
frmmaster.txtinfo.Text = frmmaster.txtinfo.Text & Chr(13) &
"PUTARAN " & i & " " & Chr(13)
With frminfopkunci.msf
jlhBaris = .Rows - 1
Screen.MousePointer = vbHourglass
For cRow = 1 To proses
Select Case cRow
Case 1
.TextMatrix(cRow, 1) = "(X1 * K1) mod (2^16 + 1) =("
& msfp.TextMatrix(cRow, 1) & " * " &
msfk.TextMatrix(cRow, 1) & ") mod (2^16 + 1)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow, 1)) *
FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L1 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 2
.TextMatrix(cRow, 1) = "(X2 + K2) mod 2^16 =" &
msfp.TextMatrix(cRow, 1) & " + " &
msfk.TextMatrix(cRow, 1) & ") mod (2^16)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow, 1)) +
FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp, 2 ^ 16), 16)
L2 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 3
.TextMatrix(cRow, 1) = "(X3 + K3) mod 2^16 =" &
msfp.TextMatrix(cRow, 1) & " + " &
msfk.TextMatrix(cRow, 1) & ") mod (2^16)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow, 1)) +
FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp, 2 ^ 16), 16)
L3 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
48

Case 4
.TextMatrix(cRow, 1) = "(X4 * K4) mod (2^16 + 1) =("
& msfp.TextMatrix(cRow, 1) & " * " &
msfk.TextMatrix(cRow, 1) & ") mod (2^16 + 1)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow, 1)) *
FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L4 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 5
.TextMatrix(cRow, 1) = "L#1 XOR L#3 =" & Trim(L1) & "
XOR " & Trim(L3)
tmpHasil = FXORBiner(Trim(L1), Trim(L3), 16)
L5 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 6
.TextMatrix(cRow, 1) = "L#2 XOR L#4 =" & Trim(L2) & "
XOR " & Trim(L4)
tmpHasil = FXORBiner(Trim(L2), Trim(L4), 16)
L6 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 7
.TextMatrix(cRow, 1) = "(L#5 * K5) mod (2^16 + 1) ="
& L5 & " * " & msfk.TextMatrix(cRow - 2, 1) & " mod
(2^16 + 1)"
bTmp = FBiner2Dec(Trim(L5)) *
FBiner2Dec(msfk.TextMatrix(cRow - 2, 1))
tmpHasil = FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L7 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 8
.TextMatrix(cRow, 1) = "(L#6 + L#7)) mod 2^16 =" & L6
& " + " & L7 & "mod 2^16"
bTmp = FBiner2Dec(Trim(L6)) + FBiner2Dec(Trim(L7))
tmpHasil = FDec2Biner(FMod(bTmp, 2 ^ 16), 16)
L8 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 9
.TextMatrix(cRow, 1) = "(L#8 * K6) mod (2^16 + 1) ="
& L8 & " * " & msfk.TextMatrix(cRow - 3, 1)
bTmp = FBiner2Dec(Trim(L8)) *
FBiner2Dec(msfk.TextMatrix(cRow - 3, 1))
tmpHasil = FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L9 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 10
.TextMatrix(cRow, 1) = "(L#7 + L#9)) mod 2^16 =" & L7
& " + " & L9 & "mod 2^16"
bTmp = FBiner2Dec(Trim(L7)) + FBiner2Dec(Trim(L9))
tmpHasil = FDec2Biner(FMod(bTmp, 2 ^ 16), 16)
49

L10 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 11
.TextMatrix(cRow, 1) = "L#1 XOR L#9 =" & L1 & " XOR "
& L9
tmpHasil = FXORBiner(Trim(L1), Trim(L9), 16)
L11 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 12
.TextMatrix(cRow, 1) = "L#3 XOR L#9 =" & L3 & " XOR "
& L9
tmpHasil = FXORBiner(Trim(L3), Trim(L9), 16)
L12 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 13
.TextMatrix(cRow, 1) = "L#2 XOR L#10 =" & L2 & " XOR
" & L10
tmpHasil = FXORBiner(Trim(L2), Trim(L10), 16)
L13 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil

Case 14
.TextMatrix(cRow, 1) = "L#4 XOR L#10 =" & L4 & " XOR
" & L10
tmpHasil = FXORBiner(Trim(L4), Trim(L10), 16)
L14 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
End Select
Next cRow
d_Grid
End With
Next i
Screen.MousePointer = vbDefault
Call transForm

End Sub

Dimana proses yang terjadi pada proses dekripsi tidak jauh berbeda
dengan proses enkripsi, berikut ini proses yang terjadi pada proses dekripsi
adalah:
1. Pertama menginput chipertekt dan kunci. Dimana kunci yang di input pada
proses dekripsi harus sama dengan kunci yang digunakan pada proses
enkripsi.
2. Ubah biner
3. Lakukan proses berikut untuk sampai 8 putaran
1. Set nilai i = 1
50

2. Lakukan proses untuk nilai i = 4


Proses yang akan dilakukan cek apakah nilai i = 2 atau i = 3
Jika ya
L#i = Xi+Ki-1 mod 216.
Jika tidak
L#i = Xi*Ki-1 mod 216+1.
3. Lakukan proses XOR
L#5 = L#1 XOR L#3.
L#6 = L#2 XOR L#4.
4. Selanjutnya lakukan proses
L#7 = (L#5*K5-1) mod 216+1
L#8 = (L#6+L#7) mod 216
L#9 = (L#8*K6-1) mod 216+1
L#10 = (L#7+L#9) mod 216
5. Set untuk nilai i = 1.
6. Lakukan proses XOR sampai nilai i = 4.
Proses yang akan dilakukan
IF i = 1, maka
Xi = L#1 XOR L#9
Jika tidak IF i = 2, maka
Xi = L#3 XOR L#9
Jika tidak IF i = 3, maka
Xi = L#2 XOR L#10
Jika tidak
Xi = L#4 XOR L#10
4. Kemudian lakukan proses transformasi
1. Set nilai i = 1
2. Lakukan proses sampai nilai i = 4
Proses yang akan dilakukan
Cek apakah i = 2 atau i = 3
Jika ya
L#i = Xi+Ki-1 Mod 216
Jika tidak
L#i = Xi*Ki-1 Mod 216+1
51

5. Kemudian ubah hasil proses transformasi dari biner ke kode ASCII


1. Set 1 = 1
2. Lakukan perulangan sampai nilai i = 4
3. Xi = L#i
6. Kemudian di dapatkan hasil plaintext X1+X2+X3+X4.

Berikut bentuk diagram rancangan proses enkripsi dan deskripsi data


menggunakan algoritma kriptografi IDEA.

Rancangan Proses Enkripsi Rancangan Proses Deskripsi

User T

Menguji variabel
Chiper Text inputan

Plain Teks
Dan Kunci

Menguji variabel T
inputan selesai
Pembentukan
Proses Ke n Proses Ke n Block Proses
proses_kunci
Y prosespbin
Proses_Deskirp proseskbin
Proses_Encryp
Pembentukan
Block Proses
Proses Ke n

proses_kunci
prosespbin
Proses Ke n
proseskbin
selesai

Kunci

Gambar 4.2 Diagram Rancangan Proses Enkripsi Dan Deskripsi Data


52

4.3 DIAGRAM SISTEM


4.3.1 DFD (Data Flow Diagram)
Pemodelan fungsional digambarkan dengan diagram aliran data (DFD).
DFD merupakan cara yang intuitif untuk menunjukkan bagaimana data diproses
oleh sistem atau bagaimana data mengalir dalam serangkaian pemrosesan. Data
ditransformasikan pada setiap langkah sebelum berlanjut ke tahapan selanjutnya.
Langkah-langkah pemrosesan atau transformasi ini merupakan fungsi program
ketika, diagram aliran data digunakan untuk mendokumentasikan desain
perangkat lunak.
DFD merupakan model dari sistem untuk menggambarkan pembagian
sistem ke modul yang lebih kecil. Keuntungan penggunanan Data Flow Diagram
adalah memudahkan pemakai yang kurang menguasai bidang komputer untuk
mengerti sistem yang akan dikerjakan atau dikembangkan. Simbol DFD yang
akan digunakan dalam pembahasan ini adalah simbol yang sering digunakan oleh
Yourdan, De Marco dan lainnya.
Data Flow Diagram dari perangkat lunak IDEA Kripto sistem yang
penulis rancang dapat dilihat pada gambar-gambar berikut ini.

4.3.2 Diagram Konteks


DFD level 0 di bawah menggambarkan sistem secara garis besar yang
memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang.
IDEA Kripto sistem akan menghasilkan keluaran berupa pesan rahasia dan pesan
asli.

Plainteks dan kunci

0
Sistem Kriptografi
Algoritma IDEA
User

Pesan_rahasia, Pesan_asli

Gambar 4.3 Diagram Konteks Sistem Algoritma IDEA


53

Keterangan :
1. Proses 0 adalah sistem kriptografi algoritma IDEA
Dimana user menginput plainteks dan kunci untuk mengamankan data
dengan menggunakan algoritma kriptografi simetris IDEA yang
menghasilkan output berupa pesan rahasia, pesan asli.

4.3.3 DFD Level 1


DFD level 1 pada gambar 4.2 menggambarkan sistem secara garis besar
yang memperlihatkan proses-proses yang dilakukan dalam sistem kriptografi
dengan algoritma IDEA, proses ini dimulai dari proses Pembentukan Kunci, yakni
proses yang dilakukan untuk mendapatkan seluruh subkunci enkripsi dan
subkunci dekripsi (yang totalnya masing-masing 52 subkunci) yang diperoleh dari
8 subkunci yang dimasukkan user.

Pesan Asli
Sub_kunci_Enkripsi P.2 Output
Chipertext
Proses Enkripsi

Order Enkripsi
Plainteks

Order
P.1
Perintah
User Pemilihan
Proses

Order Dekripsi
Chiperteks

P.3 Output
Plaintext
Proses Dekripsi
Sub_kunci_Dekripsi
Pesan Rahasia

Gambar 4.4 DFD Level 1

Keterangan:
1. Proses 1 adalah pemilihan proses
Dimana di dalam proses ini, user akan memilih proses yang akan di
lakukan, apakah ingin melakukan proses enkripsi atau dekripsi.
54

2. Proses 2 adalah proses enkripsi


Dimana di dalam proses ini, user menginput plaintext (pesan asli) dengan
sub kunci enkripsi yang akan menghasilkan ciphertext.
3. Proses 3 adalah proses dekripsi
Dimana di dalam proses ini, user menginputkan sebuah ciphertext dari
hasil proses enkripsi dengan sub kunci dekripsi yang akan menghasilkan
plaintext (pesan asli).

4.3.4 DFD Level 2 Proses P.2 (Proses Enkripsi)


Proses enkripsi akan dilakukan pada setiap karakter yang telah dikonversi
ke kode ASCII lalu dikonversi ke bilangan biner, karena pada algoritma IDEA
digunakan bilangan biner dalam bentuk subblok, baik plainteks, kunci, maupun
cipherteks. Karakter-karakter tersebut dienkripsi menggunakan 52 subblok kunci
enkripsi. Untuk lebih jelasnya, proses enkripsi dapat dilihat pada gambar 4.3.

P.2.7 P.2.6 P.2.5


Blok_cipher Proses Cipher 2 Proses Enkripsi Cipher 1 Proses
User
pengabungan II Enkripsi I
Cipherteks (transformasi) (rounde 1-8)
Plainteks

P.2.1
Input file
Blok_plain

Blok chiper

P.2.3 P.2.4
P.2.2 Karkter_Plain Biner_plain
Konversi ASCII Proses partisi
Konversi ke
ke biner (16 bit 64 bit jadi 4
ASCII
perkarakter) subblok 16 bit

Gambar 4.5 DFD Level 2 Proses P.2

Keterangan:
1. Proses 2.1 adalah proses input file
Dimana didalam proses ini, user menginput file yang akan di enkripsi.
55

2. Proses 2.2 adalah konversi ke ASCII


Dimana didalam proses ini, karakter plaintext akan di konversi ke dalam
kode ASCII.
3. Proses 2.3 adalah konversi ASCII ke biner (16 bit perkarakter)
Didalam proses ini, dimana kode ASCII plain akan di konversi ke dalam
biner dalam hexadesimal.
4. Proses 2.4 adalah proses 64 bit menjadi 4 subblock 16 bit
Di dalam prosses ini, dimana biner plain akan mempartisi keseluruhan bit
plainteks menjadi blok-blok 64 bit.
5. Proses 2.5 adalah proses enkripsi I (pertama) rounde 1-8Di dalam proses
ini, dimana blok plain dan sub kunci enkripsi akan mempartisi setiap blok-
blok plainteks 64 bit menjadi 4 subblok16 bit.
6. Proses 2.6 adalah proses enkripsi II (dua) transformasi
Di dalam proses ini, dimana cipher1 dan sub kunci enkripsi akan
melakukan proses enkripsi tahap I (di lakukan dalam 8 round).
7. Proses 2.7 adalah proses penggabungan ciphertexs
Di dalam proses ini, dimana cipher2 akan melakukan proses enkripsi II (di
lakukan dalam round ke 9).

4.3.5 DFD Level 2 Proses P.3 (Proses Dekripsi)


Untuk mengembalikan cipherteks sehingga dapat dipahami, maka file
yang telah dienkripsi harus didekripsi. Untuk melakukan proses dekripsi
digunakan kunci yang sama, sehingga algoritma ini tergolong pada algoritma
kriptografi simetris. Untuk lebih jelasnya, proses dekripsi dapat dilihat pada
gambar 4.4.
56

P.3.7
Plainteks P.3.10 Krkter_plain P.3.9 ASCII_plain P.3.8 Biner_plain Proses gabung
User Proses gabung Konversi ke Konversi biner
keseluruhan blok
plainteks ASCII ke ASCII
bit
Cipherteks

Cipher 2

P.3.1
Input file P.3.6
Proses dekripsi
II
(transformasi)
Blok_cipher
Cipher 1

P.3.3 P.3.4 P.3.5


P.3.2 ASCII_cipher Biner_cipher Blok_cipher
Konversi ASCII Proses partisi 64 Proses
konversi ke
ke biner (16 bit bit jadi 4 subblok dekripsi I
ASCII
perkarakter) 16 bit (rounde 1-8)

Gambar 4.6 DFD Level 2 proses P.3

Keterangan:
1. Proses 3.1 adalah proses input file
Dimana dalam proses ini, user menginput file yang akan di lakukan
dekripsi.
2. Proses 3.2 adalah proses konversi ke ASCII
Di dalam proses ini, dimana karakter cipher akan mengkonversikan
karakter plaintext ke dalam kode ASCII.
3. Proses 3.3 adalah proses konversi ASCII ke biner (64 bit perkarakter)
Dalam proses ini, dimana ASCII cipher akan mengkonversi kode ASCII
plaintext ke dalam biner hexadesimal.
4. Proses 3.4 adalah proses partisi 64 bit jadi 4 subblok 16 bit
Dalam proses ini, dimana biner cipher akan mempartisi keseluruhan bit
plaintext menjadi blok-blok 64 bit.
5. Proses 3.5 adalah proses dekripsi I (round 1-8)
Dalam proses ini, dimana block cipher dan sub kunci dekripsi akan
melakukan proses dekripsi tahap I.
57

6. Proses 3.6 adalah proses adalah proses dekripsi tahap II (transformasi)


Dalam proses ini, dimana cipher1 dan sub kunci dekripsi akan melakukan
proses dekripsi tahap II.
7. Proses 3.7 adalah proses gabung keseluruhan blok bit
Dalam proses ini, dimana cipher2 akan menggabungkan setiap 16 bit
subblok plaintext menjadi blok 64 bit.
8. Proses 3.8 adalah proses konversi biner ke ASCII
Dalam proses ini, dimana biner plain akan mengkonversi setiap bit
hexaplaintext menjadi kode ASCII nya.
9. Proses 3.9 adalah proses konversi ke ASCII
Dalam proses ini, dimana ASCII plain akan di konversi setiap kode ASCII
menjadi karakter-karakternya.
10. Proses 3.10 adalah proses gabung plaintext
Dalam proses ini, user akan menggabungkan seluruh karakter-karakter
plain menjadi karakter plaintext.

4.4 IMPLEMENTASI
Tahap implementasi dilakukan setelah perancangan sistem kriptografi
IDEA selesai dilakukan. Dalam implementasi akan ditampilkan bentuk dari
program yang dirancang. Ada pun program yang dimaksud terdiri atas beberapa
tampilan halaman, yaitu: halaman utama, form enkripsi, dan form dekripsi.

4.4.1 Implementasi Sistem


Proses penyelesaian kriptografi Algoritma IDEA ini dapat di bagi menjadi
dua tahapan proses yaitu proses enkripsi dan proses dekripsi.

4.4.1.1 Proses Enkripsi


Dimana dalam proses algoritma IDEA ini memiliki 8 iterasi (putaran) di
tambah satu putaran transformasi output. Untuk lebih jelasnya tentang bagaimana
proses kerja enkripsi algoritma IDEA ini dapat di lihat pada contoh berikut:
58

Misalkan kita akan mengenkripsi pesan, dimana pesan plaintext dan kunci.
Kunci : KRIPTOGRAFI IDEA
Plaintext : ABDHANAN
Berikut ini adalah proses enkripsi dari algoritma IDEA.
PROSES UNTUK BLOCK 1
PUTARAN 1

L#1 (X1 * K1) mod (2^16 + 1)


= (0100000101001100 * 0100101101010010) mod (2^16 + 1)
= 0001101100100010

L#2 (X2 + K2) mod 2^16


= 0101000001001001 + 0100100101010000) mod (2^16)
= 1001100110011001

L#3 (X3 + K3) mod 2^16


= 0100000101001110 + 0101010001001111) mod (2^16)
= 1001010110011101

L#4 (X4 * K4) mod (2^16 + 1)


= (0101010001001111 * 0100011101010010) mod (2^16 + 1)
= 1101001011010010

L#5 L#1 XOR L#3


= 0001101100100010 XOR 1001010110011101 = 1000111010111111

L#6 L#2 XOR L#4


= 1001100110011001 XOR 1101001011010010 = 0100101101001011

L#7 (L#5 * K5) mod (2^16 + 1)


= 1000111010111111 * 0100000101000110 mod (2^16 + 1)
= 0110001011010101

L#8 (L#6 + L#7) mod 2^16


= 0100101101001011 + 0110001011010101 mod 2^16
= 1010111000100000

L#9 (L#8 * K6) mod (2^16 + 1)


= 1010111000100000 * 0100100100100000 = 1011001001000100

L#10 (L#7 + L#9) mod 2^16


= 0110001011010101 + 1011001001000100 mod 2^16
= 0001010100011001

L#11 L#1 XOR L#9


= 0001101100100010 XOR 1011001001000100 = 1010100101100110

L#12 L#3 XOR L#9


= 1001010110011101 XOR 1011001001000100 = 0010011111011001

L#13 L#2 XOR L#10


= 1001100110011001 XOR 0001010100011001 = 1000110010000000
59

L#14 L#4 XOR L#10


= 1101001011010010 XOR 0001010100011001 = 1100011111001011

PUTARAN 2

L#1 (X1 * K1) mod (2^16 + 1)


= (1010100101100110 * 0100100101000100) mod (2^16 + 1)
= 1110010010011110

L#2 (X2 + K2) mod 2^16


= 0010011111011001 + 0100010101000001) mod (2^16)
= 0110110100011010

L#3 (X3 + K3) mod 2^16


= 1000110010000000 + 1010000010101000) mod (2^16)
= 0010110100101000

L#4 (X4 * K4) mod (2^16 + 1)


= (1100011111001011 * 1001111010001110) mod (2^16 + 1)
= 1010000011011101

L#5 L#1 XOR L#3


= 1110010010011110 XOR 0010110100101000 = 1100100110110110

L#6 L#2 XOR L#4


= 0110110100011010 XOR 1010000011011101 = 1100110111000111

L#7 (L#5 * K5) mod (2^16 + 1)


= 1100100110110110 * 1010010010000010 mod (2^16 + 1)
= 1000010011001110

L#8 (L#6 + L#7) mod 2^16


= 1100110111000111 + 1000010011001110 mod 2^16
= 0101001010010101

L#9 (L#8 * K6) mod (2^16 + 1)


= 0101001010010101 * 1000110010010010 = 0110011110100010

L#10 (L#7 + L#9) mod 2^16


= 1000010011001110 + 0110011110100010 mod 2^16
= 1110110001110000

L#11 L#1 XOR L#9


= 1110010010011110 XOR 0110011110100010 = 1000001100111100

L#12 L#3 XOR L#9


= 0010110100101000 XOR 0110011110100010 = 0100101010001010

L#13 L#2 XOR L#10


= 0110110100011010 XOR 1110110001110000 = 1000000101101010

L#14 L#4 XOR L#10


= 1010000011011101 XOR 1110110001110000 = 0100110010101101
60

PUTARAN 3

L#1 (X1 * K1) mod (2^16 + 1)


= (1000001100111100 * 0100000010010010) mod (2^16 + 1)
= 1011011100011111

L#2 (X2 + K2) mod 2^16


= 0100101010001010 + 1000100010001010) mod (2^16)
= 1101001100010100

L#3 (X3 + K3) mod 2^16


= 1000000101101010 + 1000001010010110) mod (2^16)
= 0000010000000000

L#4 (X4 * K4) mod (2^16 + 1)


= (0100110010101101 * 1010010010010010) mod (2^16 + 1)
= 0101110101100000

L#5 L#1 XOR L#3


= 1011011100011111 XOR 0000010000000000 = 1011001100011111

L#6 L#2 XOR L#4


= 1101001100010100 XOR 0101110101100000 = 1000111001110100

L#7 (L#5 * K5) mod (2^16 + 1)


= 1011001100011111 * 0001110101001001 mod (2^16 + 1)
= 1000001001011010

L#8 (L#6 + L#7) mod 2^16


= 1000111001110100 + 1000001001011010 mod 2^16
= 0001000011001110

L#9 (L#8 * K6) mod (2^16 + 1)


= 0001000011001110 * 0000010100011001 = 1010100111001001

L#10 (L#7 + L#9) mod 2^16


= 1000001001011010 + 1010100111001001 mod 2^16
= 0010110000100011

L#11 L#1 XOR L#9


= 1011011100011111 XOR 1010100111001001 = 0001111011010110

L#12 L#3 XOR L#9


= 0000010000000000 XOR 1010100111001001 = 1010110111001001

L#13 L#2 XOR L#10


= 1101001100010100 XOR 0010110000100011 = 1111111100110111

L#14 L#4 XOR L#10


= 0101110101100000 XOR 0010110000100011 = 0111000101000011

PUTARAN 4

L#1 (X1 * K1) mod (2^16 + 1)


= (0001111011010110 * 0010010010000001) mod (2^16 + 1)
= 1001110101110001
61

L#2 (X2 + K2) mod 2^16


= 1010110111001001 + 0010010100010001) mod (2^16)
= 1101001011011010

L#3 (X3 + K3) mod 2^16


= 1111111100110111 + 0001010100000101) mod (2^16)
= 0001010000111100

L#4 (X4 * K4) mod (2^16 + 1)


= (0111000101000011 * 0010110101001001) mod (2^16 + 1)
= 1111111100010011

L#5 L#1 XOR L#3


= 1001110101110001 XOR 0001010000111100 = 1000100101001101

L#6 L#2 XOR L#4


= 1101001011011010 XOR 1111111100010011 = 0010110111001001

L#7 (L#5 * K5) mod (2^16 + 1)


= 1000100101001101 * 0010010101000001 mod (2^16 + 1)
= 1110100110010011

L#8 (L#6 + L#7) mod 2^16


= 0010110111001001 + 1110100110010011 mod 2^16
= 0001011101011100

L#9 (L#8 * K6) mod (2^16 + 1)


= 0001011101011100 * 0101000100111101 = 1010010110000011

L#10 (L#7 + L#9) mod 2^16


= 1110100110010011 + 1010010110000011 mod 2^16
= 1000111100010110

L#11 L#1 XOR L#9


= 1001110101110001 XOR 1010010110000011 = 0011100011110010

L#12 L#3 XOR L#9


= 0001010000111100 XOR 1010010110000011 = 1011000110111111

L#13 L#2 XOR L#10


= 1101001011011010 XOR 1000111100010110 = 0101110111001100

L#14 L#4 XOR L#10


= 1111111100010011 XOR 1000111100010110 = 0111000000000101

PUTARAN 5

L#1 (X1 * K1) mod (2^16 + 1)


= (0011100011110010 * 0011001001001001) mod (2^16 + 1)
= 0111010111010011

L#2 (X2 + K2) mod 2^16


= 1011000110111111 + 0000001001001010) mod (2^16)
= 1011010000001001
62

L#3 (X3 + K3) mod 2^16


= 0101110111001100 + 0010001000101010) mod (2^16)
= 0111111111110110

L#4 (X4 * K4) mod (2^16 + 1)


= (0111000000000101 * 0000101001011010) mod (2^16 + 1)
= 1000111100111011

L#5 L#1 XOR L#3


= 0111010111010011 XOR 0111111111110110 = 0000101000100101

L#6 L#2 XOR L#4


= 1011010000001001 XOR 1000111100111011 = 0011101100110010

L#7 (L#5 * K5) mod (2^16 + 1)


= 0000101000100101 * 1001001001001010 mod (2^16 + 1)
= 0000001011100110

L#8 (L#6 + L#7) mod 2^16


= 0011101100110010 + 0000001011100110 mod 2^16
= 0011111000011000

L#9 (L#8 * K6) mod (2^16 + 1)


= 0011111000011000 * 1000001010100010 = 0101101110000001

L#10 (L#7 + L#9) mod 2^16


= 0000001011100110 + 0101101110000001 mod 2^16
= 0101111001100111

L#11 L#1 XOR L#9


= 0111010111010011 XOR 0101101110000001 = 0010111001010010

L#12 L#3 XOR L#9


= 0111111111110110 XOR 0101101110000001 = 0010010001110111

L#13 L#2 XOR L#10


= 1011010000001001 XOR 0101111001100111 = 1110101001101110

L#14 L#4 XOR L#10


= 1000111100111011 XOR 0101111001100111 = 1101000101011100

PUTARAN 6

L#1 (X1 * K1) mod (2^16 + 1)


= (0010111001010010 * 0111101000111010) mod (2^16 + 1)
= 0111110001110111

L#2 (X2 + K2) mod 2^16


= 0010010001110111 + 1001001000001010) mod (2^16)
= 1011011010000001

L#3 (X3 + K3) mod 2^16


= 1110101001101110 + 1001010001000100) mod (2^16)
= 0111111010110010
63

L#4 (X4 * K4) mod (2^16 + 1)


= (1101000101011100 * 0101010000010100) mod (2^16 + 1)
= 0100011001101110

L#5 L#1 XOR L#3


= 0111110001110111 XOR 0111111010110010 = 0000001011000101

L#6 L#2 XOR L#4


= 1011011010000001 XOR 0100011001101110 = 1111000011101111

L#7 (L#5 * K5) mod (2^16 + 1)


= 0000001011000101 * 1011010100100100 mod (2^16 + 1)
= 1010101010111111

L#8 (L#6 + L#7) mod 2^16


= 1111000011101111 + 1010101010111111 mod 2^16
= 1001101110101110

L#9 (L#8 * K6) mod (2^16 + 1)


= 1001101110101110 * 1001010100000101 = 1111010111001000

L#10 (L#7 + L#9) mod 2^16


= 1010101010111111 + 1111010111001000 mod 2^16
= 1010000010000111

L#11 L#1 XOR L#9


= 0111110001110111 XOR 1111010111001000 = 1000100110111111

L#12 L#3 XOR L#9


= 0111111010110010 XOR 1111010111001000 = 1000101101111010

L#13 L#2 XOR L#10


= 1011011010000001 XOR 1010000010000111 = 0001011000000110

L#14 L#4 XOR L#10


= 0100011001101110 XOR 1010000010000111 = 1110011011101001

PUTARAN 7

L#1 (X1 * K1) mod (2^16 + 1)


= (1000100110111111 * 0100010011110100) mod (2^16 + 1)
= 1110000011110011

L#2 (X2 + K2) mod 2^16


= 1000101101111010 + 0111010100100100) mod (2^16)
= 0000000010011110

L#3 (X3 + K3) mod 2^16


= 0001011000000110 + 0001010001100100) mod (2^16)
= 0010101001101010

L#4 (X4 * K4) mod (2^16 + 1)


= (1110011011101001 * 1001001000000100) mod (2^16 + 1)
= 1111100111110001
64

L#5 L#1 XOR L#3


= 1110000011110011 XOR 0010101001101010 = 1100101010011001

L#6 L#2 XOR L#4


= 0000000010011110 XOR 1111100111110001 = 1111100101101111

L#7 (L#5 * K5) mod (2^16 + 1)


= 1100101010011001 * 0010100101101010 mod (2^16 + 1)
= 0100001110010100

L#8 (L#6 + L#7) mod 2^16


= 1111100101101111 + 0100001110010100 mod 2^16
= 0011110100000011

L#9 (L#8 * K6) mod (2^16 + 1)


= 0011110100000011 * 0100100100101010 = 1100110000001111

L#10 (L#7 + L#9) mod 2^16


= 0100001110010100 + 1100110000001111 mod 2^16
= 0000111110100011

L#11 L#1 XOR L#9


= 1110000011110011 XOR 1100110000001111 = 0010110011111100

L#12 L#3 XOR L#9


= 0010101001101010 XOR 1100110000001111 = 1110011001100101

L#13 L#2 XOR L#10


= 0000000010011110 XOR 0000111110100011 = 0000111100111101

L#14 L#4 XOR L#10


= 1111100111110001 XOR 0000111110100011 = 1111011001010010

PUTARAN 8

L#1 (X1 * K1) mod (2^16 + 1)


= (0010110011111100 * 0000101010001001) mod (2^16 + 1)
= 1110100100000011

L#2 (X2 + K2) mod 2^16


= 1110011001100101 + 1110100011101010) mod (2^16)
= 1100111101001111

L#3 (X3 + K3) mod 2^16


= 0000111100111101 + 0100100000101000) mod (2^16)
= 0101011101100101

L#4 (X4 * K4) mod (2^16 + 1)


= (1111011001010010 * 1100100100100100) mod (2^16 + 1)
= 0100010000000000

L#5 L#1 XOR L#3


= 1110100100000011 XOR 0101011101100101 = 1011111001100110

L#6 L#2 XOR L#4


= 1100111101001111 XOR 0100010000000000 = 1000101101001111
65

L#7 (L#5 * K5) mod (2^16 + 1)


= 1011111001100110 * 0000100100101000 mod (2^16 + 1)
= 0100111100100001

L#8 (L#6 + L#7) mod 2^16


= 1000101101001111 + 0100111100100001mod 2^16
= 1101101001110000

L#9 (L#8 * K6) mod (2^16 + 1)


= 1101101001110000 * 1000100010101000 = 0110010011100110

L#10 (L#7 + L#9) mod 2^16


= 0100111100100001 + 0110010011100110mod 2^16
= 1011010000000111

L#11 L#1 XOR L#9


= 1110100100000011 XOR 0110010011100110 = 1000110111100101

L#12 L#3 XOR L#9


= 0101011101100101 XOR 0110010011100110 = 0011001110000011

L#13 L#2 XOR L#10


= 1100111101001111 XOR 1011010000000111 = 0111101101001000

L#14 L#4 XOR L#10


= 0100010000000000 XOR 1011010000000111 = 1111000000000111

TRANSFORMASI OUTPUT 1

L#1 (X1 * K1) mod (2^16 + 1)


= 1000110111100101 * 0101010000010101 mod (2^16 + 1)
= 1001100100101111 = ™/

L#2 (X2 + K2) mod 2^16


= 0111101101001000 + 0001001111010001 Mod 2 ^ 16
= 1000111100011001 = •_

L#3 (X3 + K3) mod 2^16


= 0011001110000011 + 1101010010010000 mod 2^16
= 0000100000010011 = __

L#4 (X4 * K4) mod (2^16 + 1)


= 1111000000000111 * 0101000110010010 mod (2^16 + 1)
= 1100111010000100 = ΄

Setelah 8 putaran dan di tambah satu putaran transfortasi proses enkripsi


selesai, maka di dapatkan Chiper Text ™/•hŠm?çǺI¦
66

4.4.1.1.1 Flow Chat Enkripsi Data

Berikut ditampilan flowchat proses Enkripsi data dimana pesan plaintext


dan kunci.
Kunci : KRIPTOGRAFI IDEA
Plaintext : ABDHANAN

User

Plain Teks :
ABDHANAN
Dan Kunci :
KRIPTOGRAFI IDEA

Menguji variabel T
Inputan
(Var. Lengkap)

Menghasilkan
Proses Ke n
chipertext
Y =
™/hŠm?çǺI
Proses_ Encryp
Pembentukan
Block Proses
(Jlh. Block=1) selesai
proses_ kunci
prosespbin
Proses Ke n
proseskbin
67

Beberapa Contoh Enkripsi Data

Berikut diperlihatkan beberapa contoh Enkripsi yang dihasilkan


menggunakan program aplikasi ini dalam Teori Enkripsi IDEA.

No. Plain Text Kata Kunci Ciphertext


1 ubudiyah mahasiswadsabang ä Ï
2 kuliahIT programmerdrsabang 4÷ýÈ@Æ •
3 kuncikey passworddankunci Ó_ÒÓàc-C
4 plaintex crystaletekeydat úÝö$r-¾
5 proteksi dataterkuncibaru µu¿ð?«ï

4.4.1.2 Proses Deskripsi


Proses dekripsi merupakan proses kebalikan dari proses enkripsi.
Proses dekripsi menggunakan kunci yang sama dengan proses enkripsi. Sebagai
contoh, jika ingin di dekripsikan kembali dari hasil enkripsi di atas dengan
menggunakan kunci yang sama, maka hasilnya sebagai berikut.

PROSES UNTUK BLOCK 1


PUTARAN 1

L#1 (X1 * K1) mod (2^16 + 1)


= (1001100100101111 * 1000000100010001) mod (2^16 + 1)
= 1000110111100101

L#2 (X2 + K2) mod 2^16


= 1000111100011001 + 1110110000101111) mod (2^16)
= 0111101101001000

L#3 (X3 + K3) mod 2^16


= 0000100000010011 + 0010101101110000) mod (2^16)
= 0011001110000011

L#4 (X4 * K4) mod (2^16 + 1)


= (1100111010000100 * 1110100111000111) mod (2^16 + 1)
= 1111000000000111

L#5 L#1 XOR L#3


= 1000110111100101 XOR 0011001110000011 = 1011111001100110

L#6 L#2 XOR L#4


= 0111101101001000 XOR 1111000000000111 = 1000101101001111

L#7 (L#5 * K5) mod (2^16 + 1)


= 1011111001100110 * 0000100100101000 mod (2^16 + 1)
= 0100111100100001
L#8 (L#6 + L#7) mod 2^16
68

= 1000101101001111 + 0100111100100001 mod 2^16


= 1101101001110000

L#9 (L#8 * K6) mod (2^16 + 1)


= 1101101001110000 * 1000100010101000 = 0110010011100110

L#10 (L#7 + L#9) mod 2^16


= 0100111100100001 + 0110010011100110 mod 2^16
= 1011010000000111

L#11 L#1 XOR L#9


= 1000110111100101 XOR 0110010011100110 = 1110100100000011

L#12 L#3 XOR L#9


= 0011001110000011 XOR 0110010011100110 = 0101011101100101

L#13 L#2 XOR L#10


= 0111101101001000 XOR 1011010000000111 = 1100111101001111

L#14 L#4 XOR L#10


= 1111000000000111 XOR 1011010000000111 = 0100010000000000

PUTARAN 2

L#1 (X1 * K1) mod (2^16 + 1)


= (1110100100000011 * 0000000011110011) mod (2^16 + 1)
= 0010110011111100

L#2 (X2 + K2) mod 2^16


= 0101011101100101 + 1011011111011000) mod (2^16)
= 0000111100111101

L#3 (X3 + K3) mod 2^16


= 1100111101001111 + 0001011100010110) mod (2^16)
= 1110011001100101

L#4 (X4 * K4) mod (2^16 + 1)


= (0100010000000000 * 1100101000011011) mod (2^16 + 1)
= 1111011001010010

L#5 L#1 XOR L#3


= 0010110011111100 XOR 1110011001100101 = 1100101010011001

L#6 L#2 XOR L#4


= 0000111100111101 XOR 1111011001010010 = 1111100101101111

L#7 (L#5 * K5) mod (2^16 + 1)


= 1100101010011001 * 0010100101101010 mod (2^16 + 1)
= 0100001110010100

L#8 (L#6 + L#7) mod 2^16


= 1111100101101111 + 0100001110010100 mod 2^16
= 0011110100000011

L#9 (L#8 * K6) mod (2^16 + 1)


= 0011110100000011 * 0100100100101010 = 1100110000001111
69

L#10 (L#7 + L#9) mod 2^16


= 0100001110010100 + 1100110000001111 mod 2^16
= 0000111110100011

L#11 L#1 XOR L#9


= 0010110011111100 XOR 1100110000001111 = 1110000011110011

L#12 L#3 XOR L#9


= 1110011001100101 XOR 1100110000001111 = 0010101001101010

L#13 L#2 XOR L#10


= 0000111100111101 XOR 0000111110100011 = 0000000010011110

L#14 L#4 XOR L#10


= 1111011001010010 XOR 0000111110100011 = 1111100111110001

PUTARAN 3

L#1 (X1 * K1) mod (2^16 + 1)


= (1110000011110011 * 0111100010110101) mod (2^16 + 1)
= 1000100110111111
L#2 (X2 + K2) mod 2^16
= 0010101001101010 + 1110101110011100) mod (2^16)
= 0001011000000110

L#3 (X3 + K3) mod 2^16


= 0000000010011110 + 1000101011011100) mod (2^16)
= 1000101101111010

L#4 (X4 * K4) mod (2^16 + 1)


= (1111100111110001 * 0111110101100001) mod (2^16 + 1)
= 1110011011101001

L#5 L#1 XOR L#3


= 1000100110111111 XOR 1000101101111010 = 0000001011000101

L#6 L#2 XOR L#4


= 0001011000000110 XOR 1110011011101001 = 1111000011101111

L#7 (L#5 * K5) mod (2^16 + 1)


= 0000001011000101 * 1011010100100100 mod (2^16 + 1)
= 1010101010111111

L#8 (L#6 + L#7) mod 2^16


= 1111000011101111 + 1010101010111111 mod 2^16
= 1001101110101110

L#9 (L#8 * K6) mod (2^16 + 1)


= 1001101110101110 * 1001010100000101 = 1111010111001000

L#10 (L#7 + L#9) mod 2^16


= 1010101010111111 + 1111010111001000 mod 2^16
= 1010000010000111

L#11 L#1 XOR L#9


= 1000100110111111 XOR 1111010111001000 = 0111110001110111
70

L#12 L#3 XOR L#9


= 1000101101111010 XOR 1111010111001000 = 0111111010110010

L#13 L#2 XOR L#10


= 0001011000000110 XOR 1010000010000111 = 1011011010000001

L#14 L#4 XOR L#10


= 1110011011101001 XOR 1010000010000111 = 0100011001101110

PUTARAN 4

L#1 (X1 * K1) mod (2^16 + 1)


= (0111110001110111 * 0111010100100011) mod (2^16 + 1)
= 0010111001010010

L#2 (X2 + K2) mod 2^16


= 0111111010110010 + 0110101110111100) mod (2^16)
= 1110101001101110

L#3 (X3 + K3) mod 2^16


= 1011011010000001 + 0110110111110110) mod (2^16)
= 0010010001110111

L#4 (X4 * K4) mod (2^16 + 1)


= (0100011001101110 * 0100101000000100) mod (2^16 + 1)
= 1101000101011100

L#5 L#1 XOR L#3


= 0010111001010010 XOR 0010010001110111 = 0000101000100101

L#6 L#2 XOR L#4


= 1110101001101110 XOR 1101000101011100 = 0011101100110010

L#7 (L#5 * K5) mod (2^16 + 1)


= 0000101000100101 * 1001001001001010 mod (2^16 + 1)
= 0000001011100110

L#8 (L#6 + L#7) mod 2^16


= 0011101100110010 + 0000001011100110 mod 2^16
= 0011111000011000

L#9 (L#8 * K6) mod (2^16 + 1)


= 0011111000011000 * 1000001010100010 = 0101101110000001

L#10 (L#7 + L#9) mod 2^16


= 0000001011100110 + 0101101110000001 mod 2^16
= 0101111001100111

L#11 L#1 XOR L#9


= 0010111001010010 XOR 0101101110000001 = 0111010111010011

L#12 L#3 XOR L#9


= 0010010001110111 XOR 0101101110000001 = 0111111111110110

L#13 L#2 XOR L#10


71

= 1110101001101110 XOR 0101111001100111 = 1011010000001001

L#14 L#4 XOR L#10


= 1101000101011100 XOR 0101111001100111 = 1000111100111011

PUTARAN 5

L#1 (X1 * K1) mod (2^16 + 1)


= (0111010111010011 * 0010100001101001) mod (2^16 + 1)
= 0011100011110010

L#2 (X2 + K2) mod 2^16


= 0111111111110110 + 1101110111010110) mod (2^16)
= 0101110111001100

L#3 (X3 + K3) mod 2^16


= 1011010000001001 + 1111110110110110) mod (2^16)
= 1011000110111111

L#4 (X4 * K4) mod (2^16 + 1)


= (1000111100111011 * 1110101001110110) mod (2^16 + 1)
= 0111000000000101

L#5 L#1 XOR L#3


= 0011100011110010 XOR 1011000110111111 = 1000100101001101

L#6 L#2 XOR L#4


= 0101110111001100 XOR 0111000000000101 = 0010110111001001

L#7 (L#5 * K5) mod (2^16 + 1)


= 1000100101001101 * 0010010101000001 mod (2^16 + 1)
= 1110100110010011

L#8 (L#6 + L#7) mod 2^16


= 0010110111001001 + 1110100110010011 mod 2^16
= 0001011101011100

L#9 (L#8 * K6) mod (2^16 + 1)


= 0001011101011100 * 0101000100111101 = 1010010110000011

L#10 (L#7 + L#9) mod 2^16


= 1110100110010011 + 1010010110000011 mod 2^16
= 1000111100010110

L#11 L#1 XOR L#9


= 0011100011110010 XOR 1010010110000011 = 1001110101110001

L#12 L#3 XOR L#9


= 1011000110111111 XOR 1010010110000011 = 0001010000111100

L#13 L#2 XOR L#10


= 0101110111001100 XOR 1000111100010110 = 1101001011011010

L#14 L#4 XOR L#10


= 0111000000000101 XOR 1000111100010110 = 1111111100010011
72

PUTARAN 6

L#1 (X1 * K1) mod (2^16 + 1)


= (1001110101110001 * 1111010110000011) mod (2^16 + 1)
= 0001111011010110

L#2 (X2 + K2) mod 2^16


= 0001010000111100 + 1110101011111011) mod (2^16)
= 1111111100110111

L#3 (X3 + K3) mod 2^16


= 1101001011011010 + 1101101011101111) mod (2^16)
= 1010110111001001

L#4 (X4 * K4) mod (2^16 + 1)


= (1111111100010011 * 0000010011100111) mod (2^16 + 1)
= 0111000101000011

L#5 L#1 XOR L#3


= 0001111011010110 XOR 1010110111001001 = 1011001100011111

L#6 L#2 XOR L#4


= 1111111100110111 XOR 0111000101000011 = 1000111001110100

L#7 (L#5 * K5) mod (2^16 + 1)


= 1011001100011111 * 0001110101001001 mod (2^16 + 1)
= 1000001001011010

L#8 (L#6 + L#7) mod 2^16


= 1000111001110100 + 1000001001011010 mod 2^16
= 0001000011001110

L#9 (L#8 * K6) mod (2^16 + 1)


= 0001000011001110 * 0000010100011001 = 1010100111001001

L#10 (L#7 + L#9) mod 2^16


= 1000001001011010 + 1010100111001001 mod 2^16
= 0010110000100011

L#11 L#1 XOR L#9


= 0001111011010110 XOR 1010100111001001 = 1011011100011111

L#12 L#3 XOR L#9


= 1010110111001001 XOR 1010100111001001 = 0000010000000000

L#13 L#2 XOR L#10


= 1111111100110111 XOR 0010110000100011 = 1101001100010100

L#14 L#4 XOR L#10


= 0111000101000011 XOR 0010110000100011 = 0101110101100000
PUTARAN 7

L#1 (X1 * K1) mod (2^16 + 1)


= (1011011100011111 * 1011111000100011) mod (2^16 + 1)
= 1000001100111100
73

L#2 (X2 + K2) mod 2^16


= 0000010000000000 + 0111110101101010) mod (2^16)
= 1000000101101010

L#3 (X3 + K3) mod 2^16


= 1101001100010100 + 0111011101110110) mod (2^16)
= 0100101010001010

L#4 (X4 * K4) mod (2^16 + 1)


= (0101110101100000 * 1100010011101100) mod (2^16 + 1)
= 0100110010101101

L#5 L#1 XOR L#3


= 1000001100111100 XOR 0100101010001010 = 1100100110110110

L#6 L#2 XOR L#4


= 1000000101101010 XOR 0100110010101101 = 1100110111000111
L#7 (L#5 * K5) mod (2^16 + 1)
= 1100100110110110 * 1010010010000010 mod (2^16 + 1)
= 1000010011001110

L#8 (L#6 + L#7) mod 2^16


= 1100110111000111 + 1000010011001110 mod 2^16
= 0101001010010101

L#9 (L#8 * K6) mod (2^16 + 1)


= 0101001010010101 * 1000110010010010 = 0110011110100010

L#10 (L#7 + L#9) mod 2^16


= 1000010011001110 + 0110011110100010 mod 2^16
= 1110110001110000

L#11 L#1 XOR L#9


= 1000001100111100 XOR 0110011110100010 = 1110010010011110

L#12 L#3 XOR L#9


= 0100101010001010 XOR 0110011110100010 = 0010110100101000

L#13 L#2 XOR L#10


= 1000000101101010 XOR 1110110001110000 = 0110110100011010

L#14 L#4 XOR L#10


= 0100110010101101 XOR 1110110001110000 = 1010000011011101

PUTARAN 8

L#1 (X1 * K1) mod (2^16 + 1)


= (1110010010011110 * 0001111110110101) mod (2^16 + 1)
= 1010100101100110

L#2 (X2 + K2) mod 2^16


= 0010110100101000 + 0101111101011000) mod (2^16)
= 1000110010000000

L#3 (X3 + K3) mod 2^16


= 0110110100011010 + 1011101010111111) mod (2^16)
74

= 0010011111011001

L#4 (X4 * K4) mod (2^16 + 1)


= (1010000011011101 * 0000001010000001) mod (2^16 + 1)
= 1100011111001011

L#5 L#1 XOR L#3


= 1010100101100110 XOR 0010011111011001 = 1000111010111111

L#6 L#2 XOR L#4


= 1000110010000000 XOR 1100011111001011 = 0100101101001011

L#7 (L#5 * K5) mod (2^16 + 1)


= 1000111010111111 * 0100000101000110 mod (2^16 + 1)
= 0110001011010101

L#8 (L#6 + L#7) mod 2^16


= 0100101101001011 + 0110001011010101 mod 2^16
= 1010111000100000

L#9 (L#8 * K6) mod (2^16 + 1)


= 1010111000100000 * 0100100100100000 = 1011001001000100

L#10 (L#7 + L#9) mod 2^16


= 0110001011010101 + 1011001001000100 mod 2^16
= 0001010100011001

L#11 L#1 XOR L#9


= 1010100101100110 XOR 1011001001000100 = 0001101100100010

L#12 L#3 XOR L#9


= 0010011111011001 XOR 1011001001000100 = 1001010110011101

L#13 L#2 XOR L#10


= 1000110010000000 XOR 0001010100011001 = 1001100110011001

L#14 L#4 XOR L#10


= 1100011111001011 XOR 0001010100011001 = 1101001011010010

TRANSFORMASI OUTPUT

L#1 (X1 * K1) mod (2^16 + 1)


= 0001101100100010 * 0111010101101111 mod (2^16 + 1)
= 0100000101001100 = AB

L#2 (X2 + K2) mod 2^16


= 1001100110011001 + 1011011010110000 Mod 2 ^ 16
= 0101000001001001 = DH
L#3 (X3 + K3) mod 2^16
= 1001010110011101 + 1010101110110001 mod 2^16
= 0100000101001110 = AN

L#4 (X4 * K4) mod (2^16 + 1)


= 1101001011010010 * 1001111100011010 mod (2^16 + 1)
= 0100000101001110 = AN
75

Hasil proses dekripsi di atas adalah:


= 0100000101001100 = AB
= 0101000001001001 = DH
= 0100000101001110 = AN
= 0100000101001110 = AN

Setelah proses dekripsi di atas selesai maka di peroleh plaintext awal


adalah ABDHANAN.

4.4.2 User Interface


Adapun user interface dari perangkat lunak kriptografi Algoritma IDEA
ini meliputi, halaman utama, Kunci enkripsi, Kunci dekripsi. Untuk lebih jelasnya
dapat di lihat di bawah ini.

4.4.2.1 Halaman Utama


Halaman utama merupakan menu utama yang ada dalam sistem kriptografi
IDEA, untuk memudahkan user dalam mengoperasikan sistem kriptografi IDEA
ini. Halaman utama sistem ini dapat dilihat pada gambar 4.5 berikut:

Gambar 4.7 Halaman Utama


76

4.4.2.2 Form Encrip Data


Form enkripsi digunakan untuk merubah plainteks menjadi cipherteks.
Tampilan layar enkripsi pada sistem kriptografi IDEA ini dapat dilihat pada
gambar 4.6 berikut.

Gambar 4.8 Form Rancangan Proses Enkripsi

4.4.2.3 Form Descript Data

Form deskripsi digunakan untuk mengembalikan cipherteks ke bentuk


pesan semula. Tampilan layar dekripsi pada sistem kriptografi IDEA ini dapat
dilihat pada gambar 4.7 berikut:
77

Gambar 4.9 Form Rancangan Proses Dekripsi


79

BAB V
KESIMPULAN DAN SARAN

5.1 KESIMPULAN
1. Pada proses kriptografi dengan algoritma IDEA memiliki 8 putaran dan di
tambah satu lagi putaran transformasi output.
2. Panjang plaintext pada kriptografi algoritma IDEA minimal 64 bit
sedangkan panjang kunci 128 bit dan algoritma IDEA menggunakan
operasi aljabar yang berbeda-beda yaitu XOR, penambahan modulo 216,
perkalian 216+1.
3. Pada proses kriptografi dengan menggunakan metode IDEA ini
menggunakan kunci simetris pada proses enkripsi dan deskripsinya.
4. Pada penelitian tugas akhir ini, kriptografi dengan menggunakan metode
IDEA penulis menggunakan data berformat text.
5. Pada proses enkripsi dan dekripsi dengan menggunakan metode IDEA, file
plaintext awal setelah di enkripsi dengan menggunakan kunci simetris
akan menghasilkan file chipertext, lalu file chipertext di dekripsi kembali
dengan kunci simetris akan menghasilkan file plaintext awal.

Hasil kriptografi dengan menggunakan metode kriptografi IDEA


menghasilkan chippertext dengan karakteristik tertentu. Chipertext yang
dihasilkan berbeda-beda untuk setiap plaintext dan kuncinya. Ini sangat efektif
jika digunakan untuk pengamanan suatu data atau password. Karena untuk proses
Deskripsinya user memerlukan Plain Text dan Kunci. Jika salah satu variabelnya
berbeda maka hasil chipper textnya sudah tentu berbeda.
79

5.2 SARAN
Adapun saran-saran yang dapat penulis berikan selama melakukan
penelitian ini guna untuk pengembangan perangkat lunak kriptografi dengan
Algoritma IDEA ini adalah:
1. Penulis menyarankan kepada pihak lain yang ingin melanjutkan penelitian
lanjutan proses enkripsi dan dekripsi ini dengan format lainnya, seperti
untuk gambar, suara dan vidio.
2. Hasil keamanan kriptografi dengan menggunakan Algoritma IDEA dapat
dibandingkan dengan penerapan pada Algoritma lain mana yang lebih baik
dalam menjamin kerahasiaan datanya.
DAFTAR PUSTAKA

Ariyus, Dony., Pengantar Ilmu Kriptografi: Teori Analisis dan Implementasi, Edisi
Pertama. Yogyakarta: Andi Offset, 2008.

Andriyanto, Tri, dan D.L., Crispina Pardede, Studi Dan Perbandingan Algoritma
Idea Dan Algoritma Blowfish,Universitas Gunadarma, ISSN : 1411-6286.

Indriyawan. Eko Pemrogaman Visual Basic 6.0 Menggunakan Array dan Binary.
Yogyakarta : Andi, 2001

Jethefer, Stevens, Studi Dan Perbandingan Algoritma IDEA (International Data


Encryption Algorithm) Dengan DES (Data Encryption Standard), ITB, 17,
10-11.

Luzaenah, Lusi, Sistem Pengamanan data Efektif menggunakan teori-teori


enkripsi tertentu. Bandung, Gunung Agung, 2009.

Mangkulo, hengky alexander., “Cara Mudah Menguasai Visual Basic 6.0”, Penerbit PT.
Elek Media Komputindo, Jakarta. 2011.

Wahana Komputer: The Best Encryption Tools. Penerbit PT Elex Media


Komputindo, Jakarta, 2010.

Wahana Komputer : Memahami Model Enkripsi & Security Data. Penerbit ANDI,
Yogyakarta, 2003.

Anda mungkin juga menyukai