Modifikasi Kriptografi Hill Cipher Menggunakan Fungsi...
Transcript of Modifikasi Kriptografi Hill Cipher Menggunakan Fungsi...
1
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,
maka 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].
2
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, maka 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, maka A dinyatakan sebagai
matriks singular.
3
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, maka
[
] [
]
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) ℓ dalam basis ke basis β [9].
Secara umum dinotasikan,
( )
Dengan jumlahan urutan bilangan (jumlahan ℓ) mengikuti aturan [8],
4
∑
Dimana nops (ℓ) adalah nilai terakhir dari urutan bilangan ℓ [9], dimana:
- 0 ≤ lk ≤ α dan ℓ 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.
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
Analisis Kebutuhan
Pengumpulan Bahan
Perancangan Modifikasi
Modifikasi Hill Cipher
Uji Modifikasi
Penulisan Laporan
5
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 di-
mod 127, sehingga
{ } (11)
dimana m adalah jumlah karakter plainteks.
b. Menyiapkan kunci utama.
Kunci utama didapatkan dengan mengubah karakter kunci utama yang di-
input menjadi bilangan ASCII, sehingga
{ } yang kemudian bilangan-bilangan pada Persamaan (12) dijumlahkan dan di-
mod 127 sehingga
dimana n adalah jumlah karakter kunci utama.
c. Menyiapkan fungsi Anger
Fungsi Anger digunakan sebagai kunci pembangkit dalam proses enkripsi-
dekripsi. 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
, maka 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, maka
- Kunci yang kedua, merujuk pada Persamaan (15) dimana yang kemudian di-
mod 127, maka
- Kunci yang ketiga, merujuk pada Persamaan (15) dimana yang kemudian di-mod 127, maka
6
- Kunci yang keempat, merujuk pada Persamaan (15) dimana yang kemudian di-
mod 127, maka
- Kunci yang kelima, merujuk pada Persamaan (15) dimana yang kemudian di-mod 127, maka
- Kunci yang keenam, merujuk pada Persamaan (15) dimana yang kemudian di-
mod 127, maka
- Kunci yang ketujuh, merujuk pada Persamaan (15) dimana yang kemudian di-
mod 127, maka
e. Menyiapkan matriks kunci yang invertible
Matriks kunci yang akan digunakan untuk membangkitkan matriks kunci
yang lainnya yaitu,
[
]
- Matriks kunci yang pertama maka 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, maka 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
(
)
7
- 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
8
g. Menyiapkan fungsi Convert Between Base (CBB)
Cipherteks dirancang dalam bit biner, maka dari itu salah satu basis harus
dua (2). Sehingga dengan Defenisi 3 dimana (11), , , maka
( )
Pada proses dekripsi digunakan konversi basis bilangan dimana
cipherteks, 2, Persamaan (22) Persamaan (14), maka
( )
Gambar 2 menunjukkan proses enkripsi dalam modifikasi kriptografi Hill
Cipher.
9
Gambar 2 Proses Enkripsi
Setelah tahap persiapan selesai dilakukan, maka 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, maka dilanjutkan pada proses
selanjutnya. Apabila banyak elemen pada Persamaan (11) tidak sebanding
dengan kelipatan ordo matriks, maka 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.
{ }
{ }
{ }
[
]
Ma tr ik K un ci
A S C I I
Kunci Utama
{ }
{ }
{ }}
{ }
{ }
A S C I I
P l a i n t e x t
{ }
{ }
{ }
{ }
{ }}
{ }
{ }
{ }
{ }
{ }
{ }
{ }
C i p h e r t e k s
C B B
K u n c i k e k u n c i K e t : Ku n c i k e f u n g s i Fungsi ke fungsi
{ }
10
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
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (24), maka
{ } 4. Merujuk pada Persamaan (28), dimana , sehingga
{ } 5. Persamaan (41) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (25), maka
{ } 6. Merujuk pada Persamaan (29), dimana , sehingga
{ } 7. Persamaan (43) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (26), maka
{ } 8. Merujuk pada Persamaan (30), dimana , sehingga
{ } 9. Persamaan (45) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (25), maka
{ } 10. Merujuk pada Persamaan (31), dimana , sehingga
{ } 11. Persamaan (47) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (26), maka
{ } 12. Merujuk pada Persamaan (32), dimana , sehingga
{ } 13. Persamaan (49) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (24), maka
{ } 14. Merujuk pada Persamaan (33), dimana , sehingga
{ } 15. Persamaan (51) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (26), maka
{ } 16. Merujuk pada Persamaan (34), dimana , sehingga
{ }
11
17. Persamaan (53) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (25), maka
{ } 18. Merujuk pada Persamaan (35), dimana , sehingga
{ } 19. Persamaan (55) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
Persamaan (24), maka
{ } 20. Bilangan-bilangan pada Persamaan (56) kemudian dikonversi menggunakan
Persamaan (36), sehingga
{ }
Gambar 3 Proses Dekripsi
{
}
{
}
{
}
{
}
{
}
{
}
C i p h e r t e k s
C B B
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
A S C I I
P l a i n t e x t
{
}
{
}
{ }
{
}
K u n c i k e k u n c i K e t : Ku n c i k e f u n g s i Fungsi ke fungsi
A S C I I
Kunci Utama
{ }
12
Setelah proses Enkripsi selesai, proses dekripsi adalah sebagai berikut :
1. Merujuk pada Persamaan (37) dimana 57), maka {
} 2. Persamaan (58) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
maka
{
} 3. Merujuk pada
, dimana , sehingga
{
} 4. Persamaan (60) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{
} 5. Merujuk pada
, dimana , sehingga
{
} 6. Persamaan (62) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{
} 7. Merujuk pada
, dimana , sehingga
{
} 8. Persamaan (64) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{
} 9. Merujuk pada
, dimana , sehingga
{
} 10. Persamaan (66) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{
} 11. Merujuk pada
, dimana , sehingga
{
} 12. Persamaan (68) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{
} 13. Merujuk pada
, dimana , sehingga
{
} 14. Persamaan (70) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{
} 15. Merujuk pada
, dimana , sehingga
{
}
13
16. Persamaan (72) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{
} 17. Merujuk pada
, dimana , sehingga
{
} 18. Persamaan (74) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{
} 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), maka
{ } Merujuk pada Persamaan (13), maka
c. Menyiapkan fungsi Anger
Fungsi Anger digunakan sebagai kunci pembangkit dalam proses enkripsi-
dekripsi. Merujuk pada Persamaan (14), dimana dan ,
maka
d. Menyiapkan kunci yang dibangkitkan dari proses enkripsi dan dekripsi.
Merujuk pada Persamaan (16) sampai dengan Persamaan (22) secara berturut-
turut, maka
14
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), maka
[
]
Dari Persamaan (88), maka 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, maka
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
Invers dari fungsi linear secara berturut-turut dari dan adalah
,
dan
g. Menyiapkan fungsi Convert Between Base (CBB)
Cipherteks dirancang dalam bit biner, maka dari itu salah satu basis harus
dua (2). Merujuk pada Persamaan (49) dimana (11),
, , maka
Sedangkan untuk proses dekripsi digunakan konversi basis bilangan
merujuk pada Persamaan (50) dimana , , ,
maka
15
( )
Setelah proses persiapan selesai, maka selanjutnya untuk memulai proses
enkripsi dapat dilakukan sebagai berikut:
1. Jumlah bilangan pada Persamaan (77) tidak sebanding dengan kelipatan ordo
matriks, maka 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
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 4. Merujuk pada Persamaan (90), dimana , sehingga
{ } 5. Persamaan (103) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 6. Merujuk pada Persamaan (91), dimana , sehingga
{ } 7. Persamaan (105) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 8. Merujuk pada Persamaan (92), dimana , sehingga
{ } 9. Persamaan (107) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 10. Merujuk pada Persamaan (93), dimana , sehingga
{ } 11. Persamaan (109) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 12. Merujuk pada Persamaan (94), dimana , sehingga
{ } 13. Persamaan (111) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 14. Merujuk pada Persamaan (95), dimana , sehingga
{ }
16
15. Persamaan (113) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 16. Merujuk pada Persamaan (96), dimana , sehingga
{ } 17. Persamaan (115) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 18. Merujuk pada Persamaan (97), dimana , sehingga
{ } 19. Persamaan (117) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan ,
maka
{ } 20. Merujuk pada Persamaan (98), maka diperoleh cipherteks
{ }
Setelah proses Enkripsi selesai, proses dekripsi adalah sebagai berikut :
1. Merujuk pada Persamaan (99), dimana , maka { }
2. Persamaan (119) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{ }
3. Merujuk pada , dimana , sehingga
{ }
4. Persamaan (121) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{ }
5. Merujuk pada , dimana , sehingga
{ }
6. Persamaan (123) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{ }
7. Merujuk pada , dimana , sehingga
{ }
8. Persamaan (125) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
17
{ }
9. Merujuk pada , dimana , sehingga
{ }
10. Persamaan (127) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{ }
11. Merujuk pada , dimana , sehingga
{ }
12. Persamaan (129) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{ }
13. Merujuk pada , dimana , sehingga
{ }
14. Persamaan (131) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{ }
15. Merujuk pada , dimana , sehingga
{ }
16. Persamaan (133) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{ }
17. Merujuk pada , dimana , sehingga
{ }
18. Persamaan (135) kemudian disusun menjadi blok vektor dengan ukuran blok
sama dengan ukuran ordo matriks kunci yang kemudian dikalikan dengan
, maka
{ }
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
18
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 { }, maka 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, maka 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, maka terbentuk cipherteks dalam
bilangan ASCII adalah sebagai berikut :
{ } Mencari matriks kunci agar dapat menemukan plainteks, maka 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”, maka 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 :
[
]
19
- 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, maka 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 known-
plaintext 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), maka diperoleh
[
] [
] [
]
20
- Penggunaan cara eliminasi untuk menghitung Persamaan (145),
Persamaan (148) dan Persamaan (151), maka diperoleh
- Penggunaan cara eliminasi untuk menghitung Persamaan (146),
Persamaan (149) dan Persamaan (152), maka diperoleh
- Penggunaan cara eliminasi untuk menghitung Persamaan (147),
Persamaan (150) dan Persamaan (153), maka diperoleh
- Hasil perhitungan berturut-turut pada Persamaan (154), Persamaan (155),
Persamaan (156), maka 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.
21
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.
Gambar 5 Kebutuhan Waktu Berdasarkan Jumlah Karakter Plainteks
0
10
20
30
40
50
60
70
80
0 100 200 300 400 500
Me
mo
ry (
Mb
)
Pesan Teks MHc MAII MA
0
1
2
3
4
5
6
0 100 200 300 400 500
Wak
tu (
s)
PesanTeks MHc MAII MA
22
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, maka dilakukan
perbandingan banyaknya plainteks dan cipherteks.
Tabel 1 Perbandingan Jumlah Plainteks dan Cipherteks
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 .
Plainteks Cipherteks
10 145
50 640
100 1290
200 2549
300 3811
400 5106
500 6365
23
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
maka diperoleh
y 818,11707,12 x (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 818,11707,12 x . 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.
y = 12.707x + 11.818
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
0 100 200 300 400 500 600 700
Cip
he
rte
ks
Plainteks Cipherteks Linear (Cipherteks)
24
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/stochastic-
searching/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, 10th
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