Anda di halaman 1dari 17

HILL CIPHER

Teori Pengkodean Kelas C

Oleh :
Kelompok 4
Frenza Fairuz F (140210101012)
Yulyaningsih (140210101033)
Petrina Talita Putri (140210101048)
SOFI (140210101065)
Fathulloh Faruq (140210101058)

DosenPembimbing:

Randi Pratama Murtikusuma, S.Pd., M.Pd.

PROGRAM STUDI PENDIDIKAN MATEMATIKA


JURUSAN PENDIDIKAN MIPA
FAKULTAS KEGURUAN DAN ILMU PENGETAHUAN
UNIVERSITAS JEMBER
2017
HILL CIPHER
Teknik kriptografi ini menggunakan sebuah matriks persegi sebagai kunci yang
digunakan untuk melakukan enkripsi dan dekripsi. Hill Cipher diciptakan oleh Lester S. Hill
pada tahun 1929. Hill Cipher tidak mengganti setiap abjad yang sama pada plaintext dengan
abjad lainnya yang sama pada ciphertext karena menggunakan perkalian matriks pada dasar
enkripsi dan dekripsinya. HillCipher termasuk kepada algoritma kriptografi klasik yang
sangat sulit dipecahkan oleh kriptanalis apabila dilakukan hanya dengan mengetahui berkas
ciphertext saja. Namun, teknik ini dapat dipecahkan dengan cukup mudah apabila kriptanalis
memiliki berkas ciphertext dan potongan berkas plaintext. Teknik kriptanalisis ini disebut
known-plaintext attack.

Berikut adalah definisi dari Hill Cipher:


Definisi : Misal m bilangan bulat positif, m≥2 .
Misal P=C=(Z26 )m dan misal K=¿{matriks invertible m×m pada Z26 }.
Untuk sebuah kunci K, didefinisikan
e K ( x )=xK
dan
d K ( y )= yK−1 ,

dimana semua operasi dilaksanakan dalam Z26 .

Berdasarkan definisi dari Hill Cipher, diketahui bahwa kunci K berupa matriks
berukuran m×m atau dapat ditulis sebagai:

k 1,1 k 1,2 ⋯ k 1, m
k
K m×m= 2,1

( k 2,2

k 1 , m k 2 ,m
⋯ k 2, m
⋱ ⋮
⋯ k m,m
)
Matriks K yang menjadi kunci harus merupakan matriks yang invertible pada
Ζ 26 , yaitu

memiliki matriks invers yakni K


−1
sedemikian hingga KK −1=K −1 K=I m , dengan

I m adalah matriks identitas berukuran m×m . Kunci harus memiliki invers karena
−1
matriks K adalah kunci yang digunakan untuk melakukan dekripsi.

1
Invers dari suatu matriks kunci K dapat diperoleh menggunakan rumus sebagai
berikut:

−1 −1
K =(det K ) ⋅Adj (K ) ,

Rumus ini efisien ketika digunakan ketika ukuran matriks ( m ) tidak terlalu besar (

m=2, 3 ). Untuk matriks dengan ukuran besar, invers matriks dapat dicari dengan
memanfaat operasi baris elementer pada matriks K yakni:

( K m × m|I m ) OBE ( I m|K−1


m× m)

Berikut adalah contoh mencari invers suatu matriks kunci ( K ):

 Diketahui
K= (113 87 ) , dimana seluruh entri-entrinya pada
Ζ 26 . Tentukan K−1 !

Pembahasan:

Cara 1 (menggunakan determinan dan matriks adjoin)

11 8 K−1 =(det K )−1⋅Adj(K )


det ( )
3 7
=(11×7−8×3 ) mod26
7 −8
= (77−24) mod 26
=1−1⋅
−3 11 ( )
=53 mod 26 7 18
=1 =1⋅ (
23 11 )
7 18
= (
23 11 )
Cara 2 (menggunakan OBE)

( K 2 × 2|I 2 ) OBE ( I 2| K−1


2 ×2 )



8 1 11 7 −8

( | ) ( | )
'
1
' 1 0 b= b2
11 8 1 0 b = b1 11 11 2
53 1 0 53 53
( | )
3 70 1 '
1
11
b2=b1−3 b'1 0
53 −3 8
0 b'1 =b1− b'2
0 1 −3 11
11 11 11 53 53

2
3
Sehingga,

7 8

( )

53 53
K−1 =
3 11

53 53
1 7 −8
=
53 −3 11 ( )
=(53 )−1 7 18 ( )
23 11
=(1 )−1 7 18
23 11 ( )
7 18
=1 (
23 11 )
= 7 18
( )
23 11

Jadi,
K−1 = (237 1811 ) .

Teknik Enkripsi pada Hill Cipher


Seperti yang disebutkan pada definisi Hill Cipher, enkripsi pada Hill Cipher
dilakukan dengan mengalikan plaintext dengan matriks K. Dua buah matriks dapat dikalikan

jika jumlah kolom pada matriks pertama ( A p×q ) sama dengan jumlah baris pada matriks

kedua (B q×r ) . Sebagai contoh, matriks berukuran 1×m dapat dikalikan dengan matriks
m×m 1×m .
dan akan menghasilkan matriks berukuran
Jika diketahui kunci yang merupakan matriks berukuran m×m , maka plaintext

harus diubah menjadi matriks-matriks berukuran 1×m dan setiap huruf pada plainteks
dikonversi menjadi bilangan mod 26 sebelum melakukan proses enkripsi. Jika plaintext
terdiri atas jumlah huruf berkelipatan m, maka dengan mudah kita dapat melanjutkan proses
enkripsi. Namun, jika plaintext tidak terdiri atas jumlah huruf berkelipatan m atau karakter
terakhir tidak memiliki pasangan, maka harus ditambahkan sebuah pasangan karakter yg
sama dengan karakter terakhir. Setelah itu dikonversi huruf pada plainteks menjadi bilangan
mod 26. Berikut adalah contoh enkripsi pada Hill Cipher:

4
10 5 12

1. Misal plaintext top, dan kunci


K= 3 14 21
( )
8 9 11 , maka tentukan ciphertext yang
dihasilkan!
Pembahasan:
a. Ubah plaintext top menjadi matriks 1 x 4 dan konversi menjadi angka.
top berkorespondensi dengan (19 14 15)
b. Kalikan setiap angka dengan matriks kunci

10 5 12
(
K= 3 14 21
8 9 11 )
10 5 12
( )
( 19 14 15 ) 3 14 21 =( 352 426 687 )
8 9 11
c. Lakukan operasi Mod 26 kepada setiap matriks angka tersebut
( 352 426 687 ) mod 26 = ( 14 10 11 )
d. Ubah setiap matriks angka menjadi huruf
( 14 10 11 )=O K L
e. Sehingga ciphertextnya adalah O K L

K=¿ ( 11 8¿ ) ¿ ¿¿
2. Misal plaintext july, dan kunci ¿ , maka maka tentukan ciphertext yang
dihasilkan!
Pembahasan:
a. Bagi plaintext menjadi matriks 1 x 2 dan konversi menjadi angka
ju berkorespondensi dengan (9 20)
ly berkorespondensi dengan (11 24)
b. Kalikan setiap angka dengan matriks kunci

K=¿ ( 11 8¿ ) ¿ ¿¿
¿
( 9 20 ) ¿ ( 11 8 ¿ ) ¿ ¿
¿
dan

5
( 11 24 ) ¿ ( 11 8 ¿ ) ¿ ¿
¿
c. Lakukan operasi Mod 26 kepada setiap matriks angka tersebut
( 159 212 ) mod 26 = ( 3 4 )
( 193 256 ) mod 26 = ( 11 22 )
d. Ubah setiap matriks angka menjadi huruf
(3 4 )=DE
(11 22 )=LF
e. Sehingga ciphertextnya adalah DELF

K=¿ ( 11 8¿ ) ¿ ¿¿
3. Misal plaintext end, dan kunci ¿ , maka maka tentukan ciphertext yang
dihasilkan!
Pembahasan:
a. Bagi plaintext end menjadi matriks 1 x 2 dan konversi menjadi angka
Karena karakter terakhir tidak memiliki pasangan, maka diberi pasangan karakter
yang sama yaitu d. Maka plaintext menjadi endd.
en berkorespondensi dengan (4 13)
dd berkorespondensi dengan (3 3)
b. Kalikan setiap angka dengan matriks kunci

K=¿ ( 11 8¿ ) ¿ ¿¿
¿
( 4 13 ) ¿ ( 11 8 ¿ ) ¿ ¿ (3 3) ¿ ( 11 8 ¿ ) ¿ ¿
¿ dan ¿
c. Lakukan operasi Mod 26 kepada setiap matriks angka tersebut
( 83 123 ) mod26 = (5 19 )
( 42 45 ) mod 26 = ( 16 19 )
d. Ubah setiap matriks angka menjadi huruf
(5 19 )= FT
(16 19 )=QT
e. Sehingga ciphertextnya adalah FTQT

6
Teknik Dekripsi pada Hill Cipher
Proses dekripsi pada dasarnya sama dengan proses enkripsinya. Namun matriks
kuncinya harus dibalik (invers) terlebih dahulu. Secara matematis, proses dekripsi pada Hill
Cipher dapat diturunkan dari persamaan berikut:
y=x⋅K
y⋅K −1 =x⋅K⋅K −1
y⋅K −1 =x⋅I
y⋅K −1 =x
Jadi, persamaan proses dekripsi:
−1
y⋅K =x
x = plaintext.
−1
K = invers matriks kunci.
y = ciphertext.

Berikut adalah contoh enkripsi pada Hill Cipher:

K= 11 8 ( )
1. Dekripsikan ciphertext DELW jika diketahui kunci 3 7 !
Pembahasan:
Proses dekripsi diawali dengan menghitung invers dari matriks K. Invers matriks dapat
dicari menggunakan Operasi Baris Elementer (OBE) ataupun menggunakan prinsip
determinan.
−1
K−1 =( det K ) ⋅Adj ( K )
1
= ⋅ 7 −8
( )
1 −3 11
= 7 −8 mod 26
( )
−3 11
7 18
=( 23 11 )
−1
Matriks K akan menjadi matriks kunci pada proses dekripsi, maka:
a. Bagi ciphertext menjadi matriks 1×2 dan konversi menjadi angka
( D E )= ( 3 4 )
( L W )=( 11 22 )

7
K−1 = 7 18 ( )
b. Kalikan setiap angka dengan matriks kunci 23 11

( 3 4 )⋅ 7 18 =( 113 98 )
( )
23 11
( 11 22 )⋅ 7 18 = (583 440 )
( )
23 11
c. Lakukan operasi mod 26 kepada setiap matriks angka tersebut agar dapat
dikonversi
( 113 98 ) mod 26=( 9 20 )
( 583 440 ) mod 26=( 11 24 )
d. Ubah setiap matriks angka menjadi huruf dengan aturan konversi
( 9 20 ) = ju
( 11 24 ) =ly

Didapatkan pesan DELW yang telah didekripsi menjadi july dan dapat dengan
mudah dimengerti bahwa pesan tersebut adalah july.

10 5 12

2. Dekripsikan ciphertext OKL jika diketahui kunci


K= 3 14 21
8 9 11 !( )
Pembahasan:
Proses dekripsi diawali dengan menghitung invers dari matriks K. Invers matriks dapat
dicari menggunakan Operasi Baris Elementer (OBE) ataupun menggunakan prinsip
determinan.
 (Cara 1) menggunakan determinan dan matriks adjoin
14 21 5 12 5 12
det K=10⋅| |−3⋅| |+8⋅| |
9 11 9 11 14 21
=10⋅(154−189 )−3⋅(35−108 )+8⋅(105−168 )
=10⋅(−35 )−3⋅(−53 )+8⋅(−63)
=10⋅(17 )−3⋅(−1)+8⋅(15 )
=170+3+120
=293 (mod 26)
=7

8
Adj ( K )=( Kof ( K ))T
14 21 3 21 3 14 T
| | −| | | |

( )
9 11 8 11 8 9
= −|5 12| |10 12 | −|10 5|
9 11 8 11 8 9
5 12 10 12 10 5
| | −| | | |
14 21 3 21 3 14
T
−35 135 −85
(
= 53 14 −50
−63 −174 125
T
)
17 5 19
(
= 1 14 2
15 8 21 )
17 1 15
(
= 5 14 8
19 2 21
)
Sehingga,

K−1 =( det K )−1⋅Adj ( K )


17 1 15
−1
=(293) ⋅ 5 14 8
19 2 21( )
17 1 15
−1
(
¿(7) ⋅ 5 14 8
19 2 21 )
17 1 15
(
¿15⋅ 5 14
19 2
8
21
)
255 15 225
(
¿ 75 210
285 30
120
315 )
21 15 17
(
¿ 23 2 16
25 4 3 )
 (Cara 2) menggunakan OBE

( K 3 × 3|I 3 ) OBE ( I 3|K−1


3 ×3 )

9
Sehingga,

35 −53 63
−1 −1
K =(695) ⋅ −135
85 ( −14 174
50 −125 )
9 25 11
−1
(
=(19) ⋅ 21 −12
7 24 )
18
5
9 25 11
(
=11⋅ 21 12 18
7 24 5 )
99 275 121
(
= 231 132 198
77 264 55
)
21 15 17
(
= 23 2 16
25 4 3 )
21 15 17

Menggunakan Cara 1 atau Cara 2, diperoleh matriks


K = 23 2 16
25 4 3
−1
( ) yang akan
menjadi matriks kunci pada proses dekripsi berikut:
a. Bagi ciphertext menjadi matriks 1×3 dan konversi menjadi angka

( O K L ) =( 14 10 11 )

10
21 15 17

b. Kalikan setiap angka dengan matriks kunci


−1
K = 23 2 16
25 4 3 ( )
21 15 17
( )
( 14 10 11 )⋅ 23 2 16 = (799 274 431 )
25 4 3
c. Lakukan operasi mod 26 kepada setiap matriks angka tersebut agar dapat dikonversi
( 799 274 431 ) mod 26=( 19 14 15 )
d. Ubah setiap matriks angka menjadi huruf dengan aturan konversi
( 19 14 15 )=top

Didapatkan pesan OKL yang telah didekripsi menjadi top dan dapat dengan mudah
dimengerti bahwa pesan tersebut adalah top.

K=¿ ( 11 8¿ ) ¿ ¿¿
3. Dekripsikan ciphertext FTQT jika diketahui kunci ¿ !
Pembahasan:
Proses dekripsi diawali dengan menghitung invers dari matriks K. Invers matriks dapat
dicari menggunakan Operasi Baris Elementer (OBE) ataupun menggunakan prinsip
determinan.

K−1 =( det K )−1⋅Adj ( K )


1
= ⋅ 7 −8
( )
1 −3 11
= 7 −8 mod 26
( )
−3 11
7 18
= (23 11 )
−1
Matriks K akan menjadi matriks kunci pada proses dekripsi, maka:
a. Bagi ciphertext menjadi matriks 1×2 dan konversi menjadi angka
( F T ) =( 5 19 )
( Q T )=( 16 19 )

K−1 = 7 18 ( )
b. Kalikan setiap angka dengan matriks kunci 23 11

11
( 5 19 )⋅ 7
( 18 = ( 472 299 )
)
23 11
( 16 19 )⋅ 7( 18 (
)
= 549 497 )
23 11
c. Lakukan operasi mod 26 kepada setiap matriks angka tersebut agar dapat
dikonversi
( 472 299 ) mod 26=( 4 13 )
( 549 497 ) mod 26= (3 3 )
d. Ubah setiap matriks angka menjadi huruf dengan aturan konversi
( 4 13 )=en
( 3 3 )=dd

Didapatkan pesan FTQT yang telah didekripsi menjadi endd dan dapat dengan
mudah dimengerti bahwa pesan (dalam bahasa inggris) yang dimaksud sebenarnya adalah
end.

Kriptoanalisis pada Hill Cipher


Teknik kriptanalisis pada Hill Cipher sangat sulit dilakukan. Terlebih jika dilakukan
dengan ciphertext-only attack dan matriks kunci yang digunakan berdimensi besar. Kesulitan
ini disebabkan oleh ciphertext Hill Cipher yang tidak memiliki pola dan setiap karakter
dalam satu blok saling mempengaruhi karakter lainnya.
Teknik yang memungkinkan untuk kriptanalisis Hill Cipher adalah known plaintext
attack. Jika kriptanalisis memiliki pecahan plaintext dan ciphertext yang saling
berkorespondensi, maka Hill Cipher dapat dipecahkan. Namun proses yang harus dilalui
cukup sulit, yakni menentukan panjang kunci yang digunakan. Hal ini menjadi salah satu
kekuatan yang dimiliki oleh Hill Cipher. Cara satu-satunya dengan mencari tahu panjang
kunci atau dengan melakukan perkiraan dan coba-coba. Berikut adalah contoh kriptoanalisis
pada Hill Cipher:
 Misalkan kriptanalisis mengetahui panjang kunci K adalah 2 dan memiliki potongan
berkas plaintext P dan ciphertext C sebagai berikut:

P = OF THE

C= FUPCMTGZKYUKBQFJHUKTZKKIXTTA

12
Dari informasi yang dimiliki, kita tahu bahwa “OF THE” muncul pada pesan
yang memiliki ciphertext C, namun tidak tahu “OF THE” muncul pada posisi yang
mana. Namun pasti ada keadaan dimana “OF THE” akan menempati posisi yang benar.

FU PC MT GZ KY UK BQ FJ HU KT ZK KI XT TA
OF TH E. .. .. .. .. .. .. .. .. .. .. ..
.O FT HE .. .. .. .. .. .. .. .. .. .. ..
.. OF TH E. .. .. .. .. .. .. .. .. .. ..
.. .O FT HE .. .. .. .. .. .. .. .. .. ..
.. .. OF TH E. .. .. .. .. .. .. .. .. ..
.. .. .O FT HE .. .. .. .. .. .. .. .. ..

Misalkan kita menganggap benar pada baris kedua, didapatkan PC → FT dan


MT → HE. Sekarang kita dapat menentukan matriks kunci dari informasi tersebut.

−1
P=K . C

( F ¿) ¿ ¿¿
¿ ¿
¿
Gabungkan kedua matriks di atas menjadi sebuah matriks 2×2 .

7 12 7 12 7 −12
(5 ( ¿ )=K−1.(15 −1 (5 (15 −1 −1 (5 (19
)4 (¿)19)¿ K =¿ (¿)4)¿ (¿)19) ¿K =¿ ( ¿)4)¿ (¿ )15 )¿
(19 ¿ (2 (19 (2 (19 (−2
¿ ¿ ¿ ¿ ¿ ¿
K−1 = 81 ( 45
)
353 −168
K−1 = 3
19 mod 26
15 ( 14 )
13
K−1 = 3 19
( )
Maka didapatkan matriks kunci dekripsi 15 14 . Tapi jika kita
mendekripsinya maka akan didapatkan pesan berupa: ”frfthezyssqyvfetlvbafvaconfz”.
Kalimat tersebut tidak bermakna, ini menandakan bahwa asumsi kita yang menganggap
benar pada baris kedua kurang tepat. Untuk mendapatkan kalimat yang bermakna atau
plaintext yang benar, kita perlu menggeser dan mencocokkan kata “OF THE” dengan
ciphertext yang didapat sampai membentuk kalmat yang bermakna.
Pada kasus ini penempatan kata “OF THE” yang tepat terdapat pada baris ke 18
dan didapatkan KT → FT dan ZK → HE. Dengan mengulang prosedur untuk
−1
memperoleh matriks K , didapatkan:

K−1 =(1718 235 ) mod 26


dan jika didekripsikan didapatkan pesan: “defendtheeastwallofthecastle”.

 Andaikan plaintext “Friday” dienkripsi menggunakan Hill Cipher dengan m=2 dan
menghasilkan ciphertext PQCFKU.

Sehingga kita dapatkan ( 5,17 )= ( 15,16 ) , ( 8,3 )= ( 2,5 ) , ( 0, 24 ) = ( 10,20 ) .


Dari dua pasangan plaintext-ciphertext yang pertama, dapat kita bentuk persamaan
matriks sebagai berikut:

15 16 = 5 17 ⋅K
2 5( 8 3 )( )
5 17 −1⋅ 15 16 =K
( 8 3 ) (
2 5 )
Dengan menggunakan determinan dan matriks adjoin atau menggunakan OBE maka

−1
5 17 =9 1
diperoleh
( ) ( )
8 3 2 15 , sehingga didapatkan:

K= 9 1 . 15 16 = 7 19
( )( )( )
2 15 2 5 8 3

Kunci ini dapat diperiksa menggunakan ketiga pasangan plaintext-ciphertext.

14
Namun bagaimana jika tidak diketahui nilai m ? Asumsikan bahwa m

tidak begitu besar, dapat dicoba m = 2, 3, … sampai kunci ditemukan. Jika perkiraan
nilai m tidak benar, maka matriks m×m dapat ditemukan menggunakan algoritma di
atas tidak akan setuju lagi dengan pasangan plaintext-ciphertext. Cara ini dapat
menentukan nilai m jika tidak diketahui sebelumnya.

Latihan Soal

18 21
1. Enkripsikan hillcipher jika diketahui kunci
K= ( 11 13 ) !
2. Dekripsikan RMQEGFAAPJAEIMKRIEEGF jika diketahui kunci

4 8 17
(
K= 24 23 4
23 20 7 ) !

Kunci Jawaban Latihan Soal

1. Berdasarkan fungsi enkripsi ( e K ) berikut:

e K ( x )=xK=x⋅ (1811 2113 ) ,


diperoleh hasil enkripsi dari hillcipher adalah GRHKUQJQZT.

2. Berdasarkan fungsi enkripsi ( d K ) berikut:

3 24 5
−1
( )
d K ( y)= yK = y⋅ 2 1 2
3 0 4
,
diperoleh hasil dekripsi dari RMQEGFAAPJAEIMKRIEEGF adalah
ternyatainijawabannya.

15
DAFTAR PUSTAKA

Stinson, Douglas R. 2006. Cryptography Theory and Practice Third Edition. Canada:
Chapman & Hall.

16

Anda mungkin juga menyukai