Institutional Repository | Satya Wacana Christian University: Penggunaan Message Authentication Code dan Algoritma Solitaire Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra
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
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
Penggunaan Message Authentication Code dan Algoritma Solitaire
Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra
1) 2)
Frans Adityafet, M. A. Ineke Pakereng
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50771, Indonesia
1) 2)
Email: [email protected], [email protected]
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 hendakmendapatkan 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 Salatiga2) Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga
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 dan algoritma solitaire untuk menyandikan
Message Authetication Code (MAC)
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].
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
(MAC) adalah sebuah algoritma yang didesain secara khusus
Authentication Code
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 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 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].
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.
Identifikasi Masalah dan Studi Literatur
Perancangan Sistem meliputi Perancangan Proses
Signing dan Proses Verifikasi
Implementasi Sistem
Pengujian Sistem dan Analisis Hasil Pengujian
Gambar 2 Tahapan Penelitian 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 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.Proses Signing Oleh Bagian Nilai Gambar 5 Proses Verifikasi Pihak Luar Gambar 4
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.
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 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.
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.
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.
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)
4.
35. private static byte[] Finalize(List<byte[]> acculated) 36.
3.
Kode Program 3 Perintah untuk Proses Embedding 1. public static Bitmap Embed(Bitmap bitmap, byte[] message) 2. {
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.
57. Kode Program 2 merupakan potongan perintah yang terdapat pada class MAC. Diawali dari fungsi Generate (baris 10-17), dilakukan proses enkripsi.
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. }
{ 37. int byteLength = acculated[0].Length; 38. byte[] mac = new byte[byteLength];
29. Array.Copy(fullyPadded, i, part, 0, part.Length); 30. list.Add(part); 31. } 32. return list; 33. } 34.
{ 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.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];
21. List<byte[]> list = new List<byte[]>(); 22. int padding = byteLength - (feed.Length % byteLength); 23. byte[] fullyPadded = new byte[feed.Length + padding];
{
19.
private static List<byte[]> Accumulate(byte[] feed, int byteLength)
20.18.
14. List<byte[]> acculated = Accumulate(feed, byteLength); 15. byte[] finalized = Finalize(acculated); 16. return finalized; 17. }
4. byte[] pixels = PixelTool.ExtractColors(bitmap);
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 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.
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.
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.Berdasarkan penelitian dan pengujian yang telah dibuat, untuk mengamankan data transkrip nilai berbentuk citra yakni dengan menggunakan (MAC), enkripsi algoritma solitaire untuk
message authentication code
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.
[1] Keswara, Ratih, 2014, Kasus pemalsuan transkrip nilai butuh kajian
hukum ,
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 , 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.