Misalkan
1
gcd , 1 r r
= , maka
1 1
mod
m
t r
r
−
= , dapat dibuktikan jika
1
gcd , 1 r r
= maka 1
m
r = . Sehingga dari teorema di atas,
1
1 mod
m m
r t r
r = ≡
, dengan melihat bentuk :
1
1
m
t r ≡
, berarti
1 1
mod
m
t r
r
−
=
.
2.3 Invers Matriks Tergeneralisasi
Ide awal dari invers matriks tergeneralisasi Generalized Inverses of Matrix adalah untuk menggeneralisasi pengertian invers matriks. Selanjutnya konsep dari invers
matriks tergeneralisasi diberikan dalam definisi berikut ini.
2.3.1 Definisi Umum
Diberikan A matriks m n × atas field, suatu matriks
B
yang memenuhi sifat: 1.
BAB B
=
2.
ABA A
=
3.
H
BA BA
= 4.
H
AB AB
= matriks
B
disebut pseudo-invers atau p-invers atau invers matriks tergeneralisasi Generalized Inverses of Matrix dari A, dinotasikan dengan A
−
Goldberg,J.L., 1991.
2.3.2 Invers Matriks Tergeneralisasi atas Bilangan Bulat Modulo p
Pada kriptografi klasik data-data yang berupa huruf dikonversikan ke dalam sistem
Z
26
. Sedangkan pada tulisan ini dikembangkan khusus pada
Z
p
, dengan p bilangan prima. Penulis memilih
Z
p
sebab
Z
p
adalah field, sehingga teori-teori yang telah dibahas sebelumnya berlaku. Untuk selanjutnya pembahasan invers matriks
tergeneralisasi adalah untuk matriks yang entri-entrinya atas himpunan
Z
p
A
.
Dalam penghitungan invers tergeneralisasi dibutuhkan mempunyai full
column rank , maka B = A
H
A
-1
A
H
. Dapat dilihat bahwa A
H
A invertible, sehingga A
H
A
-1
A
H
.
Hal diatas, akan menjadi landasan dari aplikasi invers matriks tergeneralisasi pada algoritma Hill Cipher.
2.4 Hill Cipher
Pada tahun 1929 block-cipher yang disebut dengan Hill Cipher diperkenalkan oleh
Lester S. Hill. Hill Cipher merupakan algoritma kunci simetris yaitu algoritma yang menggunakan kunci yang sama pada proses enkripsi dan dekripsinya. Hill Cipher
merupakan penerapan aritmatika modulo pada kriptografi. Teknik kriptogafi ini menggunakan sebuah matriks persegi sebagai kunci yang digunakan untuk melakukan
enkripsi dan dekripsi serta menggunakan m buah persamaan linear. Dalam penerapannya, Hill Cipher menggunakan teknik perkalian matriks dan teknik invers
terhadap matriks Widyanarko, 2007.
Ide dari algoritma Hill Cipher adalah untuk membuat m kombinasi linear dari m karakter alfabetik didalam suatu elemen plainteks, sehingga dihasilkan m karakter
alfabetik sebagai elemen dari cipherteks.
Secara umum jika A adalah matriks mxm atas
Z
26
dan x = x
1
… x
m T
∈ P
sehingga dihitung y = e
A
x = y
1
… y
m T
∈ C sebagai berikut:
y
1
a
11
a
12
... a
1m
x
1
y
2
a
21
a
22
... a
2m
x
2
y
3
= a
31
a
32
… a
3m
x
3
… ... ...
... … …
y
m
a
m1
a
m2
... a
mm
x
m
sehingga dapat ditulis y = Ax.
Fungsi dekripsinya diturunkan dari formula diatas, karena y = Ax jika A
-1
ada maka x = A
-1
y.
Hill Cipher mengambil matriks A atas
Z
26
sebagai kunci. Pasangan matriks digunakan untuk proses enkripsi dan dekripsi. Sebelum membagi teks-teks menjadi
deretan blok-blok, terlebih dahulu plainteks dikorespondensikan antara huruf dan bilangan, dengan ketentuan bilangan =
Z
26
= {0, 1, 2, ..., 26} dan huruf = { A, B, C, ..., Z}.
2.5 Aplikasi Invers Matriks Tergeneralisasi pada Algoritma Hill Cipher
Hill Cipher Tergeneralisasi
Pada metode Hill Cipher disyaratkan matriks enkripsi haruslah matriks persegi yang invertible di
Z
26
. Tulisan ini mencoba menerapkan teori invers matriks tergeneralisasi pada algoritma Hill Cipher, sehingga nantinya matriks yang digunakan dapat berupa
matriks bujur sangkar atau persegi panjang. Pengembangan akan dibahas secara khusus pada
Z
p
, dengan p bilangan prima.
Diberikan m,n
bilangan bulat positif, didefinisikan P =
Z
p n
= x
1
, x
2
, ..., x
n
∈
Z
p n
dan C=
Z
p m
= y
1
, y
2
, ..., y
m
∈
Z
p m
dengan P himpunan plainteks dan C adalah himpunan cipherteks.
Diberikan A adalah matriks mxn yang syarat-syaratnya akan dibahas diambil sebagai kunci. Proses enkripsi bisa dijelaskan sebagai berikut. Untuk setiap
x = x
1
... x
n
T
∈ P, dihitung y = e
A
x = y
1
… y
m T
∈ C dengan langkah-langkah
sebagai berikut :
y
1
a
11
a
12
... a
1n
x
1
y
2
a
21
a
22
... a
2n
x
2
y
3
= a
31
a
32
… a
3n
x
3
… ... ...
... … …
y
m
a
m1
a
m2
... a
mn
x
n
Jadi dari blok plainteks yang panjangnya n akan didapatkan cipherteks yang panjangnya m. Dapat dilihat bahwa fungsi enkripsi memetakan dua himpunan yang
diperlihatkan pada gambar berikut:
Gambar 2.9 Fungsi enkripsi
Jika e
A
≤ P
C
injektif maka haruslah atau
n m
≤
2.1
Fungsi dekripsinya diturunkan dari fungsi enkripsi diatas. Karena y = Ax, jika B ada dalam
Z
p
x ∈
, maka x = By. Proses dekripsi dapat dipandang sebagai suatu sistem persamaan linear, yaitu: x = By, dengan
P =
Z
p n
y ∈
, C =
Z
p m
.
Matriks A berukuran mxn, agar e
A
m n ×
injektif maka rankA = n full column rank. Jadi pemilihan kunci untuk aplikasi invers matriks tergeneralisasi pada
algoritma Hill Cipher dibatasi hanya untuk matriks yang full column rank.
2.2
Selanjutnya karena A mempunyai full column rank, maka invers tergeneralisasi dari A adalah:
B = A
H
A
-1
A
H
Karena semua perhitungan dilakukan atas
Z
p
, maka A
H
=
A
T
. Sehingga didapatkan
B = A
T
A
-1
A
T
2.3 I
m
e
K
e
K
x=Kx
P = Z
p n
C = Z
p m
Telah diketahui bahwa jika A mempunyai full column rank, maka A
T
A invertible.
Hill Cipher Tergeneralisasi mangambil matriks A atas
Z
p
yaitu
Z
29
sebagai kunci. Pasangan matriks digunakan untuk proses enkripsi dan dekripsi. Sebelum
membagi teks-teks menjadi deretan blok-blok, terlebih dahulu plainteks dikorespondensikan antara huruf dan bilangan, dengan ketentuan bilangan =
Z
29
1. Diberikan A matriks berukuran mxn; m=n, kemudian dilakukan pengecekan apakah matriks tersebut mempunyai invers matriks tergeneralisasi.
= {0, 1, 2, ..., 29} dan huruf = { A, B, C, ..., Z, spasi, koma, titik}.
2.5.1 Proses Penyandian 2.5.1.1 Proses Pembentukan Kunci
Pembentukan kunci pada Hill Cipher Tergeneralisasi ini, dilakukan dengan langkah-langkah sebagai berikut:
2. Jika punya, kemudian dicari B yaitu invers matriks tergeneralisasinya atas
Z
p
B yang berukuran nxm, dengan rumus:
= A
T
. A
-1
A
T
3. Kedua pasangan matriks tersebut A dan B digunakan untuk mengenkripsi dan mendekripsi pesan, dimana A digunakan untuk mengenkripsi pesan dan B
digunakan untuk mendekripsi pesan.
2.5.1.2 Proses Enkripsi
Proses enkripsi dilakukan dengan langkah-langkah sebagai berikut:
1. Konversikan masing-masing karakter kedalam bilangan
Z
p
. 2. Membagi pesan kedalam beberapa blok, yang masing-masing blok mempunyai n
komponen bilangan
Z
p
. 3. Cipherteks dihitung dengan perhitungan y = A.x
dimana, x = blok-blok plainteks. y = blok-blok cipherteks yang dihasilkan.
4. Bilangan cipherteks dikonversikan kedalam huruf alfabet.
2.5.1.3 Proses Dekripsi
Proses dekripsi dilakukan dengan langkah-langkah sebagai berikut: 1. Konversikan masing-masing karakter kedalam bilangan
Z
p
. 2. Membagi pesan kedalam beberapa blok, yang masing-masing blok mempunyai n
komponen bilangan
Z
p
. 3. Dilakukan perhitungan x = B.
1. Model air terjun waterfall. Model ini mengambil kegiatan proses dasar seperti spesifikasi, pengembangan, validasi dan evolusi dan merepresentasikannya
y 4. Konversikan masing-masing karakter kedalam huruf alfabet.
2.6 Rekayasa Perangkat Lunak