• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II LANDASAN TEORI"

Copied!
24
0
0

Teks penuh

(1)

7

Bab ini menjelaskan dasar teori yang menunjang penulisan tugas akhir mengenai pembuatan aplikasi berbasis web dengan integrasi antara Kriptografi menggunakan Algoritma RSA dan Steganografi menggunakan Algoritma LSB.

Dasar teori yang digunakan dalam pengembangan ini adalah dasar teori tentang tahapan perancangan dan pengembangan perangkat lunak, UML, PHP, MySQL, Kriptografi, Steganografi, Algoritma RSA, dan Algoritma LSB.

2.1 Tahapan Perancangan dan Pengembangan Sistem Perangkat Lunak Dalam tahap perancangan dan pengembangan sistem, Pressman (2002) mengemukakan bahwa terdapat suatu model yang sering juga disebut dengan model sekuensial linier atau disebut juga dengan model air terjun(waterfall).

Model ini mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, dan pengujian. Model tersebut dapat dilihat dalam Gambar2.1.

Analisis

Desain

Kode

Tes

(2)

1. Analisis kebutuhan perangkat lunak, merupakan proses pengumpulan kebutuhan yang diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun, analisis harus memahami domain informasi, tingkah laku, unjuk kerja dan antar muka yang diperlukan.

2. Desain, merupakan proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda, antara lain struktur data, arsitektur perangkat lunak, representasi antar muka dan detail prosedural.

3. Pembuatankode, merupakan proses penterjemahan desain ke dalam bentuk kode mesin yang dapat dibaca.

4. Tes atau pengujian, merupakan sebuah proses yang memfokuskan pada logika internal perangkat lunak, dengan memastikan bahwa semua pernyataan sudah diuji dan untuk menemukan kesalahan sehingga dapat memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan.

2.2 Pemodelan Sistem

Untuk membuat suatu sistem yang baik diperlukan suatu metode atau perangkat pemodelan sistem. Perangkat pemodelan berfungsi sebagai media yang memberikan penjelasan tentang sistem yang dibuat. Perangkat pemodelan dapat berupa diagram maupun gambar.

Menurut Husni Iskandar Pohan (1997), tiga alasan untuk melakukan pemodelan sistem yaitu:

 Dapat memfokuskan perhatian pada hal-hal penting dalam sistem tanpa mesti terlibat terlalu jauh.

 Mendiskusikan perubahan dan koreksi terhadap kebutuhan pemakai dengan resiko dan biaya minimal.

 Menguji pengertian penganalisis sistem terhadap kebutuhan pemakai dan membantu pendesain sistem dan pemrogram membangun sistem.

(3)

Pemodelan sistem dapat dipresentasikan dengan berbagai cara antara lain, diagram konteks (Data Flow Diagram Context Level), diagram alir(Flowchart), dan banyak model lainnya.

2.2.1 Diagram Konteks(Data Flow Diagram Context Level)

Data Flow Diagram (DFD) Context Level atau diagram konteks adalah

sebuah diagram sederhana yang menggambarkan hubungan dengan entitas luar, masukan dan keluaran dari sistem. Diagram konteks direpresentasikan dengan lingkaran tunggal yang mewakili keseluruhan sistem.

Diagram konteks mempunyai karakteristik penting dari sebuah sistem, yaitu :

1. Kelompok pemakai, organisasi atau sistem lain dimana sistem melakukan komunikasi yang disebut juga sebagai terminator.

2. Data masuk yaitu data yang diterima sistem dari lingkungan dan harus diproses dengan cara-cara tertentu.

3. Data keluar yaitu data yang dihasilkan sistem dan diberikan ke pihak luar. 4. Penyimpanan data yang digunakan secara bersama-sama antara sistem dan

terminator. Data ini dapat dibuat oleh sistem dan digunakan oleh lingkungan atau sebaliknya.

5. Batasan antara sistem dan lingkungan.

2.2.2 Diagram Alir (Flowchart)

Flowchart atau diagram alir merupakan metode untuk menggambarkan

tahap-tahap pemecahan masalah dengan merepresentasikan simbol-simbol tertentu yang mudah dimengerti, mudah digunakan, dan standar (Oetomo, Dharma B.S., 2002). Tujuan utama penggunaan diagram alir adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi, dan jelas dengan menggunakan simbol-simbol yang standar. Dalam

(4)

penulisannya diagram alir dikenal dua model, yaitu diagram alir sistem dan diagram alir program.

2.2.2.1 Diagram Alir Sistem

Diagram alir sistem merupakan diagram alir yang menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data serta hubungan antar peralatan tersebut. Diagram alir sistem tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah, tetapi hanya untuk menggambarkan prosedur dalam sistem yang dibentuk. Simbol-simbol standar yang digunakan dan contoh penggunaannya ditunjukkan dalam Gambar2.2 dan Gambar2.3

Pita Magnetik Kartu Plong/ Keyboard

Punched Paper Tape

On Line Storage/ VDU

Input/Output Magnetic Drum Process Magnetic Disc

Off Line Storage Proses Sortir Proses Merge Arus

Gambar 2.2 Simbol-Simbol Diagram Alir Sistem(Oetomo 2002)

Keyboard

C P U

V D U

Disket

(5)

2.2.2.2 Diagram Alir Program

Diagram alir program merupakan diagram alir yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah. Simbol-simbol standar yang digunakan pada diagram alir sistem ditunjukkan dalam Gambar 2.4 Input/Output Pemberian Nilai Awal Proses Konektor pada satu halaman Konektor pada

satu halaman Arah

Keterangan

Pengujian Awal/Akhir

Program

Gambar 2.4 Simbol-Simbol Diagram Alir Program(Oetomo 2002)

Pada penggambaran diagram alir program, ada dua jenis metode, yaitu

conceptual flowchart dan detail flowchart. Conceptual flowchart

menggambarkan tentang alur dari suatu pemecahan masalah secara global saja.Sedangkan detail flowchart menggambarkan alur pemecahan masalah secara rinci.

2.3 Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.

(6)

IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.

2.4 Tahapan Proses

Tahapan proses merupakan langkah-langkah terurut untuk menyelesaikan suatu masalah, dimana untuk bisa masuk ketahap selanjutnya kita sebaiknya menyelesaikan tahapan sebelumnya.

2.4.1 Analisis dan Perancangan

Analisis dilakukan terhadap beberapa referensi sebagai dasar untuk melakukan implementasi. Adapun tahap-tahap dalam perancangan adalah sebagai berikut: perancangan sistem, perancangan proses, dan perancangan antarmuka. Metode perancangan yang digunakan yaitu pemodelan sistem terstruktur.

2.4.2 Implementasi dan Pengujian

Melakukan implementasi dari hasil perancangan yang telah didefinisikan sebelumnya ke dalam bentuk kode (coding). Setelah kode selesai, dilakukan pengujian perangkat lunak yang dibuat, yang ditujukan untuk menemukan kesalahan dan menganalisisnya sebagai umpan balik untuk perbaikan sistem, sehingga perangkat lunak akan terbebas dari segala kesalahan pada saat dieksekusi oleh pengguna.

Pengujian meliputi pengujian implementasi aplikasi yang merupakan pengujian terhadap fungsionalitas aplikasi yang di dalamnya termasuk pengujian terhadap kompatibilitas aplikasi terhadap jenis ponsel yang mengakses sistem.

(7)

2.4.3 Pengambilan Kesimpulan

Pengambilan kesimpulan dari aplikasi yang telah dibuat dilakukan setelah semua tahapan perancangan dan pengujian sistem aplikasi telah selesai dilakukan. Pengambilan kesimpulan ini didasarkan pada kesesuaian antara teori dan praktek. Kesimpulan ini merupakan informasi akhir dari perancangan aplikasi yang berisi tentang berhasil atau tidaknya aplikasi tersebut dijalankan.

2.5 Unified Modelling Language (UML)

Unified Modelling Language (UML) adalah sekumpulan simbol dan diagram untuk memodelkan perangkat lunak. Desain dalam bentuk simbol dan diagram, kemudian dapat diterjemahkan menjadi kode program. Telah tersedia alat-alat (tools) yang dapat membuat kode program berdasarkan UML Class Diagram. Implementasi kode program dari diagram UML dapat menggunakan bahasa pemrograman apa saja dengan syarat bahasa pemrograman tersebut harus mendukung pemrograman berorientasi objek (PBO) seperti C++, Java, C#, atau VB.NET.

UML adalah bahasa standar untuk membuat model. Model adalah deskripsi masalah atau topik dari aplikasi yang akan dibuat. Dengan menggunakan model, tim pengembang akan terbantu dalam memahami lingkup masalah yang akan dipecahkan. Model adalah visualisasi dari aplikasi yang akan dibangun. Dengan UML semua anggota tim dapat berbicara dengan bahasa yang sama. UML menyediakan beberapa jenis diagram untuk merepresentasikan entities dan relationship yang terdapat di dalam aplikasi. Tahapan pembangunan aplikasi berorientasi objek pada umumnya bersifat iteratif dan incremental. Proses pembangunan aplikasi dibagi menjadi beberapa siklus. Setiap kali satu siklus dilakukan, dilakukan evaluasi sebagai bahan untuk memulai siklus berikutnya.

(8)

Setiap siklus biasanya terdiri atas: a. Tahap analisa permintaan

b. Tahap analisa sistem c. Tahap desain

d. Tahap implementasi

UML akan digunakan pada tahap analisa dan desain. Desain yang dihasilkan berupa diagram-diagram UML yang akan diterjemahkan menjadi kode program pada tahap implementasi. UML terdiri atas 13 jenis diagram resmi seperti tertulis dalam Tabel 2.2. (Munawar. 2005).

Tabel 2.1: Jenis diagram resmi UML. (Munawar. 2005)

No. Diagram Kegunaan

1. Activity Perilaku prosedural dan parallel

2. Class Class, Fitur, dan relasinya

3. Communication Interaksi diantara objek. Lebih menekankan ke link

4. Component Struktur dan koneksi dari komponen

5. Composite structure Dekomposisi sebuah class pada saat runtime

6. Deployment Penyebaran / instalasi ke klien

7. Interaction overview Gabungan sequence dan activity diagram

8. Object Contoh konfigurasi dari contoh-contoh

9. Package Struktur hierarki saat kompilasi

10. Sequence Interaksi antar objek. Lebih menekankan pada urutan

11. State machihne Bagaimana event mengubah sebuah objek selama aktif

12. Timing Interaksi antar objek. Lebih menekankan pada waktu

(9)

Diagram UML yang akan dibahas pada bab ini adalah use case diagram,

sequence diagram, class diagram, activity diagram,dan statechart diagram.

Pada penelitian ini penulis menggunakan dua diagram yaitu Use Case Diagram dan Activity Diagram. Dibawah ini merupakan penjelasan diagram-diagram UML yang digunakan dalam mengimplementasikan program.

(Munawar. 2005).

2.5.1 Diagram Use Case (Use Case Diagram)

Diagram use case ini digunakan untuk menunjukkan fungsionalitas dari suatu sistem dari sudut pandang pengguna atau user. OMG atau Object

Management Group telah mendefinisikan notasi grafis untuk use case, tetapi

tidak sampai pada menuliskan secara detail use case-nya. Digram use case mendeskripsikan interaksi tipikal antara para pengguna sistem dengan sistem itu sendiri dengan memberi sebuah narasi tentang bagaimana sistem tersebut digunakan. (Fowler:2005).

Beberapa notasi yang di gunakan pada diagram use case yaitu aktor, yang digunakan untuk menggambarkan pelaku atau pengguna. Pelaku ini meliputi manusia atau sistem komputer atau subsistem lain yang memiliki metode untuk melakukan sesuatu, use case, digunakan untuk menggambarkan spesifikasi pekerjaan (job specification) dan deskripsi pekerjaan (job description), serta keterkaitan antar pekerjaan (job), aliran proses (relationship), digunakan untuk menggambarkan hubungan antara use case dengan use case lainnya, aliran perpanjangan (extension point), digunakan untuk menggambarkan hubungan antara use case dengan use case yang diperpanjang (extended use case) maupun

(10)

dengan use case yang dimasukkan (included use case) dan aliran yang digunakan untuk menggammbarkan hubungan antara actor dengan use case.

Sedangkan notasi-notasi yang lebih jelas yang digunakan dalam pemodelan diagram use case dapat dilihat pada Tabel 2.3.

Tabel 2.2: Notasi Diagram Use Case. (Fowler:2005).

Notasi Deskripsi

Aktor, yang digunakan untuk menggambarkan pelaku atau pengguna. Pelaku ini meliputi manusia atau sistem komputer atau subsistem lain yang memiliki metode untuk melakukan sesuatu.

Contoh: Manager, Pelanggan, dan lain-lain.

Use case, digunakan untuk menggambarkan spesifikasi pekerjaan (job specification) dan deskripsi pekerjaan (job description), serta keterkaitan antar pekerjaan (job).

Contoh: pesan barang, menutup pintu, dan lain-lain. Aliran proses (relationship), digunakan untuk menggambarkan hubungan antara use case dengan use case lainnya.

Aliran perpanjangan (extension point), digunakan untuk menggambarkan hubungan antara use case dengan use case yang diperpanjang (extended use case) maupun dengan use case yang dimasukkan (included use case).

Aliran yang digunakan untuk menggammbarkan hubungan antara actor dengan use case.

(11)

<<extended>> Kondisi yang mendeskripsikan apa yang terjadi antara use case dengan use case yang diperpanjang.

<<include>>

Include adalah kondisi aliran proses langsung (directed relationship) antara dua use case yang secara tak langsung menyatakan kelakuan (behaviour) dari use case yang dimasukkan.

<<has>> Adalah kondisi yang mendeskripsikan apa yang terjadi antara actor dengan use case.

Dan berikut ini adalah contoh diagram use case yang umum diterapkan pada sebuah Bank yang di jelaskan pada Gambar 2.5.

Gambar 2.5: Contoh Diagram Use Case pada bank. (Raharjo:2009)

2.5.2 Diagram Aktifitas (Activity Diagram)

Diagram aktifitas menggambarkan berbagai alur aktifitas dalam sistem

yang sedang dirancang, bagaimana masing-masing alir berawal, keputusan yang mungkin terjadi, bagaimana mereka berakhir, dan juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. (Munawar:2005).

(12)

Oleh karena itu diagram aktifitas tidak menggambarkan perilaku internal sebuah sistem dan interaksi antar subsistem secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktifitas dari level atas secara umum. Sedangkan notasi-notasi yang digunakan dalam pemodelan diagram aktifitas dapat dilihat pada Tabel 2.3.

Tabel 2.3: Notasi Diagram Aktifitas. (Munawar:2005).

No. Notasi Keterangan

1.

Aktifitas, digunakan untuk menggambarkan aktifitas dalam diagram aktifitas.

2. Node keputusan (decision node), digunakan untuk

menggambarkan kelakuan pada kondisi tertentu.

3. Titik awal, digunakan untuk menggambarkan awal

dari diagram aktifitas.

4.

Titik akhir (final acton), digunakan untuk menggambarkan akhir dari diagram aktifitas.

5.

Akhir alur (flow final), digunakan untuk menghancurkan semua tanda yang datang dan tak memiliki efek alur dalam aktifitas.

6.

Aksi (action), digunakan untuk menggambarkan alur antara aksi dengan aksi, titik awal dengan aksi, atau aksi dengan titik akhir.

7.

Aksi penerimaan kejadian (accept event action), sebuah aksi yang menunggu sebuah kejadian dari suatu peristiwa bertemu kondisi yang spesifikasi.

(13)

8.

DataStore digunakan untuyk menjaga agar semua tanda yang masuk dan menduplikasinya saat mereka dipilih untuk pindah ke alur selanjutnya (downstream).

9.

Node fork memiliki satu aksi yang masuk dan beberapa aksi yang keluar.

10.

Join node digunakan untuk menggambarkan beberapa aksi yang masuk dan satu aksi yang keluar.

Dibawah ini merupakan contoh penggunaan diagram aktifitas pada sebuah bank yang di jelaskan pada Gambar 2.6.

Gambar 2.6: Contoh Diagram Aktifitas pada sebuah bank. (Raharjo:2009). <<datastrore>>

(14)

2.5.3 Sequence Diagram

Sebuah sequence diagram secara khusus menjabarkan aktivitas sebuah skenario tunggal. Diagram tersebut menunjukkan sejumlah objek contoh dan pesan-pesan yang melewati objek-objek di dalam use case diagram.

(Fowler: 2005).

Sequence diagram menunjukkan interaksi dengan menampilkan setiap

partisipan dengan garis alir secara vertikal dan pengurutan pesan dari atas ke bawah. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah kejadian (event) untuk menghasilkan output tertentu. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Pesan digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Notasi-notasi yang digunakan dalam pemodelan

sequence diagram adalah:

1. Aktor, merupakan sebuah peran yang dimainkan seorang pengguna dalam kaitannya dengan sistem.

2. Activation, menggambarkan waktu yang dibutuhkan suatu objek untuk menyelesaikan suatu aktifitas.

3. Lifeline, menggambarkan bahwa hadirnya objek terhadap waktu. 4. Aliran pesan, menggambarkan komunikasi antar objek.

(15)

Gambar 2.8: Contoh Sequence Diagram pada saat admin melakukan login.

(Raharjo:2009).

2.6 PHP

PHP merupakan singkatan rekursif (akronim berulang) dari PHP Hypertext Preprocessor. PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini atau dalam kata lain bisa diartikan sebuah bahasa pemrograman web yang bekerja di sisi server (server side scripting) yang dapat melakukan konektifitas pada database yang di mana hal itu tidak dapat dilakukan hanya dengan menggunakan sintaks-sintaks HTML biasa. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain (www.wikipedia.com)

2.7 MySQL

MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language).

(16)

SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional (www.wikipedia.com).

2.8 Kriptografi

Kriptografi (cryptography) berasal dari bahasa Yunani : “cryptos” artinya “secret” (rahasia), sedangankan “graphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Ada beberapa definisi kriptografi yang telah dikemukakan di dalam berbagai literatur. Definisi yang dipakai di dalam buku-buku yang lama (sebelum tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikan ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Definisi ini mungkin cocok pada masa lalu di mana kriptografi digunakan untuk keamanan komunikasi penting seperti komunikasi di kalangan militer, diplomat, dan mata-mata. Namun saat ini kriptografi lebih dari sekadar privacy, tetapi juga untuk tujuan data integrity, authentication, dan non-repudiation.

Definisi yang kita pakai di dalam buku ini mengutip definisi yang dikemukakan di dalam [SHC96]:

Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (cryptography is the art and science of keeping messages secure)

Sebagai pembanding, selain definisi tersebut di atas, terdapat pula definisi yang dikemukakan di dalam [MEN96]:

(17)

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi.

Kata “seni” di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin punya cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” didalam “cryptography” itu sendiri sudah menyiratkan sebuah seni). Anda akan melihat di dalam bab 3 contoh-contoh teknik kriptografi dari zaman dahulu hingga zaman sekarang shingga anda dapat memahami bahwa kriptografi dapat dipandang sebagai sebuah seni merahasiakan pesan. Pada perkembangan selanjutnya, kriptografi berkembang menjadi sebuah disiplin ilmu sendiri karena teknik-teknik kriptografi dapat diformulasikan secara matematik sehingga menjadi sebuah metode yang formal.

2.9 Steganografi

Teknik menjaga kerahasiaan pesan tidak hanya dengan menggunakan kriptografi. Ada teknik lain yang sudah digunakan sejak berabad-abad yang lalu, yaitu steganografi (steganography). steganografi (steganography) adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan rahasia lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui (perhatikan bahwa steganografi tidak sama dengan stenografi, yaitu seni menulis cepat). Misalnya pengirim menyembunyikan pesan rahasia di dalam tulisan berikut :

(18)

Yang dalam hal ini huruf awal setiap kata bila dirangkai akan membentuk pesan rahasia

Good year

Steganografi berasal dari bahasa yunani, yaitu “steganos” yang artinya “tulisan tersembunyi (covered writing)”. Steganografi sangat kontras dengan kriptografi. Jika kriptografi merahasiakan makna pesan sementara eksistensi pesan tetap ada maka steganografi menutupi keberadaan pesan. Steganografi dapat dipandang sebagai kelanjutan kriptografi dan dalam prakteknya pesan rahasia dienkripsi terlebih dahulu, kemudian chiperteks disembunyikan di dalam media lain sehingga pihak ketiga tidak menyadari keberadaannya. Pesan rahasia yang disembunyikan dapat diekstrasi kembali persis sama seperti aslinya.

Steganografi membutuhkan dua properti yaitu penampung dan pesan rahasia. Media penampung yang umum digunakan adalah gambar, suara, video, atau teks. Pesan yang disembunyikan dapat berupa sebuah artikel, gambar, daftar barang, kode program, atau pesan lain.

Keuntungan steganografi dibandingkan dengan kriptografi adalah bahwa pesan yang dikirim tidak menarik perhatian sehingga media penampung yang membawa pesan tidak menimbulkan kecurigaan pada pihak ketiga. Ini berbeda dengan kriptografi di mana chiperteks menimbulkan kecurigaan bahwa pesan tersebut merupakan pesan rahasia.

2.10 RSA

Dari sekian banyak algoritma kunci-publik yang pernah dibuat, algoritma yang paling populer adalah algoritma RSA. Algoritma RSA 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 Rsa terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama

(19)

pemfaktoran bilangan besar menjadi fator-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin.

Algoritma RSA mempunyai besaran-besaran sebagai berikut :

1. p dan q bilangan prima (rahasia)

2. n = p x 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 (chiperteks) (tidak rahasia)

2.10.1 Perumusan Algoritma RSA

algoritma RSA didasarkan pada teorema Euler (lihat kembali bahannya di dalam bab 3) yang menyatakan bahwa

aɸ(n) ≡ 1 (mod n)

(7.2)

dengan syarat :

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 (7.2) dapat ditulis menjadi

(20)

atau

akɸ(n) ≡ 1 (mod n) (7.3)

bila a diganti dengan m, maka persamaan (7.3) dapat ditulis menjadi

mkɸ(n) ≡ 1 (mod n) (7.4)

berdasarkan sifat ac ≡ bc (mod n), maka bila persamaan (7.4) dikali dengan m menjadi :

mkɸ(n) + 1 ≡ m (mod n) (7.5)

yang dalam hal ini m relatif prima terhadap n.

misalkan e dan d dipilih sedemikian sehingga

e ∙ d ≡ 1(mod ɸ(n)) (7.6)

atau

e ∙ d ≡ kɸ(n) + 1 (7.7)

sulihkan (7.7) ke dalam persamaan (7.5) menajadi :

m e ∙ d ≡ m (mod n) (7.8)

persamaan (7.8) dapat ditulis kembali menjadi

(m e)d ≡ m (mod n) (7.9)

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

Ee(m) = c ≡ me mod n (7.10)

(21)

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

Dd(Ee(m) = Ee(Dd(m)) ≡ md mod n (7.12)

Oleh karena md mod n ≡ (m + jn)d mod n untuk sembarang bilangan bulat j, maka tiap plainteks m, m + n, m + 2n, . . ., menghasilkan chiperteks yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar transformasinya satu-ke-satu, maka m harus dibatasi dalam himpunan {0,1,2, ... , n-1} sehingga enkripsi dan dekripsi tetap benar seperti persamaan (7.10) dan (7.11).

2.10.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. Bangkitan kunci privat dengan menggunakan persamaan (7.6), 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

Hasil algoritma diatas :

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

Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada perhitungan enkripsi/dekripsi

(22)

2.10.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 mi dienkripsi menjadi blok ci dengan rumus ci = mie mod n

Dekripsi

Setiap blok chiperteks ci didekripsi kembali menjadi blok mi dengan

rumus mi = cid mod n

2.11 LSB

Metode LSB (least significant bit) merupakan metode steganografi yang paling sederhana dan paling mudah diimplementasikan. Untuk menjelaskan metode ini kita menggunakan citra digital sebagi covertext. Setiap pixel di dalam citra berukuran 1 sampai 3 byte. Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (most significant bit atau MSB) dan bit yang paling kurang berarti (least significant bit atau LSB). Misalnya pada byte 11010010, bit yang pertama (digarisbawahi) adalah bit MSB dan bit 0 yang terakhir (digarisbawahi) adalah bit LSB. Bit yang cocok untuk diganti dengan bit pesan adalah bit lsb, sebab modifikasi hanya mengubah nilai byte tersebut satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut di dalam gambar memberikan persepsi warna merah, maka perubahan satu bit LSB hnay mengubah persepsi warna merah tidak terlalu berarti. Mata manusia tidak dapat membedakan perubahan yang kecil ini.

Sebagai ilustrasi, misalkan segmen pixel-pixel citra sebelum penambahan bit-bit

watermark adalah

(23)

Dan misalkan pesan rahasia (yang telah dikonversi ke sistem biner) adalah 0111. Setiap bit dari watermark menggantikan posisi LSB dari segmen pixel-pixel citra menjadi :

00110010 10100011 11100011 01101111

Untuk membuat hiddentext tidak dapat dilacak, bit-bit pesan tidak mengganti

byte-byte yang berurutan, namun dipilih susunan byte secara acak. Misalnya jika

terdapat 50 byte dan 6 bit data yang akan disembunyikan maka byte yang diganti bit LSB-nya dipilih secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49. Pembangkitan bilangan acak seperti LCG dapat digunakan sebagai

pesudo-random-number-generator (PRNG). Dalam hal ini, nilai umpan untuk LCG

berlaku sebagai kunci stegano.

Pada citra 8-bit yang berukuran 256 x 256 pixel terdaoat 65536 pixel, setiap pixel berukuran 1 byte sehingga kita hanya dapat menyisipkan 1 bit pada setiap pixel. Pada citra terdapat 24-bit yang berukuran 256 x 256 pixel, satu pixel berukuran 3

byte (atau 1 byte untuk setiap komponen R, G, dan B), sehingga kita bisa

menyisipkan pesan sebanyak 65536 x 3 = 196608 bit atau 196608/8 = 24576 byte. Pesan yang disembunyikan di dalam citra dapat diungkap kembali dengan mengekstrasinya. Posisi byte yang menyimpan bit pesan dapat diketahui dari bilangan acak yang dibangkitkan oleh PRNG. Jika kunci yang digunakan pada waktu ekstrasi sama dengan kunci pada waktu penyisipan, maka bilangan acak yang dibangkitkan juga sama. Dengan demikian, bit-bit data rahasia yang bertaburan di dalam citra dapat dikumpulkan kembali.

Sayangnya metode LSB tidak aman sebab jika citra penampung dimanipulasi (misalnya di resize, kompresi, mengubah kontras gambar, dan sebagainya), maka bit-bit LSB daru stegotext menjadi rusak sehingga pesan tidak dapat diungkap kembali. Selain itu, karena lokasi penyisipan selalu pada bit LSB, maka pihak lawan yang curiga dapat menghapus pesan dengan mengganti semua bit LSB pada

(24)

Gambar

Gambar 2.1Model Sekuensial Linier(Pressman 2002)
Diagram alir sistem merupakan diagram alir yang menggambarkan suatu  sistem  peralatan  komputer  yang  digunakan  dalam  proses  pengolahan  data  serta  hubungan  antar  peralatan  tersebut
Diagram  alir  program  merupakan  diagram  alir  yang  menggambarkan  urutan  logika  dari  suatu  prosedur  pemecahan  masalah
Tabel  2.1: Jenis diagram resmi UML. (Munawar. 2005)
+7

Referensi

Dokumen terkait

Tujuan penelitian ini adalah untuk mengetahui efektifitas sumur resapan dalam membantu proses infiltrasi pada kondisi tanah tertentu dengan kondisi permeabilitas yang telah

Jika dilihat pada Gambar 10, nilai maksimum tegangan ekuivalen terbesar terdapat pada desain 4 dengan nilai tegangan sebesar 4,3095 MPa namun untuk nilai minimum

Saat AC sedang dalam keadaan mati, bukalah jendela agar udara segar dan cahaya matahari dapat menembus ruangan; (2) kurangi menyemprot pewangi ruangan yang mengandung

Dalam rangka pelaksanaan pembinaan penyelenggaraan fasilitas elektronika dan listrik yang meliputi perencanaan, penyediaan, pemasangan, pengoperasian dan pemeliharaan peralatan

Pada grafik percobaan menggunakan selang dengan diameter 3/4 tekanan tertinggi mencapai 0.28 pada variasi 7 dimana katup 1 ditutup penuh dan katup 2 ditutup 45 derajat, hal ini

Tim Gabungan terus melakukan evakuasi pencarian korban longsor di dusun Dusun Jemblung Desa Sampang Kecamatan Karangkobar Kabupaten Banjarnegara.. Dari hasil pencarian

Data pengamatan ini menunjukkan bahwa pH, DO dan suhu air selama pengujian masih masuk dalam rentang yang dianjurkan untuk kehidupan Daphnia magna. Kondisi pH, suhu,

Uji beda rata-rata digunakan untuk membandingkan antara hasil produksi dan pendapatan usahatani cabai merah yang diperoleh petani sebelum perubahan iklim dengan