1. Pendahuluan. 2. Tinjauan Pustaka

dokumen-dokumen yang mirip
PENGGUNAAN DETERMINAN POLINOMIAL MATRIKS DALAM MODIFIKASI KRIPTOGRAFI HILL CHIPER

MODIFIKASI KRIPTOGRAFI HILL CIPHER MENGGUNAKAN CONVERT BETWEEN BASE

Proses enkripsi disetiap putarannya menggunakan fungsi linear yang memiliki bentuk umum seperti berikut : ( ) ( ) (3) ( ) ( ) ( )

Bab 4 Analisis dan Pembahasan

PEMBANGKIT KUNCI LINEAR FEEDBACK SHIFT REGISTER PADA ALGORITMA HILL CIPHER YANG DIMODIFIKASI MENGGUNAKAN CONVERT BETWEEN BASE

Penggunaan Fungsi Rasional, Logaritma Kuadrat, dan Polinomial Orde-5 dalam Modifikasi Kriptografi Caesar Cipher

STUDI DAN PERBANDINGAN PERFORMANSI ALGORITMA SIMETRI VIGENERE CHIPPER BINNER DAN HILL CHIPPER BINNER Ivan Nugraha NIM :

PERANCANGAN KRIPTOGRAFI KUNCI SIMETRIS MENGGUNAKAN FUNGSI BESSEL DAN FUNGSI LEGENDRE

Perancangan Inisial Permutasi dengan Prinsip Lotre dalam Menahan Kriptanalisis Known Plaintext Attack (KPA) pada Kriptografi Hill Cipher

Hill Cipher & Vigenere Cipher

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Artikel Ilmiah. Diajukan Kepada Fakultas Teknologi Informasi Untuk Memperoleh Gelar Sarjana Komputer

Studi dan Analisis Mengenai Aplikasi Matriks dalam Kriptografi Hill Cipher

Aplikasi Aljabar Lanjar untuk Penyelesaian Persoalan Kriptografi dengan Hill Cipher

Aplikasi Perkalian dan Invers Matriks dalam Kriptografi Hill Cipher

BAB 2 TINJAUAN PUSTAKA

IMPLEMENTASI HILL CIPHER PADA CITRA MENGGUNAKAN KOEFISIEN BINOMIAL SEBAGAI MATRIKS KUNCI

Perancangan Kriptografi Block Cipher 256 Bit Berbasis pada Pola Tuangan Air Artikel Ilmiah

KRIPTOGRAFI HILL CIPHER DENGAN MENGGUNAKAN OPERASI MATRIKS

Perancangan Kriptografi Block Cipher Berbasis pada Teknik Tanam Padi dan Bajak Sawah

General Discussion. Bab 4

Disusun oleh: Ir. Rinaldi Munir, M.T.

Perancangan Kriptografi Block Cipher 256 Bit Berbasis Pola Tarian Liong (Naga) Artikel Ilmiah

Perancangan dan Implementasi Algoritma Kriptografi Block Cipher

Kriptografi Simetris Dengan Kombinasi Hill cipher Dan Affine Cipher Di Dalam Matriks Cipher Transposisi Dengan Menerapkan Pola Alur Bajak Sawah

BAB I PENDAHULUAN 1.1. LATAR BELAKANG

TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER (Rivalri Kristianto Hondro, M.Kom.) NIDN:

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

Perancangan Kriptografi Block Cipher Berbasis pada Alur Clamshell s Growth Rings

Modifikasi Nihilist Chiper

Pemenuhan Prinsip Iterated Cipher (Suatu Tinjauan Analisis dan Modifikasi Pada Kriptografi Block Cipher Dengan Pola Teknik Burung Terbang)

Transformasi Linier dalam Metode Enkripsi Hill- Cipher

BAB III PENYANDIAN ONE TIME PAD MENGGUNAKAN SANDI VIGENERE

Perancangan Algoritma Message Authentication Code (MAC) Dengan Pendekatan Kriptografi Block Cipher Berbasis 256 Bit Pada Pola Papan Dart

Penggunaan Transformasi Matriks dalam Enkripsi dan Dekripsi

PROGRAM APLIKASI KRIPTOGRAFI PENYANDIAN ONE TIME PAD MENGGUNAKAN SANDI VIGENERE

Modifikasi Teknik Kriptografi Hill Cipher Menggunakan Fungsi Rasional dan Konversi Basis Bilangan pada Proses Enkripsi- Dekripsi

REGENERASI FUNGSI POLINOMIAL DALAM RANCANGAN ALGORITMA BERBASIS CSPRNG CHAOS SEBAGAI PEMBANGKIT KUNCI PADA KRIPTOGRAFI BLOCK CIPHER.

Perancangan Kriptografi Block Cipher Berbasis Pada Teknik Lipat Amplop dan Linear Congruential Generator (LCG) Artikel Ilmiah

Modifikasi Kriptografi One Time Pad (OTP) Menggunakan Padding Dinamis dalam Pengamanan Data File

PENGGUNAAN METODE HILL CIPHER UNTUK KRIPTOGRAFI PADA CITRA DIGITAL. Muhammad Rizal 1), Afdal 2)

Bab 1 Pendahuluan 1.1 Latar Belakang

1. Pendahuluan. 2. Tinjauan Pustaka

Kombinasi Algoritma Rubik, CSPRNG Chaos, dan S-Box Fungsi Linier dalam Perancangan Kriptografi Block Cipher

Teknik Kriptografi Hill Cipher Menggunakan Matriks

Latar Belakang Masalah Landasan Teori

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

IMPLEMENTASI SANDI HILL UNTUK PENYANDIAN CITRA

Rancangan Kriptografi Block Cipher 128-bit Menggunakan Pola Lantai dan Gerakan Tangan Tarian Ja i

BAB II TINJAUAN PUSTAKA

Vigènere Cipher dengan Pembangkitan Kunci Menggunakan Bilangan Euler

ISSN: X 151 PENERAPAN MATRIKS PERSEGI PANJANG SEBAGAI KUNCI PUBLIK DAN KUNCI PRIVAT PADA MODIFIKASI CIPHER HILL

Perancangan Kriptografi Block Cipher 64 Bit Berbasis pada Pola Terasering Artikel Ilmiah

Desain dan Implementasi Efisiensi Bit Cipherteks: Suatu Pendekatan Komparasi Algoritma Huffman dan Rancangan Cipher Block

PERANCANGAN APLIKASI KERAHASIAAN PESAN DENGAN ALGORITMA HILL CIPHER

Penerapan Matriks dalam Kriptografi Hill Cipher

Tomy Satria Alasi Facebook/tomy.satria.alasi Ilmutomy.blogspot.com Ilmutomy.wordpress.com

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

SUATU ALGORITMA KRIPTOGRAFI STREAM CIPHER BERDASARKAN FUNGSI CHAOS

BAB I PENDAHULUAN. 1.1 Latar Belakang

Analisis dan Modifikasi pada Kriptografi Block Cipher dengan Pola Motif Kain Tenun Timor Guna Pemenuhan Prinsip Iterated Block Cipher.

Pemenuhan Prinsip Shannon

Dampak S-Box AES Terhadap Perancangan Kriptografi Simetris Berbasis Pola Teknik Putaran Kincir Angin Artikel Ilmiah

Modifikasi Pergeseran Bujur Sangkar Vigenere Berdasarkan Susunan Huruf dan Angka pada Keypad Telepon Genggam

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

PERANCANGAN ALGORITMA KRIPTOGRAFI KUNCI SIMETRI DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN

IMPLEMENTASI ALGORITMA HILL CIPHER DALAM PENYANDIAN DATA

Bab 2: Kriptografi. Landasan Matematika. Fungsi

BAB III ANALISA DAN PERANCANGAN

Algoritma Kriptografi Modern (Bagian 2)

AFFINE-HILL-LU CIPHER WITH MATLAB IMPLEMENTATION

Protokol Perjanjian Kunci Berdasarkan Masalah Konjugasi Pada Matriks Atas Lapangan Hingga

A-2 Sistem Kriptografi Stream Cipher Berbasis Fungsi Chaos Circle Map dengan Pertukaran Kunci Stickel

ENKRIPSI DAN DEKRIPSI DATA DENGAN ALGORITMA 3 DES (TRIPLE DATA ENCRYPTION STANDARD)

Suatu Algoritma Kriptografi Simetris Berdasarkan Jaringan Substitusi-Permutasi Dan Fungsi Affine Atas Ring Komutatif Z n

BAB III ANALISIS DAN DESAIN SISTEM

STUDI MODEL KRIPTOGRAFI KLASIK (Review)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI. bilangan bulat dan mengandung berbagai masalah terbuka yang dapat dimengerti

Modifikasi Ceasar Cipher menjadi Cipher Abjad-Majemuk dan Menambahkan Kunci berupa Barisan Bilangan

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

ANALISIS KOMBINASI METODE CAESAR CIPHER, VERNAM CIPHER, DAN HILL CIPHER DALAM PROSES KRIPTOGRAFI

Beberapa Algoritma Kriptografi Klasik. Haida Dafitri, ST, M.Kom

Teknik Konversi Berbagai Jenis Arsip ke Dalam bentuk Teks Terenkripsi

BAB 2 LANDASAN TEORI

APLIKASI KRIPTOGRAFI KOMPOSISI ONE TIME PAD CIPHER DAN AFFINE CIPHER

Perancangan Kriptografi Block Cipher Berbasis pada Pola Gender Pria Menggunakan Permutation Box (P-Box) Artikel Ilmiah

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

Perancangan dan Implementasi Kriptografi Menggunakan Algoritma CryptMT Pada Data Citra Artikel Ilmiah

BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM. KriptoSMS akan mengenkripsi pesan yang akan dikirim menjadi ciphertext dan

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

Tipe dan Mode Algoritma Simetri (Bagian 2)

Bab 2 Tinjauan Pustaka

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

Pengaruh Perubahan Ciphertext Terhadap Perancangan Kriptografi Block Cipher 64 Bit Berbasis Pola Ikatan Jimbe Dengan Menggunakan Kombinasi S-Box

BAB I PENDAHULUAN. Pada era teknologi informasi yang semakin berkembang, pengiriman data

Transkripsi:

1. Pendahuluan Aspek keamanan merupakan salah satu faktor penting dalam proses pengiriman data. Dalam proses pengiriman data, data dapat saja diubah, disisipkan atau dihilangkan oleh orang yang tidak bertanggungjawab. Untuk melindungi data dari orang yang tidak bertanggungjawab atau lebih dikenal dengan istilah hacker, dikembangkan salah satu cabang ilmu yaitu kriptografi. Salah satu kriptografi yang sering digunakan yaitu Hill Cipher yang dibuat oleh Lester S. Hill pada tahun 1929. Sistem yang digunakan yaitu polialfabetik menggunakan 26 huruf dalam bahasa inggris, yang berkorespondensi dengan angka 0 sampai 25 [1]. Kelemahan kriptografi Hill Cipher yaitu algoritma yang hanya bisa bekerja pada 26 karakter alfabet. Selain itu, jumlah karakter cipherteks sama dengan jumlah karakter plainteks dan juga cipherteks yang dihasilkan hanya dalam karakter abjad, sehingga mudah bagi kriptanalis untuk memecahkannya. Kriptanalis yang telah memecahkan kriptografi Hill Cipher yaitu known-plaintext attack dengan teknik perkalian linear dan perkalian matriks [2]. Beranjak dari permasalahan di atas, dilakukan penelitian yang memodifikasi Hill Cipher menggunakan fungsi linear yang berguna sebagai putaran dan fungsi Anger yang digunakan sebagai kunci pembangkit. Kunci matriks didapatkan dari hasil kali matriks utama dengan kunci pembangkit ataupun dengan nilai tertentu. Dalam penelitian ini terdapat 3 putaran dimana setiap putarannya terdapat 6 proses. Pada setiap proses, fungsi linear yang digunakan berbeda-beda karena setiap konstanta dibangkitkan dari fungsi Anger ataupun dengan kunci yang sudah dibangkitkan untuk proses enkripsi melalui perhitungan matematis (kali, bagi, jumlah, kurang) dengan nilai tertentu. 2. Tinjauan Pustaka Penelitian sebelumnya yang berjudul Variable-length Hill Cipher with MDS Key Matrix menjelaskan bahwa untuk mengatasi serangan kriptografi Hill Cipher dari kriptanalis known-plaintext attack yaitu dengan melakukan proses enkripsi terlebih dahulu terhadap matriks kunci yang digunakan dengan menggunakan matriks kunci Maximum Distance Separable (MDS). Hasil dari penelitian ini yaitu dapat mencegah kriptanalis known-plaintext attack dan ciphertext only attack dengan cara mengubah kunci matriks secara dinamis. Tetapi kekurangan dari penelitian ini yaitu kurang efisien yang disebabkan penggunaan operasi matriks yang banyak [3]. Penelitian selanjutnya yaitu Modifikasi Kriptografi Hill Cipher Menggunakan Convert Between Base menjelaskan bahwa modifikasi tersebut bisa mengatasi berbagai permasalahan dari kriptografi Hill Cipher dengan cara mengkonversi bilangan plainteks dari suatu basis terpilih ke basis terpilih lainnya, kemudian hasil tersebut diubah ke dalam bentuk vektor dan dikalikan dengan matriks kunci, langkah tersebut diulang sampai dengan 10 kali. Cipherteks dihasilkan dari hasil akhir putaran yang kemudian dikonversi ke dalam suatu basis terpilih, sehingga menghasilkan cipherteks dalam bentuk bit biner [4]. 1

Penelitian yang berjudul Modifikasi Teknik Kriptografi Hill Cipher Menggunakan Fungsi Rasional dan Konversi Basis Bilangan pada Proses Enkripsi-Dekripsi, menjelaskan bahwa modifikasi yang dilakukan untuk mengatasi permasalahan kriptografi Hill Cipher yaitu dengan memanfaatkan fungsi rasional sebagai putarannya dan sebuah nilai yang digunakan untuk kunci pada proses konversi basis bilangan, sumlah cipherteks yang dihasilkan lebih banyak dibandingkan dengan plainteks. Selain itu bentuk dari cipherteks merupakan bilangan 0 dan 1 sehingga sulit bagi kriptanalis untuk memecahkannya [5]. Penelitian terdahulu tersebut menjadi acuan untuk membuat modifikasi kriptografi Hill Cipher. Perbedaan perancangan kriptografi ini dari modifikasi terdahulu terletak pada penggunaan fungsi yang digunakan yaitu fungsi Anger sebagai pembangkit kunci enkripsi dan dekripsi. Proses alur pada modifikasi ini menggunakan 3 putaran dimana pada setiap putaran akan dibangkitkan kunci baru hasil dari pembangkitan kunci sebelumnya. Selain itu pada setiap putaran, fungsi linear yang digunakan juga berbeda karena nilai konstanta didapatkan dari hasil pembangkitan kunci pada setiap putaran ataupun hasil fungsi Anger. Penggunaan 3 putaran dengan alasan akan menghasilkan modifikasi Hill Cipher yang membutuhkan memori dan waktu sedikit tanpa mengurangi tingkat keamanan dari modifikasi Hill Cipher. Pada perhitungan CBB (Convert between Base), kunci dibangkitkan dari hasil fungsi Anger dikalikan dengan kunci yang dibangkitkan dari proses putaran. Kriptografi Hill Cipher merupakan teknik kriptografi yang menggunakan matriks sebagai kuncinya untuk melakukan proses enkripsi-dekripsi [6]. Dasar dari matriks Hill Cipher yaitu aritmatika modulo terhadap matriks. Dalam penerapannya, Hill Cipher menggunakan teknik perkalian matriks dan invers terhadap matriks. Kunci pada Hill Cipher adalah matriks dengan merupakan ukuran blok. Jika matriks kunci disebut dengan A matriks A adalah sebagai berikut : Defenisi 1. Invers Matriks [7] [ ] - Jika A adalah matriks bujur sangkar, dan matriks B yang ukurannya sama sedemikian rupa sehinggaruux - Jika A dapat dibalik, - Jika matriks B tidak dapat didefinisikan A dinyatakan sebagai matriks singular. 2

Matriks A harus mempunyai invers (A -1 ), karena akan digunakan untuk proses dekripsi. Fungsi dari A -1 yaitu untuk mengembalikan nilai. Proses enkripsi dilakukan untuk tiap blok plainteks yang mana ukuran blok harus sama dengan ukuran matriks kunci. Sebelum membagi teks menjadi deretan blok-blok, plainteks dikonversi ke dalam bilangan ASCII yang berkorespodensi dengan ketentuan bilangan dan huruf. Dimisalkan P adalah plainteks dan C adalah cipherteks [ ] [ ] Sehingga secara umum proses enkripsi dapat dinotasikan dengan Sedangkan proses dekripsi dinotasikan dengan Perancangan teknik kriptografi ini menggunakan fungsi linear sebagai proses putaran dipadukan dengan fungsi Anger sebagai pembangkit kuncinya. Fungsi linear merupakan sebuah persamaan aljabar yang setiap sukunya mengandung konstanta atau perkalian konstanta dengan variabel yang berpangkat satu. Eksistensi dan keunikan dari persamaan linear yaitu hubungan matematis tersebut dapat digambarkan sebagai garis lurus dalam koordinat kartesius [8]. Secara umum diberikan pada Persamaan (6). dengan syarat. Fungsi kedua yang digunakan dalam modifikasi ini menggunakan fungsi Anger yang didefenisikan pada Persamaan (7) [9]. Fungsi Anger digunakan karena hasil perhitungan fungsi Anger menghasilkan bilangan yang tidak linear karena bila digambarkan pada grafik akan membentuk parabola sehingga sulit bagi kriptanalis untuk mencari hubungan pada kunci Anger yang dihasilkan. Perancangan kriptografi melibatkan banyak proses perhitungan matematika, selain menggunakan Persamaan (6) dan Persamaan (7) digunakan proses Convert Between Base (CBB) yang secara umum diberikan pada defenisi berikut ini. Defenisi 2, Konversi sembarang bilangan positif s, berbasis 10 ke basis β. Secara umum notasinya [9], Defenisi 3, Konversi dari urutan bilangan (list digit) l dalam basis ke basis β [9]. Secara umum dinotasikan, Dengan jumlahan urutan bilangan (jumlahan l) mengikuti aturan [8], 3

Dimana nops (l) adalah nilai terakhir dari urutan bilangan l [9], dimana: - 0 lk α dan l adalah bilangan positif. - Nilai yang diperoleh merupakan kumpulan urutan bilangan dalam basis β. 3. Metode Perancangan Perancangan sistem untuk modifikasi kriptografi Hill Cipher dilakukan dalam tahap-tahap penelitian. Tahap yang diperlukan yaitu Pengumpulan Bahan, Analisis Kebutuhan, Perancangan Modifikasi Hill Cipher, Modifikasi Hill Cipher, Uji Hasil Modifikasi Hill Cipher dan Penulisan Laporan yang ditunjukkan pada Gambar 1. Analisis Kebutuhan Pengumpulan Bahan Perancangan Modifikasi Modifikasi Hill Cipher Uji Modifikasi Penulisan Laporan Gambar 1 Tahap Penelitian Tahapan penelitian berdasarkan pada Gambar 1, dijelaskan sebagai berikut. Tahap pertama: Analisis Kebutuhan yaitu menganalisis kebutuhan apa saja yang diperlukan dalam modifikasi kriptografi Hill Cipher. Tahap Kedua: Pengumpulan Bahan yaitu pengumpulan bahan berupa data-data yang terkait dengan proses perancangan modifikasi kriptografi Hill Cipher misalnya mendapatkan data dan literatur yang terkait melalui dokumen dan referensi yang ada. Tahap Ketiga: Perancangan modifikasi kriptografi Hill Cipher yaitu meliputi pembuatan bagan proses enkripsi dan dekripsi dalam memodifikasi kr iptografi Hill Cipher beserta gambaran umum mengenai modifikasi yang akan dilakukan. Tahap Keempat: Modifikasi Hill Cipher yaitu melakukan modifikasi kriptografi Hill Cipher 4

berdasar pada tahap ketiga, kemudian melakukan analisis dari hasil modifikasi Hill Cipher. Tahap Kelima: Uji Hasil Modifikasi Hill Cipher yaitu melakukan uji hasil modifikasi terhadap keseluruhan perancangan dan modifikasi yang telah dibuat. Tahap Keenam: Penulisan laporan yaitu mendokumentasikan proses penelitian dari tahap awal sampai tahap akhir ke dalam sebuah tulisan yang akan menjadi laporan hasil penelitian. Pada proses modifikasi Hill Cipher ini terdapat dua (2) proses utama yaitu proses enkripsi dan proses dekripsi. a. Menyiapkan plainteks Plainteks yang akan dienkripsi diubah ke dalam bilangan ASCII dan dimod 127, sehingga (11) dimana m adalah jumlah karakter plainteks. b. Menyiapkan kunci utama. Kunci utama didapatkan dengan mengubah karakter kunci utama yang diinput menjadi bilangan ASCII, sehingga yang kemudian bilangan-bilangan pada Persamaan (12) dijumlahkan dan dimod 127 sehingga dimana n adalah jumlah karakter kunci utama. c. Menyiapkan fungsi Anger Fungsi Anger digunakan sebagai kunci pembangkit dalam proses enkripsidekripsi. Hasil dari perhitungan fungsi Anger akan digunakan dalam perhitungan setiap proses. Selain itu kunci Anger digunakan dalam proses putaran dengan mensubtitusikan ke dalam persamaan linear dan juga untuk membangkitkan kunci-kunci tambahan lainnya. Nilai fungsi Anger didapatkan dari, merujuk pada Persamaan (7) yang di-mod 127, dimana dan diperoleh d. Menyiapkan kunci pada setiap putaran yang diberikan rumus umum secara berikut : Dimana - Kunci yang pertama, merujuk pada Persamaan (15) dimana yang kemudian di-mod 127 - Kunci yang kedua, merujuk pada Persamaan (15) dimana yang kemudian dimod 127 - Kunci yang ketiga, merujuk pada Persamaan (15) dimana yang kemudian di-mod 127 5

- Kunci yang keempat, merujuk pada Persamaan (15) dimana yang kemudian dimod 127 - Kunci yang kelima, merujuk pada Persamaan (15) dimana yang kemudian di-mod 127 - Kunci yang keenam, merujuk pada Persamaan (15) dimana yang kemudian dimod 127 - Kunci yang ketujuh, merujuk pada Persamaan (15) dimana yang kemudian dimod 127 e. Menyiapkan matriks kunci yang invertible Matriks kunci yang akan digunakan untuk membangkitkan matriks kunci yang lainnya yaitu, [ ] - Matriks kunci yang pertama Persamaan (23) dikalikan dengan Persamaan (14) yang kemudian di-mod 127, sehingga diperoleh - Matriks kunci yang kedua diperoleh dari - Matriks kunci yang ketiga dibangkitkan dengan proses sebagai berikut Proses dekripsi menggunakan invers Persamaan (24), Persamaan (25) dan Persamaan (26). Selanjutnya secara berturut-turut invers dari matriks dan adalah dan f. Menyiapkan fungsi linear dan invers fungsi liner Fungsi linear yang digunakan harus mempunyai invers. Fungsi linear digunakan dalam proses putaran pada enkripsi sedangkan invers fingsi linear digunakan dalam proses putaran pada dekripsi. Untuk mempersulit kriptanalis memecahkan plainteks setiap putaran tidak hanya menggunakan satu (1) fungsi linear, melainkan menggunakan beberapa fungsi linear dimana nilai konstanta merupakan hasil dari kunci yang dibangkitkan. - Pada putaran pertama fungsi linear 1 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga 6

- Pada putaran pertama fungsi linear 2 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga - Pada putaran pertama fungsi linear 3 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga - Pada putaran kedua fungsi linear 1 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga - Pada putaran kedua fungsi linear 2 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga - Pada putaran kedua fungsi linear 3 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga - Pada putaran tiga fungsi linear 1 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga - Pada putaran ketiga fungsi linear 2 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga - Pada putaran ketiga fungsi linear 3 diperoleh dari Persamaan (6) dimana dan kemudian di-mod 127, sehingga Proses dekripsi memerlukan invers fungsi linear Persamaan (27) sampai dengan Persamaan (35). Secara berturut-turut invers dari fungsi linear adalah 7

g. Menyiapkan fungsi Convert Between Base (CBB) Cipherteks dirancang dalam bit biner dari itu salah satu basis harus dua (2). Sehingga dengan Defenisi 3 dimana (11),, Pada proses dekripsi digunakan konversi basis bilangan dimana cipherteks, 2, Persamaan (22) Persamaan (14) Gambar 2 menunjukkan proses enkripsi dalam modifikasi kriptografi Hill Cipher. 8

P l a i n t e x t A S C I I Ma trik K un ci [ ] Kunci Utama A S C I I } C B B C i p h e r t e k s } K e t : Fungsi ke fungsi Ku n c i k e f u n g s i K u n c i k e k u n c i Gambar 2 Proses Enkripsi Setelah tahap persiapan selesai dilakukan selanjutnya adalah proses enkripsi secara garis besar yang akan dijelaskan sebagai berikut: 1. Merujuk pada Persamaan (11), jika banyak elemen pada Persamaan (11) sebanding dengan kelipatan ordo matriks kunci dilanjutkan pada proses selanjutnya. Apabila banyak elemen pada Persamaan (11) tidak sebanding dengan kelipatan ordo matriks harus ditambahkan bilangan 32 (dalam kode ASCII merupakan karakter spasi) setelah bilangan terakhir sesuai kebutuhan sehingga banyak elemen Persamaan (11) sebanding dengan kelipatan ordo matriks kunci. 9

dimana kelipatan tiga dari jumlah karakter plainteks. 2. Merujuk pada Persamaan (27), dimana, sehingga 3. Persamaan (39) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (24) 4. Merujuk pada Persamaan (28), dimana, sehingga 5. Persamaan (41) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (25) 6. Merujuk pada Persamaan (29), dimana, sehingga 7. Persamaan (43) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (26) 8. Merujuk pada Persamaan (30), dimana, sehingga 9. Persamaan (45) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (25) 10. Merujuk pada Persamaan (31), dimana, sehingga 11. Persamaan (47) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (26) 12. Merujuk pada Persamaan (32), dimana, sehingga 13. Persamaan (49) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (24) 14. Merujuk pada Persamaan (33), dimana, sehingga 15. Persamaan (51) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (26) 16. Merujuk pada Persamaan (34), dimana, sehingga 10

17. Persamaan (53) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (25) 18. Merujuk pada Persamaan (35), dimana, sehingga 19. Persamaan (55) kemudian disusun menjadi blok vektor dengan ukuran blok Persamaan (24) 20. Bilangan-bilangan pada Persamaan (56) kemudian dikonversi menggunakan Persamaan (36), sehingga C i p h e r t e k s C B B Kunci Utama A S C I I A S C I I P l a i n t e x t K e t : Fungsi ke fungsi Ku n c i k e f u n g s i K u n c i k e k u n c i Gambar 3 Proses Dekripsi 11

Setelah proses Enkripsi selesai, proses dekripsi adalah sebagai berikut : 1. Merujuk pada Persamaan (37) dimana 57) 2. Persamaan (58) kemudian disusun menjadi blok vektor dengan ukuran blok 3. Merujuk pada, dimana, sehingga 4. Persamaan (60) kemudian disusun menjadi blok vektor dengan ukuran blok 5. Merujuk pada, dimana, sehingga 6. Persamaan (62) kemudian disusun menjadi blok vektor dengan ukuran blok 7. Merujuk pada, dimana, sehingga 8. Persamaan (64) kemudian disusun menjadi blok vektor dengan ukuran blok 9. Merujuk pada, dimana, sehingga 10. Persamaan (66) kemudian disusun menjadi blok vektor dengan ukuran blok 11. Merujuk pada, dimana, sehingga 12. Persamaan (68) kemudian disusun menjadi blok vektor dengan ukuran blok 13. Merujuk pada, dimana, sehingga 14. Persamaan (70) kemudian disusun menjadi blok vektor dengan ukuran blok 15. Merujuk pada, dimana, sehingga 12

16. Persamaan (72) kemudian disusun menjadi blok vektor dengan ukuran blok 17. Merujuk pada, dimana, sehingga 18. Persamaan (74) kemudian disusun menjadi blok vektor dengan ukuran blok 19. Merujuk pada, dimana, sehingga 20. Tahap yang terakhir yaitu bilangan-bilangan hasil Persamaan (76) diubah dalam kode ASCII yang berkorespondensi sehingga plainteks diperoleh kembali. 4. Hasil dan Pembahasan Pengujian pada modifikasi kriptografi Hill Cipher sebagai sebuah teknik baru pada kriptografi dilakukan proses enkripsi-dekripsi. Proses tersebut dilakukan sesuai dengan langkah-langkah yang telah dijelaskan sebelumnya. Berikut ini adalah tahap persiapan yaitu tahap yang dilakukan sebelum proses enkripsi dan dekripsi dilakukan : a. Menyiapkan plainteks Plainteks yang digunakan yaitu FTI UKSW. Plainteks yang akan dienkripsi diubah ke dalam bilangan ASCII dan di-mod 127, merujuk pada Persamaan (11), sehingga b. Menyiapkan kunci utama. Kunci utama yang digunakan yaitu fti. Kunci utama diubah menjadi bilangan ASCII, merujuk pada Persamaan (12) Merujuk pada Persamaan (13) c. Menyiapkan fungsi Anger Fungsi Anger digunakan sebagai kunci pembangkit dalam proses enkripsidekripsi. Merujuk pada Persamaan (14), dimana dan, d. Menyiapkan kunci yang dibangkitkan dari proses enkripsi dan dekripsi. Merujuk pada Persamaan (16) sampai dengan Persamaan (22) secara berturutturut, 13

e. Menyiapkan matriks kunci yang invertible Matriks kunci yang akan digunakan untuk membangkitkan matriks kunci yang lainnya harus mempunyai invers, matriks yang digunakan yaitu, merujuk pada Persamaan (23) [ ] Dari Persamaan (88) dihasilkan matriks sesuai dengan penjelasan pada Persamaan (24), Persamaan (25) dan Persamaan (26). Sehingga invers dari secara berturut-turut adalah. f. Menyiapkan fungsi linear dan invers fungsi liner Fungsi linear yang digunakan haruslah fungsi linear yang mempunyai invers. Fungsi linear digunakan dalam proses putaran pada enkripsi.merujuk dari Persamaan (36) sampai dengan Persamaan (44) secara berurutan Invers dari fungsi linear secara berturut-turut dari dan adalah, dan g. Menyiapkan fungsi Convert Between Base (CBB) Cipherteks dirancang dalam bit biner dari itu salah satu basis harus dua (2). Merujuk pada Persamaan (49) dimana (11),, Sedangkan untuk proses dekripsi digunakan konversi basis bilangan merujuk pada Persamaan (50) dimana,,, 14

Setelah proses persiapan selesai selanjutnya untuk memulai proses enkripsi dapat dilakukan sebagai berikut: 1. Jumlah bilangan pada Persamaan (77) tidak sebanding dengan kelipatan ordo matriks ditambahkan bilangan 32 (dalam karakter ASCII merupakan karakter spasi), sehingga 2. Merujuk pada Persamaan (89), dimana, sehingga 3. Persamaan (101) kemudian disusun menjadi blok vektor dengan ukuran blok, 4. Merujuk pada Persamaan (90), dimana, sehingga 5. Persamaan (103) kemudian disusun menjadi blok vektor dengan ukuran blok, 6. Merujuk pada Persamaan (91), dimana, sehingga 7. Persamaan (105) kemudian disusun menjadi blok vektor dengan ukuran blok, 8. Merujuk pada Persamaan (92), dimana, sehingga 9. Persamaan (107) kemudian disusun menjadi blok vektor dengan ukuran blok, 10. Merujuk pada Persamaan (93), dimana, sehingga 11. Persamaan (109) kemudian disusun menjadi blok vektor dengan ukuran blok, 12. Merujuk pada Persamaan (94), dimana, sehingga 13. Persamaan (111) kemudian disusun menjadi blok vektor dengan ukuran blok, 14. Merujuk pada Persamaan (95), dimana, sehingga 15

15. Persamaan (113) kemudian disusun menjadi blok vektor dengan ukuran blok, 16. Merujuk pada Persamaan (96), dimana, sehingga 17. Persamaan (115) kemudian disusun menjadi blok vektor dengan ukuran blok, 18. Merujuk pada Persamaan (97), dimana, sehingga 19. Persamaan (117) kemudian disusun menjadi blok vektor dengan ukuran blok, 20. Merujuk pada Persamaan (98) diperoleh cipherteks { } Setelah proses Enkripsi selesai, proses dekripsi adalah sebagai berikut : 1. Merujuk pada Persamaan (99), dimana 2. Persamaan (119) kemudian disusun menjadi blok vektor dengan ukuran blok 3. Merujuk pada, dimana, sehingga 4. Persamaan (121) kemudian disusun menjadi blok vektor dengan ukuran blok 5. Merujuk pada, dimana, sehingga 6. Persamaan (123) kemudian disusun menjadi blok vektor dengan ukuran blok 7. Merujuk pada, dimana, sehingga 8. Persamaan (125) kemudian disusun menjadi blok vektor dengan ukuran blok 16

9. Merujuk pada, dimana, sehingga 10. Persamaan (127) kemudian disusun menjadi blok vektor dengan ukuran blok 11. Merujuk pada, dimana, sehingga 12. Persamaan (129) kemudian disusun menjadi blok vektor dengan ukuran blok 13. Merujuk pada, dimana, sehingga 14. Persamaan (131) kemudian disusun menjadi blok vektor dengan ukuran blok 15. Merujuk pada, dimana, sehingga 16. Persamaan (133) kemudian disusun menjadi blok vektor dengan ukuran blok 17. Merujuk pada, dimana, sehingga 18. Persamaan (135) kemudian disusun menjadi blok vektor dengan ukuran blok 19. Merujuk pada, dimana, sehingga 20. Tahap yang terakhir yaitu bilangan-bilangan hasil Persamaan (137) diubah dalam kode ASCII yang berkorespondensi sehingga diperoleh plainteks FTI UKSW. Stinson [10], seorang kriptografer asal Amerika Serikat menyatakan bahwa sebuah sistem kriptografi harus memenuhi lima tuple (five-tuple). Berikut ini akan menjelaskan bagaimana modifikasi kriptografi Hill Cipher menggunakan fungsi linear sebagai putarannya dan fungsi Anger sebagai kunci yang sudah dijelaskan memenuhi lima tuple tersebut : - P adalah himpunan berhingga dari plainteks. Plainteks pada modifikasi Hill Cipher ini menggunakan karakter yang berjumlah 127 dan ekuivalen dengan bilangan ASCII. Bilangan ASCII merupakan sekumpulan karakter yang ekuivalen dengan jumlah bilangan yang semuanya terbatas dalam 17

sebuah himpunan yang berhingga. Maka himpunan plainteks pada modifikasi Hill Cipher adalah himpunan berhingga. - C adalah himpunan berhingga dari cipherteks. Cipherteks yang dihasilkan pada modifikasi Hill Cipher merupakan elemen bit (bilangan 0 dan 1). Karena himpunan cipherteks hanya cipherteks pada modifikasi Hill Cipher adalah himpunan berhingga. - K merupakan ruang kunci (keyspace), adalah himpunan berhingga dari kunci. Penggunaan fungsi Linear dan kunci Anger adalah fungsi. Maka dari itu kunci yang digunakan juga himpunan berhingga. - Untuk setiap k K, terdapat aturan enkripsi E dan berkorespondensi dengan aturan dekripsi. Setiap dan adalah fungsi sedemikian hingga untuk setiap plainteks. Dari kondisi ke-4 ini secara menyeluruh terdapat kunci yang dapat melakukan proses enkripsi sehingga merubah plainteks menjadi cipherteks dan begitupun sebaliknya, dapat melakukan proses dekripsi sehingga bisa merubah cipherteks menjadi plainteks kembali. Sebelumnya telah dibuktikan dengan plainteks FTI UKSW juga dapat melakukan proses enkripsi dan dekripsi dengan merubah cipherteks menjadi plainteks. Berdasar uraian tersebut modifikasi kriptografi Hill Cipher menggunakan fungsi linear sebagai putarannya dan fungsi Anger sebagai kunci telah memenuhi five tuple sehingga bisa disebut sebagai sebuah sistem kriptografi. Pengujian berikutnya yaitu menguji ketahanan modifikasi Hill Cipher terhadap kriptanalis known-plaintext attack. - Plainteks yang digunakan untuk yaitu FAKULTAS TEKNOLOGI INFORMASI - Matriks kunci ordo [ ] - Melalui proses modifikasi Hill Cipher terbentuk cipherteks dalam bilangan ASCII adalah sebagai berikut : Mencari matriks kunci agar dapat menemukan plainteks perlu diketahui cipherteks, berkas plainteks dan ukuran matriks kunci yang digunakan. Jika diketahui matriks kunci yang digunakan yaitu matriks ordo, cipherteks dan berkas plainteks FAKULTAS pencarian matriks kunci dengan menggunakan teknik perkalian matriks adalah sebagai berikut : - Matriks ordo yang berkesesuaian dengan berkas plainteks dengan kode ASCII diperoleh [ ] [ ] - Disusun matriks cipherteks sebagai berikut : [ ] 18

- Mencari matriks kunci sehingga diperoleh [ ] [ ] [ ] - Dari proses perhitungan di atas, menunjukkan bahwa matriks kunci R tidak sama dengan matriks kunci pada Persamaan (138), seperti ditunjukkan berikut : [ ] [ ] Matriks yang ditemukan berbeda dapat disimpulkan bahwa pada known-plaintext attack dengan teknik perkalian matriks tidak dapat memecahkan matriks kunci pada modifikasi Hill Cipher. Hasil modifikasi Hill Cipher dilakukan uji ketahanan terhadap knownplaintext attack dengan perkalian linier. - Misalkan matriks kunci yang dipakai adalah : [ ] - Matrik plainteks dan cipherteks telah didefinisikan pada Persamaan (139) dan Persamaan (140) yaitu [ ] [ ] [ ] - Menerapkan Persamaan (4) diperoleh [ ] [ ] [ ] 19

- Penggunaan cara eliminasi untuk menghitung Persamaan (145), Persamaan (148) dan Persamaan (151) diperoleh - Penggunaan cara eliminasi untuk menghitung Persamaan (146), Persamaan (149) dan Persamaan (152) diperoleh - Penggunaan cara eliminasi untuk menghitung Persamaan (147), Persamaan (150) dan Persamaan (153) diperoleh - Hasil perhitungan berturut-turut pada Persamaan (154), Persamaan (155), Persamaan (156) diperoleh K=[ ] [ ] - Diperoleh matriks K tidak sama dengan matrik kunci pada Persamaan (138). Seperti yang ditunjukkan berikut ini [ ] [ ] Teknik persamaan linear tidak dapat menemukan matriks kunci pada modifikasi Hill Cipher. Sehingga kriptanalis known- plaintext attack dengan perkalian matriks dan fungsi linear tidak dapat memecahkan modifikasi Hill Cipher. Uji perancangan selanjutnya yaitu dilakukan dengan membandingkan jumlah karakter yang diproses berdasarkan kebutuhan memori serta waktu yang diperlukan selama proses enkripsi dan dekripsi berlangsung. Perbandingan kebutuhan memori dan waktu untuk proses enkripsi dan dekripsi pada modifikasi Hill Cipher menggunakan fungsi linear dan fungsi Anger (MHc) dibandingkan dengan penelitian sebelumnya (Modifikasi Alz, Ineke dan Irwan (MAII) dan Modifikasi Alz (MA) ) dapat dilihat pada Gambar 4 dan Gambar 5. 20

80 70 Memory (Mb) 60 50 40 30 20 10 0 0 100 200 300 400 500 Pesan Teks MHc MAII MA Gambar 4 Kebutuhan Memori Berdasarkan Jumlah Karakter Plainteks Berdasarkan Gambar 4, hasil perhitungan kemiringan garis pada MHc, MAII dan MA secara berturut-turut adalah 0.09335, 0.002718 dan 0.07992. Terlihat bahwa nilai MHc paling besar, hal tersebut disebabkan karena pada MHc penggunaan 3 putaran pada proses modifikasi dimana 1 putaran terdapat 6 proses yang terdiri dari 3 proses perhitungan fungsi linear dan 3 proses perkalian vektor dengan matriks. Pada grafik terlihat bahwa pada MAII terlihat cenderung lebih stabil dan nilai kemiringannya paling kecil, hal tersebut disebabkan pada modifikasi hanya menggunakan 1 putaran dimana 1 putaran itu hanya menggunakan 1 fungsi rasional dan 1 matriks kunci. Pada MA mengunakan 10 putaran dimana 1 putaran hanya terdapat 1 proses perkalian vektor dan matriks saja. 6 5 4 Waktu (s) 3 2 1 0 0 100 200 300 400 500 PesanTeks MHc MAII MA Gambar 5 Kebutuhan Waktu Berdasarkan Jumlah Karakter Plainteks 21

Berdasarkan Gambar 5, nilai kemiringan pada masing-masing modifikasi kriptografi Hill Cipher adalah MHc = 0.00812, MAII = 0.00057, MA = 0.007048. Terlihat bahwa MHc mempunyai nilai kemiringan yang paling tinggi. Hal tersebut disebabkan karena proses yang dilakukan sangat panjang dan juga kunci pada proses CBB lebih besar dari MAII dan MA. Pada penelitian ini plainteks yang dimasukkan yaitu berupa karakter, sedangkan cipherteks yang dihasilkan dalam bentuk bit. Oleh karena itu untuk mengetahui seberapa baik algoritma yang dibangun dilakukan perbandingan banyaknya plainteks dan cipherteks. Tabel 1 Perbandingan Jumlah Plainteks dan Cipherteks Plainteks Cipherteks 10 145 50 640 100 1290 200 2549 300 3811 400 5106 500 6365 Data pada Tabel 1 memberikan informasi terkait banyaknya karakter pada plainteks dan banyaknya jumlah bit pada cipherteks. Hasil tersebut menunjukkan karakter dari algoritma yang dirancang. Plainteks sebesar 500 karakter merupakan stress point dari modifikasi kriptografi. Kenutuhan informasi untuk karakter yang lebih besar dari 500 sangat diperlukan untuk mengetahui karakteristik dari algoritma dan juga tingkat kenaikan setiap interval yang diambil. Oleh karena itu sangat diperlukan model matematika yang dibangun berdasarkan data yang diperoleh pada Tabel 1. Dalam kasus ini model yang dibangun berdasarkan fitting (pencocokan kurva) dari data yang ada pada Tabel 1. Proses pencocokan kurva ditunjukkan pada Gambar. 22

Cipherteks 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 y = 12.707x + 11.818 0 100 200 300 400 500 600 700 Plainteks Cipherteks Linear (Cipherteks) Gambar 6 Perbandingan Jumlah Plainteks dan Cipherteks Berdasarkan koefisien determinasi yang paling baik yaitu mendekati atau sama dengan 1. Pencocokan kurva yang dilakukan dengan data pada Tabel 1 diperoleh y 12,707x 11, 818 (160) Model pada Persamaan (160) menunjukkan perbandngan antara banyaknya karakter plainteks dan banyaknya jumlah bit pada cipherteks, gradien dari Persamaan (160) adalah 12,707. Hal ini memberikan informasi setiap laju kenaikan antara banyaknya plainteks terhadap cipherteks. 5. Simpulan Modifikasi Hill Cipher menggunakan fungsi linear sebagai putaran dan fungsi Anger sebagai kuncinya, membuktikan bahwa modifikasi yang dilakukan dapat melakukan proses enkripsi dan dekripsi. Selain itu telah memenuhi five tuple P, C, K, E, D sehingga dapat disebut sebagai sebuah sistem kriptografi. Pada MHc kurang cocok untuk plainteks dalam jumlah yang banyak. Hal tersebut disebabkan karena kebutuhan memori dan waktu pada MHc lebih besar dibandingkan dengan MAII ataupun MA. Perbandingan antara banyaknya palinteks dan cipherteks berelasi sesuai dengan persamaan y 12,707x 11, 818. Plainteks pada MHc tidak hanya berupa alphabet saja, tetapi bisa juga simbol, angka dan karakter lainnya. Cipherteks yang dihasilkan yaitu dalam bentuk bit biner, sehingga dapat menahan dan mempersulit kriptanalis known-plaintext attack untuk memecahkannya dengan metode perkalian matriks dan perkalian linear. 23

6. Daftar Pustaka [1] Hill, Lester, S., 1929, Cryptography in an Algebraic Alphabet: The American Monthly, 36 (6), pp. 106-312. [2] Cryptanalysis of The Hill Cipher. 2012. http://practicalcryptography.com/cryptanalysis/stochasticsearching/cryptanalysis-hill-cipher/ (Diakses pada tanggal 17 Juli 2014) [3] Magamba, K., Kadaleka, S dan Kasambara, Ansley, 2012, Variable-length Hill Cipher with MDS Key Matrix, International Journal of Computer Application, Vol. 57, No. 13, pp. 43-45. [4] Wowor, A. D, 2013, Modifikasi Kriptografi Hill Cipher Menggunakan Convert Between Base. Institut Teknik Surabaya, Bali : Seminar Nasional Sistem Informasi Indonesia. [5] Wowor, A. D, Pakereng, M. A. Ineke dan Sembiring, Irwan, 2011, Modifikasi Teknik Kriptografi Hill Cipher Menggunakan Fungsi Rasional dan Konversi Basis Bilangan pada Proses Enkripsi-Dekripsi, Tesis : Magister Sistem Informasi Universitas Kristen Satya Wacana. [6] Essilinger, Bernhard, 2010, The CrypTool Script: Cryptography, Mathematics, and More, 10 th Edirion, Frankfurt-Germany: Prof Bernhard and the Cryptool Development Team 1998-2010. [7] Anton, H. & Rorres, C., 2005, Elementary Linear Algebra, Applications Version, 8th Edition, New York: John Wiley & Sons. [8] Sutojo,T., Bowo N., Erna, Z.A., dkk, 2010, Teori dan Aplikasi Aljabar Linear dan Matriks dengan Implementasi Aljabar Linear dan Matriks Menggunakan Matlab, Semarang : Andi. [9] Maplesoft. 2010. Anger function. http://www.maplesoft.com/support/help/maple/view.aspx?path=angerj (Diakses pada tanggal 5 Maret 2014) [10] Stinson, D.R. 1995. Cryptography Theory and Practice. Florida: CRC Press, Inc.sd 24