Upload
dodan
View
246
Download
0
Embed Size (px)
Citation preview
Penggunaan Message Authentication Code dan Algoritma Solitaire
Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra
Artikel Ilmiah
Peneliti :
Frans Adityafet (672010036)
M. A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Oktober 2014
ii
Penggunaan Message Authentication Code dan Algoritma Solitaire
Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer
Peneliti :
Frans Adityafet (672010036)
M. A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Oktober 2014
iii
iv
v
vi
vii
viii
ix
Penggunaan Message Authentication Code dan Algoritma Solitaire
Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra
1) Frans Adityafet,
2) M. A. Ineke Pakereng
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50771, Indonesia
Email: 1)
Abstract
Transcripts generally become one of the requirements for a person who wanted to get
post-graduate scholarship program, or to apply a job, but sometimes to get it, someone
can commit fraud by falsifying the contents of the transcript of its value. For that we need
a system that can provide authentication of an image transcripts. This study used a
Message Authentication Code to ensure the validation of an image transcripts. Message
Authentication Code is a mechanism markers instead of manual signatures on paper
pasted on the image transcripts. In this study there are the process of signing and
verification process that uses the solitaire encryption algorithm to encrypt messages in
the generation of MAC as a media comparison of data integrity, as well as LSB
steganography algorithms to insert into the message and MAC image transcripts. The
results of this study indicate that the application can detect manipulation authentication
transcripts.
Keywords: Transcript, Message Authentication Code, Algorithms Solitaire, LSB
Steganography
Abstrak
Transkrip nilai umumnya menjadi salah satu syarat bagi seseorang yang hendak
mendapatkan beasiswa program pasca sarjana, atau untuk melamar pekerjaan, tetapi
terkadang untuk mendapatkan hal tersebut, seseorang dapat melakukan kecurangan
dengan memalsukan isi transkrip nilainya. Untuk itu diperlukan sebuah sistem yang dapat
memberikan otentikasi dari sebuah image transkrip nilai. Dalam penelitian ini digunakan
Message Authentication Code untuk menjamin validasi dari sebuah image transkrip nilai.
Message Authentication Code adalah sebuah mekanisme pemberi tanda sebagai
pengganti tanda tangan manual di kertas yang disisipkan pada image transkrip nilai.
Dalam penelitian ini terdapat proses signing dan proses verifikasi yang menggunakan
algoritma enkripsi solitaire untuk menyandikan pesan dalam pembangkitan MAC sebagai
media pembanding integritas data, serta algoritma steganography LSB untuk
menyisipkan pesan dan MAC ke dalam image transkrip nilai. Hasil penelitian ini
menunjukkan bahwa aplikasi otentikasi dapat mendeteksi manipulasi transkrip nilai.
Kata Kunci : Transkrip Nilai, Message Authentication Code, Algoritma Solitaire,
Steganography LSB
1)
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas
Kristen Satya Wacana Salatiga 2)
Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga
1
1. Pendahuluan
Transkrip nilai umumnya menjadi salah satu syarat bagi seseorang yang
hendak mendapatkan beasiswa program pasca sarjana, atau untuk melamar
pekerjaan, tetapi terkadang untuk mendapatkan hal tersebut, seseorang dapat
melakukan kecurangan dengan memalsukan isi transkrip nilainya. Seperti
ditemukannya kasus pemalsuan isi transkrip nilai, dengan memanipulasi jumlah
SKS yang telah ditempuh, di sebuah perguruan tinggi di Yogyakarta, yang
dilakukan oleh mahasiswa pindahan dari luar daerah [1]. Hal ini dapat
mencemarkan nama baik kampus yang menerbitkan transkrip nilai karena
dicurigai sebagai tempat praktek transkrip nilai palsu. Oleh sebab itu dibutuhkan
keamanan yang dapat menjamin validasi transkrip nilai dan tidak ada manipulasi.
Penelitian yang dilakukan mengimplementasikan metode Message
Authentication Code (MAC) dan algoritma solitaire untuk menjaga integritas
data. MAC merupakan sebuah fungsi satu arah yang menggunakan kunci privat
dalam penghitungan nilai MAC dari pesan tersebut, dengan kata lain, nilai hash
adalah fungsi dari pesan dan kunci. MAC disebut juga keyed hash function atau
key-dependent one-way hash function. Kunci digunakan untuk memverifikasi nilai
hash [2]. Algoritma solitaire dapat digunakan untuk mengamankan pesan, dimana
pesan yang dienkripsi menjadi karakter acak sehingga pesan asli tidak terbaca,
Hal ini disebabkan pembangkitan keystream dari urutan kartu melalui proses yang
panjang sehingga hasil keluarannya benar-benar acak [3].
Berdasarkan latar belakang masalah tersebut, maka dilakukan penelitian
untuk merancang suatu aplikasi otentikasi transkrip nilai, menggunakan metode
Message Authetication Code (MAC) dan algoritma solitaire untuk menyandikan
pesan. Penelitian ini menghasilkan aplikasi yang dapat memvalidasi suatu
transkrip nilai, serta menjamin keamanan dan keaslian informasi legalisasi
transkrip tersebut.
2. Kajian Pustaka
Penelitian terdahulu tentang “Implementasi Algoritma MAC Berbasis
Cipher Block Sebagai Program Add-in di Microsoft Word untuk Otentikasi
Dokumen”, membahas tentang bagaimana mengamankan dokumen word
menggunakan nilai Message Authentication Code (MAC), Cipher Block adalah algoritma enkripsi yang akan membagi-bagi plaintext yang akan dikirimkan dengan
ukuran tertentu (disebut blok) dengan panjang t dan setiap blok dienkripsi dengan
menggunakan kunci yang sama. Penelitian ini menghasilkan sebuah program add-in
untuk aplikasi pengolah kata Microsoft Word yang dapat melakukan otentikasi
dokumen dengan mengimplementasikan algoritma CMAC. Berdasarkan hasil uji
coba, program add-in untuk Microsoft Word yang dibangun bekerja dengan baik
untuk otentikasi dokumen. Perubahan pada dokumen seperti
penambahan/pengurangan huruf, kalimat, paragraf, bahkan objek seperti gambar
mengakibatkan perubahan pada nilai MAC. Selain itu, kesalahan memasukkan
kunci juga akan mengakibatkan validasi nilai MAC gagal [4].
2
Penelitian terdahulu tentang “Verifikasi Otentifikasi Data Transkrip Nilai
Berbentuk Citra Menggunakan SHA-512”, membahas tentang bagaimana
menverifikasi otentikasi data transkrip nilai berbentuk citra menggunakan SHA-
512. Penelitian ini menghasilkan sebuah program verifikasi otentikasi data
transkrip nilai berbentuk citra menggunakan SHA-512, dan bermanfaat untuk
membantu perusahaan untuk menverifikasi file transkrip serta mengurangi
kecurangan manipulasi file transkrip dalam melamar pekerjaan [5].
Penelitian terdahulu tentang “Solitaire Cipher”, berdasarkan pembahasan
dari penelitian yang dilakukan sebelumnya menyebutkan, bahwa solitaire sebagai
salah satu algoritma kriptografi sederhana mempunyai tingkat keamanan yang
cukup tinggi jika dibandingkan dengan algoritma sederhana lain. Hal ini
disebabkan pembangkitan keystream dari urutan kartu melalui proses yang
panjang sehingga hasil keluarannya benar-benar acak [3].
Berdasarkan penelitian-penelitian yang sudah ada mengenai penggunaan
metode MAC, dan algoritma Solitaire, maka dilakukan penelitian yang membahas
mengenai Penggunaan Message Authentication Code Dan Algoritma Solitaire
Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra, sehingga dapat
membantu mahasiswa dan alumni dalam mengamankan file transkrip nilainya dari
manipulasi, seperti pihak yang ingin memanfaatkannya untuk mendaftar di
sebuah perguruan tinggi ternama yang mengharuskannya memiliki nilai tinggi.
Penelitian ini bertujuan untuk merancang dan mengimplementasikan penggunaan
MAC dan algoritma solitaire dalam aplikasi otentikasi data transkrip nilai
berbentuk citra dengan metode penyisipan steganografi Least Significant Bit,
sehingga dapat membantu pihak yang berkepentingan untuk menverifikasi file
transkrip serta mengurangi kecurangan manipulasi file transkrip dalam
penggunaan sebagaimana mestinya. Perbedaan dari penelitian sebelumnya ada
pada penggunaan metode yang digunakan, pada penelitian ini digunakan Message
Authentication Code (MAC) yang menyediakan fitur keamanan integrity dan
algoritma solitaire sebagai penyedia fitur keamanan authentication. Penelitian ini
menghasilkan aplikasi yang dapat menjamin legalisasi digital suatu transkrip nilai.
Batasan masalah dalam penelitian ini adalah aplikasi ini menggunakan metode
MAC dan algoritma solitaire yang diimplementasikan pada Visual Studio 2012
dan data citra yang digunakan adalah dalam format png.
Penelitian yang dilakukan membahas tentang Message Authentication
Code, Algoritma Solitaire dan Metode steganografi Least Significant Bit. Message
Authentication Code (MAC) adalah sebuah algoritma yang didesain secara khusus
untuk memeriksa keaslian sebuah bagian informasi berupa kode sehingga apabila
kode tersebut mengalami perubahan yang dilakukan oleh pihak yang tidak
berwenang, maka pihak yang berwenang dapat mengetahuinya. MAC merupakan
sebuah fungsi satu arah yang menggunakan kunci privat dalam penghitungan nilai
MAC dari pesan tersebut. Sistem MAC ini berbeda dengan fungsi hash seperti
SHA ataupun MD5 yang tidak menggunakan kunci privat apapun untuk
menghitung nilai hash dari pesan. Nilai MAC yang dihasilkan adalah selalu berukuran tetap berapapun panjang dari pesan yang diotentikasi. Selanjutnya,
MAC dilekatkan pada pesan yang nantinya akan digunakan untuk otentikasi
keaslian pesan. Perbedaan antara MAC dan algoritma enkripsi adalah MAC
3
digunakan tanpa perlu merahasiakan isi pesan. Dalam MAC, pesan yang
dikirimkan bias saja terbaca pihak lain, namun untuk membentuk MAC pihak
tersebut harus mengetahui kuncinya. MAC juga bukan tanda tangan digital, MAC
hanya menyediakan otentikasi dan integritas pesan saja [6].
Gambar 1 Mekanisme Penggunaan Message Authentication Code [5]
Gambar 1 menunjukkan mekanisme penggunaan Message Authentication
Code, dimana pihak pengirim dan penerima terlebih dahulu menentukan kunci
privat yang akan digunakan dalam otentikasi pesan antar pihak. Selanjutnya,
pihak pengirim akan menggunakan algoritma MAC dengan kunci privat tadi
untuk menghasilkan nilai MAC dari pesan yang akan ditransmisikan. Pesan
kemudian disisipkan dengan nilai MAC yang telah ditentukan dan dikirimkan ke
pihak penerima. Pihak penerima kemudian mengotentikasi keaslian pesan dengan
menghitung kembali MAC dari pesan tersebut lalu mencocokkannya dengan
MAC yang tertera pada pesan. Apabila ada ketidakcocokan, dapat diambil
kesimpulan langsung bahwa terjadi perubahan pada isi pesan yang diterima,
artinya pesan tidak lagi asli.
Penelitian yang dilakukan menggunakan algoritma kriptografi solitaire.
Algoritma solitaire merupakan salah satu algoritma klasik, algoritma ini
diciptakan oleh Bruce Schneier, seorang pakar keamanan yang juga menciptakan
algoritma blowfish pada tahun 1999 [7]. Solitaire termasuk ke dalam algoritma
kriptografi berbasis substitusi yaitu algoritma yang mengganti satu atau beberapa
karakter dengan karakter lain. Algoritma solitaire menghasilkan sebuah keystream
yang digunakan untuk proses enkripsi. Keystream dihasilkan dari kunci yang
diberikan oleh pengguna. Kunci digunakan untuk menentukan urutan kartu yang
akan digunakan dalam pembentukan keystream. Urutan awal kartu ini dapat
berupa urutan dari nilai terkecil ke nilai terbesar, dengan anggapan bahwa kartu
As sampai dengan kartu King keriting (clubs) untuk nilai satu sampai tiga belas,
nilai empat belas sampai dua puluh enam untuk wajik (diamonds), nilai dua puluh
tujuh sampai tiga puluh sembilan untuk hati (hearts) dan sisanya untuk kartu
sekop (spades).
Proses enkripsi dengan algoritma solitaire dilakukan sebagai berikut : 1)
Mengatur urutan kartu sesuai dengan kunci yang diberikan pengguna; 2) Proses
4
pembangkitan keystream dari urutan kartu yang telah diperoleh; 3) Mengubah
semua huruf menjadi huruf kapital, lalu dirubah menjadi angka; 4) Memisahkan
text yang akan dienkripsi dalam grup yang berisi lima karakter; 5) Menggunakan
sebuah keystream; 6) Mengubah plaintext menjadi angka; 7) Mengubah keystream
menjadi angka; 8) Menjumlahkan kedua angka pada plaintext dan keystream,
dengan modulo 26. Jika hasil penjumlahan lebih dari 26, maka dikurangkan
dengan 26 untuk mendapatkan hasilnya; dan 9) Mengubah angka hasil
penjumlahan ke dalam huruf untuk mendapatkan hasil ciphertext. Proses dekripsi
dengan algoritma solitaire, dilakukan sebagai berikut: 1) Memisahkan ciphertext
yang akan didekripsi dalam grup yang berisi lima karakter; 2) Menggunakan
sebuah keystream yang sama pada proses enkripsi; 3) Mengubah ciphertext
menjadi angka; 4) Mengubah keystream menjadi angka; 5) Mengurangkan kedua
angka pada ciphertext dan keystream, dengan modulo 26. Jika angka yang
didapatkan kurang dari 26 maka tambahkan dahulu dengan 26, baru setelah itu
dikurangkan dengan keystream; dan 9) Mengubah angka hasil pengurangan ke
dalam huruf untuk mendapatkan hasil plaintext.
Metode yang digunakan untuk menyisipkan pesan adalah metode least
significant bit (LSB), yang merupakan metode standar yang banyak digunakan
untuk melakukan steganografi terutama pada media citra digital. Perubahan satu
bit pada least significant bit tidak akan mengakibatkan perubahan warna yang
cukup besar sehingga tidak dapat terlihat secara kasat mata oleh orang lain.
Metode ini menggunakan least significant bit dari byte-byte pada media digital
yang disubstitusi dengan satu bit, satu bit pesan yang ingin disisipkan sehingga
ukuran file yang dapat disimpan cenderung jauh lebih kecil dari ukuran asli citra
digital tersebut. Proses ekstraksi dari metode ini dapat dilakukan dengan
menyusun bit-bit yang disisipkan pada citra tersebut sehingga membentuk pesan
yang telah disisipkan tersebut [8].
3. Metode dan Perancangan Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang
terbagi dalam empat tahapan, yaitu: (1) Identifikasi Masalah dan Studi Literatur,
(2) Perancangan sistem, (3) Implementasi sistem, dan (4) Pengujian sistem dan
analisis hasil pengujian.
Gambar 2 Tahapan Penelitian
Identifikasi Masalah dan Studi Literatur
Perancangan Sistem meliputi Perancangan Proses Signing dan Proses Verifikasi
Implementasi Sistem
Pengujian Sistem dan Analisis Hasil Pengujian
5
Tahapan penelitian pada Gambar 2, dijelaskan sebagai berikut. Tahap
pertama: identifikasi masalah dan studi literatur, yaitu mengidentifikasi masalah-
masalah yang akan dibahas, serta mendapatkan literatur yang terkait dengan
proses signing dan verifikasi, menggunakan metode Message Authentication Code
(MAC) dan algoritma kriptografi solitaire untuk enkripsi pesan, serta metode
steganography LSB untuk proses embedding dan extracting; Tahap kedua:
perancangan sistem yang meliputi perancangan proses signing dan proses
verifikasi dalam sistem yang akan dibangun; Tahap ketiga: implementasi sistem,
yaitu membuat aplikasi sesuai perancangan proses pada tahap kedua, yaitu
misalnya bagaimana aplikasi/program berjalan saat file di-sign dan diverifikasi;
Tahap keempat: pengujian sistem dan analisis hasil pengujian, yaitu dilakukan
pengujian authentication (keaslian data dapat terjamin), pengujian integrity (data
masih dalam keadaan asli atau belum pernah diubah), pengujian hasil verifikasi
setelah dimanipulasi apakah sudah sesuai dengan konsep Message Authentication
Code.
Gambar 3 alur proses utama pada perancangan ini diawali dengan mahasiswa
meminta (request) file transkrip nilai kepada bagian nilai. Kemudian bagian nilai
akan memasukkan pesan dan key yang akan digunakan untuk menentukan nilai
MAC (generate MAC) serta menyisipkan pesan beserta Message Authentication
Code pada file tersebut dan diberikan kepada mahasiswa atau yang disebut juga
dengan proses signing. Setelah mahasiswa menerima file transkrip nilai yang
sudah di-signing, mahasiswa akan mengirim file tersebut ke pihak yang
berkepentingan. Kemudian pihak tersebut akan melakukan proses verifikasi yang
nantinya akan diketahui apakah file yang dikirimkan tersebut benar-benar valid
atau tidak.
Gambar 3 Alur Proses Utama Pada Sistem
6
Sistem yang dibangun menghasilkan aplikasi otentikasi data transkrip
nilai, yang terdiri dari dua proses, yang pertama adalah proses signing yaitu proses
pemberian tanda terhadap transkrip nilai yang dilakukan oleh bagian nilai dan
yang kedua adalah proses verifikasi yang dapat dilakukan oleh pihak luar yang
berkepentingan.
Gambar 4 menunjukkan proses signing yang dilakukan oleh admin (bagian
nilai). Pada proses ini pertama-tama admin akan meng-input file transkrip, pesan
dan key. Kemudian dilakukan proses generate MAC, menggunakan pesan dan key
yang diinputkan. Pada proses pembentukan MAC akan didapatkan message digest
yang panjangnya tetap dan akan digunakan sebagai MAC. Nilai MAC tidak dapat
dikembalikan lagi ke bentuk semula karena nilai MAC merupakan fungsi satu
arah (one-way hash). Setelah menghasilkan MAC, proses terakhir pada proses
generate MAC ini adalah proses penyisipan (embedding) pesan dan MAC ke
dalam transkrip nilai, menggunakan metode steganografi LSB.
Gambar 4 Proses Signing Oleh Bagian Nilai Gambar 5 Proses Verifikasi Pihak Luar
Gambar 5 menunjukkan proses verifikasi yang dilakukan oleh pihak yang
berkepentingan. Proses ini dimulai dengan ekstraksi pesan dan MAC. Kemudian
dimasukkan key yang telah diketahui sebelumnya, pesan dan key tersebut akan
digunakan dalam proses generate MAC. Proses generate MAC pada proses
verifikasi ini sama dengan proses generate MAC pada proses signing. Pada proses
verifikasi ini akan menghasilkan nilai MAC1. Kemudian dilakukan perbandingan,
apabila MAC0 sama dengan MAC1 maka dapat dipastikan transkrip nilai valid.
Begitu pula sebaliknya apabila MAC0 tidak sama dengan MAC1 maka transkrip
nilai tidak valid.
7
Gambar 6 Proses Enkripsi Algoritma Solitaire
Gambar 6 menunjukkan proses enkripsi pesan yang dimasukkan
menggunakan algoritma solitaire dengan keystream yang dibentuk oleh keystream
generator. Kemudian pesan dan keystream diubah menjadi angka, lalu
dijumlahkan. Jika penjumlahannya lebih dari 26, maka dilakukan modulo 26 atau
dikurangi dengan angka 26. Hal ini dikarenakan abjad A sampai Z yang
berjumlah 26. Kemudian ubah hasil penjumlahan angka tersebut mejadi huruf.
Keluaran dari proses ini adalah ciphertext yang nantinya akan digunakan pada
proses pembangkitan MAC dan akan digabungkan (embed) dengan wadah
penampung yaitu transkrip nilai.
Proses berikutnya yaitu proses pembangkitan MAC. Pada proses
pembangkitan nilai MAC terdapat dua proses, yaitu akumulasi dan finalisasi.
Awalnya pesan telah dienkripsi menggunakan keystream yang menghasilkan
sebuah ciphertext, akan digunakan sebagai nilai MAC. Kemudian ciphertext
tersebut akan diakumulasi. Proses akumulasi ini ditujukan untuk mengumpulkan
8
nilai MAC, sehingga panjang MAC yang dihasilkan sesuai dengan yang
dibutuhkan. Panjang MAC disini sebenarnya tidak memiliki standar, namun untuk
keseragaman akan dipergunakan nilai MAC dengan panjang 64 bit. Proses
akumulasi yang dilakukan adalah membentuk kumpulan himpunan yang masing-
masing himpunan terdiri dari 64 bit data. Kemudian proses finalisasi berfungsi
untuk melakukan penyesuaian terhadap panjang MAC yang akan dibentuk.
Penyesuaian panjang dilakukan dengan menggunakan operator exclusive-OR
sehingga diperoleh MAC sepanjang 64 bit. Nilai MAC inilah yang kemudian
dimasukkan ke dalam image transkrip nilai yang nantinya akan dipergunakan
untuk mengotentikasi pesan apakah telah terjadi perubahan atau tidak. Proses ini
dapat dilihat pada Gambar 7.
Gambar 7 Alur Proses Pembangkitan MAC
Proses embed melewati beberapa proses, pertama proses membaca setiap
pixel yang terdapat pada file transkrip. Kemudian proses mengubah MAC (MAC0)
menjadi bit. Bit inilah yang akan disisipkan ke LSB warna file transkrip nilai.
Proses ini akan berhenti apabila semua bit sudah selesai di-embedded ke dalam
LSB warna transkrip nilai. Proses steganografi ini dapat dilihat pada Gambar 8.
9
Gambar 8 Proses Embed Gambar 9 Proses Extract MAC0
Proses extracting data merupakan proses untuk membaca pesan yang
disisipkan di dalam media penampung. Sistem akan membaca tiap pixel pada
image, dan membaca tiap komponen warna pada pixel tersebut yaitu red, green,
dan blue. Satu komponen warna bernilai satu byte. Jika komponen warna tersebut
bernilai lemah, maka akan diambil nilai LSB-nya, dan disimpan pada variabel
penampung. Proses ini akan diulangi hingga semua bit pesan selesai terbaca.
Pesan yang didapat, akan disimpan sebagai file baru, proses selesai dengan output
pesan yang telah diekstrak. Proses ini ditunjukkan pada Gambar 9.
10
4. Analisis dan Pembahasan
Hasil implementasi sistem berdasarkan perancangan yang telah dilakukan,
dijelaskan sebagai berikut.
Gambar 10 Antarmuka Sistem
Gambar 10 menunjukkan antarmuka sistem. Aplikasi yang dibangun
menyediakan dua menu utama, yaitu menu verifikasi transkrip dan menu
administrator. Menu verifikasi transkrip adalah menu yang digunakan oleh pihak
yang berkepentingan untuk menverifikasi transkrip nilai sedangkan menu
administrator digunakan oleh admin untuk memberi sign pada transkrip nilai
sebelum diberikan ke mahasiswa.
Pada menu administrator, admin akan memilih file transkrip, dengan
memilih button Choose File. Proses selanjutnya, yaitu admin memasukkan kunci
(key) dan pesan (message), kemudian memilih tombol Generate MAC untuk
melakukan proses signing. Setelah melakukan proses signing, kemudian memilih
tombol Save Result yang akan menyimpan transkrip yang telah tersertifikasi.
Setelah file tersimpan, kemudian pilih menu Log out untuk keluar dari proses
signing (admin).
Pada menu verifikasi transkrip, user akan memilih file transkrip yang
sudah di-signing sebelumnya dengan memilih button Choose File. Kemudian user
memasukkan kunci yang sebelumnya sudah diketahui lalu memilih tombol Verify
MAC untuk melakukan pengecekan file. File dikatakan valid apabila file tersebut
sudah melewati proses signing sebelumnya, jika belum maka file tersebut akan
dinyatakan tidak valid. Antarmuka transkrip valid ditunjukkan pada Gambar 11.
11
Gambar 11 Antarmuka Transkrip Valid
Kode Program 1 Perintah untuk Proses Enkripsi/Dekripsi dengan Solitaire 1. protected String Convert(String message, Boolean encode)
2. {
3. StringBuilder sb = new StringBuilder();
4. int curChar, curKey;
5. int x = 0;
6. while (x < message.Length)
7. {
8. PushAndCut();
9. curChar = ((int)message[x] - 64);
10. curKey = _deck[0]; 11. 12. if (curKey == 54) 13. curKey = _deck[53]; // JokerB's value is 53 14. else 15. curKey = _deck[curKey]; 16. 17. if (encode) 18. curChar = (curChar + curKey); 19. else 20. { // decode 21. if (curChar < curKey) curChar += 26; 22. curChar = (curChar - curKey); 23. } 24. if (curKey < 53) { 25. if (curChar > 26) curChar %= 26; 26. if (curChar < 1) curChar += 26; 27. sb.Append((char)(curChar + 64)); 28. x++; 29. } 30. } 31. return sb.ToString(); 32. }
Kode Program 1 merupakan perintah untuk proses enkripsi/dekripsi
solitaire cipher. Parameter encode bernilai TRUE jika fungsi tersebut digunakan
untuk proses enkripsi, dan sebaliknya bernilai FALSE jika digunakan untuk
proses dekripsi.
Kode Program 2 Perintah untuk Proses Pembangkitan Nilai MAC 1. public const int BitLength = 64;
2.
3. public static byte[] Generate(string message, string key)
12
4. {
5. string cipher = SolitaireWrapper.Encrypt(message, key);
6. byte[] feed = Encoding.Default.GetBytes(cipher);
7. return Generate(feed);
8. }
9.
10. public static byte[] Generate(byte[] feed, int bitLength = BitLength) 11. { 12. int byteLength = bitLength / 8; 13. 14. List<byte[]> acculated = Accumulate(feed, byteLength); 15. byte[] finalized = Finalize(acculated); 16. return finalized; 17. } 18. 19. private static List<byte[]> Accumulate(byte[] feed, int byteLength) 20. { 21. List<byte[]> list = new List<byte[]>(); 22. int padding = byteLength - (feed.Length % byteLength); 23. byte[] fullyPadded = new byte[feed.Length + padding]; 24. Array.Copy(feed, fullyPadded, feed.Length); 25. 26. for (int i = 0; i < fullyPadded.Length; i += byteLength) 27. { 28. byte[] part = new byte[byteLength]; 29. Array.Copy(fullyPadded, i, part, 0, part.Length); 30. list.Add(part); 31. } 32. return list; 33. } 34. 35. private static byte[] Finalize(List<byte[]> acculated) 36. { 37. int byteLength = acculated[0].Length; 38. byte[] mac = new byte[byteLength]; 39. Array.Copy(acculated[0], mac, mac.Length); 40. for (int i = 1; i < acculated.Count; i++) 41. { 42. mac = XOR(mac, acculated[i]); 43. } 44. return mac; 45. } 46. 47. private static byte[] XOR(byte[] mac, byte[] p) 48. { 49. byte[] result = new byte[mac.Length]; 50. 51. for (int i = 0; i < mac.Length; i++) 52. { 53. result[i] = (byte)(mac[i] ^ p[i]); 54. } 55. return result; 56. } 57.
Kode Program 2 merupakan potongan perintah yang terdapat pada class
MAC. Diawali dari fungsi Generate (baris 10-17), dilakukan proses enkripsi.
Kemudian dipanggil fungsi Accumulate (baris 19-32) yang merupakan perintah
untuk membentuk kumpulan himpunan yang masing-masing himpunan terdiri dari
64 bit data. Kemudian himpunan-himpunan tersebut dilakukan proses finalisasi
dengan menggunakan operator exclusive-OR, sehingga pada akhirnya terbentuk
nilai MAC dengan panjang 64 bit.
Kode Program 3 Perintah untuk Proses Embedding 1. public static Bitmap Embed(Bitmap bitmap, byte[] message)
2. {
3.
4. byte[] pixels = PixelTool.ExtractColors(bitmap);
13
5. char[] biner = GetBitString(message).ToCharArray();
6. for (int i = 0; i < biner.Length; i++)
7. {
8. pixels[i] = ReplaceLSB(pixels[i], biner[i]);
9. }
10. Bitmap embedded = PixelTool.CombineColors(bitmap, pixels); 11. return embedded; 12. }
Kode Program 3 merupakan perintah untuk proses embedding. Data yang
tersimpan dalam variabel message, diubah ke dalam bentuk binary (baris 5).
Untuk tiap bit pada bentuk binary tersebut, disisipkan dalam 1 warna pada gambar
(baris 6-9). Proses penyisipan berarti menggantikan nilai LSB dari warna, dengan
bit pesan (baris 8). Kemudian warna-warna yang telah disisipi, disatukan kembali
dalam bentuk gambar (baris 10).
Kode Program 4 Perintah untuk Proses Extracting 1. public static byte[] Extract(Bitmap bitmap, int bitLength)
2. {
3. byte[] pixels = PixelTool.ExtractColors(bitmap);
4. List<char> bits = new List<char>();
5. for (int i = 0; i < bitLength; i++)
6. {
7. bits.Add(RetrieveLSB(pixels[i]));
8. }
9. byte[] message = GetBytesArray(new string(bits.ToArray()));
10. return message; 11. }
Kode Program 4 merupakan perintah untuk mengekstraksi bit pesan yang
tersimpan pada gambar. Pada tiap warna dalam gambar, dibaca nilai dari LSB,
kemudian bit-bit tersebut disatukan kembali sehingga menjadi data dalam format
byte array (baris 9).
Pengujian terhadap sistem message authentication code yang telah
dibangun, dilakukan untuk memenuhi syarat keamanan data yakni authentication
(keaslian data dapat terjamin) dan integrity (data masih dalam keadaan asli atau
belum pernah diubah). Terdapat 6 file transkrip nilai dengan berbagai macam
ukuran sebagai data set pengujian.
Pengujian dilakukan dengan menggunakan software pendukung yakni
PixelDiff. Software ini berfungsi untuk mengukur dan membandingkan dua image
yang secara kasat mata sama. Pengujian dilakukan dengan membandingkan antara
file image transkrip yang belum di-signing dan sesudah di-signing. Hasil
pengujian dapat dilihat pada Tabel 1.
Tabel 1 Hasil Pengujian Perbedaan Pixel
Berdasarkan Tabel 1, pada pengujian pertama dapat dilihat bahwa
perbedaan pixel sebelum dan sesudah dilakukan signing memiliki perbedaan pixel
sebesar 1604614 pixel, sedangkan pengujian kedua mengalami perbedaan pixel
sebesar 794955 pixel. Hal ini menunjukkan bahwa perubahan besaran pixel yang
14
terjadi setelah proses signing cukup terlihat, namun perbedaan gambar tidak
terlihat mencolok antara asli dan setelah signing. Sedangkan dilihat dalam ukuran
file pada percobaan 1 dan 2, memiliki perbedaan dengan ukuran file transkrip
yang asli.
Pengujian perbandingan hash sebelum signing dan sesudah dilakukan
verifikasi dapat dilihat pada Tabel 2.
Tabel 2 Hasil Pengujian Perbedaan Hash
Berdasarkan Tabel 2 dapat dibuktikan bahwa message digest transkrip
sebelum signing (Transkrip 1.png) dan setelah diverifikasi memiliki karakter key
yang sama, sehingga dapat dikatakan valid.
Pengujian authentication dilakukan untuk melihat hasil verifikasi transkrip
nilai tersertifikasi dengan message authentication code dapat dilihat pada Tabel 3.
Tabel 3 Hasil Pengujian Authentication
Berdasarkan Tabel 3 dapat disimpulkan bahwa aplikasi ini dapat
mendeteksi bila kunci yang digunakan berbeda. Setiap ada kesalahan dalam
memasukkan nilai kunci otomatis verifikasi gagal.
Percobaan Integrity untuk melihat hasil verifikasi setelah dilakukan
manipulasi data pada file transkrip menggunakan aplikasi manipulasi gambar
dapat dilihat pada Tabel 4.
15
Tabel 4 Hasil Pengujian Integrity
Berdasarkan Tabel 4 dapat disimpulkan bahwa aplikasi ini dapat
mendeteksi perubahan yang terjadi pada file transkrip. Perubahan apapun yang
dilakukan pada file transkrip yang sudah di-signing terlebih dahulu akan membuat
file menjadi tidak valid.
Pengujian selanjutnya yakni perbandingan antara ukuran file dengan waktu
proses dibagi menjadi dua macam yakni, ukuran file dengan waktu proses signing
serta ukuran file dengan waktu proses verifikasi. Pengujian ukuran file dengan
waktu proses dapat dilihat pada Tabel 5.
Tabel 5 Hasil Pengujian Waktu Proses Signing
Tabel 5 merupakan hasil pengujian waktu proses signing. Pengujian
dilakukan dengan spesifikasi komputer yakni processor Intel Core 2 duo 2.1GHz,
2048MB RAM Windows 7 Ultimate 32 bit. Berdasarkan Tabel 5, selisih waktu
antara pengujian pertama dengan pengujian kedua yakni 5.444s, percobaan ketiga
dengan percobaan ke empat yakni 2.465s, serta percobaan ke lima dengan
percobaan ke enam yakni 1.514s. Berdasarkan pada selisih tersebut antara ukuran
file Transkrip 1 dan Transkrip 6, semakin kecil ukuran file yang di-signing maka
semakin sedikit waktu proses yang diperlukan, sebaliknya semakin besar ukuran
file yang diproses maka semakin banyak pula waktu proses yang diperlukan.
Resolusi ditampilkan pada tabel karena transkrip nilai yang digunakan seharusnya
tetap dapat dilihat saat diperbesar.
16
Tabel 6 Hasil Pengujian Waktu Proses Verifikasi
Tabel 6 merupakan pengujian waktu verifikasi, perbedaan waktu antara
percobaan pertama dengan percobaan kedua yakni 2.355s, pecobaan ketiga
dengan percobaan keempat 0.515s dan percobaan kelima dan percobaan keenam
yakni 0.515s. Dapat disimpulkan bahwa pengujian pada proses verifikasi
mempunyai waktu yang lebih cepat dari pada proses signing. Waktu proses yang
diperlukan lebih sedikit apabila ukuran file transkrip nilai yang diverifikasi lebih
kecil. Sedangkan waktu yang diperlukan lebih banyak apabila file transkrip yang
diverifikasi lebih besar. Hal tersebut dikarenakan pada proses signing terdapat
proses READ piksel dari gambar, mengganti LSB, embedding, kemudian proses
WRITE piksel kembali ke gambar, sedangkan pada proses verifikasi hanya
terdapat proses READ saja.
5. Simpulan
Berdasarkan penelitian dan pengujian yang telah dibuat, untuk
mengamankan data transkrip nilai berbentuk citra yakni dengan menggunakan
message authentication code (MAC), enkripsi algoritma solitaire untuk
penandatanganan pesan sekaligus pembangkit MAC serta algoritma
steganography LSB untuk menyisipkan message authentication code dan pesan
ke dalam image transkrip maka dihasilkan kesimpulan: 1). Pengaman dokumen
dapat dilakukan dengan menggunakan algoritma MAC; 2) Algoritma solitaire
dapat diterapkan sebagai proses otentikasi pada proses pembangkitan dan
verifikasi MAC; 3) Penelitian menghasilkan aplikasi otentikasi dokumen, yang
dapat memastikan keaslian (otentik) dan keutuhan (integritas) suatu dokumen
transkrip, dengan menggunakan algoritma MAC, Solitaire dan LSB Embedding.
Saran yang dapat diberikan untuk penelitian selanjutnya adalah sebagai berikut:
(1) Sistem memiliki fitur untuk menampilkan proses bar ketika waktu proses
sehingga dapat dilihat saat prosesnya berjalan; (2) Sistem dapat men-signing file
gambar dalam format apa saja tidak hanya format png.
17
6. Daftar Pustaka
[1] Keswara, Ratih, 2014, Kasus pemalsuan transkrip nilai butuh kajian
hukum, http://nasional.sindonews.com/read/825285/15/kasus-pemalsuan-
transkrip-nilai-butuh-kajian-hukum-1389317428. Diakses tanggal 22
Oktober 2014. [2] Munir, Rinaldi, 2006, Kriptografi Steganografi dan Watermarking,
Bandung: Institut Teknologi Bandung.
[3] Ramadhany, Taufik, 2009. Solitaire Cipher, Jurnal, Bandung: Institut
Teknologi Bandung.
[4] Adiprabowo, Yudha, Munir, Rinaldi, 2012. Implementasi Algoritma MAC
Berbasis Cipher Blok Sebagai Program Add-in di Microsoft Word untuk
Otentikasi Dokumen, Jurnal, Bandung: Institut Teknologi Bandung.
[5] Christie, Endly, Sediyono, Eko, Pakereng, M. A. Ineke, 2014. Verifikasi
Otentifikasi Data Transkrip Nilai Berbentuk Citra Menggunakan SHA-512,
Skripsi, Salatiga: Universitas Kristen Satya Wacana.
[6] Arief, Raditya, 2010. Files Authentication Code (FAC) : Pengembangan
MAC Untuk Digunakan Dalam Menjamin Integritas Berkas, Jurnal,
Bandung: Institut Teknologi Bandung.
[7] Schneier, Bruce, 1999. The Solitaire Encryption Algorithm,
https://www.schneier.com/solitaire.html. Diakses tanggal 22 Oktober 2014.
[8] Jamasoka, Septu, 2012. Perbandingan Steganografi pada Citra Gambar
Graphics Interchange Format dengan Algoritma Gifshuffle dan Metode
Least Significant Bit, Jurnal, Bandung: Institut Teknologi Bandung.