• Tidak ada hasil yang ditemukan

TEKNIK PENGAMANAN DATA MENGGUNAKAN ALGORITMA BLOWFISH

N/A
N/A
Protected

Academic year: 2018

Membagikan "TEKNIK PENGAMANAN DATA MENGGUNAKAN ALGORITMA BLOWFISH"

Copied!
121
0
0

Teks penuh

(1)

TEKNIK PENGAMANAN DATA

MENGGUNAKAN ALGORITMA

BLOWFISH

oleh

PRASETYO BAWONO

M0103045

SKRIPSI

Ditulis dan diajukan untuk memenuhi sebagian persyaratan

Memperoleh gelar Sarjana Sains Matematika

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

(2)

SKRIPSI

TEKNIK PENGAMANAN DATA

MENGGUNAKAN ALGORITMA

BLOWFISH

yang disiapkan dan disusun oleh

PRASETYO BAWONO

NIM. M0103045

dibimbing oleh

Pembimbing I,

Drs. YS. Palgunadi, M.Sc

NIP. 19560407 198303 1 004

Pembimbing II,

Drs. Siswanto, M.Si

NIP. 19670813 199203 1 002

telah dipertahankan di depan Dewan Penguji

pada hari Kamis, tanggal 28 Januari 2010

dan dinyatakan telah memenuhi syarat.

Anggota Tim Penguji

Tanda Tangan

1.

Titin Sri Martini, S.Si, M.Kom

NIP. 19750120 200812 2 001

1

. ………...

2.

Bowo Winarno, S.Si, M.Kom

NIP. 19810430 200812 1 001

2

. ………...

3.

DR. Sutanto, DEA

NIP. 19710302 199603 1 001

3

. ………...

Disahkan oleh

Fakultas Matematika dan Ilmu Pengetahuan Alam

Dekan,

Prof. Drs. Sutarno, M.Sc, Ph.D

Ketua Jurusan Matematika

(3)

ABSTRAK

Prasetyo

Bawono,

2010.

TEKNIK

PENGAMANAN

DATA

MENGGUNAKAN ALGORITMA BLOWFISH. Fakultas Matematika dan Ilmu

Pengetahuan Alam, Universitas Sebelas Maret.

Kriptografi merupakan suatu ilmu untuk menjaga kerahasiaan data / pesan

sehingga data tidak dapat diketahui oleh pihak lain. Algoritma Blowfish

merupakan salah satu algoritma kriptografi modern yang telah teruji dan banyak

dipakai oleh berbagai pihak. Sistem operasi OpenBSD memasukkan Blowfish

sebagai algoritma enkripsi utama dalam mengamankan

user

di dalam sistemnya

(

user authentication

). Selain itu, PuTTY sebuah program SSH (

Secure Shell

)

Client untuk Microsoft® Windows® pun juga menggunakan Blowfish sebagai

salah satu metode enkripsinya.

Algoritma Blowfish merupakan algoritma yang berjalan pada mode cipher

blok dengan operasi yang sangat sederhana. Blowfish menggunakan operasi

penambahan, ekslusif OR (XOR) dan penelusuran tabel. Tujuan penelitian ini

adalah membuat aplikasi sederhana enkripsi data teks (pesan) dengan

menggunakan algoritma Blowfish dalam empat mode enkripsi cipher blok: ECB

(

Electronic Code Book

), CBC (

Cipher Block Chainning

), CFB (

Cipher FeedBack

)

dan OFB (

Output FeedBack

).

Metode yang digunakan dalam menulis skripsi adalah studi literatur

tentang keamanan data, kriptografi (algoritma Blowfish), perencanaan sistem,

pembuatan aplikasi algoritma Blowfish, pengujian dan analisa aplikasi algoritma

Blowfish dengan notasi Big O.

Evaluasi terhadap aplikasi enkripsi pesan menggunakan algoritma

Blowfish dalam empat mode terhadap tiga buah file dengan ukuran yang

berbeda-beda (22 bytes, 202 Kilobytes dan 1,1 Megabytes) menunjukkan hasil selisih

waktu yang tidak jauh berbeda. Sedangkan untuk kompleksitas waktu dari

ke-empat mode adalah O(

n

), dimana

n

merupakan banyaknya karakter yang

dienkripsi.

(4)

ABSTRACT

Prasetyo Bawono, 2010. DATA SECURITY

SYSTEM USING

BLOWFISH ALGORITHM. Faculty of Mathemathics and Natural Sciences,

Sebelas Maret University.

Cryptography is a science aiming to keep the data confidentiality

hindering it from being eavesdropped by other parties. One of modern

cryptography using a symmetric key method that has been tested and widely used

is Blowfish algorithm. It is included in OpenBSD as main encryption algorithm to

secure users in the system (

user authentication

). PuTTY, a SSH (

Secure Shell

)

Client program for Microsoft® Windows® also uses Blowfish as one of its

encryption method.

Blowfish is an algorithm that runs on a block cipher with a very simple

operation. It uses addition operation, XOR and look-up tables. The purpose of this

research is to create a simple application of text data (messages) encryption by

using Blowfish algorithm in four block cipher encryption modes: ECB (

Electronic

Code Book

), CBC (

Cipher Block Chaining

), CFB (

Cipher FeedBack

), and OFB

(

Output FeedBack

).

The method used in writing this thesis is a literature study on data security,

cryptography (especially Blowfish algorithm), system planning, developing of

Blowfish algorithm application, and tests and analysis of Blowfish algorithm

application using Big Oh notation.

Evaluation of the messages encryption application using Blowfish

algorithm in four modes to three files with different sizes (22 bytes, 202

Kilobytes, and 1,1 Megabytes) showed that there was no significant difference in

the run time. However, the time complexity of the all four modes was O(

n

), where

n

was the total characters encrypted.

(5)

KATA PENGANTAR

Assalamu’alaikum Warahmatullahi Wabarokatu

h

.

Bismillahirrahmaanirrahiim

. Segala puji hanya milik Allah ‘

Azza Wa

Jalla. Rabb

semesta alam yang telah memberikan segala nikmat, sehingga skripsi

yang berjudul

Teknik Pengamanan Data Menggunakan Algoritma

Blowfish

dapat terselesaikan.

Penulis juga menyadari akan keterbatasan yang dimiliki, ketergantungan

akan bantuan dan dukungan pribadi-pribadi disekitarnya. Terselesaikannya skripsi

ini tidak terlepas dari bantuan berbagai pihak. Untuk itu, penulis mengucapkan

terima kasih kepada :

1.

Drs. YS. Palgunadi, M.Sc, selaku pembimbing I dan Drs. Siswanto, M.Si,

selaku pembimbing II yang telah meluangkan waktunya untuk membimbing,

mengarahkan, dan memberikan motivasi kepada penulis dalam penyusunan

skripsi ini.

2.

Umi Salamah, S.Si, M.Kom, selaku dosen pembimbing akademik atas segala

kesabarannya selama ini.

3.

Drs. Sutrimo, M.Si, selaku Ketua Jurusan Matematika, Fakultas Matematika

dan Ilmu Pengetahuan Alam, Universitas Sebelas Maret.

4.

Prof. Drs. Sutarno, M.Sc, Ph.D, selaku Dekan Fakultas Matematika dan Ilmu

Pengetahuan Alam, Universitas Sebelas Maret.

5.

Ibunda, Ayahanda, kakak-kakakku, adikku, dan seluruh keluarga yang telah

mendoakan, dan banyak memberikan bantuan, serta dukungan kepada penulis.

6.

DR. Sutanto, DEA., selaku kepala UPT PUSKOM UNS, yang telah

menyediakan berbagai fasilitas kepada penulis.

7.

Titin Sri Martini, S.Si, M.Kom dan Bowo Winarno, S.Si, M.Kom selaku

dosen penguji.

8.

Rekan-rekan di UPT PUSKOM UNS dan di PT. Javatechno Mandiri

(6)

9.

Saudaraku di jurusan Matematika FMIPA UNS dan Syiar Kegiatan Islam

(SKI) FMIPA UNS.

10.

Saudaraku di Wisma Madina.

11.

Dan semua pihak yang tidak dapat disebutkan satu persatu dalam tulisan ini.

Penulis menyadari bahwa skripsi ini masih jauh dari sempurna, untuk itu saran

dan kritik yang bersifat membangun sangat diharapkan. Akhirnya semoga karya

tulis ini dapat bermanfaat bagi pembaca dan dapat memberikan sumbangan

kebaikan pada perkembangan peradaban ilmu pengetahuan dan teknologi

informasi.

Wassalamu’alaikum Warahmatullahi Wabaro

katuh

.

Surakarta, Januari 2010

(7)

DAFTAR ISI

Halaman

HALAMAN JUDUL ...

i

PENGESAHAN ...

ii

ABSTRAK ...

iii

ABSTRACT ...

iv

KATA PENGANTAR ...

v

DAFTAR ISI ...

vii

DAFTAR GAMBAR ...

ix

DAFTAR TABEL ...

x

DAFTAR LAMPIRAN ...

xi

BAB I. PENDAHULUAN

1.1 Latar Belakang Masalah ...

1

1.2 Perumusan Masalah ...

2

1.3 Batasan Masalah...

2

1.4 Tujuan Penelitian ...

2

1.5 Manfaat Penelitian ...

3

BAB II. LANDASAN TEORI

2.1 Tinjauan Pustaka ...

4

2.1.1 Algoritma ...

4

2.1.2 Lambang Diagram Alir (

Flowchart

) ...

4

2.1.3 Keamanan Data ...

4

2.1.4 Kriptografi ...

6

2.1.5 Cipher Blok ...

10

2.1.6 Cipher Berulang ...

12

2.1.7 Jaringan Feistel (

Feistel Network

) ...

12

2.1.8 Kotak-S (

S-Box

) ...

13

2.1.9 Algoritma Kriptografi Blowfish ...

14

2.1.10 Mode Operasi Enkripsi Cipher Blok ...

17

(8)

BAB III. METODOLOGI PENELITIAN ...

24

BAB IV. PEMBAHASAN

4.1

Analisis Sistem ...

26

4.2

Diagam Alir (

Flowchart

) Aplikasi ...

27

4.3

Perancangan Sistem ...

28

4.3.1

Rancangan

Database

...

28

4.3.2

Rancangan

Form Login

...

28

4.3.3

Rancangan

Form

Enkripsi dan Dekripsi ...

29

4.3.4

Validasi Data Masukan ...

30

4.4

Implementasi Sistem ...

31

4.5

Evaluasi Sistem ...

36

4.5.1

Struktur Algoritma Blowfish ...

36

4.5.2

Uji Coba Aplikasi ...

40

4.5.3

Analisis Algoritma dengan Notasi Big O ...

41

BAB V. PENUTUP

5.1

Kesimpulan ...

45

5.2

Saran ...

46

DAFTAR PUSTAKA ...

47

(9)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Simbol Umum

Flowchart

...

4

Gambar 2.2 Skema Enkripsi dan Dekripsi ...

8

Gambar 2.3 Skema Tipe-tipe Cipher ...

9

Gambar 2.4

Kriptologi, Kriptografi dan Kriptanalisis

...

10

Gambar 2.5 Enkripsi Pada Cipher Blok ...

11

Gambar 2.6 Dekripsi Pada Cipher Blok ...

11

Gambar 2.7 Skema Jaringan

Feistel

Secara Umum ...

13

Gambar 2.8 Skema Fungsi F pada algoritma

Blowfish

...

16

Gambar 2.9 Skema Enkripsi dan Dekripsi dengan Mode ECB ...

18

Gambar 2.10 Skema Enkripsi dan Dekripsi dengan Mode CBC ...

20

Gambar 2.11 Skema Enkripsi dan Dekripsi dengan Mode CFB 8-Bit ...

21

Gambar 2.12 Skema Enkripsi dan Dekripsi dengan Mode OFB 8-bit ...

23

Gambar 4.1 Alur Sistem Pengamanan Data Teks ...

26

Gambar 4.2 Diagram Alir Aplikasi Sistem Pengamanan Data Teks ...

27

Gambar 4.3 Rancangan

Form

Sistem Login

...

28

Gambar 4.4 Rancangan

Form

Sistem Enkripsi

...

29

Gambar 4.5 Rancangan

Form

Sistem Dekripsi

...

30

Gambar 4.6 Tampilan

Form

Login ...

31

Gambar 4.7 Tampilan

Form

Utama

...

32

Gambar 4.8 Tampilan

Form

Enkripsi ...

33

Gambar 4.9 Pesan Pemberitahuan Enkripsi yang Berhasil ...

33

Gambar 4.10 Pesan Peringatan Kesalahan

Input

Kunci ...

34

Gambar 4.11 Dialog Simpan Cipherteks Berekstensi

.cip

...

34

Gambar 4.12 Pesan Konfirmasi Cipherteks Berhasil Disimpan ...

35

Gambar 4.13 Tampilan

Form

Dekripsi ...

35

Gambar 4.14 Pesan pemberitahuan dekripsi berhasil disimpan ...

36

Gambar 4.15 Skema Jaringan Feistel Pada Algoritma

Blowfish

...

37

Gambar 4.16

Chart

Waktu Enkripsi Tiap Mode ...

40

(10)

DAFTAR TABEL

Halaman

Tabel 2.1 Beberapa Contoh Blok Cipher ...

11

Tabel 3.1 Spesifikasi

Hardware

...

24

Tabel 3.2 Spesifikasi

Software

...

25

Tabel 4.1 Tabel User ...

28

Tabel 4.2

Pseudo Code

Jaringan Feistel Algoritma Blowfish

...

38

Tabel 4.3

Pseudo Code

fungsi iterasi F()

...

38

Tabel 4.4

Pseudo Code

Pembangkitan Sub-kunci

...

39

Tabel 4.5 Data Masukan Uji Coba Aplikasi Proses Enkripsi

...

40

Tabel 4.6 Data Masukan Uji Coba Aplikasi Proses Dekripsi

...

41

Tabel 4.7 Kompleksitas Waktu Algoritma

Blowfish

...

43

(11)

DAFTAR LAMPIRAN

Halaman

Lampiran 1 8366 Digit HEX dari Pi (

Key

Expansion

) ...

48

Lampiran 2 Form Login (LoginForm.java) ...

51

Lampiran 3 Form Utama (FuguView.java) ...

54

Lampiran 4 Form Enkripsi (BlowfishEnc.java) ...

57

Lampiran 5 Form Dekripsi (BlowfishDec.java) ...

69

Lampiran 6 Class Koneksi Database (DriverConnection.java) ...

80

Lampiran 7 Class Algoritma Blowfish (BlowfishEngine.java) ...

82

Lampiran 8 Class Mode Enkripsi CBC (CBCBlockCipher.java) ...

95

Lampiran 9 Class Mode Enkripsi CFB (CFBBlockCipher.java) ... 101

(12)

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Perkembangan

Information and Communication Technology

(ICT) atau

Teknologi Informasi dan Komunikasi (TIK) dari waktu ke waktu kian meningkat.

Kebutuhan manusia akan perangkat informasi dan komunikasi seakan menjadi

kebutuhan yang tidak terpisahkan dalam kehidupan sehari-hari. Setiap hari,

inovasi dalam bidang ini senantiasa dinamis. Salah satu contohnya adalah

komunikasi data pada jaringan komputer.

Jaringan komputer pada awalnya dikembangkan untuk menghubungkan

antar pihak yang saling mempercayai, dengan tujuan untuk saling menukar

informasi (data). Namun seiring berjalannya waktu dan berkembangnya ilmu

pengetahuan, ada salah satu aspek pendukung yang sangat diperlukan, yaitu

masalah keamanan data.

Dibalik kemudahan serta efisiensi biaya dalam hal berkomunikasi,

berbagai macam jenis komunikasi data yang ada belum tentu aman untuk

digunakan, karena belum tentu adanya standar keamanan yang diterapkan untuk

masing-masing perangkat komunikasi data tersebut. Salah satu contoh yang

pernah terjadi adalah adanya penyadapan pembicaraan melalui telepon antara

Presiden B.J. Habibie dan Jaksa Agung Andi Ghalib pada tahun 1999,

sebagaimana yang termuat dalam majalah Panji Masyarakat tanggal 24 Februari

1999. Hal ini semakin membuktikan bahwa keamanan data (pada contoh ini

adalah data suara) sangat dibutuhkan. Apalagi jika percakapan informasi yang

terjadi adalah bersifat rahasia dan diterapkan dalam ruang lingkup kenegaraan.

Solusi yang dapat dilakukan adalah dengan cara mengengkripsi data (teks,

suara dan visual). Teknik ini memiliki tingkat keamanan yang jauh lebih tinggi.

Enkripsi dilakukan pada data sebelum data tersebut dikirimkan, sehingga pihak

yang tidak berhak tidak dapat memahami data yang dikirimkan tersebut meskipun

(13)

dekripsi, yaitu kebalikan dari proses enkripsi. Mengubah data yang terenkripsi

menjadi data semula. Dekripsi hanya bisa dilakukan oleh pihak yang berhak.

Enkripsi dan dekripsi merupakan bagian dari kinerja sebuah algoritma

kriptografi. Algoritma enkripsi yang akan digunakan dalam tugas akhir ini adalah

algoritma

Blowfish

.

1.2 Perumusan Masalah

Berdasarkan latar belakang masalah, rumusan masalah dalam penulisan

skripsi ini adalah

1.

Bagaimana menentukan proses enkripsi dan dekripsi data teks

menggunakan algoritma

Blowfish

?

2.

Bagaimana membuat program aplikasi komputer yang dapat melakukan

enkripsi dan dekripsi data berdasarkan algoritma

Blowfish

?

1.3 Batasan Masalah

Batasan masalah yang digunakan dalam penulisan skripsi ini adalah

1.

Data yang akan dienkripsi dan dekripsi adalah data digital, terutama data teks.

2.

Perangkat lunak penerapan teknik pengamanan data

ini dibuat dengan

menggunakan bahasa pemrograman

Java 2

Standard Edition

(J2SE).

1.4 Tujuan Penelitian

Tujuan penelitian dalam skripsi ini adalah

1.

Dapat menentukan proses enkripsi dan dekripsi menggunakan algoritma

Blowfish

.

2.

Dapat membuat program aplikasi komputer yang dapat melakukan enkripsi

(14)

1.5 Manfaat Penelitian

Manfaat penelitian dari skripsi adalah

1.

Manfaat teoritis

Secara teoritis, manfaat yang diperoleh adalah dapat memahami proses

enkripsi dan dekripsi data menggunakan algoritma

Blowfish

.

2.

Manfaat praktis

Sedangkan manfaat praktis yang diperoleh adalah dapat membangun aplikasi

perangkat lunak yang akan mengenkripsi data teks

menggunakan algoritma

Blowfish

. Serta mengetahui, mempermudah dan mempercepat proses

(15)

BAB II

LANDASAN TEORI

2.1 Tinjauan Pustaka

2.1.1 Algoritma

Menurut Budiyanto (2003), algoritma adalah urutan langkah-langkah logis

penyelesaian masalah yang disusun secara sistematis dan logis.

2.1.2 Lambang

Flowchart

(Diagram Alir)

Arti dari lambang yang digunakan dalam pembuatan

flowchart

yaitu,

Simbol Terminator

Simbol Proses

Simbol Keputusan

Simbol Alur

Simbol Dokumen

Gambar 2.1. Simbol Umum

Flowchart

2.1.3 Keamanan Data

Secara umum data dibagi menjadi dua, yaitu: data yang bersifat rahasia

dan tidak bersifat rahasia. Dalam hal ini, pesan yang diperhatikan dan perlu

diamankan adalah pesan yang bersifat rahasia.

Beberapa ancaman dan serangan yang harus diperhatikan dalam sistem

keamanan data menurut Susanto (2004), adalah sebagai berikut :

(16)

1.

Leakage

(kebocoran) adalah pengambilan informasi oleh penerima yang tidak

berhak.

2.

Tampering

adalah pengubahan informasi yang tidak legal

3.

Vandalism

adalah gangguan operasi sistem tertentu, pelaku tidak mengharap

keuntungan apapun.

Metode penyerangan yang biasa digunakan untuk mengganggu keamanan

data menurut Susanto (2004), antara lain :

1.

Eavesdropping

, mendapatkan duplikasi pesan tanpa ijin.

2.

Masquerading

, mengirim atau menerima pesan menggunakan identitas lain

tanpa ijin mereka.

3.

Message Tampering

, mencegat atau menangkap pesan dan mengubah isinya

sebelum dilanjutkan ke pihak penerima sebenarnya. ”

Man in the middle

attack

” adalah bentuk

message tampering

dengan mencegat pesan pertama

pada pertukaran kunci enkripsi pada pembentukan suatu saluran yang aman.

Penyerang menyisipkan kunci lain yang memungkinkan dia untuk

mendekripsi pesan berikutnya sebelum dienkripsi oleh penerima.

4.

Replaying

, menyimpan pesan yang ditangkap untuk pemakaian berikutnya.

5.

Denial of service

, membanjiri saluran atau sumber lain dengan beberapa pesan

yang bertujuan untuk menggagalkan pengaksesan oleh pemakai lain.

Dalam keamanan data perlu diadakan pemisahan antara kebijakan dan

mekanisme kemanan, yang akan membantu memisahkan kebutuhan

implementasinya, karena kebijakan dapat menspesifikasikan kebutuhan dan

mekanisme dapat menerapkan spesifikasi kebijakan tersebut.

Menurut Susanto (2004), sebuah kebijakan keamanan meliputi :

1.

Access Control

, yaitu perlindungan data terhadap pemakaian tak legal.

2.

Authentication

, yaitu menyediakan jaminan identitas seseorang.

3.

Confidentially

(kerahasiaan), yaitu pengungkapan terhadap identitas tak legal.

4.

Nonrepudiation

(penyangkalan), yaitu melindungi terhadap penolakan

komunikasi yang sudah pernah dilakukan.

(17)

1.

Enkripsi

, dapat digunakan untuk menyediakan kerahasiaan pesan,

Authentication

dan perlindungan identitas.

2.

Digital Signature

(tanda tangan digital), dapat digunakan untuk menyediakan

authentication

, perlindungan identitas, dan

nonrepudiation

3.

Checksum Algorithm

(

Hash

), dapat digunakan untuk menyediakan

perlindungan integritas.

2.1.4

Kriptografi

Menurut Schneier (1996), kriptografi adalah ilmu dan seni untuk menjaga

keamanan pesan.

Menurut Menezes

et al

(1996), kriptografi adalah ilmu yang mempelajari

teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi

seperti kerahasiaan, integritas data, serta otentikasi.

Menurut Munir (2006), kriptografi (

cryptography

) berasal dari Bahasa

Yunani: ”

cryptos

” artinya ”

secret

” (rahasia), sedangkan ”

graphein

” artinya

writing

” (tulisan), Jadi, kriptografi berarti ”

secret writing

” (tulisan rahasia).

Definisi yang digunakan di dalam buku-buku yang lama (sebelum tahun 1980-an)

menyatakan bahwa kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan

pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti

lagi maknanya. Definisi ini mungkin cocok pada masa lalu di mana kriptografi

digunakan untuk keamanan komunikasi penting seperti komunikasi di kalangan

militer, diplomat, dan mata-mata (

spy

). Namun saat ini kriptografi lebih dari

sekadar

privacy

, tetapi juga untuk tujuan

data integrity

,

authentication,

dan

non-repudation

.

Menurut Munir (2006), di dalam kriptografi terdapat beberapa

terminologi/istilah penting yang perlu diketahui yaitu :

1.

Pesan

,

Plainteks, dan Cipherteks

Pesan (

message

) adalah data atau informasi yang dapat dibaca atau dimengerti

maknanya. Nama lain untuk pesan adalah plainteks (

plaintext

) atau teks jelas

(

cleartext

). Pesan dapat berupa data atau informasi yang dikirim (melalui

(18)

perekam (kertas,

storage

, dsb). Pesan yang tersimpan tidak hanya berupa teks,

tetapi juga dapat berbentuk citra (

image

), suara/bunyi (

audio

), dan video, atau

berkas biner lainnya.

Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan

perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang

tersandi disebut cipherteks (

ciphertext

) atau kriptogram (

cryptogram

).

Cipherteks harus dapat ditransformasikan kembali menjadi plainteks semula

agar pesan yang diterima bisa dibaca.

2.

Pengirim dan penerima

Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim

(

sender

) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima

(

receiver

) adalah entitas yang menerima pesan. Entitas disini dapat berupa

orang, mesin (komputer), kartu kredit, dan sebagainya. Pengirim tentu

menginginkan pesan yang dikirim tidak dapat dibaca/diketahui oleh pihak

lain, kecuali yang berhak menerimanya. Maka, pesan harus disandikan

menjadi cipherteks.

3.

Enkripsi dan Dekripsi

Proses menyandikan plainteks menjadi cipherteks disebut enkripsi

(

encryption

) atau

enciphering

(standard nama menurut

ISO 7498-2

).

Sedangkan proses mengembalikan cipherteks menjadi plainteks semula

dinamakan dekripsi (

decryption

) atau

deciphering

(standard nama menurut

ISO 7498-2

). Istilah

encryption of data in motion

mengacu pada enkripsi

pesan yang ditransmisikan melalui saluran komunikasi. Sedangkan istilah

encryption of data at-rest

mengacu pada enkripsi dokumen yang disimpan di

dalam storage.

4.

Cipher dan Kunci

Algoritma kriptografi disebut juga cipher, yaitu aturan untuk

enciphering

dan

deciphering

, atau fungsi matematika yang digunakan untuk enkripsi dan

dekripsi. Kunci (

key

) adalah parameter yang digunakan untuk transformasi

(19)

Enkripsi Dekripsi

Plainteks Cipherteks Plainteks

Kunci Kunci

Gambar 2.2. Skema Enkripsi dan Dekripsi

Plainteks

merupakan data masukan berupa teks berkode standar ASCII

(

American Standard Code for Information Interchange

). ASCII merupakan

suatu standar internasional dalam kode huruf dan simbol seperti halnya Hex

dan Unicode, tetapi ASCII lebih bersifat universal. Kode ASCII memiliki

komposisi bilangan biner sebanyak 8 bit. Dimulai dari 00000000 hingga

11111111. Total kombinasi yang dihasilkan sebanyak 256, yang dimulai dari

kode 0 hingga 255 dalam sistem bilangan Desimal.

Menurut Anjar Syafari (2007), Proses enkripsi dan deskripsi secara matematis

diterangkan sebagai berikut :

E

K

(M) = C (Proses Enkripsi)

D

K

(C) = M (Proses Deskripsi)

Keterangan :

E

K

: Enkripsi.

D

K

: Deskripsi.

M

:

Message

(Pesan sebelum dienkripsi)

(20)

Tipe-tipe cipher :

Ciphers

Classical Rotor Machine Modern

Substitution Transposition Public Key Private Key

Stream Chiper Block Cipher

Gambar 2.3. Skema Tipe-tipe Cipher

Menurut Munir (2006), Algoritma kunci simetri mengacu pada metode

enkripsi yang dalam hal ini baik pengirim maupun penerima memiliki kunci

yang sama. Algoritma kunci simetri modern beroperasi dalam mode bit dan

dapat dikelompokkan menjadi dua kategori:

a.

Cipher aliran (

Stream Cipher

)

Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk

bit tunggal yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan

bit per bit. Cipher aliran mengenkripsi satu bit setiap kali.

b.

Cipher blok (

Block Cipher

)

Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk

blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit

yang panjangnya sudah ditentukan sebelumnya. Misalnya, panjang blok

adalah 64 bit, maka itu berarti algoritma enkripsi memperlakukan 8

karakter setiap kali enkripsi (1 karakter = 8 bit dalam pengkodean

ASCII

).

Cipher blok mengenkripsi satu blok bit setiap kali.

5.

Sistem Kriptografi

(

cryptosystem

)

Menurut Schneier (1996), kriptografi membentuk sebuah sistem yang

dinamakan sistem kriptografi. Sistem kriptografi (

cryptosystem

) adalah

(21)

6.

Penyadap

Penyadap (

eavesdropper

) adalah orang yang mencoba menangkap pesan

selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi

sebanyak-banyaknya mengenai sistem kriptogafi yang digunakan untuk

berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain

penyadap:

enemy, adversary, intruder, interceptor, bad guy.

7.

Kriptoanalis dan Kriptologi

Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang

berlawanan yaitu kriptanalisis. 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.

Kriptografi

Ilmu dan seni untuk menjaga keamanan pesan

Kriptanalis

Ilmu dan seni untuk memecahkan pesan yang terenkripsi (cipherteks)

Kriptologi

Gambar 2.4. Kriptologi, Kriptografi dan Kriptanalisis

2.1.5 Cipher Blok

Pada cipher blok, plainteks dibagi menjadi beberapa blok dengan panjang

tetap. Ketika melakukan enkripsi, cipher blok mungkin saja menerima masukan

128-bit plainteks dan mengeluarkan 128-bit keluaran cipherteks. Transformasi

selengkapnya dikontrol menggunakan masukan kedua, yaitu kunci. Begitu pula

halnya dengan proses dekripsi, algoritma untuk melakukan dekripsi akan

menerima masukan 128-bit cipherteks dan kunci kemudian menghasilkan

keluaran 128-bit plainteks aslinya. Cipher blok mengenkripsi satu blok bit setiap

(22)

Tabel 2.1 Beberapa contoh blok cipher

Cipher Blok

Ukuran Kunci (Bits)

Ukuran Blok

Tahun

DES

56

64

1976

3DES

112 atau 168

64

1978

AES

128, 192 atau 256

128

1998

RC6

Minimum 0, maksimum 2040,

multiple

8 bits,

default

128 bits

128

1998

Blowfish

Minimum 32, maksimum 448,

multiple

8 bits,

default

128 bits

64

1993

CAST-256

Minimum 128, maksimum 256,

multiple

32 bits,

default

128 bits

128

1998

Untuk lebih jelasnya, proses enkripsi dan dekripsi pada cipher blok dapat

dilihat pada gambar berikut :

Enkripsi Cipher Blok Kunci

Plainteks

Cipherteks

Gambar 2.5. Enkripsi Pada Cipher Blok

Dekripsi Cipher Blok Kunci

Cipherteks

Plainteks

(23)

2.1.6 Cipher Berulang

Menurut Randy (2006), cipher berulang merupakan fungsi transformasi

sederhana yang mengubah plainteks menjadi cipherteks dengan proses perulangan

sejumlah kali. Pada setiap putaran digunakan kunci putaran yang dikombinasikan

dengan plainteks. Secara formal, cipher berulang dinyatakan sebagai berikut :

Ci = f(Ci-1, P

i

)

Keterangan :

i

= 1, 2, ...,

r

(

r

adalah jumlah putaran)

P

i

= subkunci pada putaran ke-

i

fi

= fungsi transformasi (di dalamnya terdapat fungsi substitusi, permutasi,

dan/atau ekspansi, kompresi)

Plainteks dinyatakan dengan

C

0

dan cipherteks dinyatakan dengan

C

r

.

2.1.7 Jaringan Feistel (

Feistel Network

)

Menurut Randy (2006), model jaringan

Feistel

digunakan oleh hampir

semua algoritma cipher blok. Jaringan ini ditemukan oleh Horst Feistel pada tahun

1970. Secara formal, operasi transformasi pada jaringan

Feistel

secara umum

dapat dinyatakan sebagai:

(X

L

)

i

=

(X

R

)

i

-1

(X

R

)

i

= (X

L

)

i

-

1

f

(

(X

R

)

i

-1,

P

i

)

Keterangan :

X

L

=

n-

bit plainteks bagian kiri

X

R

=

n-

bit plainteks bagian kanan

Dengan

X

(blok plainteks) =

X

L

+

X

R

, n merupakan setengah dari blok plainteks

X

Proses enkripsi dan dekripsi dapat menggunakan model jaringan

Feistel

yang sama. Model jaringan

Feistel

bersifat

reversible

(dua arah) untuk proses

enkripsi dan dekripsi. Sifat

reversible

ini memungkinkan mendekripsi cipherteks

(24)

(X

L

)

i

1

f

(

(X

R

)

i

1,

P

i

)

f

(

(X

R

)

i

1,

P

i

) =

(X

L

)

i

1

Selain itu, sifat

reversible

tidak bergantung pada fungsi

f

sehingga fungsi

f

dapat dibuat serumit mungkin. Skema jaringan

Feistel

dapat dilihat pada Gambar

2.7.

(X

L

)

i - 1

(X

R

)

i - 1

(X

L

)

i

(X

R

)

i

F

Pi

Gambar 2.7. Skema Jaringan

Feistel

Secara Umum

2.1.8 Kotak-S (

S-Box

)

Menurut Munir (2006), Kotak-S adalah matriks yang berisi substitusi

sederhana yang memetakan satu atau lebih bit dengan satu atau lebih bit yang lain.

Pada kebanyakan algoritma cipher blok, Kotak-S memetakan

m

bit masukan

menjadi

n

bit keluaran, sehingga Kotak-S tersebut dinamakan kotak

m x n S-Box

.

Kotak-S merupakan satu-satunya langkah nirlanjar (non-linear) di dalam

algoritma, karena operasinya adalah

look-up table

. Masukan dari operasi

look-up

table

dijadikan sebagai indeks Kotak-S, dan keluarannya adalah masukan di

dalam Kotak-S.

Perancangan Kotak-S menjadi isu penting karena Kotak-S harus dirancang

sedemikian

sehingga

kekuatan

kriptografinya

bagus

dan

mudah

diimplementasikan. Ada empat cara (pendekatan) yang dapat digunakan dalam

mengisi Kotak-S:

1.

Dipilih secara acak

(25)

2.

Dipilih secara acak lalu diuji

Sama halnya seperti sebelumnya, namun nilai acak yang bangkit akan diuji

apakah memenuhi sifat tertentu.

3.

Dibuat oleh orang (

man-made

)

Masukan di dalam Kotak-S dibangkitkan dengan teknik yang lebih intuitif.

4.

Dihitung secara matematis (

math-mode

)

Masukan di dalam Kotak-S dibangkitkan berdasarkan prinsip matematika

yang terbukti aman dari serangan kriptanalis.

2.1.9 Algoritma Kriptografi Blowfish

Menurut Randy (2006),

Blowfish

adalah sebuah algoritma kriptografi yang

beroperasi pada mode blok. Algoritma

Blowfish

merupakan algoritma yang

diciptakan oleh seorang

cryptanalyst

bernama Bruce Schneier pada tahun 1993.

Algoritma

Blowfish

termasuk ke dalam kriptografi kunci simetrik (S

ymmetric

Cryptosystem

), dan metoda enkripsinya serupa dengan DES (

Data Encryption

Standard-Like Cipher

). Algoritma ini ditujukan untuk mikroprosessor besar (32

bit ke atas dengan

cache

data yang besar).

Algoritma

Blowfish

terdiri dari dua bagian yaitu ekspansi kunci dan

enkripsi data. Ekspansi kunci mengubah sebuah kunci dengan panjang maksimal

448 bit kepada beberapa

array

subkunci dengan ukuran total 4168

byte.

Secara

umum, algoritma

Blowfish

dikembangkan untuk memenuhi kriteria sebagai

berikut :

a)

Cepat, pada implementasi yang optimal

Blowfish

dapat mencapai kecepatan

26

clock cycle per byte

b)

Ringan,

Blowfish

dapat berjalan pada memori kurang dari 5KB

c)

Sederhana,

Blowfish

hanya menggunakan operasi yang sederhana, yakni :

penambahan (

addition

), XOR (Ekslusif OR), dan penelusuran tabel (

table

lookup

) pada bilangan yang di operasikan (

operand

) 32-bit

d)

Tingkat keamanan yang variatif, panjang kunci

Blowfish

dapat bervariasi

(minimum 32 bit, maksimum 448 bit,

multiple

(kelipatan)

8 bit,

default

128

(26)

Algoritma

Blowfish

merupakan algoritma yang kuat, dan sampai saat ini

belum ditemukan kelemahan yang berarti. Algoritma

Blowfish

pun dapat

digabungkan dengan algoritma-algoritma enkripsi lainnya dalam mengenkripsi

sebuah informasi/pesan untuk lebih menjamin isi dari pesan tersebut.

Enkripsi data terdiri dari sebuah fungsi sederhana yang mengalami putaran

atau iterasi sebanyak 16 kali. Setiap putaran terdiri dari sebuah permutasi yang

bergantung pada kunci dan substitusi yang bergantung pada kunci dan data.

Seluruh operasi berupa penambahan dan XOR (

) dengan kata sepanjang 32 bit.

Operasi tambahan yang digunakan hanya berupa

data look-up

terhadap

array

dengan empat indeks yang dilakukan setiap putaran.

Blowfish

menggunakan sejumlah besar subkunci. Kunci-kunci tersebut

harus dibangkitkan terlebih dahulu sebelum proses enkripsi dan dekripsi data

dilakukan.

Menurut Sukmawan (2000), alur proses enkripsi algoritma

Blowfish

dapat

dijelaskan sebagai berikut:

1.

P-array

terdiri dari 18 buah subkunci dengan ukuran 32 bit:

P

1

, P

2

, ..., P

18

2.

Empat buah Kotak-S dengan ukuran 32 bit mempunyai masukan sebanyak

256 buah. Kotak-kotak tersebut adalah:

S

1,0

, S

1,1

, ..., S

1,255

S

2,0

, S

2,1

, ..., S

2,255

S

3,0

, S

3,1

, ..., S

3,255

S

4,0

, S

4,1

, ..., S

4,255

Subkunci dibangkitkan dengan menggunakan algoritma

Blowfish

.

3.

Masukan terhadap jaringan

Feistel

ini adalah

X

, yang merupakan elemen data

(plainteks) dengan ukuran 64-bit. Bila kurang dari 64-bit, maka akan

dilakukan proses

padding

(penambahan bit).

4.

Bagi

X

menjadi setengah bagian, yaitu dengan ukuran 32-bit. 32-bit pertama

(27)

5.

Lakukan langkah-langkah berikut dalam 16 putaran (

iterasi

):

X

L

=

X

L

P

i

X

R

= F(

X

L

)

X

R

Kemudian tukar

X

L

dengan

X

R

.

Keterangan:

i

= 1, 2, …, 16 (menunjukkan nomor putaran/iterasi)

6.

Setelah melakukan perulangan yang ke-16, lakukan lagi proses penukaran

X

L

dengan

X

R

.

7.

Lakukan operasi XOR (

), yaitu :

X

R

=

X

R

P

17

8.

Lakukan operasi XOR (

), yaitu :

X

L

=

X

L

P

18

9.

Gabungkan kembali

X

L

dan

X

R

, yaitu :

X

=

X

R

+

X

L

Fungsi F yang terdapat pada jaringan

Feistel

didefinisikan sebagai berikut:

1.

Bagi

X

L

menjadi empat bagian yang berukuran 8 bit. Keempat bagian yang

dihasilkan adalah

a, b, c,

dan

d

.

2.

Fungsi F(

X

L

) didefinisikan sebagai berikut:

F(

X

L

) = ((S

1,a

+ S

2,b

mod 2

32

)

S

3,c

) + S

4,d

mod 2

32

Proses dekripsi dilakukan dengan langkah yang sama dengan proses enkripsi,

kecuali

P

1

, P

2

, ..., P

18

digunakan dengan urutan terbalik dari proses enkripsi.

S-Box 1 32 bits

S-Box 2

S-Box 3

S-Box 4

32 bits 32 bits 32 bits

8 bits 8 bits 8 bits 8 bits

(28)

Implementasi algoritma

Blowfish

yang memerlukan waktu cepat harus

mengurangi jumlah putaran dan memastikan bahwa semua subkunci tersimpan

dalam

cache

(penyimpanan sementara).

Karena algoritma ini merupakan algoritma yang sudah termasuk lama,

tentu saja ada beberapa usaha kriptanalisis yang dilakukan terhadap algoritma ini,

antara lain adalah:

1.

John Kelsey membuat sebuah

attack

yang dapat mematahkan 3 iterasi

Blowfish

, namun tidak dapat mengembangkannya lebih lanjut.

Attack

ini

melakukan eksploitasi pada fungsi f dan fakta bahwa penambahan mod 2

32

dan XOR tidak

commute

.

2.

Vikramjit Singh Chhabra mencari cara untuk menerapkan

brute-force key

search machine.

3.

Serge Vaudenay melakukan penelitian pada varian

Blowfish

yang telah

disederhanakan, dengan S-aBox yang diketahui, dan tidak

key-dependent

.

Untuk varian ini,

attack

yang berbeda dapat menemukan

P-Array

dengan

28r+1 plainteks yang telah dipilih (r merupakan jumlah iterasi).

Attack

ini

tidak mungkin dilakukan pada

Blowfish

dengan 8-iterasi dan lebih, karena

lebih banyak plainteks yang dibutuhkan daripada yang dapat dibangkitkan

dengan 64-bit cipher blok.

4.

Tesis Ph.D milik Vincent Rijmen mencantumkan second-order differential

attack pada 4 iterasi

Blowfish

. Namun,

attack

tersebut tidak dapat dilanjutkan

lagi untuk iterasi selanjutnya.

2.1.10 Mode Operasi Enkripsi Cipher Blok

Pada algoritma kriptografi yang beroperasi pada cipher blok, dikenal

beberapa mode operasi. Empat mode operasi yang lazim digunakan pada cipher

blok adalah:

1.

Electronic Code Book

(ECB)

Pada mode ECB, setiap mode plainteks

M

i

dienkripsi secara individual

(29)

C

i

=

E

K

(

M

i

)

dan proses dekripsi sebagai berikut:

M

i

=

D

K

(

C

i

)

Dalam hal ini,

M

i

dan

C

i

merupakan blok plainteks dan cipherteks ke-

i

.

Skema enkripsi dan dekripsi dengan mode ECB dapat dilihat pada Gambar

2.9

E

Blok Plainteks

M

1

Kunci

K

Blok Cipherteks

C

1

E

Blok Plainteks

M

1 Kunci

K

c

1

c

2

c

...

c

n Blok Cipherteks

C

1

C = (c1, c2, …, cn)

ENKRIPSI

DEKRIPSI

c

1

c

2

c

...

c

n C = (c1, c2, …, cn)

m

1

m

2

m

..

m

n

M = (m1, m2, …, mn)

m

1

m

2

m

..

m

n

M = (m1, m2, …, mn)

Gambar 2.9 Skema Enkripsi dan Dekripsi dengan Mode ECB

Mode ini merupakan mode termudah dari keempat mode yang telah

disebutkan di atas. Setiap blok plainteks dienkripsi secara independen,

sehingga proses enkripsi tidak harus berlangsung secara linear atau proses

enkripsi dapat dilakukan pada blok-blok secara tidak berurutan. Keuntungan

mode ECB lainnya adalah kesalahan satu bit pada satu blok hanya akan

mempengaruhi blok cipherteks yang berkorespondensi pada proses dekripsi.

Tetapi mode ECB lemah terhadap serangan. Dalam dunia nyata,

kebanyakan bagian-bagian pesan cenderung akan muncul secara berulang di

dalam sebuah teks. Dengan mode ECB, yang mengenkripsikan blok-blok

secara independen, maka perulangan pesan pada plainteks mempunyai

peluang yang besar untuk muncul berulang pula pada cipherteks. Dengan

mengetahui informasi ini, kriptanalis dapat melakukan serangan dengan

metode statistik secara mudah. Selain itu, mode ECB juga sangat rentan

terhadap manipulasi cipherteks yang bertujuan untuk mengelabui pihak

(30)

2.

Cipher Block Chaining

(CBC)

Pada mode operasi CBC, terdapat mekanisme umpan balik pada

sebuah blok, yaitu blok plainteks

current

di-XOR-kan terlebih dahulu dengan

blok cipherteks hasil enkripsi sebelumnya. Selanjutnya hasil operasi XOR ini

dimasukkan ke dalam fungsi enkripsi. Dengan demikian pada mode CBC,

setiap blok cipherteks bergantung tidak hanya pada blok plainteksnya, tapi

juga pada seluruh blok plainteks sebelumnya. Dekripsi dilakukan dengan cara

memasukkan blok cipherteks

current

ke dalam fungsi dekripsi, kemudian

meng-XOR-kan hasilnya dengan blok cipherteks sebelumnya. Secara

matematis proses enkripsi dapat dinyatakan sebagai berikut:

C

i

=

E

K

(

M

i

C

i-1

)

sedangkan proses dekripsi dapat dinyatakan sebagai berikut:

M

i

=

D

K

(

C

i

)

C

i-1

yang dalam hal ini,

C

0

= IV (Initialization Vector)

.

IV

dapat diberikan oleh

pengguna atau dibangkitkan secara acak oleh aplikasi.

IV

ini merupakan

rangkaian bit yang tidak bermakna dan hanya digunakan sebagai inisialisasi

untuk membuat setiap blok cipherteks menjadi unik. Jadi, untuk

menghasilkan blok cipherteks pertama (

C

1

),

IV

digunakan untuk

menggantikan blok cipherteks sebelumnya,

C

0

. Sebaliknya pada proses

dekripsi, blok plainteks diperoleh dengan cara meng-XOR-kan

IV

dengan

hasil dekripsi terhadap blok cipherteks pertama.

Dengan mode operasi CBC, kesalahan pada satu bit plainteks akan

mempengaruhi blok cipherteks yang berkoresponden dan blok-blok

cipherteks selanjutnya. Sedangkan kesalahan satu bit pada cipherteks hanya

akan mempengaruhi satu blok plainteks yang berkoresponden dan satu bit

(31)

E

K

Gambar 2.10. Skema Enkripsi dan Dekripsi dengan Mode CBC

Terlepas dari kekurangan yang telah disebutkan di atas, mode CBC

dapat mengatasi kelemahan yang timbul pada mode ECB. Dengan mode

ECB, blok-blok plainteks yang sama tidak menghasilkan blok-blok cipherteks

yang sama. Karena itulah kriptanalisis lebih sulit untuk dilakukan pada mode

CBC.

3.

Cipher FeedBack

(CFB)

Mode CBC memiliki kelemahan, yaitu proses enkripsi hanya dapat

dilakukan pada ukuran blok yang utuh, sehingga mode CBC tidak efisien jika

diterapkan pada aplikasi komunikasi data. Permasalahan ini dapat diatasi

pada mode CFB. Mode CFB mengenkripsikan data dalam unit yang lebih

kecil daripada ukuran blok. Sehingga enkripsi dapat dilakukan meskipun data

yang diterima belum lengkap. Proses enkripsi pada unit yang lebih kecil

daripada ukuran blok ini membuat mode CFB berlaku seperti cipher aliran

(

stream cipher

). Karena hal inilah, mode CFB dapat diterapkan pada aplikasi

komunikasi data. Unit yang dienkripsi dapat berupa bit per bit, 2 bit, 3 bit dan

seterusnya. Bila unit yang dienkripsi berupa satu karakter setiap kalinya,

maka mode CFB ini disebut CFB 8-bit. Mode ini membutuhkan sebuah

antrian yang berukuran sama dengan ukuran blok masukan. Secara formal,

proses enkripsi mode CFB

n

-bit dapat dinyatakan sebagai berikut:

C

i

=

M

i

MSB

b

(

E

K

(

X

i

))

(32)

sedangkan untuk proses dekripsi dapat dinyatakan sebagai berikut:

M

i

=

C

i

MSB

b

(

D

K

(

X

i

))

X

i+1

=

LSB

b-u

(

X

i

) ||

C

i

Keterangan:

X

i

: isi antrian dengan

X

i

adalah IV

E

K

: fungsi enkripsi

D

K

: fungsi dekripsi

K

: kunci

b

:

panjang blok enkripsi

u

: panjang unit enkripsi

||

: operasi penyambungan (

concatenation

)

MSB :

Most Significant Byte

LSB :

Least Significant Byte

Secara umum, CFB

u

-bit mengenkripsi plainteks sebanyak

u

-bit setiap

kalinya, yang mana u

b (b=ukuran blok). Mode CFB membutuhkan sebuah

antrian (

queue

) yang berukuran sama dengan ukuran blok masukan. Mode

CFB mempunyai keunikan tersendiri, yaitu untuk proses enkripsi dan dekripsi

digunakan fungsi yang sama. Skema enkripsi dan dekripsi dengan mode CFB

8-bit dapat dilihat pada Gambar 2.10

E

K

K

m

i

c

i

p

i Antrian 8-byte

Left-most byte

ENKRIPSI

K

c

i

m

i

p

i Antrian 8-byte

DEKRIPSI

D

K

Left-most byte

(33)

Pada mode CFB pun terdapat perambatan kesalahan baik pada proses

enkripsi maupun proses dekripsi. Pada proses enkripsi, kesalahan satu bit

pada plainteks mempengaruhi blok cipherteks yang berkoresponden dan

blok-blok cipherteks berikutnya. Sedangkan kesalahan satu bit pada blok-blok

cipherteks akan bit yang berkoresponden dan bit-bit lainnya selama bit

error

tersebut terdapat di dalam pergeseran bit (

shift register

). Pada mode CFB

8-bit dan ukuran blok 64 8-bit, maka kesalahan satu

byte

pada blok cipherteks

akan mempengaruhi satu

byte

plainteks yang berkoresponden dan delapan

byte

berikutnya (lama

byte

error

yang terdapat dalam

shift register

adalah

delapan putaran).

4.

Output FeedBack

(OFB)

Mode OFB bekerja dengan cara yang mirip dengan mode CFB,

kecuali

n

-bit dari hasil fungsi enkripsi terhadap antrian disalin menjadi

elemen paling kanan antrian. Secara formal, mode OFB

n

-bit dapat

dinyatakan sebagai berikut:

C

i

=

M

i

MSB

b

(

E

K

(

X

i

))

X

i+1

=

LSB

b-u

(

X

i

) ||

MSB

b

(E

K

(X

i

))

sedangkan proses dekripsi dapat dinyatakan sebagai berikut:

M

i

=

C

i

MSB

b

(

D

K

(

X

i

))

X

i+1

=

LSB

b-u

(

X

i

) ||

MSB

b

(E

K

(X

i

))

Pada mode OFB tidak terdapat perambatan kesalahan. Kesalahan satu

bit pada plainteks hanya mengakibatkan kesalahan satu bit yang

berkoresponden pada cipherteks. Sebaliknya, kesalahan satu bit pada

cipherteks hanya mengakibatkan kesalahan satu bit yang berkoresponden

pada plainteks. Gambar 2.11 menunjukkan skema enkripsi dan dekripsi pada

(34)

K

m

i

c

i

p

i Antrian 8-byte

Left-most byte

ENKRIPSI

K

c

i

m

i

p

i Antrian 8-byte

DEKRIPSI

D

K

Left-most byte

E

K

Gambar 2.12 Skema Enkripsi dan Dekripsi pada mode OFB 8-Bit

Penggunaan mode-mode operasi tersebut tidak merubah fungsi enkripsi

dan dekripsi yang telah didefinisikan.

2.2 Kerangka Pemikiran

Berdasarkan pendahuluan dan mengacu pada tinjauan pustaka, dapat

disusun suatu kerangka pemikiran penulisan skripsi sebagai berikut:

1.

Dilakukan analisis sistem terhadap aplikasi teknik pengamanan data teks

menggunakan algoritma

Blowfish

.

2.

Dengan adanya tahapan analisis sistem, dapat ditentukan kebutuhan sistem

sehingga dapat dilakukan pembuatan aplikasi enkripsi dan dekripsi data teks

menggunakan algoritma

Blowfish

.

3.

Data teks dan kunci (

private key

) merupakan data masukan, yang kemudian

di enkripsi dengan algoritma Blowfish dan disimpan menjadi sebuah file teks

cipher. File teks cipher tersebut akan dibuka kembali dengan aplikasi yang

sudah dibuat, kemudian dilakukan proses dekripsi, sehingga data teks semua

(35)

`

BAB III

METODE PENELITIAN

Metode penelitian yang digunakan dalam penulisan skripsi ini adalah

pengembangan sistem dan disertai dengan studi literatur. Langkah-langkah yang

dilakukan untuk mencapai tujuan skripsi ini adalah sebagai berikut:

1.

Melakukan studi literatur tentang algoritma

Blowfish dan penerapannya.

2.

Perencanaan sistem.

3.

Analisis sistem teknik pengamanan data dengan menggunakan algoritma

Blowfish untuk mengidentifikasi masalah, memahami cara kerja sistem

dan mengenali kebutuhan.

4.

Perancangan sistem, yaitu perancangan

flowchart

,

form

masukan dan

form

keluaran.

5.

Implementasi sistem. Sistem dibangun berdasarkan algoritma yang telah

ada menggunakan bahasa pemrograman Java 2 Standard Edition (J2SE).

6.

Evaluasi sistem. Evaluasi sistem dilakukan untuk menguji tingkat efisiensi

sistem.

7.

Dalam membuat dan melakukan evaluasi sistem diperlukan seperangkat

alat komputer. Adapun spesifikasi alat komputer yang digunakan sebagai

berikut:

a.

Hardware

Tabel 3.1

Spesifikasi

Hardware

Jenis

Spesifikasi

Notebook

Notebook Hewlett Packard 520

Processor

Intel(R) Celeron(R) 420 1.60Gz

Memory

RAM DDR2 1.5GB

VGA Card

Mobile Intel(R) 945 Express Chipset Family

(36)

b. Software

Tabel 3.2

Spesifikasi

Software

Jenis

Spesifikasi

Sistem Operasi

-

Microsoft(R) Windows(R) eXPerience (XP)

Professional SP3

-

Ubuntu 9.10 Karmic Koala

Bahasa

Pemrograman

Java 2 Standard Edition

-

Java Development Kit (JDK) 1.6.0_11

-

Java Runtime Environment (JRE) 6

IDE

Netbeans 6.5

Database Server

MySQL Server 5.1

(37)

BAB IV

PEMBAHASAN

4.1 Analisis Sistem

Dalam melakukan analisis sistem, perlu diketahui terlebih dahulu alur

sistem pengamanan data yang akan dibuat. Secara umum, alur sistem pengamanan

data dapat digambarkan seperti Gambar 4.1.

Teks ter-Enkripsi Teks ter-Dekripsi

Plainteks Plainteks

File Cipherteks Kunci

(Private Key)

Kunci (Private Key)

Gambar 4.1 Alur Sistem Pengamanan Data Teks

Berdasarkan Gambar 4.1 dengan mengacu pada Gambar 2.1, plainteks

merupakan data teks berkode ASCII (

American Standard Code for Information

Interchange

) dimana setiap karakter memiliki nilai setara dengan 8 bits (1 byte).

Sistem (perangkat lunak) akan dijalankan dalam dua mode, yaitu mode

enkripsi dan mode dekripsi. Di tiap-tiap mode akan memiliki data masukan

berupa plainteks (bisa berupa teks yang langsung di tulis, maupun dalam bentuk

file teks), kunci (

private key

), dan memilih mode operasi enkripsi (ECB, CBC,

OFB, atau CFB). Untuk menghindari adanya

weak key

(kunci lemah) dalam

penggunaan algoritma Blowfish, maka kunci dibuat dengan minimal 8 karakter.

Setelah mengisi semua data masukan, selanjutnya dilakukan proses enkripsi

dengan algoritma Blowfish. Hasil dari proses enkripsi ini dapat disimpan ke

dalam file berekstensi

.cip

, yang selanjutnya akan menjadi cipherteks.

(38)

4.2 Diagram Alir (

Flowchart

) Aplikasi

Berikut

flowchart

(diagram alir) dari sistem perangkat lunak yang akan di buat:

Login

Gambar

Gambar 2.1. Simbol Umum Flowchart
Gambar 2.2. Skema Enkripsi dan Dekripsi
Gambar 2.3. Skema Tipe-tipe Cipher
Gambar 2.4. Kriptologi, Kriptografi dan Kriptanalisis
+7

Referensi

Dokumen terkait

Visualisasi bangun ruang dapat dilihat secara lebih nyata melalui software Geogebra sehingga siswa tidak menghabiskan waktu dalam menggambar bangun ruang dan

Sistem database: e personal system (tentang kepegawaian) Ada/tidak Kelembagaan 22 Penataan SKPD. … % 5 EFEKTIVITAS PROSES PENGAMBILAN KEPUTUSAN OLEH DPRD BESERTA TINDAK

Menyatakan dengan sesungguhnya bahwa penulisan hukum (skripsi) berjudul : ANALISIS KETERANGAN SAKSI VERBALISAN SEBAGAI AKIBAT PENCABUTAN BERITA ACARA PEMERIKSAAN

[r]

Praktik Pengalaman Lapangan adalah semua kegiatan kurikuler yang harus dilakukan oleh mahasiswa praktikan, sebagai pelatihan untuk menerapkan teori yang diperoleh dalam

 Marketing, Contracting, Customer Relationship Skills, Kemampuan menjual tidak hanya dimiliki oleh marketer saja, akan tetapi manajer proyek harus memiliki kemampuan untuk

Kejahatan dunia maya (cyber crime) sebagai kejahatan yang relatif baru. memiliki ciri-ciri

Varibel utama adalah karakteristik organ reproduksi betina yang terdiri atas bentuk/morfologi dan panjang organ reproduksi betina, panjang dan berat Ovarium, panjang dan