Penggunaan Message Authentication Code dan Algoritma ...€¦ · dilakukan oleh mahasiswa pindahan...

26
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

Transcript of Penggunaan Message Authentication Code dan Algoritma ...€¦ · dilakukan oleh mahasiswa pindahan...

  • 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)

    [email protected], 2)

    [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 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 acculated = Accumulate(feed, byteLength); 15. byte[] finalized = Finalize(acculated); 16. return finalized; 17. } 18. 19. private static List Accumulate(byte[] feed, int byteLength) 20. { 21. List list = new List(); 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 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 bits = new List(); 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.

    http://nasional.sindonews.com/read/825285/15/kasus-pemalsuan-transkrip-nilai-butuh-kajian-hukum-1389317428http://nasional.sindonews.com/read/825285/15/kasus-pemalsuan-transkrip-nilai-butuh-kajian-hukum-1389317428https://www.schneier.com/solitaire.html