METODE PROSES XOR DALAM PEMBENTUKAN KUNCI
SIMETRIS PADA ALGORITMA MARS
TESIS
Oleh MARIADI 097038023
PROGRAM STUDI MAGISTER ( S2 ) TEKNIK INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA M E D A N
METODE PROSES XOR DALAM PEMBENTUKAN KUNCI
SIMETRIS PADA ALGORITMA MARS
TESIS
Diajukan sebagai salah satu syarat untuk memperoleh gelar Magister Komputer dalam Program Studi Magister Teknik Informatika pada Program Pascasarjana
Fakultas MIPA Universitas Sumatera Utara
Oleh MARIADI 097038023
PROGRAM STUDI MAGISTER ( S2 ) TEKNIK INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA M E D A N
PERNYATAAN ORISINALITAS
METODE PROSES XOR DALAM PEMBENTUKAN KUNCI
SIMETRIS PADA ALGORITMA MARS
TESIS
Dengan ini saya menyatakan bahwa saya mengakui semua karya tesis ini adalah hasil kerja saya sendiri kecuali kutipan dan ringkasan yang tiap bagiannya telah dijelaskan
sumbernya dengan benar
Medan, 24 Juni 2011
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan dibawah ini :
Nama : MARIADI NIM : 097038023
Program : Magister ( S2 ) Teknik Informatika Jenis Karya Ilmiah
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak bebas Royalti Non Eksklusif ( Non- Exclusive Royalty free Right ) atas Tesis saya yang berjudul :
METODE PROSES XOR DALAM PEMBENTUKAN KUNCI SIMETRIS PADA ALGORITMA MARS
Beserta perangkat yang ada ( jika diperlukan ). Dengan Hak Bebas Royalti Non Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media,memformat,mengelola dalam bentuk database, merawat dan mempublikasikan Tesis saya tanpa minta ijin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan atau sebagai pemilik hak cipta.
Demikian pernyataan ini dibuat dengan sebenarnya.
Medan, 24 Juni 2011
Telah di uji pada
Tanggal : 24 juni 2011
Panitia Penguji Tesis
Ketua : Prof. Dr . Muhammad Zarlis Anggota : 1. Prof . Dr . Herman Mawengkang
RIWAYAT HIDUP
DATA PRIBADI
Nama Lengkap : Mariadi, ST
Tempat / Tanggal Lahir : Medan , 17 September 1973
Alamat : Jln. Gaharu No.188, Binjai
Telepon : 081362161700
DATA PENDIDIKAN
SD NEGERI : Tamat 1986
SMP NEGERI 20 : Tamat 1989
SMA SWASTA : Tamat 1992
KATA PENGANTAR
Pertama-tama kami panjatkan puji syukur kehadirat Allah SWT Tuhan yang Maha Esa atas segala limpahan rahmad dan karunia Nya sehingga Tesis ini dapat diselesaikan. Dengan selesainya Tesis ini, perkenankanlah kami mengucapkan terima kasih yang sebesar besarnya kepada : Rektor Universitas Sumatera Utara, Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc ( CTM ), Sp. A(K) atas kesempatan yang diberikan kepada kami untuk mengikuti dan menyelesaikan pendidikan Program Magister. Dekan Fakultas MIPA Universitas Sumatera Utara, Dr.Sutarman atas kesempatan menjadi mahasiswa Program Magister pada program Pasca sarjana FMIPA Universitas Sumatera Utara. Dan Ketua program Studi Magister Teknik Informatika, Prof.Dr. Muhammad Zarlis, dan sekretaris Program Studi Magister Teknik Informatika, Muhammad Andri Budiman, ST, M.Comp. Sc. M.EM
Beserta seluruh staff pengajar pada Program Studi Magister Teknik Informatika Program Pasca sarjana Fakultas MIPA Universitas Sumatera Utara. Terima kasih yang tidak terhingga dan penghargaan yang setinggi tingginya kami ucapkan kepada bapak Prof.Dr.Muhammad Zarlis selaku dosen pembimbing utama yang dengan penuh perhatian dan telah memberikan dorongan dan motivasi. Demikian juga kepada bapak Syahril Effendi SSi.MIT selaku pembimbing anggota yang dengan penuh kesabaran menuntun dan membimbing kami hingga selesainya penelitian ini.
DAFTAR ISI
Halaman
KATA PENGANTAR i
DAFTAR ISI ii
DAFTAR GAMBAR iii
ABSTRAK iv
ABSTRACT v
BAB I PENDAHULUAN
1.1 Latar Belakang 1
1.2 Perumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
BAB II TINJAUAN PUSTAKA
2.1 Latar Belakang Kriptografi 4
2.1.1 Sejarah Kriptografi 4
2.1.2 Definisi Kriptografi 5
2.1.3 Tujuan kriptografi 5
2.1.4 Algoritma Enkripsi dengan Xor 9
2.2 System Teknik Kriptografi 12 2.2.1 Identifikasi dan Autentifikasi 12 2.2.2 Kriteria Pada Sistem Kriptografi 13
2.3 Teknik Kunci Rahasia 13
2.3.1 Block Cipher 14
2.3.1.1 Teknik Kriptografi yang di
Gunakan pada Cipher Block 15 2.3.1.2 Mode Operasi Cipher Block 16
2.3.1.3 Stream Cipher 18
2.4 Matematis Kriptografi 14
2.4.1 Pengantar Matematis Pada Kriptografi 19
2.4.2 Penjumlahan 20
2.4.3 Perkalian 20
2.4.4 Operasi XOR 21
2.4.5 S-Box 22
2.4.6 Kriptografi Secret Key dan Public Key 22 2.5 Metoda MARS
2.5.1 Sejarah Algoritma MARS 25
2.5.2 Algoritma Enkripsi MARS 26
2.5.2.1 Struktur Cipher Algoritma Mars 27
2.5.2.2 Perluasan Kunci 31
2.5.2.3 Panjang Kunci 32
BAB III METODE PENELITIAN
3.1 Pendahuluan 36
3.2 Lokasi dan Waktu Penelitian 37
3.3 Konseb Pengembangan 38
3.4 Presentasi Data 38
BAB IV HASIL DAN PEMBAHASAN
4. Pendahuluan 39
4.1 Unit Kriptografi 40
4.2 MARS Menerima Ukuran kunci Variabel yang
Disediakan Pengguna berkisar 4 – 14 kata 41
4.3 Ekspansi Kunci MARS 42
4.4 Perluasan Kunci 44
4.5 Hasil Proses Pembentuk Kunci 45
BAB V KESIMPULAN DAN SARAN
5.1
Kesimpulan
51
5.2
Saran
51
DAFTAR PUSTAKA
DAFTAR GAMBAR
Nomor Judul Halaman
1. Skema Enkripsi Dan dekripsi dengan
Cipher Block 15
2. Elektronic Code Book ( ECB ) 16
3. Skema Enkripsi dengan Mode CBC 17
4. Kriptografi simetri 22
5. Kriptografi asimetris 24
PENGESAHAN TESIS
Judul Tesis : METODE PROSES XOR DALAM PEMBENTUKAN
KUNCI SIMETRIS PADA ALGORITMA MARS
Nama Mahasiswa : MARIADI
Nomor Induk Mahasiswa : 097038023
Program Studi : Magister Teknik Informatika
Fakultas : Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara
Menyetujui Komisi Pembimbing
Syahril Effendi, SSi. MIT
Anggota Ketua
Prof. Dr. Muhammad Zarlis
Ketua Program Studi, Dekan
Prof. Dr. Muhammad Zarlis Dr. Sutarman M.Sc
METODE PROSES XOR DALAM PEMBENTUKAN KUNCI SIMETRIS PADA ALGORITMA MARS
ABSTRAK
XOR PROCESS METHOD IN THE FORMATION OF THE SYMMETRIC KEY ALGORITHM MARS
ABSTRACT
This study discusses the block cipher encryption algorithm that a
candidate MARS Advanced Encryption Standard (AES). MARS is a symmetric
key algorithm with 128-bit block cipher and a key length variations between the (128 up to 1248 bits). MARS is made to meet the needs of data security,
especially as one of the less satisfying answer to the DES (Data Encryption Standard). Both of these algorithms have a number of engineering and operations that are similar in principle, due basically to the symmetry key algorithm has a number of standard operations, such as substitution and transposition. Modern classical cryptographic algorithms generally operate in character mode, while the modern cryptographic operation in bits mode. Operating in that mode bits means all data and information (both the key, plaintext, or ciphertext) is expressed in the series (string) of binary bits, 0 and 1. Encryption and decryption process all data and information in the form of a series of bits. The series of bits that states encrypted plaintext into ciphertext in the form of a series of bits, and vice versa. In general, modern cryptographic algorithms process the data in the form of blocks of a series of bits that are broken into blocks of bits can be written in a number of ways depending on the length of the block.
METODE PROSES XOR DALAM PEMBENTUKAN KUNCI SIMETRIS PADA ALGORITMA MARS
ABSTRAK
XOR PROCESS METHOD IN THE FORMATION OF THE SYMMETRIC KEY ALGORITHM MARS
ABSTRACT
This study discusses the block cipher encryption algorithm that a
candidate MARS Advanced Encryption Standard (AES). MARS is a symmetric
key algorithm with 128-bit block cipher and a key length variations between the (128 up to 1248 bits). MARS is made to meet the needs of data security,
especially as one of the less satisfying answer to the DES (Data Encryption Standard). Both of these algorithms have a number of engineering and operations that are similar in principle, due basically to the symmetry key algorithm has a number of standard operations, such as substitution and transposition. Modern classical cryptographic algorithms generally operate in character mode, while the modern cryptographic operation in bits mode. Operating in that mode bits means all data and information (both the key, plaintext, or ciphertext) is expressed in the series (string) of binary bits, 0 and 1. Encryption and decryption process all data and information in the form of a series of bits. The series of bits that states encrypted plaintext into ciphertext in the form of a series of bits, and vice versa. In general, modern cryptographic algorithms process the data in the form of blocks of a series of bits that are broken into blocks of bits can be written in a number of ways depending on the length of the block.
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah.
Perkembangan teknologi saat ini telah mengubah cara masyarakat baik itu
perusahaan militer dan swasta dalam berkomunikasi. Dengan adanya internet,
pertukaran informasi sudah tidak terhambat lagi oleh aspek jarak dan waktu.
Namun perkembangan teknologi informasi ini juga memiliki kelemahan
dalam hal keamanan data. Penyadapan data dapat saja dilakukan oleh pihak-pihak
yang tidak bertanggung jawab. Oleh karena itu aspek keamanan dalam
pertukaran informasi menggunakan teknologi informasi menjadi sangat penting
untuk diperhatikan.
Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan.
Kriptografi menyediakan aspek kerahasiaan (menjaga isi pesan dari siapapun
yang tidak berhak mengakses), integritas data (menjamin pesan belum pernah
dimanipulasi selama pengiriman), otentikasi ( identifikasi kebenaran pihak
yang berkomunikasi dan sumber pesan ), dan nir penyangkalan (mencegah
pihak yang berkomunikasi melakukan penyangkalan).
Semua aspek tersebut sangat diperlukan dalam hal keamanan data pada
teknologi informasi. Mengingat aspek keamanan data merupakan hal yang
penting dalam pertukaran informasi, maka perkembangan teknologi informasi
juga berimbas pada meningkatnya kebutuhan atas algoritma dan teknik
kriptografi yang handal. DES (Data Encryption Standard) yang diumumkan
oleh NIST (National Institute of Standards and Technology) pada tahun 1972 sebagai standard algoritma kriptografi sudah dianggap tidak aman lagi. Dengan
menggunakan perangkat keras tertentu, kunci dari DES dapat dipecahkan hanya
dalam waktu yang relatif singkat. Oleh karena itu, pada tahun 1997 NIST
mengumumkan adanya pemilihan standard baru sebagai pengganti DES yang
oleh NIST dalam pemilihan algoritma standar enkripsi, sebagai pengganti
standar DES adalah sebagai berikut:
1. Merupakan algoritma kriptografi simetri chipher blok.
2. Seluruh rancangan algoritma harus publik (tidak dirahasiakan).
3. Panjang kunci fleksibel, yaitu sebesar 128 bit, 192 bit dan 256 bit.
4. Ukuran blok sebesar 128 bit.
5. Algoritma memungkinkan untuk diimplementasikan baik sebagai perangkat lunak maupun sebagai perangkat keras. Ada lima
algoritma yang ditetapkan sebagai standar enkripsi yang
dipilih oleh NIST, kelima algoritma tersebut adalah:
1) MARS, dari Team IBM.
2) RC6, dari tim Laboratorium RSA.
3) Rijndael, dari tim Vincent Rijmen dan Joan Daemen.
4) Serpent, dari tim Ross Anderson, Eli Biham, dan Lars Knudsen.
5) Twofish, dari tim Bruce Schneie.
Penelitian ini membahas tentang algoritma enkripsi cipher blok MARS yang menjadi kandidat Advanced Encryption Standard (AES). MARS merupakan algoritma kunci simetri dengan 128-bit cipher block dan memiliki variasi panjang
kunci diantara (128 s.d. 1248 bit). MARS dibuat untuk memenuhi kebutuhan
dalam keamanan data, terutama sebagai salah satu jawaban atas kurang
memuaskannya DES (Data Encryption Standard). Kedua algoritma ini memiliki sejumlah teknik dan operasi yang hampir sama secara prinsip, karena pada
dasarnya untuk algoritma kunci simetri memiliki sejumlah operasi yang standard,
seperti substitusi dan transposisi.
Algoritma kriptografi klasik modern umumnya beroperasi dalam mode
karakter , sedangkan kriptografi modern beroperasi pada mode bit. Operasi dalam
mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun
enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk
rangkaian bit.
Rangkaian bit yang menyatakan plainteks dienkripsi menjadi cipherteks
dalam bentuk rangkaian bit, demikian sebaliknya. Pada umumnya algoritma
kriptografi modern memproses data dalam bentuk blok-blok rangkaian bit yang
dipecahkan menjadi blok-blok bit dapat ditulis dalam sejumlah cara bergantung
pada panjang blok.
Contoh : Plainteks 100111010110
Bila dibagi menjadi blok 4-bit
1001 1101 0110
maka setiap blok menyatakan 0 sampai 15:
9 13 6
Bila plainteks dibagi menjadi blok 3-bit:
100 111 010 110
maka setiap blok menyatakan 0 sampai 7:
4 7 2 6
Bila panjang rangkaian bit tidak habis dibagi dengan ukuran blok yang
ditetapkan, maka blok yang terakhir ditambah dengan bit-bit semu yang disebut
Padding bits: bit-bit tambahan jika ukuran blok terakhir tidak mencukupi panjang blok. Misalnya rangkaian bit di atas dibagi menjadi blok 5-bit menjadi.
10011 10101 00010
Blok yang terakhir telah ditambahkan 3 bit 0 di bagian awal agar
ukurannya menjadi 5 bit. Padding bits dapat mengakibatkan ukuran cipherteks hasil enkripsi lebih panjang daripada ukuran plainteks semula.
Cara lain untuk menyatakan rangkaian bit adalah dengan notasi
heksadesimal (HEX). Rangkaian bit dibagi menjadi blok yang berukuran 4 bit dengan representasi dalam HEX adalah :
0000 = 0 0001 = 1 0010 = 2 0011 = 3
0100 = 4 0101 = 5 0011 = 6 0111 = 7
1000 = 8 1011 = 9 1010 = A 1011 = B
Contoh : plainteks 111001010001 dibagi menjadi blok 4-bit:
1110 0101 0001 dalam notasi HEX adalah E 5 1
Operasi biner yang sering digunakan dalam cipher yang beroperasi dalam
mode bit adalah XOR. Notasi matematis untuk operator XOR adalah ⊕. Operator
XOR dioperasikan pada dua bit dengan aturan sebagai berikut :
0⊕0 = 0
0⊕1 = 1
1⊕0 = 1
1⊕1 = 0
Perhatikan bahwa operator XOR identik dengan penjumlahan modulo 2:
0 ⊕ 0 = 0 ⇔ 0 + 0 (mod 2) = 0
0 ⊕ 1 = 1 ⇔ 0 + 1 (mod 2) = 1
1 ⊕ 0 = 1 ⇔ 0 + 1 (mod 2) = 1
1 ⊕ 1 = 1 ⇔ 1 + 1 (mod 2) = 0
Hukum-hukum yang terkait dengan operator XOR:
(i) a ⊕a = 0
(ii) a⊕b = b⊕a
(iii) a⊕ (b⊕c) = (a⊕b) ⊕c
Jika dua rangkaian dioperasikan dengan XOR, maka operasinya dilakukan dengan meng-XOR-kan setiap bit yang berkoresponden dari kedua rangkaian bit tersebut.
Contoh:
10011 ⊕ 11001 = 01010
yang dalam hal ini, hasilnya diperoleh sebagai berikut :
1 0 0 1 1
1 1 0 0 1 ⊕
1 ⊕ 1 0 ⊕ 1 0 ⊕ 0 1⊕ 0 1 ⊕ 1
Berdasarkan uraian pada latar belakang dan permasalahan maka penelitian
ini akan membuat suatu modifikasi pengembangan matematika dalam proses
enkripsi dan dekripsi. Dalam sistem pengamanan data dengan melakukan
perubahan pada rumusan matematika yang telah diterapakan pada sistem ini.
1.2. Perumusan Masalah.
Berdasarkan latar belakang masalah yang diuraikan pada sub bab sebelumnya,
maka terdapat dua masalah utama dalam penulis yang dapat dirumuskan sebagai
berikut, apakah penggunaan algoritma yang sudah dimodifikasi nilai
matematikanya mampu mengatasi masalah keamanan data serta apakah penerapan
algoritma ini mampu mengurangi masalah penyalahgunaan dan penyusupan.
1.3. Batasan Masalah.
Berdasarkan uraian dari rumusan masalah serta kegiatan yang telah dilakukan,
maka batasan yang dapat dibuat peneliti, yaitu, melakukan pengembangan
matematika dan perhitungan secara matematika dalam proses pembentukan kunci
pengamanan, guna menjamin dalam penggunaan algoritma MARS dalam
pengamanan data.
1.4. Tujuan Penelitian.
Berdasarkan uraian pada latar belakang masalah dan perumusan masalah diatas,
maka tujuan yang ingin dicapai dalam penelitian ini adalah :
1. Untuk mengetahui bagaimana mengubah bentuk teoritis dari penelitian
yang pernah dibuat ke dalam bentuk perhitungan matematika
dengan menggunakan proses XOR.
2. Untuk mengetahui bagaimana hasil yang didapat jika formula Kunci
yang ada dikembangkan dengan menerap metode XOR perhitungan matematikanya sedemikian rupa.
3. Untuk mendapatkan hasil yang maksimal tentanperhitungan
matemamatika dalam algoritma untuk menentukan kunci Simetris pada
1.5. Manfaat Penelitian.
Hasil penelitian ini diharapkan bermanfaat untuk digunakan sebagai berikut :
1. Bahan pertimbangan bagi institusi suatu perusahaan baik militer maupun swasta ataupun perguruan tinggi dalam rangka menjaga
kerahasiaan data berdasarkan level kepentingan.
2. Sumbangan pemikiran bagi berbagai pihak yang berminat dan ingin melakukan penelitian dan sebagai kontribusi bagi dunia
BAB II
TINJAUAN PUSTAKA
2.1. Latar Belakang Kriptografi. 2.1.1 Sejarah Kriptografi.
Kriptografi berasal dari dua kata Yunani, yaitu Crypto yang berarti rahasia dan
Grapho yang berarti menulis. Secara umum kriptografi dapat diartikan sebagai
ilmu dan seni penyandian yang bertujuan untuk menjaga keamanan dan
kerahasiaan suatu pesan.
Kriptografi pada dasarnya sudah dikenal sejak lama. Menurut catatan
sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000 tahun yang
lalu oleh raja-raja Mesir, pada saat perang untuk mengirimkan pesan rahasia
kepada panglima perangnya melalui kurir-kurinya. Orang yang melakukan
penyandian ini disebut kriptografer, sedangkan orang yang mendalami ilmu dan
seni dalam membuka atau memecahkan suatu algoritma kriptografi tanpa harus
mengetahui kuncinya disebut kriptanalis. Seiring dengan perkembangan
teknologi, algoritma kriptografi pun mulai berubah menuju ke arah algoritma
kriptografi yanglebih rumit dan kompleks.
Kriptografi mau tidak mau harus diakui mempunyai peranan yang paling
penting dalam peperangan sehingga algoritma kriptografi berkembang cukup
pesat pada saat Perang Dunia I dan Perang Dunia II.
Menurut catatan sejarah, terdapat beberapa algoritma kriptografi yang
pernah digunakan dalam peperangan, diantaranya adalah ADFVGX yang dipakai
oleh Jerman pada Perang Dunia I, Sigaba/M-134 yang digunakan oleh Amerika
Serikat pada Perang Dunia II, Typex oleh Inggris, dan Purple oleh Jepang. Selain
itu Jerman juga mempunyai mesin legendaris yang dipakai untuk memecahkan
sandi yang dikirim oleh pihak musuh dalam peperangan yaitu, Enigma. Algoritma
yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang
2.1.2 Definisi Kriptografi.
Teknik Kriptografi berasal dari bahasa Yunani yakni kriptos yang artinya tersembunyi dan graphia yang artinya sesuatu yang tertulis, maka kriptografi dapat diibaratkan sesuatu yang tercatat secara rahasia.
Teknik kriptografi adalah sesuatu disiplin ilmu yang mempelajari tentang
teknik merahasiakan suatu data rahasia yang penting ke dalam suatu bentuk yang
tidak dapat dibaca oleh siapapun serta dapat mengembalikannya kembali menjadi
data seperti semula dengan menggunakan berbagai macam teknik yang telah ada
sehingga data tersebut tidak dapat diketahui oleh pihak manapun yang bukan
pemilik atau yang tidak berkepentingan, makna lain dari kriptografi ialah
kriptanalisis (Cryptanalysis) yang merupakan ilmu tentang teknik bagaimana memecahkan mekanisme kriptografi.
Dalam suatu institusi baik militer dan swasta, kriptografi lebih diutamakan
dalam menjaga keamanan data agar tetap terjaga kerahasiaannya secara khusus.
Seperti yang telah diketahui dan disetujui bahwa perlindungan (proteksi) terhadap
komunikasi yang sensitif telah menjadi penekanan kriptografi selama ini.
2.1.3 Tujuan Kriptografi.
Algoritma yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau
pesan yang disampaikan. Yang penting, algoritma tersebut harus memenuhi 4
persyaratan berikut :
1. Kerahasiaan.
Pesan (plaintext) hanya dapat dibaca oleh pihak yang memiliki kewenangan.
2. Autentikasi.
Pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup
harus dipastikan tidak bisa berpura-pura menjadi orang lain.
3. Integritas.
Penerima pesan harus dapat memastikan bahwa pesan yang dia
terima tidak dimodifikasi ketika sedang dalam proses transmisi
4. Non-Repudiation.
Pengirim pesan harus dapat menyangkal pesan yang dia
kirimkan,kriptografi pada dasarnya terdiri dari dua proses, yaitu
proses enkripsi dan proses dekripsi.
2.1.4
Algoritma Enkripsi Dengan XOR Sederhana.
Algoritma enkripsi sederhana yang menggunakan XOR adalah dengan meng-XOR
kan plainteks (P) dengan kunci (K) menghasilkan cipherteks :
C = P ⊕ K, Karena meng XOR kan nilai yang sama dua kali berturut-turut
menghasilkan nilai semula, maka dekripsi menggunakan persamaan :
P = C ⊕ K
Contoh:
plainteks 01100101 (karakter ‘e’)
kunci 00110101 ⊕ (karakter ‘5’)
cipherteks 01010000 (karakter ‘P’)
kunci 00110101 ⊕ (karakter ‘5’)
plainteks 01100101 (karakter ‘e’)
Algoritma enkripsi XOR sederhana pada prinsipnya sama seperti Vigenere cipher dengan penggunaan kunci yang berulang secara periodik. Setiap bit
plainteks di-XOR-kan dengan setiap bit kunci.
Program komersil yang berbasis DOS atau Macintosh menggunakan algoritma XOR sederhana ini. Sayangnya, algoritma XOR sederhana tidak aman karena cipherteksnya mudah dipecahkan. Cara memecahkannya adalah sebagai
berikut :
1. Cari panjang kunci dengan prosedur counting concidence sbb :
XOR kan cipherteks terhadap dirinya sendiri setelah digeser sejumlah byte, dan hitunglah jumlah byte yang sama. Jika pergeseran itu kelipatan dari panjang kunci (yang tidak diketahui),
Angka persentase ini disebut index of coincidence. Pergeseran terkecil mengindikasikan panjang kunci yang dicari.
2. Geser cipherteks sejauh panjang kunci dan XOR kan dengan dirinya sendiri. Operasi ini menghasilkan plainteks yang ter XOR
dengan plainteks yang digeser sejauh panjang kunci tersebut.
2.1.5.
Kriptografi Kunci Simetri.
Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini
pengirim maupun penerima memiliki kunci yang sama. Algoritma kunci-simetri
modern beroperasi dalam mode bit dan dapat dikelompokkan menjadi dua
kategori:
1. Cipher aliran ( stream cipher) 2. Cipher blok ( block cipher)
2.1.5.1. Stream Cipher.
Algoritma kiptografi beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan bit per bit.
Cipher aliran mengenkripsi satu bit setiap kali tranformasi atau byte per byte (1 karakter = 1 byte). Nama lain untuk cipher stream adalah cipher status sebab
enkripsi tiap bit bergantung pada status saat ini (current state).
Cipher aliran pertama kali diperkenalkan oleh Vernam melalui algoritmanya yang dikenal dengan nama Vernam cipher. Vernam cipher diadopsi
dari one-time pad cipher, yang dalam hal ini karakter diganti dengan bit (0 dan 1). Cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks
Plainteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit
cipherteks dengan satu bit kunci : pi = (ci + ki) mod 2, oleh karena itu kita dapat menyatakan bahwa cipher aliran merupakan aproksimasi dari unbreakable cipher
yaitu on-time pad cipher.
Mengingat operasi penjumlahan modulo 2 identik dengan operasi bit
dengan operator XOR, maka pada cipher aliran, bit hanya mempunyai dua buah nilai, sehingga proses enkripsi hanya menyebabkan dua keadaan pada bit tersebut
: berubah atau tidak berubah. Dua keadaan tersebut ditentukan oleh kunci enkripsi
yang disebut aliran kunci (keystream). Aliran kunci dibangkitkan dari sebuah pembangkit yang dinamakan pembangkit aliran-kunci (keystream generator). Aliran kunci di XOR kan dengan aliran bit-bit plainteks pi, p2, …,pi, untuk
menghasilkan aliran bit-bit cipherteks. ci = pi ⊕ ki, disisi penerima, bit-bit
cipherteks di XOR-kan dengan aliran kunci yang sama untuk menghasilkan bit-bit
plainteks : pi = ci ⊕ ki
Contoh :
Plainteks : 1100101
Aliran kunci : 1000110
Maka cipherteks didapatkan dengan meng XOR kan bit-bit plainteks dengan aliran kunci pada posisi yang berkoresponden, sehinga didapatkan :
0100011
2.2 System Teknik Kriptografi.
Ilmu Kriptografi telah banyak dimamfaatkan di dalam Teknik pengamanan baik
data maupun informasi, dibidang teknik computer dalam pengamanan data pada
masa kini. Teknik yang sering dipakai dari kriptografi adalah sistem yang
dikembangkan dengan teknik dasar. Sistem pengamanan data ini, dapat memiliki
tingkat keragaman yang khas.
Beberapa aplikasi yang lebih sederhana antara lain , komunikasi data yang
mail yang aman, penemuan kunci dan akses komputer yang aman. Secara umum, makin sederhana aplikasi makin cepat menjadi realita.
2.2.1 Identifikasi dan Otentikasi.
Identifikasi dan otentikasi merupakan dua sarat mutlak dari teknik kriptografi
yang sangat banyak digunakan saat ini. Identifikasi adalah suatu proses verifikasi
identitas suatu objek. Sebagai contoh, ketika mengambil dana dari suatu bank
dengan menggunakan kartu, yang dilengkapi dengan saatu password yang rahasia
tersebut, demikian juga dengan rekening yang bersangkutan.
Ketika kartu dimasukkan ke dalam mesin , maka mesin tersebut akan
meminta pengguna kartu untuk memasukkan password. Jika Password yang
dimasukkan benar, mesin akan mengidentifikasikan orang tersebut benar sebagai
pemilik kartu sehingga kepada orang tersebut akan diberikan tanda bahwa yang
bersangkutan dapat melanjutkannya. Sehingga teknik penting lainnya dari
kriptografi adalah otentikasi.
Otentikasi sama juga dengan indetifikasi, diantara keduanya memberikan
kemampuan dalam mengakses ke dalam teknik tertentu pula, tetapi otentikasi
memiliki jangkauan yang lebih luas sehingga tidak perlu mengidentifikasikan
objeknya.
2.2.2 Kriteria Pada Sistem Kriptografi.
Teknik kunci suatu sistem kriptografi (cryptosystems) dapat dikatagorikan atas 2 jenis teknik yakni teknik kriptografi dengan kunci publik (public key cryptography) dan teknik kriptografi dengan kunci rahasia (secret key cryptography). Dalam teknik kriptografi kunci rahasia yang juga dikenal dengan
symmetric cryptosystems.
Pengirim dan penerima bersama-sama sepakat dalam suatu kunci rahasia
yang akan digunakan dalam proses enkripsi dan dekripsi suatu data tanpa
diketahui oleh pihak lain. Sedangkan dalam teknik kriptografi kunci publik atau
key) dan kunci rahasia (private key) dimana kunci publik dipublikasikan dan kunci rahasia tetap dirahasiakan. Enkripsi dilakukan dengan menggunakan kunci publik
sedangkan dekripsi dilakukan dengan menggunakan kunci rahasia.
2.3 Teknik Kunci Rahasia.
Teknik pada kriptografi dengan kunci rahasia merupakan suatu teknik pada
kriptografi yang lebih sederhana, sedangkan pada kunci satu dapat digunakan
untuk enkripsi dan dekripsi suatu data.
Teknik kunci rahasia bukan hanya digunakan untuk proses enkripsi,
namun juga dapat digunakan untuk proses otentikasi. Proses data dengan
menggunakan teknik kriptografi kunci rahasia membuat pengirim dan penerima
pesan atau informasi setuju atas kunci rahasia yang digunakan tanpa orang lain
mampu mendapatkan dan mengetahuinya.
Atau dengan kata lain bagaimana memilih kunci rahasia yang benar-benar
aman. Proses ini membutuhkan suatu teknik dimana kedua pihak dapat
berkomunikasi tanpa keraguan akan bocornya kunci tersebut. Akan tetapi,
keuntungan dari kriptografi kunci rahasia adalah biasanya lebih cepat
dibandingkan dengan kriptografi kunci publik. Teknik yang paling umum untuk
kriptografi kunci rahasia adalah block ciphers, stream ciphers, dan message authentication codes.
2.3.1 Block Cipher.
Simetri Cipher Blok Algoritma kriptografi akan disebut simetri apabila ber
pasangan kunci untuk proses enkripsi dan dekripsinya sama. Algoritma enkripsi
simetri inipun dibagi lagi menjadi dua kelas, yaitu block-cipher dan stream-cipher. Karena AES harus merupakan cipher blok, maka cipher stream tidak akan
dibahas pada makalah ini.
Pada algoritma kriptografi simetri cipher blok, rangkaian bit-bit plainteks
dibagi menjadi blok-blok bit dengan panjang sama. Enkripsi dilakukan terhadap
blok bit plainteks menggunakan bit-bit kunci (yang ukurannya sama dengan
berukuran sama dengan blok plainteks. Dekripsi dilakukan dengan cara yang serupa seperti enkripsi. Skema enkripsi dan dekripsi dengan cipher blok dapat dilihat pada Gambar 1. Fungsi E dan D dideskripsikan sendiri oleh kriptografer.
Gambar 2.1 . Enkripsi dan Dekripsi dengan Cipher Block
2.3.1.1 Teknik Kriptografi.
Yang Digunakan Pada Chiper Blok. Algoritma blok cipher menggabungkan beberapa teknik klasik dalam proses enkripsi. Teknik kriptografi yang
digunakan adalah :
1). Substitusi. Teknik ini mengganti satu atau sekumpulan bit pada
blokc plainteks menjadi cipherteks tanpa mengubah urutannya.
2). Transposisi atau Permutasi. Teknik ini memindahkan posisi bit
pada blok plainteks untuk ditempatkan pada blok cipherteks berdasarkan aturan tertentu.
3). Ekspansi. Teknik ini memperbanyak jumlah bit pada block
4). Kompresi. Teknik ini kebalikan dari ekspansi, di mana jumlah bit pada plainteks dikompresi (diperkecil) berdasarkan aturan
2.3.1.2 Mode Operasi Cipher Block.
Plainteks dibagi menjadi beberapa blok yang dengan panjang yang tetap. Beberapa mode operasi dapat diterapkan untuk melakukan enkripsi terhadap
keseluruhan blok plainteks, Empat mode operasi yang lazim diterapkan pada sistem blok cipher adalah .
1) Electronic Code Book(ECB).
Setiap blok plainteks Pi dienkripsi secara individual dan independen menjadi blok cipherteks Ci. Secara matematis, enkripsi
dengan mode ECB dinyatakan sebagai Ci = Ek(Pi) dan dekripsi
sebagai Pi = Dk(Ci), yang dalam hal ini, Pi dan Ci masing masing block plainteks dan cipherteks ke- I Skema enkripsi.
2). Cipher Block Chaining ( CBC ).
Mode ini menerapkan mekanisme umpan balik (feedback) pada sebuah blok, yang dalam hal ini hasil enkripsi blok sebelumnya
diumpan balikkan ke dalam enkripsi blok yang current. Secara
matematis, enkripsi dengan mode CBC dinyatakan sebagai Ci
= Ek(P1 = Cií1) dan dekripsi sebagai Pi = Dk(Ci) = Ci-1 Yang
dalam hal ini, C0 = IV ( initialization vector ). IV dapatdiberikan oleh pengguna atau dibangkitkan secara acak oleh program.
gambar enkripsi dengan mode CBC dapat dilihat pada Gambar 2.3 .
Gambar 2.3 Enkripsi dengan Mode CBC
2.3.1.3 Stream Cipher .
Adalah type algoritma proses enkripsi simetri yang merupakan model
mentransformasikan data secara karakter per karakter. Stream ciphers dapat
dibuat sangat cepat sekali, jauh lebih cepat dibandingkan dengan algoritma block
Sementara algoritma block cipher secara umum digunakan untuk unit
plaintext yang berukuran besar sedangkan stream cipher digunakan pada blok
data yang ukurannya kecil, biasanya ukuran bit. Suatu Proses enkripsi terhadap
plaintext tertentu dengan algoritma block cipher akan menghasilkan ciphertext
yang sama jika kunci yang sama digunakan. Dalam proses stream cipher,
transformasi dari unit plaintext yang lebih kecil ini berbeda antara satu dengan
lainnya, tergantung pada kapan unit tersebut ditemukan selama proses enkripsi.
Stream cipher menghasilkan apa yang disebut dengan keystream yaitu suatu barisan bit yang digunakan sebagai kunci. Proses enkripsi dicapai dengan
menggabungkan keystream dengan plaintext biasanya dengan operasi bitwise XOR. Proses keystream dapat dibuat independen terhadap plaintext dan ciphertext,
menghasilkan apa disebut dengan proses synchronous stream cipher, dan dapat dibuat tergantung pada data dan enkripsinya, dalam metode ini stream cipher
disebut sebagai self-synchronizing, bentuk stream cipher ialah synchronous stream cipher.
Penunjukan proses dalam stream ciphers pada umumnya berkaitan dengan sifat-sifat teoritis yang menarik dari one-time pad. Suatu one-time pad, kadang-kadang disebut Vernam cipher, dalam menggunakan sebuah string dari bit yang dihasilkan murni secara acak. Keystream memiliki panjang sama dengan pesan
plaintext; string acak digabungkan dengan menggunakan bitwise XOR dengan
plaintext untuk menghasilkan ciphertext.
Karena keystream seluruhnya adalah acak, walaupun dengan sumber daya komputasi tak terbatas seseorang hanya dapat menduga plaintext jika dia melihat
ciphertext. Metode cipher seperti ini disebut memberikan kerahasiaan yang sempurna (perfect secrecy), dan analisis terhadap one-time pad dipandang sebagai
salah satu landasan kriptografi modern.
Sementara one-time pad yang digunakan semasa perang melalui saluran diplomatik membutuhkan tingkat keamanan yang sangat tinggi, fakta bahwa kunci
memperkenalkan masalah manajemen kunci yang strict. Sedangkan keamanan sempurna, one-time pad secara umum adalah tidak praktis. Metode Stream ciphers dikembangkan sebagai satu pola terhadap tindakan dari one-time pad.
Sedangkan stream cipher modern tidak mampu menyediakan tingkat keamanan one-time pad yang memadai secara teori, tetapi setidaknya praktis. Sampai saat ini belum ada stream cipher sebagai standard . Metode stream cipher
yang umum digunakan. Satu hal yang menarik bahwa mode operasi tertentu dari
suatu block cipher dapat mentransformasikan secara efektif hasil operasi tersebut ke dalam satu keystream generator dan dalam, block cipher, suatu stream cipher.
2.4 Matematis Kriptografi.
2.4.1 Pengantar Matematis Pada Kriptografi.
Seluruh byte dalam algoritma Mars diinterprestasikan sebagai elemen dalam
finite field. Element finite field ini dapat dikalikan dan dijumlahkan, tetapi hasil
dari penjumlahan dan perkalian elemen finite field sangat berbeda dengan hasil dari penjumlahan dan perkalian bilangan biasa.
2.4.2 Penjumlahan.
Penjumlahan dari dua elemen dalam suatu finite field tersebut dilakukan dengan menjumlahkan koefisien dari pangkat polinom yang bersesuaian dari dua elemen
tersebut. Penjumlahan dilakukan dengan operasi XOR dan dinotasikan dengan ⊕.
Dengan operasi ini, maka :
1 ⊕ 1 = 0, 1 ⊕ 0 = 1, 0 ⊕ 1 = 1, dan 0 ⊕ 0= 1.
Pengurangan dari polynomial identik dengan penjumlahan polynomial.
Sebagai alternative, penjumlahan elemen-elemen pada finite field dapat dijelaskan sebagai penjumlahan modulo 2 dari bit yang bersesuaian dalam byte.
Untuk 2 byte { a7a6a5a4a3a2a1a0 } dan { b7b6b5b4b3b2b1b0 }, hasil
penjumlahannya adalah { c7c6c5c4c3c2c1c0 } dimana setiap ci = ai ⊕ bi.
Contoh dari operasi penjumlahan adalah sebagai berikut : (
{01010111 } ⊕ {11010100 } ini disebut ( Notasi Biner ) dan { 57 } ⊕ { 83 } = { d4 } ini disebut notasi hexadecimal.
2.4.3 Perkalian.
Dalam representasi polynomial, perkalian dalam GF ( 28 ) yang dinotasikan
dengan * mengacu pada perkalian modulo polynomial sebuah irreducible
polynomial yang berderajat 8. Sebuah polynomial bersifat irreducible jika satu
satunya pembagi adalah dirinya dan 1, untuk algoritma Mars, irreducible polynomial ini adalah,
m(x) = x8+x4+x3+x+1 , atau dalam notasi hexadecimal adalah { 01 } {1b }.
Sebagai contoh, {57}*{83}={c}, karena :
(X6+X4+X2+X+1)*(X7+X+1=X13+X11+X9+X8+X7+X7+X5+X3+X2+X+X6+X4+X2
+1=X13+X11+X9+X8+X6+X5+X4+X3+1dan X13+X11+X9+X8+X6+X5+X4+X3+X+1
modulo ( X8+X4+X3+X+1 ) = X7+X6+ 1.
Pengurangan modulo oleh m(x) memastikan bahwa hasilnya akan berupa
polynomial biner dengan derajat kurang dari 8, sehingga dapat dipresentasikan dengan 1 byte.
2.4.4 Operasi XOR.
MARS cipher menggunakan berbagai macam pada operasi ( pada 32-bit word). MARS mengkombinasikan: Exclusive-or (XOR), penjumlahan, pengurangan, perkalian, fixed rotation dan data dependent rotation. antara lain adalah :
1) Penjumlahan, Pengurangan, Perkalian dan XOR.
Ini merupakan operasi yang sangat sederhana, yang digunakan
untuk menggabungkan nilai data dan nilai kunci.
2) Fixed Rotation.
Rotasi berdasarkan nilai tertentu yang sudah ditetapkan. Dalam hal
ini nilai rotasi untuk transformasi kunci adalah 13 posisi dengan
dengan pergerakan rotasi ke kin, 24 posisi untuk forward mixing
dengan pergerakan rotasi ke kin dan 24 posisi untuk backward mixing dengan pergerakan rotasi ke kanan.
3) Data Dependent Rotation.
Rotasi berdasarkan nilai yang ditentukan berdasarkan 5 bit terendah (berkisar antara 0 dan 31) dari word data, misalkan nilai
rotasi r = 5 bit terendah dari M maka nilai rotasi r akan sangat tergantung dengan nilai 5 bit terendah dari M.
2.4.5 S-Box.
Tabel look-up atau S-box merupakan suatu tabel substitusi yang digunakan sebagai dasar untuk menjamin keamanan data pada DES, dan juga digunakan untuk beberapa cipher yang lain seperti MARS.
MARS menggunakan tabel tunggal yang terdiri dari 512, 32 bit word,
yang disebut dengan S-box. Tabel S box ini merupakan fixed tabel yang nilainya sudah tetap, kekurangan dari penggunaan S-box adalah agak lambat untuk
diimplementasi pada software.
2.4.6 Kriptografi Secret Key dan Public Key.
Pada dasarnya terdapat dua jenis algoritma kriptografi berdasarkan kunci
yang digunakan. Yang pertama adalah kriptografi dengan menggunakan
secret key dan yang kedua adalah kriptografi yang menggunakan public key. Kriptografi public key menggunakan dua kunci yang berbeda dimana satu kunci digunakan untuk melakukan enkripsi dan kunci yang lain digunakan untuk
Gambar 2.4 Kriptografi kunci simetri.
1. CryptographiSecret Key.
Kriptografi secret key adalah kriptografi yang hanya melibatkan satu kunci dalam proses enkripsi dan dekripsi. Proses dekripsi dalam kriptografi secret key ini adalah kebalikan dari proses enkripsi.
Kriptografi secret key seringkali disebut sebagai kriptografi konvensional atau kriptografi simetris (Symmetric Cryptography) dimana proses dekripsi adalah kebalikan dari proses enkripsi dan menggunakan kunci
yang sama. Kriptografi simetris dapat dibagi menjadi dua, yaitu penyandian
blok dan penyandian alir. Penyandian blok bekerja pada suatu data yang
terkelompok menjadi blok-blok data atau kelompok data dengan panjang data
yang telah ditentukan.
Pada penyandian blok, data yang masuk akan dipecah-pecah menjadi
blok data yang telah ditentukan ukurannya. Penyandian alir bekerja pada suatu
data bit tunggal atau terkadang dalam satu byte. Jadi format data yang mengalami proses enkripsi dan dekripsi adalah berupa aliran bit-bit data.
Algoritma yang ada pada saat ini kebanyakan bekerja untuk
menggunakan blok-blok data yang telah ditentukan ukurannya untuk
kemudian dikirim melalui saluran komunikasi.
2. Kriptografi Public Key.
Kriptografi public key sering disebut dengan kriptografi asimetris .Berbeda dengan kriptografi secret key, kunci yang digunakan pada proses enkripsi dan proses dekripsi pada kriptografi public key ini berbeda satu sama lain. Jadi dalam kriptografi public key, suatu key generator akan menghasilkan dua kunci berbeda dimana satu kunci digunakan untuk melakukan proses
enkripsi dan kunci yang lain digunakan untuk melakukan proses dekripsi. Kunci
yang digunakan untuk melakukan enkripsi akan dipublikasikan kepada umum
untuk dipergunakan secara bebas. Oleh sebab itu, kunci yang digunakan
untuk melakukan enkripsi disebut juga sebagai public key. Sedangkan kunci yang digunakan untuk melakukan dekripsi akan disimpan.
2.5 Metoda MARS.
2.5.1 Sejarah Algoritma MARS.
MARS adalah cipher block yang didesain oleh tim dari IBM Corporation, yaitu Carolynn Burwick, Don Coppersmith, Edward D.Avignon, Rosario Gennaro, Shai
Halevi, Charanjit Jutla, Stephen M.Matyas, Jr., Luke O’Connor, Mohammad
Peyravian, David Safford, dan Nevenko Zunic. MARS merupakan block cipher
dengan panjang blok 128 bit dan panjang kunci fleksible dari 128 bit sampai 499 bit. Algoritma ini bekerja dengan word 32 bit, dan menggunakan
jaringan Feistel (Feistel network) tipe-3.
MARS menerima input dan menghasilkan output empat word 32 bit.
Cipher ini berorientasi pada word, di mana semua operasi internalnnya bekerja
pada word 32 bit, sehingga struktur internal dari MARS adalah endian-neutral
(code yang sama dapat bekerja pada mesin little - endian maupun big - endian). Jika input (atau output) cipher adalah byte stream, maka digunakan pengurutan
little - endian byte untuk menginterpretasi masing masing empat byte sebagai sebuah word 32 bit. Gambar 4, memperlihatkan skema dari MARS yang dibagi
menjadi 3 fase. Fase pertama, Forward Mixing berisi pengacakan besar besaran dan hujan kunci untuk membuat frustasi serangan chosen-plaintext.
Di dalam fase ini dilakukan penambahan word kunci ke word data, diikuti dengan delapan putaran berbasis S-Box. Fase kedua merupakan Cryptographic Core (inti kriptografi) dari cipher ini, yang berisi 16 putaran transformasi dengan jaringan Feistel. Untuk memastikan enkripsi dan dekripsi
memiliki kekuatan yang sama, maka 8 putaran pertama dilakukan dengan forward mode sedangakan sisanya dengan backward mode. Fase terakhir, Backward Missing operasi yang dilakukan hampir sama seperti fase pertama, namun merupakan kebalikan dari fase pertama. Fase ini bertujuan melindungi
Gambar 2.6 Algoritma MARS
2.5.2 Algoritma EnkripsiMARS.
Penelitian ini menggambarkan dan menganalisis MARS algoritma enkripsi simetris-key yang merupakan blok baru cipher diserahkan kepada NIST untuk dipertimbangkan sebagai Advanced Encryption Standard(AES).
MARS mendukung blok 128-bit dan ukuran kunci variabel. Hal ini
dirancang untuk mengambil keuntungan dari kuat operasi didukung dalam
komputer saat ini, menghasilkan banyak peningkatan keamanan / trade off kinerja Khususnya, dalam MARS kami menggunakan kombinasi yang unik dari
lookup S-box, perkalian dan rotasi data-dependent. MARS memiliki struktur heterogen, dengan kriptografi putaran inti yang dibungkus oleh putaran
pencampuran sederhana. Putaran inti kriptografi memberikan kuat perlawanan
terhadap semua serangan cryptanalytical dikenal, sedangkan putaran pencampuran
memberikan guguran baik dan menawarkan margin keamanan yang sangat luas
2.5.2.1 Struktur Cipher Algoritma MARS.
Struktur cipher pada MARS dibagi dalam 3 tahap yakni :
1) Tahap Pertamaadalah Forward Mixing.
Berfungsi untuk mencegah serangan terhadap chosen plainlext. Terdiri dari penambahan sub kunci pada setiap word data atau
plaimezr, diikuti dengan delapan iterasi mixing tipe-3 feitsal
(dalam forward mode) dengan berbasis S- box.
2) Tahap Kedua adalah “Cryptographic Core” dan “ Cipher ”.
Terdiri dari enam belas iterasi tranformasi kunci tipe-3 feistal.
Untuk menjamin bahwa proses enkripsi dan dekripsi mempunyai
kekuatan yang sama, delapan iterasi pertama ditunjukkan
dalam forward mode dan delapan iterasi terakhir ada dalam “
backward mode”.
3) Tahap Terakhir AdalahBackward Mixing.
Berfungsi untuk melindungi serangan kembali terhadap chosen chipertext. Tahap ini merupakan invers dari tahap pertama,
terdiri dari delapan iterasi mixing tipe-3 feistel (dalam backward mode) dengan berbasis s-box, diikuti dengan pengurangan sub
kunci dari word data. Hasil pengurangan inilah yang disebut
dengan ciphertext. Notasi yang digunakan dalam cipher:
1. D[ ] adalah sebuah array untuk 4 32-bit data. Inisial D
berisi plaintext dan pada akhir proses enkripsi berisi
ciphertext.
2. K[ ] adalah array untuk expanded key, terdiri dari 40 32 bit
word.
3. S [ ] adalah sebuah S-box, terdiri dari 512 32-bit word.
3 (1) Tahap Pertama : Forward Mixing.
Dalam tahap ini, pertama-tama sebuah sub kunci ditambahkan pada setiap
Dalam setiap iterasi digunakan sebuah word data (source word) untuk memodifikasi tiga word data (target word).
Keempat byte source word digunakan sebagai indeks untuk S-box, kemudian nilai S-box entri akan di-XOR-kan, atau ditambahkan pada ketiga word data yang lain. Keempat byte dari source word dinotasikan dengan b0, b1, b2, b3 (dimana b0 adalah byte terendah dan b3 adalah byte
tertinggi) dan digunakan sebagai indeks untuk S-box. S-box[b0] di-XOR -kan dengan target word pertama, dan S box[b1+256] ditambah-kan dengan
target word yang sama.
S box[b2] ditambahkan dengan target word kedua dan S
box[b3+256] di-XOR-kan dengan target word ketiga. Terakhir source word dirotasikan sebanyak 24 posisi ke kanan. Untuk iterasi berikutnya keempat word data dirotasikan, sehingga target word pertama saat ini
menjadi source word berikutnya, target word kedua saat ini menjadi target
word pertama berikutnya, target word ketiga saat ini menjadi target word
kedua berikutnya dan source word saat ini menjadi target word ketiga
berikutnya.
(3.2) Tahap Kedua: Transformasi Kunci Utama.
Cryptographic core pada MARS cipher menggunakan tipe 3 –feistal Network yang terdiri dari enam belas iterasi. Dalam setiap iterasi digunakan E-function (E untuk expansion) yang mengkombinasikan penjumlahan, perkalian, fixed rotation data dependent rotation dan S _box lookup.
Fungsi ini menerima input satu word data dan menghasilkan tiga
Dalam delapan iterasi pertama, output pertama dan kedua dari E- function ditambahkan dengan target word pertama dan kedua, output ketiga di-XOR-kan dengan target word ketiga. Dalam delapan iterasi terakhir, output pertama dan kedua dari E –function ditambahkan dengan target word ketiga dan kedua, output ketiga di-XOR-kan dengan target word pertama.
(3.3) E-Function.
E -function menerima input satu word data dan menggunakan dua atau
lebih sub kunci untuk menghasilkan tiga word data sebagai output. Dalam
fungsi ini digunakan tiga variabel sementara, yang dinotasikan dengan L, M
dan R ( left, middle, dan right ).
R berfungsi untuk menampung nilai source word yang dirotasikan sebanyak 13 posisi ke kiri. M berfungsi untuk menampung nilai source word yang dijumlahkan dengan sub kunci pertama. Sembilan bit terendah dari M digunakan sebagai indeks untuk S-box. L berfungsi untuk menampung nilai yang sesuai dengan S box entry.
Sub kunci kedua akan dikalikan dengan R dan kemudian R
dirotasikan sebanyak S posisi ke kiri. L di-XOR-kan dengan R, lima bit terendah dari R digunakan untuk nilai rotasi r dengan nilai antara 0 dan 31,
dan M dirotasikan ke kiri sebanyak r posisi. R dirotasikan sebanyak 5 posisi
ke kiri dan di-XOR-kan dengan L. Terakhir, lima bit terendah dari R diambil sebagai nilai rotasi r dan L dirotasikan kekiri sebanyak r posisi. Output word
pertama dari E -function adalah M kedua adalah M dan ketiga adalah R.
(3.4) Tahap Ketiga : Backward Mixing.
Tahap ini merupakan invers dari tahap forward mixing, word data yang
diproses dalam urutan yang berbeda dalam backward mode. Sama halnya
Keempat byte dari source word dinotasikan dengan b0, bl, b2, b3 (dimana b0 adalah byte terendah dan b3 adalah byte tertinggi) dan digunakan sebagai indeks untuk S box. S box [b0+256] di-XOR-kan dengan target word pertama, dan S box[b3] dikurangkan dengan target
word kedua. S box [b2+256] dikurangkan dengan target word ketiga dan S box[b1] di-XOR-kan dengan target word ketiga juga.
Terakhir source word dirotasikan sebanyak 24 posisi ke kiri. Untuk iterasi berikutnya keempat word data dirotasikan sehingga target word
pertama saat ini menjadi source word berikutnya, target word kedua saat ini menjadi target word pertama berikutnya, target word ketiga saat ini
menjadi target word kedua berikutnya dan source word saat ini menjadi
target word ketiga berikutnya.
2.5.2.2 Perluasan Kunci.
Perluasan kunci berfungsi untuk membangkitkan sub kunci dari kunci yang
diberikan oleh pemakai yakni k[ ] yang terdiri dari n 32-bit (word). Kunci
diperluas menjadi 40 32-bit (word) sub kunci K[ ]. Dalam prosedur ini dibutuhkan 7 word data yang diambil dari S box[0…6] dan digunakan untuk transformasi
linier. Tabel temporer T yang terdiri dari 47 word data digunakan untuk menampung nilai 7 word data dari S box[0..6] dan nilai hasil transformasi linier,
dimana 7 word pertama berisikan nilai S box(0..6] dan 40 word terakhir akan
diisikan melalui transformasi linier yang selanjutnya digunakan dalam iterasi
untuk perluasan kunci.
Dalam transformasi linier untuk T[0..38] diisikan dengan ketentuan T[i-7] di-XOR-kan dengan T[i-2] dan hasilnya dirotasikan sebanyak 3 posisi ke kin kemudian di-XOR-kan dengan k[i mod n], di-XOR-kan dengan i. Untuk T[39] diisikan dengan n. Perluasan kunci dilakukan sebanyak 7 iterasi dan pada iterasi
terakhir nilai temperori T[0..39] disubstitusikan menjadi nilai sub kunci K[0…39].
Dalam setiap iterasi T[1..39] didapat dengan cara menambahkan S box[9 bit terendah dari T[i-1]] dengan T[i] dan kemudian dirotasikan sebanyak 9 posisi
kemudian dirotasikan sebanyak 9 posisi ke kiri. Dari hasil iterasi terakhir
T[0…39] disubtitusikan ke sub kunci K[0…39] dengan cara : K[(7i) mod 40]
diisikan dengan T[i].Untuk nilsi K5 K7... K33 diubah dengan ketentuan: u
digunakan untuk menampung nilai S_box[265+2 bit terendah dari K[1], j
digunakan untuk menampung nilai 5 bit terendah dari K[i+3].
Kemudian nilai 2 bit terendah dari K[i] diset menjadi 1 dan ditampung
dalam w. Bit mask M diset menjadi 1 jika dalam w1 terdapat 10 bit 1 atau bit 0 yang berurutan. U dirotasikan sebanyak j posisi ke kiri dan hasilnya ditampung
dalam p. Terakhir p di-XOR-kan dengan w di bawah kontrol M dan disimpan dalam K[i].
2.5.2.3 Panjang Kunci.
Keamanan data sebuah strategi penyandian yang tergantung dari dua hal :
algoritma penyandian dan panjang kuncinya ( key ). Algoritma sangat menentukan kekuatan dari sebuah teknik penyandian, tetapi panjang kunci juga
sangat berguna dalam menentukan suatu kekuatan teknik penyandian.
Suatu contoh, apabila seorang kriptanalis mengetahui algoritma yang
dipakai untuk melakukan teknik penyandian terhadap suatu pesan, makanya
kriptanalis tersebut harus mendapatkan kunci yang dipakai terlebih dahulu
sebelum dapat melakukan dekripsi terhadap semua ciphertext yang dia miliki. Satu satunya cara sebelum mendapatkan kunci yang akan dipaki adalah
dengan cara mencoba semua variasi kunci yang ada, teknik serangan ini disebut
dengan istilah brute force.
Adalah mudah untuk menghitung banyaknta variasi kunci yang ada.
Apabila panjang kunci adalah 8 bit, maka ada 28 atau 256 kemungkinan kunci
yang akan dicoba Dari 256 percobaan ini maka peluang untuk mendapatkan kunci
yang benar adalah 50 persen setelah melalui setengah usaha percobaan. Bila
panjang kunci 56 bit, maka ada 256 kemungkinan variasi kunci.
Dengan menganggap sebuah super computer dapat mencoba satu juta
kunci perdetik, maka diperkirakan sekitar 2285 tahun untuk menemukan kunci
yang sama akan membutuhkan 585 ribu tahun. Dengan jangka waktu yang
relative lama maka dapat dipastikanbahwa pesan yang disandikan tersebut tidak
mempunyai arti lagi apabila telah berhasil dibuka oleh orang lain.
Dengan melihat situasi ini, maka kriptografi yang baik akan memilih
untuk menggunakan sepanjang mungkin kunci yang akan digunakan, namun hal
ini tidak dapat diterapkan begitu saja, semakin panjang kunci maka semakin lama
pula waktu yang dibutuhkan computer untuk melakukan proses enkripsi. Oleh sebab itu,panjang kunci yang akan digunakan hendaknya memperhatikan dalam 3
hal, yakni seberapa penting data yang akan dirahasiakan, berapa lama waktu yang
dibutuhkan agar data tersebut tetap aman, dan berapa kuat kemampuan kriptanalis
dalam memecahkan teknik penyandian. Saat ini yang paling banyak dipakai
adalah kunci dengan panjang 128 bit karena panjang kunci ini dianggap paling
optimal untuk saat ini.
2.5.2.4 Proses Enkripsi Data.
Proses dari enkripsi Algoritma data 128 bit ini terdiri dari langkah-langkah
sebagai berikut :
1. Ambil blok data sebanyak 128 bit. Apabila dalam mengambil
blok data kurang dari 128 bit, maka perlu adanya penambahan
supaya dalam penggunaannya sesuai dengan jumlah datanya
atau dengan proses padding.
2. Blok data 128 bit dipermutasikan dengan Initial Permutation (IP).
3. Blok data 128 bit yang telah dipermutasikan tersebut dibagi
menjadi dua bagian, yaitu bit pertama disebut L[0] dan 32
bit kedua disebut R[0].
4. Ke-16 sub kunci dioperasikan dengan blok data, dimulai dari j=1
dan terbagi menjadi cara-cara berikut ini: R[j] = L[j-1] XOR
f(R[j-1], K[j])L[j] = R[j-1].
5. Permutasi akhir dilakukan kembali dengan tabel permutasi yang
2.5.2.5 Proses Dekripsi Data.
Proses dekripsi sama persis dengan proses enkripsi. Perbedaannya hanya terletak
pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi dan
subkey-nya di-inverse-kan.
Subkey pada langkah transformasi output pada proses enkripsi di-inverse -kan dan diguna-kan sebagai subkey pada putaran 1 pada proses dekripsi. Subkey
BAB III
METODOLOGI PENELITIAN
3.1. Pendahuluan.
Tujuan dari tesis ini adalah untuk mengetahui dan membuktikan kekuatan suatu
kunci simetris pada algoritma algoritma MARS melalui pendekatan perhitungan
matematis. MARS menggunakan prosedur ekspansi kunci untuk "memperluas"
kunci user-disediakan (terdiri dari kata-kata n 32-bit, dimana n adalah jumlah
apapun antara 4 dan 14) ke dalam array kunci K [ ] dari 40 kata-kata untuk
enkripsi / dekripsi operasi.
MARS cipher menggunakan berbagai operasi untuk menyediakan
kombinasi keamanan yang tinggi, kecepatan tinggi, dan pelaksanaan fleksibilitas.
Secara khusus, menggabungkan eksklusif-atau (xor), penambahan, pengurangan,
perkalian, dan baik tetap dan data-tergantung rotasi. MARS juga menggunakan
meja (S-box) tunggal 512 32-bit untuk memberikanbaik perlawanan terhadap
serangan linear dan diferensial, serta longsor yang baik data dan bit kunci. Ini
S-kotak juga digunakan oleh prosedur ekspansi kunci. Kadang-kadang S-box
dipandang sebagai dua tabel, masing-masing dari 256 entri, dilambangkan dengan
S0 dan S1.
Dalam desain dari kotak-S, kami menghasilkan masukan dalam sebuah
"mode pseudo acak" dan diuji bahwa S-box yang dihasilkan memiliki diferensial yang baik dan sifat linier. The MARS S-box ditunjukkan pada lampiran diakhir dari kertas. Pseudo-code pada Gambar 2.1 menunjukkan operasi enkripsi MARS secara rinci. Operasi digunakan dalam cipher diterapkan untuk kata-kata 32-bit,
yang dipandang sebagai unsigned integer.
Dalam code-pseudo kita gunakan sebagai berikutnotasi. Kami beri nomor bit dalam setiap kata dari 0 sampai 31, di mana bit 0 adalah yang paling signifikan
(atau terendah) bit, dan bit 31 adalah bit (atau tertinggi) yang paling signifikan.
Kami menyatakan dengan c + d Selain pengurangan modulo modulo oleh
cd 232, 232, dan dengan perkalian modulo c'd 232. Juga c <<< d dan c >>> d,
rotasi siklik menyatakan dari kata c 32-bit dengan posisi ke kiri dan
kanan,masing-masing.Operasi MARS dekripsi adalah kebalikan dari operasi
enkripsi dan kode untuk dekripsi serupa.
3.2. Lokasi dan waktu Penelitian.
Penelitian ini dilakukan di Medan dan penelitian dilakukan dengan mengambil
dari literatur yang ada di pustaka serta dari data yang ada di internet, dengan dukungan Jurnal, seminar yang dilakukan oleh peneliti lainnya. Adapun hal-hal
yang menjadi inti pembahasan yaitu:
1. Jenis Kunci publik yang menggunakan teori bilangan Mars menggunakan
Logaritma diskrit.
2. Design kunci publik berdasarkan kunci publik dengan perhitungan XOR.
3. Teori mathematic diskret yang memiliki peran sangat luas khususnya dalam permasalahan yang dapat dibawa kemodel permasalahan dalam
pembentukan kunci simetris, untuk itu di gunakan matriks dalam
membantu mengembangkan system kunci publik.
3.3. Konseb Pengembangan.
Penelitian menggunakan metode literatur untuk membuat konseb pengembangan matematika dengan hasil serta Kegiatan dan rancangan ini menggunakan
kumpulan data sebagai berikut:
1. Proses Pembentukan Kunci Simetris dengan proses XOR.
2. Proses Kode Kunci Simetris.
3. Design Kunci.
3.4. Prensentasi Data.
Input dan output dari algoritma Mars terdiri dari urutan data sebesar 128 bit. Urutan data yang sudah terbentuk dalam satu kelompok 128 bit tersebut
disebut juga sebagai blok data atau plaintext yang nantinya akan dienkripsi menjadi ciphertext. Cipher key dari MARS terdiri dari key dengan panjang 128 bit, 192 bit, atau 256 bit Urutan bit diberi nomor urut dari 0 sampai dengan
n-1 dimana n adalah nomor urutan.
Urutan data 8 bit secara berurutan disebut sebagai byte dimana byte
ini adalah unit dasar dari operasi yang akan dilakukan pada blok data. Dalam
algoritma MARS, data sepanjang 128 bit akan dibagi-bagi menjadi array byte dimana setiap array byte ini terdiri dari 8 bit data input yang saling berurutan. Arraybyte ini di fresentasi kan dalam bentuk :
a0a1a2...a15
Dimana:
a0 = { input0,input1,...,input7 }
a1 = { input8,input9,...,input15 }
a15 = { input120,input121,...,input127 }
BAB IV
HASIL DAN PEMBAHASAN
4.1 Pendahuluan
Cipher blok Symetric-key telah lama digunakan sebagai elemen kriptografi mendasar untuk memberikan keamanan informasi. Meskipun mereka terutama dirancang untuk menyediakan kerahasiaan data, fleksibilitas mereka memungkinkan mereka untuk melayani sebagai komponen utama dalam pembangunan sistem kriptografi banyak seperti pseudorandom nomor generator, protokol otentikasi pesan, cipher aliran, dan fungsi hash. Ada banyak symmetric-key cipher blok yang menawarkan berbagai tingkat keamanan, fleksibilitas, dan efisiensi.
Diantara banyak symetric key block cipher ada saat ini, beberapa (seperti DES, RC5, CAST, Blowfish, FeAl, aman, dan IDEA) telah menerima kepentingan praktis terbesar. Kebanyakan blok cipher symmetric-key (seperti DES, RC5, CAST, dan Blowfish) didasarkan pada jaringan "Feistel" membangun dan "fungsi bulat". Sebuah cipher Feistel melibatkan membagi plaintext menjadi dua bagian dan berulang-ulang menerapkan fungsi bulat untuk data untuk beberapa jumlah putaran, dimana pada setiap putaran menggunakan fungsi bulat dan kunci, kiri setengah ditransformasikan didasarkan pada bagian kanan dan kemudian kanan setengah ditransformasikan berdasarkan modifikasi kiri setengah.
data-dependent rotasi bit-bijaksana dan cipher beberapa lainnya (seperti IDEA) menggunakan multiplikasi dalam fungsi putaran mereka untuk difusi. Dalam tulisan ini, kami menyajikan blok cipher symmetric-key novel, yang disebut MARS, dengan ukuran blok 128 bit dan ukuran kunci variabel, mulai 128-448 bit. MARS cipher menggunakan berbagai operasi untuk menyediakan kombinasi keamanan yang tinggi, kecepatan tinggi, dan fleksibilitas implementasi.
Tema utama di balik rancangan MARS adalah untuk mendapatkan keamanan yang terbaik / tradeoff kinerja dengan memanfaatkan teknik yang terkuat saat ini tersedia untuk perancangan cipher blok. Sisa dari makalah ini diorganisasikan sebagai berikut. Kami menyajikan MARS yang meliputi gambaran enkripsi / dekripsi operasi dan key setup. Kinerja dan implementasi MARS dalam perangkat lunak dan hardware tidak dibahas . Dasar pemikiran di balik desain MARS disajikan dalam.Pembacaan sandi dari MARS dan ketahanan terhadap serangan linear dan diferensial dibahas dalam menyediakan beberapa kesimpulan.
4.2 Unit Kriptografi.
Unit kriptografi ini terbagi menjadi tiga bagian :
1. Unit Enkripsi. digunakan untuk mengkode data atau pesan asli
(plaintext) yang terdapat dalam text editor menjadi suatu bentuk data atau pesan (ciphertext). Pengguna dapat langsung mengenkripsi data atau pesan yang dalam bentuk file tersebut dengan cara memilih unit enkripsi file.
2. Unit Dekripsi.
3. Di Dalam Jaringan. Unit pengiriman file digunakan untuk
mengirim atau menerima suatu pesan yang telah dienkripsi atau didekripsi, dari satu komputer ke komputer lainnya. Hanya saja pengiriman file ini terbatas dalam ruang lingkup Local Area Network (LAN).
4.3 Ukuran Kunci Variabel.
Yang disediakan pengguna berkisar 4-14 kata (yaitu, 128-448 bit),mars menggunakan prosedur ekspansi kunci untuk "memperluas" kunci user-disediakan (terdiri dari kata-kata n 32 bit, dimana n adalah jumlah apapun antara 4 dan 14) ke dalam array kunci K [] dari 40 kata-kata untuk enkripsi / dekripsi operasi. MARS
cipher menggunakan berbagai operasi untuk menyediakan kombinasi keamanan yang tinggi, kecepatan tinggi, dan pelaksanaan fleksibilitas. Secara khusus, menggabungkan eksklusif atau (xor), penambahan, pengurangan, perkalian, dan baik tetap dan data-tergantung rotasi.
MARS juga menggunakan meja (S-box) tunggal 512 32-bit untuk memberikanbaik perlawanan terhadap serangan linear dan diferensial, serta longsor yang baik data dan bit kunci. Ini S-kotak juga digunakan oleh prosedur ekspansi kunci. Kadang-kadang S-box dipandang sebagai dua tabel, masing-masing dari 256 entri, dilambangkan dengan S0 dan S1. Dalam desain dari kotak-S, kami menghasilkan masukan dalam sebuah "mode pseudo acak" dan diuji bahwa S-box yang dihasilkan memiliki diferensial yang baik dan sifat linier. MARS S-box ditunjukkan pada lampiran diakhir dari kertas. Pseudo-code pada gambar menunjukkan operasi enkripsi MARS secara rinci. Operasi digunakan dalam cipher diterapkan untuk kata-kata 32-bit, yang dipandang sebagai unsigned
integer.