Professional Documents
Culture Documents
ISBN:9789791635363
A 12
Suatu Algoritma Kriptografi Simetris
Berdasarkan Jaringan Substitusi-Permutasi
Dan Fungsi Affine Atas Ring Komutatif Zn
Muhamad Zaki Riyanto
Pendidikan Matematika, JPMIPA, FKIP
Universitas Ahmad Dahlan, Yogyakarta
E-mail: zakimath@gmail.com
http://zaki.math.web.id
Abstrak
Salah satu solusi dalam pengamanan pengiriman pesan rahasia adalah menggunakan kriptografi, yaitu
menggunakan proses enkripsi-dekripsi. Pada proses enkripsi, pesan rahasia (plainteks) dirubah menjadi
pesan acak yang sulit dimengerti (cipherteks). Sedangkan proses dekripsi berfungsi untuk mengembalikan
cipherteks ke plainteks. Kedua proses ini menggunakan suatu mekanisme dan kunci tertentu.
Salah satu mekanisme dalam kriptogafi adalah algoritma kriptografi simetris, yaitu proses enkripsi dan
dekripsi menggunakan kunci yang sama. Dalam perkembangannya, saat ini yang telah dikenal luas adalah
algoritma AES (Advanced Encryption Standard). Algoritma tersebut didasarkan pada metode jaringan
substitusi-permutasi atau lebih dikenal dengan Substitution-Permutation Network (SPN).
Stinson (2006) telah memberikan sebuah contoh sederhana dari SPN menggunakan bilangan biner dan
heksadesimal. Dalam makalah ini diberikan sebuah pengembangan dari SPN, yaitu menggunakan ring
komutatif Zn. Pada makalah ini contoh yang digunakan adalah ring komutatif Z26 yang berkorespondensi
dengan himpunan semua huruf alfabet dari A sampai Z. Proses subtitusi menggunakan fungsi affine
berupa matriks persegi invertibel atas Z26 dan vektor konstan, sedangkan proses permutasi menggunakan
suatu permutasi pada grup permutasi. Proses substitusi dan permutasi ini dilakukan dalam beberapa
perulangan. Hal ini dilakukan dengan harapan agar plainteks yang dihasilkan menjadi terlihat acak,
sehingga akan mempersulit pihak musuh untuk memecahkan pesan rahasia.
Kata kunci: Enkripsi, dekripsi, matriks invertibel, ring komutatif, SubstitutionPermutation Network
1. Pendahuluan
Sebagai makhluk sosial, manusia sering melakukan komunikasi dengan orang
lain. Mereka saling bertukar informasi, baik berupa informasi yang bersifat umum
maupun informasi yang bersifat rahasia. Informasi yang bersifat rahasia tersebut hanya
boleh diketahui oleh orang-orang tertentu saja. Bila informasi rahasia tersebut jatuh ke
tangan orang yang tidak berhak untuk mengetahui isi informasi tersebut, maka akan
dapat menimbulkan kerugian dan hal-hal yang tidak diinginkan.
Perkembangan teknologi informasi dewasa ini telah berpengaruh pada hampir
semua aspek kehidupan manusia, tak terkecuali dalam hal berkomunikasi. Dengan
adanya internet, komunikasi jarak jauh dapat dilakukan dengan cepat dan murah.
Namun di sisi lain, ternyata internet tidak terlalu aman karena merupakan jalur
komunikasi umum yang dapat digunakan oleh siapapun sehingga sangat rawan terhadap
MakalahdipresentasikandalamSeminarNasionalMatematikadanPendidikanMatematika
dengan tema M
Matematika dan Pendidikan Karakter dalam Pembelajaran pada tanggal
3Desember2011diJurusanPendidikanMatematikaFMIPAUNY
PROSIDING
ISBN:9789791635363
penyadapan. Oleh karena itu, keamanan informasi menjadi faktor utama yang harus
dipenuhi.
Salah satu solusi yang dapat digunakan untuk menyelesaikan masalah tersebut
adalah menggunakan kriptografi. Kriptografi adalah suatu ilmu yang mempelajari
teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti
kerahasiaan data, keabsahan data, integritas data, serta autentikasi data (Menezes dkk,
1996). Tetapi tidak semua aspek keamanan informasi dapat diselesaikan dengan
kriptografi. Kriptografi dapat pula diartikan sebagai ilmu atau seni untuk menjaga
keamanan pesan. Ketika suatu pesan dikirim dari suatu tempat ke tempat lain, isi pesan
tersebut mungkin dapat disadap oleh pihak lain yang tidak berhak untuk mengetahui isi
pesan tersebut. Untuk menjaga pesan, maka pesan tersebut dapat diubah menjadi suatu
kode yang tidak dapat dimengerti oleh pihak lain. Enkripsi adalah suatu proses
penyandian yang melakukan perubahan suatu pesan, dari yang dapat dimengerti, disebut
dengan plainteks, menjadi suatu kode yang sulit dimengerti, disebut dengan cipherteks.
Sedangkan proses kebalikannya untuk mengubah cipherteks menjadi plainteks disebut
dekripsi. Proses enkripsi dan dekripsi memerlukan suatu mekanisme dan kunci tertentu.
Algoritma kriptografi (sistem kriptografi) atau sering disebut dengan cipher
merupakan suatu sistem atau kumpulan aturan-aturan (algoritma) yang digunakan untuk
melakukan enkripsi dan dekripsi. Algoritma kriptografi simetris adalah algoritma
kriptografi yang menggunakan kunci enkripsi dan dekripsi yang sama. Sistem ini
mengharuskan dua pihak yang berkomunikasi menyepakati suatu kunci rahasia yang
sama sebelum keduanya saling berkomunikasi. Keamanan dari sistem ini tergantung
pada kunci, membocorkan kunci berarti bahwa orang lain yang berhasil mendapatkan
kunci dapat mendekripsi cipherteks. Algoritma kriptografi ini sering disebut juga
dengan algoritma kriptografi kunci rahasia, seperti dijelaskan pada gambar berikut ini.
Kunci
Plainteks
Alice
Cipherteks
Enkripsi
Plainteks
Dekripsi
Bob
Eve
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA115
PROSIDING
ISBN:9789791635363
Pada Gambar 1 di atas, ada dua pihak yaitu Alice dan Bob yang berkomunikasi
secara rahasia menggunakan algoritma kriptografi simetris. Komunikasi dilakukan
melalui jalur komunikasi yang tidak dapat dijamin keamanannya. Untuk dapat
melakukan komunikasi secara rahasia, Alice dan Bob harus menyetujui suatu kunci
rahasia yang sama. Akan tetapi, ada pihak ketiga yaitu Eve yang berada di antara kedua
pihak yang berusaha untuk rmendapatkan informasi rahasia yang dikirimkan. Contoh
algoritma kriptografi simetris adalah DES, Blowfish, dan AES (Advanced Encryption
Standard). Saat ini AES merupakan algoritma kriptografi simetris yang digunakan
secara luas di internet. Dalam melakukan proses enkripsi-dekripsi, AES menggunakan
metode Jaringan Substitusi-Permutasi.
Stinson (2006) telah memberikan penjelasan dan contoh kasus dari Jaringan
Substitusi-Permutasi. Dalam makalah ini dijelaskan mengenai algoritma kriptografi
simetris yang didasarkan pada Jaringan Substitusi-Permutasi yang didefinisikan atas
lapangan hingga Z 2 = {0,1} atau bilangan biner. Selanjutnya, diberikan pengembangan
dari algoritma tersebut menggunakan sebarang ring komutatif Z n = {0,1, 2,..., n 1} .
Dalam makalah ini diberikan contoh menggunakan ring komutatif Z 26 = {0,1, 2,..., 25}
yang berkorespondensi dengan himpunan semua huruf alfabet A sampai dengan Z.
Salah satu metode yang digunakan dalam pengembangan tersebut adalah menggunakan
fungsi affine dengan perkalian matriks invertibel atas ring Z n .
2. Jaringan Substitusi-Permutasi
Jaringan Substitusi-Permutasi atau dikenal dengan Substitution-Permutation
Network (SPN) merupakan salah satu metode dalam melakukan proses enkripsi dan
dekripsi. Metode ini menggunakan iterasi atau perulangan dari proses substitusi,
permutasi dan penjumlahan kunci. Stinson (2006) memberikan suatu contoh algoritma
kriptografi simetris yang berbasis pada Jaringan Substitusi-Permutasi sebagai berikut.
Sistem dasar SPN ini dibentuk dari dua permutasi, yaitu S dan P , dimana
S : {0,1} {0,1} , dan P : {1,..., km} {1,..., km} . Permutasi S disebut dengan Sk
box, digunakan untuk proses substitusi suatu k bit dengan suatu k bit yang lain.
Sedangkan permutasi P digunakan untuk proses permutasi suatu km bit. Didefinisikan
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA116
PROSIDING
ISBN:9789791635363
Diberikan
suatu
permutasi
S : {0,1} {0,1}
k
km
dan
permutasi
km Nr + 1
dan K {0,1}
memuat semua kunci yang mungkin yang dapat diturunkan dari kunci awal
menggunakan suatu algoritma penjadwalan kunci (key scheduling). Untuk suatu
penjadwalan kunci yang terdiri dari round key round key yaitu (K 1 ,..., K Nr + 1 ), proses
enkripsinya diberikan pada algoritma berikut ini.
Algoritma: SPN (x, p S , p P , (K 1 ,..., K Nr + 1 ))
w0 x
for r 1 to Nr - 1
do { u r wr - 1 K r
for i 1 to m
do { v r < i> p S (u r < i> ) }
u Nr wNr - 1 K Nr
for i 1 to m
do { v<Nri> p S (u<Nri> ) }
y v Nr K Nr + 1
output(y)
untuk 1 i m diperoleh x< i> = x(i- 1)k + 1 ,..., xik . SPN mempunyai Nr putaran (round).
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA117
PROSIDING
ISBN:9789791635363
dan langsung diikuti dengan permutasi menggunakan P . Pada algoritma SPN di atas,
u r dimasukkan ke dalam S-box (pada putaran ke-r) dan ouputnya adalah v r . Untuk wr
Biner
Hex
Biner
Hex
0000
1000
0001
1001
0010
1010
0011
1011
0100
1100
0101
1101
0110
1110
0111
1111
A B C D E
S (z)
10 11 12 13 14 15 16
P (z)
13
10 14
11 15
12 16
Misalkan diberikan kunci K = 0011 1010 1001 0100 1101 0110 0011 1111.
Selanjutnya, dapat didefinisikan algoritma penjadwalan kunci dengan round key :
K 1 = 0011 1010 1001 0100
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA118
PROSIDING
ISBN:9789791635363
K1
u1
v1
w1
K2
u2
v2
w2
K3
u3
v3
w3
K4
u4
v4
K5
Diperoleh cipherteks y = 1011 1100 1101 0110. Proses dekripsi pada SPN dapat
dipelajari dengan membalik proses enkripsi, sedangkan permutasi yang digunakan
adalah invers dari permutasi S (z) dan P (z). Round key yang digunakan mulai dari
K 5 , K 4 , K 3 , K 2 , dan K 1 .
di
atas
dapat
dikembangkan
menggunakan
ring
komutatif
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA119
PROSIDING
ISBN:9789791635363
perkalian matriks invertibel atas Z n dan diikuti dengan penjumlahan vektor konstan.
Berikut ini diberikan beberapa sifat dari Z n .
Teorema 1. Suatu elemen a Z n mempunyai invers (terhadap perkalian) dalam Z n
a b
Teorema 2. Diberikan matriks A =
dengan a, b, c, d Z n , maka A mempunyai
c d
invers (terhadap perkalian) dalam Z n jika dan hanya jika fpb ( ad bc, n ) = 1 .
a b
Dinotasikan GL2 ( Z n ) =
a, b, c, d Z n , fpb ( ad bc, n ) = 1 adalah himpunan
c d
1
S m =
p (1)
L
2
p ( 2) L
m
p : {1, 2,..., m} {1, 2,..., m} bijektif .
p ( m)
Algoritma enkripsi dan dekripsi serta penjadwalan kunci diberikan sebagai berikut.
Diberikan plainteks X = x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 , dengan xi Z n , i = 1, 2,...,10 .
a b
Sebagai inisialisasi awal, diberikan matriks A =
GL2 ( Z n ) dan vektor
c d
1
s
C = Z n2 , serta suatu permutasi p =
t
p (1)
p ( 2) L
10
S . Fungsi affine
p (10 ) 10
PROSIDING
ISBN:9789791635363
a b xq s
AX + C =
+
c d xr t
(mod n)
putaran
ke-1
dilakukan
pergeseran
kunci
sebanyak
satu,
yaitu
yaitu
Input:
Plainteks X = x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
Jumlah putaran = m
f
f
f
f
f
F12 = 1 , F34 = 3 , F34 = 3 , F78 = 7 dan F910 = 9 .
f2
f4
f4
f8
f10
f
2.2. Untuk setiap Fqr = q , kalikan dengan matriks A, kemudian dijumlahkan
fr
g
a b xq s
dengan vektor C, yaitu: q = AFqr + C =
+ . Diperoleh
c d xr t
gr
G i = g1 g 2 g 3 g 4 g 5 g 6 g 7 g8 g 9 g10 .
H i = p ( g1 ) p ( g 2 ) p ( g3 ) p ( g 4 ) p ( g5 ) p ( g6 ) p ( g7 ) p ( g8 ) p ( g9 ) p ( g10 )
= h1h2 h3h4 h5 h6 h7 h8 h9 h10
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA121
PROSIDING
Ki
ISBN:9789791635363
Algoritma Dekripsi pada dasarnya sama dengan Algoritma Enkripsi, hanya saja
menggunakan invers dari fungsi affine dan invers dari permutasi. Diberikan fungsi
affine
AX + C .
Misalkan
v a b xq s
=
+ ,
w c d xr t
a b xq v s v s
= =
, sehingga diperoleh
c d xr w t w t
maka
xq a b v s
=
.
xr c d w t
Input:
Cipherteks Y = y1 y2 y3 y4 y5 y6 y7 y8 y9 y10
Jumlah putaran = m
2.
z
z
z
z
z
Z1,2 = 1 , Z 3,4 = 3 , Z 3,4 = 3 , Z 7,8 = 7 dan Z 9,10 = 9 .
z2
z4
z4
z8
z10
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA122
PROSIDING
2.3.
ISBN:9789791635363
1
p 1 = 1
p (1)
S , diperoleh
p (10 ) 10
2
1
( 2)
10
F i = p 1 ( z1 ) p 1 ( z2 ) p 1 ( z3 ) p 1 ( z4 ) p 1 ( z5 ) p 1 ( z6 ) p 1 ( z7 ) p 1 ( z8 )
p 1 ( z9 ) p 1 ( z10 )
= f1 f 2 f3 f 4 f5 f 6 f 7 f8 f9 f10
f
f
f
f
f
F1,2 = 1 , F3,4 = 3 , F3,4 = 3 , F7,8 = 7 dan F9,10 = 9 .
f2
f4
f4
f8
f10
2.4.Untuk
f
Fqr = q ,
fr
setiap
kurangkan
dengan
vektor
s
C = ,
t
yaitu
( f q s ) mod n
gq a b fq s
i
=
. Diperoleh G = g1 g 2 g 3 g 4 g 5 g 6 g 7 g8 g 9 g10
gr c d fr t
sepakat
menggunakan
ring
komutatif
yang
K=0 1 2 3 4 5 6 7 8 9
11 8
Keduanya sepakat menggunakan matriks A =
GL2 ( Z 26 ) , vektor konstan
3 7
10
C =
20
dan
permutasi
1 2 3 4 5 6 7 8 9 10
p=
S10 .
7 5 1 6 10 8 9 3 4 2
Dapat
7 18
ditunjukkan bahwa matriks A tersebut mempunyai invers A1 =
dan permutasi
23 11
p
tersebut
mempunyai
invers
yaitu
permutasi
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA123
PROSIDING
ISBN:9789791635363
1 2 3 4 5 6 7 8 9 10
p 1 =
. Inisialisasi tersebut bersifat umum, artinya
3 10 8 9 2 4 1 6 7 5
boleh diketahui siapa saja, yang dirahasiakan adalah plainteks dan kunci. Keduanya
sepakat menggunakan iterasi sebanyak 3. Diperoleh penjadwalan kunci:
K1 = 1 2 3 4 5 6 7 8 9 0 , K 2 = 2 3 4 5 6 7 8 9 0 1 , K 3 = 3 4 5 6 7 8 9 0 1 2
Proses enkripsi diberikan dalam tabel sebagai berikut.
10
12
19
12
19
10
12
21
16
25
15
18
G1
20
11
11
18
25
15
18
15
18
H1
11
18
18
15
11
20
25
15
18
Z1
12
20
21
19
16
24
18
G2
16
14
16
20
25
20
25
20
H2
20
20
25
14
16
20
25
16
Z2
23
24
20
15
24
25
17
G3
15
14
20
16
12
12
12
H3
20
12
14
16
15
12
12
Z3
23
13
14
18
21
24
24
13
14
23
24
26
21
25
10
21
23
cipherteks yang sangat berbeda. Untuk proses dekripsi dari contoh di atas dapat
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA124
PROSIDING
ISBN:9789791635363
dipelajari dari Algoritma 2 yang telah diberikan menggunakan invers matriks dari A dan
invers permutasi dari p.
Daftar Pustaka
Menezes Alfred J., Paul C. van Oorschot dan Scott A. Vanstone, 1996, Handbook of
Applied Cryptography, CRC Press, USA.
Stinson, Douglas R., 2006, Cryptography Theory and Practice, Third Edition, Chapman
&
Hall/CRC, Florida.
SeminarNasionalMatematikadanPendidikanMatematika
Yogyakarta,3Desember2011MA125