Anda di halaman 1dari 19

Tugas Keamanan Sistem Informasi

Implementasi Algoritma Kriptografi Symetric


Memakai Tabel ASCII 126 Karakter
Disusun untuk memenuhi tugas mata kuliah Keamanan Sistem Informasi
Dosen: Irawan Afrianto, S.T., M.T.
Kelas: KSI-5 2015

Disusun Oleh :
Insan Muslim

(10111140)

Jesaya Hasudungan

(10111637)

Nadiar A. Syaripul

(10111121)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2015
1

KATA PENGANTAR
Puji dan syukur pada Allah Subhanahu Waa Taala, serta pada RasulNya
Nabi Muhammad Salallahu Alaihi Wassalam, dimana atas berkat rahmat dan
karunianya kami dapat menyelesaikan laporan ini, yang merupakan tugas akhir
menjelang Ujian Tengah Semester (UTS) .
Dalam laporan ini kami membahas beberapa teori kriptografi, beberapa
teori yang kami ulas diantaranya Kriptografi dengan kunci simetris dan asimetris,
dan implementasi algoritma.
Penulis berharap laporan ini dapat bermanfaat bagi siapa saja yang
membacanya

dan

dipergunakan

dengan

sebaik-baiknya.

Serta

penulis

mengharapkan pembaca dapat memaklumi kesalahan dalam penyusunan

dan

keterbatasan dalam laporan ini.


Tak lupa penulis mengucapkan terima kasih kepada Dosen Keamanan
Sistem Informasi, Irawan Afrianto, S.T., M.T., atas pengarahan ilmu kriptografi
yang sangat bermanfaat dalam penyususnan makalah ini.

Penulis
Bandung, 2015

BAB I
LANDASAN TEORI
1.1 Pengertian Kriptografi
Ada beberapa definisi yang telah dikemukakan di dalam berbagai
literatur. Kata kriptografi berasal dari bahasa Yunani yaitu cryptos yang
berarti rahasia dan graphein yang berarti tulisan. Kriptografi adalah suatu
ilmu yang mempelajari penulisan secara rahasia dengan menggunakan teknikteknik metematika.
Dalam menjaga kerahasiaan data dengan kriptografi, data sederhana
yang dikirim (plainteks) diubah ke dalam bentuk data sandi (cipherteks),
kemudian data sandi tersebut hanya dapat dikembalikan ke bentuk data
sebenarnya hanya dengan menggunakan kunci (key) tertentu yang dimiliki
oleh pihak yang sah saja. Tentunya hal ini menyebabkan pihak lain yang tidak
memiliki kunci tersebut tidak akan dapat membaca data yang sebenarnya
sehingga dengan kata lain data akan tetap terjaga.
1.2 Tujuan Kriptografi
Kriptografi bertujuan untuk memberikan layanan pada aspek-aspek
keamanan antara lain:
1. Kerahasiaan (confidentiality), yaitu menjaga supaya pesan tidak dapat
dibaca oleh pihak-pihak yang tidak berhak.
2. Integritas data (data integrity), yaitu memberikan jaminan bahwa

untuk tiap bagian pesan tidak akan mengalami perubahan dari saat
dibuat/dikirim oleh pengirim sampai dengan saat data tersebut dibuka
oleh penerima data.
3. Otentikasi (authentication), yaitu berhubungan dengan identifikasi,
baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi
maupun mengidentifikasi kebenaran sumber pesan.
4. Nirpenyangkalan (non repudiation), yaitu memberikan cara untuk
membuktikan bahwa suatu dokumen datang dari seseorang tertentu
sehingga apabila ada seseorang yang mencoba mengakui memiliki
dokumen tersebut, dapat dibuktikan kebenarannya dari pengakuan
orang tersebut.
1.3 Jenis Algoritma Kriptografi
Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi,
kriptografi dapat dibedakan menjadi 2 macam, yaitu kriptografi simetri
(symetric cryptography) dan kriptografi asimetri (asymetric cryptography).
1.3.1 Symetric Cryptography
Pada sistem kriptografi simetri, kunci untuk proses enkripsi sama
dengan kunci untuk proses dekripsi. Keamanan sistem kriptografi simetri
terletak pada kerahasiaan kunci. Istilah lain untuk kriptografi simetri adalah
kriptografi kunci privat (private key cryptography) atau kriptografi
konvensional (conventional cryptography).

Figure 1: Kriptografi Simetris

Algoritma kriptografi simetri dapat dikelompokkan menjadi dua


kategori antara lain:
1) Cipher aliran (stream cipher)
Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam
bentuk bit tunggal yang dalam hal ini rangkaian bit dienkripsikan /
didekripsikan bit per bit. Cipher aliran mengenkripsi satu bit setiap kali.
2) Cipher blok (block cipher)
Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam
bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok- blok
bit yang panjangnya sudah ditentukan sebelumnya. Cipher blok mengenkripsi
satu blok bit setiap kali.
1.3.2 Asymetric Cryptography
Pada sistem kriptografi asimetri, kunci untuk proses enkripsi tidak sama
dengan kunci untuk proses dekripsi. Istilah lain untuk kriptografi asimetri

adalah kriptografi kunci publik (public key cryptography), sebab kunci untuk
enkripsi tidak rahasia dan dapat diketahui oleh siapapun, sementara kunci
untuk dekripsi hanya diketahui oleh penerima pesan.

Figure 2: Kriptografi Asimetris

1.4 Konsep Dasar Kriptografi


Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah
relasi- relasi himpunan yaitu himpunan yang berisi elemen plainteks dan
himpunan yang berisi elemen cipherteks. Enkripsi dan dekripsi merupakan
fungsi transformasi antara dua himpunan tersebut. Bila himpunan plainteks
dinotasikan dengan P dan himpunan cipherteks dinotasikan dengan C,
sedangkan fungsi enkripsi dinotasikan dengan E dan fungsi dekripsi
dinotasikan dengan D maka proses enkripsi dan dekripsi dapat dinyatakan
dalam notasi matematis sebagai berikut:
E(P) = C
D(C) = P
6

Karena proses enkripsi dan dekripsi bertujuan untuk memperoleh kembali


data asal, maka:
D(E(P)) = P
Relasi antara himpunan plainteks dengan himpunan cipherteks
merupakan korespondensi satu-satu. Hal ini merupakan keharusan untuk
mencegah terjadinya ambigu dalam dekripsi yaitu satu elemen cipherteks
menyatakan lebih dari satu elemen plainteks.
Pada metode kriptografi simetris hanya menggunakan satu buah kunci
untuk proses enkripsi dan dekripsi. Bila kunci dinotasikan dengan k maka
proses enkripsi dan dekripsi kriptografi simetris dapat dinyatakan sebagai
berikut:
Ek(P) = C
Dk( C ) = P
maka
Dk( Ek(P)) = P

Pada metode kriptografi asimetris menggunakan kunci umum untuk


enkripsi dan kunci pribadi untuk dekripsi. Bila kunci umum dinotasikan
dengan pk dan kunci pribadi dinotasikan dengan sk, maka proses enkripsi dan
dekripsi kriptografi asimetris dapat dinyatakan sebagai berikut:
Epk(P) = C
Dsk(C) = P
maka
Dsk(Epk(P)) = P

**

BAB II
PEMBAHASAN
2.1 Caesar Cipher
Substitusi kode yang pertama dalam dunia penyandian dikenal dengan
Kode Kaisar, karena penyandian ini terjadi pada saat pemerintahan Yulius
Caesar. Dengan mengganti posisi huruf awal dengan alphabet atau disebut
dengan algoritma ROT3. Caesar Cipher merupakan salah satu algoritma
cipher tertua dan paling diketahui dalam perkembangan ilmu kriptografi.
Caesar cipher merupakan salah satu jenis cipher substitusi yang membentuk
cipher dengan cara melakukan penukaran karakter pada plainteks menjadi
tepat satu karakter pada chiperteks. Teknik seperti ini disebut juga sebagai
chiper abjad tunggal. Algoritma kriptografi Caesar Cipher sangat mudah
untuk digunakan. Inti dari algoritma kriptografi ini adalah melakukan
pergeseran terhadap semua karakter pada plainteks dengan nilai pergeseran
yang sama. Adapun langkah-langkah yang dilakukan untuk membentuk
chiperteks dengan Caesar Cipher adalah:
1. Menentukan besarnya pergeseran karakter yang digunakan dalam
membentuk cipherteks ke plainteks.
2. Menukarkan karakter pada plainteks menjadi cipherteks dengan
berdasarkan pada pergeseran yang telah ditentukan sebelumnya.
Misalnya diketahui bahwa pergeseran = 3, maka huruf A akan
9

digantikan oleh huruf D, huruf B menjadi huruf E, dan seterusnya.

Figure 2.1: Ilustrasi Kode Kaesar


Teknik penyandian ini termasuk sandi tersubtitusi pada setiap huruf
pada plaintext digantikan oleh huruf lain yang dimiliki selisih posisi tertentu
dalam alphabet. Secara detail table dibawah ini menjelaskan pergeseran yang
terjadi pada huruf alphabet.
A

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Menjadi:
D

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Jika pergeseran yang dilakukan sebanyak tiga kali, maka kunci untuk
dekripsinya adalah 3. Pergeseran kunci yang dilakukan tergantung keinginan
pengiriman pesan. Bisa saja kunci yang dipakai a = 7, b = 9, dan seterusnya.
10

Cara kerja sandi ini dapat diilustrasikan dengan membariskan dua set alfabet;
alfabet sandi disusun dengan cara menggeser alfabet biasa ke kanan atau ke
kiri dengan angka tertentu (angka ini disebut kunci). Misalnya sandi Caesar
dengan kunci 3, adalah sebagai berikut:

Alfabet Biasa: ABCDEFGHIJKLMNOPQRSTUVWXYZ


Alfabet Sandi: DEFGHIJKLMNOPQRSTUVWXYZABC
Untuk menyandikan sebuah pesan, cukup mencari setiap huruf yang
hendak disandikan di alfabet biasa, lalu tuliskan huruf yang sesuai pada
alfabet sandi. Untuk memecahkan sandi tersebut gunakan cara sebaliknya.
Contoh penyandian sebuah pesan adalah sebagai berikut.

Teks Terang: kirim pasukan ke sayap kiri


Teks Tersandi: NLULP SDVXNDQ NH VDBDS NLUL
Proses penyandian (enkripsi) dapat secara matematis menggunakan
operasi modulus dengan mengubah huruf-huruf menjadi angka, A = 0, B = 1,
, Z = 25. Sandi (En) dari huruf x dengan geseran n secara matematis
dituliskan dengan,

Sedangkan pada proses pemecahan kode (dekripsi), hasil dekripsi (Dn)


adalah

11

Setiap huruf yang sama digantikan oleh huruf yang sama di sepanjang
pesan, sehingga sandi Caesar digolongkan kepada, substitusi monoalfabetik,
yang berlawanan dengan substitusi polialfabetik.
Untuk membuat karakter tidak mudah ditebak, maka dilakukan sedikut
perubahan, yaitu memakai tabel ASCII 126 karakter. Sehingga penggeseran
bisa dilakukan maksimal sampai 125 karakter.

Figure 2.2: ASCHII 126 karakter


Perubahan lain adalah untuk menyamarkan chipertext yang sudah
dienkripsi untuk kembali dienkripsi kembali. Sehingga kemungkinan chiper
text dapat di deskripsi sekalipun berhasil akan tetap terlihat samar.

12

2.2 Implementasi Enkripsi


def encrypt(key, level=1):
'''
126: Jumlah karakter ASCHII 126
http://thelivingpearl.com/printable-ascii-characters/
'''
pathMsg = raw_input('Masukan path .txt pesan: ')
target = open('chiper.txt', 'w')
msg = open(pathMsg)
for line in msg:
cipher = ''
for char in line:
'''
Secara default level 1, yaitu satu iterasi
enkripsi.
'''
for nLvl in range(int(level)):
indexchar = (ord(char) + key) % 126
if indexchar < 32:
c += 31
char = chr(indexchar)
cipher += char
target.write(str(cipher))
target.write('\n')
print 'Pesan terenkripsi: chiper.txt'

Table 1 Sintak Python untuk Enkripsi


Selamat! kelompok Anda berhasil memecahkan pesan enkrypsi ini,
sebagai hadiah, Anda bisa melihat algoritma chipe kita.
Algoritmanya gampang, pake banget-banget
cukup geser 25 karakter ke sekian karakter di ACII 126 tabel.
Kalau pengen yang lebih susah, buka hexa.science/lebihsusah.txt

Table 2 Contoh Plaintext

Untuk menjalankan program, cukup dengan memasukan perintah


python cipy.py <key> <mode> <level>
Dimana <key> adalah integer maksimal 126, <mode> adalah tipe data bentukan
13

karakter e (encrypt) dan d (decrypt), dan <level> adalah integer tidak dibatasi.
Contoh:

Figure 2.3: Tampilan program enkripsi


Keluaran:
?QXMYM`lkWQX[Y\[Wk-ZPMkNQ^TM_UXkYQYQOMTWMZk\Q_MZkQZW^e\_UkUZUwU
_QNMSMUkTMPUMTwk-ZPMkNU_MkYQXUTM`kMXS[^U`YMkOTU\QkWU`MyU
-XS[^U`YMZeMkSMY\MZSwk\MWQkNMZSQ`xNMZSQ`U
OaWa\kSQ_Q^k}!kWM^MW`Q^kWQk_QWUMZkWM^MW`Q^kPUk-/55k|}"k`MNQXyU
7MXMak\QZSQZkeMZSkXQNUTk_a_MTwkNaWMkTQdMy_OUQZOQzXQNUT_a_MTy`d`U

Table 3 Chipertext

14

2.3 Implementasi Dekripsi


def decrypt(key, level=1):
pathEnc = raw_input('Masukan path .txt terenkripsi: ')
target = open('decrypt.txt', 'w')
ciphertext = open(pathEnc)
for line in ciphertext:
plaintext = ''
for char in line:
'''
Default level 1, satu iterasi deskripsi.
'''
for nLvl in range(int(level)):
indexchar = (ord(char) - key) % 126
if indexchar < 32:
indexchar += 95
char = chr(indexchar)
plaintext += chr(indexchar)
target.write(str(plaintext))
target.write('\n')
print 'Pesan: decrypt.txt'

Table 4 Sintak python untuk dekripsi

Pada percobaan sebelumnya, kunci yang dipakai adalah enkripsi 25


dengan level 3. Maka dengan kunci yang sama, chipertext bisa di dekripsi dengan
parameter yang beruhah hanyalah <mode> menjadi d.

Figure 2.4 Tampilan program dekripsi


Keluaran:
15

Selamat! kelompok Anda berhasil memecahkan pesan enkrypsi ini,i=


sebagai hadiah, Anda bisa melihat algoritma chipe kita.i=
Algoritmanya gampang, pake banget-bangeti=
cukup geser 25 karakter ke sekian karakter di ACII 126 tabel.i=
Kalau pengen yang lebih susah, buka
hexa.science/lebihsusah.txti=

Table 5 Hasil dekripsi

2.4 Dekripsi Kelompok 9


Diketahu bahsa sebuah chipertext yang tidak diketahu kuncinya, tetapi
sudah pasti berisi pesan berbahasa Indonesia sebagai berikut:

16

Pesan

8v5u9c a9a lv5ewa 8uwu xgbu9 5uxab Ujub lufh9 0F. 5uigbgbbuf
ifubbubbufg ubuafa juibbu6 6v6a68a5 8uigdu8 6v9cv8g9c Xu9a 9uwa5
du5v9u 45u9c - 45u9c Oufgwa a9a 6v9ca9cd5a 8v5eu9eau9 wu6ua
wv9cu9 5uigbgbbuf

8v5A9c a9a lv5ewa 8AwA xgbA9 5Axab AjAb lAfh9 0f. 5AigbgbbAf
ifAbbAbbAfg AbAafa jAibbA6 6v6a68a5 8AigdA8 6v9cv8g9c xA9a
9Awa5 dA5v9A 45A9c - 45A9c oAfgwa a9a 6v9ca9cd5a 8v5eA9eaA9
wA6Aa wv9cA9 5AigbgbbAf

8v5A9c a9a lv5ewa 8AwA xgLA9 5AxaL AjAL lAfh9 0f. 5AigLgLLAf
ifALLALLAfg ALAafa jAiLLA6 6v6a68a5 8AigdA8 6v9cv8g9c xA9a
9Awa5 dA5v9A 45A9c - 45A9c oAfgwa a9a 6v9ca9cd5a 8v5eA9eaA9
wA6Aa wv9cA9 5AigLgLLAf

8v5A9c a9a lv5ewa 8AwA xULA9 5AxaL AjAL lAHh9 0H.


5AiULULLAH iHALLALLAHU ALAaHa jAiLLA6 6v6a68a5 8AiUdA8
6v9cv8U9c xA9a 9Awa5 dA5v9A 45A9c - 45A9c oAHUwa a9a
6v9ca9cd5a 8v5eA9eaA9 wA6Aa wv9cA9 5AiULULLAH

8v5A9c a9a lv5ewa 8AwA xULA9 5AxaL AjAL lAHh9 0H.


5ASULULLAH SHALLALLAHU ALAaHa jASLLA6 6v6a68a5
8ASUdA8 6v9cv8U9c xA9a 9Awa5 dA5v9A 45A9c - 45A9c oAHUwa a9a
6v9ca9cd5a 8v5eA9eaA9 wA6Aa wv9cA9 5ASULULLAH

8v5ANG INI lvreDI 8ADA xULAN rAxIL AWAL lAHhN 0H.


rASULULLAH SHALLALLAHU ALAIHI WASLLA6 6v6I68I5
8ASUdA8 6vNGv8UNG xANI NADIr dArvNA OrANG - OrANG
YAHUDI INI 6vNGINGdrI 8vreANeIAN DA6AI DvNGAN
rASULULLAH

8v5ANG INI lvreDI 8ADA BULAN rABIL AWAL lAHhN 0H.


rASULULLAH SHALLALLAHU ALAIHI WASLLAM MvMIM8I5
8ASUdA8 MvNGv8UNG BANI NADIr dArvNA OrANG - OrANG
YAHUDI INI MvNGINGdrI 8vreANeIAN DAMAI DvNGAN
rASULULLAH

8E5ANG INI lEreDI 8ADA BULAN rABIL AWAL lAHhN 0H.


rASULULLAH SHALLALLAHU ALAIHI WASLLAM MEMIM8I5
8ASUdA8 MENGE8UNG BANI NADIr dArENA OrANG - OrANG
YAHUDI INI MENGINGdrI 8EreANeIAN DAMAI DENGAN
rASULULLAH

PE5ANG INI lEreDI PADA BULAN rABIL AWAL lAHhN 0H.


rASULULLAH SHALLALLAHU ALAIHI WASLLAM MEMIMPI5
17

PASUdAP MENGE8UNG BANI NADIr dArENA OrANG - OrANG


YAHUDI INI MENGINGdrI PEreANeIAN DAMAI DENGAN
rASULULLAH
10

PERANG INI lEreDI PADA BULAN RABIL AWAL lAHhN 0H.


RASULULLAH SHALLALLAHU ALAIHI WASLLAM MEMIMPIR
PASUdAP MENGE8UNG BANI NADIr dArENA OrANG - OrANG
YAHUDI INI MENGINGdrI PEreANeIAN DAMAI DENGAN
RASULULLAH

11

PERANG INI TErJDI PADA BULAN RABIL AWAL TAHhN 4H.


RASULULLAH SHALLALLAHU ALAIHI WASLLAM MEMIMPIR
PASUKAP MENGEPUNG BANI NADIr KArENA OrANG - OrANG
YAHUDI INI MENGINGkrI PErJANJIAN DAMAI DENGAN
RASULULLAH

Table 6 Hasil dekripsi

Table 7 Substitusi karakter

18

DAFTAR PUSTAKA
Saoto Purwandoko, Roni. 2010. Aplikasi Penyimpanan File On-Line Dengan
Enkripsi Menggunakan Modifikasi Algoritma Vertical Bit Rotation (VBR) 32 Bit.
Bandung: UNIKOM.
Sudrajat, Jajat. 2005. Implementasi Kriptografi Untuk Keamanan Data Dengan
Menggunakan Metode Advanced Encryption Standard (AES) 128. Bandung:
UNIKOM.

19

Anda mungkin juga menyukai