Metode Proses XOR Dalam Pembentukan Kunci Simetris Pada Algoritma MARS

(1)

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


(2)

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


(3)

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

MARIADI NIM : 097038023


(4)

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

MARIADI NIM : 097038023


(5)

Telah di uji pada

Tanggal : 24 juni 2011

Panitia Penguji Tesis

Ketua : Prof. Dr . Muhammad Zarlis Anggota : 1. Prof . Dr . Herman Mawengkang

2. Dr. Poltak Sihombing 3. Syahril Effendi, SSi.MIT


(6)

RIWAYAT HIDUP

DATA PRIBADI

Nama Lengkap : Mariadi, ST

Tempat / Tanggal Lahir : Medan , 17 September 1973

Alamat : Jln. Gaharu No.188, Binjai

Telepon : 081362161700

Email

DATA PENDIDIKAN

SD NEGERI : Tamat 1986

SMP NEGERI 20 : Tamat 1989

SMA SWASTA : Tamat 1992


(7)

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.

MARIADI NIM : 097038023


(8)

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


(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

2.5.2.4 Proses Enkripsi Data 33 2.5.2.5 Proses Dekripsi Data 34


(10)

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


(11)

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


(12)

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


(13)

METODE PROSES XOR DALAM PEMBENTUKAN KUNCI SIMETRIS PADA ALGORITMA MARS

ABSTRAK

Penelitian ini membahas tentang algoritma enkripsi cipher block 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 cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritma 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 block-block bit dapat ditulis dalam sejumlah cara bergantung pada panjang block


(14)

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.


(15)

METODE PROSES XOR DALAM PEMBENTUKAN KUNCI SIMETRIS PADA ALGORITMA MARS

ABSTRAK

Penelitian ini membahas tentang algoritma enkripsi cipher block 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 cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritma 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 block-block bit dapat ditulis dalam sejumlah cara bergantung pada panjang block


(16)

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.


(17)

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 diberi nama AES (Advanced Encryption Standard). Persyaratan yang ditentukan


(18)

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


(19)

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


(20)

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) aa = 0

(ii) ab = ba

(iii) a⊕ (bc) = (ab) ⊕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 0 1 0 1 0


(21)

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 suatu algoritma guna untuk memaksimalkan system keamanan data.


(22)

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 pendidikan


(23)

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 disampaikan.


(24)

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 data.


(25)

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), maka 6% dari byte akan sama. Jika tidak maka 0.4% akan sama.


(26)

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 dengan satu bit kunci.

ci = (pi + ki) mod 2

Yang dalam hal ini : pi : bit plainteks ki : bit kunci ci : bit cipherteks.


(27)

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 aman, identifikasi, otentikasi, dan secret sharing. Aplikasi yang lebih rumit seperti sistem untuk electronic commerce (e-commerce), sertifikasi, electronic


(28)

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 dikenal dengan assymmetric cryptosystem, pihak pengirim maupun pihak penerima mendapatkan sepasang kunci yang disebut dengan kunci publik (public


(29)

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 blok plainteks). Algoritma enkripsi menghasilkan blok cipherteks yang


(30)

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

plainteks berdasarkan aturan tertentu, biasanya dinyatakan dengan tabel.


(31)

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.


(32)

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


(33)

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 rahasia (yang hanya dapat digunakan satu kali) dianggap rahasia sepanjang pesan


(34)

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 : ( X6+X4+X2+X+1) = X7+X6+X4+X2 ini adalah notasi dari polynomial,


(35)

{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 pergerakan rotasi ke kiri, untuk r -function adalah 5 dan 13 posisi


(36)

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 melakukan dekripsi.


(37)

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 penyandian blok karena kebanyakan proses pengiriman data pada saat ini


(38)

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.


(39)

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


(40)

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 untuk menggagalkan (sebelum diketahui) serangan.


(41)

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 Coredan “ 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 word data dari plaintext, dan kemudian dilakukan delapan iterasi mixing tipe-3 feistel network (dalam forward mode), dikombinasikan dengan operasi mixing tambahan.


(42)

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

word data sebagai output dengan notasi L, M dan K. Dalam setiap iterasi digunakan satu word data sebagai input untuk E-function dan ketiga output word data dari P - Function ditambahkan atau di-XOR-kan ke ketiga word data yang lam. Kemudian Source word dirotasikan sebanyak 13 posisi ke kiri . Ketiga output dari E-function digunakan dengan cara yang berbeda dalam delapan iterasi pertama dibandingkan dengan delapan iterasi


(43)

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 pada forward mixing, pada backward mixing juga digunakan sebuah source word untuk memodifikasi tiga target word.


(44)

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 kekiri. Untuk T(0), S box[9 bit terendah dari T[39] ditambahkan dengan T[0] dan


(45)

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 benar. Dan bila menggunakan kunci 64 bit, maka dengan super computer


(46)

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 merupakaninvers dari permutasi awal. Lihat pada gambar 2. 4.


(47)

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

pada putaran 8 di-inverse-kan dan digunakan sebagai subkey pada putaran 1 dan 2 pada proses dekripsi, demikian seterusnya.


(48)

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. kita menyatakan cad sebuah bitwise eksklusif atau dua kata c dan d.


(49)

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.


(50)

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 }


(51)

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.

Fungsi bulat menyediakan mekanisme enkripsi dasar oleh beberapa menyusun sederhana linier dan nonlinier operasi seperti eksklusif - atau permutasi, substitusi, dan aritmatika modular putaran fungsi yang berbeda memberikan berbagai tingkat keamanan, efisiensi, dan fleksibilitas. Kekuatan dari Feistel cipher sangat bergantung pada tingkat difusi dan sifat non-linearitas yang disediakan oleh fungsi putaran. Banyak cipher (seperti DES dan Cast) dasar putaran fungsi pada suatu konstruksi disebut "substitusi kotak" (s-box) sebagai sumber difusi dan non-linearitas. Beberapa cipher (seperti RC5) menggunakan


(52)

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.

Digunakan untuk mengembalikan ciphertext,yang terdapat dalam text editor, menjadi plaintext. Sama seperti unit enkripsi, dekripsi juga menyediakan unit dekripsi file bagi pengguna mengenkripsi.


(53)

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.

Dalam kode - pseudo kita gunakan sebagai berikut notasi. Kami nomori 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. Kita menyatakan cad sebuah bitwise eksklusif - atau dua kata c dan d. Kami menyatakan dengan c + d.


(54)

Selain pengurangan modulo modulo oleh cd 232, 232, dan dengan perkalian modulo c' d 232. Juga, c <<< d dan c >>> d, rotasi menyatakan dari kata c 32 bit dengan diposisi kekiri dan kanan, masing-masing. Operasi MARS dekripsi adalah kebalikan dari operasi enkripsi dan kode untuk dekripsi serupa. "Teruskan Mixing"

8 putaran "maju pencampuran" "Mencampur Backwards"

8 putaran "Backwards pencampuran" "Cryptographic Core"

16 putaran transformasi D C B A

'C' D B 'A'

Plaintext: empat kata 32-bit Ciphertext: empat kata 32-bit

4.4 Ekspansi Kunci MARS.

Prosedur ekspansi memperluas MARS kunci tombol yang disediakan pengguna berkisar 4-14 kata-kata menjadi sebuah kata kunci 40 S-box yang berdasarkan mengaduk-kata kunci. Memodifikasi perkalian kata kunci.

k [0] k [1] k [n-1] K [0] K [1] K [39] n kata kunci awal 32-bit Empat puluh kata kunci 32-bit Linear kata kunci ekspansi

Gambar 3: perluasan prosedur Kunci MARS / / Forward Mixing

(A, B, C, D) = (A, B, C, D) + (K [0], K [1], K [2], K [3]) Untuk i = 0 sampai dengan 7


(55)

C = C + S0 [A >>> 16] D = D Å S1 [A >>> 24]

A = ( > A >> 24) + B (jika i = 1,5) + D (jika i = 0,4) (A, B, C, D) = (B, C, D, A)

}

/ Core / Kriptografi

Untuk i = 0 sampai 15 lakukan { R = ((<A <<13 K) '[2i +5]) <<<10

M = (A + K [2i +4]) <<<(rendah 5 bit (R>>> 5)) L = (S [M] A (R>>> 5) A R) <<<(rendah 5 bit dari R) B = B + L (jika i <8) A R (jika i 8)

C = C + M

D = D A R (jika i < 8) + L (jika i 8) (A, B, C, D) = (B, C, D, A <<< 13) }

/ / Backwards Mixing

Untuk i = 0 sampai dengan 7 melakukan { A = A - B (jika i = 3,7) - D (jika i = 2,6) B = B Å S1 [A]

C = C - S0 [A <<<8]

D = (D - S1 [A <<<16]) A S0 [A <<<24] (A, B, C, D) = (B, C, D, A <<<24) }

(A, B, C, D) = (A, B, C, D) - (K [36], K [37], K [38], K [39]) CATATAN: S0 [X] dan rendah S1 [X] menggunakan 8 bit X. S [X] menggunakan 9 bit rendah dari X.

S adalah Rangkaian S0 dan S1.

Untuk digunakan dalam enkripsi / dekripsi operasi. Prosedur key expansion terdiri dari tiga langkah . Langkah pertama adalah "ekspansi linear" yang mengembang kunci yang disediakan pengguna asli untuk kata-kata 32-bit


(56)

empat puluh menggunakan sederhana transformasi linier. Langkah kedua adalah " S-box kunci berdasarkan campuran " yang bergerak kunci diperluas menggunakan tujuh putaran dari jaringan-1 tipe, Feistel untuk menghancurkan hubungan linear pada kunci.

Kemudian perkalian " kata kunci memodifikasi " langkah meneliti kata kunci yang digunakan dalam MARS enkripsi / dekripsi untuk operasi perkalian dan mengubah mereka jika diperlukan. Pseudo-code menunjukkan pengoperasian perluasan kunci MARS secara rinci. Dalam pseudo-code , menunjukkan bitwise-dan dari dua kata c bitwise-dan d.

4.5 Perluasan Kunci.

Perluasan kunci berfungsi untuk membangkitkan sub kunci dari kunci yang diberikan oleh pemakai yaitu array k[ ] yang terdiri dari n 32-bit word (dimana n adalah jumlah words dari 4 sampai 14) ke dalam array K[] sebanyak 40 words.

MARS menerima satu blok key awal sebesar 128 bit untuk mendapatkan keylain yang digunakan dalam proses enkripsi dan dekripsi. Untuk panjang kunci yangkurang dari 128, maka dilakukan padding bits yaitu prosepenambahan untuk menambahkan satu dan sisanya ditambahkan dengan nol sampai mencapai panjang kunci yang seharusnya. Key expansion menyediakan 40 words key (K[0]…K[39]) yang terdiri dari 32-bit. Empat kunci pertama digunakan untuk proses forward mixing dan empat kunci terakhir digunakan pada proses backwards mixing.

4.6 Hasil Proses Pembentukan Kunci.

Pada bagian ini, kunci yang dimasukkan pengguna akan diolah menjadi 40 words yang akan digunakan pada algoritma MARS. Tahap pertama, kunci awal ini dipisahkan menjadi 4 bagian @ 32 bit.

Misalkan kuncinya : ABCDEFGHIJKLMNOP

k[0]= ABCD (01000001 01000010 01000011 01000100) k[1]= EFGH (01000101 01000110 01000111 01001000)


(57)

k[2]= IJKL (01001001 01001010 01001011 01001100) k[3]= MNOP (01001101 01001110 01001111 01010000)

Lalu inisialisasi T[ ] dengan kunci data, dimana T[ ] adalah array sementara yang terdiri dari 15 words dan n adalah jumlah words di kunci buffer k[ ], (4 ≤ n ≤ 14)

Misalkan n = 4

T[0…n - 1] = k[0…n - 1], T[n] = n, T[n + 1…14]= 0 T[0…3] = k[0…3], T[4] = 4, T[5…14] = 0

//Empat iterasi, menghitung 10 words untuk tiap K[ ]

for i = 0 to 14 do // Transformasi Linear T[i] = ((T[i-7 mod 15] ⊕ T[i-2 mod 15])<<< 3) ⊕ (4i + j) Untuk i = 0 to 14 dan j = 0

T[0] = ((T[0-7 mod 15] ⊕T[0-2 mod 15]) <<< 3) ⊕ (4.0 + 0) = ((T[7] T[2] ) <<< 3) ⊕ 0 = ((0 ⊕ k[2])<<< 3) ⊕ 0 = ((00000000 00000000 00000000 00000000 ⊕ 01001001 01001010 01001011 01001100)<<< 3) ⊕ 0 = ((01001001 01001010 01001011 01001100) <<< 3 ) ⊕ 0 = (10001001 00101001 01001001 01101001) ⊕ 0 = 10001001 00101001 01001001 01101001

T[1] = ((T[1-7 mod 15] ⊕ T[1-2 mod 15]) <<< 3) ⊕ (4.1 + 0) = ((T[6] ⊕ T[1])<<< 3) ⊕ 4 = ((0 ⊕ k[1]) <<< 3) ⊕ 4 = ((00000000 00000000 00000000 00000000 ⊕ 01000101 01000110 01000111 01001000)<<< 3) ⊕ 4 = ((01000101 01000110 01000111 01001000)<<< 3) ⊕ 4 = (00001000 10101000 11001000 11101001) ⊕ 00000000 0000000000000000 00000100 = 00001000 10101000 11001000 11101101

T[2] = ((T[2-7 mod 15] ⊕T[2-2 mod 15])<<< 3) ⊕ (4.2 + 0) = ((T[5] ⊕ T[0])<<< 3) ⊕ 8 = ((0 ⊕ k[0])<<< 3) ⊕ 8 = ((00000000 00000000 00000000 00000000 ⊕ 01000001 01000010 01000011 01000100)<<< 3) ⊕ 8 = ((01000001 01000010 01000011 01000100) <<< 3) ⊕ 8 = (10001000 00101000 01001000 01101000) ⊕ 00000000 0000000000000000 00001000 = 10001000 00101000 01001000 01100000


(58)

T[3] = ((T[3-7 mod 15] ⊕ T [3-2 mod 15]) <<< 3) ⊕ (4.3 + 0) = ((T[4] ⊕T[1]) <<< 3) ⊕ 12 = ((4 ⊕ k[1]) <<< 3 ) ⊕ 12 = ((00000000 00000000 00000000 00000100 ⊕ 01000101 01000110 01000111 01001000)<<< 3) ⊕ 12 = ((01000101 01000110 01000111 01001100) <<< 3) ⊕ 12 = (10001000 10101000 11001000 11101001) ⊕ 00000000 0000000000000000 00001100 = 10001000 10101000 11001000 11100100

Untuk i dari 4 sampai dengan 14 dan j dari 1 sampai dengan 3 dilakukan dengan cara yang sama untuk mendapatkan T[ ] sebanyak 15 words. Setelah itu dilakukan empat pengulangan lagi untuk mendapatkan T[i] baru.

For i = 0 to 14 do

T[i] =(T[i] + S[low 9 bits of T[i - 1 mod 15]]) <<< 9 Dimulai dari i = 0

T[0] =(T[0] + S[low 9 bits of T[0 - 1 mod 15]]) <<< 9 = (10001001 00101001 01001001 01101001 + S[low 9 bits of T[1]]) <<< 9 = (100 01001 00101001 01001001 01101001 + S[361]) <<< 9 = (10001001 00101001 01001001 01101001 + 0x000399bd) <<< 9 = (10001001 00101001 01001001 01101001 + 00000000000000111001100110111101) <<< 9 = 10001001 00101100 11100011 00100110 <<< 9 = 10010011 01000100 10010110 01110001

T[1] =(T[1] + S[low 9 bits of T[1 - 1 mod 15]])<<< 9 = ( 00001000 10101000 11001000 11101101 + S[low 9 bits of T[0]]) <<< 9 = ( 00001000 10101000 11001000 11101101 + S[361]) <<< 9 = (00001000 10101000 11001000 11101101 + 0x000399bd) <<< 9 = (00001000 10101000 11001000 11101101 + 00000000 00000011 10011001 10111101) <<< 9 = 00001000 10101100 01100010 10101010 <<< 9 = 01010101 00000100 01010110 00110001

T[2] =(T[2] + S[low 9 bits of T[2 - 1 mod 15]])<<< 9 =(10001000 00101000 01001000 01100000 + S[low 9 bits of T[1]]) <<< 9=(10001000 00101000 01001000 01100000 + S[361]) <<< 9 =(10001000 00101000 01001000 01100000


(1)

K[30] = T[0] K[31] = T[4] K[32] = T[8] K[33] = T[12] K[34] = T[1] K[35] = T[5] K[36] = T[9] K[37] = T[13] K[38] = T[2] K[39] = T[6]

Dari semua kunci K[0] sampai dengan K[39] digunakan dalam proses enkripsi dekripsi algoritma MARS yang terdiri dari tahap forward mixing, transformasi kunci utama dan backward mixing.


(2)

BAB V

KESIMPULAN DAN SARAN

5.1 KESIMPULAN.

Tesis ini dapat disimpulkan secara keseluruhan dari Penjelasan yang dibahas diatas :

1. Perancangan atau Pembentukan kunci simetris dengan metode XOR dan pendekatan matematika pada kriptografi dengan menggunakan algoritma MARS .

2. MARS ini dapat memberikan keamanan data atau informasi baik pada saat disimpam pada komputer maupun saat ditransmisikan dalam jaringan komputer.

3. Data yang diproses dapat dipercaya kerahasiaannya karena telah diacak menggunakan iterasi sebanyak 32 ronde dan masing-masing ronde mengalami fungsi feistel, fungsi E dan S-box dengan panjang kunci 128 bit.

5.2 SARAN.

Saran penulis dengan hasil tesis ini adalah antara lain :

1. Perlunya pendalaman dibidang matematika diskret dalam proses pengolahan bentuk kunci sehingga dapat dihasilkan secara maksimal 2. Perlunya diadakan pengembangan secara matematika tentang proses

pembentukan kunci baik simetris maupun asimetris secara bertahap sehingga menjadi kontribusi bagi ilmu pengetahuan khususnya dibidang ilmu Crytographi dalam Computer science.


(3)

3. Dengan sering diadakan pendekatan pendekatan secara matematika dalam proses pembentukan kunci, maka tingkat kelemahan dari suatau kunci akan lebih mudah diketahui.


(4)

DAFTAR PUSTAKA.

ANDI, Thn 2003 , Memahami Model Enkripsi dan Decuryti Data, Yogyakarta : Wahana Computer,

Alfred Menezes, Thn 1997, “ Handbook of Applied Cryptography “. CRC

Press,

B. Schneier,Thn 1996, John Wiley & Sons " Applied Cryptografi," edisi 2, John Wiley & Sons Inc,

B. Schneier, Thn 2004 "Algoritma Enkripsi Blowfish," Dobb's Journal, Vol. 19, No 4, Halaman 38-40,

B. Schneier,Thn 1990, "Algoritma Enkripsi IDEA," Dr Dobb's Journal, Vol. 18, No 13, Halaman 50-56,

E-Book Ilmu Komputer, Thn 1994 vol. . 765, T. Helleseth ed, Springer-Verlag, halaman 386-397,

CM Adams, Thn 1997, "Membangun cipher Symmetric Menggunakan Prosedur Desain CAST," Design, Kode, dan Kriptografi, Vol. 12, No 3, Halaman 283-316,

CNSS Kebijakan Nomor 15, Thn 2003 Lembar Fakta No 1 CNSS

Sekretariat ( I42) National Security Agency. 9800 Savage Road STE 6716. Ft Meade MD

E. Biham dan A. Shamir,Thn 1993 " Kriptanalisis Diferensial Standar Enkripsi Data", Springer- Verlag.


(5)

Israel, AB., and Greville, T.N.E., 1974, Generalized Inverses :Theory and Applications, p : 1-14, Jhon Wiley & Sons, New York.

J Menezes, Thn. 1996. PC van Oorschot, dan SA Vanstone, "Handbook of Applied Cryptography," CRC Press, 1996

MacWilliams, F.J., and Sloane, N.J.A., Thn 1993, The Theory of Error Correcting Codes, Eight Impression, p: 231-232, North - Holland Mathematical

M. Matsui, Thn. 1993, "Linear kriptanalisis metode untuk cipher DES ", Kemajuan Kriptologi, EUROCRYPT .

Rivest RL, Januari 1995. "Algoritma Enkripsi RC5," Dobb's Journal, Vol. 20, No 1, Halaman 146-148.

Shao, Z. Thn 1998, “ Signature Schemes Based on Factoring and Discrete Logarithms “ dalam IEE Proceedings Computer Digit. Tech. Vol 145 No. , p: 33 – 36.

Stinson, 1995, Crytography Theory and Practice, p : 114 -198, CRC pres LLC, Florida

Patterson, W., 1987, Mathematical Cryptologi for Computer Scientists and Mathematicians, p: 37-60, Rowman & Littlefield Publisher, New Jersey. Rivest RL, Januari 1995 "Algoritma Enkripsi RC5," Dr Dobb's Journal, Vol. 20, No

1, Halaman 146-148.

R.Johannes Buchman A. Thn. 13 Juli 2004. Judul: Pengantar Kriptografi Pengarang: Publisher: Springer; 2 edisi.

Wu, C.K., and Dawson, E., 1998, “ Generalised Invers in Public key Cryptosystem Design “ dalam IEE Proceedings Computer Digit. Tech. Vol. 145 No. 5,


(6)

Tumpal Pandiangan, Suwoto, Zuhair, Ferhat Aziz, “ Tahun 2005. “ Jurnal Dan Risalah Komputasi tentang Sains “ Keamanan Data yang bersifat Rahasia “ . Xinmiao Zhang; Parhi, Thn. 2004. VLSI kecepatan tinggi arsitektur untuk

algoritma AES. K.K.; Sangat Integrasi Skala Besar (VLSI) Systems Volume 12, Issue 9, Page (s): 957-96

Xu Chi-Feng, Yan-Shun Kao; Chiang Hsia-Ling; Yang Chung-Huang Thn. 2003 Pelaksanaan Cepat algoritma kriptografi AES pada smart card Keamanan Teknologi, 14-16 Page (s): 573-579

Qs, Adams, Thn, 1997. "Membangun cipher Symmetric Menggunakan Prosedur Desain CAST," Design, Kode, dan Kriptografi, Vol. 12, No 3, Halaman 283-316,

XM. Naor dan Reingold O., Thn. 1997. "Pada Konstruksi Permutasi PseudRandom Luby-Rackoff Revisited", Proceedings of the 29'th ACM SimposiumTeori