modifikasi playfair cipher dengan pembangkitan kunci yang...

7
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 [email protected] AbstractPlayfair 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 TermsPlayfair 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

Upload: vudat

Post on 07-Mar-2019

226 views

Category:

Documents


0 download

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

[email protected]

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;

}