4. muhammad iqbal batubara
TRANSCRIPT
PERANCANGAN PERANGKAT LUNAK PEMBELAJARAN KRIPTOGRAFI UNTUK PENGAMANAN RECORD DENGAN METODE GOST
Muhammad Iqbal Batubara1
Abstrak
Tujuan penelitian ini adalah membuat aplikasi pembelajaran yang mampu untuk menjelaskan secara terperinci prosedur kerja dari metode GOST dalam pengamanan record, sehingga aplikasi yang dirancang dapat digunakan sebagai fasilitas pendukung dalam proses pembelajaran. Hasil penelitian menunjukkan bahwa pembuatan modul pembelajaran kriptografi metode GOST memerlukan teknik CAI (Computer Attitude Instruction) yaitu dua komponen penting yaitu MSFlexGrid (Microsoft FlexGrid) yang digunakan sebagai tabel dan Common Dialog Control yang digunakan untuk membuka kotak dialog Open atau Save. Perangkat lunak ini dapat membantu pemahaman cara kerja atau algoritma kriptografi khususnya metode GOST. Proses pembentukan kunci pada metode GOST sangat sederhana sedangkan proses enkripsi dan dekripsi cukup panjang dan rumit.
Kata kunci : perangkat lunak, perancangan, kriptografidan metode gost
1. Pendahuluan
1.1. Latar Belakang
Sekarang ini, sering ditemukan berbagai macam perangkat lunak pembelajaran.
Perangkat lunak yang penulis ingin rancang adalah mengenai kriptografi. Kriptografi merupakan
ilmu yang mempelajari tentang pengamanan data atau informasi, dalam kriptografi banyak
ditemukan metode-metode kriptografi. Salah satunya adalah metode GOST, GOST ini
merupakan singkatan dari “Gosudarstvennyi Standard” atau “Government Standard”.
Algoritmanya merupakan algoritma enkripsi sederhana yang memiliki jumlah proses sebanyak
32 round dan menggunakan 64 bit block cipher dengan 256 bit key. Metode GOST juga
menggunakan 8 buah S-Box yang permanen dan operasi XOR serta Rotate Left Shift.
Penulis memilih topik perangkat lunak pembelajaran karena penulis ingin membuat
bagaimana cara user (pengguna) lebih memahami serta menambah minat user terhadap
pembelajaran tersebut, dengan menampilkan teori-teori serta animasi yang mendukung. Jenis
perangkat lunak pembelajaran yang penulis singgung tentunya adalah pembelajaran kriptografi
metode GOST. Perangkat lunak pembelajaran ini dirancang supaya metode GOST dapat lebih
1 Dosen STMIK Budidarma, Medan
mudah dipahami baik algoritma maupun operasi-operasi yang terkandung dalam metode GOST
ini.
Computer Assisted Instucion (CAI) adalah metode yang hampir sama dengan tipe
Computer Based Intrucion (CBI) yang dapat digunakan sendiri atau digunakan bersama dengan
sistem instruksional lain, tetapi perbedaan yang mendasar terdapat pada penggunaan multimedia
pembelajaran. Pada Computer Assisted Instucion (CAI) peran dosen tidak semuanya dihilangkan
dan komputer hanya berperan sebagai pendamping dosen dalam menyampaikan materi. Metode
Computer Assisted Instucion (CAI) lebih cocok digunakan karena pembelajaran kriptografi
sangat rumit dilakukan dengan perhitungan manual.
Berdasarkan uraian di atas, penulis bermaksud untuk mengambil tesis dengan judul
“Perancangan Perangkat Lunak Pembelajaran Kriptografi Untuk Pengamanan Record
Dengan Metode GOST”.
1.2. Perumusan Masalah
Berdasarkan latar belakang pemilihan judul, maka yang menjadi permasalahan adalah:
1. Bagaimana proses enkripsi dan dekripsi metode GOST?
2. Bagaimana merancang aplikasi pembelajaran dapat menampilkan algoritma proses enkripsi
dan dekripsi?
3. Bagaimana merancang aplikasi pembelajaran kriptografi untuk pengamanan record metode
GOST?
1.3. Batasan Masalah
Dalam melakukan penelitian ini dibatasi oleh hal-hal berikut :
1. Perangkat lunak akan menampilkan tahap-tahap penghitungan dalam bilangan biner dan
heksadesimal.
2. Melakukan enkripsi dan dekripsi metode GOST terhadap record.
3. Merancang aplikasi pengamanan record dengan metode GOST.
4. Merancang aplikasi pembelajaran dengan metode CAI (Computer Assisted Instucion).
1.4. Tujuan Penelitian
Adapun tujuan penelitian ini adalah membuat aplikasi pembelajaran yang mampu untuk
menjelaskan secara terperinci prosedur kerja dari metode GOST dalam pengamanan record,
sehingga aplikasi yang dirancang dapat digunakan sebagai fasilitas pendukung dalam proses
pembelajaran.
2. Uraian Teoritis2.1. Pengenalan Kriptografi
Secara etimologi (ilmu asal usul kata), kata kriptografi berasal dari gabungan dua kata dalam
bahasa Yunani yaitu “kriptos” dan “graphia”. Kata kriptos digunakan untuk mendetesiskan sesuatu
yang disembunyikan, rahasia atau misterius. Sedangkan kata graphia berarti tulisan. Kriptografi
didefinisikan sebagai ilmu dan pelajaran untuk tulisan rahasia dengan pertimbangan bahwa
komunikasi dan data dapat dikodekan untuk mencegah dari mata-mata atau orang lain yang ingin
mengetahui isinya, dengan menggunakan kode-kode dan aturan-aturan tertentu dan metode lainnya
sehingga hanya orang yang berhak yang dapat mengetahui isi pesan sebenarnya.
Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data jelas (plaintext) ke
dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang kemudian
dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai di penerima,
ciphertext tersebut ditranformasikan kembali ke dalam bentuk plaintext agar dapat dikenali.
Dalam arti lain, cryptography adalah seni dan ilmu dalam mengamankan pesan. Dalam dunia
kriptografi, pesan disebut plaintext atau cleartext. Proses untuk menyamarkan pesan dengan cara
sedemikian rupa untuk menyembunyikan isi aslinya disebut enkripsi. Pesan yang telah dienkripsi
disebut ciphertext. Proses pengembalian sebuah ciphertext ke plaintext disebut dekripsi(kurniawan
J,2004).
Cryptographer adalah orang yang mempraktekkan ilmu kriptografi, sedangkan
cryptoanalysts adalah orang yang mempraktekkan kriptanalisis, seni dan ilmu dalam memecahkan
ciphertext.
Aturan fundamental kriptografi yaitu seseorang harus mengasumsikan bahwa seorang
kriptoanalis menguasai algoritma umum enkripsi yang digunakan. Dengan kata lain, kriptanalis
mengetahui cara kerja algoritma enkripsi. Jumlah usaha yang diperlukan untuk menemukan,
menguji, dan memasang algoritma baru yang selalu berkompromi atau berfikir untuk berkompromi
dengan algoritma lama, akan menyebabkan algoritma baru itu menjadi tidak berguna untuk menjaga
kerahasiaan. Sistem kriptografi atau Algoritma Kriptografi adalah sebuah algoritma kriptografi
ditambah semua kemungkinan plaintext, ciphertext dan kunci.
Dalam perkembangannya, kriptografi juga digunakan untuk identifikasi pengirim pesan
dengan tanda tangan digital dan keaslian pesan dengan sidik jari digital (fingerprint). Kriptografi
mempunyai sejarah yang sangat panjang. Sejak jaman Romawi, Julius Caesar telah menggunakan
teknik kriptografi yang sekarang dianggap kuno dan sangat mudah dibobol untuk keperluan
komunikasi militernya. Namun sekutu dapat menembus Enigma, kriptografi produk Jerman dan
Purple, kriptografi produk Jepang, sekutu akhirnya dapat memenangkan perang dunia kedua karena
dapat mengetahui beberapa langkah dan strategi militer lawan.
2.2. Algoritma Kriptografi
Kriptografi merupakan bentuk algoritma untuk mengacak pesan dan mengembalikan acakan
pesan tersebut, dimana pembuatan algoritma kriptografi tersebut mempergunakan perhitungan
dan formula-formula matematika. Algoritma kriptografi adalah fungsi matematika yang
digunakan untuk enkripsi dan dekripsi. Untuk mengenkrip sebuah pesan plaintext, terapkan
algoritma enkripsi ke pesan plaintext tersebut. Untuk mendekrip sebuah pesan ciphertext,
terapkan algoritma dekripsi ke pesan ciphertext tersebut.
Algoritma tidak dapat diandalkan kerahasiaannya. Dengan menggunakan algoritma yang
dipublikasikan, cryptographer bebas melakukan konsultasi dengan sejumlah cryptologis
akademis yang berkeinginan untuk menembus sistem sehingga mereka dapat mempublikasikan
tulisan yang menunjukkan bagaimana cerdiknya mereka. Bila setelah algoritma itu
dipublikasikan selama 5 tahun dan tidak ada seorang ahlipun yang berhasil memecahkannya,
maka mungkin algoritma tersebut cukup solid.
Kerahasiaan sebenarnya terletak pada kunci dan panjang kunci itu merupakan masalah
penting dalam rancangan. Ambil suatu kunci kombinasi yang sederhana. Prinsip umumnya
adalah di mana seseorang memasukkan digit secara berurutan. Setiap orang mengetahui hal ini,
namun kunci merupakan rahasia. Dengan panjang kunci yang dua digit berarti bahwa terdapat
seratus kemungkinan. Panjang kunci tiga digit mempunyai seribu kemungkinan, dan panjang
kunci enam digit mempunyai sejuta kemungkinan. Semakin panjang kunci, semakin tinggi faktor
kerja yang harus dilakukan cryptanalyst. Faktor kerja untuk menembus sistem dengan pencarian
kunci yang melelahkan merupakan eksponensial terhadap panjang kuncinya. Kerahasiaan berasal
dari adanya algoritma yang kuat dan dipublikasikan dengan kunci yang panjang.
Syarat-syarat algoritma kriptografi yang baik antara lain,
1. Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma
yang digunakan.
2. Algoritmanya memiliki ruang kunci (keyspace) yang besar.
3. Menghasilkan ciphertext yang terlihat acak dalam seluruh tes statistik yang dilakukan
terhadapnya.
4. Mampu menahan seluruh serangan yang telah dikenal sebelumnya.
Namun demikian perlu diperhatikan bahwa bila suatu algoritma kriptografi berhasil
memenuhi seluruh karakteristik di atas belum tentu merupakan sistem yang baik. Banyak
algoritma kriptografi lemah yang terlihat baik pada awalnya. Kadang kala untuk menunjukkan
bahwa suatu algoritma kriptografi kuat atau baik dapat dilakukan dengan menggunakan
pembuktian matematika.
Hingga saat ini masih banyak yang menggunakan algoritma Kriptografi yang relatif
mudah dibuka, alasannya adalah mereka tidak mengetahui sistem lain yang lebih baik serta
kadang kala terdapat motivasi yang kurang untuk menginvestasikan seluruh usaha yang
diperlukan untuk membuka suatu sistem.
2.3. Landasan Matematis Kriptografi
Aritmatika modular merupakan operasi matematika yang banyak diimplementasikan pada
metode kriptografi. Pada metode GOST, operasi aritmetika modular yang dipakai adalah operasi
penjumlahan modulo 232. Operasi modulo ini ditujukan untuk mengontrol panjang bit data agar tidak
lebih dari 32 bit. Operasi modulo ini melibatkan bilangan 0 dan 1 saja sehingga identik dengan bit
pada komputer.
2.4. Metode GOST
GOST merupakan singkatan dari “Gosudarstvennyi Standard” atau “Government
Standard”. Metode GOST merupakan suatu algoritma block cipher yang dikembangkan oleh
seorang berkebangsaan Uni Soviet. Metode ini dikembangkan oleh pemerintah Uni Soviet pada
masa perang dingin untuk menyembunyikan data atau informasi yang bersifat rahasia pada saat
komunikasi. Algoritma ini merupakan suatu algoritma enkripsi sederhana yang memiliki jumlah
proses sebanyak 32 round (putaran) dan menggunakan 64 bit block cipher dengan 256 bit key.
Metode GOST juga menggunakan 8 buah S-Box yang berbeda-beda dan operasi XOR serta Left
Circular Shift.
Kelemahan GOST yang diketahui sampai saat ini adalah karena key schedule-nya yang
sederhana sehingga pada keadaan tertentu menjadi titik lemahnya terhadap metode kriptanalisis
seperti Related-key Cryptanalysis. Tetapi hal ini dapat diatasi dengan melewatkan kunci kepada
fungsi hash yang kuat secara kriptografi seperti SHA-1, kemudian menggunakan hasil hash
untuk input inisialisasi kunci. Kelebihan dari metode GOST ini adalah kecepatannya yang cukup
baik, walaupun tidak secepat Blowfish tetapi lebih cepat dari IDEA.
Komponen dari metode GOST antara lain:
1. Key Store Unit (KSU) menyimpan 256 bit string dengan menggunakan 32 bit register (K0,
K1, …, K7).
2. Dua buah 32 bit register (R1, R2).
3. 32 bit adder modulo 232 (CM1).
4. Bitwise Adder XOR (CM2).
5. Substitusion block (S) yaitu berupa 8 buah 64 bit S-Box.
6. Rotasi Left shift register (R) sebanyak 11 bit.
2.5. Perangkat Lunak Pembelajaran
Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di bidang
teknologi, tanpa disadari komputer telah ikut berperan dalam dunia pendidikan terutama
penggunaannya sebagai alat bantu pengajaran. Percobaan penggunaan komputer untuk proses
belajar dimulai di Amerika Serikat pada akhir tahun 1950-an dan awal tahun 1960-an. Kemudian
penelitian selanjutnya dilakukan oleh Harvard University bekerja sama dengan IBM pada tahun
1965. Setelah munculnya komputer mikro, sistem pengajaran dengan komputer menjadi semakin
meluas pada pengembangan aplikasi perangkat lunak ajar yang dikenal dengan istilah perangkat
lunak pembelajaran. Perangkat lunak pembelajaran dengan komputer muncul dari sejumlah
disiplin ilmu, terutama ilmu komputer dan psikologi. Dari ilmu komputer dan matematika
muncul program – program yang membuat semua perhitungan dan fungsi lebih mudah dan
bermanfaat. Sedangkan dari ilmu psikologi muncul pengetahuan mengenai teori belajar, teknik
belajar, serta motivasi yang baik.
2.6. Computer Assisted Instruction (CAI)
Menurut Kaput dan Thompson (1994), CAI adalah sebagai bentuk-bentuk pembelajaran
yang menempatkan komputer dalam peran guru. Sedangkan menurut Hinich (Said, 2000), CAI
adalah suatu program pembelajaran yang dibuat dalam sistem komputer, dimana dalam
menyampaikan suatu materi sudah diprogramkan langsung kepada pengguna. Materi pelajaran
yang sudah terprogram dapat disajikan secara serentak antara komponen gambar, tulisan, warna
dan suara.
Dalam tesis ini penulis menggunakan metode Computer Assisted Instruction (CAI). CAI
adalah suatu sistem penyampaian materi pelajaran yang berbasis mikroposesor yang
pelajarannya dirancang dan diprogram kedalam sistem tersebut. CAI merupakan program
pembelajaran dengan memanfaatkan komputer yang memiliki struktur program diantaranya:
desain bentuk (aplikasi perangkat lunak), isi (pesan pembelajaran) dan pendukung (perangkat
lunak yang dibutuhkan dalam pengoperasian program, teks, grafis dan sebagainya). Keseluruhan
komponen terintegrasi dalam sebuah program dengan memperhatikan kemudahan pegoperasian,
interaktivitas, menarik dan dukungan perangkat evaluasi untuk mengukur tingkat pemahaman
mahasiswa seperti multiple choise system atau perangkat lunak sejenisnya (Subrata, Heru, 2008).
Computer Assisted Instruction (CAI) hakekatnya merupakan penawaran baru dalam cara
pembelajaran. Komputer sebagai media akan lebih banyak membantu mahasiswa menemukan
hal-hal baru yang lebih menarik dengan cara konvensional yang lebih berpusat pada guru/dosen.
Walaupun cara-cara belajar dan mengajar serta pemerolehan informasi pembelajaran tiap
individu berbeda.
Secara keseluruhan CAI hendaknya memiliki beberapa kriteria, diantaranya dari sudut
pandang guru/dosen adalah mudah digunakan (baik pembuatan maupun pemanfaatannya), hanya
memerlukan pelatihan minimal, memungkinkan pembelajaran dengan cara mahasiswa sendiri,
memungkinkan pengendali pembelajaran sesuai dengan lingkungan. Sedangkan dari sudut
pandang mahasiswa: fleksibilitas, bahan belajar lebih kaya dibandingkan melalui kelas
konvensional, berjalan pada komputer yang telah tersedia, memungkinkan kolaborasi yang
memadai, mencakup pengembangan materi lanjutan melalui diskusi kelas dan kerja kelompok.
Dengan demikian struktur program CAI harus dapat terus dikembangkan. Bentuk pembelajaran
CAI yang diberikan adalah bentuk tutorial bercabang.
Pemanfaatan komputer sebagai sarana pembelajaran dapat memberikan pengaruh yang
sangat positif karena selain baru bagi perkembangan teknologi pembelajaran juga memiliki sifat
yang representatif dan interaktif. Komputer dapat menjadi sarana pembelajaran yang inovatif
dari tradisi papan tulis dan kapur. Dengan PowerPoint misalnya para guru dapat menyulut minat
anak-anak terhadap pelajaran lewat penyertaan foto-foto, potongan film dan bahkan berhubungan
dengan internet (Gates, 2000).
Berdasarkan definisi diatas menurut penulis, CAI merupakan cara atau metode
pembelajaran/pengajaran melalui media komputer yang disusun melalui tahapan-tahapan berupa
tutorial, simulasi.
3. Pembahasan3.1. Implementasi Sistem
Implementasi sistem proses enkripsi dan proses dekripsi dalam program ini mencakup
spesifikasi kebutuhan perangkat keras (hardware) dan spesifikasi perangkat lunak (software).
3.1.1. Spesifikasi Perangkat Keras Dan Perangkat Lunak
Program ini dijalankan dengan menggunakan perangkat keras (hardware) yang
mempunyai spesifikasi minimal sebagai berikut :
1. Prosesor Intel Pentium IV 2.0 Ghz ke atas.
2. Memory 64 MB.
3. VGA card 1 MB.
4. Monitor dengan resolusi 800 600 pixel.
5. Keyboard dan Mouse
Adapun perangkat lunak (software) yang digunakan untuk menjalankan aplikasi ini adalah
lingkungan sistem operasi Microsoft-Windows 98 atau Microsoft-Windows NT/2000/XP
3.2. Pengujian Sistem
3.2.1 Proses Pengujian Pembentukan Kunci
Sebagai contoh, penulis meng-input data sebagai berikut.
1. Kunci : ‘KRIPTOGRAFI GOST UPI YPTK PADANG’.
2. Proses input kunci dan proses pembentukan kunci dalam bentuk biner dapat dilihat pada
gambar 1 dan gambar 2 berikut.
Gambar 1. Input Kunci
Gambar 2. Proses Pembentukan Kunci Enkripsi Dan Dekripsi
3.2.2 Proses Pengujian Enkripsi GOST
Sebagai contoh proses enkripsi dalam bentuk biner, penulis meng-input data sebagai
berikut :
1. Plainteks : ‘Text’ dan Kunci : ‘KUNCI KRIPTO 123’.
2. Proses input plainteks dan kunci dapat dilihat pada gambar 3.
3. Proses enkripsi dapat dilihat pada gambar 4 dan gambar 5.
Gambar 3. Input Plainteks Dan Kunci
Gambar 4. Proses Enkripsi Putaran Ke-0 Sampai Putaran Ke-29
Gambar 5. Proses Enkripsi Putaran Transformasi Output
Hasil Eksekusi Untuk Enkripsi:
Input Plainteks : UPI YPTK
Input Kunci : KRIPTOGRAFI GOST UPI YPTK
Untuk melakukan proses enkripsi pesan asli (plainteks) akan digabungakan dengan kunci
untuk menjaga kerahasian dari pesan di mana pesan dan kunci tersebut dikonverikan ke bilangan
biner dan mengerjakan proses sebanyak 32 putaran dan 1 transformasi output. Setiap putaran
akan melakukan 6 langkah, prosesnya adalah sebagai berikut :
PROSES ENKRIPSI - PUTARAN 0
(1) PLAIN TEXT = 'UPI YPTK'
Konversi ke biner = 01010101010100000100
1001001000000101100101010000010101000100
1011
L(0) = 11010010001010100000101010011010
R(0) = 00000100100100100000101010101010
(2) R(0) + K(0) mod 2^32
R( 0) = 76679850
K( 0) = 177359570 -------------------------------- + Hasil = 254039420 mod 2^32
= 254039420
= 00001111001001000101010101111100
(3) Pecah menjadi 8 kelompok dan masukkan ke
SBox.
0000 = 0 -> SBOX(0) -> 4 = 0100
1111 = 15 -> SBOX(1) -> 9 = 1001
0010 = 2 -> SBOX(2) -> 1 = 0001
0100 = 4 -> SBOX(3) -> 0 = 0000
0101 = 5 -> SBOX(4) -> 15 = 1111
0101 = 5 -> SBOX(5) -> 2 = 0010
0111 = 7 -> SBOX(6) -> 9 = 1001
1100 = 12 -> SBOX(7) -> 6 = 0110
(4) Hasil digabungkan kembali dan lakukan
Rotate Left Shift sebanyak 11 kali.
RLS( 1)=10010010001000011110010100101100
RLS( 2)=00100100010000111100101001011001
RLS( 3)=01001000100001111001010010110010
RLS( 4)=10010001000011110010100101100100
RLS( 5)=00100010000111100101001011001001
RLS( 6)=01000100001111001010010110010010
RLS( 7)=10001000011110010100101100100100
RLS( 8)=00010000111100101001011001001001
RLS( 9)=00100001111001010010110010010010
RLS(10)=01000011110010100101100100100100
RLS(11)=10000111100101001011001001001000
(5) R(1) = R(0) XOR L(0)
R( 0) = 10000111100101001011001001001000
L( 0) = 11010010001010100000101010011010 ---------------------------------------------------------- XOR R( 1) = 01010101101111101011100011010010
(6) L(1) = R(0) sebelum proses.
L(1) = 00000100100100100000101010101010
PROSES ENKRIPSI - PUTARAN 1
(1) L(1) = 00000100100100100000101010101010
R(1) = 01010101101111101011100011010010
(2) R(1) + K(1) mod 2^32
R( 1) = 1438562514
K( 1) = 1256387114 -------------------------------- + Hasil = 2694949628 mod 2^32
= 2694949628
= 10100000101000011010101011111100
(3) Pecah menjadi 8 kelompok dan masukkan ke
SBox.
1010 = 10 -> SBOX(0) -> 1 = 0001
0000 = 0 -> SBOX(1) -> 14 = 1110
1010 = 10 -> SBOX(2) -> 12 = 1100
0001 = 1 -> SBOX(3) -> 13 = 1101
1010 = 10 -> SBOX(4) -> 9 = 1001
1010 = 10 -> SBOX(5) -> 8 = 1000
1111 = 15 -> SBOX(6) -> 12 = 1100
1100 = 12 -> SBOX(7) -> 6 = 0110
(4) Hasil digabungkan kembali dan lakukan
Rotate Left Shift sebanyak 11 kali.
RLS( 1)=00111101100110110011000110001100
RLS( 2)=01111011001101100110001100011000
RLS( 3)=11110110011011001100011000110000
RLS( 4)=11101100110110011000110001100001
RLS( 5)=11011001101100110001100011000011
RLS( 6)=10110011011001100011000110000111
RLS( 7)=01100110110011000110001100001111
RLS( 8)=11001101100110001100011000011110
RLS( 9)=10011011001100011000110000111101
RLS(10)=00110110011000110001100001111011
RLS(11)=01101100110001100011000011110110
(5) R(2) = R(1) XOR L(1)
R( 1) = 01101100110001100011000011110110
L( 1) = 00000100100100100000101010101010
----------------------------------------------------------XOR R( 2) = 01101000010101000011101001011100
PROSES ENKRIPSI - PUTARAN 31
(1) L(31) = 10110011110110011011011001110100
R(31) = 11110100000001111010010001001011
(2) R(31) + K(0) mod 2^32
R(31) = 4094141515
K( 0) = 177359570 -------------------------------- + Hasil = 4271501085 mod 2^32
= 4271501085
= 11111110100110011110111100011101
(3) Pecah menjadi 8 kelompok dan masukkan ke
SBox.
1111 = 15 -> SBOX(0) -> 3 = 0011
1110 = 14 -> SBOX(1) -> 5 = 0101
1001 = 9 -> SBOX(2) -> 15 = 1111
1001 = 9 -> SBOX(3) -> 4 = 0100
1110 = 14 -> SBOX(4) -> 11 = 1011
1111 = 15 -> SBOX(5) -> 14 = 1110
0001 = 1 -> SBOX(6) -> 11 = 1011
1101 = 13 -> SBOX(7) -> 11 = 1011
(4) Hasil digabungkan kembali dan lakukan
Rotate Left Shift sebanyak 11 kali.
RLS( 1)=01101011111010010111110101110110
RLS( 2)=11010111110100101111101011101100
RLS( 3)=10101111101001011111010111011001
RLS( 4)=01011111010010111110101110110011
RLS( 5)=10111110100101111101011101100110
RLS( 6)=01111101001011111010111011001101
RLS( 7)=11111010010111110101110110011010
RLS( 8)=11110100101111101011101100110101
RLS( 9)=11101001011111010111011001101011
RLS(10)=11010010111110101110110011010111
RLS(11)=10100101111101011101100110101111
(5) R(32) = R(31) sebelum proses.
R(32) = 11110100000001111010010001001011
(6) L(32) = R(31) XOR L(31)
R(31) = 10100101111101011101100110101111
L(31) = 10110011110110011011011001110100 ------------------------------------- XOR L(32) = 00010110001011000110111111011011
(7) L(32) = b(32), b(31), ... b(1)
R(32) = a(32), a(31), ... a(1)
Hasil = a(1), ... a(32), b(1), ... b(32)
Hasil dalam biner =
110100100010010111100000001011111101101111110110001101000110
1000 -> ubah ke ascii
CIPHER TEXT = Ò%à/Ûö4h
Dari hasil pengujian di atas, pesan asli yang di inputkan bersamaan dengan kunci akan
diperoleh pesan yang sudah dikodekan (cipherteks). Pesan yang dihasilkan sangat sulit untuk
diterjemahkan oleh sembarang orang.
3.2.3 Proses Pengujian Dekripsi GOST
Sebagai contoh proses dekripsi dalam bentuk biner, penulis meng-input data sebagai
berikut.
1. Kunci : ‘KRIPTOGRAFI GOST UPI YPTK’.
2. Chiperteks : ‘Ò%à/Ûö4h’
3. Proses input chiperteks dan kunci dapat dilihat pada gambar 5.6. sedangkan untuk proses
dekripsi untuk input chiperteks dan kunci dapat dilihat pada gambar 5.7 dan gambar 5.8.
Gambar 6. Input Cipherteks Dan Kunci
Gambar 7. Proses Dekripsi Putaran Ke-0 Sampai Putaran Ke-30
Gambar 8. Proses Dekripsi Putaran Transformasi Output
Hasil Eksekusi Dekripsi :
Untuk melakukan proses dekripsi pesan yang sudah dikodekan (cipherteks) akan
digabungakan dengan kunci yang sama seperti kunci pada proses enkripsi. Pesan ini akan
dikembalikan seperti semula, prosesnya sebagai berikut :
Putaran - 1
Input Kunci : KRIPTOGRAFI GOST UPI YPTK
chiperteks : Ò%à/Ûö4h
Langkah prosesnya sama seperti pada proses enkripsi :
PROSES DEKRIPSI - PUTARAN 0
(1) CIPHER TEXT = 'Ò%à/Ûö4h'
Konversi ke biner = 11010010001001011110
0000001011111101101111110110001101000110
1000
L(0) = 00010110001011000110111111011011
R(0) = 11110100000001111010010001001011
(2) R(0) + K(0) mod 2^32
R( 0) = 4094141515
K( 0) = 177359570
-------------------------------- +
Hasil = 4271501085 mod 2^32
= 4271501085
= 11111110100110011110111100011101
(3) Pecah menjadi 8 kelompok dan masukkan ke
SBox.
1111 = 15 -> SBOX(0) -> 3 = 0011
1110 = 14 -> SBOX(1) -> 5 = 0101
1001 = 9 -> SBOX(2) -> 15 = 1111
1001 = 9 -> SBOX(3) -> 4 = 0100
1110 = 14 -> SBOX(4) -> 11 = 1011
1111 = 15 -> SBOX(5) -> 14 = 1110
0001 = 1 -> SBOX(6) -> 11 = 1011
1101 = 13 -> SBOX(7) -> 11 = 1011
(4) Hasil digabungkan kembali dan lakukan
Rotate Left Shift sebanyak 11 kali.
RLS( 1)=01101011111010010111110101110110
RLS( 2)=11010111110100101111101011101100
RLS( 3)=10101111101001011111010111011001
RLS( 4)=01011111010010111110101110110011
RLS( 5)=10111110100101111101011101100110
RLS( 6)=01111101001011111010111011001101
RLS( 7)=11111010010111110101110110011010
RLS( 8)=11110100101111101011101100110101
RLS( 9)=11101001011111010111011001101011
RLS(10)=11010010111110101110110011010111
RLS(11)=10100101111101011101100110101111
(5) R(1) = R(0) XOR L(0)
R( 0) = 10100101111101011101100110101111
L( 0) = 00010110001011000110111111011011
----------------------------------------- XOR
R( 1) = 10110011110110011011011001110100
(6) L(1) = R(0) sebelum proses.
L(1) = 11110100000001111010010001001011
PROSES DEKRIPSI - PUTARAN 1
(1) L(1) = 11110100000001111010010001001011
R(1) = 10110011110110011011011001110100
(2) R(1) + K(1) mod 2^32
R( 1) = 3017389684
K( 1) = 1256387114
-------------------------------- +
Hasil = 4273776798 mod 2^32
= 4273776798
= 11111110101111001010100010011110
(3) Pecah menjadi 8 kelompok dan masukkan ke
SBox.
1111 = 15 -> SBOX(0) -> 3 = 0011
1110 = 14 -> SBOX(1) -> 5 = 0101
1011 = 11 -> SBOX(2) -> 7 = 0111
1100 = 12 -> SBOX(3) -> 11 = 1011
1010 = 10 -> SBOX(4) -> 9 = 1001
1000 = 8 -> SBOX(5) -> 3 = 0011
1001 = 9 -> SBOX(6) -> 10 = 1010
1110 = 14 -> SBOX(7) -> 8 = 1000
(4) Hasil digabungkan kembali dan lakukan
Rotate Left Shift sebanyak 11 kali.
RLS( 1)=01101010111101110010011101010000
RLS( 2)=11010101111011100100111010100000
RLS( 3)=10101011110111001001110101000001
RLS( 4)=01010111101110010011101010000011
RLS( 5)=10101111011100100111010100000110
RLS( 6)=01011110111001001110101000001101
RLS( 7)=10111101110010011101010000011010
RLS( 8)=01111011100100111010100000110101
RLS( 9)=11110111001001110101000001101010
RLS(10)=11101110010011101010000011010101
RLS(11)=11011100100111010100000110101011
(5) R(2) = R(1) XOR L(1)
R( 1) = 11011100100111010100000110101011
L( 1) = 11110100000001111010010001001011
------------------------------------- XOR
R( 2) = 00101000100110101110010111100000
(6) L(2) = R(1) sebelum proses.
L(2) = 10110011110110011011011001110100
Untuk proses berikutnya, setiap putaran akan mengerjakan hal yang sama seperti di atas.
Putaran terakhir yaitu trasnformasi output yang nantinya menjadi hasil dari proses akan diperoleh
sebagai berikut :
PROSES DEKRIPSI - PUTARAN 31
(1) L(31) = 01010101101111101011100011010010
R(31) = 00000100100100100000101010101010
(2) R(31) + K(0) mod 2^32
R(31) = 76679850
K( 0) = 177359570
-------------------------------- +
Hasil = 254039420 mod 2^32
= 254039420
= 00001111001001000101010101111100
(3) Pecah menjadi 8 kelompok dan masukkan ke SBox.
0000 = 0 -> SBOX(0) -> 4 = 0100
1111 = 15 -> SBOX(1) -> 9 = 1001
0010 = 2 -> SBOX(2) -> 1 = 0001
0100 = 4 -> SBOX(3) -> 0 = 0000
0101 = 5 -> SBOX(4) -> 15 = 1111
0101 = 5 -> SBOX(5) -> 2 = 0010
0111 = 7 -> SBOX(6) -> 9 = 1001
1100 = 12 -> SBOX(7) -> 6 = 0110
(4) Hasil digabungkan kembali dan lakukan
Rotate Left Shift sebanyak 11 kali.
RLS( 1)=10010010001000011110010100101100
RLS( 2)=00100100010000111100101001011001
RLS( 3)=01001000100001111001010010110010
RLS( 4)=10010001000011110010100101100100
RLS( 5)=00100010000111100101001011001001
RLS( 6)=01000100001111001010010110010010
RLS( 7)=10001000011110010100101100100100
RLS( 8)=00010000111100101001011001001001
RLS( 9)=00100001111001010010110010010010
RLS(10)=01000011110010100101100100100100
RLS(11)=10000111100101001011001001001000
(5) R(32) = R(31) sebelum proses.
R(32) = 00000100100100100000101010101010
(6) L(32) = R(31) XOR L(31)
R(31) = 10000111100101001011001001001000
L(31) = 01010101101111101011100011010010
------------------------------------- XOR
L(32) = 11010010001010100000101010011010
(7) L(32) = b(32), b(31), ... b(1)
R(32) = a(32), a(31), ... a(1)
Hasil = a(1), ... a(32), b(1), ... b(32)
Hasil dalam biner = 01010101010100000100
1001001000000101100101010000010101000100
1011 -> ubah ke ascii
PLAIN TEXT = UPI YPTK
Dari hasil proses pengujian di atas, pesan yang dienkripsi dikembalikan ke pesan asli
(plainteks) dengan menggunakan kunci yang sama seperti kunci yang digunakan pada proses
enkripsi. Pesan tersebut akan dipahami oleh manusia.
Untuk proses enkripsi dan dekripsi, kunci sangat berpengaruh untuk menjaga kerahasiaan
dari pesan. Kunci yang dipakai saat proses enkripsi harus sama dengan kunci yang digunakan
pada saat proses dekripsi.
Hasil pengujian dapat disimpan dan dibuka kembali bila perlu, proses tersebut dapat dilihat
pada gambar berikut.
Gambar 9. Open File
Gambar 10. Save File
3.2.4. Pengujian Proses Enkripsi Dan Dekripsi
Pengujian sistem yang dilakukan adalah pengujian terhadap pesan dan kunci yang diproses.
Hasil pengujian dapat dilihat pada tabel 2.
Tabel 5.2. Data Hasil Pengujian Pesan Untuk Proses Enkripsi Dan Dekripsi
Plainteks KunciEnkripsi
(Chiperteks)Dekripsi
(Plainteks)
Mh.IqbalKriptografi Gost Upi YPTK Padang
Ç^wÛ¬ Mh.Iqbal
MH.iqbalKriptografi Gost Upi YPTK PADANG
,‡Ñ¾ôõB MH.iqbal
Mh.IQBAL
Kriptografi GOST Upi YPTK PADANG
gòb°±Ú(1 Mh.IQBAL
Mh.IQbalKRIPTOGRAFI GOST Upi YPTK Padang
ËÎñzâ) Mh.Iqbal
Dari hasil pengujian di atas didapat bahwa :
1. Proses enkripsi untuk sebuah isi pesan yang sama menggunakan case yang berbeda dengan
kunci yang sama, memiliki cipherteks yang berbeda.
2. Untuk proses dekripsi plainteksnya sama dengan pesan awal.
4. Kesimpulan dan Saran
4.1. Kesimpulan
Setelah selesai menyusun tesis ini, penulis menarik kesimpulan sebagai berikut :
1. Pembuatan modul pembelajaran kriptografi metode GOST memerlukan teknik CAI
(Computer Attitude Instruction) yaitu dua komponen penting yaitu MSFlexGrid (Microsoft
FlexGrid) yang digunakan sebagai tabel dan Common Dialog Control yang digunakan untuk
membuka kotak dialog Open atau Save.
2. Perangkat lunak ini dapat membantu pemahaman cara kerja atau algoritma kriptografi
khususnya metode GOST.
3. Proses pembentukan kunci pada metode GOST sangat sederhana sedangkan proses enkripsi
dan dekripsi cukup panjang dan rumit.
6.2. Saran
1. Dapat dipertimbangkan untuk menambahkan tutorial pada perangkat lunak pembelajaran
agar lebih mudah dipahami.
2. Perangkat lunak pembelajaran ini dapat dikembangkan untuk menampilkan proses enkripsi
dan dekripsi untuk record.
3. Perangkat lunak pembelajaran ini agar ditambahkan beberapa animasi tambahan untuk
menambah daya tarik dari perangkat lunak.
Daftar Pustaka
Andrew Regenscheid, Ray Perlner, Shu-jen Chang, John Kelsey, Mridul Nandi, Souradyuti Paul. “Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competition”. Information Technology Laboratory National Institute of Standards and Technology Gaithersburg, MD 20899-8930.
Arie Pratama Sutiono – Nim 13509007 “ Algoritma RC4 PerkembanganMetode Kriptografi”. Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10. Bandung. E-mail : [email protected]
Ariyus, Dony. “Computer Security”. Yogyakarta. Andi Offest. 2005.
Ariyus, Dony. “Kriptografi Keamanan Data Dan Komunikasi”. Edisi Pertama. Yogyakarta. Graha Ilmu. 2005.
Aryad, Azhar, “Media Pembelajaran”. Jakarta. PT. Raja grafindo Persada, 2007.
B. Schneier, "Applied Cryptography", second edition, John Willey & Sons, 1996.
J. Kelsey, B. Schneier, D. Wagner, "Key-Schedule Cryptanalysis of IDEA, G-DES, GOST, SAFER and Triple DES", 1996.
Stallings, William. “Cryptography and Network Security Principles and Practices”. Fourth Edition. Prentice Hall. 2005.