penerapan Kriptografi Menggunakan Metode Rhivest-Shamir-Adleman Dengan Chinese Remainder Theorem (RSA-CRT) Pada Citra Digital Di Konsultan Art And Design House The House

(1)

9

2.1 Profil Perusahaan

Profil perusahaan konsultan Art and Design House The House meliputi sejarah berdirinya, visi dan misi serta struktur organisasi.

2.1.1 Sejarah Perusahaan

House The House adalah sebuah konsultan seni dan desain terintegrasi yang menitikberatkan praktik seni dan desain untuk produk, brand, dan lingkungan terbangun dengan fokus pada kualitas pengalaman pengguna dan strategi yang berbasiskan pada kultur regenerasi ruang desa dan perkotaan.

Bertempat di Bandung, praktik desain yang perusahaan ini angkat sebagai keutamaan adalah Arsitektur, Lingkungan Terdesain, Desain Produk, Tampilan AV/Multimedia, Dokumenter Konseptual, Strategi Branding, dan Instalasi Intermedia.

House The House didirikan pada 24 Februari 2011 oleh 9 orang sahabat yaitu Meizan Diandra Nataadiningrat, Prananda Luffiansyah, Raditya Ardianto Taepur, Sakti Nuzan, Kukuh Rizal Arfianto, Yanuar Pratama Firdaus, Artiandi Akbar, dan Findhika Putra. Ke-9 orang ini memiliki basis keilmuan dan ketertarikan yang berbeda-beda di bidang arsitektur, desain interior, desain komunikasi visual, desain produk, kriya keramik, dan teknologi informasi.

Sebelumnya mereka tergabung dalam 3 media yang fokus pada keilmuan masing-masing, seperti Fold Magazine (http://foldmagazine.com) sebuah media online yang membahas desain produk dan kulturnya, Orders yang merupakan media cetak 3 bulanan berbicara tentang arsitektur dan perkotaan, dan Bandung Affairs sebuah platform digital dengan metode crowd-sourcing yang mengungkap seluk beluk Kota Bandung. Kemudian mereka memutuskan untuk menggabungkan ke tiga platform tersebut menjadi satu wadah yang memiliki keunggulan dalam


(2)

berkarya sekaligus memiliki keunikan dan pertanggungjawaban dalam interaksi sesama manusia dan lingkungan terbangun.

2.1.2 Visi dan Misi Perusahaan

Berikut merupakan visi dan misi dan perusahaan House The House : a. Visi

“House The House sebagai penyedia jasa creative collective desain yang bergerak dalam bidang regenerasi ruang kota dan daerah pedesaan terkemuka di Indonesia”

b. Misi

House The House menjadi pilihan utama sebagai penyedia jasa desain terintegrasi di Indonesia yang bekerjasama dengan corporate, memegang saham, dan mitra usaha lainnya untuk dapat menghasilkan nilai tambah bagi stakeholder, karyawan, dan negara.


(3)

2.1.3 Struktur Organisasi

Struktur Organisasi di House The House sebagai berikut :

Bagan 2.1 Struktur Organisasi House The House

2.2 Landasan Teori

Landasan Teori bertujuan memberikan gambaran dari teori yang terkait dalam pembangunan aplikasi. Landasan Teori yang dibahas yaitu Pengertian Citra Digital, Kriptografi, Metode yang digunakan dan Bahasa Pemrograman yang digunakan.

2.2.1 Citra Digital

Secara harfiah, citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Sedangkan jika ditinjau dari sudut pandang matematis, citra merupakan fungsi terus menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alat-alat optik, misalnya mata


(4)

pada manusia, kamera, pemindai (scanner), dan sebagainya, sehingga banyak objek yang disebut citra tersebut terekam. [7]

Sedangkan citra digital sendiri merupakan sebuah gambar yang dibentuk kumpulan titik-titik piksel [8]. Dalam piksel terdapat kumpulan angka biner yang merepresentasikan nilai dari setiap warna. Dalam komputer, setiap piksel diwakili oleh dua buah bilangan bulat (integer) untuk menunjukkan lokasinya dalam bidang citra (koordinat (0,0)). Piksel disusun dalam sebuah larik dua dimensi (array dua dimensi) [9].

Hubungan antara koordinat citra dan indeks larik untuk citra yang bersangkutan dapat ditunjukkan dengan dalam bentuk diagram berupa kumpulan segi-empat dengan sisi-sisi yang sama (square tesselation). Square Tessalation

hanya sebuah teknik visualisasi dari citra yang tersimpan dalam memori komputer sebab kenyataannya di dalam komputer memori yang berisi data intensitas citra tidak terletak berdampingan seperti pada teknik tesselation.

Berikut merupakan gambaran teknik tessalation pada suatu objek citra digital pada larik dua dimensi dengan ukuran array 8x8 :


(5)

13

Bagan 2.2 Penggambaran Citra pada Square Tesselation

Untuk mengambil nilai dari suatu citra digital sangat beragam caranya. Hal ini sangat bergantung pada bahasa pemrograman dan tools tambahan dari setiap programnya. Contoh aplikasi dan tools untuk mengambil nilai dari suatu citra adalah octave pada matlab, fungsi bawaan dari C++ dan fungsi bawaan dari C# menggunakan visual studio.

File citra beragam, ada yang memiliki header dan ada yang tidak memiliki header namun secara umum suatu file citra terdiri atas header dan palet warna. Sebagai contoh kita ambil struktur penyusun file .bmp yaitu sebagai berikut :

Tabel 2.1 Struktur penyusun bitmap

Header berkas Header bitmap Informasi palet Data bitmap

Secara umum header berisi tentang cara membaca suatu file citra. Sedangkan untuk informasi palet akan menyimpan nilai warna dalam bentuk RGB. Dan untuk data bitmap menyimpan data bitmap yang digambarkan secara susunan terbalik yaitu baris ke-0 pada matriks menyatakan data pixel citra baris terbawah dan sebaliknya untuk baris k-n matriks menyatakan data pixel teratas.

Citra digital sendiri memiliki tiga jenis penggambaran warna. Ketiga jenis tersebut adalah citra berwarna, citra berskala keabuan dan citra biner. Berikut merupakan penjelasan dari setiap jenis tersebut :


(6)

Citra berwarna atau biasa dinamakan citra RGB merupakan jenis citra yang menyajikan warna dalam bentuk komponen R (merah), G (hijau) dan B (biru). Setiap komponen menggunakan delapan bit (nilainya berkisar 0 sampai dengan 255). Dengan demikian, kemungkinan warna yang dapat disajikan mencapai 255 x 255 x 255 atau 16.581.375 warna. Sehingga warna dapat direpresentasikan sebagai berikut :

Tabel 2.2 Warna dan nilai penyusunnya

Warna R G B

Merah 255 0 0

Hijau 0 255 0

Biru 0 0 255

Hitam 0 0 0

Putih 255 255 255 Kuning 0 255 255

Berikut merupakan contoh penggambaran citra RGB

Bagan 2.3 Contoh citra dengan warna RGB

b. Citra Berskala Keabuan

Citra jenis ini hanya menggambarkan suatu citra dengan dua warna yaitu hitam dan putih serta gradasinya. Pada jenis ini warna dinyatakan dengan intesitas yang berkisar antar 0 – 255. Nilai 0 menyatakan hitam dan nilai 255 menyatakan putih. Sehigga efeknya pada citra ini terdapat warna abu yang merepresentasikan warna antara 0 dan 255.


(7)

Bagan 2.4 Contoh citra berskala keabuan

c. Citra Biner

Citra biner adalah citra dengan setiap piksel hanya dinyatakan dengan sebuah nilai dari dia kemungkinan (yaitu 0 dan 1). Nilai 0 menyatakan warna hitam dan nilai 1 menyatakan warna putih. Warna jenis ini banyak digunakan dalam pemrosesan citra karena sangat memungkinkan untuk dimanipulasi.

Berikut merupakan contoh citra berskala biner :

Bagan 2.5 Contoh citra biner

Dalam penelitian kali ini akan digunakan jenis citra RGB yang merupakan citra yang sering digunakan dalam kehidupan sehari-hari. Selain itu citra ini juga merupakan citra yang digunakan di tempat studi kasus House The House.

2.2.2 Kriptografi

Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana menyembunyikan pesan. Namun pada pengertian modern kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan infromasi seperti kerahasiaan, keutuhan data dan otentifikasi. Jadi pengertian kriptografi modern adalah tidak saja berurusan hanya dengan


(8)

penyembunyian pesan namun lebih pada sekumpulan teknik yang menyediakan keamanan informasi [2].

Secara umum kriptografi dapat dibedakan menjadi dua berdasarkan era nya, yaitu :

a. Kriptorafi klasik

Kriptografi klasik merupakan kriptografi yang ada sebelum era komputer. Kriptografi pada era ini menggunakan kunci simetrik dengan menggunakan metode substitusi (pergantian huruf) dan/atau transposisi. b. Kriptografi modern

Kriptografi modern merupakan kriptografi yang ada setelah era komputer. Pada kriptografi modern sistem penyandian lebih bervariasi. Hal ini karena era komputer memungkinkan manipulasi dilakukan dalam satuan byte dan bit. Pada kriptografi modern ini pula terdapat metode baru penyandian yaitu sistem blok dan stream.

Penyandian dengan sistem blok mengakumulasikan sekumpulan teks atau byte menjadi sebuah blok kemudiaan baru dilakukan penyandian. Sedangkan metode stream penyandian dilakukan secara realtime. Hal ini berarti bahwa setiap bit atau byte akan dilakukan penyandian tersendiri. Secara umum sistem penyandian dapat digambarkan dengan sederhana yaitu seperti berikut :

Plaintext Algoritma Enkripsi

Kunci

chipertext chipertext Algoritma Dekripsi

Kunci

plaintext

Bagan 2.6 Sistem Kriptografi

Berdasarkan gambar tersebut terlihat beberapa istilah sebagai berikut :

a. Plaintext

Plaintext meruapakan teks asli yang dapat terbaca. Plaintext merupakan masukan bagi algoritma enkripsi.


(9)

b. Kunci

Kunci merupakan masukan bagi algoritma enkripsi juga selain plaintext. Kunci dapat dibedakan menjadi tiga yaitu :

1) Kunci simetrik

Kunci simetrik merupakan kunci yang proses enkripsi dan dekripsi menggunakan kunci bernilai sama. Penyandian dengan kunci simetrik harus benar-benar menjaga kunci tersebut karena jika kunci tersebut diketahui orang lain maka proses dekripsi dapat dilakukan dengan mudah.

2) Kunci asimetrik

Kunci asimetrik merupakan kunci yang proses enkripsi dan dekripsinya menggunakan kunci bernilai beda. Penyandian ini akan membangkitkan dua buah kunci dimana masing-masing kunci digunakan untuk proses enkripsi dan proses dekripsi. Pada kunci asimetrik ini biasa menggunakan persamaan matematika untuk membuat sebuah kunci sehingga pada akhirnya meskipun suatu plaintext di enkripsikan dengan nilai kunci yang berbeda namun bisa didekripsikan dengan kunci yang beda.

3) Fungsi Hash

Fungsi hash merupakan fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut message digest dengan panjang tetap. Fungsi hash umumnya dipakai sebagai nilai uji (check value)

pada mekanisme keutuhan data. c. Algoritma enkripsi

Algoritma enkripsi memiliki dua masukan yaitu teks asli (plaintext) dan kunci rahasia. Algoritma ini melakukan transformasi terhadap plaintext dengan menggunakan kunci yang ada, algoritma ini akan menghasilkan teks tersandi (chipertext).

d. Algoritma dekripsi

Algoritma ini memiliki dua masukan yaitu chipertext dan kunci rahasia. Algoritma ini memulihkan kembali chipretext menjadi teks asli jika kunci yang digunakan untuk melakukan dekripsi bernilai benar.


(10)

Chipertext adalah keluaran dari algoritma enkripsi. Chipertext dapat dikatakan sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan chipertext yang terlihat acak.

2.2.3 Metode RSA – CRT

Pada tahun 1977, Rhivest, Shamir dan Adleman merumuskan algoritma praktis yang mengimplementasikan sistem kriptografi kunci publik disebut dengan sistem kriptografi RSA [10]. Meskipun pada tahun 197 badan sandi Inggris mem-publikasikan bahwa Clifford Cock telah merumuskan sistem kriptografi RSA 3 tahun lebih dahulu daripada Rivest, Shamir dan Adleman.

Algoritma enkripsi dan dekripsi sistem kriptografi RSA bersandar pada asumsi fungsi satu arah (one – way function) yang dibangun oleh fungsi eksponensial modular pada grup perkalian (Z*n, x) dan grup perkalian (Z* ɸ(n), x)

dengan n = p x q, p, q adalah bilangan prima dan ɸ(n) = (p – 1) x (q – 1).

Sedangkan metode RSA – CRT (Rhivest – Shamir – Adleman dengan Chinese Remainder Theorem) merupakan suatu metode kriptografi yang sama dengan RSA biasa namun memanfaatkan teorem CRT untuk memperpendek ukuran bit eksponen dekripsi d dengan cara menyembunyikan d pada sistem kongruen sehingga mempercepat waktu dekripsi. Sistem kongruen pada CRT adalah dengan pemanfaatan penyelesaian masalah kongruen dengan modulus berbeda. Berikut penggambaran sistem kongruen pada CRT :

x ≡ a1 mod m1

x ≡ a2 mod m2

...

x ≡ ak mod mk

Dengan nilai a1, . . . , ak dan m1, . . .,mk diketahui dan x tidak diketahui dan

nilai x diketahui. Untuk mencari nilai x dapat menggunakan prosedur berikut : M = m1 x m2 x . . . x mk

M1 = M/ m1 , M2 = M/ m2, M3 = M/ m3

M1-1 , M2-1, . . ., Mk-1


(11)

Secara sederhana penggunaan CRT pada nilai d mengakibatkan pemecahan kunci sehingga menghasilkan kunci baru yaitu parameter dP, dQ dan qInv yang memiliki ukuran setengah panjang bit d. Kunci privat RSA – CRT ditetapkan sebagai Kprivat = (dP, dQ, qInv, p, q) [11].

Untuk gambaran sistem terlihat seperti berikut :

Gambar asli

c = pe

mod n

Enkripsi

Pilih p dan q n = p.q (e, d) Zᶲ(n)

dP = d mod (p - 1) dQ = d mod (q – 1) qInv = q-1 pada Z

p

Pembangkit Kunci

M1 = CdP mod p

M2 = CdQ mod q

H = qInv.(M1 - M2) mod p

P = M2 + H.q

Dekripsi

Gambar terenkripsi Gambar asli

Publik(e,n)

Privat(dP, dQ, qInv, p, q)

Bagan 2.7 Gambaran Umum Sistem Kriptografi RSA – CRT

Berikut adalah algoritma dari proses pembangkit kunci :

Algoritma Pembangkit Kunci RSA – CRT

Bangkitkan bilangan prima besar p dan q.

n = p x q

ɸ(n) = (p – 1) x (q – 1)

e  Z ɸ(n) dengan gcd(e, ɸ(n)) = 1

d = e-1 pada Z

ɸ(n)

dP = d mod (p - 1)

dQ = d mod (q – 1)

qInv = q-1 pada Z

p

Kpublik = (e, n), Kprivat = (dP, dQ, qInv, p, q) Bagan 2.8 Algoritma Pembangkit Kunci RSA - CRT [8]

Sedangkan untuk melakukan dekripsi diperlukan algortima seperti yang tertera di bawah ini :


(12)

Algoritma Dekripsi

Input : C = Pe mod n, K

privat = (dP, dQ Output : P

m1 = CdP mod p

m2 = CdQ mod q

h = qInv (m1 - m2) mod p

P = m2 + h.q

Bagan 2.9 Algoritma Dekripsi RSA - CRT

2.2.4 Model Sistem

Model sistem merupakan representasi grafis yang mendeskripsikan masalah yang akan ditangani dan sistem yang akan dikembangkan [6]. Karena digunakan representasi grafis, model seringkali dipahami jika dibandingkan dengan deskripsi bahasa naturalnya yang rinci tentang persyaratan sistem. Representasi ini juga merupakan jembatan antara proses analisis dan perancangan.

Metode pemodelan dapat dibedakan menjadi dua yaitu pemodelan terstruktur dan pemodelan objek. Dalam pemodelan terstruktur akan memandang pemecahan masalah berdasarkan setiap fungsional pemecahan. Sedangkan untuk pemodelan objek akan melihat pemecahan masalah berdasar objek-objek yang ada berdasarkan pemahaman end-user. Dalam hal ini dikatakan bahwa orientasi objek ini adalah cara pandang bukan sekedar algoritma yang ditetapkan pada bahasa berorientasi objek.

Menurut Coad – Yourdon, hanya untuk sistem-sistem yang sangat sepele saja maka pendekatan berorientasi objek akan tidak berguna. Pendekatan berorientasi objek memang ditujukan untuk menangani kompleksitas besar dan berpotensi terus untuk beradaptasi menjadi sistem yang lebih kompleks [12]

Kompleksitas dalam hal ini dipandang dari segi kompleksitas persoalan dan kompleksitas solusi. Dalam ini akan menimbulkan banyak persoalan seperti cakupan proyek yang besar, komunikasi antar tim, pengembangan yang memerlukan aplikasi yang fleksibel. Aplikasi yang fleksibel artinya aplikasi dapat dikembangkan dengan menggunakan bagian aplikasi yang sebelumnya (reusability) .


(13)

Berdasarkan pengertian diatas maka penelitian ini akan menggunakan pemodelan sistem terstruktur. Hal ini berdasarkan pertimbangan sistem yang akan dibangun cukup sederhana karena hanya melibatkan tiga buah fungsional dasar saja yaitu pembangkit kunci kriptografi, proses enkripsi dan proses dekripsi. Selain itu aplikasi yang akan dibuat tidak memiliki tingkat reusability yang tinggi, baik dari segi solusi maupun pada tingkat pengembangannya.

Pemodelan sistem terstruktur akan menggunakan analisis terstruktur dan perancangan terstruktur. Tentu saja untuk mendukung pemodelan akan digunakan beberapa alat seperti diagram konteks dan Data-Flow-giagram.

2.2.5 Diagram Aliran Data (DFD – Data Flow Diagram)

Data Flow Diagram adalah sbuah teknik grafis yang menggambarkan aliran

informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output [5]. Bentuk dasar dari suatu DFD dapat digambarkan sebagai berikut :

Sistem berbasis komputer

Entiti eksternal Entiti eksternal

Entiti eksternal Entiti eksternal Informasi input

Informasi input

Informasi Output Informasi Ouput

Bagan 2.10 Model Aliran Informasi [5]

Model aliran data menunjukkan sudut pandang fungsional dimana setiap transformasi merepresentasikan satu fungsi. Selain mendeskripsikan pemrosesan di dalam sistem, kadangkala akan berguna bagi deskripsi aliran data untuk mengilustrasikan konteks sistem. Model aliran data dapat menunjukkan bagaimana sistem dan subsistem yang berbeda bertukar informasi. Subsistem-subsistem ini tidak harus berupa satu fungsi [6].


(14)

DFD tingkat 0 disebut juga dengan model sistem fundamental atau model konteks, merepresentasikan seluruh elemen sistem sebagai sebuah bubble tunggal dengan data input dan output yang ditunjukkan oleh anak panah yang masuk dan keluar secara berurutan [5].

2.2.6 Bahasa Pemrograman C#

Pertama kali sistem operasi windows diperkenalkan oleh Microsoft Corp

untuk menggantikan sistem operasi DOS (Disk Operating System), para pemrogram umumnya menggunakan bahasa pemrograman C untuk membuat program aplikasi diatas sistem operasi tersebut. Hal ini karena API (Application Programming Interface) Windows yang banyak dimanfaatkan oleh program aplikasi juga ditulis menggunakan bahasa C [13]. Bagi beberapa kalangan pemrograman C dianggap rumit karena penulis program harus mengalokasikan secara manual memori yang akan digunakan dan lebih kompleks karena adanya pointer-pointer aritmetika serta struktur program yang sulit dibaca.

Bahasa C merupakan bahasa pemrograman terstruktur dimana kita tidak bisa memanfaatkan berbagai kelebihan bahasa pemrograman yang memiliki paradigma pemrograman berorientasi objek (OOP – Object Oriented Programming) yang berkaitan dengan penggunaan ulang komponen (component

reusable) seperti penyembunyian/pembungkusan (encapsulation), pewarisan

(inheritance), polimorfisme dan sebagainya.

Pada masa-masa berikutnya para pemrogram bahasa C beralih ke bahasa C++ untuk melakukan pemrograman di atas sistem operasi Windows [13]. Dalam hal ini bahasa C++ dapat dianggap sebagai perluasan dari C yang diadaptasi dengan konsep pemrograman berorientasi objek. Bahasa pemrograman C++ ini sama rumitnya (bahkan beberapa orang menyebutnya lebih rumit) dibanding dengan bahasa C, meski memiliki keunggulan karena menggunakan paradigma pemrograman berorientasi objek. Meski sangat rumit, beberapa framework C++ sudah hadir saat ini, misalnya MFC (Microsoft Foundation Classes) yang menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi


(15)

Win32 API (kelas-kelas yang digunakan untuk mengembangkan aplikasi-aplikasi diatas sistem operasi windows yang memiliki modus 32bit)

Dalam hal tersebut, Microsoft Corp cukup tanggap dalam menghadapi keluhan para pemrogram akan kesulitan bahasa pemrograman C/C++ dengan mengembangkan bahasa pemrograman Visual Basic yang sangat populer dalam hal kemampuan dan kemudahannya dalam mengembangkan antarmuka pengguna (user interface) yang kompleks [14]. Selain itu juga Microsoft Corp menyediakan pustaka kelas yang lengkap dalam bentuk COM (Component Object Module), serta logika akses basis data yang sanga mudah bagi para pemrogram Visual Basic. Di atas MFC (microsoft foundation classes), Visual Basic menyembunyikan kompleksitas Win32 API dari pandangan pemrogram [14]. Meski demikian, versi terakhir visual Basic (VB versi 6) tidak dapat secara sempurna beradaptasi dengan konsep pemrograman berorientasi objek sehingga mengurangi fleksibilitas dan penggunaan ulang komponennya.

Di sudut dunia pemrograman yang lain, Sun Mycrosystem Inc

mengembangkan bahasa permrograman Java yang memiliki sintak cukup mirip dengan bahasa C/C++ [11]. Dalam hal ini, meskipun bahasa pemrograman Java merupakan bahasa pemrograman yang elegan dalam hal adaptasinya dengan pemrograman berorientasi objek , integrasi antarprogram yang dikembangkan menggunakan bahasa pemrograman Java cukup sukar dilakukan karena sifatnya yang open source setiap vendor di seluruh dunia memiliki aneka produk yang kadang tidak kompetibel satu sama lain. Hal ini berbeda dengan produk Microsoft Corp yang terintegrasi sangat kuat.

Beberapa waktu yang lalu, Microsoft Corp mengembangkan objek-objek COM (Component Object Module) sedemikian rupa sehingga bisa diakses oleh pemrogram C/C++, delphi dan sebagainya sehingga integrasi antar aplikasi dapat berlangsung dengan mulus pada aplikasi-aplikasi internet yang didalamnya terkandung berbagai teknologi yang beragam. Hal ini memunculkan framework .Net yang berusaha sedemikian rupa sehingga integrasi antar aplikasi ini dapat berjalan dengan lebih mulus.


(16)

Dari sudut pandang pemrogram, .Net dapat dipandang sebagai lingkungan saat aplikasi dijalankan (runtime enviroment) dan sejumlah pustaka kelas (class library) yang memungkinkan aplikasi-aplikasi diatas sistem operasi Windows dapat berjalan dengan baik [14]. Lingkungan aplikasi yang dijalankan disebut dengan CLR (Common Language Runtime) yang bertugas mengelola aplikasi-aplikasi .Net (memuat ke memori, menjalankan/mengeksekusi, dan sebagainya). Selanjutnya , komponen lain yang bermanfaat untuk menspesifikasi berbagai tipe data yang digunakan dalam konturksi pemrograman disebut sebagai CTS (Common

Type System). Dalam hal ini komponen yang bermanfaat sedemikian rupa sehingga

bisa terjadi integrasi yang ketat antar aplikasi yang dibuat menggunakan berbagai bahasa keluarga .net (visual basic.net, visual c.net, visual c++.net dan sebagainya), dinamakan sebagai CLS (Common Language Spesification).

Bahasa pemrograman C# dirancang oleh Microsoft Corp sebagai bahasa pemrograman yang berdaya-guna, aman serta mudah digunakan. Sebagai bagian dari platform .Net, bahasa pemrograman C# juga dapat digunakan untuk mengembangkan aplikasi-aplikasi sarana bergerak (mobile application), aplikasi berbasis web (web-based aplication) setta aplikasi berskala besar (Enterprise) [15]. Dari sejarah diatas dapat disimpulkan bahwa bahasa pemrograman C# merupakan gabungan dari kecanggihan bahasa keluarga C (C, C++, Objective-C, Java dan Sebagainya) dengan kemudahan bahasa pemrograman Visual Basic [16].

Secara umum bahasa pemrograman C# memiliki karakteristik umum seperti tertulis dibawah ini [14] :

a. Tidak ada alokasi memori secara manual menggunakan pointer (hal ini mirip dengan bahasa pemrograman java).

b. Manajemen memori otomatis menggunakan salah satu fiturnya yang dinamakan garbage collection (hal ini juga mirip dengan bahasa java). c. Mendukung konstruksi kelas, antarmuka, struktur dan enumerasi seperti

bahasa pemrograman berorientasi objek lainnya (misalnya C++ atau Java). d. Mendukung pemrograman berbasis atribut (attribute-based programming). e. Mendukung LinQ (Language Integrated Query) yang memungkinkan aplikasi yang ditulis menggunakan bahasa pemrograman C# mampu


(17)

berinteraksi dan bekerjasama dengan berbagai jenis format data dimana hal ini sangat penting saat kita membuat aplikasi bahasa C# yang mengakses sistem basis data relasional (RDBMS – Relational Database Management System).

f. Mendukung tipe data dan kelas generik (mirip dengan C++ dan Java). g. Mendukung operator delegasi ( => ).


(18)

(19)

27

Tahap analisis dan perancangan merupakan tahap sistematis untuk menyesuaikan kegunaan dan tujuan pada aplikasi. Tahap awal pada tahap analisis dimulai dari analisis masalah, menganalisis sistem dengan menganalisis aplikasi sejenis, analisis fungsional dan non-fungsional. Sedangkan untuk tahap perancangan dimulai dengan melakukan perancangan sistem yang mencakup perancangan antar muka dan perancangan struktur menu yang nantinya akan digunakan untuk diterapkan pada aplikasi.

3.1 Analisis Sistem

Analisis sistem merupakan penguraian dari suatu sistem informasi yang utuh kedalam bagian-bagian komponenya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan, kebutuhan serta hambatan yang terjadi. Menentukan kebutuhan yang sesuai dengan kebutuhan-kebutuhan yang diharapkan, untuk melakukan analisis sistem dilakukan beberapa analisis yaitu :

a. Analisis Masalah

b. Analisis Sistem yang Berjalan

c. Analisis Aplikasi Kriptografi yang Dibangun d. Analisis Metode / Metode RSA – CRT e. Analisis Kebutuhan Non-Fungsional f. Analisis Kebutuhan Fungsional

3.1.1 Analisis Masalah

Analisis masalah adalah tahap penjabaran masalah yang ada sebelum aplikasi ini dibangun dan bertujuan untuk membantu pembangunan aplikasi kriptografi ini. Berikut adalah penjabaran dari masalah – masalah yang ada antara lain sebagai berikut :


(20)

1. Belum terdapat pembatasan hak akses untuk melihat citra digital hasil rancangan dari pihak house the house. Hal ini mengakibatkan orang lain yang tidak memiliki kepentingan dapat melihat dan menyalahgunakan citra digital tersebut.

2. Sebuah gambar asli yang diserahkan tentu bisa dilihat berkali-kali dan ini mengakibatkan pihak klien dapat menyalahgunakan gambar tersebut untuk kepentingan pribadi seperti menggunakan desain tersebut tanpa kontrak kerjasama lebih lanjut dengan pihak perusahaan.

3.1.2 Analisis Sistem yang Berjalan

Berdasarkan hasil pengamatan dan wawancara langsung didapatkan prosedur yang dilakukan pihak perusahaan dalam proses pengajuan atau penanganan proyek yang diminta oleh pihak klien. Secara garis besar terdapat beberapa tahapan yang dilakukan seperti berikut :

1. Pihak klien meminta perusahaan untuk menangani proyek yang mereka miliki. Untuk hal ini bisa dilakukan tanpa dokumen namun pihak perusahaan meminta dokumen, minimal memo sebagai bukti untuk CEO dan dokumentasi perusahaan.

2. Memo yang telah sampai pada admin akan diperiksa oleh CEO untuk dirapatkan dengan tim yang bersangkutan. Selanjutnya CEO akan memberikan keputusan apakah akan mengambil atau menolak proyek.

3. Jika proyek ditolak maka admin akan memberikan surat penolakan dengan disertai alasan pihak perusahaan. Sedangkan jika proyek diterima maka CEO akan memberikan rancangan awal dan rancangan anggaran biaya kepada admin untuk dibuatkan dalam bentuk proposal.

4. Proposal yang telah dibuat akan disampaikan kepada pihak klien. Pihak klien akan memberikan keputusan apakah setuju dengan rancangan dan anggaran biaya yang diajukan. Jika klien tidak setuju maka mereka akan memberikan surat penolakan kepada pihak perusahaan. Sedangkan jika mereka setuju maka pihak klien akan memberikan surat persetujuan kepada perusahaan


(21)

5. Surat persetujuan atau penerimaan dari pihak klien terhadap proposal pihak perusahaan yang diterima admin akan disimpan. Selanjutnya admin akan membuatkan kontrak kerja.

6. Kontrak kerja yang telah dibuat admin akan ditandatangi oleh kedua pihak dan kontrak tersebut adalah landasan perusahaan dalam bekerja. Kontrak kerja tersebut harus disimpan dengan baik oleh kedua pihak karena itu sebagai bukti jika nanti suatu hari proyek tidak berjalan sesuai rencana.

7. Setelah kontrak kerja ditandatangani kedua pihak maka proyek dapat langsung berjalan.

Permasalahan yang terjadi dalam sistem yang berjalan pada perusahaan konsultan Art and Design House The House terdapat pada poin 3 dan 4. Untuk lebih jelasnya kita uraikan kembali permasalah yang terjadi pada proses berikut :

1. Pihak perusahaan memberikan proposal pembangunan kepada pihak klien yang didalamnya terdapat anggaran biaya, waktu dan konsep serta lampiran berupa desain gambar.

2. Pihak klien akan memberikan keputusan apakah setuju dengan rancangan dan anggaran biaya yang diajukan. Jika klien tidak setuju maka mereka akan memberikan surat penolakan kepada pihak perusahaan namun proposal dan contoh desain tidak dikembalikan kepada pihak perusahaan. Sedangkan jika mereka setuju maka pihak klien akan memberikan surat persetujuan kepada perusahaan dan akan dibuatkan kontrak kerja dengan klien.

Prosedur yang dijelaskan diatas adalah prosedur formal yang berjalan di konsultan Art and Design House The House. Untuk lebih jelasnya dari semua prosedur yang berjalan diatas dapat terlihat dari flowmap proses pengajuan proyek seperti berikut :


(22)

Proses Pengajuan Proyek

Klien Admin CEO

Permintaan penanganan proyek

Permintaan penanganan proyek

Permintaan

penanganan proyek Analisis Proyek Apakah proyek diterima? Permintaan penanganan proyek ditolak Permintaan penanganan proyek ditolak Pembuatan surat penolakan Surat penolakan penanganan proyek Surat penolakan

penanganan proyek tolak

Pembuatan RAB dan

konsep desain awal

RAB dan konsep awal desain

terima

RAB dan konsep awal desain A1 Permintaan penanganan proyek ditolak Pembuatan Proposal

RAB dan konsep awal desain Proposal A2 Proposal Pengecekan proposal Proposal diterima? Pembuatan surat penolakan Proposal ditolak Surat penolakan tolak

Surat penolakan A3

Pembuatan surat penerimaan Proposal diterima Surat penerimaan terima

Surat penerimaan Pembuatan Kontrak

Kerja

Surat penerimaan Kontrak kerja Kontrak kerja

Kontrak kerja Kontrak kerja

Penandatanganan kontrak kerja

Kontrak kerjaKontrak kerja tertandatangan (1) Kontrak kerjaKontrak kerja

tertandatangan (1) Kontrak kerjaKontrak kerja

tertandatangan (1)

Penandatanganan kontrak kerja

Kontrak kerjaKontrak kerja tertandatangan (2) S1

Kontrak kerja tertandatangan (2)

A4


(23)

Flowmap diatas adalah proses lengkap penanganan proyek dari pihak perusahaan terhadap klien. Adapun untuk melihat permasalah yang terjadi adalah pada proses berikut :

Proses Pengajuan Proyek

Klien Admin CEO

RAB dan konsep awal desain RAB dan konsep awal

desain Pembuatan

Proposal

RAB dan konsep awal desain Proposal

A1 Proposal

Pengecekan proposal

Proposal diterima?

Pembuatan surat penolakan Proposal ditolak

Surat penolakan tolak

Surat penolakan A2

Pembuatan surat penerimaan Proposal diterima

Surat penerimaan terima

Surat penerimaan


(24)

3.1.3 Analisis Aplikasi yang Akan Dibangun

Aplikasi yang dibangun adalah sebuah aplikasi yang dapat melakukan kriptografi terhadap citra. Proses kriptografi ini dilakukan agar citra digital tidak bisa dilihat menggunakan aplikasi pembuka foto. Hal ini bisa dilakukan dengan asumsi bahwa setiap foto yang akan telah dikenakan algoritma kriptografi akan mengalami pertambahan nilai sehingga citra tidak dapat dibaca oleh aplikasi pembuka foto biasa. Selain itu juga akan diberikan penyisipan nilai pada citra digital sehingga citra digital hanya dapat dibuka beberapa kali saja.

Untuk lebih jelasnya proses yang akan terjadi dalam aplikasi yang akan dibangun adalah sebagai berikut :


(25)

Hal yang dilakukan bagan 3.3 adalah interaksi antara pihak House The House

dan pihak Client. Proses pertama yang dilakukan adalah proses diluar sistem yaitu saat pihak klien meminta sebuah desain maka pihak perusahaan akan mengirimkan sebuah aplikasi dekripsi yang dilengkapi dengan menu pembangkit kunci. Selanjutnya adalah proses yang termasuk dalam cakupan aplikasi :

a. Pertama pihak klien membangkitkan kunci privat dan kunci publik. Kunci privat disimpan pihak klien dan kunci privat harus dijaga dengan baik karena kunci ini akan digunakan untuk proses dekripsi. Jika kunci ini berhasil didapatkan oleh pihak lain maka citra akan mudah didekripsi sehingga rancangan bisa dilihat oleh pihak yang tidak berkepentingan. b. Kunci publik yang telah dibangkitkan ditahap pertama akan dikirimkan ke

pihak perusahaan. Kunci ini berguna untuk melakukan proses enkripsi citra. Pengiriman ini bisa dilakukan melalui jaringan lain diluar aplikasi. Kunci ini sifatnya aman karena jika kunci publik berhasil diambil maka pihak lain tidak dapat melakukan proses dekripsi karena proses dekripsi hanya menggunakan kunci privat.

c. Tahapan ketiga adalah ketika kunci publik telah didapatkan oleh pihak perusahaan maka pihak perusahaan akan melakukan pencarian gambar yang akan dikirimkan kepada klien.

d. Setelah gambar dan kunci siap maka keduanya akan dimasukkan kedalam aplikasi enkripsi. Pada proses ini akan gambar/citra akan dienkripsi dengan menyisipkan nilai pembatas dekripsi pada salah satu indeks arraybyte. Pada proses enkripsi ini akan menghasilkan suatu file dengan format .jpg. e. Ketika proses enkripsi telah dilakukan dan menghasilkan file terenkripsi

maka selanjutnya pihak perusahaan akan mengirimkan file terenkripsi tersebut kepada pihak perusahaan.

f. File terenkripsi yang telah sampai pada pihak perusahaan akan digunakan pada proses dekripsi. Dengan menggunakan kunci privat yang telah disimpan sebelumnya dan file terenkripsi tersebut maka proses dekripsi dapat dilakukan. Proses dekripsi ini akan mengembalikan file terenkripsi menjadi file citra semula. Pada proses enkripsi ini terdapat hal penting yaitu


(26)

proses pengecekan batas dekripsi. Pengecekan ini akan menentukan file tersebut masih bisa dienkripsi ataukah tidak. Jika proses ini telah dilakukan maka akan menghasilkan file citra aslinya dan tahapan proses aplikasi ini pun selesai.


(27)

3.1.3.1 Analisis Pembangkit Kunci

Proses pembangkit kunci dilakukan terlebih dahulu oleh klien. Proses ini akan menghasilkan kunci privat yang digunakan untuk proses dekripsi dan kunci publik yang akan digunakan pihak perusahaan untuk proses enkripsi. Proses ini mewakili model proses kriptografi pada bagan 3.3 pada tahapan 1.

Berikut flowchat yang akan menggambarkan proses pembangkit kunci dari sebuah metode RSA – CRT :

Masukkan bilangan prima untuk variabel P, Q, E

Mulai

Lakukan pengujian keprimaan P, Q dan

E

Apakah P, Q dan E prima ?

Tidak

Bentuk kunci publik dan kunci privat

Kunci Publik dan Kunci

Privat Ya

Selesai


(28)

3.1.3.1.1 Pengujian Bilangan Prima

Dalam aplikasi ini diperlukan pengujian nilai bilangan prima, hal ini untuk memenuhi tahap 2 dan 3 flowchart 3.4. Berikut untuk melakukan pengujian bilangan prima :

Tabel 3.1 Algoritma pengujian bilangan prima

Algoritma Uji Bilangan Prima

1 BP  Bilangan Prima.

2 If BP <= 1 Then

3 Output (“Bukan Bilangan Prima”) 4 Else

5 For i=2 to BP-1 do

6 If (BP mod i = 0) then

7 Output (“Bukan Bilangan Prima”) 8 Else

9 Output (“Bilangan Prima”) 10 Endif

11 Endfor 12 Endif

3.1.3.1.2 Proses Pembangkit Kunci

Flowchart 3.4 pada proses 1, 4 dan 5 dijelaskan dalam bentuk algortima berikut :

Tabel 3.2 Algoritma Pembangkit Kunci RSA - CRT Tahap Algoritma Pembangkit Kunci RSA – CRT 1 Bangkitkan bilangan prima besar p dan q.

2 n  p * q

3 ɸ(n)  (p – 1) * (q – 1)

4 e  Z ɸ(n) dengan gcd(e, ɸ(n)) = 1 5 d  e-1 pada Z

ɸ(n) 6 dP  d mod (p - 1)


(29)

7 dQ  d mod (q – 1) 8 qInv = q-1 pada Z

p

Kpublik = (e, n), Kprivat = (dP, dQ, qInv, p, q)

Uraian untuk proses pembakit kunci RSA – CRT adalah sebagai berikut : 1. Membangkitkan bilangan prima besar untuk nilai p dan q (tahap 1)

Bilangan prima merupakan bilangan asli (bilangan yang lebih besar sama dengan nol, b >= 0) yang lebih besar dari 1 (p > 1) memiliki faktor pembagi yaitu 1 dan bilangan itu sendiri. Contoh bilangan prima adalah {2, 3, 5, 7, ...}. Satu (1) bukan merupakan bilangan prima karena menurut pengertian bilangan prima, bilangan prima adalah bilangan bulat lebih dari 1 [2]. Nilai p dan q tidak boleh sama (p ≠ q)

Pada proses pembangkit kunci ini diperlukan bilangan prima karena hanya bilangan prima yang dapat memenuhi prinsip sistem kongruen pada eksponensial modular. Selain itu perkalian prima besar yang akan dilakukan pada langkah 2 akan menentukan kekuatan dari proses enkripsi yang akan dilakukan.

Sebagai contoh untuk menggambarkan proses analisis ini akan kita tentukan nilai p dan q sebagai berikut p = 17 dan q = 31.

2. Perkalian p dan q untuk mendapatkan nilai n (tahap 2)

Nilai n ini akan menjadi salah satu variabel untuk melakukan proses enkripsi. Semakin besar nilai p dan q maka akan menghasilkan nilai n yang semakin besar. Nilai n yang besar maka akan semakin sulit bagi peretas untuk menentukan nilai p dan q. Nilai p dan q sendiri selain untuk menentukan nilai n tapi juga merupakan sumber bagi pembentukan nilai d yang merupakan unsur pembentuk kunci privat.

Sebagai contoh untuk menggambarkan proses analisis ini akan kita tentukan nilai p dan q yang telah ditetapkan pada proses pertama akan kita lakukan perkalian.


(30)

n = p x q = 17 x 31 = 527

3. Mencari nilai ɸn (tahap 3)

Mencari nilai ɸn sangat penting, hal ini karena nilai ɸn akan digunakan untuk menentukan nilai e yang akan dicari pada proses selanjutnya.

Dengan nilai yang telah ditetapkan pada contoh di proses sebelumny maka nilai ɸn dapat kita tetapkan sebagai berikut :

ɸn = (p – 1) x (q – 1) = (17 – 1) x (31 -1) = 16 x 30

= 480

4. Menentukan nilai e (tahap 4)

Nilai e merupakan pasangan kunci publik n (e, n). Nilai e ini juga yang akan menentukan kekuatan dari sebuah chipertext. Untuk mencari nilai e akan digunakan prinsip faktor persekutuan terbesar. Hal ini untuk mencari nilai prima relatif.

Faktor persekutuan terbesar adalah elemen terbesar pada himpunan divisor

(himpunan bilangan integer yang membagi habis sebuah bilangan integer)dua bilangan integer [2]. Misalnya 18 memiliki divisor {1, 2, 3, 6, 9,18} dan 12 memiliki divisor {1, 2, 3, 4, 6, 12} maka himpunan divisor bersamanya adalah {1, 2, 3, 6} dan yang terbesar adalah 6. Dinotasikan sebagai gcd(18, 12) = 6.

Dalam tahapan ke-4 algoritma pembangkit kunci RSA – CRT dituliskan bahwa “e Z ɸ(n) dengan gcd(ɸ(n), e) = 1”. Hal ini berarti bahwa

untuk setiap nilai e dan ɸ(n) akan memiliki faktor persekutuan terbesar 1. Untuk kondisi seperti gcd(ɸ(n), e) =1 biasa disebut juga dengan “Prima Relatif”.

Untuk memenuhi kondisi tahapan tersebut maka bisa gunakan cara sederhana yaitu menggunakan bilangan prima untuk mengisi nilai e. Bilangan prima yang digunakan haruslah memiliki nilai yang bukan merupakan divisor dari nilai ɸ(n). Sebagai contoh :


(31)

Diberikan suatu nilai untuk P = 17 dan Q = 31. Maka kita bisa saja mengambil nilai prima sembarang untuk nilai e. Jika P =17 dan Q = 31 maka nilai ɸ(n) sebagai berikut :

ɸ(n) = (p – 1) x (q – 1) = (17 – 1) x (31 – 1) = 16 x 30

= 480

Maka langkah selanjutnya adalah menentukan nilai e, nilai e akan diberikan adalah bilangan prima yang bukan merupakan divisor dari 480. Penggunaan bilangan prima ini tidaklah mutlak karena bisa saja kita menggunakan bukan bilangan prima selama memenuhi syarat gcd(ɸ(n), e) = 1. Sebagai contoh bisa saja kita menggunakan nilai 77. Bisa kita lihat nilai gcd(480, 77) dengan algoritma Euclid yang bersifat iteratif [2] seperti berikut ini :

Tabel 3.3 Algoritma Euclid Iteratif

Algoritma Euclid Iteratif

1 A  e 2 B  ɸ(n)

3 While B > 0 do 4 Q  A/B

5 R  A – Q * B 6 A  B

7 B  R 8 Endwhile 9 Return A

Tabel 3.4 Contoh gcd (480, 77)

A B Q = A / B R = A mod B

480 77 6 18

77 18 4 5

18 5 3 3

5 3 1 2


(32)

A B Q = A / B R = A mod B

2 1 2 0

1 0

Dari hasil diatas terlihat bahwa gcd (480, 77) = 1 hal ini sesuai dengan syarat gcd(ɸ(n), e) = 1. Namun penggunaan bilangan acak ini akan memberikan beban tersendiri terhadap memori karena harus melakukan pengujian terhadap nilai “prima relatif” yang belum tentu bernilai benar. Sedangkan dengan menggunakan bilangan prima kita hanya akan melakukan pengujian nilai dengan cara membagi nilai ɸ(n) dengan e. Hal ini bisa dilakukan karena bilangan prima hanya memiliki faktor pembagi bilangan itu sendiri dan 1, yang berarti bahwa yang mungkin membagi bilangan ɸ(n) hanya nilai e itu sendiri. Sebagai contoh kita akan menggunakan nilai e = 73 dengan nilai ɸ(n) tetap 480. Berikut terlihat di tabel berikut :

Tabel 3.5 Contoh gcd (480, 73)

A B Q = A / B R = A mod B

480 73 6 42

73 42 1 31

42 31 1 11

31 11 2 9

11 9 1 2

9 2 4 1

2 1 2 0

1 0

Dari tabel diatas terlihat bahwa nilai untuk gcd (480, 73) = 1. Hal ini membuktikan bahwa nilai prima dapat digunakan untuk nilai dari e. Sehingga nilai e dalam aplikasi ini hanya bisa dimasukkan dengan nilai prima.

Nilai e dapat sembarang dengan syarat bahwa nilai e hanya memiliki faktor persekutuan terbesar dengan ɸn yaitu 1. Untuk mempercepat proses yang ada maka dapat kita asumsikan bahwa nilai e merupakan bilangan prima yang tidak habis membagi nilai ɸn. Dengan hal tersebut maka kita tentukan nilai e = 73. Dengan demikian sampe tahap ke- 4 ini telah kita dapatkan kunci publik yaitu


(33)

Kpublik = (e, n)

= (73, 527)

5. Menentukan nilai d (tahap 5)

Nilai d digunakan untuk proses dekripsi . Dalam algortima RSA – CRT nilai d akan diuraikan ke beberapa variabel kunci yaitu dP, dQ dan qInv. Nilai d bisa dipecah ke beberapa variabel tersebut karena menggunakan sistem kongruen modular.

Untuk mencari nilai d digunakan teorema invers. Invers digunakan pada proses pembangkit kunci dan dekripsi. Dalam pembangkit kunci invers digunakan untuk mencari nilai d dan qInv. Seperti yang terlihat pada algoritma pembangkit kunci yaitu “d = e-1 pada Z ɸ(n)” dan “qInv = q-1 pada Zp”.

Untuk operasi penjumlahan modulo nilai identitas adalah 0. Sehingga untuk setiap a Є Zm nilai invers a (-a) adalah m – a. Sebagai contoh pada Z7, -2 adalah

7 – 2 = 5 dan 5 + 2 ≡ 0 ( mod 7 ) [2]. Notasi yang digunakan untuk merepresentasikan invers perkalian bilangan a adalah a-1.

Tidak semua elemen pada Zmmemiliki invers perkalian. Secara matematika dapat dibuktikan elemen yang memiliki invers perkalian hanya elemen yang merupakan bilangan prima relatif terhadap m, yaitu untuk a Є Zm berlaku

gcd(ɸ(n), e).

Salah satu cara untuk mencari nilai invers adalah dengan menggunakan algoritma extend euclid yang dapat menemukan nilai s dan t yang memenuhi persamaan “s x m + t x a = gcd( m, a)”. Karena gcd(m, a) = 1 dan s x m≡ 0 (

mod m) maka persamaan tersebut menjadi t x a = 1 atau t x a ≡ 1 ( mod m) sehingga t = a-1. Sehingga dapat digambarkan algortima extend euclid sebagai berikut :

Tabel 3.6 Algoritma Extend Euclid

Algoritma Extend Euclid

1 A  e ; B  b; 2 T1  0 ; T2  1; 3 While B > 0 do


(34)

4 Q  A/B

5 R  A – Q * B 6 A  B ; B  R 7 T  T1 – Q * T2; 8 T1  T2 ; T2  T 9 Endwhile

10 Return t  T1

Berikut contoh untuk mencari nilai d dengan nilai e = 73 dan ɸ(n) = 480 menggunakan algoritma extend euclid :

Tabel 3.7 Contoh mencari nilai invers (e-1)

A B Q R T1 T2 T

480 73 6 42 0 1 -6

73 42 1 31 1 -6 7

42 31 1 11 -6 7 -13

31 11 2 9 7 -13 33

11 9 1 2 -13 33 -46

9 2 4 1 33 -46 217

2 1 2 0 -46 217 -480

1 0 217 -480

Dari hasil perhitungan diatas didapatkan nilai T1 = 217 dimana t = T1 maka

t = 217. Nilai t merupakan nilai yang didapatkan dari 73-1 pada Z480 sehingga

dapat disimpulkan bahwa nilai d = t yang berarti d = 217. Untuk nilai qInv juga dilakukan dengan cara yang sama dengan mencari nilai d.

Dengan teorema invers didapatkan nilai d yaitu d = 217. 6. Mencari nilai dP dan dQ (tahap 6 dan 7)

Nilai dP dan dQ merupakan bagian kunci yang digunakan untuk proses dekripsi (kunci privat). Untuk mencari nilai dP dan dQ cukup mengikuti rumus yang ada pada algoritma. Berikut adalah proses mencari dP dan dQ jika nilai yang digunakan adalah nilai yang telah ditetapkan pada contoh sebelumnya :


(35)

dP = d mod (p - 1) = 217 mod (17 – 1) = 9

dQ = d mod (q – 1) = 217 mod (31 – 1) = 7

7. Mencari nilai qInv (tahap 8)

Nilai qInv sama dengan dP dan dQ karena merupakan bagian dari kunci private. Nilai ini akan digunakan pada proses dekripsi. Untuk mencari nilai qInv kita menggunakan teorema invers seperti yang ada pada pencarian nilai d. Dengan nilai yang telah ditetapkan pada contoh sebelumnya maka akan kita cari nila qInv sebagai berikut :

qInv = q-1 pada Zp

Dengan rumus yang digunakan maka akan kita dapatkan nilai qInv = 11. Sehingga sampai tahapan ini kita telah mendapatkan kunci privat Kprivat = (dP,

dQ, qInv, P, Q) = (9, 7, 11, 17, 31).

Semua tahapan proses pembangkit kunci diatas menghasilkan kunci sebagai berikut :

Kunci publik : (73, 527)

Kunci privat : (9, 7, 11, 17, 31)

3.1.3.2 Analisis Citra Digital

Sebelum proses enkripsi dilakukan maka pihak perusahaan harus menyediakan terlebih dahulu citra yang akan dilakukan enkripsi. Proses ini merupakan penggambaran proses yang terjadi pada bagan 3.3 tahap 2.

Citra ini dapat berformat .jpg dan .bmp dengan pembatasan ukuran yaitu ukuran terbesar lebar dan tinggi yaitu 1037 x 384 piksel. Berikut merupakan proses pengolahan citra sehingga citra siap digunakan pada proses dekripsi :


(36)

Mulai

Cari citra yang akan diambil nilainya

Citra Digital

Ambil nilai citra digital dan tempatkan pada

array

Ubah tipe data nilai citra dari byte ke long pada setiap

array

Selesai Lakukan proses

resizing untuk citra

digital

Bagan 3.5 Flowchat pengambilan nilai citra digital

1

2

3


(37)

Sebagai gambaran akan digunakan sebuah citra dengan ukuran 360 x 273 pixel seperti berikut :

Bagan 3.6 Citra digital ukuran 360 x 273

Proses ke 1 dan 4 pada bagan 3.5 dilakukan pada proses komputasi. Proses ini lebih dititik beratkan pada proses implementasi yaitu pengkodean.

Proses ke 2 pada bagan 3.5 untuk melakukan fungsi resizing terhadap citra digital digunakan algoritma berikut ini :

Tabel 3.8 Algortima Resizing citra digital

Algoritma Resizing citra digital

1 LebarAsli  lebargambar 2 TinggiAsli  tinggigambar

3 Persenlebar  1037 / LebarAsli 4 Persentinggi  384 / TinggiAsli 5 If (persentinggi < persenlebar) then 6 Persen  persentinggi

7 Else

8 Persen  persenlebar 9 endif

10 Lebarbaru  LebarAsli * Persen 11 Tinggibaru  TinggiAsli * Persen


(38)

Proses ke 3 pada bagan 3.5 untuk mengambil nilai dari suatu digital dibutuhkan fungsi khusus pada pemrograman yang digunakan. Hal ini dikarenakan hanya proses pengambilan nilai digital suatu citra digital hanya bisa dilakukan dengan proses komputasi. Proses komputasi ini sangat bergantung aturan setiap bahasa pemrograman yang digunakan.

Berdasarkan analisis yang dilakukan untuk bahasa C# dapat digunakan fungsi Image.Save(Stream, Format). Fungsi ini akan menyimpan semua nilai dari citra digital yang berisi header hingga semua piksel yang terdapat didalam image tersebut. Semua nilai akan disimpan dalam bentuk stream atau antrian sementara didalam memori yang selanjutnya kita konversi ke bentuk array.

Dari hasil analisis yang dilakukan untuk citra pada bagan 3.6 didapatkan 53.292 nilai yang tersebar dalam array 1 dimensi. Penggunaan array 1 dimensi sangat sesuai dengan data yang ada. Hal ini melihat nilai yang didapatkan tidak sesuai jika bibentuk ke dalam array 2 dimensi.

Jika array 2 dimensi merujuk pada square tesselation maka kita membutuhkan array dengan kolom dan baris yang sama. Hal ini berarti bahwa dibutuhkan nilai kuadrat sehingga ukuran kolom dan baris sama. Contoh bahwa terdapat ukuran matriks 2 dimensi berukuran 8 x 8 atau 8 kuadrat maka akan bisa ditampung data sebanyak 64 data. Berlaku sebaliknya yaitu jika kita mempunyai 100 data maka kita memerlukan kolom x baris yaitu √ atau matriks berukuran 10 x 10.

Perhitungan kolom x baris pada matriks dua dimensi untuk data citra digital adalah sebagai berikut :

Nilai = 53.292 data Kolom = baris Kolom = √5 . 9

= 230,85 ≈ 231


(39)

Untuk banyak kolom tidak bisa menggunakan bilangan pecah sehingga dibulatkan ke atas menjadi 231. Dari hasil ini maka didapatkan ukuran matriks 231 x 231. Karena melalui proses pembulatan maka tentu akan menyisakan tempat untuk nilai yang banyak. Berikut perhitungan dari array yang tersisa :

Sedangkan yang dibutuhkan sebanyak 53.292. Hal ini berarti ada 53361 – 53929 = 69 array tidak terpakai. Hal ini berarti bahwa jika menggunakan tipe data long yang memiliki kapasitas pemesanan memori sebanyak 4 byte maka akan ada 276 byte dari memori yang tidak digunakan.

Berdasarkan analisis dan perhitungan maka yang paling sesuai adalah dengan menyimpan nilai pada array satu dimensi. Dan penyimpanan ini pun tidak

melanggar aturan mengingat square tesselation hanya untuk memberikan gambaran nilai dari suatu file citra.

Dari 53292 data yang didapatkan akan kita gunakan 10 data terakhir dari citra untuk menggambarkan proses enkripsi dan dekripsi. Berikut adalah nilai yang diambil :

Bagan 3.7 Nilai citra bagan 3.6 Kolom x baris = 231 x 231


(40)

3.1.3.3 Analisis Proses Enkripsi

Proses enkripsi ini mewakili proses ke 3 pada bagan 3.3. Proses ini dilakukan oleh pihak perusahaan untuk menyandikan gambar sehingga hasilnya gambar tidak bisa dibuka dengan aplikasi pembuka citra digital.

Proses yang dilakukan untuk melakukan enkripsi dengan metode RSA – CRT ini sama dengan melakukan enkripsi pada RSA biasa. Hal ini karena teorema CRT hanya digunakan pada proses dekripsi yang berakibat pada proses pembangkit kunci juga.

Secara umum proses enkripsi yang terjadi dapat terlihat seperti pada flowchart berikut ini :

mulai

Nilai citra yang telah didapatkan

Masukkan kunci, kode file dan batas

dekripsi

Lakukan Proses Enkripsi

Simpan file hasil enkripsi File hasil

enkripsi

selesai

Bagan 3.8 Flowchart proses enkripsi

1

2


(41)

Proses 1 dan 2 tergambar pada algoritma enkripsi RSA –CRT. Sedangkan untuk proses 3 lebih dikhususkan pada tahapan implementasi karena proses penyimpanan hanya bisa dilakukan melalui proses komputasi. Untuk algortima pada proses enkripsi cukup sederhana. Hal ini bisa terlihat pada tabel 3.9 berikut :

Tabel 3.9 Algoritma Enkripsi RSA - CRT

Algoritma Enkripsi RSA – CRT

1 Input : K

publik = (e, n), P Є Zn

2 Output : C Є Zn

3 C = Pe mod n

Dari algoritma diatas terlihat bahwa P merupakan masukan untuk dilakukan proses enkripsi. Dalam kasus kriptografi pada citra ini nilai P merupakan masukan berupa nilai bytearray yang didapatkan dari suatu file citra.

Sebagai contoh kita ambil gambar berekstensi .jpg berukuran 360 x 273 sebagai berikut :


(42)

Selanjutnya adalah kita ambil nilai dari citra digital tersebut yang akan kita tampilkan dalam bentuk sampel yang digambarkan dalam bentuk array satu dimensi. Dan dalam hal ini akan kita ambil 10 nilai terakhir dari citra tersebut :

Bagan 3.10 Nilai gambar bagan 3.11

Selanjutnya nilai tersebut yang akan kita lakukan enkripsi. Dari proses pembentukan kunci telah kita dapatkan nilai e dan n yang merupakan bahan untuk melakukan enkripsi. Nilai e = 73 dan nilai n = 527 akan kita masukkan kedalam algoritma kriptografi dengan sample nilai dari tabel 3.11.

Dalam sistem enkripsi RSA dilakukan dengan menggunakan sistem eksponensial modular ( C = Pe mod n ). Pada persamaan tersebut memungkinkan proses yang memakan waktu dan memori yang besar ketika nilai P yang dipangkatkan dengan nilai yang e besar. Untuk mempercepat proses pada sistem eksponensial modular tersebut dilakukan dengan menggunakan algoritma square and multiply [2].

Algoritma square and multiply mengasumsikan eksponen e dalam bentuk biner sehingga dapat direpresentasikan sebagai berikut :

� = ∑ �� � �− �=


(43)

Dengan l adalah panjang x dalam biner. Dengan xi bernilai 0 atau 1, 0 ≤ 1 ≤ l – 1. Adapun untuk algortima square and multiply adalah sebagai berikut :

Tabel 3.10 Algoritma square and multiply

Algoritma Square and Multiply

1 Input : C, e, n

2 Output : y = Ce

mod n

3 y = 1

4 For i = l – 1 downto 0 do

5 y = y2

mod n

6 If ei = 1 then

7 y = (y x C) mod n

8 Endif 9 Endfor 10 Return y

Untuk membuktikan dan memberikan gambaran lebih jelas dari algoritma diatas maka diberikan contoh dengan mencari y dari 5522 mod 7 sebagai berikut :

Representasi biner 22 adalah 10110 dengan e = 5 sehingga perhitungan eksponensial 522 mod 7 adalah :

Tabel 3.11 Contoh eksponensial modular

i xi z

4 1 12 x 5 ≡ 5 mod 7 3 0 52≡ 4 mod 7 2 1 42 x 5 ≡ 3 mod 7 1 1 32 x 5 ≡ 3 mod 7 0 0 32≡ 2 mod 7


(44)

Dengan menggunakan algoritma enkripsi dan memakai prinsip eksponensial modular dalam proses perhitungannya didapatkan nilai citra yang terenkripsi sebagai berikut :

Bagan 3.11 Nilai citra terenkripsi

Dari nilai diatas sangat terlihat perubahan nilai yang sangat signifikan yang melampui batas tipe data byte yaitu 255. Sehingga jika kita akan melakukan proses enkripsi sebaiknya ubah tipe data menjadi tipe data long. Selain itu juga seperti yang telah dibahas pada analisis citra digital bahwa dengan nilai yang melebihi 255 kita tidak akan bisa melihat citra tetapi yang kita bisa lihat hanya sebuah file yang berisi nilai saja dan file tersebut akan kita beri ekstensi .jpg.

Pada proses ini pula akan ditambahkan dua buah indeks array untuk menampung kode file dan batas dekripsi dari citra terenkripsi tersebut. Kedua nilai tersebut digunakan untuk membatasi proses dekripsi sehingga proses dekripsi hanya bisa dilakukan sebatas yang diinginkan pihak perusahaan.

Kode file digunakan untuk menamakan file yang menyimpan riwayat batas dekripsi. File ini akan disimpan ditempat dimana aplikasi ini berada dan dibentuk dalam bentuk hidden file agar mengurangi resiko dihapus oleh pengguna.

Kita misalkan bahwa dengan kode file HTH dan batas dekripsi 2 kali dekripsi akan kita masukkan ke dalam aaray yang baru ditambahkan maka array baru yang terbentuk adalah sebagai berikut :


(45)

Bagan 3.12 Nilai citra terenkripsi setelah penyisipan kodefile dan batas dekripsi

Nilai pembatas dekripsi ini disimpan dalam file citra itu sendiri dan file terpisah (file yang muncul akibat proses dekripsi). Pada file citra nilai tersebut akan terus terkurangi yang selanjutnya akan disimpan kembali (rewrite) di file citra terenkripsi sehingga file terenkripsi mempunyai nilai pembatas dekripsi yang baru. Selain itu juga untuk mengatasi penggunaan file citra terenkripsi yang belum di-rewrite setelah nilai dekripsi habis maka dibuatlah file bayangan yang berfungsi untuk melakukan penyimpanan nilai dekripsi dari file tersebut.

3.1.3.4 Analisis Proses Dekripsi

Proses dekripsi merupakan proses membalikan nilai yang sudah terenkripsi dari suatu chipertext ke bentuk semula dalam bentuk plaintext dalam kasus ini akan diubah ke citra semula. Alur proses dekripsi dapat terlihat pada flowchart berikut ini :


(46)

mulai

Gambar yang akan didekripsi Cari gambar yang

akan didekripsi

Masukkan kunci

Cek nilai kunci

Apakah nilai kunci benar?

tidak

Cek batas dekripsi

Lakukan proses dekripsi ya Simpan file terenkripsi dengan perbaruan batas dekripsi secara automatis selesai masih Apakah masih dalam batas yang

ditentukan? Tampilkan pesan gagal proses dekripsi Tampilkan hasil proses dekripsi tidak

Bagan 3.13 Flowchart proses dekripsi

1 2 3 4 5 6 7 8 9 10


(47)

Adapun algoritma dari proses dekripsi dapat terlihat sebagai berikut :

Tabel 3.12 Algoritma Proses Dekripsi RSA - CRT

Algoritma Dekripsi

Input : C = Pe mod n, K

privat = (dP, dQ Output : P

1 m1 = C

dP mod p 2 m2 = C

dQ mod q

3 h = qInv (m1 - m2) mod p 4 P = m2 + h.q

Terlihat bahwa untuk mencari nilai m1 dan m2 digunakan eksponensial modular seperti yang telah dibahas pada proses emkripsi. Untuk membuktikan algoritma tersebut kita akan membuktikan dengan mendekripsikan nilai C = 2942 yang merupakan hasil enkripsi dari nilai asli P = 777. Kunci privat yang digunakan adalah Kprivat = (dP, dQ, qInv, p, q) = (5, 17, 76, 83, 71). Berikut rincian proses

dekripsi yang dilakukan :

a. m1 = CdP mod p = 29425 mod 83 = 30

b. m2 = CdQ mod q = 294217 mod 71 = 67

c. h = qInv * (m1– m2) mod p = 76 * (30 – 67) mod 83 = 10

d. P = m2 + (h * q) = 67 + (10 * 71) = 777

Dengan proses yang sama dengan yang ada dicontoh maka akan kita lakukan pula terhadap file terenkripsi yang dijelaskan pada proses enkripsi tabel 3.13. Hal ini dilakukan untuk memberikan gambaran nyata proses dekripsi yang akan dilakukan. Berikut merupakan gambaran dari proses dekripsi yang akan dilakukan :


(48)

Bagan 3.14 citra terenkripsi yang akan dilakukan proses dekripsi Kprivate = (9, 7, 11, 17, 31)

Dengan nilai P = 205 pada larik ke 53282 maka akan terlihat proses berikut a. m1 = CdP mod p = 2059 mod 17 = 1

b. m2 = CdQ mod q = 2057 mod 31 = 7

c. h = qInv * (m1– m2) mod p = 11 * (1 – 7) mod 17 = 2

d. P = m2 + (h * q) = 7 + ((2) * 31) = 69

Terlihat bahwa nilai P hasil dekripsi adalah 69 dan sesuai nilai asli citra pada array citra asli pada larik 53282 (bagan 3.17). Lakukan hal yang sama pada nilai citra terenkripsi lainnya. Sehingga menghasilkan nilai hasil dekripsi sebagai berikut :


(49)

Bagan 3.15 Nilai citra setelah proses dekripsi

Pada proses ini juga kurangi nilai batas dekripsi sehingga nilai citra terenkripsi yang baru sebagai berikut :


(50)

3.1.3.5 Deskripsi Aplikasi yang Akan Dibangun

Aplikasi kriptografi pada citra ini merupakan aplikasi yang dapat digunakan untuk melakukan penyamaran gambar pada citra digital sehingga gambar tidak dapat dibuka pada aplikasi pembuka citra digital. Selain itu juga aplikasi ini dapat melakukan pembatasan bagi klien untuk melihat gambar yang ada.

Aplikasi ini akan diberikan pihak perusahaan pada klien dengan beberapa cara yaitu dengan cara transfer menggunakan media penyimpanan seperti flashdisk, fasilitas berbagi file seperti dropbox dan melalui pengiriman pesan seperti email.

Dengan konsep aplikasi desktop yang dapat berjalan disemua komputer bersistem operasi windows maka ditetapkan beberapa hal sebagai berikut :

1. Ukuran jendela aplikasi

Aplikasi ini berukuran 1280 x 600 piksel dengan mode default yaitu maksimum tampilan layar dan dapat diperkecil maupun dilakukan minimimasi.

2. Alat input

Alat input yang digunakan yaitu keyboard dan penunjuk pointer seperti

mouse dan touchpad.

3. Citra yang diolah

Untuk citra yang ditampilkan berukuran maksimum lebar atau tinggi yaitu 1080 piksel.

4. Warna jendela aplikasi

Warna jendela aplikasi yang digunakan adalah sebagai berikut : Putih Abu-abu Biru Muda Biru

Bagan 3.17 Warna jendela aplikasi

5. Huruf

Huruf yang digunakan adalah jenis Times New Roman

3.1.4 Analisis Spesifikasi Kebutuhan Perangkat Lunak (SKPL)

Analisis spesifikasi kebutuhan perangkat lunak merupakan analisis yang dibutuhkan untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi ini berisi deskripsi dari kebutuhan perangkat lunak yang akan dibangun baik kebutuhan non fungsional maupun kebutuhan fungsional.


(51)

3.1.4.1 Kebutuhan Non Fungsional

Analisis spesifikasi kebutuhan non fungsional berisi batasan-batasan dari layanan-layanan dan fungsi-fungsi dari sebuah sistem, seperti batasan waktu, batasan dari pengembangan proses, serta batasan pengguna.

Tabel 3.13 Kebutuhan non fungsional

Nomor Spesifikasi Kebutuhan Non Fungsional

SKPL-NF-001 Sistem ini dibangun berbasis desktop.

SKPL-NF-002 Sistem ini bisa digunakan dilaptop dengan spesifikasi rendah

3.1.4.2 Kebutuhan Fungsional

Analisis spesifikasi kebutuhan fungsional berisi pernyataan dari layanan sistem yang harus disediakan, bagaimana sistem harus berjalan terhadap input tertentu dan bagaimana sistem harus berperilaku dalam situasi tertentu. Analisis spesifikasi kebutuhan fungsional menjelaskan fungsionalitas dari sistem serta menjelaskan layanan dari sistem secara detail.

Tabel 3.14 Kebutuhan Fungsional

User Recuirement

Nomor Spesifikasi Kebutuhan Fungsional

SKPL-F-001 Klien dapat merasa aman bahwa gambar hanya dilihat oleh pihak

klien

SKPL-F-002 Perusahaan dapat memberikan batasan klien untuk melihat

gambarnya

System Recuirement

Nomor Spesifikasi Kebutuhan Fungsional

SKPL-F1-001 Klien dapat membuat kunci publik dan kunci kunci privat

SKPL-F1-002 Gambar dienkripsikan oleh aplikasi dengan menggunakan kunci

publik

SKPL-F1-003 Gambar hanya bisa didekripsikan oleh klien dengan kunci privat


(52)

3.1.5 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non-fungsional dilakukan untuk mengetahui spesifikasi kebutuhan untuk aplikasi. Spesifikasi kebutuhan melibatkan analisis perangkat keras / hardware, analisis perangkat lunak / software, analisis pengguna / user.

3.1.5.1 Analisis Kebutuhan Perangkat Keras

Berdasarkan hasil pengamatan yang ada didapatkan beberapa data perangkat keras yang tersedia di perusahaan Art and Design House The House

adalah sebagai berikut:

Tabel 3.15 Ketersediaan Perangkat Keras

No Perangkat Keras Spesifikasi

1 6 Buah Komputer

Hardisk 500 GB Prosesor 2,5 GB VGA 4 GB

Memory RAM 2 GB

Monitor LCD dengan resolusi 1024x768

Keyboard Standard port USB Mouse Standard port USB Lan Card 100Mbps

2 Switch 8 Chanel / 100 Mbps

Sedangkan untuk kebutuhan aplikasi yang akan dibangun bisa dilihat seperti yang tertera pada analisis sistem berikut ini :

Tabel 3.16 Minimum spesifikasi perangkat keras

No Perangkat Keras Spesifikasi

1 Komputer

Hardisk 256 GB Prosesor 1 GB VGA 512 GB


(53)

No Perangkat Keras Spesifikasi

Monitor LCD dengan resolusi 1024x768 Keyboard Standard port USB

Mouse Standard port USB

Berdasar hasil analisis yang dilakukan maka dapat disimpulkan bahwa perangkat keras yang tersedia di perusahaan Art and Design House The House

sudah sangat memadai untuk menjalankan aplikasi kriptografi yang akan dibangun dan sepesifikasi ini pun berlaku untuk setiap klien dari perusahaan ini. Dengan spesifikasi ini diharapkan dengan menggunakan netbook aplikasi ini pun bisa dijalankan sehingga tidak akan mempersulit pihak perusahaan dan klien dalam mengoperasikannya.

3.1.5.2 Analisis Perangkat Lunak

Berdasarkan pengamatan lapangan yang dilakukan didapatkan bahwa sudah terdapat beberapa perangkat lunak yang dimiliki sebagai berikut :

Tabel 3.17 Ketersediaan perangkat lunak

No Perangkat Lunak Spesifikasi

1 Sistem Operasi Microsoft Windows 7

dan Windows 8.1

Sedangkan berdasar analisis perangkat lunak digunakan untuk menjalankan aplikasi ini maka yang dibutuhkan adalah sebagai berikut :

Tabel 3.18 Minimum spesifikasi perangkat lunak

No Perangkat Lunak Spesifikasi

1 Sistem Operasi Microsoft Windows Xp

Berdasar hasil analisis yang dilakukan maka dapat disimpulkan bahwa perangkat lunak yang tersedia di perusahaan Art and Design House The House


(54)

dan sepesifikasi ini pun berlaku untuk setiap klien dari perusahaan ini. Dengan spesifikasi perangkat lunak yang sederhana ini diharapkan tidak mempersulit pihak perusahaan dan klien dalam menggunakan aplikasi ini.

3.1.5.3 Analisis Pengguna

Berdasarkan pengamatan lapangan yang dilakukan didapatkan bahwa sudah terdapat beberapa data pengguna yang dimiliki sebagai berikut :

Tabel 3.19 Tabel ketersediaan pengguna

Pengguna Tugas Kemampuan

CEO

1. Bertanggung Jawab terhadap jalannya organisasi

2. Mengatur Pegawai

3. Memantau semua aktifitas proyek

1. Mampu mengatur tugas pegawai

2. Mampu menggunakan komputer

3. Mampu membuat laporan 4. Mampu menganalisis

proyek yang diambil

Chief Finance Officer and Accounting

1. Mengatur keuangan perusahaan dari segi pemasukan, pengeluaran, penggajian dan lain – lain. 2. Sebagai sekretaris

perusahaan yang mengatur jadwal kegiatan seperti

meeting dengan pihak luar 3. Mencatat pinjaman dan

tagihan peminjam

1. Mampu menggunakan Komputer

2. Mampu mengatur jadwal dan mempersiapkan semua dokumen yang dibutuhkan

Chief Marketing and Account

Director

1. Mencari klien untuk menggunakan jasa perusahaan

1. Mampu menggunakan komputer


(55)

Pengguna Tugas Kemampuan

2. Menentukan strategi pemasaran produk 3. Memberikan respon

terhadap masukan klien

3. Mampu mengatasi masalah nasabah

Vp Built Environment

1. Membuat rancang bangunan dan desain interior

1. Mampu menggunakan Komputer

2. Mampu mendesain bangunan dan ruangan

Vp Identity and Branding

1. Membuat rancangan suatu logo mapun desain

branding perusahaan

1. Mampu menggunakan Komputer

2. Mampu mendesain logo dan identitas suatu perusahaan

Vp Cultural Strategy

1. Membuat penelitian tentang desain yang

dihubungkan dengan kultur 2. Membuat sosialisasi dan

pameran mengenai desain dan kultur

1. Mampu menggunakan Komputer

2. Mampu membuat ide penelitian dan sosialisasi terhadap hasil penelitian

Analisis pengguna bertujuan untuk mengetahui siapa saja yang bisa menjalankan aplikasi ini. Hal ini agar aplikasi dapat berjalan seperti yang diharapkan. Berikut analisis pengguna :

Tabel 3.20 Minimum Spesifikasi Pengguna

Pengguna Kebijakan Tingkat Keterampilan

(Minimal) CEO / Vp Built

Environment / Vp

Melakukan proses enkripsi


(56)

Pengguna Kebijakan Tingkat Keterampilan (Minimal) Identity and

Branding / Vp Cultural Strategy

b. Mengerti penggunaan aplikasi

Klien (pihak diluar perusahaan)

1. Membangkitkan kunci publik dan kunci privat 2. Melakukan dekripsi

terhadap citra terenkripsi

a. Mengusai komputer b. Mengerti penggunaan

aplikasi

Berdasarkan analisi yang dilakukan maka didapatkan beberapa kesimpulan yaitu pengguna yang terdapat di Art and Design House The House telah memenuhi syarat semua. Sehingga tidak perlu untuk mencari tenaga kerja yang baru lagi. Selain itu juga untuk pihak klien tidak ada spesifikasi khusus, sedangkan untuk menguasai penggunaan aplikasi ini akan disertakan tutorial untuk menggunakan aplikasi ini.

3.1.6 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional bertujuan untuk menganalisis proses yang akan diterapkan dalam sistem dan menjelaskan kebutuhan yang diperlukan agar aplikasi dapat berjalan dengan baik.

3.1.6.1 Diagram Konteks

Diagram konteks berfungsi untuk menggambarkan hubungan antara entitas luar, masukkan dan keluaran sistem, yang direpresentasikan dengan lingakaran tunggal yang memiliki keseluruhan sistem. Diagram Konteks dari aplikasi kriptografi dengan metode RSA - CRT di Art and Design House The House dapat dilihat sebagai berikut :


(57)

Aplikasi Kriptografi Pada Citra

Perusahaan Klien

Data kunci_privat Data nilai_p Data nilai_q Data nilai_e Data gambar_terenkripsi Data pembangkit_bilangan_prima

Info kunci_privat Info nilai_p Info nilai_q Info nilai_e Info gambar_asli Info pembangkit_bilangan_prima

Info kunci_publik

Info kunci_publik Info nilai_pembatas_dekripsi

Info kode_file Info gambar_asli info gambar_terenkripsi

Data kunci_publik Data nilai_pembatas_dekripsi

Data kode_file Data gambar_asli

Bagan 3.18 Diagram konteks

Terlihat bahwa untuk menjalankan aplikasi ini dibutuhkan dua entitas penting yaitu klien dan perusahaan. Meskipun tidak menutup kemungkinan pada kenyataannya aplikasi ini hanya digunakan oleh perusahaan untuk kepentingan pengamanan penyimpanan gambar di perusahaan itu sendiri.


(58)

3.1.6.2 Data Flow Diagram (DFD)

Data Flow Diagram (DFD) memodelkan proses beserta aliran data pada setiap proses yang terjadi dalam sistem dan DFD merupakan breakdown dari diagram konteks.

3.1.6.2.1 DFD Level 1

DFD level 1 digunakan untuk memperjelas proses yang ada pada diagram konteks. Berikut gambar dari DFD level 1 :

1 Pembangkit kunci 2 Enkripsi 3 Dekripsi Klien Perusahaan Info kunci_publik Info nilai_pembatas_dekripsi Info kode_file Info gambar_asli info gambar_terenkripsi Data kunci_publik Data nilai_pembatas_dekripsi Data kode_file Data gambar_asli Data nilai_p Data nilai_q Data nilai_e Data pembangkit_bilangan_prima Info nilai_p Info nilai_q Info nilai_e Info pembangkit_bilangan_prima Info kunci_privat Info kunci_publik Data kunci_privat Data gambar_terenkripsi Info kunci_privat Info gambar_asli Bagan 3.19 DFD Level 1


(59)

3.1.6.2.2 DFD Level 2 Proses 1

DFD Level 2 proses 1 merupakan proses pembangkit kunci dimana terdapat 3 proses lainnya seperti pada gambar dibawah ini :

Klien Data pembangkit_bilangan_prima

Info kunci_privat Info kunci_publik 1.1

Pembangkit bilangan prima

1.2 Penguji nilai

prima

1.3 Pembuatan

Kunci

info pembangkit_bilangan_prima

data nilai_p data nilai_q data nilai_e

Info nilai_p Info nilai_q Info nilai_e

Data nilai_p Data nilai_q Data nilai_e

Bagan 3.20 DFD Level 2 Proses 1

3.1.6.3 Spesifikasi Proses

Spesifikasi proses adalah penjabaran dari setiap proses yang ada dalam DFD yang dibuat. Berikut pemaparan lebih lengkap :

Tabel 3.21 Spesifikasi Proses

No Urut Proses Keterangan

1 No Proses 1.1


(60)

No Urut Proses Keterangan

Sumber Klien

Input Data pembangkit_bilangan_prima Output Info pembangkit_bilangan_prima

Tujuan Klien

Logika Proses a. Masukkan banyak bilangan prima yang akan dibangkitkan (n)

b. Lakukan perulangan sebanyak 1 sampai 1000000 kali

c. Jika bilangan prima yang dibangkitkan sama dengan n maka akhiri perulangan d. Jika bilangan prima tidak sama dengan n

maka simpan bilangan prima dan simpan jumlah bilangan prima yang telah

dibangkitkan.

2

No Proses 1.2

Nama Proses Penguji nilai prima

Sumber Klien

Input Data nilai_p, Data nilai_q, Data nilai_e Output Info nilai_p, Info nilai_q, Info nilai_e

Tujuan Klien

Logika Proses a. Masukkan masing-masing Data nilai_p, Data nilai_q, Data nilai_e ke dalam algoritma pengujian nilai prima

b. Jika masing-masing Data nilai_p, Data nilai_q, Data nilai_e merupakan bilangan prima maka data disimpan dalam suatu variabel

c. Jika masing-masing Data nilai_p, Data nilai_q, Data nilai_e bukan merupakan


(61)

No Urut Proses Keterangan

bilangan prima maka tampilkan pesan bukan bilangan prima

3

No Proses 1.3

Nama Proses Pembuatan kunci

Sumber Klien

Input Data nilai_p, Data nilai_q, Data nilai_e Output Info kunci_privat, Info kunci_publik

Tujuan Klien

Logika Proses a. Cari nilai n dengan mengalikan p dan q

b. Berturut – turut untuk nilai e dan n akan menghasilkan output kunci publik (info kunci_publik)

c. Cari nilai d dengan menggunakan algortima

extend euclid

d. Cari nilai dP dan dQ seperti pada algoritma pembangkit kunci

e. Cari nilai qInv dengan menggunakan algoritma extend euclid

f. Berturut – turut untuk nilai dP, dQ, qInv, p, q menghasilkan output kunci privat (info kunci_privat)

4

No Proses 2

Nama Proses Enkripsi

Sumber Perusahaan

Input Data kunci_publik, Data

nilai_pembatas_dekripsi, Data kode_file, Data gambar_asli


(62)

No Urut Proses Keterangan

Output Info kunci_publik, Info

nilai_pembatas_dekripsi, Info kode_file, Info gambar_asli, info gambar_terenkripsi

Tujuan Perusahaan

Logika Proses a. Masukkan gambar asli, kunci publik, kode file, nilai pembatas dekripsi

b. Lakukan pengecekan apakah semua masukan telah terisi

c. Jika tidak tampilkan pesan masukan belum terisi

d. Jika terisi semua maka lanjutkan ke proses berikutnya

e. Ambil semua nilai byte dari sebuah gambar f. Konversikan tipe data nilai byte tersebut ke

nilai integer

g. Lakukan enkripsi terhadap nilai byte yang telah terkonversi dengan menggunakan algoritma square and multiply sehingga menghasilkan nilai terenkripsi yang bertipe data long (C)

h. Simpan semua nilai C ke array string i. Tambahkan dua field array

j. Sisipkan kode file ke total array – 1 k. Sisipkan nilai pembatas dekripsi ke total

array

l. Simpan semua nilai array ke file yang berekstensi .jpg

5 No Proses 3


(63)

No Urut Proses Keterangan

Sumber Klien

Input Data kunci_privat, Data gambar_terenkripsi Output Data kunci_privat, Data gambar_asli

Tujuan Klien

Logika Proses a. Masukkan semua nilai Data kunci_privat, Data gambar_terenkripsi

b. Lakukan pengecekan terhadap kunci, jika kunci salah maka tampilkan pesan kunci salah

c. Jika benar maka lanjutkan proses dekripsi d. Lakukan pengecekan terhadap nilai

pembatas dekripsi

e. Jika nilai pembatas dekripsi > 0 maka lanjutkan proses dekripsi dengan

mengurangi nilai pembatas pada gambar dan buat file histori dengan nama file adalah kode file serta simpan file histori yang memuat nilai pembatas dekripsi di folder aplikasi (.exe)

f. Jika nilai pembatas pada gambar dan histori = 0 maka tampilkan pesan kesalahan dan berhentikan proses dekripsi

3.1.6.4 Kamus Data DFD

Kamus data (data dictionary) merupakan katalog fakta tentang data dan kebutuhan-kebutuhan informasi dari suatu sistem. Kamus data dibuat berdasarkan arus data yang ada pada diagram aliran data. Dengan menggunakan kamus data, analisis sistem dapat mendefinisikan data yang mengalir pada sistem secara lengkap. Berikut merupakan kamus data dari DFD diatas :


(64)

Tabel 3.22 Kamus data DFD

1

Nama Data nilai_p

Digunakan Pada 1. Proses pembangkit kunci – Proses 1 2. Proses penguji bilangan prima – Proses

1.2

3. Proses pembuat kunci – Proses 1.3 Deskripsi Data ini bernilai prima dan digunakan untuk

membuat kunci privat dan kunci publik Struktur Data 1. Nilai_p

Nilai_p Bilangan prima [0...n | n > 0]

2

Nama Data nilai_q

Digunakan Pada 1. Proses pembangkit kunci – Proses 1 2. Proses penguji bilangan prima – Proses

1.2

3. Proses pembuat kunci – Proses 1.3 Deskripsi Data ini bernilai prima dan digunakan untuk

membuat kunci privat dan kunci publik Struktur Data 1. Nilai_q

Nilai_q Bilangan prima [0...n | n > 0]

3

Nama Data nilai_e

Digunakan Pada 1. Proses pembangkit kunci – Proses 1 2. Proses penguji bilangan prima – Proses

1.2

3. Proses pembuat kunci – Proses 1.3 Deskripsi Data ini bernilai prima dan digunakan untuk

membuat kunci privat dan kunci publik Struktur Data 1. Nilai_e

Nilai_e Bilangan prima [0...n | n > 0]

4 Nama Data pembangkit_bilangan_prima


(65)

2. Proses pembangkit bilangan prima – proses 1.1

Deskripsi Data ini untuk menentukan banyak bilangan prima yang akan dibangkitkan Struktur Data 1. Banyak_bilangan_prima

Banyak_bilangan_prima [0 ... n | n > 0]

5

Nama Data Kunci Privat

Digunakan Pada 1. Pembuat kunci – Proses 1.3 2. Dekripsi – Proses 3

Deskripsi Berisi tentang kunci privat Struktur Data 1. Nilai_dP

2. Nilai_dQ 3. Nilai_qInv 4. Nilai_p 5. Nilai_q Nilai_dP [0 ... n | n > 0] Nilai_dQ [0 ... n | n > 0] Nilai_qInv [0 ... n | n > 0] Nilai_p [0 ... n | n > 0] Nilai_q [0 ... n | n > 0]

6

Nama Data kunci_publik

Digunakan Pada 1. Pembuat kunci – Proses 1.3 2. Enkripsi – Proses 2

Deskripsi Berisi tentang kunci publik Struktur Data 1. Nilai_e

2. Nilai_n Nilai_e [0 ... n | n > 0] Nilai_n [0 ... n | n > 0]

7 Nama Data pembatas_nilai_dekripsi


(66)

Deskripsi Berisi nilai pembatas untuk melakukan dekripsi

Struktur Data 1. Pembatas_dekripsi Pembatas_dekripsi [0 ... n | n > 0]

8

Nama Data kode_file

Digunakan Pada 1. Enkripsi – proses 2

Deskripsi Berisi sebagai identitas dari suatu foto Struktur Data 1. Kode_file

Kode_file {[A-Z|a-z|0-9]}

9

Nama Data gambar_asli

Digunakan Pada Enkripsi – proses 2 Dekripsi – proses 3

Deskripsi Berisi tentang nilai dari suatu foto Struktur Data Array_gambar_asli

Array_gambar_asli Byte[]

10

Nama Data gambar_terenkripsi

Digunakan Pada Enkripsi – proses 2 Dekripsi – proses 3

Deskripsi Berisi tentang nilai dari suatu foto Struktur Data 1. Array_gambar_terenkripsi

2. Nilai_pembatas_dekripsi 3. Kode_file

Array_gambar_asli Byte[]

Nilai_pembatas_dekripsi [0 ... n | n > 0]

Kode_file {[A-Z|a-z|0-9]}

3.2 Perancangan Sistem

Perancangan sistem merupakan tahap dimana perencanaan, penggambaran serta pembuatan aplikasi atau sistem dari penggabungan beberapa elemen menjadi


(67)

satu bagian yang utuh. Pada tahap ini akan dipaparkan perancangan terhadap struktur menu, antarmuka, pesan dan jaringan semantik.

3.2.1 Perancangan Struktur Menu

Struktur menu merupakan sebuah bentuk umum rancangan program yang bertujuan untuk membantu pengguna dalam menyelesaikan sebuah tugas. Struktur menu untuk aplikasi kriptografi ini meliputi perancangan menu enkripsi dan perancangan menu dekripsi.

3.2.1.1 Perancangan Menu Enkripsi

Struktur menu untuk enkripsi bertujuan untuk memudahkan pengguna dalam menggunakan aplikasi ini dan mengurangi penggunaan button pada aplikasi. Berikut struktur menu dari enkripsi :

ENKRIPSI

File

Open

Exit

Bagan 3.21 Perancangan menu enkripsi

3.2.1.2 Perancangan Menu Dekripsi

Struktur menu untuk dekripsi bertujuan untuk memudahkan pengguna dalam menggunakan aplikasi ini dan mengurangi penggunaan button pada aplikasi. Berikut struktur menu dari dekripsi:


(1)

iii

KATA PENGANTAR

Dengan memanjatkan puji syukur khadirat Allah SWT yang telah memberikan taufik dan hidayahnya kepada kita semua sehingga penulis dapat menyelesaikan penelitian tugas akhir yang berjudul “Penerapan Kriptografi Menggunakan Metode Rivest Shamir-Adleman Dengan Chinese Remainder Theorem (RSA-CRT) Pada Citra Digital Di Konsultan Art And Design House The House”.

Penulis juga memahami akan segala kekurangan yang ada dalam penyusunan penelitian tugas akhir ini, akan tetapi hal ini dapat teratasi dengan adanya bantuan serta bimbingan dari berbagai pihak yang terkait sehingga selesai penelitian tugas akhir ini maka penulis juga tidak menutup kemungkinan kritik dan saran yang bersifat membangun dapat menambah kesempurnaan penelitian tugas akhir ini.

Tidak lupa penulis juga ingin mengucapkan banyak terima kasih dan penghargaan yang setinggi-tingginya kepada pihak-pihak yang telah mendukung penulis dalam proses penelitian tugas akhir ini, adapun pihak-pihak tersebut adalah sebagai berikut :

1. Kedua orang tua, Papah, Mamah, Mas Wahyu serta keluarga besar yang selalu memberikan dukungan dan doa sehingga penulis selalu bersemangat dan termotivasi untuk terus menyelesaikan laporan kerja praktek ini.

2. Ibu Dian Dharmayanti, S.T., M.Kom. sebagai dosen wali.

3. Bapak Eko Budi Setiawan, S.Kom., M.T. sebagai dosen pembimbing dalam penelitian tugas akhir ini.

4. Bapak Irawan Afrianto, S.T., M.T. sebagai reviewer dalam penelitian tugas akhir ini.

5. Bapak Meizan Diandra Naatadiningrat yang telah bersedia memberikan izin untuk melakukan penelitian di Konsultan Art and Design House The House.


(2)

iv

6. Fitrian Permana Saputra, Wupi Ocktavia Kharismawati, Ahmad Faudzi dan Asih Joko Purnomo yang telah berjuang bersama-sama dalam matakuliah tugas akhir ini.

7. Denny Priatna, Stephanie Preselly dan Sri Devi Mercury yang selalu memberikan hiburan selama skripsi.

8. Teman-teman tuisda 40b yang selalu memberikan dukungan baik internet, semangat dan motivasi.

9. Devita Wahyu A, Kharisma Nisa Rosandrani, Nur Isman, Randi Yanuar, Bharata Indra L., Anizatun Nuskiati, Fitri Ayu Nurdiana, Wahidah Aulia Nisa, Yona, serta sahabat dan saudaraku GB lainnya yang selalu ada disampingku. 10.Nur Jamilah, Tengku Ratna dan Ila Resalita, Indro Gunawan, Layla Naylatil

Yusro, Putri Rizki Ananda dan semua teman IPA2 lainnya yang sering memberikan semangat.

11.Ka Nur Khasanah, Ka Sofie, Ka Novie, Bang Bayu dan Ka Priska yang selalu memberikan nasihat dan masukan.

12.Teman-teman yang tidak tersebutkan yang selalu memberikan dukungan dan membantu dalam berbagai hal sehingga penulis dapat menyelesaikan tugas akhir ini.

Bandung, Agustus 2015 Penulis


(3)

(4)

(5)

(6)

RIWAYAT HIDUP

Yogie Setiawan Nugraha

INFORMASI PRIBADI

Tempat, Tanggal Lahir : Pangkalan Bun, 3April 1993 Jenis Kelamin : Laki-laki

Agama : Islam

Alamat : Jl. Mentor Gg. Hambali 3 No 1 D, Bandung No Telp : 085248469739

PENDIDIKAN

2011-2015 Program Strata 1 (S1) Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

2008 - 2011 SMAN 1, Pangkalan Bun

2005 - 2008 SMPN 1, Arut Selatan