Você está na página 1de 7

1AFFINE-HILL-LU CIPHER WITH

MATLAB IMPLEMENTATION

Joko Eliyanto
Program Studi Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Ahmad Dahlan

joko1400015006@webmail.uad.ac.id

ABSTRACT
Affine Hill LU Cipher is a Cipher Technique that incorporates Affine Cipher and Hill Cipher. Affine cipher is
the cipher that uses a form y=ax+b where the integers modulo a must have an inverse in Z 29
. Hill cipher is the cipher that uses a key of a square matrix and that inverse for the encryption and
decryption process. The incorporation of this technique is done by replacing the integer a by a square matrix
invertible in Z 29 A and B is a regular square matrix. Identify matrix invertible in the Z 29

is not an easy thing. Matrices L and U is a decomposition matrix of a square matrix. L is the
lower triangular matrix, so thats must be invertible matrix .So we get new form of the cipher
Y =LX +U . The key matrix of this cipher is K which can be decomposed into a matrix L &
U , so by a single key we can produce two other key that is L and U . By this form we expected

to produce a tough and difficult to hack. To identify the decomposition Matrix L and U , also to
encrypt and decrypt this cipher its so complex . To overcome this, the technique is implemented in MATLAB
(Matrix Laboratory) software to calculate the matrix accurately and efficiently.

Keyword : Affine-Hill-LU Cipher, Encryption Algorithm, Decryption Algorithm , Matrix


nn
Z 29 ,LU Decomposition.

1. PENDAHULUAN 12.
2. 13.
3. Sandi Affine K= {( a , b ) Z29 Z 29 : gcd ( a , 29 ) =1 } .
4.
5. Pada sandi Affine, teknik persandian 14.
menggunakan fungsi berikut : 15. Untuk K=( a ,b ) K ,
6.
e ( x )=( ax+b ) mod 29 a ,b Z 29 didefinisikan
7. 16.
8. 17. e K ( x )=( ax +b ) mod 29
9. Proses dekripsi dan enkripsi sesuai
kriptosistem berikut : 18. Dan
10. 19. d K ( y ) =a1 ( yb ) mod 29
11. Diberikan P=C=Z 29 dan
20.
diberikan
21. (x , y Z 29) 42.
1 nn
K= { ( A , B )|, A , B , A Z 29 }
22. 43.
23. Sandi Hill 44. dengan m adalah bilangan prima
45.
24. Sandi ini ditemukan pada tahun 1993
46. dan n Z , n 2 , maka untuk setiap
oleh Lester S.Hill. Diberikan m
bilangan bulat positif, dan didefinisikan 47. K=( A , B ) K ,
Z 48.
m
( 29) . Ide dasarnya adalah 49. didefinisikan
P=C= 50. e K ( X )=( AX +B ) mod 29
untuk mengambil kombinasi linear dari 51. Dan
karakter huruf m pada plainteks, d K ( Y )=A 1 (Y B ) mod 29
52.
yang selanjutnya menghasilkan 53.
karakter huruf pada cipherteks.
54. A , B , A1 Z n29 n dan A adalah
25.
m 2 bilangan matriks multiplicative invertible (memiliki
26. Diberikan nn
invers modulo pada Z 29 ) .
Z
( 29)m dan diberikan 55.
bulat .Diberikan
56. Sandi ini memiliki kelemahan
P=C=
yaitu untuk mencari matriks kunci yang
27. memenuhi kriteria dalam kriptosistem tersebut.
28. Maka sandi ini dikembangkan dengan teori
K= { m mmatriks invertible pada Z 29 } . Matriks Dekomposisi LU, dimana sebuah
matriks persegi tunggal dapat difaktorkan
29. menjadi dua buah matriks L dan U yang
30. Untuk setiap kunci K ,we kemudian menggantikan matriks kunci A dan B.
57.
definisikan 58. HASIL DAN PEMBAHASAN
31. 59.
32. e K ( x )=xK 60. Kriptosistem Sandi Affine-Hill-LU
61.
33. Dan
1 62. Diberikan P=C=Z n29n
34. dK ( y ) = y K
63. dan diberikan
35. 64.
36. (x , y Z 29) 65.
37. K= { ( K , L ,U )| K , L ,U , L1 Z n29 n
38. Dari kedua sandi ini , disusun sebuah
66. , LU dari K }
sandi baru yang menggabungkan keduanya
yaitu sani Affine-Hill dengan kriptosistem 67.
sebagai berikut : 68. dengan m adalah bilangan prima
39. n Z , n 2 , maka untuk setiap
n n 69. dan
40. Diberikan P=C=Z 29 dan
70. K=K =( L ,U ) K ,
diberikan
41. 71.
72. didefinisikan 95. (Epperson, 20013:430-435). Sesuai
e K ( X )=( LX +U ) mod 29 teorema yang berbunyi :
73.
74. Dan 96. Jika A adalah matriks segitiga n n
1
75. d K ( Y )=L ( Y U ) mod 29 (segitiga atas , segitiga bawah , atau
diagonal) maka det(A) adalah hasil kali
76.
entri-entri diagonal utama matriks
K , L , U , L1 Z n n
77. 29 dan L adalah tersebut ; yaitu det(A)
a11 a 22 ann . (Rorres , 2004: 98-
matriks multiplicative invertible (memiliki
nn
invers modulo pada Z 29 ). 99)
78. 97. Maka determinan matriks L = 1, karena
79. Didefinisikan semua elemen diagonalnya=1, maka
80. dipastikan L invertible.
81.
L =( inv mod ( det ( L ) )Adjoint ( L ) ) (mod 29) 98.Algoritma Enkripsi Affine-Hill-LU
1
99.Cipher
82. 1. Input :
83. Karakteristik Matriks Kunci K a. Plainteks
84. b. Matriks Kunci K
100.
85. Didefiniskan Matriks K Zn29 n 2. Output :
maka 101. Cipherteks
86. 102.
3. Langkah-langkah :

[ ]
k 11 k 12 k 1n a. Masukkan plainteks
k k k 2n b. Masukkan Matriks kunci K
87. K= 21 22 c. Penghitungan dan pengujian dekomposisi

kn 1 k n 2 k nn L U dari K, apakah L L ,U Z n29n
d. Menguji apakah setiap L dan U anggota
88. Z 29 .
89. kemudian dicari matriks dekomposisi L
U dengan bentuk seperti berikut: e. Mengubah plainteks menjadi huruf
90. kapital.

[ ]
1 0 0 f. Mengubah plainteks menjadi angka
l 21 1 0 anggota Z 29 .
91. L=
g. Mengecek kunci L,U adalah matriks
ln 1 ln 2 1 bujur sangkar.
h. Jika modulo jumlah elemen matriks
92. plainteks dengan jumlah elemen matriks
L tidak sama dengan 0 , maka plainteks

[ ]
u11 u 12 u1 n
ditambah angka 0 sebanyak selisih dari
0 u 22 u2 n elemen kunci dan hasil modulo tsb, dan
93. U=
sebaliknya .
0 0 u nn i. Mengubah bentuk matriks vector
plainteks menjadi matriks. dengan ukuran
94. kolom sama dengan jumlah elemen
kunci.
j. Mengubah bentuk matriks plainteks j. Mengubah bentuk matriks cipherteks
menjadi matriks dengan ukuran menjadi matriks dengan ukuran
n m , m =kolom tergantung jumlah n m , m =kolom tergantung jumlah
huruf. huruf.
k. Mendeskripsikan matriks kunci U baru k. Mendeskripsikan matriks kunci U baru
dengan jumlah kolom sama dengan dengan jumlah kolom sama dengan
plainteks. cipherteks
l. Mengenkripsi masing masing matriks l. Mendenkripsi masing masing matriks
plainteks dengan formula berikut : cipherteks dengan formula berikut :
103. e K ( X )=( LX +U ) mod 29 108.
1
d K ( Y )=L ( Y U ) mod 29
m. Mengubah bentuk matriks cipher m. Mengubah bentuk matriks plainteks
menjadi vector cipher. menjadi vector plainteks.
n. Mengubah vector cipher menjadi huruf. n. Mengubah vector plainteks menjadi
104. huruf.
105. Algoritma Dekripsi Affine-Hill-LU 109.
Cipher 110. M-File Affine-Hill-LU
106. 111.
1. Input : 112. Enkripsi_AHLU
a. Cipherteks
b. Matriks Kunci K 113. %Affine_Hill_Encrypt_
2. Output : Break_Plaintext
107. Plainteks 114. P=input('Masukkan
3. Langkah-langkah : Matriks Plaintetxt=
','s');%input matriks yang
a. Masukkan cipherteks
akan dipecah
b. Matriks kunci K
115. %Menghilangkan Spasi
c. Penghitungan dan pengujian dekomposisi
n n 116. P=upper(P);%membuat
L U dari K, apakah L L ,U Z 29 kalimat menjadi huruf
kapital
d. Menguji apakah setiap L dan U anggota
117. P=real(P);%membuat
Z 29 . karakter pada kalimat
e. Mengubah cipherteks menjadi huruf menjadi angka ASCII
kapital . 118. cP=P-65;%membuat
f. Mengubah cipherteks menjadi angka representasi huruf a=0 ,
Z 29 b=1 dst sampai z=25
anggota 119. indeks_spasi=find(cP<
g. Mengecek kunci L,U adalah matriks 0);%mencari spasi(nilai
bujur sangkar. indeks spasi)/ spasi slalu
h. Jika modulo jumlah elemen matriks kurang dari 0
cipherteks dengan jumlah elemen matriks 120. cP([indeks_spasi])=[]
L tidak sama dengan 0 , maka cipherteks ;%menghilangkan elemen
ditambah angka 0 sebanyak selisih dari spasi
elemen kunci dan hasil modulo tsb, dan 121. K=input('Masukkan
sebaliknya kunci K(HARUS MATRIKS
i. Mengubah bentuk matriks vector BUJUR SANGKAR)= ');%matrik
cipherteks menjadi matriks dengan yang akan menjadi panutan
ukuran kolom sama dengan jumlah pemecahan
elemen kunci. 122. n=size(K);
123. n=n(1,1);
124. [L,A]=LU_factor(K,n);
125. U=A; 156. cP;h=size(cP);h=h(1,2
126. if ceil(L)~=L );Plain=reshape(cP,m,
127. (h/m));
Error('Dekomposisi L bukan 157. n=size(Plain,2);Plain
anggota Z29!'); =reshape(Plain,j,j*n);U=[U
128. else U U];
129. L=L; 158. C=mod(L*Plain+U,29);l
130. end =size(C,1)*size(C,2);C=res
131. if ceil(U)~=U hape(C,1,l);
132. 159. C=C+65;C=char(C);disp
Error('Dekomposisi U bukan ('Ciphertext');disp(C);
anggota Z29!'); 160.
133. else 161. Dekripsi_AHLU
134. U=U;
135. end 162. %Affine_Hill_Encrypt_
136. ukuran_kunci=size(L); Break_Plaintext
%ukuran matriks kunci 163. P=input('Masukkan
137. if Matriks Cipherteks=
ukuran_kunci(1,1)== ','s');%input matriks yang
ukuran_kunci(1,2)%cek akan dipecah
matriks kunci bujur 164. %Menghilangkan Spasi
sangkar atau tidak 165. P=upper(P);%membuat
138. kalimat menjadi huruf
m=ukuran_kunci(1,1)*ukuran kapital
_kunci(1,2);%hasil kali 166. P=real(P);%membuat
jumlah baris dan karakter pada kalimat
kolom(jumlah elemen) menjadi angka ASCII
139. else 167. cP=P-65;%membuat
140. disp('Matriks representasi huruf a=0 ,
Kunci Tidak Sesuai b=1 dst sampai z=25
Permintaan'); 168. indeks_spasi=find(cP<
141. end 0);%mencari spasi(nilai
142. j=size(L,2); indeks spasi)/ spasi slalu
143. a=size(cP); kurang dari 0
144. a=a(1,2);%jumlah 169. cP([indeks_spasi])=[]
elemen matriks target ;%menghilangkan elemen
145. if mod(a,m)==0 spasi
146. cP=cP; 170. K=input('Masukkan
147. else kunci (HARUS MATRIKS BUJUR
148. if a>m SANGKAR)= ');%matrik yang
149. X=zeros(1,abs(m- akan menjadi panutan
mod(a,m)));%a>m pemecahan
150. cP=[cP X]; 171. n=size(K);
151. else 172. n=n(1,1);
152. X=zeros(1,abs(a- 173. [L,A]=LU_factor(K,n);
mod(a,m)));%m>a 174. U=A;
153. cP=[cP X]; 175. if ceil(L)~=L
154. end 176.
155. end Error('Dekomposisi L bukan
anggota Z29!');
177. else
178. L=L;
179. end 208. l=size(C,1)*size(C,2)
180. if ceil(U)~=U ;C=reshape(C,1,l);C=C+65;C
181. =char(C);
Error('Dekomposisi U bukan 209. disp('Plaintext');dis
anggota Z29!'); p(C);
182. else 210.
183. U=U; 211. Implementasi Enkripsi Affine-Hill-
184. end LU Cipher dengan MATLAB
185. 212.
186. ukuran_kunci=size(L); 213. >> Enkripsi_AHLU
%ukuran matriks kunci 214. Masukkan Matriks
187. if Plaintetxt= matematika uad
ukuran_kunci(1,1)== yogyakarta
ukuran_kunci(1,2)%cek 215. Masukkan kunci K(HARUS
matriks kunci bujur MATRIKS BUJUR SANGKAR)= [1 2
sangkar atau tidak -2;2 1 2;0 0 2]
188. 216. Ciphertext
m=ukuran_kunci(1,1)*ukuran 217. NYTGRARXMBUAF\OENCLURVGA\G
_kunci(1,2);%hasil kali C
jumlah baris dan 218.
kolom(jumlah elemen) 219. Implementasi Dekripsi Affine-Hill-
189. else LU Cipher dengan MATLAB
190. disp('Matriks 220. >> Dekripsi_AHLU
Kunci Tidak Sesuai 221. Masukkan Matriks
Permintaan'); Cipherteks=
191. end NYTGRARXMBUAF\OENCLURVGA\GC
192. j=size(L,2); 222. Masukkan kunci (HARUS
193. a=size(cP); MATRIKS BUJUR SANGKAR)= [1 2
194. a=a(1,2);%jumlah -2;2 1 2;0 0 2]
elemen matriks target 223. Plaintext
195. if mod(a,m)==0 224. MATEMATIKAUADYOGYAKARTAAAA
196. cP=cP; A
197. else 225.
198. if a>m
199. X=zeros(1,abs(m- 226. KESIMPULAN
mod(a,m)));%a>m
227. Dalam penelitian ini sandi
200. cP=[cP X];
Affine-Hill-LU terbukti mampu
201. else
diimplementasi dengan baik , secara
202. X=zeros(1,abs(a-
teoritis sandi ini lebih kuat
mod(a,m)));%m>a
dibandingkan sandi Affine atau Hill
203. cP=[cP X];
204. end saja, terutama terhadap cryptanalysis
205. end dengan metode known plaintext attack
206. cP;h=size(cP);h=h(1,2 dan statistical analysis karena lebih
);Cipher=reshape(cP,m, banyaknya kemungkinan ciphertext
(h/m));n=size(Cipher,2);Ci yang dihasilkan. Perbedaan mendasar
pher=reshape(Cipher,j,j*n) dengan Affine-Hill biasa adalah sandi
;U=[U U U]; ini hanya membutuhkan kunci tunggal
207. K1=inverse_matix_modu dengan spesifikasi tertentu sehingga
lo(L);C=mod(K1*(Cipher- sandi ini cukup sulit untuk dibuat
U),29); begitu juga untuk dipecahkan. Sandi
Affine-Hill-LU ini juga dapat dijadikan
sebagai khasanah baru dari Analysis . Second Edition .New York :John
perkembangan sandi klasik yang sudah Willey & Sons.Inc
ada dan dapat dikembangkan dengan 238.
teori-teori lain. 239. [5] M.G.Vara Prasad, P.Pari Purna Chari,
K.Pydi Satyam 2016. Affine Hill cipher
228. key generation matrix of order 3 by using
229. DAFTAR PUSTAKA in an arbitrary line y=ax+b. International
230. Journal of Science Technology and
231. [1] Anton Howard. Rorres Chris. Management Vol. No 5, Issue No. 8,
2004. Aljabar Linear Elementer Versi Agustus Hal. (268-272).
Aplikasi.Edisis Kedelapan Jilid 1. Jakarta: 240.
Erlangga. 241. [6] Schneier, B. 1996. Applied
232. Cryptography : Protocols, Algorithms, and
233. [2] Barr, Thomas.H. 2002. Invitation to Source Code in C. SecondEdition . New
Cryptology. Upper Saddle River, NJ: York : John Wiley & Sons, Inc.
Prentice Hall,Inc. 242.
234. 243. [7] Setyaningsih Emi. 2015 . Kriptografi
235. [3] Dian Eka Wijayanti .2016 Modifikasi & Implementasinya menggunakan
Tehnik Transformasi Affine dalam MATLAB. Yogyakarta : Penerbit Andi
Kriptografi . Lembaga Penelitian dan 244.
Pengembangan Universitas Ahmad Dahlan 245. [8] Stinson, R.D. 2006. Cryptography
Yogyakarta . Theory and Practice .Third Edition. New
236. York: Chapman & Hall/CRC.
237. [4] Epperson James F. 2013. An 246.
Introduction to Numerical Methods amd

Você também pode gostar