• Tidak ada hasil yang ditemukan

Perancangan Dan Implementasi Sistem Keamanan Data Menggunakan Algoritma Kriptografi Simetri Idea

N/A
N/A
Protected

Academic year: 2016

Membagikan "Perancangan Dan Implementasi Sistem Keamanan Data Menggunakan Algoritma Kriptografi Simetri Idea"

Copied!
129
0
0

Teks penuh

(1)

PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN

DATA MENGGUNAKAN ALGORITMA KRIPTOGRAFI

SIMETRI IDEA

SKRIPSI

DEWI TRY AGUSTINA

041401015

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA

MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

DEWI TRY AGUSTINA

041401015

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul

: PERANCANGAN DAN IMPLEMENTASI SISTEM

KEAMANAN DATA MENGGUNAKAN ALGORITMA

KRIPTOGRAFI SIMETRI IDEA

Kategori

: SKRIPSI

Nama

: DEWI TRY AGUSTINA

Nomor Induk Mahasiswa

: 041401015

Program Studi

: SARJANA (S1) ILMU KOMPUTER

Departemen

: ILMU KOMPUTER

Fakultas

: MATEMATIKA DAN ILMU PENGETAHUAN ALAM

(FMIPA) USU

Diluluskan di

Medan, 20 Desember 2008

Komisi Pembimbing

:

Pembimbing 2 :

Pembimbing 1

:

Maya Silvi Lydia, B.Sc., M.Sc.

Prof. Dr. Iryanto, M.Si.

NIP 132 299 349

NIP 130 353 140

Diketahui / Disetujui oleh

Departemen Ilmu Komputer FMIPA USU

Ketua,

(4)

PERNYATAAN

PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA

MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA

SKRIPSI

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

dan ringkasan yang masing – masing disebutkan sumbernya.

Medan, 20 Desember 2008

(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT, Tuhan Yang Maha Pemurah dan Maha

Penyayang, dengan limpahan karunia–Nya maka kajian ini berhasil diselesaikan dalam waktu

yang telah ditetapkan.

Ucapan terima kasih saya sampaikan kepada:

1.

Bapak Prof. Dr. Iryanto, M.Sc. dan Ibu Maya Silvi Lydia, B.Sc, M.Sc. selaku

pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh

kepercayaan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas dan

padat dan professional telah diberikan kepada saya agar penulis dapat menyelesaikan

tugas ini.

2.

Ketua dan Sekretaris Departemen Bapak Prof. Dr. Muhammad Zarlis dan Syahriol

Sitorus,S.Si,MIT, serta Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu

Pengetahuan Alam Universitas Sumatera Utara.

3.

Semua dosen pada Departemen Ilmu Komputer FMIPA USU, pegawai di FMIPA

USU, dan rekan – rekan kuliah.

4.

Juga tidak terlupakan kepada bapak, ibu, dan semua ahli keluarga yang saya cintai,

yaitu bang Toni, bang Aris, Ihsan,serta para paman bibi yang selama ini memberikan

bantuan dan dorongan yang diperlukan.

5.

Serta takkan luput juga kepada sahabat-sahabat tersayang, yaitu: Nisa, Leni, Dian,

Farida, Nita, Dewi, Tya, Tika, dll. yang telah berjuang membantu, baik material,

pikiran, tenaga, dan waktu.

6.

Terakhir kepada teman kuliah yang sudah sangat membantu dalam penyelesaian

program skripsi ini yaitu Fahrur Razi.

7.

Juga tidak terlewatkan kepada Bang Yunza, sahabat sekaligus abang, yang sudah

banyak memberikan semangat dan dukungan serta motivasi yang membangun dalam

menyelesaikan skripsi ini.

(6)

ABSTRAK

Banyak algoritma kriptografi modern yang walaupun menyediakan keamanan tinggi, namun

sangat susah dimengerti dan dipelajari masyarakat awam. Tujuan dari penelitian ini adalah

untuk membangun suatu perangkat lunak yang tidak hanya bisa menjaga keamanan data

dengan kuat dan andal, tapi juga mudah dimengerti banyak orang. Untuk itulah algoritma

IDEA dipilih, karena algoritma ini termasuk algoritma yang memuaskan user selain dengan

kekuatan dan keandalannya dari berbagai serangan para kriptanalis, juga dengan

kemudahannya dipelajari semua orang. Sistem ini dikembangkan menggunakan bahasa

pemrograman C++. Analisis kebutuhan perangkat lunak algoritma IDEA dilakukan dengan

menentukan nama perangkat lunak yang akan dibangun, mengetahui siapa yang akan

menggunakan perangkat lunak tersebut, memahami konsep teknologi yang akan dipakai,

membuat tampilan antarmuka yang mendidik, menentukan teknik yang dipergunakan untuk

membentuknya, serta menguji hasil perangkat lunak tersebut. Objektif utama sistem ini

adalah untuk melihat dan mempelajari berbagai konsep dan prinsip untuk merancang dan

mengimplementasikan sistem keamanan data menggunakan algoritma IDEA.

(7)

DESIGN AND IMPLEMENTATION OF DATA SECURITY SYSTEM

USING THE SYMETRIC CRYPTOGRAPHY IDEA ALGORITHM

ABSTRACT

(8)

DAFTAR ISI

Halaman

Persetujuan

ii

Pernyataan

iii

Penghargaan

iv

Abstrak

v

Abstract

vi

Daftar Isi

vii

Daftar Tabel

ix

Daftar Gambar

x

Bab 1 Pendahuluan

1

1.1

Latar Belakang

1

1.2

Perumusan Masalah

2

1.3

Batasan Masalah

2

1.4

Tujuan Penelitian

3

1.5

Manfaat Penelitian

3

1.6

Metodologi Penelitian

3

1.7

Sistematika Penulisan

4

Bab 2 Landasan Teori

6

2.1

Kriptografi

6

2.1.1

Sejarah Kriptografi

7

2.1.2

Enkripsi dan Dekripsi

8

2.1.2.1

Enkripsi Konvensional

9

2.1.2.2

Enkripsi Kunci Publik

9

2.1.3

Pola-pola Penyerangan Data

10

2.1.4

Serangan terhadap Kriptografi

12

2.1.5

Kategori Cipher Kunci Simetri

12

2.2

Rekayasa Perangkat Lunak

13

2.2.1

Proses Rekayasa Perangkat Lunak

13

2.3

Matematika Kriptografi

13

2.3.1

Teorema Euclidean

13

2.3.2

PBB

14

2.3.3

Algoritma Euclidean

14

2.3.4

Relatif Prima

15

2.3.5

Aritmatika Modulo

15

2.3.6

Kekongruenan

15

2.3.7

Inversi Modulo

16

2.4

Algoritma IDEA

17

2.4.1

Proses Enkripsi IDEA

19

2.4.2

Pembentukan Subkunci Enkripsi

21

2.4.3

Proses Dekripsi IDEA

22

(9)

2.4.3.2

Invers Perkalian

24

2.4.3.3

Algoritma Extended Euclidean

24

2.4.4

Contoh Komput asi Penggunaan Algoritma IDEA

26

2.4.4.1

Proses Enkripsi

26

2.4.4.2

Proses Dekripsi

27

Bab 3 Analisis dan Pemodelan Perangkat Lunak

30

3.1

Analisis Permasalahan Algoritma IDEA

30

3.2

Analisis Kebutuhan Algoritma IDEA

30

3.3

Pemodelan Fungsional

32

3.4

DFD dan Spesifikasi Proses

32

3.4.1

Diagram Konteks

33

3.4.2

DFD level 1

33

3.4.3

DFD level 2 proses P.1

35

3.4.4

DFD level 3 proses P.1.1

36

3.4.5

DFD level 3 proses P.1.2

37

3.4.6

DFD level 2 proses P.3

38

3.4.7

DFD level 2 proses P.4

39

3.5

Kamus Data

40

3.5.1

Proses Pembentukan Kunci Enkripsi dan Dekripsi

41

3.5.2

Proses Enkripsi

42

3.5.3

Proses Dekripsi

42

Bab 4 Perancangan dan Implementasi Perangkat Lunak

44

4.1

Perancangan

44

4.1.1

Perancangan Data

44

4.1.2

Perancangan Struktur Program

45

4.1.3

Perancangan Prosedural

47

4.1.3.1

Algoritma dan

flowchart

Proses

Pembangkitan Subkunci Enkripsi dan Dekripsi

47

4.1.3.2

Algoritma dan

flowchart

Proses Enkripsi

49

4.1.3.3

Algoritma dan

flowchart

Proses Dekripsi

50

4.2

Implementasi

54

4.2.1

Halaman Menu Utama

54

4.2.2

Halaman Menu Enkripsi

57

4.2.3

Halaman Menu Dekripsi

58

Bab 5 Penutup

60

5.1

Kesimpulan

60

5.2

Saran

60

Daftar Pustaka

61

Lampiran Listing Program

63

(10)

DAFTAR TABEL

Halaman

Tabel 2.1

Penggunaan Kunci di Tiap Putaran

22

Tabel 2.2

Subblok Kunci Enkripsi

23

Tabel 2.3

Subblok Kunci Dekripsi

23

Tabel 2.4

Subkunci-subkunci Enkripsi yang Berhasil Dibentuk

27

Tabel 2.5

Hasil

Perhitungan Setiap Subblok 16-bit dalam 9 Round

28

Tabel 2.6

Subkunci-subkunci Dekripsi yang Berhasil Dibentuk

29

Tabel 3.1

Spesifikasi Proses Diagram Konteks

33

Tabel 3.2

Spesifikasi Proses Diagram Level 1

35

Tabel 3.3

Spesifikasi Proses Diagram Level 2 Proses 1

36

Tabel 3.4

Spesifikasi Proses Diagram Level 3 untuk Proses 1.1

37

Tabel 3.5

Spesifikasi Proses Diagram Level 3 untuk Proses 1.2

38

Tabel 3.6

Spesifikasi Proses Diagram Level 2 untuk Proses 3

39

Tabel 3.7

Spesifikasi Proses Diagram Level 2 untuk Proses 4

41

Tabel 3.8

Kamus Data Proses Pembentukan Kunci Enkripsi dan Dekripsi

42

Tabel 3.9 Kamus Data Proses Enkripsi

43

(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1

Proses Enkripsi–Dekripsi pada Enkripsi Konvensional

9

Gambar 2.2

Proses Enkripsi–Dekripsi pada Enkripsi Kunci Publik

9

Gambar 2.3

Interruption

10

Gambar 2.4

Interception

11

Gambar 2.5

Modification

11

Gambar 2.6

Fabrication

11

Gambar 2.7 Kotak MA (

Multiplication

-

Addition

)

18

Gambar 2.8 Algoritma kriptografi simetri IDEA

20

Gambar 3.1

Diagram Konteks

33

Gambar 3.2

DFD Level 1

34

Gambar 3.3

DFD Level 2 Proses 1

35

Gambar 3.4

DFD Level 3 Proses 1.1

36

Gambar 3.5

DFD Level 3 Proses 1.2

37

Gambar 3.6

DFD Level 2 Proses 3

39

Gambar 3.7

DFD Level 2 Proses 4

40

Gambar 4.1

Struktur Program

IDEACrypt

46

Gambar 4.2 Flowchart Proses Pembangkitan Subkunci Enkripsi dan Dekripsi 48

Gambar 4.3 Flowchart Proses Enkripsi 52

Gambar 4.4 Flowchart Proses Dekripsi 53

Gambar 4.9

Tampilan Menu Utama

54

Gambar 4.10

Tampilan dengan Kunci yang Salah

55

Gambar 4.11

Tampilan Setelah Input Kunci

55

Gambar 4.12

Tampilan Kunci Enkripsi dan Dekripsi

56

Gambar 4.13

Tampilan Layar Enkripsi

57

Gambar 4.14

Tampilan Layar Enkripsi dengan Input yang Salah

58

Gambar 4.15

Tampilan Layar Dekripsi

59

(12)

ABSTRAK

Banyak algoritma kriptografi modern yang walaupun menyediakan keamanan tinggi, namun

sangat susah dimengerti dan dipelajari masyarakat awam. Tujuan dari penelitian ini adalah

untuk membangun suatu perangkat lunak yang tidak hanya bisa menjaga keamanan data

dengan kuat dan andal, tapi juga mudah dimengerti banyak orang. Untuk itulah algoritma

IDEA dipilih, karena algoritma ini termasuk algoritma yang memuaskan user selain dengan

kekuatan dan keandalannya dari berbagai serangan para kriptanalis, juga dengan

kemudahannya dipelajari semua orang. Sistem ini dikembangkan menggunakan bahasa

pemrograman C++. Analisis kebutuhan perangkat lunak algoritma IDEA dilakukan dengan

menentukan nama perangkat lunak yang akan dibangun, mengetahui siapa yang akan

menggunakan perangkat lunak tersebut, memahami konsep teknologi yang akan dipakai,

membuat tampilan antarmuka yang mendidik, menentukan teknik yang dipergunakan untuk

membentuknya, serta menguji hasil perangkat lunak tersebut. Objektif utama sistem ini

adalah untuk melihat dan mempelajari berbagai konsep dan prinsip untuk merancang dan

mengimplementasikan sistem keamanan data menggunakan algoritma IDEA.

(13)

DESIGN AND IMPLEMENTATION OF DATA SECURITY SYSTEM

USING THE SYMETRIC CRYPTOGRAPHY IDEA ALGORITHM

ABSTRACT

(14)

Bab 1

PENDAHULUAN

1.1.

Latar Belakang

Sistem keamanan pengiriman data (komunikasi data yang aman) dipasang untuk

mencegah pencurian, kerusakan, dan penyalahgunaan data yang terkirim melalui

jaringan komputer. Dalam praktek, pencurian data berwujud pembacaan oleh pihak

yang tidak berwenang biasanya dengan menyadap saluran publik. Teknologi jaringan

komputer telah dapat mengurangi bahkan membuang kemungkinan adanya kerusakan

data akibat buruknya konektivitas fisik, namun gangguan tetap bisa terjadi karena ada

unsur kesengajaan yang mengarah ke penyalahgunaan sistem dari pihak-pihak

tertentu.

IDEA (International Data Encryption Algorithm) merupakan sebuah algoritma

kriptografi simetri yang diciptakan pada awalnya sebagai pengganti

Data Encryption

Standard

(DES). IDEA adalah sebuah revisi kecil dari cipher yang lebih awal, yakni

PES (

Proposed Encryption Standard

). Pada awalnya, IDEA disebut IPES (

Improved

PES

). Algoritma IDEA terbilang sederhana karena hanya melibatkan 3 proses utama

dan 9 putaran.

Algoritma ini merupakan algoritma yang menyediakan keamanan cukup tinggi

yang tidak didasarkan atas kerahasiaan algoritmanya (algoritma

restricted

), akan

tetapi lebih ditekankan pada keamanan/kerahasian kunci yang digunakan (algoritma

kriptografi modern

). Algoritma

restricted

biasanya digunakan oleh sekelompok orang

untuk bertukar pesan satu sama lain, mereka membuat suatu algoritma enkripsi yang

hanya diketahui oleh anggota kelompok itu saja, sehingga setiap kali ada anggota

kelompok yang keluar, maka algoritma

restricted

tersebut harus diganti karena

(15)

Namun algoritma

kriptografi modern,

seperti algoritma IDEA ini, dapat

mengatasi masalah tersebut dengan menggunakan kunci, yang dalam hal ini

algoritmanya tidak lagi dirahasiakan, tetapi kunci harus dijaga kerahasiaannya.

Sehingga setiap kali ada anggota kelompok yang keluar, maka algoritma yang dipakai

tidak perlu diganti, namun cukup mengganti kuncinya saja.

Dengan perkataan lain, diperlukan algoritma

kriptografi modern

yang dapat

digunakan dan gampang dimengerti oleh semua orang, juga algoritma yang

menyediakan keamanan cukup tinggi yang tidak didasarkan atas kerahasiaan

algoritmanya. Untuk itulah penulis mengambil judul “Perancangan dan Implementasi

Sistem Keamanan Data Menggunakan Algoritma Kriptografi Simetri IDEA”.

1.2. Perumusan masalah

Bagaimana merancang suatu perangkat lunak pada sistem keamanan data

menggunakan algoritma kriptografi simetri IDEA.

1.3. Batasan Masalah

Agar penelitian yang dilakukan terfokus, maka penelitian dibatasi pada hal-hal

berikut:

1.Komputer yang digunakan hanya berupa komputer pribadi (

personal computer

)

dengan spesifikasi minimal.

2.Dilakukan secara sederhana hanya pada data yang disimpan di dalam

storage

(

encryption of data at-rest

), bukan pada data yang dikirim (ditransmisikan)

dalam suatu saluran komunikasi (

encryption of data in motion

). Contoh

encryption of data in motion

adalah pengiriman nomor PIN dari mesin ATM

ke komputer server di kantor bank pusat, sedangkan contoh

encryption of data

at-rest

adalah enkripsi/dekripsi yang dilakukan pada

file

basis data, yakni

proses tersebut hanya dilakukan terhadap

field-field

tertentu saja.

3.Interaksi antara program dan user hanya berupa proses pembangkitan kunci

(16)

dibentuk; serta proses enkripsi dan dekripsi dengan menampilkan seluruh hasil

setiap roundnya.

4.Plaintext hanya berupa file berupa teks yang dapat dipilih panjang karakternya:

8, 16, 24, atau 32 karakter.

5.Membahas dan menganalisis masalah XOR, penjumlahan modulo

dan

perkalian modulo (

+ 1) yang merupakan konsep dasar dari algoritma

IDEA.

6.Menggunakan bahasa pemrograman C++ dengan

command line

(tampilan yang

mengarahkan user menggunakan barisan perintah).

1.4.

Tujuan Penelitian

Penelitian ini bertujuan untuk memperoleh perangkat lunak dalam sistem keamanan

data yang kuat (handal) dari berbagai serangan dengan menggunakan algoritma

kriptografi simetri IDEA.

1.5. Manfaat Penelitian

Manfaat dilakukannya penelitian ini adalah sebagai berikut:

1.Menambah/memperkaya perangkat lunak dalam sistem keamanan data atau

bidang kriptografi bagian algoritma simetris.

2.Memudahkan

user

untuk melindungi data agar tidak dapat dibaca oleh

pihak-pihak yang tidak berhak, serta mencegah agar pihak-pihak-pihak-pihak yang tidak berhak

tersebut tidak dapat memanipulasi, menyisipkan, atau menghapus data.

1.6. Metodologi Penelitian

Penelitian dalam skripsi ini dilakukan dengan beberapa tahapan, yaitu:

1. Studi Literatur

Penulisan ini dimulai dengan studi kepustakaan yaitu mengumpulkan

bahan-bahan referensi baik dari buku, artikel, jurnal, makalah, maupun situs internet

(17)

mendasarinya, serta bahasa pemrograman untuk pambuatan aplikasinya, dan

beberapa referensi lainnya.

2. Analisis masalah

Pada tahap ini dilakukan analisis terhadap algoritma kriptografi simetri IDEA,

yakni meliputi XOR, penjumlahan modulo

dan inversnya, serta perkalian

modulo (

+1) dan inversnya dari aspek matematis dan proses penyandian

kemudian menerapkannya pada algoritma kriptografi simetri IDEA.

3. Perancangan Sistem

Pada tahap ini, sistem dirancang sehingga dapat menjamin keamanan data.

4. Pengkodean

Pada tahap ini, sistem yang telah dirancang kemudian diimplementasikan

menggunakan bahasa pemrograman C++.

5. Pengujian

Pada tahap ini, menguji program dan mencari kesalahan pada program hingga

program itu dapat berjalan sesuai dengan yang dirancang.

6. Penyusunan laporan dan kesimpulan akhir

Pada tahap ini, menyusun laporan hasil analisis dan perancangan kedalam

format penulisan skripsi dengan disertai kesimpulan akhir.

1.7. Sistematika Penulisan

BAB 1 : PENDAHULUAN

Bab ini menjelaskan mengenai latar belakang pemilihan judul, rumusan masalah,

batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan

(18)

BAB 2 :

LANDASAN TEORI

Pada bab ini dibahas mengenai teori-teori yang mendukung pembahasan bab

selanjutnya, implementasi enkripsi/dekripsi data sebagai hasil dari pengaplikasian

XOR, penjumlahan modulo

, dan perkalian modulo (

+1) pada algoritma

kriptografi simetri IDEA.

BAB 3 :

ANALISIS dan PEMODELAN PERANGKAT LUNAK

Bab ini berisikan analisis yang dilakukan terhadap perangkat lunak algoritma

kriptografi simetri IDEA, yaitu analisis kebutuhan perangkat lunak algoritma

kriptografi simetri IDEA dan analisis fungsi perangkat lunak algoritma kriptografi

simetri IDEA, serta pemodelan sistemnya.

BAB 4

: PERANCANGAN dan IMPLEMENTASI

Bab ini berisikan gambaran rancangan struktur program dan desain, serta memberikan

gambaran dari rancang bangun yang lengkap kepada user dan pemakai komputer yang

lain serta implementasinya yaitu menguji untuk menemukan kesalahan.

BAB 5

: PENUTUP

Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab

(19)

Bab 2

LANDASAN TEORI

2.1.

Kriptografi

Kriptografi berasal dari dua suku kata yaitu

kripto

dan

grafi

. Kripto artinya

menyembunyikan, sedangkan grafi artinya ilmu. Kriptografi (

Cryptography

) adalah

suatu ilmu yang mempelajari sistem sandi untuk menjamin kerahasiaan dan keamanan

data, yang kegiatannya dilakukan oleh seorang

kriptographer

.

Kriptografi secara umum merupakan ilmu dan seni untuk menjaga kerahasian

berita (Scheiner. B., 1996). Kriptografi juga dapat diartikan sebagai ilmu yang

mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan

informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi

data (Menezes. et al,1996).

Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek

keamanan informasi (Menezes. et al,1996) (Scheiner. B., 1996), yaitu:

1.Kerahasiaan (

Confidentiality

), adalah layanan yang digunakan untuk menjaga isi

informasi dari siapapun, kecuali yang memiliki kunci rahasia atau otoritas untuk

membuka informasi yang telah disandikan.

2.Integritas Data (

Message Integrity

), berhubungan dengan penjagaan (perlindungan

data) dari upaya-upaya pengubahan data secara tidak sah. Untuk dapat menjaga

integritas data, suatu sistem harus memiliki kemampuan untuk mendeteksi

pemanipulasian data yang dilakukan oleh pihak-pihak yang tidak berhak, antara lain

penyisipan, penghapusan, dan pendistribusian data lain ke dalam data yang asli.

3.Autentifikasi (

Authentication

), berhubungan dengan identifikasi, baik secara

(20)

harus saling memperkenalkan diri. Informasi yang dikirimkan harus diautentikasi

keasliannya, isi datanya, waktu pengirimannya dan lain sebagainya.

4.Nirpenyangkalan (

Non-repudiation

), merupakan usaha untuk mencegah terjadinya

penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang

mengirimkan/membuat, juga sebaliknya.

2.1.1. Sejarah Kriptografi

Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini

dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka

menggunakan

hieroglyphcs

untuk menyembunyikan tulisan dari pihak yang tidak

diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani

hieroglyphica

yang berarti

“ukiran rahasia”. Hieroglyphs berevolusi menjadi

hieratic

, yaitu

stylized

script

yang

lebih mudah untuk digunakan (Rahayu. F.S., 2005).

Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam

bentuk sepotong papyrus atau perkamen dibungkus dengan batang kayu. Sistem ini

disebut

Scytale

. Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher

substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini,

huruf-huruf alfabet disubstitusi dengan huruf-huruf-huruf-huruf yang lain pada alfabet yang sama.

Pada tahun 20-an, Herbert O. Yardley bertugas pada organisasi rahasia US

MI-8 yang dikenal sebagai “Black Chamber”. MI-MI-8 menjebol kode-kode sejumlah negara.

Selama konferensi Angkatan Laut Washington tahun 1921-1922, US membatasi

negosiasi dengan Jepang karena MI-8 telah memberikan rencana negosiasi Jepang

yang telah disadap oleh sekretaris negara US. Departemen negara menutup MI-8 pada

tahun 1929 sehingga Yardley merasa kecewa. Sebagai wujud kekecewaanya, Yardley

menerbitkan buku

The American Black Chamber

, yang menggambarkan kepada dunia

rahasia dari MI-8. Sebagai konsekuensinya, pihak Jepang menginstal kode-kode baru.

Karena kepeloporannya dalam bidang ini, Yardley dikenal sebagai “Bapak Kriptografi

(21)

2.1.2. Enkripsi dan Dekripsi

Enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi

tersebut tidak dapat dibaca tanpa bantuan pengetahuan dan atau alat khusus.

Sedangkan dekripsi merupakan algoritma atau cara yang dapat digunakan untuk

membaca informasi yang telah dienkripsi untuk dapat dibaca kembali (Kurniawan. Y.,

2004).

Cara yang digunakan untuk melakukan enkripsi ialah dengan cara melakukan

perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak

bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai sebuah kode atau

cipher. Sebuah

cipher

menggunakan suatu algoritma yang dapat mengkodekan semua

aliran data (stream) bit dari sebuah pesan menjadi

cryptogram

yang tidak dapat

dimengerti (Aryus. D., 2005).

Dengan demikian keamanan suatu pesan tergantung pada kunci-kunci yang

digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga

algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis. (Kristanto. A.,

2003).

Terdapat tiga kategori enkripsi, yaitu:

1.Kunci enkripsi rahasia.

Dalam hal ini, terdapat sebuah kunci yang digunakan untuk mengenkripsi dan

juga sekaligus mendekripsikan informasi.

2.Kunci enkripsi publik.

Dalam hal ini, terdapat dua kunci yang digunakan, satu kunci untuk proses

enkripsi dan kunci yang lain untuk proses dekripsi.

3.Fungsi

one-way

(fungsi satu-arah)

Suatu fungsi dimana informasi dienkripsi untuk menciptakan

signature

dari

(22)

Terdapat dua macam teknik enkripsi yang biasa digunakan dalam sistem

keamanan pada sistem komputer dan jaringan, yaitu teknik enkripsi konvensional dan

teknik enkripsi publik.

2.1.2.1. Enkripsi Konvensional (Kunci Simetri)

Pada enkripsi konvensional, kunci yang digunakan untuk mendekripsikan cipherteks

ialah kunci yang sama dengan kunci yang digunakan saat mengenkripsi plainteks.

Plainteks

Kunci/Key User B

User A

Plainteks Algoritma

Dekripsi Cipherteks

Algoritma Enkripsi

Gambar 2.1

Proses Enkripsi – Dekripsi pada Enkripsi Konvensional

Keamanan pada enkripsi konvensional terdiri dari beberapa faktor. Pertama,

algoritma enkripsi harus cukup kuat sehingga menjadikan kriptanalis sangat kesulitan

dalam mendekripsikan cipherteks. Kedua, bergantung pada kerahasiaan kuncinya,

yaitu tidak perlu merahasiakan algoritma, tetapi cukup merahasiakan kuncinya.

2.1.2.2. Enkripsi Kunci Publik

Kelemahan yang terdapat pada enkripsi konvensional yaitu perlunya mendistribusikan

kunci yang digunakan dalam keadaan aman. Ada cara agar tidak perlu lagi

mendistribusikan kunci, cara tersebut dikenal dengan nama enkripsi kunci publik.

Plainteks

Private Key B

User B User A

Plainteks Algoritma

Dekripsi Cipherteks

Algoritma Enkripsi

Public Key B

(23)

Teknik yang dilakukan pada enkripsi ini yaitu:

a)Masing-masing sistem dalam jaringan akan menciptakan sepasang kunci yang

digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.

b)Masing-masing sistem akan menerbitkan kunci enkripsinya yaitu kunci publik

(public key) dengan memasang dalam register umum atau file, sedang

pasangannya tetap dijaga sebagai kunci pribadi (private key).

c)Jika A ingin mengirim pesan kepada B, maka A akan mengenkripsi pesannya

dengan kunci publik B.

d)Ketika B menerima pesan dari A, maka B akan menggunakan kunci privatnya

untuk mendekripsi pesan dari A.

Enkripsi cara ini memang akan memecahkan masalah distribusi kunci, namun

memiliki kelemahan dibandingkan enkripsi konvensional, yaitu algoritma enkripsi ini

mempunyai algoritma yang lebih kompleks sehingga akan menghasilkan kinerja yang

lebih rendah.

2.1.3. Pola-pola Penyerangan Data

Proteksi data dan informasi dalam komunikasi komputer menjadi penting karena nilai

informasi itu sendiri dan meningkatnya penggunaan komputer di berbagai sektor.

Melihat kenyataan semakin banyak data yang diproses dengan komputer dan dikirim

melalui perangkat komunikasi elektronik maka ancaman terhadap pengamanan data

akan semakin meningkat (Sobari. R., 2005).

Beberapa pola ancaman terhadap komunikasi data dalam komputer dapat

diterangkan sebagai berikut:

1. Interruption

Interruption terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang

berhak (B).

Interruption

merupakan pola penyerangan terhadap sifat

availability

(ketersediaan data).

(24)

2. Interception

Serangan ini terjadi bila pihak ketiga C berhasil membaca data yang dikirimkan.

Interception

merupakan pola penyerangan terhadap sifat

confidentiality

(kerahasiaan

data).

Gambar 2.4

Interception

3. Modification

Pada serangan ini pihak ketiga C berhasil merubah pesan yang dikirimkan dari A

sebelum sampai ke B.

Modification

merupakan pola penyerangan terhadap sifat

integrity

(keaslian data).

Gambar 2.5

Modification

4. Fabrication

Pada serangan ini, penyerang berhasil mengirimkan data ke tujuan dengan

memanfaatkan identitas orang lain.

Fabrication

merupakan pola penyerangan

terhadap sifat

authenticity

.

Gambar 2.6

Fabrication

Untuk mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha untuk

melindungi data yang dikirim melalui saluran komunikasi, salah satunya adalah

dengan teknik enkripsi. Dan untuk masalah kekuatan pengamanannya tergantung pada

algoritma metode enkripsi tersebut dan juga kunci yang digunakan di dalamnya

(25)

2.1.4. Serangan terhadap Kriptografi

Pada dasarnya serangan terhadap primitif dan protokol kriptografi dapat dibedakan

menjadi dua jenis yaitu:

1)Serangan pasif adalah serangan dimana penyerang hanya memonitor saluran

komunikasi. Penyerang pasif hanya mengancam kerahasiaan data.

2)Serangan aktif adalah serangan dimana penyerang mencoba untuk menghapus,

menambahkan, atau dengan cara yang lain mengubah transmisi pada saluran.

Penyerang aktif mengancam integritas, otentikasi, dan kerahasiaan data.

2.1.5. Kategori

Cipher

Kunci Simetri

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:

1.Cipher Aliran

(Stream Cipher)

Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk bit

tunggal, yang dalam hal ini rangkaian bit dienkripsi/didekripsikan bit per bit.

Cipher aliran mengenkripsi satu bit pada setiap kali proses enkripsi.

2.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 memerlukan 8 karakter setiap kali

enkripsi (1 karakter = 8 bit dalam pengkodean ASCII). Cipher blok

(26)

2.2. Rekayasa Perangkat Lunak

Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek produksi

perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem

setelah digunakan (Sommerville. I., 2001).

2.2.1. Proses Rekayasa Perangkat Lunak

Ada empat kegiatan proses dasar yang umum bagi seluruh kegiatan proses perangkat

lunak, yaitu:

1.

Spesifikasi perangkat lunak

. Fungsionalitas perangkat lunak dan batasan

kemampuan operasinya harus didefenisikan.

2.

Pengembangan perangkat lunak

. Perangkat lunak yang memenuhi spesifikasi

tersebut harus diproduksi.

3.

Validasi

perangkat lunak.

Perangkat lunak harus divalidasi untuk menjamin

bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.

4.

Evolusi

perangkat lunak.

Perangkat lunak harus berkembang untuk memenuhi

kebutuhan pelanggan yang berubah-ubah.

2.3. Matematika Kriptografi

Untuk memahami algoritma IDEA, terlebih dahulu perlu dipahami beberapa notasi

matematika dasar, teori dan formula. Hal tersebut dibutuhkan untuk mendukung

semua kalkulasi yang dilakukan dalam algoritma IDEA.

2.3.1. Teorema Euclidean

Jika

0 r < n ; n > 0 ; m > n, maka:

……(1)

(27)

m = nq + r

…….(2)

Dimana: r = sisa (remainder)

q = hasil bagi (quotient)

Contoh:

= 7 sisa 1 , jadi 22 = 3(7) + 1

→ memenuhi teorema

.

2.3.2. PBB (Pembagi Bersama terBesar)

Jika a, b, dan d adalah bilangan bulat bukan 0, serta d|a (dibaca: d habis membagi a

atau a mod d = 0) dan demikian juga dengan d|b, maka:

PBB(a,b) = d

……(3)

Contoh:

PBB (45,36) = 9

Karena memenuhi:

9|45 atau = 5 sisa 0 dan juga 9|36 atau = 4 sisa 0

2.3.3. Algoritma Euclidean

Jika m dan n positif, serta m

≥ n, maka:

1)Jika n = 0

→ PBB (m,n) = m → stop

jika

≠ 0 → maju ke langkah 2).

2) = q sisa r

3)

← n (ganti m dengan nilai n)

n

← r (ganti n dengan nilai r)

kembali ke langkah 1.

Contoh: m = 80 ; n = 12 ; m

≥ n

Solusi: m = qn + r

80 = 6.12 +

8

12 = 1.8 +

4

8 = 2.4 +

0

(28)

2.3.4. Relatif prima

Jika PBB (a,b) = 1 serta a dan b merupakan bilangan bulat, maka: a dan b dikatakan

relatif prima, sehingga dapat dibentuk suatu persamaan:

pa + qb = 1

……(4)

dimana p dan q adalah bilangan bulat.

Contoh:

20 dan 3 relatif prima, sebab PBB (20,3) = 1, sehingga dapat dinyatakan:

2.20 + (-13).3 = 1

Dengan p = 2 dan q = -13

2.3.5. Aritmatika Modulo

Jika a dan b adalah bilangan bulat, serta m > 0 dan 0

≤ r < m , maka:

a mod m = r

……(5)

atau:

a = mq + r

……(6)

dengan m = modulo/modulus.

Contoh:

23 mod 5 = 3 ; atau 23 = 5.4 + 3

2.3.6. Kekongruenan

Jika a dan b adalah bilangan bulat, dan m > 0, serta (a-b) mod m = 0 atau m|(a-b),

maka:

a

≡ b (mod m)

……(7)

dibaca: a kongruen dengan b dalam modulus m

lawannya:

a

≡/ b (mod m)

……(8)

dibaca: a tidak kongruen dengan b dalam modulus m

Contoh:

38 mod 5 = 3 38

13 (mod 5) , atau

(29)

Jadi 38 kongruen dengan 13 dalam modulus 5.

Catatan:

a

≡ b (mod m)

dapat juga ditulis:

a mod m = b

,dan

a = b + km

Dengan b = sisa, k = hasil bagi.

2.3.7. Inversi Modulo

Jika a dan b adalah relatif prima atau PBB (a,b) = 1; serta b > 1, maka

invers perkalian dari a mod b =

dan dapat ditulis:

a.

= 1 mod b

……(9)

dari defenisi relatif prima diketahui bahwa PBB (a,b) = 1 dan menurut persamaan (4)

terdapat bilangan bulat p dan q sedemikian hingga:

pa + qb = 1

yang mengimplikasikan bahwa:

pa + qb = 1 (mod b)

dan karena

qb

≡ 0 (mod b)

maka

pa

≡ 1 (mod b)

kekongruenan yang terakhir ini berarti bahwa p adalah invers perkalian dari a (mod b)

Contoh:

Invers dari 17 mod 7 adalah = …?

Solusi:

PBB (17,7) = 1, maka 17 dan 7 adalah relative prima, sehingga pasti memiliki invers.

17 = 7.2 + 3

→ 3 = 17

– 7.2

7 = 3.2 + 1

→ 1 = 7

- 3.2

3 = 1.3 + 0

1 = 7 – 3.2

= 7 – (17 – 7.2).2

= 7 – 2.17 + 14.7

1 = 15.7 – 2.17

atau

(30)

Sudah memenuhi bentuk: p.a + q.b = 1, dengan p = invers perkalian, jadi kita telah

memperoleh invers perkalian dari 17 mod 7 yaitu: p = -2.

2.4. Algoritma IDEA

Kriptografi IDEA (International Data Encryption Algorithm) diperkenalkan pertama

kali tahun 1991 oleh Xuejia Lai dan James L Massey. Algoritma ini dimaksudkan

sebagai pengganti DES (Data Encryption Standard). IDEA adalah revisi minor cipher

yang lebih awal, yakni PES, dan pada awalnya disebut IPES (Improved PES). IDEA

didesain di bawah kontrak Hasler Foundation (Al Bahr, Brian. 2007).

Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut :

1. Proses enkripsi : e

k

2. Proses dekripsi : d

(M) = C

k

(C) = M

Dimana :

e = adalah fungsi enkripsi

d = adalah fungsi dekripsi

M = adalah pesan terbuka (plainteks)

C = adalah pesan rahasia (cipherteks)

K = adalah kunci enkripsi atau dekripsi

Dalam melakukan enkripsi, algoritma IDEA memakai delapan putaran. Setiap

putarannya digunakan enam kunci. Pesan dekripsi menggunakan blok penyandi yang

sama dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari kunci

enkripsi. Algoritma ini menggunakan operasi campuran dari tiga operasi aljabar yang

berbeda, yaitu XOR, operasi penjumlahan modulo 2

16

dan operasi perkalian modulo

(2

16

+ 1 ) . Semua operasi ini digunakan dalam pengoperasian sub-blok 16-bit. Prinsip

perancangan dari algoritma kriptografi IDEA adalah :

1)Diffusion

(Konfusi)

Konsep ini dilakukan dengan mengusahakan setiap bit plainteks

dan setiap bit kunci

(31)

(

Multiplication - Addition

), blok dasar ini hanya menggunakan dua kunci untuk setiap

putarannya, dan masukannya adalah F1, F2 sama seperti keluarannya G1, G2 yang

[image:31.595.165.495.170.434.2]

dihubungkan oleh penjumlahan mod 2

16

dan perkalian mod 2

16

+1, serta XOR.

Gambar 2.7

Kotak MA (

Multiplication

-

Addition

)

2)Confusion

(Difusi)

Konsep ini dilakukan dengan menggabung tiga prinsip operasi grup aljabar yang

berbeda-beda :

1. XOR (penambahan modulo 2).

2. Penambahan modulo 2

3. Perkalian dengan modulo 2

16

16

+ 1

Algoritma ini melakukan iterasi yang terdiri dari 8 putaran dan 1 transformasi

keluaran pada putaran ke-9, dimana gambaran komputasi dan transformasi keluaran

(32)

2.4.1. Proses Enkripsi IDEA

Pada proses enkripsi algoritma kriptografi simetri IDEA yang ditunjukkan oleh

gambar 2.7, terdapat tiga operasi yang berbeda untuk pasangan subblok 16-bit yang

digunakan, yakni:

1)XOR dari 2 subblok 16-bit; bit per bit.

2)Penjumlahan modulo

2 subblok 16-bit, dimana kedua subblok itu dianggap

sebagai representasi biner dari integer biasa,

3)Perkalian modulo (

+1) 2 subblok 16-bit, dimana kedua subblok 16-bit itu

dianggap sebagai representasi biner dari integer biasa kecuali subblok nol

dianggap mewakili integer 2

16

.

Simbol dari ketiga operasi tersebut yaitu:

1.

= penjumlahan (mod

)

2.

= perkalian (mod

+1)

3.

= XOR

Algoritma sistem kriptografi simetri IDEA yakni:

a)Blok masukan pesan 64-bit mula-mula dibagi menjadi 4 subsub blok 16-bit,

yakni: X1, X2, X3, X4.

b)Keempat subblok 16-bit tadi kemudian ditransformasikan menjadi subblok

16-bit, Y1, Y2, Y3, Y4. Semua proses ini berada di bawah kendali 52

subblok kunci 16-bit yang dibentuk dari blok kunci 128-bit.

c)Keempat subblok 16-bit: X1, X2, X3, X4, digunakan sebagai masukan

putaran pertama dari algoritma IDEA. Dapat dilihat dari gambar bahwa

dalam setiap putaran dilakukan operasi XOR, penjumlahan modulo dan

perkalian modulo.

d)Dari gambar juga terlihat bahwa keluaran dari putaran sebelumnya

merupakan masukan dari putaran berikutnya. Hal ini terus berlangsung

sampai 8 putaran. Pada putaran terakhir (putaran 9) dilakukan

transformasi keluaran yang dikendalikan oleh 4 subblok kunci 16-bit. Sub

(33)
[image:33.595.148.560.84.462.2]

Gambar 2.8

Algoritma kriptografi simetri IDEA

e)Operasi yang dilakukan pada setiap putaran dapat dirangkum sebagai

berikut:

1) Perkalian

dengan

(Z ke-1 round ke-1)

2) Penjumlahan

dengan

(Z ke-2 round ke-1)

3) Pejumlahan

dengan

(Z ke-3 round ke-1)

4) Perkalian

dengan

(Z ke-4 round ke-1)

5) Operasi XOR hasil langkah (1) dan (3)

6) Operasi XOR hasil langkah (2) dan (4)

7) Perkalian hasil langkah (5) dengan

(Z ke-5 round ke-1)

8) Penjumlahan hasil langkah (6) dengan langkah (7)

9) Perkalian hasil langkah (8) dengan

(Z ke-6 round ke-1)

(34)

11) Operasi XOR hasil langkah (1) dan (9)

12) Operasi XOR hasil langkah (3) dan (9)

13) Operasi XOR hasil langkah (2) dan (10)

14) Operasi XOR hasil langkah (4) dan (10)

f)Keluaran dari setiap putaran ((11), (12), (13), (14)) menjadi masukan bagi

operasi selanjutnya. Pada putaran ke-9 dilakukan transformasi keluaran :

1) Perkalian

dengan

(Z ke-1 round ke-9)

2) Penjumlahan

dengan

(Z ke-3 round ke-9)

3) Penjumlahan

dengan

(Z ke-2 round ke-9)

4) Perkalian

dengan

(Z ke-4 round ke-9)

g)Setelah semua selesai, keempat subblok 16-bit yang merupakan keluaran

dari 9 putaran operasi tadi digabung kembali menjadi blok pesan rahasia

64-bit.

2.4.2. Pembentukan Subkunci Enkripsi

Sebanyak 52 subkunci yang masing-masing panjangnya 16-bit untuk proses enkripsi

dibangkitkan dari kunci utama yang panjangnya 128-bit. Kunci utama dimasukkan

oleh pengguna. Pada tiap putaran, digunakan enam buah subkunci sehingga dalam

delapan putaran digunakan 48 buah subkunci. Empat buah subkunci sisanya

digunakan untuk trasformasi akhir. Proses pembangkitan kuncinya (

key-schedule

)

adalah sebagai berikut.

Kunci utama yang panjangnya 128-bit dipartisi tiap 16-bit sehingga dihasilkan

delapan bagian dengan panjang masing-masing bagian 16-bit. Delapan bagian ini

menjadi delapan kunci pertama proses enkripsi. Kemudian blok kunci yang

panjangnya 128-bit dirotasi dari kiri sepanjang 25-bit untuk dipartisi lagi menjadi 8

subblok kunci 16-bit berikutnya. Proses partisi dan rotasi diulangi terus sampai

diperoleh 52 buah subkunci , yang panjang tiap subkuncinya 16-bit. Pada tabel berikut

(35)
[image:35.595.104.532.101.324.2]

Tabel 2.1

Penggunaan Kunci di Tiap Putaran

Round

i = 1

0 – 15

16 – 31

32 – 47

48 – 63

64 – 79

80 – 95

i = 2

96 – 111 112 – 127 25 – 40

41 – 56

57 – 72

73 – 88

i = 3

89 – 104 105 – 120

121 – 8

9 – 24

50 – 65

66 – 81

i = 4

82 – 97

98 – 113

114 – 1

2 – 17

18 – 33

34 – 49

i = 5

75 – 90

91 – 106 107 – 122 123 – 10

11 – 26

27 – 42

i = 6

43 – 58

59 – 74

100 – 115

116 – 3

4 – 19

20 – 35

i = 7

36 – 51

52 – 67

68 – 83

84 – 99

125 – 12

13 – 28

i = 8

29 – 44

45 – 60

61 – 76

77 – 92

93 – 108 109 – 124

i = 9

22 – 37

38 – 53

54 – 69

70 – 85

Pada setiap operasi pada kunci 128-bit, 8 kunci dengan panjang 16-bit diperoleh.

Namun hanya enam kunci yang digunakan pada tiap putaran. Kunci yang tersisa

disimpan untuk putaran berikutnya.

2.4.3. Proses Dekripsi IDEA

Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi tetapi 52

buah subblok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah

subblok kunci enkripsi. Pada kasus ini akan diambil invers dari operasi XOR,

penambahan oleh mod

dan perkalian mod

+1, tergantung pada operasi yang

dibuat pada fase enkripsi. Setiap subkunci dekripsi adalah salah satu dari invers

penambahan atau perkalian yang berkorespondensi dengan subkunci enkripsi. Tabel

subblok kunci enkripsi yang digunakan pada proses enkripsi dapat dilihat pada tabel

2.2. Tabel subblok kunci dekripsi yang diturunkan dari subblok kunci enkripsi dapat

dilihat pada tabel 2.3.

Keterangan tabel:

• Z

-1

merupakan invers perkalian modulo (2

16

+1) dari Z, dimana Z Z

-1

• -Z merupakan invers penjumlahan modulo 2

= 1

16

(36)
[image:36.595.122.512.99.352.2]

Tabel 2.2

Subblok Kunci Enkripsi

Putaran ke-1

Putaran ke-2

Putaran ke-3

Putaran ke-4

Putaran ke-5

Putaran ke-6

Putaran ke-7

Putaran ke-8

Transformasi

Output

Tabel 2.3

Subblok Kunci Dekripsi

Putaran ke-1

Putaran ke-2

Putaran ke-3

Putaran ke-4

Putaran ke-5

Putaran ke-6

Putaran ke-7

Putaran ke-8

Transformasi

Output

2.4.3.1. Invers Penjumlahan Modulo 2

16

atau Modulo 65536

A adalah invers penjumlahan dari B iff (A + B) mod 65536 = 0

[image:36.595.120.514.390.635.2]
(37)

(A+B)

≡ 0 mod 2

16

kongruen dengan

(A+B) mod 2

16

= 0

Dengan A adalah invers penjumlahan B, sehingga:

A = 2

16

– (B mod 2

16

Contoh:

)

Invers penjumlahan 189

Solusi:

A = 2

16

– (B mod 2

16

= 2

)

16

– (189 mod 2

16

= 2

)

16

= 65537 – 189

– 189

= 65347

Jadi, invers penambahan dari 189 adalah

65347

atau (189+65347) mod 2

16

=

0

2.4.3.2. Invers Perkalian

Modulo (2

16

+ 1) = Modulo 65537

1)A adalah invers perkalian dari B iff (A × B) mod 65537 = 1

2)Gunakan algoritma

Extended Euclidean

untuk mencari invers perkalian.

2.4.3.3. Algoritma

Extended Euclidean

Karena (2

16

+ 1) adalah bilangan prima, maka B dan (2

16

+ 1) adalah saling prima

relatif, untuk B

≠ (2

16

+ 1). Sehingga invers perkalian B mod (2

16

AB

1 mod (2

+ 1) adalah bilangan

bulat A sedemikian hingga:

16

kongruen dengan

+ 1)

(38)

Karena (2

16

+ 1) dan B relatif prima, maka PBB (B, 2

16

+ 1) =1, dan menggunakan

algoritma

Extended Euclidean

terdapat:

p.B + q.(2

16

+ 1) = 1

dengan p adalah invers dari B mod (2

16

A.B + q.(2

+ 1) atau p = A, sehingga dapat juga ditulis:

16

Langkah-langkah:

+ 1) = 1

1)Dengan algoritma

Extended Euclidean

diperoleh rangkaian pembagian

2)Ekspresikan 1 sama dengan kombinasi linier dari B dan (2

16

+ 1), sehingga

diperoleh : AB + q.(2

16

3)Maka A adalah invers dari B mod (2

+ 1) = 1

16

Contoh:

+ 1)

Tentukan invers perkalian dari 125 mod (2

16

Solusi:

+ 1) !

1)Dengan algoritma

Extended Euclidean

diperoleh:

65537 = (524)(125) + 37

→ 37 = 65537

– (524)(125)

125 = (3)(37) + 14

→ 14 = 125

– (3)(37)

37 = (2)(14) + 9

→ 9 = 37

– (2)(14)

14 = (1)(9) + 5

→ 5 = 14

– (1)(9)

9 = (1)(5) + 4

→ 4 = 9

– (1)(5)

5 = (1)(4) + 1

→ 1= 5

– (1)(4)

4 =(4)(1) + 0

Semua kombinasi di atas digunakan untuk membentuk:

AB + q.(2

16

Sehingga benar bahwa PBB(125, 2

+ 1) = 1

16

+ 1) = 1

2)1 = 5 – 1.4

= 5 – 1(9 – 1.5)

(39)

= 2.5 – 1.9

= 2 (14 – 1.9) – 1.9

= 2.14 – 2.9 – 1.9

= 2.14 – 3.9

= 2.14 – 3(37 – 2.14)

= 2.14 – 3.37 + 6.14

= 8.14 – 3.37

= 8(125 – 3.37) – 3.37

= 8.125 – 24.37 – 3.37

= 8.125 – 27.37

= 8.125 – 27(65537-524.125)

= 8.125 – 27((2

16

= 8.125 – 27(2

+ 1) – 524.125)

16

= 14156.125 – 27(2

+ 1) + 14148.125

16

Sudah diperoleh bentuk: 1 = AB + q.(2

+ 1)

16

Sehingga diperoleh

14156

adalah invers perkalian dari 125 mod (2

+ 1)

16

Dan (14156)(125)

≡ 1 mod (2

+ 1)

16

+ 1)

2.4.4. Contoh Komputasi Penggunaan Algoritma IDEA

2.4.4.1. Proses enkripsi

Asumsi diberikan 64-bit plainteks X:

X = (X1 ,X2, X3, X4) = (7fa9 1c37 ffb3 df05)

→ dalam hexadesimal

Untuk lebih jelas, lihat tabel 2.1 pada pembahasan pembentukan subkunci enkripsi.

Subkunci-subkunci enkripsi yang berhasil dibentuk dapat dilihat pada tabel 2.4.

Panjang plainteks 64-bit yang dipartisi menjadi empat subblok plainteks

dengan panjang 16-bit per blok dan kunci enkripsi 52 subkunci yang juga terdiri dari

16-bit per blok, dilakukan pada blok satu dengan blok lainnya: operasi XOR,

(40)

terakhir (transformasi) sehingga menghasilkan cipherteks Y 64-bit, yang juga

[image:40.595.105.532.185.597.2]

merupakan gabungan dari empat subblok cipherteks 16-bit: Y1, Y2, Y3, Y4.

Tabel 2.4

Subkunci-subkunci Enkripsi yang Berhasil Dibentuk

Putaran ke-1

5a14

fb3e

021c

79e0

6081

46a0

Putaran ke-2

117b

ff03

7c04

38f3

c0c1

028d

Putaran ke-3

4022

f7fe

06b4

29f6

e781

8205

Putaran ke-4

1a80

45ef

fc0d

6853

ecf8

0871

Putaran ke-5

0a35

008b

dff8

1ad0

a7d9

f010

Putaran ke-6

e3cf

0304

17bf

f035

a14f

b3e0

Putaran ke-7

21c7

9e06

0814

6a01

6b42

9f67

Putaran ke-8

c043

8f3c

0c10

28d

022f

7fe0

Transformasi

Output

cf80

871e

7818

2051

Cipherteks Y merupakan hasil dari output round terakhir (transformasi), yaitu:

Y = (Y1, Y2, Y3, Y4) = (106b dbfd f323 0867).

(41)

Dekrispi dilakukan dengan cara yang sama dengan proses enkripsi, kecuali

pembentukan subkunci-subkuncinya. Input merupakan blok cipherteks 64-bit dan

outputnya merupakan plainteks. Untuk melakukan dekripsi, coba perhatikan kembali

tabel 2.3.

Pada dasarnya, ada empat kunci pertama untuk dekripsi, yaitu:

Z1 =

Z2 =

Z3 =

[image:41.595.173.459.344.625.2]

Z4 =

Tabel 2.5

Hasil

Perhitungan Setiap Subblok 16-bit dalam 9 Round

Subkunci untuk melakukan dekripsi dapat dilihat pada tebel 2.6.

Round

Round output

X1

X2

X3

X4

7fa9

1c37

ffb3

df05

1

c579

f2ff

0fbd

0ffc

2

d7a2

80cb

9a61

27c5

3

ab6c

e2f9

f3be

36bd

4

ef5b

9cd2

6808

3019

5

7e09

2445

d223

d639

6

4a6e

d7ac

ac8c

8b09

7

244d

6f5c

4459

3a9c

8

0f86

7b0b

54df

75f9

9

106b

dbfd

f323

0867

(42)
[image:42.595.79.557.247.761.2]

Tabel 2.6

Subkunci-subkunci Dekripsi yang Berhasil Dibentuk

Putaran

ke-1

=

=

=

=

=

=

9194

78e2

87e8

712a

022f

7fe0

Putaran

ke-2

=

=

=

=

=

=

a24c

f3f0

70c4

3305

6b42

9f67

Putaran

ke-3

=

=

=

=

=

=

c579

f7ec

61fa

bf28

a14f

b3e0

Putaran

ke-4

=

=

=

=

=

=

c53c

e841

fcfc

3703

a7d9

f010

Putaran

ke-5

=

=

=

=

=

=

cc14

2008

ff75

24f6

ecf8

0871

Putaran

ke-6

=

=

=

=

=

=

4396

03f3

ba11

dfa7

e781

8205

Putaran

ke-7

=

=

=

=

=

=

18a7

f94c

0802

9a13

c0c1

028d

(43)

ke-8

55ed

83fc

00fd

2cd9

6081

46a0

Transformasi

Output

=

=

=

=

(44)

Bab 3

ANALISIS DAN PEMODELAN PERANGKAT LUNAK

3.1.Analisis Permasalahan Algoritma IDEA

Tahapan analisis terhadap suatu sistem dilakukan sebelum tahapan perancangan

dilakukan. Tujuan diterapkannya analisis terhadap suatu sistem adalah untuk

mengetahui alasan mengapa sistem tersebut diperlukan, merumuskan

kebutuhan-kebutuhan dari sistem tersebut untuk mereduksi sumber daya yang berlebih serta

membantu merencanakan penjadwalan pembentukan sistem, meminimalisir

penyimpangan yang mungkin terdapat di dalam sistem tersebut sehingga fungsi yang

dalam sistem tersebut bekerja secara optimal.

Salah satu unsur pokok yang harus dipertimbangkan dalam tahapan analisis

sistem ini yaitu masalah perangkat lunak, karena perangkat lunak yang digunakan

haruslah sesuai dengan masalah yang akan diselesaikan. Untuk itu, analisis yang

dilakukan terhadap perangkat lunak algoritma IDEA terbagi ke dalam dua aspek,

yaitu analisis kebutuhan perangkat lunak algoritma IDEA dan analisis fungsi

perangkat lunak algoritma IDEA.

3.2.Analisis Kebutuhan Algoritma IDEA

Faktor yang mendasari dibentuknya perangkat lunak dengan algoritma kriptografi

IDEA adalah keamanan data. Keamanan telah menjadi aspek yang sangat penting dari

suatu sistem informasi. Sebuah informasi umumnya hanya ditujukan bagi segolongan

tertentu. Oleh karena itu sangat penting untuk mencegahnya jatuh kepada pihak-pihak

lain yang tidak berkepentingan. Untuk keperluan tersebut, maka diperlukan teknik

kriptografi dengan metode enkripsi dan dekripsi. Salah satu metode enkripsi dan

(45)

Setiap sistem yang akan dibangun selalu memiliki kebutuhan. Analisis yang

dilakukan terhadap kebutuhan suatu sistem dapat berfungsi untuk mereduksi sumber

daya yang berlebih dari sistem tersebut serta membantu pembentukan penjadwalan

pembentukan sistem (Pressman. R.S., 2002). Analisis yang dilakukan untuk mencari

kebutuhan dari perangkat lunak algoritma IDEA dapat dilakukan dengan cara

menentukan nama dari perangkat lunak yang akan dibangun, mengetahui siapa yang

akan menggunakan perangkat lunak tersebut, memahami konsep teknologi yang akan

dipakai, tampilan antar muka yang akan dipergunakan, teknik apa yang dipergunakan

untuk membentuknya, serta apa yang akan dihasilkan oleh perangkat lunak tersebut.

Berdasarkan analisis yang dilakukan terhadap keperluan perangkat lunak,

maka dapat diambil keputusan bahwa nama dari perangkat lunak yang akan dibangun

adalah

IdeaCrypt

, dimana

Crypt

menunjukkan fungsi dari perangkat lunak dan

Idea

merupakan nama algoritma yang di gunakan. Perangkat lunak yang dibangun

nantinya akan menghasilkan

file

kunci yang berisikan pasangan kunci enkripsi dan

kunci dekripsi yang diperoleh dari proses pembentukan kunci,

file

cipherteks dari

proses enkripsi dan menghasilkan

file

plainteks dari proses dekripsi. Format

file

cipherteks nantinya akan tetap sama dengan file asli tetapi tidak dapat dipahami oleh

pihak yang tidak berhak. Kemudian pengguna dari perangkat lunak ini adalah setiap

individu yang membutuhkan keamanan data, untuk itu maka sistem yang dibangun

harus dapat dipakai oleh setiap orang secara umum. Maka perangkat lunak yang

dibentuk harus memiliki antarmuka yang sederhana dan mudah untuk dipergunakan.

Untuk memenuhi kebutuhan tersebut maka perangkat lunak algoritma IDEA dibangun

pada sistem operasi dengan

platform

Microsoft Windows XP, dan bahasa

pemrograman yang dipergunakan adalah C++.

Untuk memudahkan perancangan perangkat lunak dengan algoritma IDEA

tersebut maka dibutuhkan algoritma dan

flowchart

dari setiap mekanisme yang ada.

Alasan penggunaan algoritma dan

flowchart

adalah karena dengan menggunakan

algoritma dan

flowchart

dapat digambarkan secara jelas alur dari proses, struktur

perulangan, teknik pengambilan keputusan serta mekanisme kalkulasi yang ada pada

sistem. Setelah algoritma dan

flowchart

terbentuk, barulah dilakukan proses

(46)

3.3.Pemodelan Fungsional

Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana

caranya agar sistem yang dibangun memiliki fungsi yang berdaya guna maksimal.

Oleh karena itu, maka fungsi-fungsi yang ada pada sistem tersebut perlu dianalisis.

Pada sistem kriptografi IDEA, secara garis besar terdapat tiga fungsi, yaitu: enkripsi

pesan, dekripsi pesan, dan pembentukan subkunci.

Pemodelan fungsional menggambarkan aspek dari sistem yang berhubungan

dengan transformasi dari nilai, seperti fungsi, pemetaan, batasan, dan ketergantungan

fungsional. Pemodelan fungsional menangkap sesuatu yang dikerjakan oleh sistem

tanpa memperhatikan bagaimana dan kapan hal itu dikerjakan.

3.4.

DFD (Data Flow Diagram) dan Spesifikasi Proses

Pemodelan fungsional digambarkan dengan diagram aliran data (

DFD

).

DFD

merupakan cara yang intuitif untuk menunjukkan bagaimana data diproses oleh sistem

atau bagaimana data mengalir dalam serangkaian pemrosesan. Data ditransformasikan

pada setiap langkah sebelum berlanjut ke tahapan selanjutnya. Langkah-langkah

pemrosesan atau transformasi ini merupakan fungsi program ketika diagram aliran

data digunakan untuk mendokumentasikan desain perangkat lunak.

DFD

merupakan model dari sistem untuk menggambarkan pembagian sistem

ke modul yang lebih kecil. Keuntungan penggunanan

Data Flow Diagram

adalah

memudahkan pemakai yang kurang menguasai bidang komputer untuk mengerti

sistem yang akan dikerjakan atau dikembangkan (Pressman. R.S., 2002). Simbol DFD

yang akan digunakan dalam pembahasan ini adalah simbol yang sering digunakan

oleh Yourdan, De Marco dan lainnya.

Data Flow Diagram

dari perangkat lunak IDEA Kriptosistem yang penulis

(47)

3.4.1. Diagram Konteks

DFD level 0 di bawah menggambarkan sistem secara garis besar yang

memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang.

IDEA Kriptosistem akan menghasilkan keluaran berupa

pesan rahasia

dan

pesan asli

.

User

P.0 Sistem Kriptografi

algoritma IDEA (IdeaCrypt) Plainteks, Cipherteks, Kunci

Psn_Rhs, Psn_Asli, Sub_knci_enk, Sub_knci_dek

Gambar 3.1

Diagram Konteks Sistem

[image:47.595.205.428.190.301.2]

Proses yang terjadi pada diagram konteks atau DFD Level 0 di atas dapat

dijelaskan dengan menggunakan spesifikasi proses pada tabel 3.1.

Tabel 3.1

Spesifikasi Proses Diagram Konteks

Nama

Input

Keterangan

Proses

Output

Proses 0

Plainteks,

Cipherteks, Kunci

Mengamankan data

dengan algoritma

kriptografi simetri

IDEA

Psn_Rhs,

Psn_Asli,

Sub_knci_enk,

Sub_knci_dek

Pengembangan proses yang terjadi pada diagram konteks di atas dapat

dijabarkan menjadi DFD level 1.

3.4.2. DFD Level 1

DFD level 1 pada gambar 3.2 menggambarkan sistem secara garis besar yang

memperlihatkan proses-proses yang dilakukan dalam sistem kriptografi dengan

algoritma IDEA, proses ini dimulai dari proses Pembentukan Kunci

,

yakni

proses

yang dilakukan untuk mendapatkan seluruh subkunci enkripsi dan subkunci dekripsi

(yang totalnya masing-masing 52 subkunci) yang diperoleh dari 8 subkunci yang

(48)

User

P.2 Pemilihan Proses

P.3 Proses Enkripsi

P.4 Proses Dekripsi P.1

Proses Pembentukan Kunci Kunci

Psn_Rhs

Psn_Asli

Order_ perintah

Order_Enk

Order_Dek Plainteks

Cipherteks Sub_knci_enk

Order_knci_enk

Order_knci_dek

Sub_knci_dek Sub_knci_enk

Sub_knci_dek

Gambar 3.2

DFD Level 1

Pada gambar di atas dapat dilihat bahwa terdapat 2 pilihan proses yang dapat

dilakukan pada Kriptosistem ini yaitu :

1. Proses Enkripsi

Proses enkripsi merupakan proses yang dilakukan untuk mengubah pesan asli

menjadi pesan terenkripsi yang tidak dapat dipahami. Untuk memperoleh pesan

terenkripsi tersebut,

user

menggunakan kunci simetri (kunci untuk proses

enkripsi dan dekripsinya sama).

2. Proses Dekripsi

Proses dekripsi merupakan proses untuk mengubah pesan yang telah dienkripsi

menjadi pesan asli (pesan semula). Untuk melakukan proses dekripsi ini,

user

menggunakan kunci yang sama deng

Gambar

Gambar 2.7 Kotak MA (Multiplication - Addition)
Gambar 2.8 Algoritma kriptografi simetri IDEA
Tabel 2.1 Penggunaan Kunci di Tiap Putaran
Tabel 2.3 Subblok Kunci Dekripsi
+7

Referensi

Dokumen terkait

Implementasi metode kriptografi Rijndael pada perangkat lunak yang dibangun adalah dalam bentuk enkripsi dan dekripsi yang dilakukan pada pesan yang terdapat pada perangkat

Perancangan perangkat lunak untuk mengamankan data dengan algoritma kriptografi Einstein telah berhasil direalisasikan untuk tipe-tipe file yang umum digunakan, seperti

Pada perancangan perangkat lunak kriptografi dalam penelitian ini penulis menggunakan algoritma Vigenere Cipher dan Triple DES Cipher dengan cara ke empat yang

Pada penelitian ini dibangun sebuah perangkat lunak permainan puzzle Hitori dengan ukuran 5x5, algoritma genetika diterapkan pada perangkat lunak ini untuk mencari solusi permainan

Analisis kebutuhan perangkat lunak adalah proses pengumpulan kebutuhan yang dilakukan secara intensif untuk menspesifikasikan kebutuhan perangkat lunak agar dapat

Pada perancangan perangkat lunak kriptografi dalam penelitian ini penulis menggunakan algoritma Vigenere Cipher dan Triple DES Cipher dengan cara ke empat yang

Proses pengiriman pesan email dengan aplikasi yang akan dibuat adalah dimana pengirim melakukan enkripsi terhadap pesan email (plaintext) dengan algoritma

Pada penelitian ini dibangun suatu perangkat lunak untuk mencari judul buku dengan meng- gunakan algoritma minimum edit distance. Selanjutnya perangkat lunak ini akan diuji