• Tidak ada hasil yang ditemukan

Pembuatan aplikasi enkripsi mengunakan metode advance encryption standard dan rivest shamir adleman; studi kasus CV Maharata Mandiri Promo

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembuatan aplikasi enkripsi mengunakan metode advance encryption standard dan rivest shamir adleman; studi kasus CV Maharata Mandiri Promo"

Copied!
172
0
0

Teks penuh

(1)

PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN

METODE ADVANCE ENCRYPTION STANDARD

DAN RIVEST SHAMIR ADLEMAN

Studi Kasus CV Maharta Mandiri Promo

ZAENAL MUTTAQIN 2040.9100.2553

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

(2)

PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN METODE ADVANCE ENCRYPTION STANDARD DAN RIVEST SHAMIR ADLEMAN

Studi Kasus CV Maharta Mandiri Promo

Skripsi

Diajukan kepada Fakultas Sains dan Teknologi Untuk memenuhi persyaratan memperoleh

gelar Sarjana Komputer (S.Kom)

Oleh :

ZAENAL MUTTAQIN 2040.9100.2553

Menyetujui, Pembimbing I

Herlino Nanang, MT NIP. 19731209 200501 1 002

Pembimbing II

Zulfiandri, MMSI NIP. 150 368 821

Mengetahui,

Ketua Program Studi Teknik Informatika

Yusuf Durrachman, MIT NIP. 19710522 200604 1 002

(3)

PENGESAHAN UJIAN

Skripsi berjudul “PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN

METODE ADVANCE ENCRYPTION STANDARD DAN RIVEST SHAMIR

ADLEMAN STUDI KASUS CV MAHARTA MANDIRI PROMO” yang ditulis oleh Zaenal Muttaqin, NIM 204091002553 telah diuji dan dinyatakan lulus dalam

sidang Munaqosyah Fakultas Sains dan Teknologi, Universitas Islam Negeri

Syarif Hidayatullah Jakarta pada tanggal 11 Januari 2010. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar sarjana Strata Satu (S1)

Program Studi Teknik Informatika.

Penguji I

Viva Arifin, MMSI NIP. 19730810 200604 2 001

Menyetujui :

Penguji II

Victor Amrizal, M.Kom NIP. 150 411 288

Pembimbing I

Herlino Nanang, MT NIP. 19731209 200501 1 002

Pembimbing II

Zulfiandri, MMSI NIP. 150 368 821

Dekan

Fakultas Sains dan Teknologi

Mengetahui:

Ketua Program Studi Teknik Informatika

DR. Syopiansyah Jaya Putra, M.Sis NIP. 19680117 200112 1 001

Yusuf Durrachman, MIT NIP. 19710522 200604 1 002

(4)

PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-

BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN

SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN.

Jakarta, Januari 2010

Zaenal Muttaqin 2040 9100 2553

(5)

ABSTRAK

ZAENAL MUTTAQIN, Pembuatan Aplikasi Enkripsi Menggunakan Metode Advance Encryption Standard Dan Rivest Shamir Adleman Studi Kasus CV Maharta Mandiri Promo. (di bawah bimbingan Herlino Nanang dan Zulfiandri).

Perkembangan dunia teknologi informasi saat ini telah menjadikan informasi sebagai kebutuhan yang pokok bagi setiap orang terutama bagi sebuah instansi. Salah satu solusi pengamanan informasi yang digunakan adalah teknik pengamanan data menggunakan kriptografi. Kriptografi adalah ilmu untuk menyandikan pesan, sedangkan untuk menjaga agar pesan atau dokumen kita aman dan tidak dapat dibaca oleh pihak yang tidak berhak, digunakan enkripsi. CV Maharta Mandiri Promo sebagai sebuah perusahaan desain grafis dan percetakan memiliki keinginan untuk melindungi data-data penting mereka dari pihak yang tidak berhak. Aplikasi acrypt cs merupakan aplikasi enkripsi yang menggabungkan metode enkripsi simetris dan metode enkripsi asimetris. Pada aplikasi ini metode yang digunakan adalah metode enkripsi simetris Advance Encryption Standard dan asimetris Rivest Shamir Adleman. Aplikasi ini dapat dijadikan sebagai salah satu cara untuk mengamankan data. Pembuatan aplikasi ini menggunakan bahasa pemrograman PHP dan MySQL. Untuk pengembangan aplikasi penulis menggunakan metode Rapid Application Development (RAD). Hasil akhir berupa aplikasi multifile berbasis client server, tanpa ada proses instalasi, dan dapat dilakukan pada mutifile secara bersamaan (multifile dibatasi sebanyak 10 file).

Kata kunci : kriptografi, enkripsi, Advance Encryption Standard, Rivest Shamir Adleman, Enkripsi simetri/asimetri.

xvii halaman + 113 halaman + 4 tabel + 51 gambar + 3 lampiran Daftar Pustaka : 15 (1999-2008)

(6)

KATA PENGANTAR

Assalaamu’alaikum Wr. Wb.

Alhamdulillah, rasa syukur tiada terkira penulis panjatkan kepada Allah Subhanahu Wata’ala. Rahmat dan salam semoga tercurahkan selalu kepada Rasulullah Muhammad SAW beserta keluarga, sahabat, dan pengikut-pengikut beliau (amin). Hanya berkat petunjuk dan pertolongan Allah-lah penulis dapat

menyelesaikan skripsi yang berjudul : Pembuatan Aplikasi Enkripsi

Menggunakan Metode Advance Encryption Standard dan Rivest Shamir Adleman Studi Kasus CV Maharta Mandiri Promo.

Terwujudnya tulisan dalam bentuk skripsi ini, tentunya tidak terlepas dari bantuan dan bimbingan dari berbagai pihak. Rasa terima kasih penulis ucapkan kepada :

1. Bapak DR. Syopiansyah Jaya Putra, M.SIS, selaku Dekan Fakultas Sains

dan Teknologi.

2. Bapak Yusuf Durrachman, selaku Ketua Program Studi Teknik Informatika.

3. Bapak Herlino Nanang, MT, selaku dosen pembimbing I, dan

4. Bapak Zulfriandri, MMSI, selaku dosen pembimbing II, yang telah memberikan bimbingan, waktu, dan perhatiannya dalam penyusunan skripsi ini.

(7)

5. Seluruh Dosen dan staf karyawan Program Studi Teknik Informatika,

Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah

Jakarta yang telah mengajar atau membantu penulis selama kuliah.

Dalam penyusunan skripsi ini, penulis juga tidak luput dari berbagai

masalah dan menyadari sepenuhnya bahwa penulisan ini masih jauh dari sempurna dan tidak lepas dari kesalahan dan kekurangan, oleh karena itu dengan

senang hati penulis akan menerima semua saran dan kritik maupun ide-ide yang

membangun dari rekan-rekan pembaca. Akhir kata semoga Allah membalas kebaikan mereka yang telah membimbing penulis dalam membuat skripsi ini.

Semoga skripsi ini berguna bagi penulis dan pada pembaca umumnya.

Wassalaamu’alaikum Wr. Wb.

Jakarta, Januari 2010 Penulis

Zaenal Muttaqin NIM. 2040 9100 2553

(8)

Sebuah tulisan sederhana ini kupersembahkan

untuk:

“Emak dan Babe…

kesabaran dan kerja keras telah kalian

lakukan demi membesarkan ananda.. ananda tahu.. seberapa besarpun

hal yang dapat ananda berikan untuk emak dan babe, belumlah cukup

untuk membalas semua perjuangan emak dan babe..

Setiap peluh yang menetes di dahimu.. setiap langkah kakimu.. setiap

perjuanganmu untuk membuat ananda berdiri tegak sampai sekarang..

akan ananda ingat semua itu sampai akhir hayat ananda..

Ya Allah.. berikanlah hamba kesempatan untuk membahagiakan emak

dan babe..”

(9)

!

!

"

#

$

%

&

#

$

%

!

! $

'

!

()

*

#

*

+,-. /

0112

$

.3 .

0112

!

* '

(10)

DAFTAR ISI

PENGESAHAN UJIAN ... iv

PERNYATAAN... v

ABSTRAK ... vi

KATA PENGANTAR ... vii

DAFTAR ISI ... xi

DAFTAR GAMBAR ... xv

DAFTAR TABEL ... xviii

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 2

1.3. Batasan Masalah... 3

1.4. Tujuan Penelitian ... 4

1.5. Manfaat Penelitian ... 4

1.6. Metodologi Penelitian ... 5

1.6.1. Metodologi Pengumpulan Data ... 5

1.6.2. Metodologi Pengembangan Sistem... 6

1.7. Sistematika Penulisan... 6

BAB II LANDASAN TEORI ... 8

2.1. Keamanan Data ... 8

2.2. Aplikasi ... 8

2.3. Enkripsi dan Dekripsi... 9

2.4. Kriptografi ... 11

2.4.1. Definisi dan Terminologi ... 11

2.4.2. Tujuan Kriptografi ... 14

2.4.3. Sejarah Kriptografi... 15

2.5. Algoritma Kriptografi Klasik ... 17

2.5.1. Cipher Substitusi ... 17

2.5.2. Cipher Transposisi ... 20

(11)

2.6. Algoritma Kriptografi Modern... 20

2.6.1. Algoritma Simetris ... 20

2.6.2. Algoritma Asimetris... 21

2.6.3. Algoritma Hibrida ... 21

2.7. Advance Encryption Standard... 22

2.7.1. Panjang Kunci dan Ukuran Blok Rijndael ... 23

2.7.2. Algoritma Rijndael... 25

2.7.3. Transformasi SubBytes() ... 28

2.7.4. Transformasi ShiftRows()... 30

2.7.5. Transformasi MixColumns() ... 30

2.7.6. Transformasi AddRoundKey()... 32

2.7.7. Ekspansi Kunci ... 32

2.8. Kriptografi Kunci Publik... 32

2.8.1. Sejarah Kriptografi Kunci Publik ... 32

2.8.2. Konsep Kriptografi Kunci Publik ... 33

2.8.3. Aplikasi Kriptografi Kunci Publik ... 37

2.9. RSA (Rivest Shamir Adleman) ... 38

2.9.1. Perumusan Algoritma Rivest Shamir Adleman ... 39

2.9.2. Algoritma Membangkitkan Pasangan Kunci ... 41

2.9.3. Algoritma Enkripsi/Dekripsi... 42

2.9.4. Keamanan Rivest Shamir Adleman ... 42

2.9.5. Kecepatan ... 44

2.10. PHP ... 45

2.10.1. Pengertian PHP ... 45

2.10.2. Kelebihan-kelebihan PHP ... 45

2.10.3. Sintaks PHP... 46

2.11. MySQL... 46

BAB III METODOLOGI PENELITIAN ... 48

3.1. Metode Pengumpulan Data ... 48

3.1.1. Metode Observasi ... 48

3.1.2. Metode Wawancara... 49

(12)

3.1.3. Metode Studi Pustaka... 49

3.1.4. Metode Studi Literatur ... 49

3.2. Metode Pengembangan Sistem ... 50

3.2.1. Fase Perencanaan Syarat-Syarat ... 50

3.2.2. Fase Perancangan ... 53

3.2.3. Fase Konstruksi... 55

3.2.4. Fase Pelaksanaan... 55

BAB IV PEMBAHASAN DAN IMPLEMENTASI ... 57

4.1. Gambaran Umum CV Maharta Mandiri Promo... 57

4.1.1. Sekilas CV Maharta Mandiri Promo... 57

4.1.2. Visi dan Misi CV Maharta Mandiri Promo ... 58

4.1.3. Struktur Organisasi CV Maharta Mandiri Promo ... 58

4.2. Hasil Observasi ... 59

4.3. Aplikasi Acrypt cs ... 59

4.4. Fase Perencanaan Syarat-syarat ... 60

4.4.1. Analisis Kebutuhan Masalah ... 60

4.4.2. Tujuan ... 60

4.4.3. Syarat-syarat... 61

4.5. Fase Perancangan (Workshop Design) ... 61

4.5.1. Perancangan Proses... 62

4.5.2. Perancangan Flowchart... 64

4.5.3. Perancangan Basis Data ... 76

4.5.4. Perancangan Antarmuka ... 80

4.5.5. State Transition Diagram ... 100

4.6. Fase Konstruksi ... 106

4.7. Fase Pelaksanaan (Implementasi) ... 107

4.7.1. Konfigurasi Client Server ... 108

4.7.2. Proses Enkripsi dan Dekripsi Multifile ... 108

4.7.3. Pengujian Aplikasi Acrypt cs... 109

(13)

BAB V PENUTUP ... 112

5.1. Kesimpulan ... 112

5.2. Saran... 113

DAFTAR PUSTAKA ... 114

LAMPIRAN A HASIL WAWANCARA ... 116

LAMPIRAN B TAMPILAN APLIKASI ACRYPT CS... 118

LAMPIRAN C KODE SUMBER APLIKASI ACRYPT CS... 131

(14)

DAFTAR GAMBAR

Gambar 2.1. Enkripsi Secara Umum...11

Gambar 2.2. Sebuah scytale, pesan yang ditulis secara horizontal, baris perbaris ...16

Gambar 2.3. Mesin enkripsi Enigma yang digunakan oleh tentara Jerman pada masa Perang Dunia ke II ...17

Gambar 2.4. Caesar Wheel...19

Gambar 2.5. Diagram Proses Enkripsi ...27

Gambar 2.6. Transformasi SubBytes ...31

Gambar 2.7. Transformasi ShiftRows...31

Gambar 2.8. Transformasi MixColumns ...32

Gambar 2.9. Transformasi AddRoundKey ...33

Gambar 2.10. Skema kriptografi nirsimetri ...35

Gambar 3.1. Proses enkripsi dan dekripsi ...54

Gambar 3.2. Ilustrasi metodologi penelitian pengembangan aplikasi kriptografi berbasis client server (acrypt cs)...56

Gambar 4.1. Organisasi CV Maharta Mandiri Promo ...59

Gambar 4.2. Diagram konteks sistem yang diusulkan ...62

Gambar 4.3. Diagram zero sistem yang diusulkan ...62

Gambar 4.4. Diagram level satu proses 1.0 (login)...63

Gambar 4.5. Diagram level satu proses 2.0 (enkripsi) ...63

Gambar 4.6. Diagram level satu proses 3.0 (dekripsi) ...63

Gambar 4.7. Flowchart proses enkripsi ...65

Gambar 4.8. Flowchart proses enkripsi dengan metode RSA ...67

(15)

Gambar 4.9. Flowchart proses enkripsi dengan metode RSA ...69

Gambar 4.10. Flowchart proses dekripsi ...71

Gambar 4.11. Flowchart proses dekripsi dengan metode RSA ...73

Gambar 4.12. Flowchart proses dekripsi dengan metode RSA ...75

Gambar 4.13. Struktur Entity Relationship Diagram...76

Gambar 4.14. Logical Record Structure (LRS) ...78

Gambar 4.15. Rancangan halaman login ...81

Gambar 4.16. Rancangan halaman sign up ...82

Gambar 4.17. Rancangan halaman utama ...83

Gambar 4.18. Rancangan halaman input file enkripsi ...84

Gambar 4.19. Rancangan halaman input file enkripsi ...85

Gambar 4.20. Rancangan halaman cek file...86

Gambar 4.21. Rancangan halaman input password ...87

Gambar 4.22. Rancangan halaman pilih tujuan ...88

Gambar 4.23. Rancangan halaman encryption complete ...89

Gambar 4.24. Rancangan halaman pilih file ...90

Gambar 4.25. Rancangan halaman cek file...91

Gambar 4.26. Rancangan halaman input private key ...92

Gambar 4.27. Rancangan halaman decryption complete ...93

Gambar 4.28. Rancangan halaman inbox ...94

Gambar 4.29. Rancangan halaman outbox ...95

Gambar 4.30. Rancangan halaman my key (security question) ...96

Gambar 4.31. Rancangan halaman my key (private key) ...96

Gambar 4.32. Rancangan halaman generate key ...97

(16)

Gambar 4.33. Rancangan halaman change password ...98

Gambar 4.34. Rancangan halaman help...99

Gambar 4.35. Rancangan halaman about...100

Gambar 4.36. State Transition Diagram Aplikasi Acrypt CS ...101

Gambar 4.37. Informasi file sebelum dienkripsi...109

Gambar 4.38. Informasi file sesudah dienkripsi ...110

Gambar 4.39. Informasi file sesudah didekripsi ...111

(17)

DAFTAR TABEL

Tabel 2.1. Tiga buah Versi AES ...24

Tabel 2.2. S-Box ...29

Tabel 4.1. Tabel ukuran dan waktu enkripsi ...110

Tabel 4.2. Tabel ukuran dan waktu dekripsi ...111

(18)

BAB I PENDAHULUAN

1.1. Latar Belakang

Pesatnya perkembangan teknologi informasi telah menjadikan

informasi sebagai kebutuhan pokok bagi setiap orang. Informasi juga merupakan hal yang vital bagi sebuah perusahaan, karena informasi

dapat membantu suatu perusahaan untuk terus berkembang dalam

persaingan global.

Masalah yang terjadi pada proses pengiriman ataupun mendapatkan informasi adalah apabila informasi itu bersifat rahasia. Bila informasi

tersebut tersebar luas karena adanya penyadapan, pencurian, dan

pemalsuan informasi, akan menyebabkan kerugian bagi pemilik informasi. Salah satu cara untuk mengamankan data atau informasi dari

tindak kejahatan tersebut adalah menggunakan konsep kriptografi.

CV Maharta Mandiri Promo sebagai sebuah perusahaan desain grafis dan percetakan, memiliki jaringan komputer untuk memperlancar

arus informasi di dalam perusahaan. Jaringan komputer tersebut memiliki

sebuah server dengan kurang lebih dua puluh client. Semua informasi di

perusahaan ini di-share lewat jaringan komputer tersebut. Namun ternyata kemudahan tersebut tidak memiliki pengamanan yang baik. Di

perusahaan ini pernah terjadi pencurian informasi yang menyebabkan

(19)

sistem keamanan yang kuat untuk mengamankan data penting mereka,

seperti data proyek, desain grafis, dan data internal perusahaan lainnya. Pada penelitian yang telah dilakukan (Muliati, 2009), dibuat

aplikasi enkripsi menggunakan metode Blowfish dan Rivest Shamir

Adleman yang dapat mengenkripsi maksimum lima file sekaligus. Oleh karena itu, beberapa kelebihan akan ditambahkan pada aplikasi yang

akan dibuat diantaranya dapat mengenkripsi sepuluh file sekaligus.

Untuk itu peneliti berupaya mewujudkan implementasi keamanan data dengan menggunakan metode enkripsi Advance Encryption

Standard dan Rivest Shamir Adleman ke dalam suatu aplikasi yang

mudah digunakan, dalam skripsi yang berjudul PEMBUATAN

APLIKASI ENKRIPSI MENGGUNAKAN METODE ADVANCE ENCRYPTION STANDARD DAN RIVEST SHAMIR ADLEMAN STUDI KASUS CV MAHARTA MANDIRI PROMO.

1.2. Rumusan Masalah

Berdasarkan latar belakang, masalah pokok yang akan dibahas

penulis adalah membuat aplikasi enkripsi yang mudah digunakan dan

menjamin kerahasiaan data dengan menggunakan metode Advance

Encryption Standard dan Rivest Shamir Adleman.

(20)

1.3. Batasan Masalah

Untuk menghindari meluasnya materi pembahasan tugas akhir ini,

maka permasalahan dibatasi hanya mencakup hal-hal berikut :

1. Penelitian dibatasi dengan menggunakan metode enkripsi Advance Encryption Standard dan Rivest Shamir Adleman.

2. Pada aplikasi ini proses enkripsi/dekripsi dan pengiriman data

dapat dilakukan pada multifile. Jumlah file dibatasi sebanyak 10

file dengan maksimum ukuran file 1 GB pada sekali proses enkripsi atau dekripsi untuk kunci yang sama, untuk menghindari proses

enkripsi yang terlalu lama.

3. Aplikasi hanya mengenkripsi file tunggal (bukan folder) karena enkripsi folder akan menyebabkan satu serangan terhadapnya akan

berakibat pada semua file yang ada di folder tersebut.

4. Aplikasi dititikberatkan pada proses pengamanan data dengan pencegahan pembacaan file oleh pihak-pihak yang tidak berhak. 5. Hasil akhir file enkripsi akan menghasilkan file terenkripsi (*.znc),

dan password terenkripsi akan disimpan di database.

6. Aplikasi dibuat menggunakan bahasa pemrograman PHP dan

menggunakan database MySQL, serta dijalankan dengan

menggunakan Web Server Apache.

(21)

1.4. Tujuan Penelitian

1. Dapat mengimplementasikan dua buah metode enkripsi pada

aplikasi pengamanan data berbasis client server yang mudah digunakan.

2. Dapat mengamankan data-data penting pada CV Maharta Mandiri Promo.

1.5. Manfaat Penelitian

Manfaat yang didapat dalam menulis skripsi ini adalah :

1. Bagi Penulis

a. Menerapkan ilmu kriptografi khususnya enkripsi dengan

menggabungkan metode enkripsi simetris (Advance

Encryption Standard) dan metode enkripsi asimetris (Rivest

Shamir Adleman).

b. Membangun aplikasi enkripsi berbasis client server yang dapat membantu menjaga data-data penting.

2. Bagi Pengguna

a. Memiliki sarana untuk lebih meningkatkan keamanan data

yang dianggap rahasia.

b. Memudahkan pengamanan data karena menggunakan kunci

publik. Sehingga tidak memerlukan pertukaran kunci privat.

3. Bagi Universitas

Memberikan sumbangan ilmiah bagi perkembangan teknologi keamanan data.

(22)

1.6. Metodologi Penelitian

Pada penulisan tugas akhir ini, diperlukan data-data yang lengkap

sebagai bahan pendukung kebenaran materi uraian dan pembahasan. Oleh karena itu diperlukan metodologi pengumpulan data dan metode

membangun sistem.

1.6.1. Metodologi Pengumpulan Data

1. Observasi

Pengamatan dilakukan secara langsung pada

komputer dan jaringannya di CV Maharta Mandiri Promo.

2. Wawancara

Wawancara adalah proses memperoleh keterangan

untuk tujuan penelitian dengan cara tanya-jawab sambil bertatap muka antara pewawancara dengan narasumber.

3. Studi Pustaka

Membaca dan mempelajari referensi yang ada

sebagai pelengkap serta mencari referensi tambahan dari internet.

4. Studi Literatur

Metode studi literatur digunakan dengan melihat penelitian yang sudah ada. Melalui studi literatur, peneliti

dapat terhindar dari melakukan penelitian yang sudah

pernah dilakukan, dan pengulangan kesalahan-kesalahan

(23)

1.6.2. Metodologi Pengembangan Sistem

Metodologi pengembangan sistem yang digunakan dalam

penelitian ini adalah metode pengembangan model RAD (Rapid

Application Development), model ini dibuat oleh James Martin

untuk membuat sistem yang cepat tanpa harus mengorbankan

kualitas. Dan melingkupi fase-fase sebagai berikut (Kendall &

Kendall, 2003 : 237) :

1) Fase Perencanaan Syarat-Syarat

Pada tahap ini dilakukan penentuan tujuan dan syarat-

syarat informasi. 2) Fase Perancangan

Pada tahap ini dilakukan perancangan proses yaitu proses- proses yang akan terjadi di dalam sistem, yang terdiri dari

perancangan proses dan perancangan antarmuka pemakai

(user interface).

3) Fase Konstruksi

Pada fase ini dilakukan tahap pengkodean terhadap rancangan-rancangan yang telah didefinisikan.

4) Fase Pelaksanaan

Pada fase ini dilakukan pengujian terhadap sistem dan

melakukan pengenalan sistem kepada pengguna.

1.7. Sistematika Penulisan

Dalam penulisan skripsi ini dibagi menjadi beberapa bab, yaitu :

(24)

BAB I PENDAHULUAN

Bab ini terdiri dari latar belakang, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi penelitian, dan

sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini berisi uraian tentang landasan teori yang diperlukan

dalam pembuatan aplikasi enkripsi.

BAB III METODOLOGI PENELITIAN

Bab ini menguraikan secara rinci metodologi yang digunakan

dalam pembuatan sistem aplikasi.

BAB IV PEMBAHASAN DAN IMPLEMENTASI

Bab ini menguraikan tentang gambaran umum objek penelitian

yaitu CV Maharta Mandiri Promo serta pengembangan sistem

aplikasi enkripsi yang dibuat.

BAB V PENUTUP

Bab ini berisi kesimpulan akhir dan saran-saran untuk

membangun sistem enkripsi lebih lanjut.

(25)

BAB II LANDASAN TEORI

2.1. Keamanan Data

Keamanan dan kerahasiaan data merupakan sesuatu yang sangat penting dalam era informasi ini dan telah menjadi kebutuhan dasar

karena perkomputeran secara global telah menjadi tidak aman. Informasi

akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau dibajak oleh orang yang tidak berhak. Bahkan mungkin beberapa

pengguna dari sistem itu sendiri, mengubah data yang dimiliki menjadi

sesuatu yang tidak kita inginkan.

Keamanan data pada komputer tidak hanya tergantung pada teknologi saja, tetapi dari aspek prosedur dan kebijakan keamanan yang

diterapkan serta kedisiplinan sumber daya manusia. Jika firewall dan perangkat keamanan lainnya bisa dibobol oleh orang yang tidak berhak,

maka peran utama kriptografi untuk mengamankan data atau dokumen

dengan menggunakan teknik enkripsi sehingga data atau dokumen tidak

bisa dibaca (Ariyus, 2006 : 3).

2.2. Aplikasi

Perangkat lunak (aplikasi) adalah program yang ditulis oleh

pemrogram komputer untuk memecahkan suatu masalah tertentu dengan

menggunakan bahasa pemrograman (Hartono, 1999 : 360).

(26)

2.3. Enkripsi dan Dekripsi

Enkripsi adalah sebuah proses yang melakukan perubahan sebuah

kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (Wahana Komputer, 2003 : 17). Enkripsi dapat diartikan

sebagai kode atau cipher. Sebuah sistem pengkodean menggunakan suatu

table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi yang dikirim. Sebuah cipher menggunakan suatu algoritma

yang dapat mengkodekan semua aliran data (stream) bit dari sebuah

pesan menjadi cryptogram yang tidak dimengerti (unnitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk diautomasi,

maka teknik ini digunakan dalam sistem keamanan komputer dan

jaringan.

Enkripsi dimaksudkan untuk melindungi informasi agar tidak

terlihat oleh orang atau pihak yang tidak berhak. Informasi ini dapat berupa nomor kartu kredit, catatan penting dalam komputer, maupun

password untuk mengakses sesuatu.

Sepanjang sejarah pembentukan kode dan pemecahannya selalu

mendapat perhatian khusus dalam operasi militer. Penggunaan komputer untuk pertama kalinya dalam kriptografi merupakan usaha untuk

memecahkan kode enigma Nazi sewaktu Perang Dunia II. Kini, pada

zaman modern, adanya komputer memungkinkan kita menghasilkan kode yang kompleks, dan sebaliknya pula dapat digunakan untuk

(27)

E-commerce adalah industri lain yang sangat intensif

memanfaatkan kriptografi. Dengan meng-enkrip paket data yang lalu

lalang di internet, walaupun seseorang dapat menangkap paket-paket data tersebut, tetap saja ia tidak dapat memahami artinya.

Enkripsi juga digunakan untuk verifikasi. Bila anda men-download software, bagaimana anda tahu bahwa software yang anda download adalah yang asli, bukan yang telah dipasangkan trojan di dalamnya.

Dalam hal ini terdapat tiga kategori enkripsi, yaitu (Wahana Komputer, 2003 : 18) :

1. Kunci enkripsi rahasia. Dalam hal ini, terdapat sebuah kunci yang

digunakan untuk mengenkripsi dan juga sekaligus mendekripsi informasi.

2. Kunci enkripsi publik. Dalam hal ini, dua kunci digunakan. Satu

untuk proses enkripsi dan yang lain untuk proses dekripsi.

3. Fungsi one-way, atau fungsi satu arah adalah sustu fungsi dimana

informasi dienkripsi untuk menciptakan “signature” dari informasi asli yang bisa digunakan untuk keperluan autentikasi.

Enkripsi dibentuk berdasarkan suatu algoritma yang akan

mengacak suatu informasi menjadi bentuk yang tidak bisa dibaca atau tak

bisa dilihat. Dekripsi adalah proses dengan algoritma yang sama untuk mengembalikan informasi teracak menjadi bentuk aslinya. Algoritma

yang digunakan harus terdiri dari susunan prosedur yang direncanakan secara hati-hati yang harus secara efektif menghasilkan sebuah bentuk

ter-enkripsi yang tidak bisa dikembalikan oleh seseorang, bahkan

(28)

sekalipun mereka memiliki algoritma yang sama. Gambar 2.1 menunjukkan proses enkripsi secara umum.

kunci

Teks

terang Enkripsi

Teks tersandi

Gambar 2.1. Enkripsi secara umum (sumber : http://id.wikipedia.org/wiki/enkripsi)

2.4. Kriptografi

2.4.1. Definisi dan Terminologi

Kriptografi (cryptography) berasal dari bahasa Yunani :

“cryptos” artinya “secret”(rahasia), sedangkan “graphein”

artinya “writing” (tulisan). Jadi, kriptografi berarti “secret

writing” (tulisan rahasia). Dalam buku-buku 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. Namun saat ini kriptografi lebih dari sekedar

privacy, tetapi juga untuk tujuan data integrity, authentication, dan non-repudiation (Munir, 2006 : 2).

Beberapa istilah yang penting dalam kriptografi yang

(29)

1. Pesan, Plainteks, dan Cipherteks

Pesan (message) adalah data atau informasi yang dapat

dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks (plaintext) atau teks-jelas (cleartext).

Pesan yang disandikan ke bentuk lain disebut cipherteks (ciphertext) atau kriptogram (cryptogram).

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.

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

4. Cipher dan Kunci

Algoritma kriptografi disebut juga cipher yaitu aturan

untuk enciphering dan deciphering, atau fungsi

matematika yang digunakan untuk enkripsi dan dekripsi.

(30)

Beberapa cipher memerlukan algoritma yang berbeda

untuk enciphering dan deciphering. Kunci (key) adalah parameter yang digunakan untuk transformasi enchipering dan dechipering. Kunci biasanya berupa string atau

deretan bilangan.

5. Sistem Kriptografi

Kriptografi membentuk sebuah sistem yang dinamakan

sistem kriptografi. Sistem kriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi,

semua plainteks dan cipherteks yang mungkin, dan kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu

komponen saja.

6. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisikan.

7. Kriptanalisis dan Kriptologi

Kriptografi berkembang sedemikian rupa sehingga

melahirkan bidang yang berlawanan yaitu kriptanalisis.

Kriptanalisis (cryptanalisys) adalah ilmu dan seni untuk

memecahkan cipherteks menjadi plainteks tanpa

mengetahui kunci yang digunakan. Pelakunya disebut

(31)

2.4.2. Tujuan Kriptografi

Kriptografi bertujuan untuk memberi layanan keamanan

sebagai berikut (Munir, 2006 : 9):

1. Kerahasiaan (confidentiality)

Adalah layanan yang ditujukan untuk menjaga agar pesan

tidak dapat dibaca oleh pihak-pihak yang tidak berhak.

2. Integritas data (data integrity)

Adalah layanan yang menjamin bahwa pesan masih

asli/utuh atau belum pernah dimanipulasi selama pengiriman.

3. Otentikasi (authentication)

Adalah layanan yang berhubungan dengan identifikasi,

baik mengidentifikasi kebenaran pihak-pihak yang

berkomunikasi (user authentication atau entity

authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication).

4. Nirpenyangkalan (non-repudiation)

Adalah layanan untuk mencegah entitas yang

berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima

pesan menyangkal telah menerima pesan.

(32)

2.4.3. Sejarah Kriptografi

Sejarah kriptografi sebagian besar merupakan sejarah

kriptografi klasik, yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik

sederhana.

Sejarah kriptografi klasik mencatat penggunaan cipher

transposisi oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan alat yang namanya scytale

(Gambar 2.1). Sedangkan algoritma substitusi paling awal dan

paling sederhana adalah caesar cipher, yang digunakan oleh raja

Yunani kuno, Julius Caesar. Caranya adalah dengan mengganti setiap karakter di dalam alfabet dengan karakter yang terletak

pada tiga posisi berikutnya di dalam susunan alphabet (Munir, 2006 : 10).

Gambar 2.2. Sebuah scytale, pesan yang ditulis secara horizontal, baris perbaris.

(Sumber : http://global.mitsubishielectric.com).

[image:32.612.113.507.150.549.2]
(33)

kriptografi untuk menjaga tulisan relijius dari gangguan otoritas

politik atau budaya yang dominan saat itu.

Pada abad ke-17, sejarah kriptografi mencatat korban

ketika ratu Scotlandia, Queen Mary, dipancung setelah surat

rahasianya dari balik penjara (surat terenkripsi yang isinya rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh

seorang pemecah kode.

Seperti yang telah disebutkan di atas bahwa kriptografi umum digunakan di kalangan militer. Pada Perang Dunia ke II,

Pemerintah Nazi Jerman membuat mesin enkripsi yang

dinamakan enigma (Gambar 2.2). Mesin yang menggunakan

[image:33.612.114.503.148.580.2]

beberapa buah rotor (roda berputar) ini melakukan enkripsi dengan cara yang sangat rumit (Munir, 2006 : 11).

Gambar 2.3. Mesin enkripsi Enigma yang digunakan oleh tentara Jerman pada masa Perang Dunia ke II. (Sumber : http://www.technology.niagarac.on.ca).

Kriptografi modern dipicu oleh perkembangan peralatan

komputer digital. Dengan komputer digital, cipher yang

(34)

kompleks menjadi sangat mungkin untuk dapat dihasilkan.

Tidak seperti kriptografi klasik yang mengenkripsi karakter per

karakter, kriptografi modern beroperasi pada string biner. Cipher yang kompleks seperti DES (Data Encryption Standard)

dan penemuan algoritma RSA adalah algoritma kriptografi modern yang paling dikenal di dalam sejarah kriptografi

modern. Kriptografi modern tidak hanya berkaitan dengan

teknik menjaga kerahasiaan pesan, tetapi juga melahirkan konsep seperti tandatangan digital dan sertifikat digital. Dengan

kata lain, kriptografi modern tidak hanya memberikan aspek

keamanan confidentiality, tetapi juga aspek keamanan lain

seperti otentikasi, integritas data, dan nirpenyangkalan (Munir, 2006 : 12).

2.5. Algoritma Kriptografi Klasik

Rinaldi Munir. Pada dasarnya, algoritma kriptografi klasik dapat

dikelompokkan ke dalam dua macam cipher (Munir, 2006 : 55):

2.5.1. Cipher Substitusi

Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Satu “unit” di sini bisa berarti satu

huruf, pasangan huruf, atau kelompok lebih dari dua huruf.

Chiper substitusi dapat dikelompokkan ke dalam empat jenis

(35)

1. Cipher Alfabet Tunggal (Monoalphabetic cipher), satu

huruf di plainteks diganti dengan tepat satu huruf

cipherteks.

2. Cipher Alphabetic Majemuk (Polyalphabetic chiper),

merupakan cipher substitusi ganda.

3. Cipher Substitusi Homofonik (homophonic substitution

cipher), seperti cipher alfabet tunggal tetapi setiap huruf dalam plainteks dapat dipetakan ke dalam salah satu dari unit cipherteks yang mungkin.

4. Cipher Substitusi Poligram (Polygram substitution

cipher), setiap kelompok huruf disubstitusi dengan kelompok huruf cipherteks.

Algoritma substitusi tertua yang diketahui adalah caesar

cipher yang digunakan oleh kaisar Romawi, Julius Caesar, untuk

menyandikan pesan yang ia kirim kepada para gubernurnya. Gambar 2.3 memperlihatkan caesar wheel terdiri dari dua

buah lempeng lingkaran besi. Lingkaran besi paling luar

[image:35.612.111.511.72.526.2]

menyatakan huruf-huruf plainteks sedangkan lingkaran besi terdalam menyatakan huruf-huruf cipherteks.

Gambar 2.4. Caesar Wheel (Sumber : http://mail.colonial.net)

(36)

2.5.2. Cipher Transposisi

Pada cipher transposisi, huruf-huruf di dalam plainteks

tetap sama, hanya saja urutannya diubah. Dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter

di dalam teks. Nama lain untuk metode ini adalah permutasi atau pengacakan (scrambling) karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karakter tersebut. Kriptografi dengan alat scytale yang digunakan oleh

tentara Sparta pada zaman Yunani termasuk ke dalam cipher

transposisi.

Misalkan sebuah plainteks :

DEPARTEMEN TEKNIK INFORMATIKA ITB

Untuk meng-enkripsi pesan, plainteks ditulis secara horizontal dengan lebar kolom tetap, misal selebar 6 karakter

(kunci k = 6) :

DEPART EMENTE KNIKIN FORMAT IKAITB

Maka cipherteksnya dibaca secara vertikal menjadi DEKFIEMNOKPEIRAANKMIRTIATTENTB

Atau dapat juga ditulis dalam kelompok-kelompok yang

terdiri dari 4 huruf :

DEKF IEMN OKPE IRAA NKMI RTIA TTEN TB

Untuk mendekripsi pesan, kita membagi panjang

(37)

dengan 6 untuk mendapatkan 5 (jika cipherteks ditulis dalam

kelompok-kelompok huruf, buang semua spasi yang ada

sehingga menjadi string yang panjang). Algoritma dekripsi identik dengan algoritma enkripsi. Jadi, kita tulis cipherteks

dalam baris-baris selebar 5 karakter menjadi :

DEKFI

EMNOK

PEIRA

ANKMI

RTIAT

TENTB

Dengan membaca setiap kolom kita memperoleh pesan semula :

DEPARTEMEN TEKNIK INFORMATIKA ITB

2.6. Algoritma Kriptografi Modern

Kriptografi modern mempunyai kerumitan yang sangat kompleks

karena dioperasikan menggunakan komputer (Ariyus, 2008: 46). Kriptografi modern merupakan suatu perbaikan yang mengacu pada

kriptografi klasik. Algoritma kriptografi modern terdiri dari dua bagian (Ariyus, 2008: 108) :

2.6.1. Algoritma Simetris

Algoritma simetris adalah algoritma yang menggunakan

kunci yang sama untuk enkripsi dan dekripsinya. Keamanan

algoritma simetris tergantung pada kuncinya. Algoritma simetris sering juga disebut algoritma kunci rahasia, algoritma kunci

tunggal atau algoritma satu kunci. Dua kategori yang termasuk

(38)

pada algoritma simetris ini adalah algoritma block cipher dan

stream cipher.

Aplikasi dari algoritma simetris diantaranya adalah: 1. Data Encryption Standard (DES).

2. Advanced Encryption Standard (AES).

3. International Data Encryption Algorithm (IDEA).

4. A5.

5. RC4.

2.6.2. Algoritma Asimetris

Algoritma asimetris adalah pasangan kunci kriptografi

yang salah satunya digunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci

publik dapat menggunakannya untuk mengenkripsi suatu pesan,

sedangkan hanya satu orang saja yang memiliki kunci rahasia

itu, yang dapat melakukan pembongkaran terhadap kode yang dikirim untuknya.

Beberapa algoritma asimetris antara lain:

1. RSA (Rivest Shamir Adleman).

2. Diffie Hellman.

2.6.3. Algoritma Hibrida

Algoritma hibrida adalah algoritma yang memafaatkan

dua tingkatan kunci, yaitu kunci rahasia (simetri) – yang disebut

(39)

kunci rahasia – kunci publik untuk pemberian tandatangan

digital serta melindungi kunci simetri.

2.7. Advance Encryption Standard

DES (Data Encryption Standard) dianggap sudah tidak aman lagi karena dengan perangkat keras khusus kuncinya bisa ditemukan dalam

beberapa hari. National Institute of Standards and Technology (NIST),

sebagai agensi Departemen Perdagangan AS mengusulkan kepada Pemerintah Federal AS untuk sebuah standard kriptografi yang baru.

Untuk menghindari kontroversi mengenai standard yang baru tersebut, NIST mengadakan sayembara terbuka untuk membuat standard

algoritma kriptografi yang akan diberi nama Advanced Encryption

Standard (AES) (Munir, 2006 : 157).

Persyaratan yang diajukan oleh NIST adalah :

1. Algoritma yang ditawarkan termasuk ke dalam kelompok algoritma

kriptografi simetri berbasis cipher blok.

2. Seluruh rancangan algoritma harus publik (tidak dirahasiakan). 3. Panjang kunci fleksibel : 128, 192, dan 256 bit.

4. Ukuran blok yang dienkripsi adalah 128 bit.

5. Algoritma dapat diimplementasikan baik sebagai software maupun

hardware.

Pada bulan Agustus 1998, NIST memilih 5 finalis yang didasarkan pada aspek keamanan algoritma, kemangkusan (efficiency), fleksibilitas,

dan kebutuhan memori. Finalis tersebut adalah (Munir, 2006 : 157):

(40)

1. Rijndael (dari Vincent Rijmen and Joan Daemen – Belgia, 86 suara).

2. Serpent (dari Ross Anderson, Eli Biham, dan Lars Knudsen –

Inggris, Israel, dan Norwegia, 59 suara).

3. Twofish (dari tim yang diketuai oleh Bruce Schneier – USA, 31

suara).

4. RC6 (dari laboratorium RIVEST SHAMIR ADLEMAN – USA, 23

suara).

5. MARS (dari IBM, 13 suara).

Pada bulan Oktober 2000, NIST mengumumkan untuk memilih

Rijndael (dibaca : Rhinedoll), dan pada bulan November 2001, Rijndael ditetapkan sebagai Advance Encryption Standard, dan diharapkan

Rijndael menjadi standard kriptografi yang dominan paling sedikit selama sepuluh tahun (Munir, 2006 : 158).

2.7.1. Panjang Kunci dan Ukuran Blok Rijndael

Rijndael mendukung panjang kunci 128 bit sampai 256 bit dengan step 32 bit. Panjang kunci dan ukuran blok dapat dipilih

secara independen. Setiap blok dienkripsi dalam sejumlah putaran tertentu, sebagaimana halnya pada DES.

Karena Advance Encryption Standard menetapkan panjang kunci adalah 128, 192, dan 256, maka dikenal Advance

Encryption Standard-128, Advance Encryption Standard-192, dan Advance Encryption Standard-256. Table 2.1. meresumekan

(41)
[image:41.612.110.521.95.527.2]

Tabel 2.1. Tiga buah Versi Advance Encryption Standard (Sumber : Munir, 2006 : 158)

Panjang Kunci (Nk words)

Ukuran Blok (Nb words)

Jumlah Putaran (Nr)

AES-128 4 4 10

AES-192 6 4 12

AES-256 8 4 14

Catatan : 1 word = 32 bit

Secara defacto, hanya ada dua varian AES, yaitu AES-128

dan AES 256, karena akan sangat jarang pengguna menggunakan kunci yang panjangnya 192 bit. Karena Advance

Encryption Standard mempunyai panjang kunci paling sedikit

128 bit, maka Advance Encryption Standard tahan terhadap serangan exhaustive key search dengan teknologi saat ini.

Dengan panjang kunci 128-bit, maka terdapat sebanyak

2128 = 3,4 x 1038

kemungkinan kunci. Jika digunakan komputer tercepat yang dapat mencoba 1 juta kunci setiap detik, maka akan

dibutuhkan waktu 5,4 x 1024 tahun untuk mencoba seluruh kemungkinan kunci. Jika digunakan komputer tercepat yang dapat mencoba 1 juta kunci setiap milidetik, maka akan

dibutuhkan waktu 5,4 x 1018 tahun untuk mencoba seluruh kemungkinan kunci.

(42)

2.7.2. Algoritma Rijndael

Rijndael menggunakan substitusi dan permutasi, dan

sejumlah putaran (cipher berulang), setiap putaran

menggunakan kunci internal yang berbeda (kunci setiap putaran

disebut round key). Tetapi tidak seperti DES yang berorientasi

bit, Rijndael beroperasi dalam orientasi byte. Selain itu, Rijndael

tidak menggunakan jaringan Feistel seperti DES dan GOST. Garis besar Algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut (Munir, 2006 : 159):

1. AddRoundKey : melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga

initial round.

2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada

setiap putaran adalah :

[image:42.612.114.505.138.691.2]

a. SubBytes : substitusi byte dengan menggunakan

table substitusi (S-box).

b. ShiftRows : pergeseran baris-baris array state

secara wrapping.

c. MixColumns : mengacak data di masing-masing

kolom array state.

d. AddRoundKey : melakukan XOR antara state

sekarang dengan round key.

(43)

a. SubBytes

b. ShiftRows

c. AddRoundKey

Garis besar algoritma enkripsi Rijndael diperlihatkan pada gambar 2.5. state AddRoundKey Chiper Key ⊕ initial round 1-SubBytes 2-ShiftRows 3-MixColumns 4-AddRoundKey

Round Key 0

9 rounds

SubBytes

ShiftRows Round Key 10

AddRoundKey

final round

Gambar 2.5. Diagram Proses Enkripsi (Sumber : Munir, 2006 : 159)

Algoritma Rijndael mempunyai tiga parameter (Munir, 2006 : 161) :

1. plaintext : array yang berukuran 16-byte, yang berisi data masukan.

(44)

S0,0 S0,1 S0,1 S0,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

S3,0 S3,1 S3,2 S3,3

out0 out4 out8 out12

out1 out5 out9 out13

out2 out6 out10 out14

out3 out7 out11 out15

2. ciphertext : array yang berukuran 16-byte, yang berisi

hasil enkripsi.

3. key : array yang berukuran 16-byte, yang berisi kunci

ciphering (disebut juga cipher key).

Dengan 16 byte, maka baik blok data dan kunci yang berukuran 128-bit dapat disimpan di dalam ketiga array tersebut (128 = 16 x 8). Selama kalkulasi plainteks menjadi cipherteks,

status sekarang dari data disimpan di dalam array of bytes dua

dimensi, state, yang berukuran NROWS x NCOLS. Untuk blok

data 128-bit, ukuran state adalah 4 x 4. Elemen array state diacu sebagai S[r,c], dengan 0 r < 4 dan 0 c < Nb (Nb adalah

panjang blok dibagi 32. Pada AES-128, Nb = 128/32 = 4).

Pada awal enkripsi, 16-byte data masukan, in0,in1,…,in15

disalin ke dalam array state (direalisasikan oleh fungsi

CopyPlaintextToState(state, plaintext)) seperti diilustrasikan sebagai berikut :

input bytes state array output bytes

in0 in4 in8 in12

in1 in5 in9 in13

in2 in6 in10 in14

in3 in7 in11 in15

Operasi Enkripsi/dekripsi dilakukan terhadap array S, dan keluarannya ditampung di dalam array out. Skema penyalinan

(45)

2b 28 ab 09

7e ae f7 cf

15 d2 15 4f

16 a6 88 3c

S[r, c] in[r + 4c] untuk 0 r < 4 dan 0 c < Nb

Skema penyalinan array S ke array keluaran out :

out[r + 4c] S[r, c] untuk 0 r < 4 dan 0 c < Nb

Contoh elemen state dan kunci dalam notasi HEX :

input

state Cipher key

32 88 31 e0

43 5a 31 37

f6 30 98 07

a8 8d a2 34

hexadecimal notation: Ex: 32 = 0011 0010 (1 byte)

3hex 2hex

2.7.3. Transformasi SubBytes()

Transformasi

SubBytes

memetakan setiap

byte

dari

array state

dengan menggunakan tabel substitusi

S-box

.

Tidak seperti DES yang mempunyai

S-box

berbeda pada

setiap putaran, Advance Encryption Standard hanya

mempunyai satu buah

S-box

. Tabel

S-box

yang digunakan

ditunjukkan pada table 2.2 :

(46)
[image:46.612.110.529.93.509.2]

Tabel 2.2. S-box (Sumber : Munir, 2006 : 163)

y hex

0 1 2 3 4 5 6 7 8 9 a b c d e f

0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76

1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0

2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15

3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75

4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84

5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf

6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8

7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2

8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73

9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db

a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79

b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08

c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a

d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e

e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df

x

f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

Cara pensubstitusian adalah sebagai berikut : untuk setiap

byte pada array state, misalkan S[r,c]=xy, yang dalam hal ini xy

adalah digit hexadesimal dari nilai S[r,c], maka nilai

substitusinya, yang dinyatakan dengan S’[r,c], adalah elemen di dalam S-box yang merupakan perpotongan baris x dengan kolom

y. Gambar 2.5 memperlihatkan transformasi SubBytes().

(47)

a2,2 a b2,1

a0,0 a0,1 a0,2 a0,3

a1,0 a1,1 a1,2 a1,3 SubBytes

b0,0 b0,1 b0,2 b0,3

b1,0 b1,1 b1,2 b1,3

a2,0 a2,1

a

2,2 2,3 b2,0

b

2,2 b2,2 b2,3

a3,0 a3,1 a3,2 a3,3 b3,0 b3,1 b3,2 b3,3

S

Gambar 2.6. Transformasi SubBytes

(Sumber : Munir, 2006 : 163)

2.7.4. Transformasi ShiftRows()

Transformasi ShiftRows() melakukan pergeseran secara

wrapping (siklik) pada 3 baris terakhir dari array state. Jumlah

pergeseran bergantung pada nilai baris (r). baris r = 1 digeser sejauh 1 byte, baris r = 0 tidak digeser. Gambar 2.6

memperlihatkan transformasi ShiftRows.

Gambar 2.7. Transformasi ShiftRows

(Sumber : Munir, 2006 : 165)

2.7.5. Transformasi MixColumns()

Transformasi MixColumns() mengalikan setiap kolom dari

array state dengan polinom a(x) mod (x4 + 1). MixColumns

(48)

memberikan difusi pada cipher. Setiap kolom diperlakukan

sebagai polinom 4-suku pada GF(28). Polinom a(x) yang ditetapkan adalah

a(x) = {03}x3 + {01}x2 + {01}x + {02} (6.5)

Transformasi ini dinyatakan sebagai perkalian matriks :

S’(x) = a(x) s(x) (6.6)

S’0,c

S’1,c

= S’2,c

S’3,c

02 03 01 01

01 02 03 01

01 01 02 03

03 01 01 02 S0,c

S1,c

S2,c

S3,c

S’0,c = ({02}• S0,c) ⊕ ({03}• S1,c) ⊕ S2,c ⊕ S3,c

S’1,c = S0,c ⊕ ({02}• S1,c) ⊕ ({03}• S2,c) ⊕ S3,c

S’1,c = S0,c ⊕ S1,c ⊕ ({02}• S2,c) ⊕ ({03}• S2,c)

[image:48.612.113.503.162.607.2]

S’1,c = ({03}• S0,c) ⊕S1,c ⊕ S2,c ⊕ ({02}• S3,c)

Gambar 2.7 memperlihatkan transformasi MixColumns().

Gambar 2.8. Transformasi MixColumns

(Sumber : Munir, 2006 : 166)

(49)

2.7.6. Transformasi AddRoundKey()

Transformasi ini melakukan operasi XOR terhadap sebuah

round key dengan array state, dan hasilnya disimpan di array

state. Gambar 2.8 memperlihatkan transformasi AddRoundKey.

Gambar 2.9. Transformasi AddRoundKey

(Sumber : Munir, 2006 : 167)

2.7.7. Ekspansi Kunci

Algoritma Rijndael mengambil cipher key, K, yang

diberikan oleh pengguna, dan memanggil fungsi

KeyExpansion() untuk membangkitkan sejumlah round key

(banyaknya round key bergantung pada jumlah putaran).

2.8. Kriptografi Kunci Publik

2.8.1. Sejarah Kriptografi Kunci Publik

Sistem kriptografi nirsimetri dipublikasikan pertama kali

pada tahun 1976 oleh Whitfield Diffie dan Martin Hellman, dua

(50)

orang ilmuwan dari Stanford University melalui makalah

berjudul “New Directions in Cryptography”. Makalah mereka

membahas distribusi kunci rahasia pada saluran komunikasi publik (yang tidak aman) dengan metode pertukaran kunci yang

belakangan dikenal dengan nama algoritma pertukaran kunci Diffie-Hellman.

Pada tahun 1977, generalisasi dari ide Cocks ditemukan

kembali oleh tiga orang ilmuwan dari MIT, yaitu Rivest, Shamir, dan Adleman. Algoritma enkripsi yang mereka buat dikenal

dengan nama Rivest Shamir Adleman.

Akhirnya sejak tahun 1976 berbagai algoritma enkripsi,

tanda tangan digital, pertukaran kunci, dan teknik lain dikembangkan dalam bidang kriptografi kunci publik, misalnya

algoritma ElGamal untuk enkripsi dan tanda tangan digital dan

algoritma DSA untuk tanda tangan digital. Pada tahun 1980

Neal Koblitz memperkenalkan elliptic-curve-cryptography

sebagai keluarga baru yang analog dengan algoritma kriptografi

kunci publik (Munir, 2006 : 177).

2.8.2. Konsep Kriptografi Kunci Publik

Pada kriptografi kunci publik, setiap pengguna memiliki sepasang kunci, satu kunci untuk enkripsi, dan satu kunci untuk

(51)

dekripsi bersifat rahasia sehingga dinamakan kunci pribadi (private key), disimbolkan dengan d. Karena kunci enkripsi kunci dekripsi itulah kriptografi kunci publik disebut juga

kriptografi nirsimetri (Munir, 2006 : 172).

Kunci Publik, e Kunci Privat, d

Plainteks, m Enkripsi

Ee (m) = c

Cipherteks, c

Dekripsi

Dd (c) = m Plainteks, m

Gambar 2.10. Skema kriptografi nirsimetri (Sumber : Munir, 2006 : 172)

Misalkan E adalah fungsi enkripsi dan D adalah fungsi dekripsi. Misalkan (e, d) adalah pasangan kunci untuk enkripsi

dan dekripsi sedemikian, sehingga

Ee (m) = c dan Dd (c) = m

untuk suatu plainteks m dan cipherteks c. kedua persamaaan ini

menyiratkan bahwa dengan mengetahui e dan c, maka secara komputasi hampir tidak mungkin menemukan m. asumsi

lainnya, dengan mengetahui e, secara komputasi hampir tidak

mungkin menurunkan d. Ee digambarkan sebagai fungsi pintu

kolong (trapdoor) satu arah dengan d adalah informasi trapdoor yang diperlukan untuk menghitung fungsi inversinya, D, yang

dalam hal ini membuat proses dekripsi dapat dilakukan.

(52)

Dengan sistem kriptografi kunci publik ini dua orang yang

berkomunikasi tidak perlu berbagi kunci yang sama. Keduanya

memiliki sepasang kunci, kunci publik dan kunci privat. Sistem kriptografi kunci publik yang aman memiliki dua karakteristik

sebagai berikut (Munir, 2006 : 174):

1. Komputasi untuk enkripsi/dekripsi mudah dilakukan.

2. Secara komputasi hampir tidak mungkin (infeasible) menurunkan kunci privat, d, bila diketahui kunci publik, e,

pasangannya.

Kedua karakteristik di atas dapat dianalogikan dengan dua masalah matematika berikut :

a. Perkalian vs pemfaktoran. Mengalikan dua buah bilangan

prima, a x b = n, mudah, tetapi memfaktorkan n menjadi

faktor-faktor primanya lebih sulit.

Contoh : 31 x 47 = 1457 (perkalian, mudah)

1457 = ? x ? (pemfaktoran, sulit)

b. Pemangkatan vs logaritma diskrit. Melakukan

perpangkatan modulo, b = ax mod n, mudah, tetapi menemukan x dari ax b (mod n) lebih sulit.

Contoh :

126 mod 1125 = 234 (perpangkatan modulo, mudah)

x dari 12x 234 (mod 1125) (logaritmik diskrit, sulit)

(53)

Dua masalah matematika di atas sering dijadikan dasar

pembangkitan sepasang kunci pada kriptografi kunci publik,

yaitu (Munir, 2006 : 175):

1. Pemfaktoran

Diberikan bilangan bulat n. Faktorkan n menjadi faktor

primanya. Contoh : 60 = 2 x 2 x 3 x 5 252601 = 41 x 61 x 101

213 – 1 = 3391 x 23279 x 65993 x 1868569 x 1066818132868207

Semakin besar n, semakin sulit memfaktorkan (butuh

waktu sangat lama). Algoritma yang menggunakan prinsip

ini : Rivest Shamir Adleman.

2. Logaritma Diskrit

Temukan x sedemikian ax b (mod n) sulit dihitung. Contoh : jika 3x 15 (mod 17) maka x = 6.

Semakin besar a, b, dan n semakin sulit memfaktorkan

(butuh waktu yang lama).

Algoritma yang menggunakan prinsip ini : ElGamal dan

DSA.

Catatan : Persoalan logaritma diskrit adalah kebalikan dari

persoalan perpangkatan modular : ax mod n

Sistem kriptografi kunci publik cocok digunakan di dalam

kelompok pengguna di lingkungan jaringan komputer

(54)

(LAN/WAN) yang memungkinkan mereka saling

berkomunikasi. Setiap pengguna jaringan memiliki pasangan

kunci publik dan kunci privat yang bersesuaian. Kunci publik, karena tidak rahasia, biasanya disimpan di dalam basisdata

kunci yang dapat diakses oleh pengguna lain. Jika ada pengguna yang hendak berkirim pesan ke pengguna lainnya, maka ia perlu

mengetahui kunci publik penerima pesan melalui basisdata

kunci ini lalu menggunakannya untuk mengenkripsi pesan. Hanya penerima pesan yang dapat mendekripsi pesan karena ia

yang mengetahui kunci privatnya sendiri.

Dengan sistem kriptografi kunci publik, tidak diperlukan

pengiriman kunci privat melalui saluran komunikasi khusus sebagaimana pada sistem kriptografi simetri (Munir, 2006 : 176).

2.8.3. Aplikasi Kriptografi Kunci Publik

Aplikasi kriptografi kunci publik dapat dibagi menjadi tiga kategori (Munir, 2006 : 178):

1. Kerahasiaan data

Seperti pada kriptografi kunci simetri, kriptografi kunci

publik dapat digunakan untuk menjaga kerahasiaan data (provide confidentiality/secrecy) melalui mekanisme

enkripsi dan dekripsi. Contoh algoritma untuk aplikasi ini

adalah Rivest Shamir Adleman, Knapsack, Rabin,

(55)

2. Tanda tangan digital

Tanda tangan digital (digital signature) dengan

menggunakan algoritma kriptografi kunci publik dapat

digunakan untuk membuktikan otentikasi pesan maupun

otentikasi pengirim (provide authentication). Contoh

algoritmanya untuk aplikasi ini adalah Rivest Shamir

Adleman, DSA, dan ElGamal.

3. Pertukaran kunci (key exchange)

Algoritma kriptografi kunci publik dapat digunakan untuk

pengiriman kunci simetri (session key). Contoh

algoritmanya adalah Rivest Shamir Adleman dan Diffie-

Hellman.

2.9. RSA (Rivest Shamir Adleman)

Algoritma Rivest Shamir Adleman dibuat oleh 3 orang peneliti dari

MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma

Rivest Shamir Adleman terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk

memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi

faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma Rivest Shamir Adleman tetap

terjamin (Munir, 2006 : 179).

(56)

Algoritma Rivest Shamir Adleman memiliki besaran-besaran

sebagai berikut :

1. p dan q bilangan prima (rahasia)

2. n = p . q (tidak rahasia)

3. (n) = (p - 1)(q - 1) (rahasia)

4. e (kunci enkripsi) (tidak rahasia)

5. d (kunci dekripsi) (rahasia)

6. m (plainteks) (rahasia)

7. c (cipherteks) (tidak rahasia)

2.9.1. Perumusan Algoritma Rivest Shamir Adleman

Algoritma Rivest Shamir Adleman didasarkan pada teorema Euler yang menyatakan bahwa

a (n) 1 (mod n) (2.1)

dengan syarat (Munir, 2006 : 179) : 1. a harus relatif prima terhadap n

2. (n) = n(1 - 1/p1)(1 - 1/p2)…(1 – 1/pr), yang dalam hal ini

p1, p2, …, pr adalah faktor prima dari n. (n) adalah fungsi

yang menentukan berapa banyak dari bilangan-bilangan 1, 2, 3,…, n yang relatif prima terhadap n.

Berdasarkan sifat ak bk (mod n) untuk k bilangan bulat 1 maka persamaan (2.1) dapat ditulis menjadi

ak (n) 1k (mod n) atau

ak (n) 1 (mod n) (2.2)

(57)

bila a diganti dengan m, maka persamaan (2.2) dapat

ditulis menjadi

mk (n) 1 (mod n) (2.3)

Berdasarkan sifat ac bc (mod n), maka bila persamaan (2.3) dikali dengan m menjadi :

mk (n)+1 m (mod n) (2.4)

yang dalam hal ini m relatif prima terhadap n.

Misalkan e dan d dipilih sedemikian sehingga

e · d 1 (mod (n)) (2.5)

atau

e · d k (n) + 1 (2.6)

Sulihkan (2.6) ke dalam persamaan (2.4) menjadi :

me · d m (mod n) (2.7)

persamaan (2.7) dapat ditulis kembali menjadi :

(me) d m (mod n) (2.8)

Yang artinya, perpangkatan m dengan e diikuti dengan perpangkatan dengan d menghasilkan kembali m semula. Berdasarkan persamaan (2.8), maka enkripsi dan dekripsi dirumuskan sebagai berikut :

Ee(m) = c me mod n (2.9)

Dd(c) = m cd mod n (2.10)

Karena e · d = d · e, maka enkripsi diikuti dengan dekripsi ekivalen dengan dekripsi diikuti enkripsi :

Dd(Ee(m)) = Ee(Dd(c)) md mod n (2.11)

(58)

Oleh karena md mod n (m + jn)d mod n untuk sembarang bilangan bulat j, maka tiap plainteks m, m + n, m +

2n, …, menghasilkan cipherteks yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar transformasinya dari

satu ke satu, maka m harus dibatasi dalam himpunan {0, 1, 2, …, n-1} sehingga enkripsi dan dekripsi tetap benar seperti pada

persamaan (2.9) dan (2.10).

2.9.2. Algoritma Membangkitkan Pasangan Kunci

1. Pilih dua buah bilangan prima sembarang, p dan q.

2. Hitung n = p · q (sebaiknya p q, sebab jika p = q maka n

= p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n).

3. Hitung (n) = (p - 1)(q - 1).

4. Pilih kunci publik, e, yang relatif prima terhadap (n).

5. Bangkitkan kunci privat dengan mengguakan persamaan

(2.5), yaitu e · d 1 (mod (n)). Perhatikan bahwa e · d

1 (mod n) ekivalen dengan e · d 1 + k (n), sehingga

secara sederhana d dapat dihitung dengan

(2.12)

Hasil dari algoritma di atas :

- Kunci publik adalah pasangan (e, n) - Kunci privat adalah pasangan (d, n)

Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada

perhitungan enkripsi/dekripsi (Munir, 2006 : 181).

(59)

2.9.3. Algoritma Enkripsi/Dekripsi

Enkripsi

1. Ambil kunci publik penerima pesan, e, dan modulus n.

2. Nyatakan plainteks m menjadi blok-blok m1, m2,…, sedemikian sehingga setiap blok merepresentasikan nilai

di dalam selang [0, n-1].

3. Setiap blok m, dienkripsi menjadi blok ci dengan rumus ci

= mi e mod n.

Dekripsi

Setiap blok cipherteks ci didekripsi kembali menjadi blok mi

dengan rumus mi = ci d mod n.

2.9.4. Keamanan Rivest Shamir Adleman

Keamanan algoritma Rivest Shamir Adleman didasarkan pada sulitnya memfaktorkan bilangan besar menjadi faktor-

faktor primanya (Munir, 2006 : 183).

Masalah pemfaktoran : Faktorkan n, yang dalam hal ini n

adalah hasil kali dari dua atau lebih bilangan prima.

Pada Rivest Shamir Adleman, masalah pemfaktoran

berbunyi : Faktorkan n menjadi dua faktor primanya, p dan q,

sedemikian sehingga n = p · q. Sekali n berhasil difaktorkan menjadi p dan q, maka (n) = (p - 1)(q - 1) dapat dihitung.

Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia),

(60)

maka kunci dekripsi d dapat dihitung dari persamaan e · d 1 (mod (n)).

Selama 300 tahun para matematikawan mencoba mencari

faktor bilangan yang besar namun tidak banyak membuahkan hasil. Semua bukti yang diketahui menunjukkan bahwa upaya

pemfaktoran itu luar biasa sulit. Belum ditemukan algoritma pemfaktoran bilangan besar dalam waktu polinomial, tetapi juga

tidak dapat dibuktikan algoritma tersebut ada. Fakta inilah yang

membuat algoritma Rivest Shamir Adleman dianggap aman.

Penemu algoritma Rivest Shamir Adleman bahkan menyarankan nilai p dan q panjangnya lebih dari 100 angka. Dengan demikian

hasil kali n = p x q akan berukuran lebih dari 200 angka.

Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor prima dari bilangan 200 angka membutuhkan waktu komputasi

Gambar

Gambar  2.2. Sebuah scytale, pesan yang ditulis secara
Gambar 2.3. Mesin enkripsi Enigma yang digunakan oleh
Gambar 2.4. Caesar Wheel (Sumber : http://mail.colonial.net)
Tabel 2.1. Tiga buah Versi Advance Encryption Standard
+7

Referensi

Dokumen terkait

Pada siklus II ini disampaikan materi tentang pemanfaatan bagian tumbuhan yang sering dimanfaatkan manusia yang dapat mempengaruhi keseimbangan lingkungan (ekosistem).

Hasil uji hipotesis dan analisis regresi menunjukkan bahwa variabel Motivasi Konsumen, Persepsi Konsumen, Pembelajaran Konsumen serta Sikap Konsumen secara simultan

Analisis penelitian kualitatif didapatkan lansia sangat senang jika diberikan uang oleh anak sebagai pegangan, dan anak menawarkan bantuan uang saat butuh

Berdasarkan rekap hasil pengukuran kemampuan berpikir kritis mahasiswa pada mata kuliah Ekologi, Taksonomi Hewan, dan Biologi Umum yang disajikan pada Tabel 1 menunjukkan

Indikasi yang memerlukan bantuan medis dan tindakan khusus, jika diperlukan Tidak diketahui efek signifikan atau bahaya kritis.. Dapat menyebabkan depresi sistem saraf

HUBUNGAN ANTARA BODY IMAGE DAN KONTROL DIRI DENGAN PERILAKU DIET PADA REMAJA SISWI SMA NEGERI 10..

 Buat partner saya Vitis Vinifera yang selalu membuat saya bersemangat akan laporan akhir ini, terima kasih untuk kerja samannya selama ini, maaf ya kalau saya terlalu

Sekolah anda luas atau memiliki 2 lantai atau lebih, maka anda ingin jika seorang guru jam pertama mengajar dilokasi gedung A misalnya, pada jam berikutnya jangan mengajar