• Tidak ada hasil yang ditemukan

Perancangan Perangkat Lunak Kriptografi Metoda Idea (International Data Encryption Algorithm)

N/A
N/A
Protected

Academic year: 2016

Membagikan "Perancangan Perangkat Lunak Kriptografi Metoda Idea (International Data Encryption Algorithm)"

Copied!
86
0
0

Teks penuh

(1)

PERANCANGAN PERANGKAT LUNAK KRIPTOGRAFI

METODA IDEA (INTERNATIONAL DATA ENCRYPTION

ALGORITHM)

SKRIPSI

WAY YANTONO SAING

100823025

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

PERSETUJUAN

Judul

:

PERANCANGAN PERANGKAT LUNAK

KRIPTOGRAFI

METODA IDEA

(INTERNATIONAL

DATA ENCRYPTION ALGORITHM)

Kategori

: SKRIPSI

Nama

: WAY YANTONO SAING

Nomor Induk Mahasiswa

: 100823025

Program Studi

: EKSTENSI (S1) MATEMATIKA

Departemen

: MATEMATIKA

Fakultas

: MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, September 2013

Komisi Pembimbing

:

Pembimbing 1

Pembimbing 2

Drs. Marihat Situmorang, M.Kom

Drs. Sawaluddin, M.IT

NIP. 19631214 198903 1 001

NIP. 19591231 199802 1

001

Diketahui/Disetujui oleh

Departemen Matematika FMIPA USU

(3)

PERNYATAAN

PERANCANGAN PERANGKAT LUNAK KRIPTOGRAFI METODA IDEA

(INTERNATIONAL DATA ENCRYPTION ALGORITHM)

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa

kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, September 2013

(4)

PENGHARGAAN

Puji dan syukur penulis ucapkan kehadirat Allah SWT yang telah memberikan rahmat

dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini dalam waktu yang

ditetapkan.

Ucapan terima kasih Penulis sampaikan kepada Bapak Drs. Marihat

Situmorang, M.Kom, Drs. Sawaluddin, M.IT selaku pembimbing pada penyelesaian

skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada penulis.

Bapak Syahriol Sitorus, S.Si., M.IT. dan Bapak Dr. Syahril Efendi, M.IT. selaku

pembanding pada skripsi ini yang telah banyak memberi semangat dan motivasi.

Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen

Matematika FMIPA USU Bapak Prof. Dr. Tulus, Vordipl.Math., M.Si. dan Ibu Dr.

Mardiningsih, M.Si., Dekan dan Pembantu Dekan FMIPA USU, semua Dosen

Pengajar FMIPA USU, pegawai FMIPA USU dan rekan-rekan Penulis kelas Ekstensi

Matematika Komputasi tahun angkatan 2010. Akhirnya, tidak terlupakan Orang Tua

Penulis dan keluarga yang selama ini memberikan bantuan dan dorongan yang

diperlukan telah banyak memberikan bantuan dan dorongan untuk penyelesaian

skripsi ini. Semoga Allah SWT membalasnya.

Medan, September 2013

(5)

ABSTRAK

Tulisan ini mengkaji tentang kriptografi metoda IDEA

(International Data Encryption

Algorithm).

Masalah keamanan dan kerahasiaan data merupakan hal yang sangat

penting dalam suatu jaringan komputer yang terkoneksi dengan jaringan publik

misalnya internet. Tentu saja data yang sangat penting tersebut dilihat atau dibajak

oleh user yang tidak berwenang. Sistem keamanan pengiriman pesan/data dengan

menggunakan penyandian yang bertujuan untuk menjaga kerahasiaan suatu pesan dari

akses user yang tidak berwenang/berhak. Dalam skripsi ini dibahas tentang

perancanagn perangkat lunak kriptografi metoda IDEA.

(6)

DAFTAR ISI

Persetujuan

Pernyataan

Penghargaan

Abstrak

Abstrack

Daftar Isi

Bab 1 Pendahuluan

1.1.

Latar Belakang

1.2.

Perumusan Masalah

1.3.

Tujuan dan Manfaat Penulisan

1.4.

Pembatasan Masalah

1.5.

Metodologi Penelitian

1.6.

Tinjauan Pustaka

Bab 2 Landasan Teori

2.1.

Latar Belakang

2.1.1.

Sejarah Kriptografi

2.1.2.

Defenisi Kriptografi

2.1.3.

Tujuan Kriptografi

2.2.

Aplikasi Kriptografi

2.2.1. Komunikasi Aman

(Secure Communication)

2.2.2. Identifikasi dan Otentikasi

(Identification and

Authentication)

2.2.3.

Secret Sharing

2.2.4. Sertifikasi

(Certification)

2.2.5. Penemuan Kunci

(Key Recovery)

2.3. Jenis Sistem Kriptografi

2.4. Landasan Matematis Kriptografi

2.4.1. Aritmatika Modular

2.4.1. Inverse Perkalian

2.4.3. Inverse Penjumlahan

2.4.4. Operasi XOR

2.4.5. Permutasi

(Permutation)

2.4.6. Pergeseran Bit

(Shift)

2.4.7. Rotasi Bit

(Rotate)

2.4.8. Perkalian Modulo

2.5. Metode IDEA

2.5.1. Sejarah

2.5.2. Algoritma

2.5.3. Pembentukan Kunci

2.5.4. Enkripsi

2.5.5. Dekripsi

2.6. Perangkat Lunak

2.6.1. Tujuan Perangkat Lunak

2.6.2. langkah-langkah Pengembangan Perangkat Lunak

(7)

Bab 3 Pembahasan dan Perancangan

3.1. Pembahasan

3.1.1.

Persyaratan Perangkat Lunak

3.1.2.

Pembahasan Proses IDEA

3.1.2.1.

Proses Pembentukan Kunci

3.1.2.2.

Proses Enkripsi

3.1.2.3.

Proses Dekripsi

3.2.

Perancangan

3.2.1.

Form Splash Screen

3.2.2.

Form Proses pembentukan Kunci

3.2.3.

Form Proses Enkripsi/Dekripsi

Bab 4 Algoritma dan Implementasi

4.1.

Algoritma

4.1.1.

Algoritma Pembentukan Kunci Enkripsi dan

Dekripsi

4.1.2.

Algoritma Proses Enkripsi

4.1.3.

Algoritma proses Dekripsi

4.1.4.

Algoritma Fungsi Pendukung dalam Proses

pembentukan Kunci, Enkripsi dan Dekripsi

4.2.

Implementasi Sistem

4.2.1.

Spesifikasi Perangkat Kerasdan Perangkat Lunak

4.2.2.

Cara Menggunakan Perangkat Lunak

4.3.

Pengujian Sistem

Bab 5 Kesimpulan dan Saran

5.1. Kesimpulan dan Saran

5.2. Saran

(8)

ABSTRAK

Tulisan ini mengkaji tentang kriptografi metoda IDEA

(International Data Encryption

Algorithm).

Masalah keamanan dan kerahasiaan data merupakan hal yang sangat

penting dalam suatu jaringan komputer yang terkoneksi dengan jaringan publik

misalnya internet. Tentu saja data yang sangat penting tersebut dilihat atau dibajak

oleh user yang tidak berwenang. Sistem keamanan pengiriman pesan/data dengan

menggunakan penyandian yang bertujuan untuk menjaga kerahasiaan suatu pesan dari

akses user yang tidak berwenang/berhak. Dalam skripsi ini dibahas tentang

perancanagn perangkat lunak kriptografi metoda IDEA.

(9)

BAB 1

PENDAHULUAN

1.1.

Latar Belakang

Metode kriptografi digunakan untuk mengamankan data yang bersifat rahasia agar

tidak diketahui oleh orang lain. Metode kriptografi yang dapat digunakan untuk

mengamankan data ada bermacam-macam. Setiap metode memiliki kelebihan dan

kekurangannya masing-masing. Namun, masalah utamanya adalah bagaimana

mengetahui dan memahami cara kerja atau algoritma dari metoda kriptografi tersebut.

Penulis memilih pembelajaran metode kriptografi IDEA (

International Data

Encryption Algorithm

) karena sampai sekarang masih cukup handal untuk diterapkan

sebagai metoda pengamanan data.

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

). Metoda IDEA ini menggunakan beberapa

operasi dasar, seperti operasi logika

XOR

(

Exclusive – OR

), operasi perkalian mod 2

16

+ 1 (

multiplication modulo

2

16

+ 1) dan operasi penambahan mod 2

16

(

addition

modulo

2

16

). Metoda ini terdiri dari 8 putaran (

round

) dan menggunakan 64

bit

plaintext

dengan panjang kunci sebesar 128

bit

.

Sandi rahasia ini dipatenkan di banyak negara tapi dapat digunakan secara

(10)

hak patennya berakhir tahun 2011. Lisensi dari IDEA dipegang oleh MediaCrypt.

IDEA digunakan di Pretty Good Privacy (PGP) v2.0 dan sebagai algoritma opsional

dalam OpenPGP, Netscape’s Secure Socket Layer (SSL), dan Secure Hypertext

transfer Protocol (SHTTP).

Tulisan ini akan membahas bagaimana mengetetahui dan memahami cara

kerja atau algoritma dari Metoda Kriptografi IDEA (

International Data Encryption

Algorithm

)” dengan merancang suatu perangkat lunak untuk mempermudah dalam

pemahaman metoda tersebut.

1.2.

Perumusan Masalah

Permasalahan yang dibahas dalam menyusun skripsi ini adalah bagaimana cara

mempermudah mempelajari dan menjelaskan proses pembentukan kunci, enkripsi dan

dekripsi metoda kriptografi IDEA dalam bentuk perangkat lunak.

1.3. Tujuan dan Manfaat Penulisan

Tujuan penyusunan skripsi ini adalah untuk merancang suatu perangkat lunak untuk

membantu pemahaman metoda kriptografi IDEA.

Manfaat dari penyusunan skripsi ini yaitu perangkat lunak dapat digunakan

sebagai fasilitas pendukung dalam proses belajar mengajar.

1.4. Pembatasan Masalah

Pembatasan permasalahan dalam merancang perangkat lunak ini adalah :

1.

Perangkat lunak akan mengolah tahap – tahap perhitungan dalam bentuk

bilangan biner dan heksadesimal.

(11)

3.

Perangkat lunak tidak dapat mengolah input berupa gambar.

4.

Perangkat lunak tidak menampilkan tahap – tahap konversi bilangan ke dalam

bilangan biner.

1.5. Metodologi Penelitian

Proses pembentukan kunci dimulai dengan membagi 128

bit key

menjadi 8 buah 16

bit subkey

. Ini merupakan delapan

subkey

pertama untuk algoritma dengan perincian

enam

subkey

pertama untuk putaran (

round

) 1 dan dua

subkey

terakhir untuk putaran

2.

Key

dirotasikan 25 bit ke kiri dan dibagi menjadi 8

subkey

lagi. Ini merupakan

delapan

subkey

kedua untuk algoritma dengan perincian empat

subkey

pertama untuk

putaran 2 dan empat

subkey

terakhir untuk putaran 3. Algoritma hanya menggunakan

52 buah

subkey

dengan perincian 6 buah

subkey

untuk 8 putaran ditambah 4 buah

subkey

untuk transformasi output.

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.

Proses dekripsi hampir sama 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

(12)

1.6.

Tinjauan Pustaka

Dalam penelitian ini, peneliti memanfaatkan buku-buku yang dapat dipergunakan

untuk menjelaskan teori-teori pemecahan masalah atau dasar pemikiran untuk

menjelaskan masalah yang dibahas.

Salah satu sumbangan yang paling penting dari kriptografi kunci publik ialah

tanda tangan digital. Pada tahun 1991, standar internasional yang pertama untuk tanda

tangan digital yang dipergunakan ialah berdasarkan pada skema kunci publik RSA.

Pada tahun 1994 pemerintah Amerika Serikat mengadopsi standar tanda tangan digital

yang didasarkan pada mekanisme skema kunci publik

ElGamal

.

Pencarian terhadap skema kunci publik yang baru dengan pengembangan dari

mekanisme kriptografi yang sudah ada dan pembuktian keamanan berlangsung

dengan cepat. Berbagai standar dan infrastruktur yang berhubungan dengan

kriptografi sedang dibangun. Produk – produk keamanan sedang dikembangkan untuk

memenuhi kebutuhan akan keamanan informasi pada masyarakat.

Dorothy Elizabeth Robling Denning, 1982. dalam bukunya

“Cryptography

and Data Security”

, kriptografi adalah ilmu dan studi penulisan rahasia, dimana

plaintext

ditransformasikan menjadi

ciphertext

. Proses mengubah

plaintext

menjadi

ciphertext

disebut enkripsi dan proses kebalikan dari transformasi

ciphertext

menjadi

plaintext

disebut dekripsi.

Rinaldi Munir, 2006. dalam bukunya “Kriptografi”, menerangkan bahwa

kriptografi bertujuan untuk memberi layanan keamanan yang dimaksud sebagai

aspek-aspek keamanan yaitu : Kerahasiaan (

confidentiality

), Integritas Data (Data

(13)

BAB 2

LANDASAN TEORI

2.1.

Latar Belakang Kriptografi

2.1.1.

Sejarah Kriptografi

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

(14)

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.

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 yang paling

terkenal dalam sejarah dan tetap menjadi standar pengamanan data elektronik

komersial pada kebanyakan institusi keuangan di seluruh dunia.

Perkembangan yang paling pesat dan berpengaruh dalam sejarah kriptografi

ialah pada tahun 1976 dimana Whitfield Diffie dan Martin Hellman mempublikasikan

sebuah tesis berjudul

New Direction in Cryptography

. Dalam tesis ini diperkenalkan

konsep kunci publik kriptografi yang paling revolusioner dan juga menyediakan

metode baru dalam pertukaran kunci, yaitu keamanan yang didasarkan atas logaritma

diskrit. Walaupun penulis tesis tersebut tidak mempunyai praktek yang nyata akan

bentuk skema enkripsi kunci publik pada saat itu akan tetapi ide tersebut memicu

minat dan aktivitas yang besar dalam komunitas kriptografi. Pada tahun 1978, Rivest,

Shamir, dan Adleman menemukan enkripsi kunci publik yang pertama dan sekarang

ini dikenal dengan nama RSA (

Rivest, Shamir, and Adleman

). Skema RSA didasarkan

pada permasalahan matematika sulit yang terdiri dari pemfaktoran terhadap bilangan

yang besar nilainya. Karena adanya permasalahan matematika tersebut maka muncul

usaha – usaha untuk mencari cara yang paling efisien dalam pemfaktoran bilangan.

Skema kunci publik lainnya yang kuat dan praktis ditemukan oleh

ElGamal

. Skema

(15)

Salah satu sumbangan yang paling penting dari kriptografi kunci publik ialah

tanda tangan digital. Pada tahun 1991, standar internasional yang pertama untuk tanda

tangan digital yang dipergunakan ialah berdasarkan pada skema kunci publik RSA.

Pada tahun 1994 pemerintah Amerika Serikat mengadopsi standar tanda tangan digital

yang didasarkan pada mekanisme skema kunci publik

ElGamal

.

Pencarian terhadap skema kunci publik yang baru dengan pengembangan dari

mekanisme kriptografi yang sudah ada dan pembuktian keamanan berlangsung

dengan cepat. Berbagai standar dan infrastruktur yang berhubungan dengan

kriptografi sedang dibangun. Produk – produk keamanan sedang dikembangkan untuk

memenuhi kebutuhan akan keamanan informasi pada masyarakat.

2.1.2.

Definisi Kriptografi

Ada beberapa definisi yang telah dikemukakan di dalam berbagai literatur. Kata

kriptografi berasal dari bahasa Yunani yaitu

cryptos

yang berarti rahasia dan

graphein

yang berarti tulisan. Jadi kriptografi dapat dijelaskan secara harfiah sebagai tulisan

rahasia. 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. (John

Wiley & Sons. 1996)

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

(16)

2.1.3.

Tujuan Kriptografi

Kriptografi sesungguhnya merupakan studi terhadap teknik matematis yang terkait

dengan 4 aspek keamanan dari suatu informasi yakni kerahasiaan (

confidentiality

),

integritas data (

data integrity

), otentikasi (

authentication

), dan ketiadaan

penyangkalan (

non-repudiation

). Keempat aspek tersebut merupakan tujuan utama

dari suatu sistem kriptografi yang dapat dijelaskan sebagai berikut,

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.

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

(17)

2.2.

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.2.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 (menyadap) pembicaraan antar kedua pihak tadi

mungkin tidak pernah mengembalikan pesan dalam bentuk acak ke dalam bentuk

yang berarti.

2.2.2.

Identifikasi dan Otentikasi (Identification and Authentication)

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

(18)

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.2.3.

Secret Sharing

Secret Sharing

merupakan salah satu aplikasi dari kriptografi yang memungkinkan

pendistribusian satu rahasia di antara sekumpulan orang yang saling percaya. Sebagai

contoh, dalam

(k; n)-threshold scheme

, informasi tentang rahasia adalah

didistribusikan sedemikian rupa sehingga sembarang k dari n orang (k

n) memiliki

informasi yang cukup untuk menentukan (mengetahui) rahasia tersebut, tetapi

sembarang set k - 1 orang tidak dapat melakukannya. 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.2.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

(19)

2.2.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

penegakan 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.3.

Jenis Sistem Kriptografi

Berdasarkan pemakaian kunci maka sistem kriptografi (c

ryptosystems

) dapat

digolongkan atas atas 2 jenis sistem yakni sistem kriptografi kunci publik (

public key

cryptography

) dan sistem kriptografi kunci rahasia (

secret key cryptography

). Dalam

sistem kriptografi kunci rahasia yang dikenal juga dengan

symmetric cryptosystems

,

pihak pengirim dan penerima bersama-sama menyepakati sebuah kunci rahasia yang

akan digunakan dalam proses enkripsi dan dekripsi tanpa diketahui oleh pihak lain.

Sedangkan dalam sistem kriptografi kunci publik atau dikenal dengan

assymmetric

cryptosystem

, pihak pengirim maupun pihak penerima mendapatkan sepasang kunci

yakni kunci publik (

public key

) dan kunci rahasia (

private key

) dimana kunci publik

dipublikasikan dan kunci rahasia tetap dirahasiakan. Enkripsi dilakukan dengan

menggunakan kunci publik sedangkan dekripsi dilakukan dengan menggunakan kunci

(20)

2.4.

Landasan Matematis Kriptografi

2.4.1.

Aritmatika Modular

Aritmatika modular merupakan operasi matematika yang banyak diimplementasikan

pada metode kriptografi. Pada metoda IDEA, operasi aritmetika modular yang dipakai

adalah operasi penjumlahan modulo 2

16

dan operasi perkalian modulo 2

16

+ 1. Operasi

modulo ini melibatkan bilangan 0 dan 1 saja sehingga identik dengan bit pada

komputer. Contohnya,

(65530 + 10) mod 2

16

= 65540 mod 65536 = 4

(32675 * 4) mod (2

16

+ 1) = 131060 mod 65537 = 65523

2.4.2.

Inverse 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

(21)

Inverse = V0 + n End If

End Fungsi

Contoh, Misalkan untuk A = 3265, maka proses kerjanya adalah sebagai berikut :

n = 65537 G0 = 65537 G1 = 3265 V0 = 0 V1 = 1

While (3265 <> 0)

Y = Int(65537 / 3265) = 20 G2 = 65537 - 20 * 3265 = 237 G0 = 3267

G1 = 237

V2 = 0 - 20 * 1 = -20 V0 = 1

V1 = -20 Wend

If (1 >= 0) Then Inverse = 1 Else

Inverse= 1 + 65537 End If

End Fubgsi

Jadi

inverse

perkalian dari 3265 adalah 1

2.4.3.

Inverse Penjumlahan

Inverse

penjumlahan dalam metode IDEA menggunakan algoritma berikut ini :

Inverse

penjumlahan = 65536 - pnBil

(22)

2.4.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.

P

K = C ; C

K = P

Keterangan,

P =

Plaintext

K =

Key

C =

Ciphertext

Berikut ini adalah contoh operasi XOR :

1101 0110 0001 0100

(23)

2.4.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 :

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 :

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

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.4.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).

(24)

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

11000110 << 3 : 00110000

2.

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

11000110 >> 3 : 00011000

2.4.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

(25)

2.4.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 (2

16

+ 1) adalah sebuah bilangan prima. Oleh karena itu, operasi

perkalian modulo (2

16

+ 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.5.

Metoda IDEA

2.5.1.

Sejarah

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

(26)

2.5.2.

Algoritma

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 2

16

.

c.

Perkalian modulo 2

16

+ 1 (operasi ini menggantikan kotak-S atau

S-Box

).

Algoritma IDEA menggunakan perkalian modulo 2

16

+ 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 (2

16

+ 1) adalah sebuah bilangan prima. Oleh karena itu, operasi

perkalian modulo (2

16

+ 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. Algoritma IDEA ini dapat dibagi

menjadi tiga bagian besar, yaitu algoritma pembentukan kunci, enkripsi dan dekripsi.

2.5.3. Pembentukan Kunci

Proses pembentukan ini dimulai dengan membagi 128

bit key

menjadi 8 buah 16

bit

subkey

. Ini merupakan delapan

subkey

pertama untuk algoritma dengan perincian

enam

subkey

pertama untuk putaran (

round

) 1 dan dua

subkey

terakhir untuk putaran

(27)

delapan

subkey

kedua untuk algoritma dengan perincian empat

subkey

pertama untuk

putaran 2 dan empat

subkey

terakhir untuk putaran 3.

Algoritma hanya menggunakan

52 buah

subkey

dengan perincian 6 buah

subkey

untuk 8 putaran ditambah 4 buah

subkey

untuk transformasi output. Proses pembentukan kunci dapat dilihat pada

gambar 2.10 di bawah ini :

Kunci masukan 128 bit

k1 … k128

Diputar ke kiri 25 bit

k1 … k128

o

o

o

Diputar ke kiri 25 bit

k1 … k128

Dikelompokkan ke dalam 8 buah subkey dengan panjang 16 bit.

K1 K2 K3 K4 K5 K6 K7 K8

Dikelompokkan ke dalam 8 buah subkey dengan panjang 16 bit.

K1 K2 K3 K4 K5 K6 K7 K8

Dikelompokkan ke dalam 8 buah subkey dengan panjang 16 bit.

4 buah subkey terakhir tidak digunakan.

K1 K2 K3 K4 K5 K6 K7 K8

Round 1 K1 K2 K3 K4 K5 K6

Round 2 K1 K2

Round 2 K3 K4 K5 K6

Round 3 K1 K2 K3 K4

Transformasi Output

K1 K2 K3 K4

Gambar 2.10 Proses Pembentukan Kunci untuk IDEA

2.5.4. Enkripsi

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

(28)

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 (2

16

+ 1).

2.

Tambahkan X2 dengan K2 mod 2

16

.

3.

Tambahkan X3 dengan K3 mod 2

16

.

4.

Kalikan X4 dengan K4 mod (2

16

+ 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 (2

16

+ 1).

8.

Tambahkan hasil dari step 6 dan 7 mod 2

16

.

9.

Kalikan hasil dari step 8 dengan K6 mod (2

16

+ 1).

10.

Tambahkan hasil dari step 7 dan 9.

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 (2

16

+ 1).

2.

Tambahkan X2 dengan subkey K2 mod 2

16

.

3.

Tambahkan X3 dengan subkey K3 mod 2

16

.

4.

Kalikan X4 dengan subkey K4 mod (2

16

+ 1).

(29)

X1 X2

K1(1) K2(1) K3(1) K4(1)

X3 X4

K5(1)

K6(1)

K1(9) K2(9) K3(9) K4(9)

Y1 Y2 Y3 Y4

Satu putaran / iterasi

(round)

Tujuh putaran / iterasi (round) lainnya

Transformasi Output

o

o

o

Gambar 2.11 Proses Enkripsi Algoritma IDEA

2.5.5.

Dekripsi

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.

(30)

dan 2 pada proses dekripsi. Demikian seterusnya. Agar lebih jelas, lihatlah tabel

[image:30.595.97.545.144.372.2]

berikut ini.

Tabel 2.2 Subkey enkripsi dan dekripsi algoritma IDEA

Round Subkey Enkripsi Subkey Dekripsi

1 K1(1) K2(1) K3(1) K4(1) K5(1) K6(1) K1(9)-1

-

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)

Transformasi

output K1(9) K2(9) K3(9) K4(9) K1(1)

-1

-K2(1) -K3(1) K4(1)-1

2.6.

Perangkat Lunak

Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di bidang

teknologi, tanpa disadari komputer telah ikut berperan dalam dunia pendidikan

terutama penggunaannya sebagai alat bantu pengajaran. Percobaan penggunaan

komputer untuk proses belajar dimulai di Amerika Serikat pada akhir tahun 1950-an

dan awal tahun 1960-an. Kemudian penelitian selanjutnya dilakukan oleh Harvard

University bekerja sama dengan IBM pada tahun 1965. Setelah munculnya komputer

mikro, sistem pengajaran dengan komputer menjadi semakin meluas pada

pengembangan aplikasi perangkat lunak ajar yang dikenal dengan istilah perangkat

lunak pembelajaran. Perangkat lunak pembelajaran dengan komputer muncul dari

sejumlah disiplin ilmu, terutama ilmu komputer dan psikologi. Dari ilmu komputer

dan matematika muncul program – program yang membuat semua perhitungan dan

fungsi lebih mudah dan bermanfaat. Sedangkan dari ilmu psikologi muncul

(31)

2.6.1.

Tujuan Perangkat Lunak

Tujuan dari perangkat lunak, antara lain :

1.

Peningkatan pengawasan

2.

Penggunaan sumber daya

3.

Individualisasi

4.

Ketepatan waktu dan tingkat ketersediaan

5.

Pengurangan waktu latihan

6.

Perbaikan hasil kerja

7.

Alat yang nyaman dipakai

8.

Pengganti cara belajar

9.

Peningkatan kepuasan belajar

10.

Pengurangan waktu pengembangan

2.6.2.

Langkah-Langkah Pengembangan Perangkat Lunak

Ada 5 tahap siklus pengembangan perangkat lunak pembelajaran yaitu :

1.

Pengembangan spesifikasi perancangan detail

Tujuan dari pengembangan spesifikasi perancangan detail ini meliputi perluasan

konsep perancangan untuk menciptakan suatu rencana yang efektif.

2.

Pengembangan teknik

Pengembangan ini biasanya dilakukan dengan persetujuan dari tim perancang.

Tahap ini biasanya akan diulang-ulang dan sering terjadi perbaikan.

3.

Evaluasi

Untuk menghasilkan suatu perangkat lunak pembelajaran yang dapat memenuhi

standar maka perlu dilakukan suatu pengujian. Pengujian biasanya dilakukan pada

bagian pelajaran dan pelatihan. Hasil dari pengujian inilah yang dievaluasi oleh

tim perancang.

4.

Produksi dan pengembangan

Produksi ini harus dilakukan secara teknis dan logis dalam pembuatan

dokumentasi. Sedangkan pengembangan yang dilakukan mengacu pada proses

(32)

5.

Evaluasi akhir

Langkah pengujian yang dapat dilakukan misalnya dengan melakukan suatu

kuisioner maupun konsultasi dengan mereka yang ingin belajar. Hasilnya dapat

menjadi pedoman apakah perangkat lunak pembelajaran tersebut perlu dilakukan

(33)

BAB 3

PEMBAHASAN DAN PERANCANGAN

3.1.

Pembahasan

3.1.1.

Persyaratan Perangkat Lunak

Perangkat lunak pembelajaran metode kriptografi IDEA memiliki persyaratan sebagai

berikut :

1.

Perangkat lunak cukup menerima

plaintext

sepanjang 8 karakter dan kunci

sepanjang 16 karakter.

2.

Perangkat lunak harus dapat menampilkan tahapan-tahapan proses

pembentukan kunci, enkripsi dan dekripsi.

3.

Perangkat lunak akan menyediakan teori-teori dasar mengenai metode IDEA.

4.

Kecepatan visualisasi proses pada perangkat lunak dapat disesuaikan dengan

cepat lambatnya daya tangkap

user

.

5.

Perangkat lunak harus dapat menampilkan tahapan proses perhitungan dalam

biner dan heksadesimal.

6.

User

diasumsikan telah memahami dasar matematika kriptografi seperti

operasi XOR, perkalian modulo, penjumlahan modulo,

Left Rotate

, dan

konversi antar basis bilangan dan konversi dari bilangan ke

ASCII Code

yaitu

mencakup biner ke desimal, heksadesimal ke desimal, biner ke heksadesimal,

(34)

3.1.2.

Pembahasan Proses IDEA

Proses penyelesaian metoda kriptografi IDEA ini dapat dibagi menjadi 3 tahapan

yaitu:

1.

Proses Pembentukan Kunci.

2.

Proses Enkripsi.

3.

Proses Dekripsi.

3.1.2.1.

Proses Pembentukan Kunci

Metoda IDEA memiliki

input

128 bit kunci (

key

) yang identik dengan 32 digit

heksadesimal ataupun 16 karakter yang diproses untuk menghasilkan 52 buah

subkey

dengan perincian masing-masing 6 buah

subkey

akan digunakan pada 8 putaran dan 4

buah

subkey

untuk transformasi output.

Untuk lebih memahami proses pembentukan kunci pada metoda IDEA,

diberikan sebuah contoh berikut ini.

Misalkan :

Input

kunci = wayyantonosaings

Proses pembentukan kuncinya adalah sebagai berikut :

KUNCI ENKRIPSI

---

************* PUTARAN - 1 ************* INPUT KUNCI :

011101110110000101111001011110010110000101101110011101000110111101101 11001101111011100110110000101101001011011100110011101110011

Pecah menjadi 8 kelompok :

KE1 (Putaran 1) = 0111011101100001 KE2 (Putaran 1) = 0111100101111001 KE3 (Putaran 1) = 0110000101101110 KE4 (Putaran 1) = 0111010001101111 KE5 (Putaran 1) = 0110111001101111 KE6 (Putaran 1) = 0111001101100001 KE1 (Putaran 2) = 0110100101101110 KE2 (Putaran 2) = 0110011101110011

(35)

rotasi kiri

(01110111011000010111100101111001011000010110111001110100011011110110 111001101111011100110110000101101001011011100110011101110011, 25) = 111100101100001011011100111010001101111011011100110111101110011011000 01011010010110111001100111011100110111011101100001011110010

Pecah menjadi 8 kelompok :

KE3 (Putaran 2) = 1111001011000010 KE4 (Putaran 2) = 1101110011101000 KE5 (Putaran 2) = 1101111011011100 KE6 (Putaran 2) = 1101111011100110 KE1 (Putaran 3) = 1100001011010010 KE2 (Putaran 3) = 1101110011001110 KE3 (Putaran 3) = 1110011011101110 KE4 (Putaran 3) = 1100001011110010

************* PUTARAN - 3 ************* rotasi kiri

(11110010110000101101110011101000110111101101110011011110111001101100 001011010010110111001100111011100110111011101100001011110010, 25) = 110100011011110110111001101111011100110110000101101001011011100110011 10111001101110111011000010111100101111001011000010110111001

Pecah menjadi 8 kelompok :

KE5 (Putaran 3) = 1101000110111101 KE6 (Putaran 3) = 1011100110111101 KE1 (Putaran 4) = 1100110110000101 KE2 (Putaran 4) = 1010010110111001 KE3 (Putaran 4) = 1001110111001101 KE4 (Putaran 4) = 1101110110000101 KE5 (Putaran 4) = 1110010111100101 KE6 (Putaran 4) = 1000010110111001

************* PUTARAN - 4 ************* rotasi kiri

(11010001101111011011100110111101110011011000010110100101101110011001 110111001101110111011000010111100101111001011000010110111001, 25) = 011110111001101100001011010010110111001100111011100110111011101100001 01111001011110010110000101101110011101000110111101101110011

Pecah menjadi 8 kelompok :

KE1 (Putaran 5) = 0111101110011011 KE2 (Putaran 5) = 0000101101001011 KE3 (Putaran 5) = 0111001100111011 KE4 (Putaran 5) = 1001101110111011 KE5 (Putaran 5) = 0000101111001011 KE6 (Putaran 5) = 1100101100001011 KE1 (Putaran 6) = 0111001110100011 KE2 (Putaran 6) = 0111101101110011

************* PUTARAN - 5 ************* rotasi kiri

(36)

100101101110011001110111001101110111011000010111100101111001011000010 11011100111010001101111011011100110111101110011011000010110

Pecah menjadi 8 kelompok :

KE3 (Putaran 6) = 1001011011100110 KE4 (Putaran 6) = 0111011100110111 KE5 (Putaran 6) = 0111011000010111 KE6 (Putaran 6) = 1001011110010110 KE1 (Putaran 7) = 0001011011100111 KE2 (Putaran 7) = 0100011011110110 KE3 (Putaran 7) = 1110011011110111 KE4 (Putaran 7) = 0011011000010110

************* PUTARAN - 6 ************* rotasi kiri

(10010110111001100111011100110111011101100001011110010111100101100001 011011100111010001101111011011100110111101110011011000010110, 25) = 011011101110110000101111001011110010110000101101110011101000110111101 10111001101111011100110110000101101001011011100110011101110

Pecah menjadi 8 kelompok :

KE5 (Putaran 7) = 0110111011101100 KE6 (Putaran 7) = 0010111100101111 KE1 (Putaran 8) = 0010110000101101 KE2 (Putaran 8) = 1100111010001101 KE3 (Putaran 8) = 1110110111001101 KE4 (Putaran 8) = 1110111001101100 KE5 (Putaran 8) = 0010110100101101 KE6 (Putaran 8) = 1100110011101110

************* PUTARAN - 7 ************* rotasi kiri

(01101110111011000010111100101111001011000010110111001110100011011110 110111001101111011100110110000101101001011011100110011101110, 25) = 010111100101100001011011100111010001101111011011100110111101110011011 00001011010010110111001100111011100110111011101100001011110

Pecah menjadi 8 kelompok (4 kelompok terakhir tidak digunakan) : KE1 (Transformasi Output) = 0101111001011000

KE2 (Transformasi Output) = 0101101110011101 KE3 (Transformasi Output) = 0001101111011011 KE4 (Transformasi Output) = 1001101111011100 KUNCI DEKRIPSI

---

KD1(Putaran 1) = Inverse(KE1-Putaran9) = 0011110110000100 KD2(Putaran 1) = Minus(KE2-Putaran9) = 1110111110111000 KD3(Putaran 1) = Minus(KE3-Putaran9) = 1110110110101111 KD4(Putaran 1) = Inverse(KE4-Putaran9) = 0000001010110111 KD5(Putaran 1) = (KE5-Putaran8) = 0000100011001000

(37)

KD1(Putaran 2) = Inverse(KE1-Putaran8) = 1111101000010101 KD2(Putaran 2) = Minus(KE3-Putaran8) = 1101011101111000 KD3(Putaran 2) = Minus(KE2-Putaran8) = 1101101111110111 KD4(Putaran 2) = Inverse(KE4-Putaran8) = 1001011100110100 KD5(Putaran 2) = (KE5-Putaran7) = 0010100110101000

KD6(Putaran 2) = (KE6-Putaran7) = 1010101010001001

KD1(Putaran 3) = Inverse(KE1-Putaran7) = 0011111111010101 KD2(Putaran 3) = Minus(KE3-Putaran7) = 1011101110101100 KD3(Putaran 3) = Minus(KE2-Putaran7) = 1111101101101100 KD4(Putaran 3) = Inverse(KE4-Putaran7) = 0100010100111000 KD5(Putaran 3) = (KE5-Putaran6) = 1101010001010101

KD6(Putaran 3) = (KE6-Putaran6) = 0100010011110100

KD1(Putaran 4) = Inverse(KE1-Putaran6) = 1000101001110000 KD2(Putaran 4) = Minus(KE3-Putaran6) = 1001101110101011 KD3(Putaran 4) = Minus(KE2-Putaran6) = 1011010111011110 KD4(Putaran 4) = Inverse(KE4-Putaran6) = 1010001011101010 KD5(Putaran 4) = (KE5-Putaran5) = 0010101010100010

KD6(Putaran 4) = (KE6-Putaran5) = 0111101000100010

KD1(Putaran 5) = Inverse(KE1-Putaran5) = 0101110011001110 KD2(Putaran 5) = Minus(KE3-Putaran5) = 1101010101101110 KD3(Putaran 5) = Minus(KE2-Putaran5) = 1111110111001110 KD4(Putaran 5) = Inverse(KE4-Putaran5) = 0110110010001011 KD5(Putaran 5) = (KE5-Putaran4) = 0101000100111101

KD6(Putaran 5) = (KE6-Putaran4) = 0001000100000100

KD1(Putaran 6) = Inverse(KE1-Putaran4) = 0001010011011111 KD2(Putaran 6) = Minus(KE3-Putaran4) = 1011011011011011 KD3(Putaran 6) = Minus(KE2-Putaran4) = 1110011011101011 KD4(Putaran 6) = Inverse(KE4-Putaran4) = 0001001000101110 KD5(Putaran 6) = (KE5-Putaran3) = 1000000100100101

KD6(Putaran 6) = (KE6-Putaran3) = 0001000100010101

(38)

KD6(Putaran 7) = (KE6-Putaran2) = 1000101010000010

KD1(Putaran 8) = Inverse(KE1-Putaran2) = 0100000011001111 KD2(Putaran 8) = Minus(KE3-Putaran2) = 0110000101111000 KD3(Putaran 8) = Minus(KE2-Putaran2) = 1010110110110111 KD4(Putaran 8) = Inverse(KE4-Putaran2) = 0100000111010110 KD5(Putaran 8) = (KE5-Putaran1) = 0100010001000101

KD6(Putaran 8) = (KE6-Putaran1) = 0100000100100000

KD1(Putaran 9) = Inverse(KE1-Putaran1) = 0011001101110101 KD2(Putaran 9) = Minus(KE2-Putaran1) = 1010101110110001 KD3(Putaran 9) = Minus(KE3-Putaran1) = 1011101110111111 KD4(Putaran 9) = Inverse(KE4-Putaran1) = 0111110001000101

3.1.2.2.

Proses Enkripsi

Proses enkripsi dari metoda IDEA terdiri dari 8 iterasi (putaran) ditambah satu putaran

transformasi output. Proses ini memiliki

input

data

plaintext

64 bit yang identik

dengan 16 digit heksadesimal atau 8 karakter.

Proses enkripsi dari metoda IDEA dapat dilihat pada contoh berikut ini.

Misalkan

plaintext

= ‘facebook’ dengan kunci yang dihasilkan di atas, maka proses

enkripsinya adalah sebagai berikut :

PROSES ENKRIPSI ************* PUTARAN - 1 *************

01) L#1 = (X1 * K1) mod (2^16 + 1) = 0110011001100001 * 0011000100110000 mod (2^16 + 1) = 1010111110000101

02) L#2 = (X2 + K2) mod 2^16 = 0110001101100101 + 0011000000110001 mod 2^16 = 1001001110010110

03) L#3 = (X3 + K3) mod 2^16 = 0110001001101111 + 0011000100110000 mod 2^16 = 1001001110011111

04) L#4 = (X4 * K4) mod (2^16 + 1) = 0110111101101011 * 0011000100110001 mod (2^16 + 1) = 1011100100010011

(39)

06) L#6 = L#2 XOR L#4 = 1001001110010110 XOR 1011100100010011 = 0010101010000101

07) L#7 = (L#5 * K5) mod (2^16 + 1) = 0011110000011010 * 0011000100110001 mod (2^16 + 1) = 0110111101101110

08) L#8 = (L#6 + L#7)) mod 2^16 = 0010101010000101 + 0110111101101110 mod 2^16 = 1001100111110011

09) L#9 = (L#8 * K6) mod (2^16 + 1) = 1001100111110011 * 0011000000110001 mod (2^16 + 1) = 1110101010001001

10) L#10 = (L#7 + L#9)) mod 2^16 = 0110111101101110 + 1110101010001001 mod 2^16 = 0101100111110111

11) L#11 = L#1 XOR L#9 = 1010111110000101 XOR 1110101010001001 = 0100010100001100

12) L#12 = L#3 XOR L#9 = 1001001110011111 XOR 1110101010001001 = 0111100100010110

13) L#13 = L#2 XOR L#10 = 1001001110010110 XOR 0101100111110111 = 1100101001100001

14) L#14 = L#4 XOR L#10 = 1011100100010011 XOR 0101100111110111 = 1110000011100100

Untuk putaran berikutnya : X1 = L#11 = 0100010100001100 X2 = L#12 = 0111100100010110 X3 = L#13 = 1100101001100001 X4 = L#14 = 1110000011100100

************* PUTARAN - 2 *************

01) L#1 = (X1 * K1) mod (2^16 + 1) = 0100010100001100 * 0011000100110001 mod (2^16 + 1) = 0111011000001000

02) L#2 = (X2 + K2) mod 2^16 = 0111100100010110 + 0011000000110000 mod 2^16 = 1010100101000110

03) L#3 = (X3 + K3) mod 2^16 = 1100101001100001 + 0110001001100010 mod 2^16 = 0010110011000011

04) L#4 = (X4 * K4) mod (2^16 + 1) = 1110000011100100 * 0110000001100010 mod (2^16 + 1) = 0100001010011101

05) L#5 = L#1 XOR L#3 = 0111011000001000 XOR 0010110011000011 = 0101101011001011

06) L#6 = L#2 XOR L#4 = 1010100101000110 XOR 0100001010011101 = 1110101111011011

07) L#7 = (L#5 * K5) mod (2^16 + 1) = 0101101011001011 * 0110001001100010 mod (2^16 + 1) = 0101010011010010

(40)

09) L#9 = (L#8 * K6) mod (2^16 + 1) = 0100000010101101 * 0110001001100000 mod (2^16 + 1) = 0110001000000110

10) L#10 = (L#7 + L#9)) mod 2^16 = 0101010011010010 + 0110001000000110 mod 2^16 = 1011011011011000

11) L#11 = L#1 XOR L#9 = 0111011000001000 XOR 0110001000000110 = 0001010000001110

12) L#12 = L#3 XOR L#9 = 0010110011000011 XOR 0110001000000110 = 0100111011000101

13) L#13 = L#2 XOR L#10 = 1010100101000110 XOR 1011011011011000 = 0001111110011110

14) L#14 = L#4 XOR L#10 = 0100001010011101 XOR 1011011011011000 = 1111010001000101

Untuk putaran berikutnya : X1 = L#11 = 0001010000001110 X2 = L#12 = 0100111011000101 X3 = L#13 = 0001111110011110 X4 = L#14 = 1111010001000101

************* PUTARAN - 3 *************

01) L#1 = (X1 * K1) mod (2^16 + 1) = 0001010000001110 * 0110001001100010 mod (2^16 + 1) = 0000000110100111

02) L#2 = (X2 + K2) mod 2^16 = 0100111011000101 + 0110001001100000 mod 2^16 = 1011000100100101

03) L#3 = (X3 + K3) mod 2^16 = 0001111110011110 + 0110000001100010 mod 2^16 = 1000000000000000

04) L#4 = (X4 * K4) mod (2^16 + 1) = 1111010001000101 * 0110000001100000 mod (2^16 + 1) = 0001110111101011

05) L#5 = L#1 XOR L#3 = 0000000110100111 XOR 1000000000000000 = 1000000110100111

06) L#6 = L#2 XOR L#4 = 1011000100100101 XOR 0001110111101011 = 1010110011001110

07) L#7 = (L#5 * K5) mod (2^16 + 1) = 1000000110100111 * 1100010011000100 mod (2^16 + 1) = 1011110000110110

08) L#8 = (L#6 + L#7)) mod 2^16 = 1010110011001110 + 1011110000110110 mod 2^16 = 0110100100000100

09) L#9 = (L#8 * K6) mod (2^16 + 1) = 0110100100000100 * 1100010011000100 mod (2^16 + 1) = 0010011001011001

10) L#10 = (L#7 + L#9)) mod 2^16 = 1011110000110110 + 0010011001011001 mod 2^16 = 1110001010001111

(41)

12) L#12 = L#3 XOR L#9 = 1000000000000000 XOR 0010011001011001 = 1010011001011001

13) L#13 = L#2 XOR L#10 = 1011000100100101 XOR 1110001010001111 = 0101001110101010

14) L#14 = L#4 XOR L#10 = 0001110111101011 XOR 1110001010001111 = 1111111101100100

Untuk putaran berikutnya : X1 = L#11 = 0010011111111110 X2 = L#12 = 1010011001011001 X3 = L#13 = 0101001110101010 X4 = L#14 = 1111111101100100

************* PUTARAN - 4 *************

01) L#1 = (X1 * K1) mod (2^16 + 1) = 0010011111111110 * 1100000011000100 mod (2^16 + 1) = 0000000001011011

02) L#2 = (X2 + K2) mod 2^16 = 1010011001011001 + 1100010011000100 mod 2^16 = 0110101100011101

03) L#3 = (X3 + K3) mod 2^16 = 0101001110101010 + 1100000011000000 mod 2^16 = 0001010001101010

04) L#4 = (X4 * K4) mod (2^16 + 1) = 1111111101100100 * 1100010011000000 mod (2^16 + 1) = 0101011010111001

05) L#5 = L#1 XOR L#3 = 0000000001011011 XOR 0001010001101010 = 0001010000110001

06) L#6 = L#2 XOR L#4 = 0110101100011101 XOR 0101011010111001 = 0011110110100100

07) L#7 = (L#5 * K5) mod (2^16 + 1) = 0001010000110001 * 1100000011000100 mod (2^16 + 1) = 0010011001010000

08) L#8 = (L#6 + L#7)) mod 2^16 = 0011110110100100 + 0010011001010000 mod 2^16 = 0110001111110100

09) L#9 = (L#8 * K6) mod (2^16 + 1) = 0110001111110100 * 1100010011000000 mod (2^16 + 1) = 0111101000101111

10) L#10 = (L#7 + L#9)) mod 2^16 = 0010011001010000 + 0111101000101111 mod 2^16 = 1010000001111111

11) L#11 = L#1 XOR L#9 = 0000000001011011 XOR 0111101000101111 = 0111101001110100

12) L#12 = L#3 XOR L#9 = 0001010001101010 XOR 0111101000101111 = 0110111001000101

13) L#13 = L#2 XOR L#10 = 0110101100011101 XOR 1010000001111111 = 1100101101100010

(42)

Untuk putaran berikutnya : X1 = L#11 = 0111101001110100 X2 = L#12 = 0110111001000101 X3 = L#13 = 1100101101100010 X4 = L#14 = 1111011011000110

************* PUTARAN - 5 *************

01) L#1 = (X1 * K1) mod (2^16 + 1) = 0111101001110100 * 1000100110000001 mod (2^16 + 1) = 1000011010101111

02) L#2 = (X2 + K2) mod 2^16 = 0110111001000101 + 1000100110001001 mod 2^16 = 1111011111001110

03) L#3 = (X3 + K3) mod 2^16 = 1100101101100010 + 1000100110000001 mod 2^16 = 0101010011100011

04) L#4 = (X4 * K4) mod (2^16 + 1) = 1111011011000110 * 1000000110001001 mod (2^16 + 1) = 0101100100011001

05) L#5 = L#1 XOR L#3 = 1000011010101111 XOR 0101010011100011 = 1101001001001100

06) L#6 = L#2 XOR L#4 = 1111011111001110 XOR 0101100100011001 = 1010111011010111

07) L#7 = (L#5 * K5) mod (2^16 + 1) = 1101001001001100 * 1000000110000001 mod (2^16 + 1) = 1101100111101011

08) L#8 = (L#6 + L#7)) mod 2^16 = 1010111011010111 + 1101100111101011 mod 2^16 = 1000100011000010

09) L#9 = (L#8 * K6) mod (2^16 + 1) = 1000100011000010 * 1000100110001001 mod (2^16 + 1) = 1011100001011010

10) L#10 = (L#7 + L#9)) mod 2^16 = 1101100111101011 + 1011100001011010 mod 2^16 = 1001001001000101

11) L#11 = L#1 XOR L#9 = 1000011010101111 XOR 1011100001011010 = 0011111011110101

12) L#12 = L#3 XOR L#9 = 0101010011100011 XOR 1011100001011010 = 1110110010111001

13) L#13 = L#2 XOR L#10 = 1111011111001110 XOR 1001001001000101 = 0110010110001011

14) L#14 = L#4 XOR L#10 = 0101100100011001 XOR 1001001001000101 = 1100101101011100

Untuk putaran berikutnya : X1 = L#11 = 0011111011110101 X2 = L#12 = 1110110010111001 X3 = L#13 = 0110010110001011 X4 = L#14 = 1100101101011100

(43)

*************

01) L#1 = (X1 * K1) mod (2^16 + 1) = 0011111011110101 * 1000000110001001 mod (2^16 + 1) = 0000011001000010

02) L#2 = (X2 + K2) mod 2^16 = 1110110010111001 + 1000100110001001 mod 2^16 = 0111011001000010

03) L#3 = (X3 + K3) mod 2^16 = 0110010110001011 + 0001001100010011 mod 2^16 = 0111100010011110

04) L#4 = (X4 * K4) mod (2^16 + 1) = 1100101101011100 * 0000001100000011 mod (2^16 + 1) = 0111001110110000

05) L#5 = L#1 XOR L#3 = 0000011001000010 XOR 0111100010011110 = 0111111011011100

06) L#6 = L#2 XOR L#4 = 0111011001000010 XOR 0111001110110000 = 0000010111110010

07) L#7 = (L#5 * K5) mod (2^16 + 1) = 0111111011011100 * 0001001100000011 mod (2^16 + 1) = 1100011100101001

08) L#8 = (L#6 + L#7)) mod 2^16 = 0000010111110010 + 1100011100101001 mod 2^16 = 1100110100011011

09) L#9 = (L#8 * K6) mod (2^16 + 1) = 1100110100011011 * 0000001100010011 mod (2^16 + 1) = 1000011110001011

10) L#10 = (L#7 + L#9)) mod 2^16 = 1100011100101001 + 1000011110001011 mod 2^16 = 0100111010110100

11) L#11 = L#1 XOR L#9 = 0000011001000010 XOR 1000011110001011 = 1000000111001001

12) L#12 = L#3 XOR L#9 = 0111100010011110 XOR 1000011110001011 = 1111111100010101

13) L#13 = L#2 XOR L#10 = 0111011001000010 XOR 0100111010110100 = 0011100011110110

14) L#14 = L#4 XOR L#10 = 0111001110110000 XOR 0100111010110100 = 0011110100000100

Untuk putaran berikutnya : X1 = L#11 = 1000000111001001 X2 = L#12 = 1111111100010101 X3 = L#13 = 0011100011110110 X4 = L#14 = 0011110100000100

************* PUTARAN - 7 *************

01) L#1 = (X1 * K1) mod (2^16 + 1) = 1000000111001001 * 0001001100000011 mod (2^16 + 1) = 0110011010111000

02) L#2 = (X2 + K2) mod 2^16 = 1111111100010101 + 0001001100010011 mod 2^16 = 0001001000101000

(44)

04) L#4 = (X4 * K4) mod (2^16 + 1) = 0011110100000100 * 0000001100010011 mod (2^16 + 1) = 1001001010010001

05) L#5 = L#1 XOR L#3 = 0110011010111000 XOR 0100110000001001 = 0010101010110001

06) L#6 = L#2 XOR L#4 = 0001001000101000 XOR 1001001010010001 = 1000000010111001

07) L#7 = (L#5 * K5) mod (2^16 + 1) = 0010101010110001 * 0000011000100110 mod (2^16 + 1) = 0111101101000000

08) L#8 = (L#6 + L#7)) mod 2^16 = 1000000010111001 + 0111101101000000 mod 2^16 = 1111101111111001

09) L#9 = (L#8 * K6) mod (2^16 + 1) = 1111101111111001 * 0000011000000110 mod (2^16 + 1) = 1011011111101001

10) L#10 = (L#7 + L#9)) mod 2^16 = 0111101101000000 + 1011011111101001 mod 2^16 = 0011001100101001

11) L#11 = L#1 XOR L#9 = 0110011010111000 XOR 1011011111101001 = 1101000101010001

12) L#12 = L#3 XOR L#9 = 0100110000001001 XOR 1011011111101001 = 1111101111100000

13) L#13 = L#2 XOR L#10 = 0001001000101000 XOR 0011001100101001 = 0010000100000001

14) L#14 = L#4 XOR L#10 = 1001001010010001 XOR 0011001100101001 = 1010000110111000

Untuk putaran berikutnya : X1 = L#11 = 1101000101010001 X2 = L#12 = 1111101111100000 X3 = L#13 = 0010000100000001 X4 = L#14 = 1010000110111000

************* PUTARAN - 8 *************

01) L#1 = (X1 * K1) mod (2^16 + 1) = 1101000101010001 * 0010011000100110 mod (2^16 + 1) = 1111100011010110

02) L#2 = (X2 + K2) mod 2^16 = 1111101111100000 + 0000011000100110 mod 2^16 = 0000001000000110

03) L#3 = (X3 + K3) mod 2^16 = 0010000100000001 + 0010011000100110 mod 2^16 = 0100011100100111

04) L#4 = (X4 * K4) mod (2^16 + 1) = 1010000110111000 * 0010011000000110 mod (2^16 + 1) = 0000001001001011

05) L#5 = L#1 XOR L#3 = 1111100011010110 XOR 0100011100100111 = 1011111111110001

(45)

07) L#7 = (L#5 * K5) mod (2^16 + 1) = 1011111111110001 * 0010011000100110 mod (2^16 + 1) = 0010011100101100

08) L#8 = (L#6 + L#7)) mod 2^16 = 0000000001001101 + 0010011100101100 mod 2^16 = 0010011101111001

09) L#9 = (L#8 * K6) mod (2^16 + 1) = 0010011101111001 * 0010011000000110 mod (2^16 + 1) = 1101110011111010

10) L#10 = (L#7 + L#9)) mod 2^16 = 0010011100101100 + 1101110011111010 mod 2^16 = 0000010000100110

11) L#11 = L#1 XOR L#9 = 1111100011010110 XOR 1101110011111010 = 0010010000101100

12) L#12 = L#3 XOR L#9 = 0100011100100111 XOR 1101110011111010 = 1001101111011101

13) L#13 = L#2 XOR L#10 = 0000001000000110 XOR 0000010000100110 = 0000011000100000

14) L#14 = L#4 XOR L#10 = 0000001001001011 XOR 0000010000100110 = 0000011001101101

Untuk transformasi output : X1 = L#11 = 0010010000101100 X2 = L#13 = 0000011000100000 X3 = L#12 = 1001101111011101 X4 = L#14 = 0000

Gambar

Tabel 2.1 Aturan Operasi XOR
gambar 2.10 di bawah ini :
Gambar 2.11 Proses Enkripsi Algoritma IDEA
Tabel 2.2 Subkey enkripsi dan dekripsi algoritma IDEA
+7

Referensi

Dokumen terkait

Penyebab interferensi morfologi bahasa Mandailing yang ditemui dalam karangan siswa kelas VIII MTS Baharuddin Kecamatan Batang Angkola Kabupaten Tapanuli Selatan

Dengan mengacu pada karakteristik dasar medium, mahasiswa mampu menjelaskan pengertian sistem hidrolik dengan tepat.. Jelaskan pengertian sistem hidrolik, berdasarkan

Hasil analisis pada tabel 5 didapatkan 41.2% responden yang mengalami ISK berusia ≥ 60 tahun dan 40.0% responden cukup baik dalam upaya pengendalian diabetes. Uji Chi square

Hasil dari penelitian ini, menunjukkan bahwa subjek belum mampu melakukan interaksi sosial dalam kelas inklusi, baik dengan guru maupun dengan temannya saat dalam kelas,

Provinsi Kalimantan Tengah adalah daerah otonom sebagaimana dimaksud dalam Undang-Undang Nomor 21 Tahun 1958 tentang Penetapan Undang-Undang Darurat Nomor 10 Tahun 1957

Pelaksanaan penyelesaian malpraktik medis antara Health Care Provider dengan Health Care Receiver dalam pelayanan medik dengan mekanisme Mediasi di Rumah Sakit Puri

Hasil simulasi menunjukkan ketidakseimbangan tegangan untuk masing-masing fasa tidak begitu signifikan yaitu untuk kondisi beban rendah rata-rata 0,95 %, untuk kondisi beban