modifikasi playfair cipher dengan pembangkitan kunci yang...
Post on 07-Mar-2019
219 Views
Preview:
TRANSCRIPT
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
Modifikasi Playfair Cipher dengan Pembangkitan Kunci
yang Dienkripsi dengan Vigenere Cipher
Wico Chandra - 13509094
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
13509094@std.stei.itb.ac.id
Abstract—Playfair Cipher merupakan metoda enkripsi
klasik yang sangat sulit untuk dikriptanalisis secara manual.
Meskipun demikian Playfair dapat dipecahkan dengan
menggunakan informasi frekuensi kemunculan bigram.
Makalah ini menyajikan modifikasi dari playfair cipher
dengan memanfaatkan metoda vigenere cipher pada kunci
yang akan digunakan pada tiap bigram dengan harapan
dapat menghilangkan frekensi kemunculan bigram. Hasil
eksperimen menunjukkan keunggulan hasil modifikasi
dibandingkan dengan yang sebelumnya dan kelemahan dari
hasil modifikasi terhadap serangan yang terjadi pada hasil
modifikasi.
Index Terms—Playfair cipher, vigenere Cipher
I. PENDAHULUAN
Sekarang ini banyak jenis kriptografik klasik, salah
satunya adalah playfair cipher. Dulunya, playfair cipher
digunakan dalam pengiriman pesan pada saat peperangan.
Algoritma playfair cipher dipilih karena sangat mudah
digunakan dan tidak membutuhkan mesin tertentu untuk
mengenkripsi atau mendekripsi, cukup secara manual saja
untuk mendekripsi pesan. Sayangnya karena
perkembangan jaman playfair sudah tidak digunakan lagi
akbiat munculnya teknologi digital yang dapat
memecahkan hasil enkripsi playfair cipher. Oleh karena
itu, sekarang ini, playfair cipher digunakan hanya untuk
pengenalan terhadapa kriptografi klasik atau permainan
puzzle.
Hasil enkripsi playfair cipher dapat didekripsi dengan
memanfaatkan frekuensi kemunculan bigram. Dengan
mendapatkan informasi tersebut maka kriptanalisis dapat
menduga-duga subusitusi yang dilakukan untuk
mendapatkan kunci yang ada. Ditambah dengan kunci
hanya terdiri dari 25 huruf yang berada pada tabel 5x5.
Oleh karena itu, pada makalah ini dibuat modifikasi
dari playfair cipher dengan menggabungkan dengan
vigenere cipher sehingga tidak frekuensi kemunculan
bigram tidak dapat digunakan lagi untuk mendekripsi
pesan.
II. PLAYFAIR CIPHER
Playfair cipher merupakan teknik kriptografi klasik
yang memanfaatkan subsitusi bigram. Plainteks yang
akan dienkripsi dipecah menjadi dua huruf (bigram)
dengan aturan sebagai berikut:
Apabila dalam bigram terdapat dua huruf yang sama
maka huruf kedua diganti dengan huruf Z dan huruf
yang diganti dipindahkan ke bigram selanjutnya
Apabila terdapat huruf ‘I’ maka diganti dengan huruf
‘J’.
Apabila hanya terdiri dari satu huruf maka
ditambahkan huruf ‘Z’ setelah huruf tersebut.
Contoh:
POSSIBLE PO SZ SJ BL EZ
Plainteks tersebut akan dienkripsi dengan
menggunakan kunci yang akan dimasukkan dalam tabel
5x5, yang berisi huruf ‘A’ hingga huruf ‘Z’ kecuali huruf
‘I’, yang memiliki aturan sebagai berikut:
Tidak boleh ada huruf yang berulang
Huruf ‘I’ pada kunci akan dihilangkan
Apabila masih terdapat sisa pada table maka
maukkan huruf secara berurut sesuai dengan ke-dua
aturan sebelumnya.
Contoh:
Kunci: wicochandra
Tabel 5x5:
W C O H A
N D R B E
F G J K L
M P Q S T
U V X Y Z
Dengan memanfaatkan table 5x5 tersebut, masing-
masing bigram dari plainteks disubsitusi dengan aturan-
aturan tertentu sehingga terbentuk bigram baru yang
merupakan hasil enkripsi. Aturan-aturan subsitusi yang
diterapkan adalah sebagai berikut:
Apabila huruf pertama dan huruf kedua bigram
berada pada kolom yang sama maka huruf pertama
disubsitusi dengan huruf yang ada disebelah
bawahnya dan huruf kedua disubsitusi dengan huruf
disebelah bawahnya
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
Gambar 1 Plainteks ED disubsitusi menjadi DO
Apabila huruf pertama dan huruf kedua bigram
berada pada baris yang sama maka huruf pertama
disubsitusi dengan huruf yang ada disebelah
kanannya dan huruf kedua disubsitusi dengan huruf
disebelah kanannya
Gambar 2 Plainteks EX disubsitusi menjadi XM
Apabila huruf pertama dan huruf kedua bigram tidak
berada pada baris dan kolom yang sama maka huruf
pertama disubsitusi dengan huruf yang berada pada
baris yang sama dan kolom dari huruf kedua, dan
huruf kedua disubsitusi dengan huruf yang berada
pada baris yang sama dan kolom dari huruf pertama
yang belum subsitusi.
Gambar 3 Plainteks HI disubsitusi menjadi BM
Contoh:
kunci yang digunakan adalah wicochandra
Plainteks : PO SZ SJ BL EZ
Hasil subsitusi: QC TY QK EK LA
Proses dekripsi playfair cipher adalah hampir sama
dengan proses enkripsi, yang berbeda adalah semua
aturan yang digunakan pada enkripsi dibalikkan kecuali
aturan ke-tiga.
III. VIGENERE CIPHER
Vigenere Cipher merupakan metoda kriptografi
klasik yang memanfaatkan subsitusi polialpabetik.
Vigenere cipher hanya dapat mengenkripsi huruf alfabetik
dan tidak membedakan antara huruf hapital dan huruf
kecil. Oleh karena itu, plainteks dari vigenere cipher tidak
boleh terdapat spasi ataupun tanda baca lainnya, karena
tidak dapat dienkripsi, jika ada, maka algoritma vigenere
cipher harus dimodifikasi sedemikian sehingga dapat
menhiraukan spasi atau tanda baca lainnya.
Kunci yang digunakan dalam algoritma vigenere
cipher biasanya adalah satu kata atau satu kalimat agar
mudah diingat. Apabila kunci lebih pendek dari panjang
plainteks maka kunci akan diulang hingga kunci memiliki
panjang yang lebih besar atau sama dengan panjang
plainteks.
Pada jaman dulu proses enkripsi vigenere cipher
masih mengguanakan tabel subsitusi alpabet seperti pada
Gambar 4 karena masih belum ditemukan mesin digital
yang dapat mengoperasikannya. Dengan menggunakan
tabel tersebut orang-orang dapat menenkripsi suatu
plainteks dengan mudah.
Gambar 4 tabel subsitusi alpabet
Untuk meperjelas penggunaan tabel tersebut maka lihat
contoh berikut :
Plainteks : ATTACKATDAWN
Kunci : LEMONLEMONLE
Cipherteks : LXFOPVEFRNHR
Proses dekripsi untuk vigenere cipher menggunakan
tabel yang sama. Dengan baris pertama adalah plainteks
dan kolom pertama adalah kunci.
Sekarang ini tabel yang digunakan sebelumnya dapat
diganti dengan menggunakan rumus yang ada yaitu
Dengan memanfaatkan rumus tersebut maka untuk
melakukan enkripsi dan dekripsi vigenere cipher semakin
cepat .
IV. MODIFIKASI ALGORITMA PLAYFAIR
Algoritma menerima plainteks yang dapat terdiri dari
apapun termasuk bilangan. Kemudian plainteks tersebut
dibuat kumpulan bigram yang mengabaikan karakter yang
bukan huruf dan memilah-milah plainteks sesuai dengan
aturan-aturan yang ada pada playfair cipher.
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
Kunci yang digunakan pada bigram bergantung pada
bigram plainteks sebelumnya, yaitu dengan mengambil
huruf dari bigram tersebut kemudian melakukan
algoritma enkripsi vigenere cipher pada masing-masing
isi tabel dengan kunci adalah huruf yang diambil, aturan
dalam pengambilan huruf untuk dijadikan kunci vigenere
cipher adalah apabila huruf kedua adalah huruf ‘A’ maka
huruf yang diambil adalah huruf yang pertama dari
bigram plainteks, jika tidak maka diambil huruf kedua
dari bigram plainteks.
Enkripsi Playfair
Pi-1
Keyi-0
Ci-1
Enkripsi Vigenere
Enkripsi Playfair
Pi
Ci
Enkripsi Vigenere
Gambar 5 Skema enkripsi algoritma modifikasi
Dekripsi Playfair
Ci-1
Keyi-0
Pi-1
Enkripsi Vigenere
Dekripsi Playfair
Pi
Ci
Enkripsi Vigenere
Gambar 6 Skema dekripsi algoritma modifikasi
a. Enkripsi
Masukkan : plainteks, key
Keluaran : teks yang sidah dienkripsi
Langkah 1: Ambil satu bigram dari plainteks
Langkah 2: Subsitusi bigram tersebut dengan key,
kemudian masukkan dalam teks keluaran
Langkah 3: Perikasa apakah huruf kedua dari bigram
yang belom terenkripsi tersebut adalah ‘A’, jika benar
maka ambil huruf pertama untuk dijadikan kunci vigenere
cipher, jika tidak ambil huruf kedua
Langkah 4: Enkripsi tiap-tiap isi tabel pada key
menggunakan algoritma vigenere cipher dengan kunci
huruf yang diambil pada langkah 3
Langkah 5: Lakukan langkah 2 hingga langkah 4 untuk
sisa bigram yang ada pada plainteks
Langkah 6: Hasil terakhir pada teks keluaran adalah
plainteks yang sudah terenkripsi
b. Dekripsi
Masukkan : teks, key
Keluaran : teks yang sidah didekripsi
Langkah 1: Ambil satu bigram dari teks
Langkah 2: Subsitusi bigram tersebut dengan key,
kemudian masukkan dalam teks keluaran
Langkah 3: Perikasa apakah huruf kedua dari bigram
yang sudah didekripsi terakhir adalah ‘A’, jika benar
maka ambil huruf pertama untuk dijadikan kunci vigenere
cipher, jika tidak ambil huruf kedua
Langkah 4: Enkripsi tiap-tiap isi tabel pada key
menggunakan algoritma vigenere cipher dengan kunci
huruf yang diambil pada langkah 3
Langkah 5: Lakukan langkah 2 hingga langkah 4 untuk
sisa bigram yang ada pada teks
Langkah 6: Hasil terakhir pada teks keluaran adalah
plainteks yang sudah terenkripsi
V. HASIL EXPERIMEN
Untuk mengetahui perbandingan antar algoritma
sebelum modifikasi dengan algoritma setelah modifikasi
maka dilakukan ujicoba untuk teks yang memiliki
pengulangan bigram. Kunci yang digunakan pada semua
ujicoba adalah PLAYFAIR.
Plainteks untuk masing-masing algoritma adalah
sebagai berikut
Plainteks:
TO EN CR YP TA TA BL EO FA LP HA BE TS CA
NB EU SE DT ER ME DA TA BU LA RE CT AV JG
EN ÈR ES QU AR EO RV JG EN ÈR ET AB LE JT
CO NS JS TS OF TH EA LP HA BE TW RJ TZ TE
NO UT TJ ME SJ ND JF FE RE NT RO WS EA CH
AL PH AB ET SH JF TE DC YC LJ CA LZ LY TO
TH EL EF TC OM PA RE DT OT HE PR EV JO US
AL PH AB ET CO RZ RE SP ON DJ NG TO TH EP
OS SJ BL EC AE SA RC JP HE RS AT DJ FZ FE
RE NT PO JN TS JN TH EZ EN CR YP TJ ON PR
OC ES ST HE CJ PH ER US ES AD JF FE RE NT
AL PH AB ET FR OM ON EO FT HE RO WS TH EA
LP HA BE TU SE DA TE AC HP OJ NT DE PE ND
SO NA RE PE AT JN GK EY WO RD
Plainteks tersebut banyak memiliki pengulangan bigram
sehingga dapat dibandingkan dengan hasil enkripsinya.
Bigram yang akan diperhatikan adalah TO.
Hasil enkripsi untuk algorima biasa adalah sebagai
berikut :
Cipherteks:
NQ RT DB FL QF QF HB BT PY AL JL CR NT JC
OR RZ TD ES RB TM CY QF RV AY BR EQ LW KH
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
RT UE DT NW PC BT BU KH RT UE MZ LC FB MQ
BQ OT KQ NT TL OM CF AL JL CR QZ CG ZF ZM
OQ ZN QM TM QK SR MA EM BR ON BN XQ CF BJ
YA LG LC MZ OK MA ZM ED AD AH JC FV AF NQ
OM BF ME QE TH LY BR ES QN MB RG BZ HQ XN
YA LG LC MZ BQ EU BR NY QO CK UN NQ OM RF
QT QK HB RD FC QY BD GA MB DN FQ CK EF EM
BR ON LN GQ NT GQ OM MF RT DB FL QM QO RG
QB DT TN MB JQ LG RB XN DT YC MA EM BR ON
YA LG LC MZ PE TH QO BT EZ MB BN XQ OM CF
AL JL CR NZ TD CY ZM CJ GL QH ON ER FR SR
TQ QP BR FR FQ GQ HM DF VQ BE
Hasil endkripsi untuk algoritma hasil modifikasi
adalah sebagai berikut:
Cipherteks:
NQ HK DP CA AG HF RG CN TJ EQ CH TU BW DC
UD BO WZ MJ KA UQ CR NX UO TO LK XP FQ WH
RX LG MF RQ PT JF MC MZ WP XX PF SV ZG WV
PC GU AH MD FZ KN US PO RP CP FM AW WG ZP
OE DZ KT GJ LS SN FG VD DZ ZD VP QV KR DS
VS HM BV LO TF FU RF OW ZX QT XH MN XN FT
PT HJ BY DV JS NQ SA SO AU BT VQ YA RA OK
ZP WM WM JS PW PS EZ FY DM YB CX OM DX QM
JO MU KR TW YA OM XN BZ UR JK ZP XV UX OR
CD WR GX WH OP AJ XV JX ZK ZD PJ AO TC YB
FM AV GM NY HO JZ RO YC JC DT XP EP CU TL
MT LY YP MF CK GF EL TE YV PO NG DX FA AB
SJ GL TS FD EX CY SQ GV JG XC DH OX KO JZ
DN UM TN GL FR HL LE JN KT CJ
Berdasarkan hasil enkripsi kedua algoritma dapat
dilihat bahwa algoritma biasa, untuk bigram yang sama
akan menghasilkan bigram yang sama juga dan untuk
bigram yang berbeda akan menghasilkan bigram yang
berbeda juga. Sedangkan untuk algoritma hasil
modifikasi, untuk bigram yang sama akan menhasilkan
bigram yang berbeda satu sama lain, dan untuk bigram
yang berbeda dapat menhasilkan bigram yang sama.
Untuk menunjukan kapan algoritma hasil modifikasi
tersebut mengalami pengulangan digunakan kunci
PLAYFAIR dan plainteks sebagai berikut:
Plainteks:
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
HO HO HO HO HO HO HO HO HO HO HO HO HO HO
Hasil dari enkripsi dengan algoritma haisl modifikasi
dapat dilihat sebagai berikut:
Cipherteks:
OV ET GV TF OK SA XB CH FB BX GQ CH XH JL
NH RH TY UB JH XN KN NW YM UN FQ KX JW WT
CQ UA VB JF JK NL GB MX FS EQ LT AL KQ SB
AF VE GF MX MQ UQ XR KM MW JX JQ WN RB OD
SB XJ AM CL DB OM JM AQ JT JV BN RG TD OV
YF OJ OQ KN BD ON OQ OJ AV BG GV RH AQ MJ
NB EJ NB QB CK WS CH JH BH OW AD QH DF QR
NW FN CD JH AC CT SK NW YV RT FS DM GN WJ
FQ SR JF EF JK WB BQ MQ RD QM XW JR KY AF
LR CE SM LN JM CQ NV QF GM DX JN WA OD LD
GH WM GM JB BQ RM GW AH CY UB OJ CG GK JN
OG UN OV ET GV TF OK SA XB CH FB BX GQ CH
XH JL NH RH TY UB JH XN KN NW YM UN FQ KX
JW WT CQ UA VB JF JK NL GB MX FS EQ LT AL
KQ SB AF VE GF MX MQ UQ XR KM MW JX JQ WN
RB OD SB XJ AM CL DB OM JM AQ JT JV BN RG
Dari hasil enkripsi dapat dilihat bahwa pengulangan
mulai terjadi apabila bigram yang berulang terjadi
minimal sebanyak 157 kali. Dan sebelum pengulangan
tersebut terjadi ada bigram yang berulang juga.
VI. ANALISIS KELEMAHAN
Untuk mengetahui kelemahan dilakukan percobaan
perusakan satu bigram pada cipherteks untuk melihat apa
yang terjadi. Percobaan ini menggunakan kunci
PLAYFAIR dan plainteks sebagai berikut:
Plainteks:
FO RE XA MP LE TH EF JR ST LE TZ TE RO FT
HE PL AJ NT EX TA JS PA JR ED WJ TH LT HE
FJ RS TL ET TE RO FT HE KE YS OU SE RO WL
AN DC OL UM NA OF TH EV JG EN ÈR ES QU AR
EN AM EL YL SJ MJ LA RL YF OR TH ES EC ON
Hasil enkripsi dengan algoritma hasil modifikasi
dapat dilihat sebagai berikut:
cipherteks:
LT QG HR LN NP ND UC SC RG QF XJ QM VC WM
XY JH BH AS FB ZH GA GU GE UE LZ KM EQ LX
YB ER JE OD JT BS PH GU PR ER VQ ZY YU FO
UH AV LD DP WU TM QY XM PB UO XX ZA WB RZ
TL GA QE EW QR HV YG LS HY LB UG VM KP AK
Apabila bigram pertama, LT, diubah menjadi LZ,
maka hasil dekripsi yang dihasilkan adalah sebagai
berikut:
Plainteks:
FV JQ FU WL UD GZ PB PF BR RD KW LO LY ZJ
MQ LJ HK FA HC HM YS JM YJ YD QR SJ QK TF
MX RW FD NQ ZG WU BF ZG TW BW CV PN DL WV
OY TA WP FG CD PK UH QY ND VW QH SX XO ZE
Dapat dilihat dari tiga bigram terakhir hasil dekripsi,
SX XO ZE, berbeda dengan tiga bigram terakhir plainteks
sebenarnya, ES EC ON. Hal ini disebabkan karena hasil
enkripsi bergantung pada plainteks sebelumnya sehingga
apabila plainteks sebelumnya diubah maka hasil enkripsi
untuk bigram selanjutnya akan berbeda dari sebelumnya.
Jika dibandingkan dengan algoritma sebelumnya
yang berubah hanya satu bigram pertama saja. Berikut
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
adalah hasil dekripsi dengan algoritma biasa dengan
bigram pertama dari hasil enkripsi diubah.
cipherteks:
FV RE XA MP LE TH EF JR ST LE TZ TE RO FT
HE PL AJ NT EX TA JS PA JR ED WJ TH LT HE
FJ RS TL ET TE RO FT HE KE YS OU SE RO WL
AN DC OL UM NA OF TH EV JG EN ZR ES QU AR
EN AM EL YL SJ MJ LA RL YF OR TH ES EC ON
Dapat dilihat bahwa yang berubah hanya satu bigram
pertama saja. Jadi, serangan yang merusak cipherteks
merupakan kelemahan algoritma hasil modifikasi jika
dibandingakan dengan algoritma biasa.
VII. KESIMPULAN
Berdasarkan hasil eksperimen dapat disimpulkan
bahwa algoritma hasil modifikasi dapat menghilangkan
penggunakan frekuensi kemunculan bigram pada teks
bahasa inggris, yang biasa digunakan oleh kriptanalisis
untuk mendekripsi pesan yang dienkripsi dengan
algoritma playfair biasa. Hasil eksperimen menujukkan
bahwa bigram akan mulai berulang apabila memiliki
bigram yang sama sebanyak 157 kali.
Algoritma hasil modifikasi memiliki keunggulan
sehingga menghilangkan penggunaan frekuensi
kemunculan bigram, tetapi memiliki kelemahan yaitu
apabila bigram pertama dari hasil enkripsi diubah maka
pada saat didekripsi, seluruh plainteks akan hancur dan
tidak dapat dibaca lagi oleh penerima.
VIII. UCAPAN TERIMA KASIH
Saya mengucapakan terima kasih kepada Tuhan
Yang Maha Esa atas berkat-Nya sehingga saya dapat
menyelesaikan makalah ini, saya juga mengucapkan
terima kasih kepada dosen IF3058-Kriptografi karena
sudah memberi kesempatan sehingga saya dapat menulis
makalah ini. Saya berterima kasih kepada teman-teman
saya yang membantu saya dalam proses penyelesaian
makalah ini, sehingga makalah ini dapat selesai dengan
tepat waktu.
REFERENCES
[1] Munir, Rinaldi. 2006. Kriptografi. Bandung:
Informatika.
[2] http://en.wikipedia.org/wiki/Playfair_cipher
Diakses tanggal 18 maret 2012 pukul 08.00 WIB
[3] http://en.wikipedia.org/wiki/Vigenere_cipher
Diakses tanggal 18 maret 2012 pukul 09.00 WIB
PERNYATAAN
Dengan ini saya menyatakan bahwa makalah yang saya
tulis ini adalah tulisan saya sendiri, bukan saduran, atau
terjemahan dari makalah orang lain, dan bukan plagiasi.
Bandung, 19 Maret 2012
Wico Chandra – 1350909
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
LAMPIRAN
1. Tampilan program
2. Source code
a. encriptWithVigenere public String encriptWithVigenere()
{
String result = new String();
for (int i = 0 ; i < plainTeks.length(); i+=3)
{
result += substitute(plainTeks.substring(i, i+2)) + " ";
if (plainTeks.charAt(i+1) == 'A') updateKey(plainTeks.charAt(i));
else updateKey(plainTeks.charAt(i+1));
}
result = result.substring(0,result.length());
return result;
}
b. decriptWithVigenere public String decriptWithVigenere()
{
String result = new String();
for (int i = 0 ; i < plainTeks.length(); i+=3)
{
result += substituteDecript(plainTeks.substring(i, i+2)) + " ";
if (result.charAt(i+1) == 'A') updateKey(result.charAt(i));
else updateKey(result.charAt(i+1));
}
result = result.substring(0,result.length());
return result;
}
c. updateKey protected void updateKey(char in)
{
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
{
char temp = (char)((key[j][i] + in - 2*'A')%26 + 'A');
if (temp == 'I') key[j][i] = (char) (('I' + in - 2*'A')%26 + 'A');
else key[j][i] = temp;
}
}
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
d. substitute
e. substituteDecript protected String substituteDecript(String in)
{
String result = new String();
Point char01 = getPosKey(in.charAt(0));
Point char02 = getPosKey(in.charAt(1));
if (char01.x == char02.x)
{
result += key[char01.x][(char01.y+4)%5];
result += key[char01.x][(char02.y+4)%5];
}
else if (char01.y == char02.y)
{
result += key[(char01.x + 4)%5][char01.y];
result += key[(char02.x + 4)%5][char01.y];
}
else
{
result += key[char02.x][char01.y];
result += key[char01.x][char02.y];
}
return result;
}
f. getPosKey protected Point getPosKey(char in)
{
Point result = new Point();
all:
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
if (key[result.x = j][result.y = i] == in) break all;
return result;
}
g. Varibel Global private char[][] key; //sebagai tabel 5x5
private String plainTeks; //teks yang akan dienkripsi ataupun didekkripsi
protected String substitute(String in)
{
String result = new String();
Point char01 = getPosKey(in.charAt(0));
Point char02 = getPosKey(in.charAt(1));
if (char01.x == char02.x)
{
result += key[char01.x][(char01.y+1)%5];
result += key[char01.x][(char02.y+1)%5];
}
else if (char01.y == char02.y)
{
result += key[(char01.x + 1)%5][char01.y];
result += key[(char02.x + 1)%5][char01.y];
}
else
{
result += key[char02.x][char01.y];
result += key[char01.x][char02.y];
}
return result;
}
top related