9
Landasan Teori
2.1 Teori Umum
2.1.1 Waterfall Model
Software Develoment Life Cycle (SDLC) merupakan siklus pengembangan aplikasi yang meliputi prosedur dan langkah-langkah yang membimbing suatu proyek secara teknis dari awal sampai akhir. Secara garis besar tahapan dibagi menjadi empat kegiatan utama, yaitu analisis, desain, impelemtasi, dan perawatan. Software yang dikembangkan berdasarkan SDLC akan menghasilkan sistem dengan kualitas yang tinggi, memenuhi harapan penggunanya, tepat dalam waktu dan biaya, bekerja dengan efektif dan efisien dalam infrastruktur teknologi informasi yang ada atau yang direncanakan, serta murah dalam perawatan dan pengembangan lebih lanjut (Pressman, 2010,p46).
SDLC memiliki banyak bentuk model, salah satu yang terkenal dan sering dipakai adalah model waterfall. Model waterfall diagram prosesnya mirip dengan air terjun yang bertingkat dapat dilihat pada gambar 2.3 yang meliputi tahapan - tahapan sebagai berikut :
1. Perancangan Sistem (Sistem Engineering)
Perancangan sistem diperlukan untuk bagian dari suatu sistem yang lebih besar nantinya Pembuatan sebuah piranti lunak dapat dimulai dengan melihat dan mencari apa yang dibutuhkan oleh sistem. Dari kebutuhan sistem tersebut akan diterapkan kedalam piranti lunak yang dibuat.
2. Analisa Kebutuhan Piranti Lunak (Software Requirement Analysis)
Merupakan proses pengumpulan kebutuhan piranti lunak. Untuk memahami dasar dari program yang akan dibuat, seorang analisis harus mengetahui ruang lingkup informasi, fungsi-fungsi yang dibutuhkan, kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka pemakai piranti lunak tersebut. 3. Perancangan (Design)
Perancangan piranti lunak terbagi atas 4 tahapan penting, yaitu: Struktur data, arsitektur piranti lunak, detil prosedur, dan karakteristik user interface.
4. Pengkodean (Coding)
Pengkodean piranti lunak merupakan proses penulisan kedalam bahasa pemograman agar piranti lunak tersebut dapat digunakan oleh mesin.
5. Pengujian (Testing)
Proses ini akan menguji kode program yang telah dibuat dengan memfokuskan pada bagian dalam piranti lunak. Tujuannya untuk memastikan bahwa semua pernyataan telah diuji dan memastikan juga bahwa input yang digunakan akan menghasilkan output yang sesuai. Pada tahap ini pengujian ini dibagi menjadi dua bagian, pengujian internal dan pengujian eksternal.
6. Pemeliharaan (Maintenance)
Proses ini dilakukan setelah piranti lunak telah digunakan oleh user. Suatu Perubahan akan dilakukan jika terdapat kesalahan dan penyesuaian akan perubahan kebutuhan yang diinginkan user.
Gambar 2.1 Model waterfall (Pressman, 2012:39)
2.1.2 Unified Modelling Language
Menurut Pressman (2012, p987) Unified Modeling Language (UML) adalah bahasa standar untuk penulisan cetak biru perangkat lunak. UML dapat digunakan untuk memvisualisasikan, menentukan mengonstruksi, dan mendokumentasikan artifak – artifak suatu sistem. Grady Booch, Jim Rumbaugh, dan Ivar Jacobson mengembangkan UML pada pertengahan 1990-an dengan banyak umpan balik dari komunitas pengembangan perangkat lunak. UML menggabungkan sejumlah notasi pemodelan yang saling bersaing, yang digunakan oleh industri perangkat lunak saat itu.
UML memberikan 13 diagram yang berbeda – beda untuk digunakan pada pemodelan perangkat lunak, tetapi tidak semua perlu digunakan. UML yang dipakai hanya yang sesuai dengan kebutuhan dari pengembangan software.
Tujuan penggunaan UML:
a) Membuat bahasa pemodelan visual yang ekspresif dari berbagai bahasa pemrograman dan proses rekayasa untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum. b) Sebagai cetak biru (blue print) karena lengkap dan detail.
2.1.2.1 Use Case Diagram
Use case diagram merupakan diagram yang menggambarkan fungsionalitas dan fitur – fitur perangkat lunak dari perspektif pengguna. Use Case menggambarkan bagaimana seorang pengguna berinteraksi dengan sistem dengan cara menentukan langkah – langkah yang diperlukan untuk mencapai suatu tujuan tertentu (Pressman, 2012:993).
Dalam Use Case Diagram terdapat dua komponen utama, yaitu : a) Actor.
Actor menggambarkan orang atau pelaku yang menggunakan sistem. Actor memberi input atau menerima sebuah informasi. Tidak boleh ada komunikasi langsung antar aktor.
b) Use Case
Use case biasanya menggunakan kata kerja dan menggambarkan apa yang dapat dilakukan oleh sebuah pelaku atau sistem. Gambar use case berbentuk elips mendatar.
2.1.2.2 Class Diagram
UML menyediakan diagram kelas (class diagram) untuk memodelkan kelas – kelas, termasuk atribut – atribut, operasi – operasi, dan hubungan serta asosiasinya dengan kelas – kelas lain. Class diagram menyediakan sudut pandang statik atau struktural dari suatu sistem. Diagram kelas tidak menunjukkan sifat dinamis dari komunikasi – komunikasi antara objek – objek kelas pada diagram.
Berikut ini simbol yang dipakai pada class diagram:
a. Classes
Diilustrasikan dengan persegi panjang yang dibagi menjadi beberapa komponen. Pada bagian pertama mengenai nama class, pada bagian
kedua mengenai attribut yang dipakai dalam class tersebut dan bagian ketiga berisi tentang operasi yang dapat dikerjakan oleh class tersebut. (Pressman, 2010:842)
b. Associations
Simbol ini digunakan untuk mewakili hubungan yang statis diantara class yang ada. Nama association diletakan pada atas atau bawah garis. Untuk memberi arah dalam hubungan antar class menggunakan tanda panah dan roles diletakan di akhir association. Roles menerangkan bagaimana cara dua class saling berhubungan. (Pressman, 2010:844)
c. Visibility
Simbol visibility digunakan pada atribut dan operator di dalam class. Visibility untuk memberi informasi mengenai hak akses dari atribut dan operasi yang bersangkutan. (Pressman, 2010:843). Ada tiga simbol visibility antara lain:
d. Multiplicity
Notasi ini diletakan dekat association. Simbol ini menunjukan jumlah instance dari satu class yang dihubungkan dengan class yang lainnya. (Pressman, 2010:844). Ada lima simbol yang digunakan antara lain:
e. Composition dan Aggregation
Composition adalah simbol khusus dari aggregasi. Simbol ini digunakan pada saat objek dari suatu class berisi objek dari class yang lain. Objek ini akan ada jika objek yang lain ada atau dengan kata lain, objek di satu class bergantung pada objek di class yang lainnya. Aggregation adalah simbol khusus dari asosasi. Simbol ini mempunyai hubungan dengan class yang lainnya dan objek yang menggunakan simbol ini akan tetap ada walaupun objek yang lain tidak ada. (Pressman, 2010:845)
f. Generalization
Simbol ini disebut juga dengan turunan atau inheritance. Simbol ini menunjukan hubungan atara dua class dimana salah satu dari class tersebut merupakan spesialisasi dari yang lainnya. (Pressman, 2010:843)
2.1.2.3 Sequence Diagram
Sequence diagram menunjukkan komunikasi dinamis antar objek selama eksekusi suatu sistem dijalankan. Sequence diagram menunjukkan urutan – urutan sementara dimana pesan – pesan dikirim di antara objek – objek untuk menyelesaikan jalannya sebuah sistem. Sequence diagram dapat digunakan untuk menunjukkan interaksi – interaksi pada suatu use case atau pada suatu skenario dari suatu sistem perangkat lunak.
Ada beberapa simbol yang penting dalam sequence diagram antara lain:
a. Class roles
Class roles menjelaskan class yang berkaitan dengan proses yang terjadi pada diagram.
b. Activation
Activation mewakili waktu yang dibutuhkan oleh objek untuk menyelesaikan prosesnya sampe selesai.
c. Messages
Message biasanya di representasikan oleh panah. Simbol ini berfungsi sebagai jalur komunikasi antara objek yang ada.
d. Lifelines
Lifelines direpsentasikan oleh garis putus-putus secara vertical. Garis ini digunakan sebagai pertanda bahwa objek tersebut ada di setiap proses.
e. Destroying Objects
Destroying objects digunakan sebagai tanda bahwa objek yang berkaitan dihilangkan dari proses.
2.1.3 Teknik Sampling
Menurut Sugiyono (2010,p62) teknik sampling adalah teknik pengambilan sampel.
Ada dua tipe teknik pengambilan sampel, yaitu (Hair,2006):
1. Non Random/non probability sampling
Tipe-tipe Non Probability Sampling adalah: a. Convenience Sampling
Metode sampling dengan sampel yang diambil berdasarkan keinginan pribadi dari peneliti.
b. Judgment Sampling
Metode sampling dengan responden dipilih berdasarkan pengalaman yang dimilikinya, dimana pengalaman tersebut dipercaya dapat memenuhi kebutuhan penelitian.
c. Quota Sampling
Metode sampling dengan responden dipilih berdasarkan kuota tertentu yang telah ditetapkan
d. Snowball Sampling
Metode sampling dengan sekumpulan responden dipilih lalu para responden tersebut membantu peneliti untuk menentukan orang selanjutnya yang dianggap memenuhi kriteran untuk diikutsertakan dalam penelitian.
2. Random/porbability sampling
Tipe-tipe Probability Sampling adalah: a. Simple Random Sampling
Metode sampling dimana setiap sampel yang ada di dalam populasi memiliki kesempatan yang sama besar untuk dipilih.
b. Systematic Random Sampling
Metode sampling dengan sampel yang disusun berdasarkan urutan tertentu.
c. Startified Random Sampling
Metode sampling dengan populasi yang ada dibagi ke dalam grup yan disebut strata dan sampel akan diambil tiap strata yang ada.
d. Cluster Sampling
Metode sampling dimana tiap unit sampel dibagi ke dalam sub populasi yang lebih kecil yang disebut cluster.
2.2 Teori Khusus
2.2.1 Enkripsi dan Dekripsi
Menurut Yudi Prayudi (2005), enkripsi merupakan proses melindungi sebuah pesan asli (plaintext) menjadi pesan yang sudah disandikan (ciphertext) dengan cara tertentu guna menyembunyikan atau merahasiakan isinya. Sedangkan dekripsi merupakan proses mengembalikan ciphertext kembali ke plaintext.
Proses enkripsi dan dekripsi digunakan pada ilmu kriptografi dan steganografi. Kriptografi dan steganografi merupakan ilmu yang sama tujuannya yaitu membuat sebuah pesan rahasia tidak terlihat atau terbaca oleh pihak yang tidak berwenang. Perbedaan antara dua ilmu ini adalah cara penyembunyian pesannya. Enkripsi pada kriptografi membuat pesan menjadi bentuk lain yang tidak dapat dimengerti dengan kasat mata, sedangkan steganografi menyisipkan pesan pada sebuah media pembawa, sehingga pihak yang tidak berwenang tidak mengetahui adanya pesan rahasia di dalam media pembawa tersebut. Proses enkripsi pada steganografi lebih dikenal dengan embed (penyisipan) dan dekripsi lebih dikenal extract.
2.2.2 Steganografi
Kata steganografi berasal dari bahasa Yunani yaitu steganos, yang artinya tersembunyi atau terselubung dan graphein, yang artinya menulis, sehingga kurang lebih arti steganografi adalah menulis tulisan yang tersembunyi atau terselubung. Catatan pertama tentang steganografi ditulis oleh seorang sejarawan Yunani, Herodotus, yaitu ketika Histaeus seorang raja kejam Yunani dipenjarakan oleh raja Darius di Susa pada abad 5 sebelum masehi. Histaues harus mengirim pesan rahasia kepada anak laki-lakinya, Aristagoras, di Militus. Histaues menulis pesan dengan cara mentato pesan pada kulit kepala budak dan ketika rambut budak itu mulai tumbuh, Histaues mengutus budak itu ke Militus untuk mengirim pesan di kulit kepalanya tersebut kepada Aristagouras.
Cerita lain tentang steganografi data juga dari sejarawan Yunani, Herodutus, yaitu dengan cara menulis pesan pada kayu yang ditutup dengan lilin. Demeratus, seorang Yunani yang akan mengabarkan berita kepada Sparta bahwa Xerxes bermaksud menyerbu Yunani. Agar tidak diketahui pihak Xerxes, Demeratus menulis pesan dengan cara mengisi tabung kayu dengan lilin dan menulis pesan dengan mengukirnya pada bagian bawah kayu, lalu papan kayu tersebut dimasukkan ke dalam tabung kayu, kemudian tabung kayu ditutup dengan lilin.
Teknik steganografi yang lain adalah tinta yang tak terlihat. Teknik ini pertama digunakan pada zaman Romawi kuno yaitu dengan menggunakan air sari buah jeruk, urine atau susu sebagai tinta untuk menulis pesan. Cara
membacanya adalah memanaskan kertas tersebut maka tinta yang tidak terlihat tersebut akan tampak.
Pada abad 20, steganografi mengalami perkembangan. Selama berlangsung perang Boer, Lord Boden Powell yang bertugas untuk membuat tanda posisi sasaran dari basis artileri tentara Boer, untuk alasan keamanan, Boden Powell menggambar peta-peta posisi musuh pada sayap kupu-kupu agar gambar-gambar peta sasaran tersebut terkamuflase.
Dari contoh-contoh steganografi konvensional tersebut dapat dilihat bahwa semua teknik steganografi konvensional berusaha merahasiakan komunikasi dengan cara menyembunyikan pesan ataupun mengkamuflase pesan. Maka sesungguhnya prinsip dasar dalam steganografi lebih dikonsentrasikan pada kerahasian komunikasinya bukan pada datanya (Johnson, 1995).
2.2.2.1 Metode - Metode Steganografi 1. Least Significant Bit (LSB)
Teknik ini bekerja secara langsung ke dalam domain spasial dari suatu citra. Istilah domain spasial sendiri mengacu pada pixel – pixel penyusun sebuah citra, yang artinya teknik ini beroperasi secara langsung pada pixel – pixel tersebut.
Metode yang digunakan untuk menyembunyikan pesan pada media digital citra dengan menggunakan cara menyisipkan pada bit rendah atau bit paling kanan pada pixel yang menyusun berkas tersebut
2. Phase Coding
Metode phase coding ini merupakan metode steganografi pada berkas audio. Teknik yang digunakan adalah dengan mensubtitusi awal fase dari tiap awal segmen dengan fase yang telah dibuat sedemikian rupa dan merepresentasikan pesan yang disembunyikan. Fase dari tiap awal segmen ini dibuat sedemikian rupa sehingga setiap segmen masih memiliki hubungan yang berujung pada kualitas suara yang tetap terjaga. Teknik ini menghasilkan keluaran yang jauh lebih baik daripada metode low bit coding namun dikompensasikan dengan kerumitan dalam realisasinya.
3. Low Bit Coding
Low Bit Coding merupakan salah satu metode paling banyak dipakai dalam menyembunyikan pesan. Cara kerjanya sama seperti Least Significant
Bit (LSB), yaitu dengan cara memasukkan tiap bit dari pesan yang ingin disembunyikan ke dalam akhir dari 1 byte pada audio.
Cara penyembunyian pesan dengan menggunakan low bit coding pada file audio WAVE tergantung dari format berkas WAVE tersebut apakah berkas WAVE mempunyai format 8 bit atau 16 bit. Jadi penyembunyian pesan pada bit terakhir yaitu pada bit ke-8 atau bit ke-16.
4. Pixel Value Differencing
Pixel Value Differencing (PVD) adalah salah satu algoritma yang ditemukan pada tahun 2003 oleh Da-Chun Wu dan Wen-Hsiang Tsai (Rojali, 2009). PVD merupakan teknik dengan memanfaatkan nilai perbedaan dari dua piksel berturut-turut. Kapasitas pesan bersembunyi pada dua piksel yang bertutur-turut itu tergantung pada selisih kedua piksel itu. Dengan kata lain, daerah yang halus adalah daerah dimana data rahasia kurang bisa disembunyikan. Tetapi, jika semakin tepi suatu daerah, maka semakin banyak juga data rahasia dapat disembunyikan. Ini karena degradasi kualitas stego-image yang lebih tidak terlihat oleh mata manusia (Wu et al, 2007).
Metode pixel value differencing ditemukan oleh Da-chun Wu dan Wen-Hsiang Tsai pada tahun 2003. Sistem arah pencarian selisih dua pixel dengan, menghitung selisih dua pixel menggunakan persamaan di = |P(i,x)-P(i,y)|. Selisih ini akan menentukan besarnya kapasitas pesan yang dapat disisipkan.
1 4 1 4
2 3 2 3
1 4 1 4
2 3 2 3
Gambar 2.2 Pola Pengambilan Pixel 2x2
Selisih yang diperoleh digunakan untuk mencari batas bawah (lj) dan batas atas (uj) berdasarkan tabel jangkauan Rj (Tabel 2.1). Nilai lj dan uj digunakan untuk menghitung wj = uj - lj + 1 sehingga diperolah nilai ti menggunakan persamaan ti = log(wj).
Tabel 2.1 Tabel Jangkauan
Selisih 2 pixel [batas bawah(uj), batas atas(lj)]
(0 - 7) [0 , 7] (8 - 15) [8 , 15] (16 - 31) [16 , 31] (32 - 63) [32 , 63] (64 - 127) [64 , 127] (128 - 255) [128 , 255]
Nilai ti yang diperoleh digunakan untuk mencari di’ = ti’ + lj , dimana ti’ adalah nilai desimal dari ti. Langkah selanjutnya adalah menghitung nilai P'(i,x) dan P'(i,y) menggunakan persamaan boundary di bawah ini.
Pada proses ekstraksi, langkah awal yang dilakukan sama seperti pada proses penyisipan, yaitu menghitung selisih dari pixel – pixel yang bertetanggaan menggunakan persamaan = |P(i,x)-P(i,y)|. Berdasarkan nilai maka didapat batas bawah dan batas atas ( ) dengan menggunakan tabel jangkauan . Langkah berikutnya mencari dengan rumus ,kemudian konversi ke dalam biner dengan panjang dimana pencarian sama dengan proses penyisipan. Kemudian kumpulan biner tersebut dikonversi ke dalam bentuk karakter.
2.2.3 Citra Digital
Sebuah citra diubah ke bentuk digital agar dapat disimpan dalam memori komputer atau media lain. Proses mengubah citra ke bentuk digital bisa
dilakukan dengan beberapa perangkat, misalnya scanner, kamera digital, dan handycam. Ketika sebuah citra sudah diubah ke dalam bentuk digital
(selanjutnya disebut citra digital), bermacam-macam proses pengolahan citra dapat diperlakukan terhadap citra tersebut. Image processing atau sering disebut dengan pengolahan citra digital merupakan suatu proses dari gambar asli
menjadi gambar lain yang sesuai dengan keinginan kita.
Bertalya (2005) mengatakan citra digital dihasilkan melalui digitalisasi terhadap citra kontinu. Citra digital merupakan fungsi intensitas cahaya f(x,y), dimana harga x dan y merupakan koordinat spasial dan harga fungsi tersebut pada setiap titik (x,y) merupakan tingkat kecemerlangan (intensitas cahaya) pada titik tersebut. Citra digital juga dapat diartikan sebagai sebuah matriks dimana indeks baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen matriksnya (disebut sebagai elemen gambar/ piksel) menyatakan tingkat keabuan pada titik tersebut.
Menurut Fatta (2007), Suatu citra adalah sekumpulan triplet yang terdiri atas variasi tingkat keterangan (brightness) dari elemen Red, Green, dan Blue (RGB). Setiap triplet akan menggambarkan sebuah piksel. Jika suatu triplet bernilai 67, 228, dan 180 berarti akan mengatur nilai Red = 67, Green = 228, dan Blue = 180. Pada format .bmp citra setiap piksel pada citra digambarkan dengan 24 bit (8 bit untuk Red, 8 bit untuk Green, dan 8 bit untuk Blue).
Berdasarkan jenisnya citra digital dapat dikelompokkan menjadi, 1. Bit Maps Graphic (BMP)
Tipe citra BMP biasa digunakan pada sistem operasi windows. Kelebihan dari tipe citra BMP adalah tidak dilakukan teknik kompresi, artinya tidak ada informasi gambar yang hilang. Sehingga menghasilkan mutu gambar yang bagus jika melakukan pengeditan.
2. Joint Photographic Group (JPG)
JPG adalah jenis data yang dikembangkan oleh Joint Photographic Expert Assemble (JPEG) yang dijadikan format standar untuk para fotografer profesional. JPG mengompresi data gambar dengan cara mengurangi bagian-bagian dari gambar untuk memblok pixel dalam gambar tersebut. Namum karena sifat lossy yang dimiliki JPG, maka format citra ini tidak terlalu baik untuk digunakan menyimpan gambar pajangan atau pajangan.
3. Graphic Interchange Format (GIF)
GIF merupakan format bitmap yang diperkenalkan pada tahun 1987 oleh CompuServe. GIF mendukung hingga 8 bit per pixel, yang berarti bahwa sebuah gambar dapat memiliki hingga 256 warna RGB berbeda. Salah satu keuntungan terbesar dalam format GIF adalah bahwa hal itu memungkinkan gambar animasi.
4. Portable Network Graphic (PNG)
Tipe berkas PNG adalah format gambar bitmap yang menggunakan kompresi data lossless, yang berarti saat dikompresi kualitas gambar tidak berkurang. PNG lebih unggul dari GIF antara lain karena adanya fitur alpha channel, gamma correction dan kompresi gambar yang lebih bagus.
2.2.4 Peak Signal to Noise Ratio (PSNR)
PSNR adalah perbandingan antara nilai maksimum dari sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal tersebut. PSNR biasanya diukur dalam satuan desibel. Semakin besar nilai PSNR maka perbedaan antara stego image dan cover image semakin kecil. Menurut Cole (2003), nilai PSNR dikatakan baik jika berada diatas nilai 20, artinya di bawah nilai 20 distorsi yang terjadi sangat besar antara stego-image dan cover image.
Untuk menentukan PSNR, terlebih dahulu harus ditentukan nilai rata - rata kuadrat dari error atau Mean Square Error (MSE). Nilai MSE yang besar menyatakan penyimpangan atau selisih antara cover image dan stego image cukup besar. Perhitungan MSE adalah sebagai berikut :
Dimana :
MSE = Nilai Mean Square Error dari citra
m = panjang citra (dalam pixel) n = lebar citra (dalam pixel)
(i,j)= koordinat masing-masing pixel
I = nilai bit citra sebelum disisipkan pada koordinat (i,j) K = nilai bit citra sesudah disisipkan pada koordinat (i,j) Maka untuk perhitungan PSNR :
2.2.5 Algorima Word Auto Key Encryption
Metode WAKE merupakan salah satu algoritma stream cipher yang telah digunakan secara komersial. WAKE merupakan singkatan dari Word Auto Key Encryption. Metode ini ditemukan oleh David Wheeler pada tahun 1993.
Metode WAKE menggunakan kunci 128 bit dan sebuah tabel 256 x 32 bit. Dalam algoritmanya, metode ini menggunakan operasi XOR, AND, OR dan Shift Right. Metode WAKE ini telah digunakan pada program Dr. Solomon Anti Virus versi terbaru.
Proses utama WAKE terdiri dari :
1. Proses pembentukan tabel S-Box (Substitution Box). 2. Proses pembentukan kunci.
3. Proses enkripsi dan dekripsi.
Inti dari metode WAKE terletak pada proses pembentukan tabel S-Box dan proses pembentukan kunci. Tabel S-Box dari metode WAKE bersifat fleksibel dan berbeda-beda untuk setiap putaran.
2.2.5.1 Proses Pembentukan Tabel S-Box
Proses pembentukan tabel S-Box adalah sebagai berikut : 1. Inisialisasi nilai TT[0] … TT[7] :
TT[0] : 726a8f3b (dalam heksadesimal) TT[1] : e69a3b5c (dalam heksadesimal)
TT[2] : d3c71fe5 (dalam heksadesimal) TT[3] : ab3c73d2 (dalam heksadesimal) TT[4] : 4d3a8eb3 (dalam heksadesimal) TT[5] : 0396d6e8 (dalam heksadesimal) TT[6] : 3d4c2f7a (dalam heksadesimal) TT[7] : 9ee27cf3 (dalam heksadesimal) 2. Inisialisasi nilai awal untuk T[0] … T[3] :
T[0] = K[0] T[1] = K[1]
K[0], K[1], K[2], K[3] dihasilkan dari kunci yang dipecah menjadi 4 bagian yang sama panjang.
3. Untuk T[4] sampai T[255], lakukan proses berikut : X = T[n-4] + T[n-1]
T[n] = X >> 3 XOR TT(X AND 7)
4. Untuk T[0] sampai T[22], lakukan proses berikut : T[n] = T[n] + T[n+89]
5. Set nilai untuk beberapa variabel di bawah ini : X = T[33]
Z = T[59] OR (01000001h) Z = Z AND (FF7FFFFFh) X = (X AND FF7FFFFFh) + Z
6. Untuk T[0] … T[255], lakukan proses berikut : X = (X AND FF7FFFFFh) + Z
T[n] = T[n] AND 00FFFFFFh XOR X
7. Inisialisasi nilai untuk beberapa variabel berikut ini : T[2] = K[2]
T[256] = T[0] X = X AND 255
8. Untuk T[0] … T[255], lakukan proses berikut : Temp = (T[n XOR X] XOR X) AND 255 T[n] = T[Temp]
T[X] = T[n+1]
2.2.5.2 Proses Pembentukan Kunci
Proses pembentukan kunci dari metode WAKE dapat ditentukan sendiri yaitu sebanyak n putaran. Semakin banyak putaran dari proses pembentukan kunci, maka keamanan datanya akan semakin terjamin. Fungsi yang digunakan dalam proses pembentukan kunci adalah M(X, Y) = (X + Y) >> 8 XOR T[(X + Y) AND 255].
Pertama-tama, kunci yang di-input akan dipecah menjadi 4 bagian dan di-set sebagai nilai awal dari variabel A0, B0, C0, dan D0. Nilai dari variabel ini akan diproses dengan melalui langkah berikut :
Ai+1 = M(Ai, Di) Bi+1 = M(Bi, Ai+1) Ci+1 = M(Ci, Bi+1) Di+1 = M(Di, Ci+1)
Nilai dari Di merupakan nilai dari kunci Ki.
Agar lebih jelas, lihatlah bagan proses pembentukan kunci berikut :
Gambar 2.3 Bagan proses pembentukan kunci i
i
Keterangan : P = Plaintext K = Key C = Ciphertext M = Fungsi M
i = Dimulai dari 0 sampai n. 2.2.5.3 Proses Enkripsi dan Dekripsi
Inti dari metode WAKE tidak terletak pada proses enkripsi dan dekripsinya, karena proses enkripsi dan dekripsinya hanya berupa operasi XOR dari plaintext dan kunci untuk menghasilkan ciphertext atau operasi XOR ciphertext dan kunci untuk menghasilkan plaintext. P = C ⊕ K C = P ⊕ K P = Plaintext K = Key C = Ciphertex