perancangan kriptografi simetris menggunakan …2016-10-18 · berdasarkan latar belakang...
TRANSCRIPT
1
1. Pendahuluan
Penyadapan semakin marak terjadi belakangan ini. Masalah ini semakin
besar apabila konten yang disadap adalah informasi rahasia suatu negara.
Indonesia beberapa kali diberitakan disadap oleh pihak asing, hal ini menjadi
pertanda bahwa sistem keamanan informasi di negara ini masih lemah. Untuk
meningkatkan keamanan pertukaran informasi, diperlukan suatu metode yang
menjaga akses ke informasi ini. Dengan kriptografi kita dapat menjaga kerahasian
suatu informasi dari pihak yang tidak diinginkan.
Untuk menunjang kriptografi dapat menggunakan fungsi-fungsi
matematika. Fungsi matematika tersebut digunakan dalam proses Enkripsi dan
Dekripsi suatu pesan untuk menjaga kerahasiaan data, keabsahan data, integritas
data, serta autentikasi data.
Berdasarkan latar belakang masalah, maka akan dilakukan penelitian yang
membahas tentang teknik kriptografi simetris dengan beberapa fungsi matematika
yaitu fungsi logaritma kuadrat dan fungsi bernoulli sebagai kunci sedangkan
fungsi linear digunakan dalam putaran untuk proses enkripsi-dekripsi. Fungsi
logaritma kuadrat digunakan karena memiliki bentuk non-linear dan juga
merupakan fungsi transenden. Sedangkan fungsi bernoulli digunakan karena
merupakan fungsi polinomial dan juga memiliki bentuk non-linear. Penelitian ini,
diharapkan dapat menambah ragam teknik kriptografi dengan kunci simetris.
2. Tinjauan Pustaka
Penelitian terdahulu yang berjudul Penggunaan “Fungsi Rasional,
Logaritma Kuadrat, dan Polinomial Orde- dalam Modifikasi Kriptografi Caesar
Cipher”. Penelitian ini memodifikasi Caesar cipher dengan menggunaan dua buah
kunci yang digunakan dalam setiap putaran. Secara matematis dalam penulisan ini
melakukan pergeseran karakter dalam ASCII [1].
Penelitian lain yang berjudul “Public key cryptography using Permutation
P-Polynomials over Finite Fields”. Penelitian tersebut menggunakan permutasi p-
polinomial untuk mendesain kunci kriptografi yang efisien [2].
Dari dua penelitian di atas penulis memiliki gagasan untuk merancang
kriptografi menggunakan fungsi logaritma kuadrat dan fungsi Bernoulli, yang
digunakan sebagai pembangkit kunci. Sedangkan fungsi linear digunakan pada
proses enkripsi dan dekripsi pada setiap putaran.
Pembangkit kunci yang pertama menggunakan fungsi logaritma kuadrat. Secara
umum memiliki persamaan seperti berikut [3]:
( ) ( ) (1)
Pembangkit kunci yang lain menggunakan fungsi Bernoulli yang memiliki bentuk
seperti berikut [4]:
( ) ∑ (
)
( )
Proses enkripsi disetiap putarannya menggunakan fungsi linear yang memiliki
bentuk umum seperti berikut :
( ) ( ) (3)
2
Perhitungan matematika banyak digunakan dalam perancangan kriptografi,
selain menggunakan Persamaan (1) (2) dan (3) juga digunakan proses Convert
Between Base (CBB) yang secara umum diberikan pada defenisi berikut ini.
Definisi 1 [5]. Konversi sembarang bilangan positif berbasis 10 basis β. Secara
umum notasinya,
( ) (4)
Definisi 2 [5]. Konversi dari urutan bilangan (list digit) dalam basis α ke basis
β. Secara umum dinotasikan,
( ) (5)
dengan jumlahan urutan bilangan (jumlahan ) mengikuti aturan,
∑
( )
( )
dimana ( ) adalah nilai terakhir dari urutan bilangan .
dan adalah bilangan positif.
Nilai yang diperoleh merupakan kumpulan urutan bilangan dalam
basis β.
3. Perancangan Kriptografi
Dalam perancangan kriptografi simetris menggunakan fungsi logaritma
kuadrat dan fungsi bernoulli dibutuhkan beberapa tahapan dalam menyusunan
penelitian.
Gambar 1 Tahapan Penelitian
Tahapan penelitian pada Gambar 1, dapat dijelaskan sebagai berikut. Tahap
Pertama : Analisis Kebutuhan perancangan kriptografi kunci simetris
menggunakan fungsi logaritma kuadrat dan fungsi bernoulli, sehingga ditemukan
kebutuhan apa saja yang diperlukan; Tahap Kedua : Pengumpulan bahan, yang
meliputi pengumpulan referensi yang berkaitan dengan fungsi logaritma kuadrat
dan fungsi bernoulli dan literatur yang berhubungan dengan proses enkripsi dan
dekripsi; Tahap Ketiga : Perancangan Kriptografi Simetris, yaitu meliputi
pembuatan flowchart untuk pengambilan keputusan, serta melakukan analisa-
analisa hasil yang dapat diambil dari modifikasi yang telah dilakukan; Tahap
Pengumpulan bahan
Perancangan Kriptografi Simetris
Uji Hasil Perancangan
Laporan Penelitian
Analisis Kebutuhan
3
Keempat : Uji Hasil Perancangan, apabila perancangan kriptografi simetris sudah
selesai dilakukan pengujian dan analisa; Tahap Kelima : Penulisan Laporan Hasil
Penelitian yaitu mendokumentasikan proses penelitian yang sudah dilakukan dari
tahap awal hingga akhir ke dalam tulisan, yang menjadi laporan hasil penelitian.
Dalam perancangan kriptografi, terdapat dua proses pokok yaitu, enkripsi
dan dekripsi. Proses enkripsi dijelaskan pada Gambar 2.
Gambar 2 Proses Enkripsi
* +
* + ( ) ( )
Linear
ASCII Plaintext
* +
( ) ( )
FLk
( ) ∑ (
)
FBer
= Jumlah
Main key
ASCII
·2
( ) ( )
FLK 1
·3
* +
( ) ( )
FBer 1
( ) ( )
FBer 2
+7
* +
.
.
.
.
.
.
.
.
.
·2
+6
·5
( ) ( )
FLk
( )
FBer 4
* +
( )
FLK 4
* +
( )
FLK 5
* +
CBB
Ciphertext * +
( ) ∑ (
)
FBer
4
Proses enkripsi kriptografi kunci simetris pada Gambar 2 merupakan proses
dimana plainteks dikonversi ke dalam kode ASCII, kemudian disubtitusi dalam
algoritma linear menggunakan pembangkit kunci logaritma kuadrat dan fungsi
bernoulli.
Berikut dijelaskan tahap persiapan dan langkah-langkah secara umum dalam
proses enkripsi kriptografi kunci simetris.
a) Menyiapkan plainteks
Masukkan plainteks yang akan dienkripsi. n adalah jumlah plainteks.
* + (7)
b) Menyiapkan kunci
Kunci yang dimasukkan diubah kebentuk bilangan ASCII kemudian setiap
bilangannya dijumlahkan lalu dikali 2 dan hasilnya diproses dengan modulo
127 dengan m adalah jumlah inputan kunci sehingga.
* + (8)
* + (9)
( ) mod 127 (10)
c) Menyiapkan fungsi linear
Hasil dari nilai Persamaan (7) dimasukkan kedalam dengan = 2 dan =
7 kemudian diakhiri dengan proses modulo 127. Konstanta yang digunakan
dari angka 1 sampai dengan 25 sehingga.
( ) ( ) (11)
( ) ( ) (12)
d) Menyiapkan kunci logaritma kuadrat
Hasil dari Persamaan (10) dimasukkan kedalam dimana b = 1 dan c = 2
dan diakhiri dengan proses modulo 127. Kunci logaritma kuadrat digunakan
disetiap putaran dalam proses enkripsi dan dekripsi.
( ) ( ) (13)
e) Menyiapkan fungsi bernoulli sebagai kunci
Hasil dari Persamaan (10) dimasukkan kedalam dimana = (10) · 2 dan
diakhiri dengan proses modulo 127. Kunci bernoulli digunakan disetiap
putaran dalam proses enkripsi dan dekripsi.
( ) ∑ (
)
( )
(15) f) Menyiapkan kunci tambahan yang diambil dari hasil kunci logaritma
kuadrat dan kunci bernoulli yang digunakan disetiap putaran proses enkripsi
dan dekripsi. Konstanta yang digunakan dari angka 1 sampai dengan 25
sehingga.
(16)
Putaran pertama mengambil Persamaan (16) sebagai kunci. Dimana
= Ɣ dan p = 2 sehingga
(17)
Putaran pertama mengambil Persamaan (16) sebagai kunci. Dimana
= β dan p = 3 sehingga
5
(18)
Putaran pertama mengambil Persamaan (16) sebagai kunci. Dimana
= β dan p = 3 sehingga
(19)
Putaran kedua mengambil Persamaan (16) sebagai kunci. Dimana
= Ɣ dan p = 4 sehingga
(20)
Putaran kedua mengambil Persamaan (16) sebagai kunci. Dimana
= Ɣ dan p = 5 sehingga
(21)
Putaran kedua mengambil Persamaan (16) sebagai kunci. Dimana
= β dan p = 9 sehingga
(22)
Putaran ketiga mengambil Persamaan (16) sebagai kunci. Dimana
= β dan p = 2 sehingga
(23)
Putaran ketiga mengambil Persamaan (16) sebagai kunci. Dimana
= Ɣ dan p = 6 sehingga
(24)
Putaran ketiga mengambil Persamaan (16) sebagai kunci. Dimana
= Ɣ dan p = 5 sehingga
(25)
g) Menyiapkan fungsi linear
Setiap proses enkripsi menggunakan fungsi linear. Konstanta yang
digunakan dari angka 1 sampai dengan 25 sehingga.
( ) ( )mod 127 (26)
Putaran pertama mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 5 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (27)
Putaran pertama mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit
yang dimasukkan dengan = dan = Ɣ lalu diakhiri dengan
proses modulo 127 sehingga
( ) ( )mod 127 (28)
Putaran pertama mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 2 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (29)
Putaran kedua mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 5 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (30)
6
Putaran kedua mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit
yang dimasukkan dengan = dan = β lalu diakhiri dengan
proses modulo 127 sehingga
( ) (
)mod 127 (31)
Putaran kedua mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 5 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (32)
Putaran ketiga mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 4 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (33)
Putaran ketiga mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit
yang dimasukkan dengan = dan = β lalu diakhiri dengan
proses modulo 127 sehingga
( ) (
)mod 127 (34)
Putaran ketiga mengambil fungsi linear Persamaan (26) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 17 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (35)
h) Menyiapkan Convert Between Base (CBB) yang diambil dari persamaan (5)
bilangan basis yang disiapkan yaitu 416 karena bilangan basis harus lebih
besar dari nilai sehingga ( ) (36)
Berikut dijelaskan tahap persiapan dan langkah-langkah secara umum dalam
proses dekripsi kriptografi kunci simetris.
a) Menyiapkan invers Convert Between Base (CBB) yang diambil dari
persamaan (5) sehingga ( ) (37)
b) Menyiapkan invers fungsi linear
Setiap proses dekripsi menggunakan invers fungsi linear, bentuk secara
umumnya yaitu,
( ) (
)mod 127 (38)
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
17 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (39)
7
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit yang dimasukkan
dengan = dan = β lalu diakhiri dengan proses modulo 127
sehingga
( ) ( )mod 127 (40)
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
4 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (41)
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
5 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (42)
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit yang dimasukkan
dengan = dan = β lalu diakhiri dengan proses modulo 127
sehingga
( ) ( )mod 127 (43)
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
5 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (44)
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
2 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (45)
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit yang dimasukkan
dengan = dan = Ɣ lalu diakhiri dengan proses modulo 127
sehingga
( ) (
)mod 127 (46)
Mengambil invers fungsi linear Persamaan (38) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
5 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (47)
Mengambil invers fungsi linear Persamaan (38) dengan = 2 dan
= 7 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 ( )
Gambar 2 menjelaskan proses enkripsi, tahap-tahapnya sebagai berikut:
a) Baris bilangan dari Persamaan (7) dimasukkan kedalam fungsi linear pada
Persamaan (12), dimana setiap nilai dari Persamaan (7) dikalikan dengan
(12) dan ditambah (12) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
8
* + (49)
b) Hasil dari Persamaan (49) dimasukkan kedalam fungsi linear Persamaan
(27) dimana memanggil kunci pembangkit dari Persamaan (17) dan nilai
dari Persamaan (27) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (50)
c) Hasil dari Persamaan (50) dimasukkan kedalam fungsi linear Persamaan
(28) dimana memanggil kunci pembangkit dari Persamaan (18) dan nilai
dari Persamaan (28) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (51)
d) Hasil dari Persamaan (51) dimasukkan kedalam fungsi linear Persamaan
(29) dimana memanggil kunci pembangkit dari Persamaan (19) dan nilai
dari Persamaan (29) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (52)
e) Hasil dari Persamaan (52) dimasukkan kedalam fungsi linear Persamaan
(30) dimana memanggil kunci pembangkit dari Persamaan (20) dan nilai
dari Persamaan (30) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (53)
f) Hasil dari Persamaan (53) dimasukkan kedalam fungsi linear Persamaan
(31) dimana memanggil kunci pembangkit dari Persamaan (21) dan nilai
dari Persamaan (31) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (54)
g) Hasil dari Persamaan (54) dimasukkan kedalam fungsi linear Persamaan
(32) dimana memanggil kunci pembangkit dari Persamaan (22) dan nilai
dari Persamaan (32) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (55)
h) Hasil dari Persamaan (55) dimasukkan kedalam fungsi linear Persamaan
(33) dimana memanggil kunci pembangkit dari Persamaan (23) dan nilai
dari Persamaan (33) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (56)
i) Hasil dari Persamaan (56) dimasukkan kedalam fungsi linear Persamaan
(34) dimana memanggil kunci pembangkit dari Persamaan (24) dan nilai
dari Persamaan (34) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (57)
j) Hasil dari Persamaan (57) dimasukkan kedalam fungsi linear Persamaan
(35) dimana memanggil kunci pembangkit dari Persamaan (25) dan nilai
dari Persamaan (35) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (58)
9
k) Hasil dari Persamaan (58) dimasukkan kedalam Persamaan (36) untuk adalah jumlah bilangan cipherteks, sehingga menghasilkan
* + (59)
Gambar 3 Proses Dekripsi
* +
( )
InvFLK 1
* +
( )
InvLinear
* +
Plaintex
ASCII
( ) ( )
FLk
.
.
.
.
.
.
( ) ( )
InvFBer 2
* +
( )
InvFBer 1
* +
+7
( ) ( )
FLk
·2
·3
Ciphertext InvCBB * +
( ) ( ) FLK 5
* +
( ) ( )
InvFBer 4
( ) ( )
InvFLK 4
* +
Main key ASCII
* +
= Jumlah
·2
+6
·5
( ) ∑
FBer
( ) ∑
FBer
.
.
.
10
Gambar 3 menjelaskan proses dekripsi, garis besar yang akan dijelaskan
sebagai berikut:
a) Hasil dari Persamaan (59) dimasukkan kedalam Persamaan (37) untuk
adalah jumlah bilangan plainteks, sehingga menghasilkan
*
+ (60)
b) Hasil dari Persamaan (60) dimasukkan kedalam fungsi invers linear
Persamaan (39) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (39) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (61)
c) Hasil dari Persamaan (61) dimasukkan kedalam fungsi invers linear
Persamaan (40) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (40) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (62)
d) Hasil dari Persamaan (62) dimasukkan kedalam fungsi invers linear
Persamaan (41) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (41) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (63)
e) Hasil dari Persamaan (63) dimasukkan kedalam fungsi invers linear
Persamaan (42) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (42) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (64)
f) Hasil dari Persamaan (64) dimasukkan kedalam fungsi invers linear
Persamaan (43) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (43) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (65)
g) Hasil dari Persamaan (65) dimasukkan kedalam fungsi invers linear
Persamaan (44) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (44) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (66)
h) Hasil dari Persamaan (66) dimasukkan kedalam fungsi invers linear
Persamaan (45) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (45) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (67)
i) Hasil dari Persamaan (67) dimasukkan kedalam fungsi invers linear
Persamaan (46) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (46) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (68)
11
j) Hasil dari Persamaan (68) dimasukkan kedalam fungsi invers linear
Persamaan (47) dimana memanggil kunci pembangkit dari Persamaan (25)
dan nilai dari Persamaan (47) untuk adalah jumlah bilangan plainteks,
sehingga menghasilkan
*
+ (69)
k) Hasil dari Persamaan (69) dimasukkan kedalam fungsi invers linear
Persamaan (48) dan nilai dari Persamaan (48) untuk adalah jumlah
bilangan plainteks, sehingga menghasilkan
*
+ (70)
l) Persamaan ( ) diubah kedalam bentuk karakter ASCII sehingga diperoleh
kembali plainteks.
4. Hasil dan Pembahasan
Untuk menguji kriptografi kunci simetris, menggunakan logaritma kuadrat
dan fungsi bernoulli, dilakukan proses enkripsi dan dekripsi. Proses dilakukan
sesuai dengan langkah – langkah yang telah dilakukan pada perancangan.
a) Plainteks yang digunakan UKSW
b) Kunci yang digunakan FTI08
c) Menyiapkan kunci yang yang akan dibangkitkan dengan fungsi logaritma
kuadrat dan fungsi bernoulli.
Dengan mengambil Persamaan (8) maka menghasilkan bilangan
ASCII
* + (71)
Dengan mengambil Persamaan (9) maka
( ) (72)
Dengan mengambil Persamaan (10) maka
(73)
d) Fungsi logaritma kuadrat yang digunakan untuk pembangkit kunci yang
diambil dari Persamaan (13)
Dengan mengambil Persamaan (13) dan masukkan dari Persamaan
(73) maka
( ) ( ) (74)
Dengan mengambil nilai Persamaan (74) dan dikalikan 10 untuk
setiap angka dibelakang koma, maka
(75)
Dengan mengambil Persamaan (75) proses dilanjutkan dengan
modulo 127 maka
mod 127 = 32 (76)
e) Fungsi bernoulli yang digunakan untuk pembangkit kunci yang diambil dari
Persamaan (15)
Dengan mengambil Persamaan (15) dan masukkan dari Persamaan
(73) maka ( )
(77)
12
Dengan mengambil Persamaan (77) proses dilanjutkan dengan
modulo 127 maka
mod 127 = 80 (78)
f) Menyiapkan kunci yang digunakan disetiap putaran dengan mengambil dari
nilai dari Persamaan (76) dan (78)
Dengan merujuk pada Persamaan (17) dan nilai dari Persamaan (76)
dimana = 32 dan p = 2 sehingga
(79)
Dengan merujuk pada Persamaan (18) dan nilai dari Persamaan (78)
dimana = 80 dan p = 3 sehingga
(80)
Dengan merujuk pada Persamaan (19) dan nilai dari Persamaan (78)
dimana = 80 dan p = 7 sehingga
(81)
Dengan merujuk pada Persamaan (20) dan nilai dari Persamaan (76)
dimana = 32 dan p = 4 sehingga
(82)
Dengan merujuk pada Persamaan (21) dan nilai dari Persamaan (76)
dimana = 32 dan p = 5 sehingga
(83)
Dengan merujuk pada Persamaan (22) dan nilai dari Persamaan (78)
dimana = 80 dan p = 9 sehingga
(84)
Dengan merujuk pada Persamaan (23) dan nilai dari Persamaan (78)
dimana = 80 dan p = 2 sehingga
(85)
Dengan merujuk pada Persamaan (24) dan nilai dari Persamaan (76)
dimana = 32 dan p = 6 sehingga
(86)
Dengan merujuk pada Persamaan (25) dan nilai dari Persamaan (76)
dimana = 32 dan p = 5 sehingga
(87)
g) Menyiapkan fungsi linear
Setiap proses enkripsi dan dekripsi menggunakan fungsi linear.
Mengambil fungsi linear dari Persamaan (12) dan diakhiri dengan
proses modulo 127 sehingga
( ) ( ) (88)
Putaran pertama mengambil fungsi linear Persamaan (27) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 5 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (89)
Putaran pertama mengambil fungsi linear Persamaan (28) dan
Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit
yang dimasukkan dengan = dan = 32 lalu diakhiri dengan
proses modulo 127 sehingga
13
( ) ( )mod 127 (90)
Putaran pertama mengambil fungsi linear Persamaan (29) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 2 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (91)
Putaran kedua mengambil fungsi linear Persamaan (30) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 5 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (92)
Putaran kedua mengambil fungsi linear Persamaan (31) dan
Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit
yang dimasukkan dengan = dan = 80 lalu diakhiri dengan
proses modulo 127 sehingga
( ) (
)mod 127
(93)
Putaran kedua mengambil fungsi linear Persamaan (32) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 5 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (94)
Putaran ketiga mengambil fungsi linear Persamaan (33) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 4 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (95)
Putaran ketiga mengambil fungsi linear Persamaan (34) dan
Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit
yang dimasukkan dengan = dan = 80 lalu diakhiri dengan
proses modulo 127 sehingga
( ) (
)mod 127
(96)
Putaran ketiga mengambil fungsi linear Persamaan (35) dan
Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan
= dan = 17 lalu diakhiri dengan proses modulo 127
sehingga
( ) (
)mod 127 (97)
h) Menyiapkan invers fungsi linear
Setiap proses dekripsi menggunakan invers fungsi linear, bentuk secara
umumnya yaitu,
Mengambil invers fungsi linear Persamaan (39) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
17 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (98)
Mengambil invers fungsi linear Persamaan (40) dan Persamaan ( ) serta Persamaan ( )sebagai kunci pembangkit yang dimasukkan
14
dengan = dan = 80 lalu diakhiri dengan proses modulo 127
sehingga
( ) ( )mod 127 (99)
Mengambil invers fungsi linear Persamaan (41) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
4 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (100)
Mengambil invers fungsi linear Persamaan (42) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
5 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (101)
Mengambil invers fungsi linear Persamaan (43) dan Persamaan ( ) serta Persamaan ( ) sebagai kunci pembangkit yang dimasukkan
dengan = dan = 80 lalu diakhiri dengan proses modulo 127
sehingga
( ) ( )mod 127 (102)
Mengambil invers fungsi linear Persamaan (44) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
5 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (103)
Mengambil invers fungsi linear Persamaan (45) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
2 lalu diakhiri dengan proses modulo 127 sehingga
( ) ( )mod 127 (104)
Mengambil invers fungsi linear Persamaan (46) dan Persamaan ( ) serta Persamaan ( )sebagai kunci pembangkit yang dimasukkan
dengan = dan = 32 lalu diakhiri dengan proses modulo 127
sehingga
( ) (
)mod 127 (105)
Mengambil invers fungsi linear Persamaan (47) dan Persamaan ( ) sebagai kunci pembangkit yang dimasukkan dengan = dan =
5 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 (106)
Mengambil invers fungsi linear Persamaan (48) dengan = 2 dan
= 7 lalu diakhiri dengan proses modulo 127 sehingga
( ) (
)mod 127 ( )
i) Menyiapkan Convert Between Base (CBB) yang diambil dari persamaan
(36)
j) Menyiapkan invers Convert Between Base (CBB) yang diambil dari
persamaan (37)
Setelah proses persiapan selesai maka proses enkripsi dapat dimulai. Proses
yang dilakukan dapat dijelaskan sebagai berikut:
15
a) Merujuk pada Persamaan (7), maka diperoleh plainteks yang dikonversi
menjadi urutan bilangan dalam ASCII
* + (108)
b) Baris bilangan dari Persamaan (108) dimasukkan kedalam fungsi linear
pada Persamaan (88), dimana setiap nilai dari Persamaan (108) dikalikan
dengan = 2 dan ditambah = 7 serta diakhiri dengan proses modulo 127
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (109)
c) Hasil dari Persamaan (109) dimasukkan kedalam fungsi linear Persamaan
(89) lalu memanggil kunci pembangkit dari Persamaan (79) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (110)
d) Hasil dari Persamaan (110) dimasukkan kedalam fungsi linear Persamaan
(90) lalu memanggil kunci pembangkit dari Persamaan (80) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (111)
e) Hasil dari Persamaan (111) dimasukkan kedalam fungsi linear Persamaan
(91) lalu memanggil kunci pembangkit dari Persamaan (81) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (112)
f) Hasil dari Persamaan (112) dimasukkan kedalam fungsi linear Persamaan
(92) lalu memanggil kunci pembangkit dari Persamaan (82) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (113)
g) Hasil dari Persamaan (113) dimasukkan kedalam fungsi linear Persamaan
(93) lalu memanggil kunci pembangkit dari Persamaan (83) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (114)
h) Hasil dari Persamaan (114) dimasukkan kedalam fungsi linear Persamaan
(94) lalu memanggil kunci pembangkit dari Persamaan (84) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (115)
i) Hasil dari Persamaan (115) dimasukkan kedalam fungsi linear Persamaan
(95) lalu memanggil kunci pembangkit dari Persamaan (85) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (116)
j) Hasil dari Persamaan (116) dimasukkan kedalam fungsi linear Persamaan
(96) lalu memanggil kunci pembangkit dari Persamaan (86) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (117)
k) Hasil dari Persamaan (117) dimasukkan kedalam fungsi linear Persamaan
(97) lalu memanggil kunci pembangkit dari Persamaan (87) untuk adalah
jumlah bilangan plainteks, sehingga menghasilkan
* + (118)
16
l) Pada Persamaan ( ) kemudian disubtitusikan ke dalam Persamaan (36),
sehingga diperoleh cipherteks
* +
Setelah proses enkripsi selesai dan mendapatkan cipherteks selanjutkan
melakukan proses dekripsi untuk mengembalikan cipherteks menjadi plainteks.
Proses dijelaskan sebagai berikut:
a) Nilai dari cipherteks kemudian disubtitusikan ke dalam Persamaan (37),
sehingga diperoleh
* + (119)
b) Hasil dari Persamaan (119) dimasukkan kedalam fungsi invers linear
Persamaan (98) lalu memanggil kunci pembangkit dari Persamaan (87)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (120)
c) Hasil dari Persamaan (120) dimasukkan kedalam fungsi invers linear
Persamaan (99) lalu memanggil kunci pembangkit dari Persamaan (86)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (121)
d) Hasil dari Persamaan (121) dimasukkan kedalam fungsi invers linear
Persamaan (100) lalu memanggil kunci pembangkit dari Persamaan (85)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (122)
e) Hasil dari Persamaan (122) dimasukkan kedalam fungsi invers linear
Persamaan (101) lalu memanggil kunci pembangkit dari Persamaan (84)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (123)
f) Hasil dari Persamaan (123) dimasukkan kedalam fungsi invers linear
Persamaan (102) lalu memanggil kunci pembangkit dari Persamaan (83)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (124)
g) Hasil dari Persamaan (124) dimasukkan kedalam fungsi invers linear
Persamaan (103) lalu memanggil kunci pembangkit dari Persamaan (82)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (125)
h) Hasil dari Persamaan (125) dimasukkan kedalam fungsi invers linear
Persamaan (104) lalu memanggil kunci pembangkit dari Persamaan (81)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (126)
i) Hasil dari Persamaan (126) dimasukkan kedalam fungsi invers linear
Persamaan (105) lalu memanggil kunci pembangkit dari Persamaan (80)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
* + (127)
j) Hasil dari Persamaan (127) dimasukkan kedalam fungsi invers linear
Persamaan (106) lalu memanggil kunci pembangkit dari Persamaan (79)
untuk adalah jumlah bilangan plainteks, sehingga menghasilkan
17
* + (128)
k) Hasil dari Persamaan (128) dimasukkan kedalam fungsi invers linear
Persamaan (107) untuk adalah jumlah bilangan plainteks, sehingga
menghasilkan
* + (129)
l) Persamaan ( ) kemudian diubah ke dalam bentuk karakter sesuai ASCII
sehingga diperoleh plainteks UKSW.
Berdasarkan penjelasan diatas, terbukti bahwa perancangan kriptografi
simetris menggunakan logaritma kuadrat dan fungsi bernoulli dapat melakukan
proses enkripsi dan dekripsi, sehingga dapat dikatakan sebagai sebuah sistem
kriptografi.
Stinson [6], menyatakan bahwa sebuah kriptografi harus memenuhi 5 tuple
P, C, K, E, D. Oleh karena itu akan ditunjukkan perancangan ini memenuhi
kelima kondisi tersebut.
P adalah himpunan berhingga dari plainteks. Rancangan kriptografi ini
menggunakan plainteks berupa 127 karakter yang ekuivalen dengan
ASCII, dan bilangan ASCII adalah sekumpulan karakter yang sebanding
dengan jumlah bilangan yang semuanya terbatas dalam sebuah himpunan
yang berhingga. Maka himpunan plainteks pada perancangan kriptografi
simetris adalah himpunan berhingga.
C adalah himpunan berhingga dari cihperteks. Cipherteks dihasilkan
dalam elemen bit (bilangan 0 dan 1). Karena himpunan cipherteks hanya
{0,1}, maka himpunan cipherteks yang dihasilkan pada perancangan
kriptografi simetris merupakan elemen terbatas karena hanya
menghasilkan elemen bit.
K merupakan ruang kunci (Keyspace), adalah himpunan berhingga dari
kunci. Penggunaan logaritma kuadrat bernoulli adalah fungsi dan kunci
yang digunakan dalam proses kriptografi. Maka dari itu kunci yang
digunakan dalam perancangan ini adalah ruang kunci.
Untuk setiap , terdapat aturan enkripsi dan berkorespodensi
dengan aturan dekripsi Setiap dan adalah
fungsi sedemikian hingga ( ( )) untuk setiap plainteks Kondisi ke-4 ini secara menyeluruh, terdapat kunci yang dapat melakukan
proses enkripsi sehingga merubah plainteks menjadi cipherteks dan dapat
melakukan proses dekripsi yang merubah cipherteks ke plainteks.
Sebelumnya telah dibuktikan dengan plainteks UKSW juga dapat
melakukan proses enkripsi dan dekripsi dengan merubah cipherteks
menjadi plainteks. Perancangan ini telah memenuhi tuple ini.
Berdasarkan penjelasan diatas, terbukti bahwa proses perancangan
kriptografi menggunakan fungsi logaritma kuadrat dan bernoulli serta dapat
melakukan proses enkripsi dan dekripsi dengan merubah plainteks ke cipherteks
begitu sebaliknya, maka modifikasi kriptografi ini memenuhi syarat sebuah
sistem kriptografi.
18
Aplikasi kriptografi kunci simetris dapat melakukan proses enkripsi dan
dekripsi pada data teks yang menghasilkan cipherteks dalam bentuk bilangan bit
biner. Aplikasi menggunakan logaritma kuadrat dan fungsi bernoulli sebagai
pembangkit kunci pada proses enkripsi dan dekripsi. Setiap proses putaran
menggunakan fungsi linier dan invers fungsi linear sebanyak tiga putaran dengan
menggunakan kunci yang sudah dibangkitkan.
Gambar 4 Proses Enkripsi
Gambar 4 merupakan tampilan proses enkripsi dan dekripsi. Plainteks yang
dimasukkan yaitu UKSW. Kunci dimasukkan kata FTI08 lalu proses enkripsi
dimulai dengan menekan tombol “Enkripsi” sehingga menghasilkan cipherteks
dalam bentuk bit biner. Proses dekripsi membutuhkan masukkan kunci yang sama
pada proses enkripsi kemudian tekan tombol “Dekripsi”.
Dalam inputan kunci tidak dapat menggunakan karakter spasi. Sedangkan
panjang plainteks yang telah dicoba sampai sebanyak 2000 karakter, namun
batasan inputan plainteks belum diketahui. Jumlah kunci yang dimaksukkan dapat
melebihi jumlah plainteks.
Berikut ini akan ditunjukkan grafik pengujian banyak pesan teks terhadap
waktu dan memori. Hasil uji perancangan kriptografi kunci simetris ini
dibandingkan dengan penelitian terdahulu yaitu perancangan kriptografi kunci
simetris menggunakan akar kubik fungsi linear dan fungsi Chebyshev orde 2.
19
Gambar 5 Pengujian Banyak Pesan Teks terhadap Memori
Gambar 6 Pengujian Banyak Pesan Teks terhadap Waktu
Berdasarkan Gambar 5 dan Gambar 6 terlihat bahwa ada perbedaan dalam
penggunaan memori dan waktu. Pada perancangan kriptografi ini (KLB) terjadi
peningkatan waktu dan memory yang signifikan pada inputan plainteks 400
sampai dengan 800, hal tersebut dikarenakan fungsi linear yang digunakan dalam
setiap putaranya. Pada penelitian yang terdahulu (KAC) juga terjadi fenomena
yang sama, tetapi alokasi waktu dan memory yang digunakan lebih banyak karena
kunci CBB yang digunakan lebih besar dari kriptografi (KLB).
15,5 15,55 15,55 15,55 15,55
43,6 43,6
25,75 25,75 25,75 25,75 25,75
63,25 63,25
0
10
20
30
40
50
60
70
0 200 400 600 800 1000
Me
mo
ri (
M)
Karakter Plainteks KLB KAC
2,23 2,23 2,27 2,3 2,6
5,5 5,5
3,5 3,6 3,7 3,9 4,4
7,3 7,5
0
1
2
3
4
5
6
7
8
0 200 400 600 800 1000
Wak
tu (
s)
Karakter Plainteks KLB KAC
20
Tabel 1 Nilai Kemiringan Waktu dan Memory dengan Plainteks
Nilai Kemiringan Waktu dengan
Plainteks
Nilai Kemiringan Memory dengan
Plainteks
Plainteks KLB KAC Plainteks KLB KAC
10 - 50 0 0,0025 10 - 50 0 0
50 - 100 0,001 0,002 50 - 100 0 0
100 - 200 0,0003 0,002 100 - 200 0 0
200 - 400 0,0015 0,0025 200 - 400 0 0
400 - 800 0,0075 0,00725 400 - 800 0,070125 0,09375
800 - 100 0 0,001 800 - 100 0 0
Berikut contoh perhitungan nilai kemiringan waktu dengan plainteks data
pertama pada Tabel 1 adalah
. Inputan plainteks dari 400 sampai
dengan 800 pada (KLB) terdapat kemiringan 0,0075, sedangkan pada (KAC)
sebesar 0,00725. Penggunaan waktu dan memory pada (KLB) lebih sedikit
dibandingkan dengan (KAC). Meskipun pada (KLB) menggunakan fungsi
bernoulli dan logaritma kuadrat yang menghasilkan nilai yang besar tetapi hasil
tersebut dilakukan proses modulo 127 sehingga menjadi lebih kecil, dan nilai
tersebut yang di masukkan dalam setiap putaran.
5. Simpulan
Dari hasil penelitian kriptografi kunci simetris menggunakan, fungsi
logaritma kuadrat dan fungsi Bernoulli sebagai kunci pembangkit dapat
melakukan proses enkripsi dan dekripsi, sehingga dapat dikatakan sebagai sebuah
sistem kriptografi karena sudah memenuhi 5 tuple P, C, K, E, D. Cipherteks yang
dihasilkan dalam modifikasi berupa bilangan bit sehingga dapat disejajarkkan
dengan metode kriptografi modern lainya yang menghasilkan cipherteks dalam
bentuk bit biner.
6. Daftar Pustaka
[1] Rachmawati, M. V. & Wowor, A. D. 2013. Penggunaan Fungsi Rasional,
Logaritma Kuadrat, dan Polinomial orde- dalam Modifikasi Kriptografi.
Salatiga: Skripsi-S1 Sarjana Universitas Kristen Satya Wacana.
[2] Singh, R. P. & Sarma, B. K. 2013. Public key cryptography using
Permutation P-Polynomials over Finite Fields. Guwahati: Indian Institute of
Technology.
[3] Stewart, James. 2008. Kalkulus, Erlangga: Jakarta
[4] Maplesoft. 2012. Bernoulli: compute Bernoulli numbers and polynomials,
Maple-16, Waterloo: Waterloo Maple Inc.
[5] Maplesoft. 2012. Convert/Base: Convert Between Base, Maple-16,
Waterloo: Waterloo Maple Inc.
21
[6] Stinson, D.R. 1995. Cryptography Theory and Practice. Florida: CRC
Press, Inc.