Implementasi Kombinasi Algoritma Beaufort Dan Algoritma Spritz Dalam Skema Super Enkripsi Untuk Pengamanan Teks
BAB 2
LANDASAN TEORI
2.1
Kriptografi
2.1.1 Definisi Kriptografi
Kriptografi berasal dari bahasa Yunani yang terdiri dari dua kata yaitu crypto dan
graphia. Crypto berarti rahasia dan graphia berarti tulisan. Jadi secara etimologi
kriptografi adalah tulisan rahasia. Secara terminologi,kriptografi adalah ilmu dan seni
untuk menjaga kemananan pesan ketika pesan dikirim dari suatu tempat ke tempat
yang lain. Kriptografi adalah ilmu untuk mempelajari teknik-teknik matematika yang
berhubungan dengan aspek-aspek pada keamanan informasi misalnya kerahasiaan
(confidentiality), integritas (integrity), otentikasi (authentication) (Munir, 2006).
Dalam Perkembangannya, kriptografi juga dimanfaatkan untuk mengidentifikasi
pengiriman pesan dan tanda tangan digital serta keaslian pesan dengan menggunakan
sidik jari digital (Ariyus,2008).
Teknik kriptografi yang digunakan dalam penyandian pesan dilakukan dengan
menyembunyikan atau mengodekan pesan yang asli. Selanjutnya, pengirim pesan
akan melakukan penyandian pesan awal menjadi kode-kode yang hanya dapat dibaca
oleh penerima pesan tersebut. Proses ini disebut dengan Enkripsi . Penerima pesan
kemudian mengembalikan kode-kode yang telah diterima menjadi pesan asli dengan
menggunakan kunci yang dikirimkan oleh pengirim pesan. Proses ini disebut dengan
Dekripsi (Schneier, 1996). Pada gambar 2.1 memnunjukkan proses enkripsi dan
dekripsi.
Gambar 2.1 Diagram Proses Enkripsi dan Dekripsi
Universitas Sumatera Utara
Pesan awal dalam sistem kriptografi disebut juga sebagai plaintext
(disimbolkan dengan p), yaitupesan yang hendak dikirimkan yang berisi data asli.
Sedangkan pesan setelah dienkripsi disebut dengan ciphertext (disimbolkan dengan
c),pesan yang ada pada chipertext tidak bisa dibaca karena berisi karakter-karakter
yang tidak memiliki makna (arti). Kunci yang dikirimkan pengirim kepada penerima
pesan yang kemudian untuk melakukan
proses dekripsi disebut dengan key
(disimbolkan dengan k). Enkripsi yaitu
proses pengubahan plaintextmenjadi
ciphertext disimbolkan dengan E(p) sedangkan dekripsi yaitu mengubahciphertext
menjadi plaintext, sehingga menghasilkan data awal/asli. disimbolkan dengan D(c)
(Schneier, 1996).
Suatu algoritma dikatakan aman, bila tidak ada cara ditemukan plaintext nya.
Karena selalu terdapat kemungkinan ditemukannya cara baru untuk menembus
algoritma kriptografi, maka algoritma kriptografi yang dikatakan aman apabila
memiliki keadaan sebagai berikut (Yusuf, 2004):
a. Bila harga untuk menjebol algoritma lebih besar daripada nilai informasi yang
dibuka, maka algoritma itu cukup aman.
b. Bila waktu yang digunakan untuk membobol algoritma tersebut lebih lama daripada
lamanya waktu yang diperlukan oleh informasi tersebut harus tetap aman, maka
algoritma tersebut mungkin aman.
c. Bila jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih sedikit
dari jumlah data yang diperlukan untuk menembus algoritma tersebut, maka
algoritma itu aman.
2.1.2 Tujuan Kriptografi
Tujuan dari kriptografi yang juga merupakan aspek keamanan informasi adalah
sebagai berikut (Menezes,et al., 1996):
1.
Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk menjaga isi
informasi dari semua pihak kecuali pihak yang berwenang untukmendapatkan
informasi.Confidentiality senada dengan istilah secrecy dan privacy. Ada
beberapa cara untuk menjaga kerahasiaan, dari pengamanan secara fisik hingga
penggunaan algoritma matematika yang membuat data tidak dapat dimengerti.
2.
Integritasdata (data integrity) adalah layanan penjagaan pengubahan data dari
pihak yang tidak berwenang atas informasi tersebut. Untuk menjamin integritas
Universitas Sumatera Utara
data, sistem harus mempunyai kemampuan untuk mendeteksi terjadinya
manipulasi data oleh pihak-pihak yang tidak berkepentingan. Manipulasi data
yang dimaksud di sini meliputi penyisipan, penghapusan, maupun penggantian
data.
3.
Otentikasi(Authentication) adalah layanan yang berhubungan dengan identifikasi,
baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user
authentication atau entity authentication) maupun mengidentifikasi kebenaran
sumber pesan (data origin authentication). Beberapa pihak yang berkomunikasi
harus mengidentifikasi satu sama lainnya. Informasi yang didapat oleh suatu
pihak dari pihak lain harus diidentifikasi untuk memastikan keaslian dari
informasi yang diterima. Identifikasi terhadap suatu informasi dapat berupa
tanggal pembuatan informasi, isi informasi, waktu kirim dan hal-hal lainnya yang
berhubungan dengan informasi tersebut.
4.
Nirpenyangkalan (non-repudiation) adalah layanan untuk mencegah pihak-pihak
yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal
melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
2.1.3 Sistem Kriptografi Klasik
Sistem kriptografi klasik digunakan beberapa abad yang lalu sebelum adanya
komputer. Penyandian pesan dilakukan karakter per karakter. Terdapat dua metode
yang dilakukan untuk menyandikan pesan pada sistem kriptografi klasik, yaitu Teknik
Substitusi
dan
Teknik
Transposisi.Tekniksubstitusi
dilakukan
dengan
cara
penggantian setiap karakter teks asli dengan karakter lain. Sedangkan Teknik
transposisi dilakukan pengacakan urutan karakter tanpa mengganti karakter pada
pesan tersebut (Ariyus, 2012).
2.1.4 Sistem Kriptografi Modern
Pengembangan sistem kriptografi modern didorong oleh perkembangan komputer
yang merepresentasikan data dalam bentuk bilangan biner. Sistem kriptografi modern
tidak lagi menggunakan mode karakter untuk proses enkripsi dan dekripsi, tetapi
menggunakan mode bit. Algoritma kriptografi dengan mode bit dapat dikelompokkan
menjadi dua bagian, yaitu Cipher Aliran (Stream Cipher) dan Cipher Blok (Block
Cipher). Stream Cipher mengenkripsi atau mendekripsi pesan bit per bit. Sedangkan
Universitas Sumatera Utara
Block Cipher mengenkripsi atau mendekripsikan pesan dalam bentuk blok bit dengan
panjang bit yang telah ditentukan sebelumnya (Sadikin, 2012).
2.1.5 Jenis Algoritma Kriptografi
Algoritma kriptografi dapat diklasifikasikan menjadi dua jenis berdasarkan kuncinya,
yaitu algoritma simetris dan algoritma asimetris (Prayudi, 2005).
1. Algoritma Simetris
Algoritma ini disebut simetris karena memiliki key atau kunci yang sama dalam proses
enkripsi dan dekripsi sehingga algoritma ini juga sering disebut algoritma kunci
tunggal atau algoritma satu kunci. Key dalam algoritma ini bersifat rahasia atau
private key sehingga algoritma ini biasa disebut dengan algoritma kunci rahasia
(Prayudi, 2005). Contoh algoritma simetris yaitu Beaufort, Spritz, Blowfish, Twofish,
DES(Data Encryption Standard).
2. Algoritma Asimetris
Algoritma ini disebut asimetris karena kunci yang digunakan untuk enkripsi berbeda
dengan kunci yang digunakan untuk dekripsi. Kunci yang digunakan untuk enkripsi
adalah kunci publik atau public key sehingga algoritma ini disebut dengan algoritma
kunci publik. Sedangkan kunci untuk dekripsi menggunakan kunci rahasia atau
private key (Prayudi, 2005). Contoh algoritma asimetris yaitu RSA(Riverst Shamir
Adleman), ECC(Elliptic Curve Cryptography),Elgamal.
2.2
Algoritma Beaufort
Algoritma Beaufort ditemukan oleh Laksamana Sir Francis Beaufort, Royal Navy.
Algoritma Beaufort merupakan salah satu varian dari metode Vigenère Cipher
(Widyastuti, 2014). Proses enkripsi dan dekripsi pada algoritma Beaufort
menggunakan sebuah tabel yang disebut dengan tabel Beaufort (Tassel, 1969).
Universitas Sumatera Utara
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Tabel 2.1 Tabel Beaufort
A B C D E F G H I J K L M N O P Q R S T U V W XY Z
A B C D E F G H I J K L M N O P Q R S T U V W XY Z
B C D E F G H I J K L M N O P Q R S T U V W XY Z A
C D E F G H I J K L M N O P Q R S T U V W XY Z A B
D E F G H I J K L M N O P Q R S T U V W XY Z A B C
E F G H I J K L M N O P Q R S T U V W XY Z A B C D
F G H I J K L M N O P Q R S T U V W XY Z A B C D E
G H I J K L M N O P Q R S T U V W XY Z A B C D E F
H I J K L M N O P Q R S T U V W XY Z A B C D E F G
I J K L M N O P Q R S T U V W XY Z A B C D E F G H
J K L M N O P Q R S T U V W XY Z A B C D E F G H I
K L M N O P Q R S T U V W XY Z A B C D E F G H I J
L M N O P Q R S T U V W XY Z A B C D E F G H I J K
M N O P Q R S T U V W XY Z A B C D E F G H I J K L
N O P Q R S T U V W XY Z A B C D E F G H I J K L M
O P Q R S T U V W XY Z A B C D E F G H I J K L M N
P Q R S T U V W XY Z A B C D E F G H I J K L M N O
Q R S T U V W XY Z A B C D E F G H I J K L M N O P
R S T U V W XY Z A B C D E F G H I J K L M N O P Q
S T U V W XY Z A B C D E F G H I J K L M N O P Q R
T U V W XY Z A B C D E F G H I J K L M N O P Q R S
U V W XY Z A B C D E F G H I J K L M N O P Q R S T
V W XY Z A B C D E F G H I J K L M N O P Q R S T U
W XY Z A B C D E F G H I J K L M N O P Q R S T U V
XY Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z A B C D E F G H I J K L M N O P Q R S T U V W XY
Baris paling atas pada tabel 2.1 menyatakan huruf dari plaintext. Proses
enkripsi dilakukan dengan cara menarik garis vertikal dari plaintext sampai kepada
karakter key yang telah ditentukan, selanjutnya tarik garis horizontal dari karakter key
yang telah ditentukan sampai kolom pertama. Karakter pada kolom pertama tersebut
adalah ciphertext yang diperoleh. Proses dekripsi dilakukan berlawanan dengan
enkripsi. Proses ini dimulai dengan memilih ciphertext dari kolom pertama kemudian
tarik garis lurus sampai menemukan karakter key yang telah ditentukan, selanjutnya
ditarik garis vertikal ke atas dari karakter key tersebut sampai ke baris pertama.
Karakter pada baris pertama merupakan plaintext (Tassel, 1969).
Berikut adalah contoh proses enkripsi dengan menggunakan tabel 1:
Plaintext
:TIARAHMADIANTI
Kunci
:IMILKOMHIMATIF
Ciphertext
:PEIUKHAHFEAGPX
Universitas Sumatera Utara
Namun, pada saat ini algoritma beaufort tidak hanya bisa mengenkripsi dan
dekripsi huruf saja tetapi angka maupun simbol-simbol yang terdapat pada tabel
ASCII bisa di enkripsi dan dekripsi. Dalam perkembangan sistem komputasi modern,
karakter atau simbol biasanya direpresentasikan dalam bentuk ASCII. Setiap karakter
atau simbol yang muncul di layar komputer memiliki kode ASCII yang berbeda dan
panjang masing-masing kode ASCII dalam biner adalah 8 bit (Budiman and
Rachmawati, 2017).
Tabel 2.2 Tabel List Karakter
0
1 2 3
4 5 6
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
A B C D E F G H I J
K
L
M N
O
P
Q
R
S
T
U V
W X
Y Z
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
a
b
c
d
e
f
g
h
i
J
k
l
m
n
o
P
q
r
s
t
u
v
w
x
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
y
z
0
1
2
3
4
5
6
7
8
9
sp
!
"
#
$
%
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
-
.
/
:
;
<
=
>
?
@
[
\
]
^
_
`
{
|
&
'
(
)
*
,
93 94 95 96 97 98 99
}
~
¢
€
£
Pada tabel 2.2 menunjukkan list karakter yang akan digunakan. Adapun list karakter
yang digunakan sebanyak 100 karakter. Proses enkripsi dan dekripsi algoritma
Beaufort Cipher dirumuskan sebagai berikut:
C i ≡ Ki−P i (mod n) ------------------ (1)
P i ≡ Ki−C i (mod n) ------------------(2)
dimana � merupakan plaintext, � adalah key, � adalah ciphertext yang diperoleh dan
� adalah jumlah karakter yang digunakan (Mollin, 2007).
Berikut adalah contoh proses enkripsi dan dekripsi :
Plaintext : TIA RAHMADIANTI
Kunci
+
: Fasilkom-TI USU
Universitas Sumatera Utara
¥
©
Tabel 2.3 Tabel Enkripsi Beaufort
Plaintext (Pi)
Kunci (Ki)
Ciphertext (Ci)
Karakter
5
�� ≡ �� − �� (��� 100)
86
\
a
26
18
S
0
s
44
44
s
spasi
62
i
34
72
*
R
17
l
37
20
U
A
0
k
36
36
k
H
7
o
40
33
h
M
12
m
38
26
a
A
0
-
75
75
-
D
3
T
19
16
Q
I
8
I
8
0
A
A
0
spasi
62
62
spasi
N
13
U
20
7
H
T
19
S
18
99
©
I
8
U
20
12
M
Karakter
Indeks
Karakter
T
19
F
I
8
A
Indeks
Pada tabel 2.3 dihasilkan ciphertext melalui fungsi enkripsi Beaufort. Fungsi enkipsi
Beaufort untuk menghasilkan ciphertext diperoleh dengan operasi pengurangan indeks
kunci terhadap indeks plaintext.
Tabel 2.4 Tabel Dekripsi Beaufort
Ciphertext(Ci)
Kunci (Ki)
Plaintext(Pi)
�� ≡ �� − �� (��� 100)
Karakter
19
T
26
8
I
s
44
0
A
72
i
34
62
Spasi
U
20
l
37
17
R
k
36
k
36
0
A
h
33
o
40
7
H
a
26
m
38
12
M
-
75
-
75
0
A
Q
16
T
19
3
D
A
0
I
8
8
I
Karakter
Indeks
Karakter
Indeks
\
86
F
5
S
18
a
s
44
*
Universitas Sumatera Utara
spasi
62
spasi
62
0
A
H
7
U
20
13
N
©
99
S
18
19
T
M
12
U
20
8
I
Pada tabel 2.4 dihasilkan plaintextseperti semula yaitu “ TIA RAHMADIANTI”
melalui fungsi dekripsiBeaufort. Fungsi dekripsiBeaufort untuk menghasilkan
plaintextdiperoleh dengan operasi pengurangan indeks kunci terhadap indeks
ciphertext.
2.3
Algoritma Spritz
Pada tahun 2014, perancang algoritma RC4, Ron Rivest, dan Jacob Schultz
merancang sebuah pembaharuan dari desain algoritma RC4 yang diberi nama Spritz
(Rivest dan Schuldt, 2014). Spritz merupakan sebuah varian dari RC4 yang
mengimplementasikan sponge-based construction dalam penghasilan kunci rahasia
dan proses enkripsi. Tingginya kompleksitas dari algoritma Spritz karena spongebased construction meningkatkan keamanan dari algoritma RC4. Namun, karena
algoritma Spritz meningkatkan kompleksitas dari RC4, maka waktu yang digunakan
untuk mengenkripsi sebuah data juga meningkat meskipun tingkat keamanan dari
algoritma Spritz lebih tinggi dari RC4 (Rivest dan Schuldt, 2014). Spritz termasuk
algoritma stream cipher. Stream cipher merupakan algoritma yang mengenkripsi
pesan satu per satu karakter dengan menggunakan transformasi enkripsi yang
bergantung pada waktu yang singkat. Algoritma Spritz termasuk algoritma kriptografi
kunci simetrik. Algoritma ini memiliki dua bagian utama: Key Scheduling Algorithm
(KSA) dan Pseudo-Random Generation Algorithm (PRGA).
2.3.1 Key Scheduling Algorithm (KSA)
Key-Scheduling Algorithm (KSA) pada Algoritma Spritz sama dengan algoritma RC4
yaitu menghasilkan permutasi dari 256 kemungkinan bytes yang ada pada array S.
Universitas Sumatera Utara
Tabel 2.5 Key Scheduling Algorithm (KSA)
for i from 0 to 255
S[i] := i
endfor
j := 0
for i from 0 to 255
j := (j + S[i] + key[i mod keylength]) mod 256
swap values of S[i] and S[j]
endfor
Dimana S adalah permutasi 256-byte yang diinisialisasikan KSA dan variabel i dan j
merupakan variabel integer yang mempunyai nilai awal 0.
2.3.2 Pseudo-Random Generation Algorithm (PRGA)
Pseudo-Random Generation Algorithm (PRGA) berbeda dengan algoritma RC4.
Pseudo-Random Generation Algorithm(PRGA) untuk mendapatkan byte acak untuk
enkripsi.
Tabel 2.6Pseudo-Random Generation Algorithm(PRGA)
For a from 0 toplaintext-1
i=i+w
j = k + S[j + S[i]]
k = i + k + S[j]
swap S[i] with S[j]
z = S[j + S[i + S[z + k]]]
output z
EndFor
dimana w adalah relatif prima dengan panjang S. Variabel i, j, k merupakan variabel
integer yang mempunyai nilai awal 0
dan z merupakan variabel integer yang
merupakan output dan mempunyai nilai awal 0.
Tabel 2.7 Larik 256 byte hasil perhitungan tahap key scheduling
0
1
2
3
4
5
114 92
12
64
47
172 32
122 154 186 236 102 218 15
14
16
17
18
19
21
22
23
24
127 132 183 191 129 31
55
6
220 88
15
163 74
6
20
7
8
9
10
11
25
12
26
13
27
166 131
Universitas Sumatera Utara
28
29
34
35
36
37
38
39
178 7
243 142 105 224 44
19
23
71
40
136 59
152
42
43
44
45
46
47
48
49
50
51
52
53
54
55
149 79
66
41
126 35
87
98
81
60
107 113 97
20
56
58
59
60
61
62
63
64
65
66
68
69
106 193 109 11
90
116 125 240 29
253 101 210 43
91
70
73
74
75
79
83
117 2
223 84
50
137 77
185 121 226 175 158 228 65
84
85
86
88
89
91
16
192 234 28
98
99
57
71
30
72
31
87
32
33
171 78
76
90
77
78
92
93
80
94
135 214 213 145 34
67
81
95
40
82
96
169 0
41
97
205
100 101 102 103 104 105 106 107 108 109 110 111
159 161 56
151 227 139 217 237 209 207 76
202 24
189
112 113 114 115 116 117 118 119 120 121 122 123 124 125
85
249 180 254 246 221 115 245 168 195 22
244 219 230
126 127 128 129 130 131 132 133 134 135 136 137 138 139
72
157 206 201 104 89
197 231 200 53
176 26
9
112
140 141 142 143 144 145 146 147 148 149 150 151 152 153
54
177 232 199 196 75
25
241 33
18
1
208 58
165
154 155 156 157 158 159 160 161 162 163 164 165 166 167
138 212 86
190 83
93
167 252 63
30
68
82
17
250
168 169 170 171 172 173 174 175 176 177 178 179 180 181
204 248 100 61
148 62
118 10
155 67
247 130 80
21
182 183 184 185 186 187 188 189 190 191 192 193 194 195
153 5
203 242 238 111 37
233 110 188 134 229 13
211
196 197 198 199 200 201 202 203 204 205 206 207 208 209
120 173 147 162 144 251 57
164 235 124 38
14
48
108
210 211 212 213 214 215 216 217 218 219 220 221 222 223
46
27
222 69
94
45
70
181 216 141 156 239 187 146
224 225 226 227 228 229 230 231 232 233 234 235 236 237
215 123 194 119 255 73
184 182 170 150 49
128 225 42
238 239 240 241 242 243 244 245 246 247 248 249 250 251
143 4
96
140 179 198 3
52
36
160 174 8
51
99
Universitas Sumatera Utara
252 253 254 255
39
103 133 95
Misalkan pada tahap key schedulling menghasilkan larik S seperti yang
ditunjukkan oleh tabel 2.7 dan pesan yang akan dienkripsi adalah “rc4” dengan kode
ASCII 114, 99 dan 52. Ciphertext akan dihitung dengan menginisialisasikan nilai i, j,
k, z dengan nilai 0 dan w merupakan nilai acak yang relatif prima dengan 256 dan
setiap baris di modulo dengan 256. Hasil perhitungan pertama adalah:
i=i+w
= 0+149 mod 256 = 149
j = k + S[j + S[i]]
= 0 + S[0 + S[149]] mod 256
= 0 + S[18] mod 256
= S[18] = 183
k = i + k + S[j]
= 149 + 0 + S[183] mod 256
= 149 + 5 mod 256
= 154
S[i] , S[j]
= S[i] = S[149] = 18, S[j] = S[ 183] = 5
SwapS[i] withS[j]
= S[i] = S[149] = 5, S[j] = S[183] = 18
z = S[j + S[i + S[z + k]]]
= S[183 + S[149 + S[0 + 154]]] mod 256
= S[183 + S[149 + 138]] mod 256
= S[183 + S[31] mod 256
= S[183 + 142] mod 256
= S[69] = 91
Kemudian lakukan operasi XOR pada karakter pertama plaintext yang dihasilkan
yaitu karakter “r” yang bernilai 114 dengan output z yang dihasilkan adalah 91.
Dengan cara sebagai berikut :
114 = 01110010
91 = 01011011 ⊕
= 00101001
= 41 10 dalam tabel ASCII merupakan karakter “)”.
Proses perhitungan tersebut diulang sampai karakter terakhir plaintext. Algoritma
yang sama juga digunakan untuk proses dekripsi.
Universitas Sumatera Utara
2.4
Super Enkripsi
Super Enkripsi merupakan metode pengkombinasian antara kedua algoritma yang
bertujuan untuk mendapatkan cipher yang lebih kuat sehingga sangat sulit untuk
dipecahkan, dan juga untuk mengatasi penggunaan cipher tunggal yang secara
komparatif lemah (Setyaningsih.,dkk,2011).
Super enkripsi tidak mudah untuk dipecahkan karena proses enkripsinya
dilakukan sebanyak dua kali atau lebih sehingga ciphertext yang dihasilkan juga
jumlahnya sebanyak dua buah atau lebih (Halim,2007).
2.5
Kompleksitas Algoritma
Algoritma yang efisien adalah algoritma yang meminimumkan kebutuhan waktu dan
ruang. Dengan menganalisis beberapa algoritma untuk suatu masalah,dapat
diidentifikasi satu algoritma yang paling efisien. Besaran yang digunakan untuk
menjelaskan model pengukuran waktu dan ruang ini adalah kompleksitas algoritma.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi
yang dibutuhkan algoritma tersebut untuk mendapatkan hasil yang diinginkan.
Algoritma yang dapat memperoleh hasil yang diinginkan dalam waktu yang singkat
memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu
yang lama untuk memperoleh hasil tersebut mempunyai kompleksitas yang tinggi
(Azizah, 2013).
Untuk
menghitung kompleksitas algoritma digunakan kode program
menggunakan tabel yang berisi kolom C, kolom # dan kolom � � #. Dimana kolom C
merupakan kolom yang menunjukkan berapa kali processor melakukan komputasi.
Kolom # menunjukkan variabel untuk menghitung pengerjaan satu baris program.
Kolom � � # untuk menghitung hasil perkalian kolom C dan kolom #.
(�)=��#� ------------------ (3)
Hasil dari kolom �� # dijumlahkan berdasarkan persamaan (3), sehingga
diperoleh hasil kompleksitas algoritma (Cormen., et al, 2009).
Universitas Sumatera Utara
2.6
Penelitian yang Relevan
Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan
oleh penulis antara lain adalah sebagai berikut:
1. Widyastuti (2012) mengimplementasikan kriptografi super enkripsi dengan
menggabungkan dua algoritma yaitu Playfair dan Vigenère Cipher
membuktikan bahwa algoritma super enkripsi ini efektif dan aman digunakan.
2. Nurnawati
(2008)
VigenèreCipher
menganalisis
dengan
mode
kriptografi
operasi
menggunakan
Cipher
Block
algoritma
Chainng(CBC)
membuktikan bahwa algoritma Vigenère hanya menampung 26 huruf alfabet
dalam bentuk huruf kecil dan tanda baca yang lainnya tidak dapat terbaca.
3. Rivest dan Schuldt (2014) membuktikan bahwa algoritma Spritz meningkatkan
kompleksitas dari RC4, maka waktu yang digunakan untuk mengenkripsi
sebuah data juga meningkat dan tingkat keamanan dari algoritma Spritz lebih
baik dari RC4.
4. Syuhada(2016) membuktikan bahwa Algoritma RC4 merupakan algoritma
kriptografi simetris yang dalam penggunaannya memiliki keunggulan pada
kecepatan dan kemudahan dalam proses perhitungan.
5. Weerasinghe(2012) dalam penelitian nya yang berjudul Analysis of a Modified
RC4 Algorithm menyatakan bahwa algoritma yang dimodifikasi lebih baik
daripada RC4 yang asli dalam segi kerahasiaan dan performa.
6. Soofi.,et al(2016) melakukan penelitian yang berjudul An Enhanced Vigenère
Cipher For Data Security membuktikan bahwa kelemahan penting pada
algoritma Vigenère Cipher yaitu perulangan pada kunci nya. Jika kriptanalis
benar menebak panjang kunci maka ciphertext akan mudah di sadap.
Universitas Sumatera Utara
LANDASAN TEORI
2.1
Kriptografi
2.1.1 Definisi Kriptografi
Kriptografi berasal dari bahasa Yunani yang terdiri dari dua kata yaitu crypto dan
graphia. Crypto berarti rahasia dan graphia berarti tulisan. Jadi secara etimologi
kriptografi adalah tulisan rahasia. Secara terminologi,kriptografi adalah ilmu dan seni
untuk menjaga kemananan pesan ketika pesan dikirim dari suatu tempat ke tempat
yang lain. Kriptografi adalah ilmu untuk mempelajari teknik-teknik matematika yang
berhubungan dengan aspek-aspek pada keamanan informasi misalnya kerahasiaan
(confidentiality), integritas (integrity), otentikasi (authentication) (Munir, 2006).
Dalam Perkembangannya, kriptografi juga dimanfaatkan untuk mengidentifikasi
pengiriman pesan dan tanda tangan digital serta keaslian pesan dengan menggunakan
sidik jari digital (Ariyus,2008).
Teknik kriptografi yang digunakan dalam penyandian pesan dilakukan dengan
menyembunyikan atau mengodekan pesan yang asli. Selanjutnya, pengirim pesan
akan melakukan penyandian pesan awal menjadi kode-kode yang hanya dapat dibaca
oleh penerima pesan tersebut. Proses ini disebut dengan Enkripsi . Penerima pesan
kemudian mengembalikan kode-kode yang telah diterima menjadi pesan asli dengan
menggunakan kunci yang dikirimkan oleh pengirim pesan. Proses ini disebut dengan
Dekripsi (Schneier, 1996). Pada gambar 2.1 memnunjukkan proses enkripsi dan
dekripsi.
Gambar 2.1 Diagram Proses Enkripsi dan Dekripsi
Universitas Sumatera Utara
Pesan awal dalam sistem kriptografi disebut juga sebagai plaintext
(disimbolkan dengan p), yaitupesan yang hendak dikirimkan yang berisi data asli.
Sedangkan pesan setelah dienkripsi disebut dengan ciphertext (disimbolkan dengan
c),pesan yang ada pada chipertext tidak bisa dibaca karena berisi karakter-karakter
yang tidak memiliki makna (arti). Kunci yang dikirimkan pengirim kepada penerima
pesan yang kemudian untuk melakukan
proses dekripsi disebut dengan key
(disimbolkan dengan k). Enkripsi yaitu
proses pengubahan plaintextmenjadi
ciphertext disimbolkan dengan E(p) sedangkan dekripsi yaitu mengubahciphertext
menjadi plaintext, sehingga menghasilkan data awal/asli. disimbolkan dengan D(c)
(Schneier, 1996).
Suatu algoritma dikatakan aman, bila tidak ada cara ditemukan plaintext nya.
Karena selalu terdapat kemungkinan ditemukannya cara baru untuk menembus
algoritma kriptografi, maka algoritma kriptografi yang dikatakan aman apabila
memiliki keadaan sebagai berikut (Yusuf, 2004):
a. Bila harga untuk menjebol algoritma lebih besar daripada nilai informasi yang
dibuka, maka algoritma itu cukup aman.
b. Bila waktu yang digunakan untuk membobol algoritma tersebut lebih lama daripada
lamanya waktu yang diperlukan oleh informasi tersebut harus tetap aman, maka
algoritma tersebut mungkin aman.
c. Bila jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih sedikit
dari jumlah data yang diperlukan untuk menembus algoritma tersebut, maka
algoritma itu aman.
2.1.2 Tujuan Kriptografi
Tujuan dari kriptografi yang juga merupakan aspek keamanan informasi adalah
sebagai berikut (Menezes,et al., 1996):
1.
Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk menjaga isi
informasi dari semua pihak kecuali pihak yang berwenang untukmendapatkan
informasi.Confidentiality senada dengan istilah secrecy dan privacy. Ada
beberapa cara untuk menjaga kerahasiaan, dari pengamanan secara fisik hingga
penggunaan algoritma matematika yang membuat data tidak dapat dimengerti.
2.
Integritasdata (data integrity) adalah layanan penjagaan pengubahan data dari
pihak yang tidak berwenang atas informasi tersebut. Untuk menjamin integritas
Universitas Sumatera Utara
data, sistem harus mempunyai kemampuan untuk mendeteksi terjadinya
manipulasi data oleh pihak-pihak yang tidak berkepentingan. Manipulasi data
yang dimaksud di sini meliputi penyisipan, penghapusan, maupun penggantian
data.
3.
Otentikasi(Authentication) adalah layanan yang berhubungan dengan identifikasi,
baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user
authentication atau entity authentication) maupun mengidentifikasi kebenaran
sumber pesan (data origin authentication). Beberapa pihak yang berkomunikasi
harus mengidentifikasi satu sama lainnya. Informasi yang didapat oleh suatu
pihak dari pihak lain harus diidentifikasi untuk memastikan keaslian dari
informasi yang diterima. Identifikasi terhadap suatu informasi dapat berupa
tanggal pembuatan informasi, isi informasi, waktu kirim dan hal-hal lainnya yang
berhubungan dengan informasi tersebut.
4.
Nirpenyangkalan (non-repudiation) adalah layanan untuk mencegah pihak-pihak
yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal
melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
2.1.3 Sistem Kriptografi Klasik
Sistem kriptografi klasik digunakan beberapa abad yang lalu sebelum adanya
komputer. Penyandian pesan dilakukan karakter per karakter. Terdapat dua metode
yang dilakukan untuk menyandikan pesan pada sistem kriptografi klasik, yaitu Teknik
Substitusi
dan
Teknik
Transposisi.Tekniksubstitusi
dilakukan
dengan
cara
penggantian setiap karakter teks asli dengan karakter lain. Sedangkan Teknik
transposisi dilakukan pengacakan urutan karakter tanpa mengganti karakter pada
pesan tersebut (Ariyus, 2012).
2.1.4 Sistem Kriptografi Modern
Pengembangan sistem kriptografi modern didorong oleh perkembangan komputer
yang merepresentasikan data dalam bentuk bilangan biner. Sistem kriptografi modern
tidak lagi menggunakan mode karakter untuk proses enkripsi dan dekripsi, tetapi
menggunakan mode bit. Algoritma kriptografi dengan mode bit dapat dikelompokkan
menjadi dua bagian, yaitu Cipher Aliran (Stream Cipher) dan Cipher Blok (Block
Cipher). Stream Cipher mengenkripsi atau mendekripsi pesan bit per bit. Sedangkan
Universitas Sumatera Utara
Block Cipher mengenkripsi atau mendekripsikan pesan dalam bentuk blok bit dengan
panjang bit yang telah ditentukan sebelumnya (Sadikin, 2012).
2.1.5 Jenis Algoritma Kriptografi
Algoritma kriptografi dapat diklasifikasikan menjadi dua jenis berdasarkan kuncinya,
yaitu algoritma simetris dan algoritma asimetris (Prayudi, 2005).
1. Algoritma Simetris
Algoritma ini disebut simetris karena memiliki key atau kunci yang sama dalam proses
enkripsi dan dekripsi sehingga algoritma ini juga sering disebut algoritma kunci
tunggal atau algoritma satu kunci. Key dalam algoritma ini bersifat rahasia atau
private key sehingga algoritma ini biasa disebut dengan algoritma kunci rahasia
(Prayudi, 2005). Contoh algoritma simetris yaitu Beaufort, Spritz, Blowfish, Twofish,
DES(Data Encryption Standard).
2. Algoritma Asimetris
Algoritma ini disebut asimetris karena kunci yang digunakan untuk enkripsi berbeda
dengan kunci yang digunakan untuk dekripsi. Kunci yang digunakan untuk enkripsi
adalah kunci publik atau public key sehingga algoritma ini disebut dengan algoritma
kunci publik. Sedangkan kunci untuk dekripsi menggunakan kunci rahasia atau
private key (Prayudi, 2005). Contoh algoritma asimetris yaitu RSA(Riverst Shamir
Adleman), ECC(Elliptic Curve Cryptography),Elgamal.
2.2
Algoritma Beaufort
Algoritma Beaufort ditemukan oleh Laksamana Sir Francis Beaufort, Royal Navy.
Algoritma Beaufort merupakan salah satu varian dari metode Vigenère Cipher
(Widyastuti, 2014). Proses enkripsi dan dekripsi pada algoritma Beaufort
menggunakan sebuah tabel yang disebut dengan tabel Beaufort (Tassel, 1969).
Universitas Sumatera Utara
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Tabel 2.1 Tabel Beaufort
A B C D E F G H I J K L M N O P Q R S T U V W XY Z
A B C D E F G H I J K L M N O P Q R S T U V W XY Z
B C D E F G H I J K L M N O P Q R S T U V W XY Z A
C D E F G H I J K L M N O P Q R S T U V W XY Z A B
D E F G H I J K L M N O P Q R S T U V W XY Z A B C
E F G H I J K L M N O P Q R S T U V W XY Z A B C D
F G H I J K L M N O P Q R S T U V W XY Z A B C D E
G H I J K L M N O P Q R S T U V W XY Z A B C D E F
H I J K L M N O P Q R S T U V W XY Z A B C D E F G
I J K L M N O P Q R S T U V W XY Z A B C D E F G H
J K L M N O P Q R S T U V W XY Z A B C D E F G H I
K L M N O P Q R S T U V W XY Z A B C D E F G H I J
L M N O P Q R S T U V W XY Z A B C D E F G H I J K
M N O P Q R S T U V W XY Z A B C D E F G H I J K L
N O P Q R S T U V W XY Z A B C D E F G H I J K L M
O P Q R S T U V W XY Z A B C D E F G H I J K L M N
P Q R S T U V W XY Z A B C D E F G H I J K L M N O
Q R S T U V W XY Z A B C D E F G H I J K L M N O P
R S T U V W XY Z A B C D E F G H I J K L M N O P Q
S T U V W XY Z A B C D E F G H I J K L M N O P Q R
T U V W XY Z A B C D E F G H I J K L M N O P Q R S
U V W XY Z A B C D E F G H I J K L M N O P Q R S T
V W XY Z A B C D E F G H I J K L M N O P Q R S T U
W XY Z A B C D E F G H I J K L M N O P Q R S T U V
XY Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z A B C D E F G H I J K L M N O P Q R S T U V W XY
Baris paling atas pada tabel 2.1 menyatakan huruf dari plaintext. Proses
enkripsi dilakukan dengan cara menarik garis vertikal dari plaintext sampai kepada
karakter key yang telah ditentukan, selanjutnya tarik garis horizontal dari karakter key
yang telah ditentukan sampai kolom pertama. Karakter pada kolom pertama tersebut
adalah ciphertext yang diperoleh. Proses dekripsi dilakukan berlawanan dengan
enkripsi. Proses ini dimulai dengan memilih ciphertext dari kolom pertama kemudian
tarik garis lurus sampai menemukan karakter key yang telah ditentukan, selanjutnya
ditarik garis vertikal ke atas dari karakter key tersebut sampai ke baris pertama.
Karakter pada baris pertama merupakan plaintext (Tassel, 1969).
Berikut adalah contoh proses enkripsi dengan menggunakan tabel 1:
Plaintext
:TIARAHMADIANTI
Kunci
:IMILKOMHIMATIF
Ciphertext
:PEIUKHAHFEAGPX
Universitas Sumatera Utara
Namun, pada saat ini algoritma beaufort tidak hanya bisa mengenkripsi dan
dekripsi huruf saja tetapi angka maupun simbol-simbol yang terdapat pada tabel
ASCII bisa di enkripsi dan dekripsi. Dalam perkembangan sistem komputasi modern,
karakter atau simbol biasanya direpresentasikan dalam bentuk ASCII. Setiap karakter
atau simbol yang muncul di layar komputer memiliki kode ASCII yang berbeda dan
panjang masing-masing kode ASCII dalam biner adalah 8 bit (Budiman and
Rachmawati, 2017).
Tabel 2.2 Tabel List Karakter
0
1 2 3
4 5 6
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
A B C D E F G H I J
K
L
M N
O
P
Q
R
S
T
U V
W X
Y Z
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
a
b
c
d
e
f
g
h
i
J
k
l
m
n
o
P
q
r
s
t
u
v
w
x
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
y
z
0
1
2
3
4
5
6
7
8
9
sp
!
"
#
$
%
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
-
.
/
:
;
<
=
>
?
@
[
\
]
^
_
`
{
|
&
'
(
)
*
,
93 94 95 96 97 98 99
}
~
¢
€
£
Pada tabel 2.2 menunjukkan list karakter yang akan digunakan. Adapun list karakter
yang digunakan sebanyak 100 karakter. Proses enkripsi dan dekripsi algoritma
Beaufort Cipher dirumuskan sebagai berikut:
C i ≡ Ki−P i (mod n) ------------------ (1)
P i ≡ Ki−C i (mod n) ------------------(2)
dimana � merupakan plaintext, � adalah key, � adalah ciphertext yang diperoleh dan
� adalah jumlah karakter yang digunakan (Mollin, 2007).
Berikut adalah contoh proses enkripsi dan dekripsi :
Plaintext : TIA RAHMADIANTI
Kunci
+
: Fasilkom-TI USU
Universitas Sumatera Utara
¥
©
Tabel 2.3 Tabel Enkripsi Beaufort
Plaintext (Pi)
Kunci (Ki)
Ciphertext (Ci)
Karakter
5
�� ≡ �� − �� (��� 100)
86
\
a
26
18
S
0
s
44
44
s
spasi
62
i
34
72
*
R
17
l
37
20
U
A
0
k
36
36
k
H
7
o
40
33
h
M
12
m
38
26
a
A
0
-
75
75
-
D
3
T
19
16
Q
I
8
I
8
0
A
A
0
spasi
62
62
spasi
N
13
U
20
7
H
T
19
S
18
99
©
I
8
U
20
12
M
Karakter
Indeks
Karakter
T
19
F
I
8
A
Indeks
Pada tabel 2.3 dihasilkan ciphertext melalui fungsi enkripsi Beaufort. Fungsi enkipsi
Beaufort untuk menghasilkan ciphertext diperoleh dengan operasi pengurangan indeks
kunci terhadap indeks plaintext.
Tabel 2.4 Tabel Dekripsi Beaufort
Ciphertext(Ci)
Kunci (Ki)
Plaintext(Pi)
�� ≡ �� − �� (��� 100)
Karakter
19
T
26
8
I
s
44
0
A
72
i
34
62
Spasi
U
20
l
37
17
R
k
36
k
36
0
A
h
33
o
40
7
H
a
26
m
38
12
M
-
75
-
75
0
A
Q
16
T
19
3
D
A
0
I
8
8
I
Karakter
Indeks
Karakter
Indeks
\
86
F
5
S
18
a
s
44
*
Universitas Sumatera Utara
spasi
62
spasi
62
0
A
H
7
U
20
13
N
©
99
S
18
19
T
M
12
U
20
8
I
Pada tabel 2.4 dihasilkan plaintextseperti semula yaitu “ TIA RAHMADIANTI”
melalui fungsi dekripsiBeaufort. Fungsi dekripsiBeaufort untuk menghasilkan
plaintextdiperoleh dengan operasi pengurangan indeks kunci terhadap indeks
ciphertext.
2.3
Algoritma Spritz
Pada tahun 2014, perancang algoritma RC4, Ron Rivest, dan Jacob Schultz
merancang sebuah pembaharuan dari desain algoritma RC4 yang diberi nama Spritz
(Rivest dan Schuldt, 2014). Spritz merupakan sebuah varian dari RC4 yang
mengimplementasikan sponge-based construction dalam penghasilan kunci rahasia
dan proses enkripsi. Tingginya kompleksitas dari algoritma Spritz karena spongebased construction meningkatkan keamanan dari algoritma RC4. Namun, karena
algoritma Spritz meningkatkan kompleksitas dari RC4, maka waktu yang digunakan
untuk mengenkripsi sebuah data juga meningkat meskipun tingkat keamanan dari
algoritma Spritz lebih tinggi dari RC4 (Rivest dan Schuldt, 2014). Spritz termasuk
algoritma stream cipher. Stream cipher merupakan algoritma yang mengenkripsi
pesan satu per satu karakter dengan menggunakan transformasi enkripsi yang
bergantung pada waktu yang singkat. Algoritma Spritz termasuk algoritma kriptografi
kunci simetrik. Algoritma ini memiliki dua bagian utama: Key Scheduling Algorithm
(KSA) dan Pseudo-Random Generation Algorithm (PRGA).
2.3.1 Key Scheduling Algorithm (KSA)
Key-Scheduling Algorithm (KSA) pada Algoritma Spritz sama dengan algoritma RC4
yaitu menghasilkan permutasi dari 256 kemungkinan bytes yang ada pada array S.
Universitas Sumatera Utara
Tabel 2.5 Key Scheduling Algorithm (KSA)
for i from 0 to 255
S[i] := i
endfor
j := 0
for i from 0 to 255
j := (j + S[i] + key[i mod keylength]) mod 256
swap values of S[i] and S[j]
endfor
Dimana S adalah permutasi 256-byte yang diinisialisasikan KSA dan variabel i dan j
merupakan variabel integer yang mempunyai nilai awal 0.
2.3.2 Pseudo-Random Generation Algorithm (PRGA)
Pseudo-Random Generation Algorithm (PRGA) berbeda dengan algoritma RC4.
Pseudo-Random Generation Algorithm(PRGA) untuk mendapatkan byte acak untuk
enkripsi.
Tabel 2.6Pseudo-Random Generation Algorithm(PRGA)
For a from 0 toplaintext-1
i=i+w
j = k + S[j + S[i]]
k = i + k + S[j]
swap S[i] with S[j]
z = S[j + S[i + S[z + k]]]
output z
EndFor
dimana w adalah relatif prima dengan panjang S. Variabel i, j, k merupakan variabel
integer yang mempunyai nilai awal 0
dan z merupakan variabel integer yang
merupakan output dan mempunyai nilai awal 0.
Tabel 2.7 Larik 256 byte hasil perhitungan tahap key scheduling
0
1
2
3
4
5
114 92
12
64
47
172 32
122 154 186 236 102 218 15
14
16
17
18
19
21
22
23
24
127 132 183 191 129 31
55
6
220 88
15
163 74
6
20
7
8
9
10
11
25
12
26
13
27
166 131
Universitas Sumatera Utara
28
29
34
35
36
37
38
39
178 7
243 142 105 224 44
19
23
71
40
136 59
152
42
43
44
45
46
47
48
49
50
51
52
53
54
55
149 79
66
41
126 35
87
98
81
60
107 113 97
20
56
58
59
60
61
62
63
64
65
66
68
69
106 193 109 11
90
116 125 240 29
253 101 210 43
91
70
73
74
75
79
83
117 2
223 84
50
137 77
185 121 226 175 158 228 65
84
85
86
88
89
91
16
192 234 28
98
99
57
71
30
72
31
87
32
33
171 78
76
90
77
78
92
93
80
94
135 214 213 145 34
67
81
95
40
82
96
169 0
41
97
205
100 101 102 103 104 105 106 107 108 109 110 111
159 161 56
151 227 139 217 237 209 207 76
202 24
189
112 113 114 115 116 117 118 119 120 121 122 123 124 125
85
249 180 254 246 221 115 245 168 195 22
244 219 230
126 127 128 129 130 131 132 133 134 135 136 137 138 139
72
157 206 201 104 89
197 231 200 53
176 26
9
112
140 141 142 143 144 145 146 147 148 149 150 151 152 153
54
177 232 199 196 75
25
241 33
18
1
208 58
165
154 155 156 157 158 159 160 161 162 163 164 165 166 167
138 212 86
190 83
93
167 252 63
30
68
82
17
250
168 169 170 171 172 173 174 175 176 177 178 179 180 181
204 248 100 61
148 62
118 10
155 67
247 130 80
21
182 183 184 185 186 187 188 189 190 191 192 193 194 195
153 5
203 242 238 111 37
233 110 188 134 229 13
211
196 197 198 199 200 201 202 203 204 205 206 207 208 209
120 173 147 162 144 251 57
164 235 124 38
14
48
108
210 211 212 213 214 215 216 217 218 219 220 221 222 223
46
27
222 69
94
45
70
181 216 141 156 239 187 146
224 225 226 227 228 229 230 231 232 233 234 235 236 237
215 123 194 119 255 73
184 182 170 150 49
128 225 42
238 239 240 241 242 243 244 245 246 247 248 249 250 251
143 4
96
140 179 198 3
52
36
160 174 8
51
99
Universitas Sumatera Utara
252 253 254 255
39
103 133 95
Misalkan pada tahap key schedulling menghasilkan larik S seperti yang
ditunjukkan oleh tabel 2.7 dan pesan yang akan dienkripsi adalah “rc4” dengan kode
ASCII 114, 99 dan 52. Ciphertext akan dihitung dengan menginisialisasikan nilai i, j,
k, z dengan nilai 0 dan w merupakan nilai acak yang relatif prima dengan 256 dan
setiap baris di modulo dengan 256. Hasil perhitungan pertama adalah:
i=i+w
= 0+149 mod 256 = 149
j = k + S[j + S[i]]
= 0 + S[0 + S[149]] mod 256
= 0 + S[18] mod 256
= S[18] = 183
k = i + k + S[j]
= 149 + 0 + S[183] mod 256
= 149 + 5 mod 256
= 154
S[i] , S[j]
= S[i] = S[149] = 18, S[j] = S[ 183] = 5
SwapS[i] withS[j]
= S[i] = S[149] = 5, S[j] = S[183] = 18
z = S[j + S[i + S[z + k]]]
= S[183 + S[149 + S[0 + 154]]] mod 256
= S[183 + S[149 + 138]] mod 256
= S[183 + S[31] mod 256
= S[183 + 142] mod 256
= S[69] = 91
Kemudian lakukan operasi XOR pada karakter pertama plaintext yang dihasilkan
yaitu karakter “r” yang bernilai 114 dengan output z yang dihasilkan adalah 91.
Dengan cara sebagai berikut :
114 = 01110010
91 = 01011011 ⊕
= 00101001
= 41 10 dalam tabel ASCII merupakan karakter “)”.
Proses perhitungan tersebut diulang sampai karakter terakhir plaintext. Algoritma
yang sama juga digunakan untuk proses dekripsi.
Universitas Sumatera Utara
2.4
Super Enkripsi
Super Enkripsi merupakan metode pengkombinasian antara kedua algoritma yang
bertujuan untuk mendapatkan cipher yang lebih kuat sehingga sangat sulit untuk
dipecahkan, dan juga untuk mengatasi penggunaan cipher tunggal yang secara
komparatif lemah (Setyaningsih.,dkk,2011).
Super enkripsi tidak mudah untuk dipecahkan karena proses enkripsinya
dilakukan sebanyak dua kali atau lebih sehingga ciphertext yang dihasilkan juga
jumlahnya sebanyak dua buah atau lebih (Halim,2007).
2.5
Kompleksitas Algoritma
Algoritma yang efisien adalah algoritma yang meminimumkan kebutuhan waktu dan
ruang. Dengan menganalisis beberapa algoritma untuk suatu masalah,dapat
diidentifikasi satu algoritma yang paling efisien. Besaran yang digunakan untuk
menjelaskan model pengukuran waktu dan ruang ini adalah kompleksitas algoritma.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi
yang dibutuhkan algoritma tersebut untuk mendapatkan hasil yang diinginkan.
Algoritma yang dapat memperoleh hasil yang diinginkan dalam waktu yang singkat
memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu
yang lama untuk memperoleh hasil tersebut mempunyai kompleksitas yang tinggi
(Azizah, 2013).
Untuk
menghitung kompleksitas algoritma digunakan kode program
menggunakan tabel yang berisi kolom C, kolom # dan kolom � � #. Dimana kolom C
merupakan kolom yang menunjukkan berapa kali processor melakukan komputasi.
Kolom # menunjukkan variabel untuk menghitung pengerjaan satu baris program.
Kolom � � # untuk menghitung hasil perkalian kolom C dan kolom #.
(�)=��#� ------------------ (3)
Hasil dari kolom �� # dijumlahkan berdasarkan persamaan (3), sehingga
diperoleh hasil kompleksitas algoritma (Cormen., et al, 2009).
Universitas Sumatera Utara
2.6
Penelitian yang Relevan
Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan
oleh penulis antara lain adalah sebagai berikut:
1. Widyastuti (2012) mengimplementasikan kriptografi super enkripsi dengan
menggabungkan dua algoritma yaitu Playfair dan Vigenère Cipher
membuktikan bahwa algoritma super enkripsi ini efektif dan aman digunakan.
2. Nurnawati
(2008)
VigenèreCipher
menganalisis
dengan
mode
kriptografi
operasi
menggunakan
Cipher
Block
algoritma
Chainng(CBC)
membuktikan bahwa algoritma Vigenère hanya menampung 26 huruf alfabet
dalam bentuk huruf kecil dan tanda baca yang lainnya tidak dapat terbaca.
3. Rivest dan Schuldt (2014) membuktikan bahwa algoritma Spritz meningkatkan
kompleksitas dari RC4, maka waktu yang digunakan untuk mengenkripsi
sebuah data juga meningkat dan tingkat keamanan dari algoritma Spritz lebih
baik dari RC4.
4. Syuhada(2016) membuktikan bahwa Algoritma RC4 merupakan algoritma
kriptografi simetris yang dalam penggunaannya memiliki keunggulan pada
kecepatan dan kemudahan dalam proses perhitungan.
5. Weerasinghe(2012) dalam penelitian nya yang berjudul Analysis of a Modified
RC4 Algorithm menyatakan bahwa algoritma yang dimodifikasi lebih baik
daripada RC4 yang asli dalam segi kerahasiaan dan performa.
6. Soofi.,et al(2016) melakukan penelitian yang berjudul An Enhanced Vigenère
Cipher For Data Security membuktikan bahwa kelemahan penting pada
algoritma Vigenère Cipher yaitu perulangan pada kunci nya. Jika kriptanalis
benar menebak panjang kunci maka ciphertext akan mudah di sadap.
Universitas Sumatera Utara