Top Banner
1. PENDAHULUAN LATAR BELAKANG Keamanan merupakan salah satu aspek yang penting dalam sebuah sistem informasi. Banyak orang menyiasati bagaimana cara mengamankan informasi yang dikomunikasikan atau menyiasati bagaimana cara mendeteksi keaslian dari informasi yang diterimanya. Kriptografi adalah ilmu yang mempelajari bagaimana menjaga keamananan suatu pesan (plaintext). Tugas utama kriptografi adalah untuk menjaga agar baik pesan atau kunci ataupun keduanya tetap terjaga kerahasiaannya dari penyadap (attacker). Penyadap pesan diasumsikan mempunyai akses yang lengkap dalam saluran komunikasi antara pengirim pesan dan penerima pesan. Penyadapan pesan sering terjadi pada komunikasi melalui internet maupun saluran telepon. Untuk mendapatkan pesan tanpa melalui kunci sebenarnya dapat dianalisis (analisis sandi), ilmunya disebut cryptanalysis. Hasil dari analisis sandi akan diperoleh pesan atau kunci. Analisis sandi juga dapat menemukan kelemahan dalam kriptosistem yang pada akhirnya dapat menemukan pesan atau kunci. 1
35

Amanda lilda-08053111001

Jul 25, 2015

Download

Documents

Zulfikar
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Amanda lilda-08053111001

1 PENDAHULUAN

LATAR BELAKANG

Keamanan merupakan salah satu aspek yang penting dalam sebuah sistem informasi

Banyak orang menyiasati bagaimana cara mengamankan informasi yang dikomunikasikan atau

menyiasati bagaimana cara mendeteksi keaslian dari informasi yang diterimanya

Kriptografi adalah ilmu yang mempelajari bagaimana menjaga keamananan suatu pesan (plaintext)

Tugas utama kriptografi adalah untuk menjaga agar baik pesan atau kunci ataupun keduanya tetap

terjaga kerahasiaannya dari penyadap (attacker) Penyadap pesan diasumsikan mempunyai akses

yang lengkap dalam saluran komunikasi antara pengirim pesan dan penerima pesan Penyadapan

pesan sering terjadi pada komunikasi melalui internet maupun saluran telepon

Untuk mendapatkan pesan tanpa melalui kunci sebenarnya dapat dianalisis (analisis sandi)

ilmunya disebut cryptanalysis Hasil dari analisis sandi akan diperoleh pesan atau kunci Analisis

sandi juga dapat menemukan kelemahan dalam kriptosistem yang pada akhirnya dapat menemukan

pesan atau kunci

Pada sebuah data untuk menjaga keamanan datadata tersebut di enksipsi dan deskripsi

enkripsi dan dekripsi pada umumnya membutuhkan penggunaan sejumlah informasi rahasia

disebut sebagai kunci Untuk beberapa mekanisme enkripsikunci yang sama digunakan baik untuk

enkripsi dan dekripsi untuk mekanismeyang lain kunci yang digunakan untuk enkripsi dan

dekripsi berbeda Dua tipedasar dari teknologi kriptografi adalah symmetric key (secretprivate

key) cryptography dan asymmetric (publickey) cryptography Pada symmetric key cryptography

baik pengirim maupun penerima memiliki kunci rahasia yang umum Pada asymmetric key

cryptography pengirim dan penerima masingmasing berbagi kunci publik dan privat Kriptografi

saat ini lebih dari enkripsi dan dekripsi saja Otentikasi menjadi bagian dari kehidupan kita sama

seperti privasi

1

Pesan-pesan yang dirahasiakan dalam kriptografi biasa disebut plainteks(plaintext) dan

hasil penyamaran disebut chiperteks (chipertext) Proses penyamaran dari palinteks ke chiperteks

disebut ENKRIPSI(dari kata encryption) dan proses pembalikan dari chiperteks menjadi plainteks

kembali disebut DESKRIPSI(decryption) Baik proses enkripsi maupun proses dekripsi melibatkan

satu atau beberapa kunci kriptografi Dalam suatu system di mana terdapat algoritma

kriptografiditambah seluruh kemungkinan plaintext ciphertext dan kunci-kuncinya disebut

kriptosistem (cryptosystem atau cryptographic system) Proses tersebut dapat digambarkan secara

sederhana sebagai berikut

Ada dua jenis algoritma kriptografi berdasarkan jenis kuncinya yaitu

1 Algoritma Simetri (konvensional)

Adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya

Disebut konvensional karena algoritma ini digunakan orang sejak dahulu Algoritma simetri sering

juga disebut sebagai algoritma kunci rahasia algoritma kunci tunggal atau algoritma satu kunci dan

mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat

2

berkomunikasi dengan aman Keamanan algoritma simetri tergantung pada kunci membocorkan

kunci berarti bahwa orang lain dapat mengenkrip dan mendekrip pesan Agar komunikasi tetap

aman kunci harus tetap dirahasiakan Yang termasuk algoritma kunci simetri adalah OTP DES

RC2 RC4 RC5 IDEA Twofish Magenta FEAL SAFER LOKI CAST Rijndael (AES)

Blowfish GOST A5 Kasumi dan lain-lainnya

Key (K)

Gambar 2 kriptografi konvensional

Gambar diatas menggambarkan kriptografi simetri yang biasa disebut dengan kriptografi kunci

konvesional Pesan plaintext P misalkan SIGIT dikodekan (dienkrip) menjadi ciphertext

11$ menggunakan password (kunci K) TES Untuk mengembalikan cipher 11$

Menjadi SIGIT dilakukan proses dekripsi dengan kunci yang sama yaitu TES Karena kunci yang

digunakan sama maka disebut kriptografi kunci simetri atau kriptografi konvensional Dalam

dunia kriptografi password sering disebut sebagai kunci Pesan asli yang belum dikodekan disebut

plaintext Plaintext tidak harus berupa teks namun dapat berupa file gambar (gif jpg) file biner

(exe com ocx) file suara (wav mp3) dan sebagainya File yang telah disandikan disebut

ciphertext Enkripsi adalah proses pengubahan pesan asal menjadi karakter yang tidak dapat dibaca

Sedangkan dekripsi adalah proses pengubahan karakter yang tidak dapat dibaca menjadi pesan asal

3

ENKRIPSI

DESKRIPSI

saluran yang tidak aman

Gambar 3 Lingkungan Kriptosystem

menggambarkan cipher C dikirimkan ke tujuan melalui saluran yang umumnya tidak aman

Sedangkan kunci K sendiri harus dikirimkan melalui saluran yang aman Untuk mengirimkan kunci

dengan aman pengirim dan penerima dapat bertemu dan menyepakati kunci tertentu untuk dipakai

bersama dalam komunikasi berikutnya Dalam saluran yang tidak aman ini seorang penyerang

dapat menyadap cipher C dan kemudian melakukan dan kemudian melakukan analisis untuk

menemukan nilai P Nilai K dan P perkiraan yang dihasilkan oleh penyerang disebut sebagai Krsquo

dan Prsquo Untuk memudahkan penulisan dan analisis kriptografi modern menggunakan notasi

matematika dengan pesan asal P dan kode rahasia C yang diperoleh dari enkripsi dengan kunci K

sehingga penulisannya

C = E(P) K

Notasi ini menyatakan bahwa C dihasilkan oleh fungsi enkripsi E yang dioperasikan

terhadap masukan P dengan kunci K operasi ini dilakukan di pengirim Pada penerima dilakukan

operasi sebaliknya

P = D(C) Pemecah kode (cryptanalyst) sering kali hanya memiliki C dan harus menemukan nilai P

nya

4

Cripanalyst

Sumber kunci

tujuandeskriptorenkriptorSumber pesan

Saluran yang aman

Algoritma simetri dapat dibagi dalam dua kategori Jenis pertama beroperasi pada plaintext

yang berupa satu bit tunggal pada satu waktu yang disebut stream algorithms (algoritma aliran atau

stream ciphers) Jenis kedua beroperasi pada plaintext dalam grup bit-bit Grup bit-bit ini disebut

blok dan algoritmanya disebut sebagai algoritma blok atau kode rahasia blok Untuk algoritma

komputer modern ukuran blok dasarnya adalah 64 bit atau 128 bit cukup besar untuk menghindari

analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat Sebelum pemakai

komputer algoritma biasanya beroperasi pada plaintext satu karakter per satu operasi Kita dapat

mengatakan bahwa ini seperti algoritma aliran yang beroperasi pada aliran karakter

2 Algoritma Asimetri

Algoritma Asimetri juga disebut algoritma kunci publik Kunci yang digunakan untuk

enkripsi berbeda dengan kunci yang digunakan untuk dekripsi Kunci dekripsi tidak dapat dihitung

dari kunci enkripsi Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang

berarti semua orang dapat mengetahuinya Sembarang orang dapat menggunakan kunci enkripsi

tersebut untuk mengenkrip pesan namun hanya orang tertentu (calon penerima pesan dan sekaligus

pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi

terhadap pesan tersebut Dalam sistem ini kunci enkripsi sering disebut kunci publik sementara

kunci dekripsi sering disebut kunci privat Kunci privat kadang-kadang disebut kunci rahasia

Yang termasuk algoritma asimetri adalah ECC LUC RSA El Gamal dan DH Enkripsi

dengan kunci publik Ke dinyatakan sebagai

E (M) = C Ke

Dengan kunci privat (Kd) sebagai pasangan kunci publik (Ke) dekripsi dengan kunci

privat yang bersesuaian dapat dinyatakan dengan

D(C) = M Kd

Di sini Ke merupakan pasangan Kd Artinya tidak ada Kd lain yang dapat digunakan untuk

melakukan dekripsi kode C yang merupakan hail enkripsi dengan kunci Ke Sebaliknya pesan

5

dapat dienkrip dengan kunci privat dan didekrip dengan kunci publik Metode ini digunakan pada

tanda tangan digital Meskipun agak membingungkan operasi ini dapat dinyatakan sebagai

E (M) = C Kd

DKe (C) = M

Artinya kunci privat dan kunci publik dapat digunakan secara berlawanan dengan tujuan

yang berbeda Sifat ini hanya berlaku untuk algoritma kunci publik tertentu seperti RSA Sifat ini

tidak berlaku untuk algoritma DH

Taksonomi Primitif-primitif Kriptografi

Ada beberapa dasar tool kriptografi (primitif) yang digunakan untuk mendukung keamanan

informasi Contoh dari primitif termasuk skema enkripsifungsi hash dan skema tanda tangan

digital Gambar 1 menunjukkan daftar primitif yang dimaksud dan bagaimana hubungan mereka

Primitif-primitif ini harus dapat dievaluasi berdasarkan beberapa kriteria seperti

Level keamanan Hal ini biasanya sulit untuk dihitung Sering diwakili dengan jumlah

operasi yang dibutuhkan (menggunakan metode terbaik yang diketahui) untuk melawan

tujuan yang diharapkan Level keamanan biasanya didefinisikan work factor

Fungsionalitas Primitif-primitif dibutuhkan untuk memenuhi tujuan keamanan informasi

yang bermacam-macam Primitif mana yang paling efektif untuk tujuan yang diberikan

akan ditentukan dengan properti dasardari primitif

Metode operasi Primitif saat diterapkan dengan bermacam cara dan dengan bermacam

input biasanya akan menunjukkan karakteristik yang berbeda sehingga satu primitif dapat

menyediakan fungsionalitas yang sangat berbeda pada mode operasi atau penggunaannya

Unjuk kerja Merupakan efisiensi sebuah primitif pada mode tertentu(sebagai contoh

algoritma enkripsi dapat dihitung dengan jumlah bit per detik yang dapat dienkripsinya)

6

Kemudahan implementasi Merupakan kesulitan dalam merealisasikan primitif pada

prakteknyaDapat meliputi kompleksitas pengimplementasian primitif dalam lingkungan

software maupun hardware Kepentingan relatif dari bermacam kriteria ini sangat

tergantung pada aplikasi dan sumber daya yang tersedia

2 LANDASAN TEORI

Pada Makalah ini akan dibahas tentang algoritma ONE TIME PAD (OTP) pada email One

time pad termasuk dalam kelompok kriptografi simestris One-time pad (pad = kertas bloknot)

berisi deretan karakter-karakter kunci yang dibangkitkan secara acak

Cipher ini diimplementasikan melalui sebuah kunci yang terdiri dari sekumpulan random

karakter-karakter yang tidak berulang Setiap huruf kunci dijumlahkan modulo 26 dengan huruf

pada plaintext Pada One Time Pad tiap huruf kunci digunakan satu kali untuk satu pesan dan tidak

7

digunakan kembaliPanjang stream karakter kunci sama dengan panjang pesanSatu-satunya

algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad One-Time Pads (OTP)

One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne Cipher ini termasuk ke

dalam kelompok algoritma kriptografi simetri One time pad (pad = kertas bloknot) berisi barisan

karakter-karakter kunci yang dibangkitkan secara acak Aslinya satu buah one time pad adalah

sebuah pita (tape) yang berisi barisan karakter-karakter kunci Satu pad hanya digunakan sekali

(one time) saja untuk mengenkripsi pesan setelah itu pad yang telah digunakan dihancurkan

supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain Aturan enkripsi yang digunakan

persis sama seperti pada cipher Vigenere Pengirim pesan menggunakan setiap karakter kunci

untuk mengenkripsikan satu karakter plainteks Enkripsi dapat digambarkan sebagai penjumlahan

modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads ci = (pi + ki) mod

26 yang dalam hal ini pi karakter plainteks ki karakter kunci ci karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks sehingga tidak ada

kebutuhan mengulang penggunaan kunci selama proses enkripsiSetelah pengirim mengenkripsikan

pesan dengan one time pads ia menghancurkan one time pads tersebut (makanya disebut satu kali

pakai atau one time)Penerima pesan menggunakan one time pads yang sama untuk

mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan

pi = (ci ndash ki ) mod 26

Contoh

plainteks ONETIMEPAD

kunci TBFRGFARFM

Misalkan A = 0 B = 1 hellip Z = 25

8

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 2: Amanda lilda-08053111001

Pesan-pesan yang dirahasiakan dalam kriptografi biasa disebut plainteks(plaintext) dan

hasil penyamaran disebut chiperteks (chipertext) Proses penyamaran dari palinteks ke chiperteks

disebut ENKRIPSI(dari kata encryption) dan proses pembalikan dari chiperteks menjadi plainteks

kembali disebut DESKRIPSI(decryption) Baik proses enkripsi maupun proses dekripsi melibatkan

satu atau beberapa kunci kriptografi Dalam suatu system di mana terdapat algoritma

kriptografiditambah seluruh kemungkinan plaintext ciphertext dan kunci-kuncinya disebut

kriptosistem (cryptosystem atau cryptographic system) Proses tersebut dapat digambarkan secara

sederhana sebagai berikut

Ada dua jenis algoritma kriptografi berdasarkan jenis kuncinya yaitu

1 Algoritma Simetri (konvensional)

Adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya

Disebut konvensional karena algoritma ini digunakan orang sejak dahulu Algoritma simetri sering

juga disebut sebagai algoritma kunci rahasia algoritma kunci tunggal atau algoritma satu kunci dan

mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat

2

berkomunikasi dengan aman Keamanan algoritma simetri tergantung pada kunci membocorkan

kunci berarti bahwa orang lain dapat mengenkrip dan mendekrip pesan Agar komunikasi tetap

aman kunci harus tetap dirahasiakan Yang termasuk algoritma kunci simetri adalah OTP DES

RC2 RC4 RC5 IDEA Twofish Magenta FEAL SAFER LOKI CAST Rijndael (AES)

Blowfish GOST A5 Kasumi dan lain-lainnya

Key (K)

Gambar 2 kriptografi konvensional

Gambar diatas menggambarkan kriptografi simetri yang biasa disebut dengan kriptografi kunci

konvesional Pesan plaintext P misalkan SIGIT dikodekan (dienkrip) menjadi ciphertext

11$ menggunakan password (kunci K) TES Untuk mengembalikan cipher 11$

Menjadi SIGIT dilakukan proses dekripsi dengan kunci yang sama yaitu TES Karena kunci yang

digunakan sama maka disebut kriptografi kunci simetri atau kriptografi konvensional Dalam

dunia kriptografi password sering disebut sebagai kunci Pesan asli yang belum dikodekan disebut

plaintext Plaintext tidak harus berupa teks namun dapat berupa file gambar (gif jpg) file biner

(exe com ocx) file suara (wav mp3) dan sebagainya File yang telah disandikan disebut

ciphertext Enkripsi adalah proses pengubahan pesan asal menjadi karakter yang tidak dapat dibaca

Sedangkan dekripsi adalah proses pengubahan karakter yang tidak dapat dibaca menjadi pesan asal

3

ENKRIPSI

DESKRIPSI

saluran yang tidak aman

Gambar 3 Lingkungan Kriptosystem

menggambarkan cipher C dikirimkan ke tujuan melalui saluran yang umumnya tidak aman

Sedangkan kunci K sendiri harus dikirimkan melalui saluran yang aman Untuk mengirimkan kunci

dengan aman pengirim dan penerima dapat bertemu dan menyepakati kunci tertentu untuk dipakai

bersama dalam komunikasi berikutnya Dalam saluran yang tidak aman ini seorang penyerang

dapat menyadap cipher C dan kemudian melakukan dan kemudian melakukan analisis untuk

menemukan nilai P Nilai K dan P perkiraan yang dihasilkan oleh penyerang disebut sebagai Krsquo

dan Prsquo Untuk memudahkan penulisan dan analisis kriptografi modern menggunakan notasi

matematika dengan pesan asal P dan kode rahasia C yang diperoleh dari enkripsi dengan kunci K

sehingga penulisannya

C = E(P) K

Notasi ini menyatakan bahwa C dihasilkan oleh fungsi enkripsi E yang dioperasikan

terhadap masukan P dengan kunci K operasi ini dilakukan di pengirim Pada penerima dilakukan

operasi sebaliknya

P = D(C) Pemecah kode (cryptanalyst) sering kali hanya memiliki C dan harus menemukan nilai P

nya

4

Cripanalyst

Sumber kunci

tujuandeskriptorenkriptorSumber pesan

Saluran yang aman

Algoritma simetri dapat dibagi dalam dua kategori Jenis pertama beroperasi pada plaintext

yang berupa satu bit tunggal pada satu waktu yang disebut stream algorithms (algoritma aliran atau

stream ciphers) Jenis kedua beroperasi pada plaintext dalam grup bit-bit Grup bit-bit ini disebut

blok dan algoritmanya disebut sebagai algoritma blok atau kode rahasia blok Untuk algoritma

komputer modern ukuran blok dasarnya adalah 64 bit atau 128 bit cukup besar untuk menghindari

analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat Sebelum pemakai

komputer algoritma biasanya beroperasi pada plaintext satu karakter per satu operasi Kita dapat

mengatakan bahwa ini seperti algoritma aliran yang beroperasi pada aliran karakter

2 Algoritma Asimetri

Algoritma Asimetri juga disebut algoritma kunci publik Kunci yang digunakan untuk

enkripsi berbeda dengan kunci yang digunakan untuk dekripsi Kunci dekripsi tidak dapat dihitung

dari kunci enkripsi Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang

berarti semua orang dapat mengetahuinya Sembarang orang dapat menggunakan kunci enkripsi

tersebut untuk mengenkrip pesan namun hanya orang tertentu (calon penerima pesan dan sekaligus

pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi

terhadap pesan tersebut Dalam sistem ini kunci enkripsi sering disebut kunci publik sementara

kunci dekripsi sering disebut kunci privat Kunci privat kadang-kadang disebut kunci rahasia

Yang termasuk algoritma asimetri adalah ECC LUC RSA El Gamal dan DH Enkripsi

dengan kunci publik Ke dinyatakan sebagai

E (M) = C Ke

Dengan kunci privat (Kd) sebagai pasangan kunci publik (Ke) dekripsi dengan kunci

privat yang bersesuaian dapat dinyatakan dengan

D(C) = M Kd

Di sini Ke merupakan pasangan Kd Artinya tidak ada Kd lain yang dapat digunakan untuk

melakukan dekripsi kode C yang merupakan hail enkripsi dengan kunci Ke Sebaliknya pesan

5

dapat dienkrip dengan kunci privat dan didekrip dengan kunci publik Metode ini digunakan pada

tanda tangan digital Meskipun agak membingungkan operasi ini dapat dinyatakan sebagai

E (M) = C Kd

DKe (C) = M

Artinya kunci privat dan kunci publik dapat digunakan secara berlawanan dengan tujuan

yang berbeda Sifat ini hanya berlaku untuk algoritma kunci publik tertentu seperti RSA Sifat ini

tidak berlaku untuk algoritma DH

Taksonomi Primitif-primitif Kriptografi

Ada beberapa dasar tool kriptografi (primitif) yang digunakan untuk mendukung keamanan

informasi Contoh dari primitif termasuk skema enkripsifungsi hash dan skema tanda tangan

digital Gambar 1 menunjukkan daftar primitif yang dimaksud dan bagaimana hubungan mereka

Primitif-primitif ini harus dapat dievaluasi berdasarkan beberapa kriteria seperti

Level keamanan Hal ini biasanya sulit untuk dihitung Sering diwakili dengan jumlah

operasi yang dibutuhkan (menggunakan metode terbaik yang diketahui) untuk melawan

tujuan yang diharapkan Level keamanan biasanya didefinisikan work factor

Fungsionalitas Primitif-primitif dibutuhkan untuk memenuhi tujuan keamanan informasi

yang bermacam-macam Primitif mana yang paling efektif untuk tujuan yang diberikan

akan ditentukan dengan properti dasardari primitif

Metode operasi Primitif saat diterapkan dengan bermacam cara dan dengan bermacam

input biasanya akan menunjukkan karakteristik yang berbeda sehingga satu primitif dapat

menyediakan fungsionalitas yang sangat berbeda pada mode operasi atau penggunaannya

Unjuk kerja Merupakan efisiensi sebuah primitif pada mode tertentu(sebagai contoh

algoritma enkripsi dapat dihitung dengan jumlah bit per detik yang dapat dienkripsinya)

6

Kemudahan implementasi Merupakan kesulitan dalam merealisasikan primitif pada

prakteknyaDapat meliputi kompleksitas pengimplementasian primitif dalam lingkungan

software maupun hardware Kepentingan relatif dari bermacam kriteria ini sangat

tergantung pada aplikasi dan sumber daya yang tersedia

2 LANDASAN TEORI

Pada Makalah ini akan dibahas tentang algoritma ONE TIME PAD (OTP) pada email One

time pad termasuk dalam kelompok kriptografi simestris One-time pad (pad = kertas bloknot)

berisi deretan karakter-karakter kunci yang dibangkitkan secara acak

Cipher ini diimplementasikan melalui sebuah kunci yang terdiri dari sekumpulan random

karakter-karakter yang tidak berulang Setiap huruf kunci dijumlahkan modulo 26 dengan huruf

pada plaintext Pada One Time Pad tiap huruf kunci digunakan satu kali untuk satu pesan dan tidak

7

digunakan kembaliPanjang stream karakter kunci sama dengan panjang pesanSatu-satunya

algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad One-Time Pads (OTP)

One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne Cipher ini termasuk ke

dalam kelompok algoritma kriptografi simetri One time pad (pad = kertas bloknot) berisi barisan

karakter-karakter kunci yang dibangkitkan secara acak Aslinya satu buah one time pad adalah

sebuah pita (tape) yang berisi barisan karakter-karakter kunci Satu pad hanya digunakan sekali

(one time) saja untuk mengenkripsi pesan setelah itu pad yang telah digunakan dihancurkan

supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain Aturan enkripsi yang digunakan

persis sama seperti pada cipher Vigenere Pengirim pesan menggunakan setiap karakter kunci

untuk mengenkripsikan satu karakter plainteks Enkripsi dapat digambarkan sebagai penjumlahan

modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads ci = (pi + ki) mod

26 yang dalam hal ini pi karakter plainteks ki karakter kunci ci karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks sehingga tidak ada

kebutuhan mengulang penggunaan kunci selama proses enkripsiSetelah pengirim mengenkripsikan

pesan dengan one time pads ia menghancurkan one time pads tersebut (makanya disebut satu kali

pakai atau one time)Penerima pesan menggunakan one time pads yang sama untuk

mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan

pi = (ci ndash ki ) mod 26

Contoh

plainteks ONETIMEPAD

kunci TBFRGFARFM

Misalkan A = 0 B = 1 hellip Z = 25

8

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 3: Amanda lilda-08053111001

berkomunikasi dengan aman Keamanan algoritma simetri tergantung pada kunci membocorkan

kunci berarti bahwa orang lain dapat mengenkrip dan mendekrip pesan Agar komunikasi tetap

aman kunci harus tetap dirahasiakan Yang termasuk algoritma kunci simetri adalah OTP DES

RC2 RC4 RC5 IDEA Twofish Magenta FEAL SAFER LOKI CAST Rijndael (AES)

Blowfish GOST A5 Kasumi dan lain-lainnya

Key (K)

Gambar 2 kriptografi konvensional

Gambar diatas menggambarkan kriptografi simetri yang biasa disebut dengan kriptografi kunci

konvesional Pesan plaintext P misalkan SIGIT dikodekan (dienkrip) menjadi ciphertext

11$ menggunakan password (kunci K) TES Untuk mengembalikan cipher 11$

Menjadi SIGIT dilakukan proses dekripsi dengan kunci yang sama yaitu TES Karena kunci yang

digunakan sama maka disebut kriptografi kunci simetri atau kriptografi konvensional Dalam

dunia kriptografi password sering disebut sebagai kunci Pesan asli yang belum dikodekan disebut

plaintext Plaintext tidak harus berupa teks namun dapat berupa file gambar (gif jpg) file biner

(exe com ocx) file suara (wav mp3) dan sebagainya File yang telah disandikan disebut

ciphertext Enkripsi adalah proses pengubahan pesan asal menjadi karakter yang tidak dapat dibaca

Sedangkan dekripsi adalah proses pengubahan karakter yang tidak dapat dibaca menjadi pesan asal

3

ENKRIPSI

DESKRIPSI

saluran yang tidak aman

Gambar 3 Lingkungan Kriptosystem

menggambarkan cipher C dikirimkan ke tujuan melalui saluran yang umumnya tidak aman

Sedangkan kunci K sendiri harus dikirimkan melalui saluran yang aman Untuk mengirimkan kunci

dengan aman pengirim dan penerima dapat bertemu dan menyepakati kunci tertentu untuk dipakai

bersama dalam komunikasi berikutnya Dalam saluran yang tidak aman ini seorang penyerang

dapat menyadap cipher C dan kemudian melakukan dan kemudian melakukan analisis untuk

menemukan nilai P Nilai K dan P perkiraan yang dihasilkan oleh penyerang disebut sebagai Krsquo

dan Prsquo Untuk memudahkan penulisan dan analisis kriptografi modern menggunakan notasi

matematika dengan pesan asal P dan kode rahasia C yang diperoleh dari enkripsi dengan kunci K

sehingga penulisannya

C = E(P) K

Notasi ini menyatakan bahwa C dihasilkan oleh fungsi enkripsi E yang dioperasikan

terhadap masukan P dengan kunci K operasi ini dilakukan di pengirim Pada penerima dilakukan

operasi sebaliknya

P = D(C) Pemecah kode (cryptanalyst) sering kali hanya memiliki C dan harus menemukan nilai P

nya

4

Cripanalyst

Sumber kunci

tujuandeskriptorenkriptorSumber pesan

Saluran yang aman

Algoritma simetri dapat dibagi dalam dua kategori Jenis pertama beroperasi pada plaintext

yang berupa satu bit tunggal pada satu waktu yang disebut stream algorithms (algoritma aliran atau

stream ciphers) Jenis kedua beroperasi pada plaintext dalam grup bit-bit Grup bit-bit ini disebut

blok dan algoritmanya disebut sebagai algoritma blok atau kode rahasia blok Untuk algoritma

komputer modern ukuran blok dasarnya adalah 64 bit atau 128 bit cukup besar untuk menghindari

analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat Sebelum pemakai

komputer algoritma biasanya beroperasi pada plaintext satu karakter per satu operasi Kita dapat

mengatakan bahwa ini seperti algoritma aliran yang beroperasi pada aliran karakter

2 Algoritma Asimetri

Algoritma Asimetri juga disebut algoritma kunci publik Kunci yang digunakan untuk

enkripsi berbeda dengan kunci yang digunakan untuk dekripsi Kunci dekripsi tidak dapat dihitung

dari kunci enkripsi Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang

berarti semua orang dapat mengetahuinya Sembarang orang dapat menggunakan kunci enkripsi

tersebut untuk mengenkrip pesan namun hanya orang tertentu (calon penerima pesan dan sekaligus

pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi

terhadap pesan tersebut Dalam sistem ini kunci enkripsi sering disebut kunci publik sementara

kunci dekripsi sering disebut kunci privat Kunci privat kadang-kadang disebut kunci rahasia

Yang termasuk algoritma asimetri adalah ECC LUC RSA El Gamal dan DH Enkripsi

dengan kunci publik Ke dinyatakan sebagai

E (M) = C Ke

Dengan kunci privat (Kd) sebagai pasangan kunci publik (Ke) dekripsi dengan kunci

privat yang bersesuaian dapat dinyatakan dengan

D(C) = M Kd

Di sini Ke merupakan pasangan Kd Artinya tidak ada Kd lain yang dapat digunakan untuk

melakukan dekripsi kode C yang merupakan hail enkripsi dengan kunci Ke Sebaliknya pesan

5

dapat dienkrip dengan kunci privat dan didekrip dengan kunci publik Metode ini digunakan pada

tanda tangan digital Meskipun agak membingungkan operasi ini dapat dinyatakan sebagai

E (M) = C Kd

DKe (C) = M

Artinya kunci privat dan kunci publik dapat digunakan secara berlawanan dengan tujuan

yang berbeda Sifat ini hanya berlaku untuk algoritma kunci publik tertentu seperti RSA Sifat ini

tidak berlaku untuk algoritma DH

Taksonomi Primitif-primitif Kriptografi

Ada beberapa dasar tool kriptografi (primitif) yang digunakan untuk mendukung keamanan

informasi Contoh dari primitif termasuk skema enkripsifungsi hash dan skema tanda tangan

digital Gambar 1 menunjukkan daftar primitif yang dimaksud dan bagaimana hubungan mereka

Primitif-primitif ini harus dapat dievaluasi berdasarkan beberapa kriteria seperti

Level keamanan Hal ini biasanya sulit untuk dihitung Sering diwakili dengan jumlah

operasi yang dibutuhkan (menggunakan metode terbaik yang diketahui) untuk melawan

tujuan yang diharapkan Level keamanan biasanya didefinisikan work factor

Fungsionalitas Primitif-primitif dibutuhkan untuk memenuhi tujuan keamanan informasi

yang bermacam-macam Primitif mana yang paling efektif untuk tujuan yang diberikan

akan ditentukan dengan properti dasardari primitif

Metode operasi Primitif saat diterapkan dengan bermacam cara dan dengan bermacam

input biasanya akan menunjukkan karakteristik yang berbeda sehingga satu primitif dapat

menyediakan fungsionalitas yang sangat berbeda pada mode operasi atau penggunaannya

Unjuk kerja Merupakan efisiensi sebuah primitif pada mode tertentu(sebagai contoh

algoritma enkripsi dapat dihitung dengan jumlah bit per detik yang dapat dienkripsinya)

6

Kemudahan implementasi Merupakan kesulitan dalam merealisasikan primitif pada

prakteknyaDapat meliputi kompleksitas pengimplementasian primitif dalam lingkungan

software maupun hardware Kepentingan relatif dari bermacam kriteria ini sangat

tergantung pada aplikasi dan sumber daya yang tersedia

2 LANDASAN TEORI

Pada Makalah ini akan dibahas tentang algoritma ONE TIME PAD (OTP) pada email One

time pad termasuk dalam kelompok kriptografi simestris One-time pad (pad = kertas bloknot)

berisi deretan karakter-karakter kunci yang dibangkitkan secara acak

Cipher ini diimplementasikan melalui sebuah kunci yang terdiri dari sekumpulan random

karakter-karakter yang tidak berulang Setiap huruf kunci dijumlahkan modulo 26 dengan huruf

pada plaintext Pada One Time Pad tiap huruf kunci digunakan satu kali untuk satu pesan dan tidak

7

digunakan kembaliPanjang stream karakter kunci sama dengan panjang pesanSatu-satunya

algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad One-Time Pads (OTP)

One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne Cipher ini termasuk ke

dalam kelompok algoritma kriptografi simetri One time pad (pad = kertas bloknot) berisi barisan

karakter-karakter kunci yang dibangkitkan secara acak Aslinya satu buah one time pad adalah

sebuah pita (tape) yang berisi barisan karakter-karakter kunci Satu pad hanya digunakan sekali

(one time) saja untuk mengenkripsi pesan setelah itu pad yang telah digunakan dihancurkan

supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain Aturan enkripsi yang digunakan

persis sama seperti pada cipher Vigenere Pengirim pesan menggunakan setiap karakter kunci

untuk mengenkripsikan satu karakter plainteks Enkripsi dapat digambarkan sebagai penjumlahan

modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads ci = (pi + ki) mod

26 yang dalam hal ini pi karakter plainteks ki karakter kunci ci karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks sehingga tidak ada

kebutuhan mengulang penggunaan kunci selama proses enkripsiSetelah pengirim mengenkripsikan

pesan dengan one time pads ia menghancurkan one time pads tersebut (makanya disebut satu kali

pakai atau one time)Penerima pesan menggunakan one time pads yang sama untuk

mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan

pi = (ci ndash ki ) mod 26

Contoh

plainteks ONETIMEPAD

kunci TBFRGFARFM

Misalkan A = 0 B = 1 hellip Z = 25

8

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 4: Amanda lilda-08053111001

saluran yang tidak aman

Gambar 3 Lingkungan Kriptosystem

menggambarkan cipher C dikirimkan ke tujuan melalui saluran yang umumnya tidak aman

Sedangkan kunci K sendiri harus dikirimkan melalui saluran yang aman Untuk mengirimkan kunci

dengan aman pengirim dan penerima dapat bertemu dan menyepakati kunci tertentu untuk dipakai

bersama dalam komunikasi berikutnya Dalam saluran yang tidak aman ini seorang penyerang

dapat menyadap cipher C dan kemudian melakukan dan kemudian melakukan analisis untuk

menemukan nilai P Nilai K dan P perkiraan yang dihasilkan oleh penyerang disebut sebagai Krsquo

dan Prsquo Untuk memudahkan penulisan dan analisis kriptografi modern menggunakan notasi

matematika dengan pesan asal P dan kode rahasia C yang diperoleh dari enkripsi dengan kunci K

sehingga penulisannya

C = E(P) K

Notasi ini menyatakan bahwa C dihasilkan oleh fungsi enkripsi E yang dioperasikan

terhadap masukan P dengan kunci K operasi ini dilakukan di pengirim Pada penerima dilakukan

operasi sebaliknya

P = D(C) Pemecah kode (cryptanalyst) sering kali hanya memiliki C dan harus menemukan nilai P

nya

4

Cripanalyst

Sumber kunci

tujuandeskriptorenkriptorSumber pesan

Saluran yang aman

Algoritma simetri dapat dibagi dalam dua kategori Jenis pertama beroperasi pada plaintext

yang berupa satu bit tunggal pada satu waktu yang disebut stream algorithms (algoritma aliran atau

stream ciphers) Jenis kedua beroperasi pada plaintext dalam grup bit-bit Grup bit-bit ini disebut

blok dan algoritmanya disebut sebagai algoritma blok atau kode rahasia blok Untuk algoritma

komputer modern ukuran blok dasarnya adalah 64 bit atau 128 bit cukup besar untuk menghindari

analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat Sebelum pemakai

komputer algoritma biasanya beroperasi pada plaintext satu karakter per satu operasi Kita dapat

mengatakan bahwa ini seperti algoritma aliran yang beroperasi pada aliran karakter

2 Algoritma Asimetri

Algoritma Asimetri juga disebut algoritma kunci publik Kunci yang digunakan untuk

enkripsi berbeda dengan kunci yang digunakan untuk dekripsi Kunci dekripsi tidak dapat dihitung

dari kunci enkripsi Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang

berarti semua orang dapat mengetahuinya Sembarang orang dapat menggunakan kunci enkripsi

tersebut untuk mengenkrip pesan namun hanya orang tertentu (calon penerima pesan dan sekaligus

pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi

terhadap pesan tersebut Dalam sistem ini kunci enkripsi sering disebut kunci publik sementara

kunci dekripsi sering disebut kunci privat Kunci privat kadang-kadang disebut kunci rahasia

Yang termasuk algoritma asimetri adalah ECC LUC RSA El Gamal dan DH Enkripsi

dengan kunci publik Ke dinyatakan sebagai

E (M) = C Ke

Dengan kunci privat (Kd) sebagai pasangan kunci publik (Ke) dekripsi dengan kunci

privat yang bersesuaian dapat dinyatakan dengan

D(C) = M Kd

Di sini Ke merupakan pasangan Kd Artinya tidak ada Kd lain yang dapat digunakan untuk

melakukan dekripsi kode C yang merupakan hail enkripsi dengan kunci Ke Sebaliknya pesan

5

dapat dienkrip dengan kunci privat dan didekrip dengan kunci publik Metode ini digunakan pada

tanda tangan digital Meskipun agak membingungkan operasi ini dapat dinyatakan sebagai

E (M) = C Kd

DKe (C) = M

Artinya kunci privat dan kunci publik dapat digunakan secara berlawanan dengan tujuan

yang berbeda Sifat ini hanya berlaku untuk algoritma kunci publik tertentu seperti RSA Sifat ini

tidak berlaku untuk algoritma DH

Taksonomi Primitif-primitif Kriptografi

Ada beberapa dasar tool kriptografi (primitif) yang digunakan untuk mendukung keamanan

informasi Contoh dari primitif termasuk skema enkripsifungsi hash dan skema tanda tangan

digital Gambar 1 menunjukkan daftar primitif yang dimaksud dan bagaimana hubungan mereka

Primitif-primitif ini harus dapat dievaluasi berdasarkan beberapa kriteria seperti

Level keamanan Hal ini biasanya sulit untuk dihitung Sering diwakili dengan jumlah

operasi yang dibutuhkan (menggunakan metode terbaik yang diketahui) untuk melawan

tujuan yang diharapkan Level keamanan biasanya didefinisikan work factor

Fungsionalitas Primitif-primitif dibutuhkan untuk memenuhi tujuan keamanan informasi

yang bermacam-macam Primitif mana yang paling efektif untuk tujuan yang diberikan

akan ditentukan dengan properti dasardari primitif

Metode operasi Primitif saat diterapkan dengan bermacam cara dan dengan bermacam

input biasanya akan menunjukkan karakteristik yang berbeda sehingga satu primitif dapat

menyediakan fungsionalitas yang sangat berbeda pada mode operasi atau penggunaannya

Unjuk kerja Merupakan efisiensi sebuah primitif pada mode tertentu(sebagai contoh

algoritma enkripsi dapat dihitung dengan jumlah bit per detik yang dapat dienkripsinya)

6

Kemudahan implementasi Merupakan kesulitan dalam merealisasikan primitif pada

prakteknyaDapat meliputi kompleksitas pengimplementasian primitif dalam lingkungan

software maupun hardware Kepentingan relatif dari bermacam kriteria ini sangat

tergantung pada aplikasi dan sumber daya yang tersedia

2 LANDASAN TEORI

Pada Makalah ini akan dibahas tentang algoritma ONE TIME PAD (OTP) pada email One

time pad termasuk dalam kelompok kriptografi simestris One-time pad (pad = kertas bloknot)

berisi deretan karakter-karakter kunci yang dibangkitkan secara acak

Cipher ini diimplementasikan melalui sebuah kunci yang terdiri dari sekumpulan random

karakter-karakter yang tidak berulang Setiap huruf kunci dijumlahkan modulo 26 dengan huruf

pada plaintext Pada One Time Pad tiap huruf kunci digunakan satu kali untuk satu pesan dan tidak

7

digunakan kembaliPanjang stream karakter kunci sama dengan panjang pesanSatu-satunya

algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad One-Time Pads (OTP)

One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne Cipher ini termasuk ke

dalam kelompok algoritma kriptografi simetri One time pad (pad = kertas bloknot) berisi barisan

karakter-karakter kunci yang dibangkitkan secara acak Aslinya satu buah one time pad adalah

sebuah pita (tape) yang berisi barisan karakter-karakter kunci Satu pad hanya digunakan sekali

(one time) saja untuk mengenkripsi pesan setelah itu pad yang telah digunakan dihancurkan

supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain Aturan enkripsi yang digunakan

persis sama seperti pada cipher Vigenere Pengirim pesan menggunakan setiap karakter kunci

untuk mengenkripsikan satu karakter plainteks Enkripsi dapat digambarkan sebagai penjumlahan

modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads ci = (pi + ki) mod

26 yang dalam hal ini pi karakter plainteks ki karakter kunci ci karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks sehingga tidak ada

kebutuhan mengulang penggunaan kunci selama proses enkripsiSetelah pengirim mengenkripsikan

pesan dengan one time pads ia menghancurkan one time pads tersebut (makanya disebut satu kali

pakai atau one time)Penerima pesan menggunakan one time pads yang sama untuk

mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan

pi = (ci ndash ki ) mod 26

Contoh

plainteks ONETIMEPAD

kunci TBFRGFARFM

Misalkan A = 0 B = 1 hellip Z = 25

8

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 5: Amanda lilda-08053111001

Algoritma simetri dapat dibagi dalam dua kategori Jenis pertama beroperasi pada plaintext

yang berupa satu bit tunggal pada satu waktu yang disebut stream algorithms (algoritma aliran atau

stream ciphers) Jenis kedua beroperasi pada plaintext dalam grup bit-bit Grup bit-bit ini disebut

blok dan algoritmanya disebut sebagai algoritma blok atau kode rahasia blok Untuk algoritma

komputer modern ukuran blok dasarnya adalah 64 bit atau 128 bit cukup besar untuk menghindari

analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat Sebelum pemakai

komputer algoritma biasanya beroperasi pada plaintext satu karakter per satu operasi Kita dapat

mengatakan bahwa ini seperti algoritma aliran yang beroperasi pada aliran karakter

2 Algoritma Asimetri

Algoritma Asimetri juga disebut algoritma kunci publik Kunci yang digunakan untuk

enkripsi berbeda dengan kunci yang digunakan untuk dekripsi Kunci dekripsi tidak dapat dihitung

dari kunci enkripsi Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang

berarti semua orang dapat mengetahuinya Sembarang orang dapat menggunakan kunci enkripsi

tersebut untuk mengenkrip pesan namun hanya orang tertentu (calon penerima pesan dan sekaligus

pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi

terhadap pesan tersebut Dalam sistem ini kunci enkripsi sering disebut kunci publik sementara

kunci dekripsi sering disebut kunci privat Kunci privat kadang-kadang disebut kunci rahasia

Yang termasuk algoritma asimetri adalah ECC LUC RSA El Gamal dan DH Enkripsi

dengan kunci publik Ke dinyatakan sebagai

E (M) = C Ke

Dengan kunci privat (Kd) sebagai pasangan kunci publik (Ke) dekripsi dengan kunci

privat yang bersesuaian dapat dinyatakan dengan

D(C) = M Kd

Di sini Ke merupakan pasangan Kd Artinya tidak ada Kd lain yang dapat digunakan untuk

melakukan dekripsi kode C yang merupakan hail enkripsi dengan kunci Ke Sebaliknya pesan

5

dapat dienkrip dengan kunci privat dan didekrip dengan kunci publik Metode ini digunakan pada

tanda tangan digital Meskipun agak membingungkan operasi ini dapat dinyatakan sebagai

E (M) = C Kd

DKe (C) = M

Artinya kunci privat dan kunci publik dapat digunakan secara berlawanan dengan tujuan

yang berbeda Sifat ini hanya berlaku untuk algoritma kunci publik tertentu seperti RSA Sifat ini

tidak berlaku untuk algoritma DH

Taksonomi Primitif-primitif Kriptografi

Ada beberapa dasar tool kriptografi (primitif) yang digunakan untuk mendukung keamanan

informasi Contoh dari primitif termasuk skema enkripsifungsi hash dan skema tanda tangan

digital Gambar 1 menunjukkan daftar primitif yang dimaksud dan bagaimana hubungan mereka

Primitif-primitif ini harus dapat dievaluasi berdasarkan beberapa kriteria seperti

Level keamanan Hal ini biasanya sulit untuk dihitung Sering diwakili dengan jumlah

operasi yang dibutuhkan (menggunakan metode terbaik yang diketahui) untuk melawan

tujuan yang diharapkan Level keamanan biasanya didefinisikan work factor

Fungsionalitas Primitif-primitif dibutuhkan untuk memenuhi tujuan keamanan informasi

yang bermacam-macam Primitif mana yang paling efektif untuk tujuan yang diberikan

akan ditentukan dengan properti dasardari primitif

Metode operasi Primitif saat diterapkan dengan bermacam cara dan dengan bermacam

input biasanya akan menunjukkan karakteristik yang berbeda sehingga satu primitif dapat

menyediakan fungsionalitas yang sangat berbeda pada mode operasi atau penggunaannya

Unjuk kerja Merupakan efisiensi sebuah primitif pada mode tertentu(sebagai contoh

algoritma enkripsi dapat dihitung dengan jumlah bit per detik yang dapat dienkripsinya)

6

Kemudahan implementasi Merupakan kesulitan dalam merealisasikan primitif pada

prakteknyaDapat meliputi kompleksitas pengimplementasian primitif dalam lingkungan

software maupun hardware Kepentingan relatif dari bermacam kriteria ini sangat

tergantung pada aplikasi dan sumber daya yang tersedia

2 LANDASAN TEORI

Pada Makalah ini akan dibahas tentang algoritma ONE TIME PAD (OTP) pada email One

time pad termasuk dalam kelompok kriptografi simestris One-time pad (pad = kertas bloknot)

berisi deretan karakter-karakter kunci yang dibangkitkan secara acak

Cipher ini diimplementasikan melalui sebuah kunci yang terdiri dari sekumpulan random

karakter-karakter yang tidak berulang Setiap huruf kunci dijumlahkan modulo 26 dengan huruf

pada plaintext Pada One Time Pad tiap huruf kunci digunakan satu kali untuk satu pesan dan tidak

7

digunakan kembaliPanjang stream karakter kunci sama dengan panjang pesanSatu-satunya

algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad One-Time Pads (OTP)

One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne Cipher ini termasuk ke

dalam kelompok algoritma kriptografi simetri One time pad (pad = kertas bloknot) berisi barisan

karakter-karakter kunci yang dibangkitkan secara acak Aslinya satu buah one time pad adalah

sebuah pita (tape) yang berisi barisan karakter-karakter kunci Satu pad hanya digunakan sekali

(one time) saja untuk mengenkripsi pesan setelah itu pad yang telah digunakan dihancurkan

supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain Aturan enkripsi yang digunakan

persis sama seperti pada cipher Vigenere Pengirim pesan menggunakan setiap karakter kunci

untuk mengenkripsikan satu karakter plainteks Enkripsi dapat digambarkan sebagai penjumlahan

modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads ci = (pi + ki) mod

26 yang dalam hal ini pi karakter plainteks ki karakter kunci ci karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks sehingga tidak ada

kebutuhan mengulang penggunaan kunci selama proses enkripsiSetelah pengirim mengenkripsikan

pesan dengan one time pads ia menghancurkan one time pads tersebut (makanya disebut satu kali

pakai atau one time)Penerima pesan menggunakan one time pads yang sama untuk

mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan

pi = (ci ndash ki ) mod 26

Contoh

plainteks ONETIMEPAD

kunci TBFRGFARFM

Misalkan A = 0 B = 1 hellip Z = 25

8

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 6: Amanda lilda-08053111001

dapat dienkrip dengan kunci privat dan didekrip dengan kunci publik Metode ini digunakan pada

tanda tangan digital Meskipun agak membingungkan operasi ini dapat dinyatakan sebagai

E (M) = C Kd

DKe (C) = M

Artinya kunci privat dan kunci publik dapat digunakan secara berlawanan dengan tujuan

yang berbeda Sifat ini hanya berlaku untuk algoritma kunci publik tertentu seperti RSA Sifat ini

tidak berlaku untuk algoritma DH

Taksonomi Primitif-primitif Kriptografi

Ada beberapa dasar tool kriptografi (primitif) yang digunakan untuk mendukung keamanan

informasi Contoh dari primitif termasuk skema enkripsifungsi hash dan skema tanda tangan

digital Gambar 1 menunjukkan daftar primitif yang dimaksud dan bagaimana hubungan mereka

Primitif-primitif ini harus dapat dievaluasi berdasarkan beberapa kriteria seperti

Level keamanan Hal ini biasanya sulit untuk dihitung Sering diwakili dengan jumlah

operasi yang dibutuhkan (menggunakan metode terbaik yang diketahui) untuk melawan

tujuan yang diharapkan Level keamanan biasanya didefinisikan work factor

Fungsionalitas Primitif-primitif dibutuhkan untuk memenuhi tujuan keamanan informasi

yang bermacam-macam Primitif mana yang paling efektif untuk tujuan yang diberikan

akan ditentukan dengan properti dasardari primitif

Metode operasi Primitif saat diterapkan dengan bermacam cara dan dengan bermacam

input biasanya akan menunjukkan karakteristik yang berbeda sehingga satu primitif dapat

menyediakan fungsionalitas yang sangat berbeda pada mode operasi atau penggunaannya

Unjuk kerja Merupakan efisiensi sebuah primitif pada mode tertentu(sebagai contoh

algoritma enkripsi dapat dihitung dengan jumlah bit per detik yang dapat dienkripsinya)

6

Kemudahan implementasi Merupakan kesulitan dalam merealisasikan primitif pada

prakteknyaDapat meliputi kompleksitas pengimplementasian primitif dalam lingkungan

software maupun hardware Kepentingan relatif dari bermacam kriteria ini sangat

tergantung pada aplikasi dan sumber daya yang tersedia

2 LANDASAN TEORI

Pada Makalah ini akan dibahas tentang algoritma ONE TIME PAD (OTP) pada email One

time pad termasuk dalam kelompok kriptografi simestris One-time pad (pad = kertas bloknot)

berisi deretan karakter-karakter kunci yang dibangkitkan secara acak

Cipher ini diimplementasikan melalui sebuah kunci yang terdiri dari sekumpulan random

karakter-karakter yang tidak berulang Setiap huruf kunci dijumlahkan modulo 26 dengan huruf

pada plaintext Pada One Time Pad tiap huruf kunci digunakan satu kali untuk satu pesan dan tidak

7

digunakan kembaliPanjang stream karakter kunci sama dengan panjang pesanSatu-satunya

algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad One-Time Pads (OTP)

One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne Cipher ini termasuk ke

dalam kelompok algoritma kriptografi simetri One time pad (pad = kertas bloknot) berisi barisan

karakter-karakter kunci yang dibangkitkan secara acak Aslinya satu buah one time pad adalah

sebuah pita (tape) yang berisi barisan karakter-karakter kunci Satu pad hanya digunakan sekali

(one time) saja untuk mengenkripsi pesan setelah itu pad yang telah digunakan dihancurkan

supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain Aturan enkripsi yang digunakan

persis sama seperti pada cipher Vigenere Pengirim pesan menggunakan setiap karakter kunci

untuk mengenkripsikan satu karakter plainteks Enkripsi dapat digambarkan sebagai penjumlahan

modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads ci = (pi + ki) mod

26 yang dalam hal ini pi karakter plainteks ki karakter kunci ci karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks sehingga tidak ada

kebutuhan mengulang penggunaan kunci selama proses enkripsiSetelah pengirim mengenkripsikan

pesan dengan one time pads ia menghancurkan one time pads tersebut (makanya disebut satu kali

pakai atau one time)Penerima pesan menggunakan one time pads yang sama untuk

mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan

pi = (ci ndash ki ) mod 26

Contoh

plainteks ONETIMEPAD

kunci TBFRGFARFM

Misalkan A = 0 B = 1 hellip Z = 25

8

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 7: Amanda lilda-08053111001

Kemudahan implementasi Merupakan kesulitan dalam merealisasikan primitif pada

prakteknyaDapat meliputi kompleksitas pengimplementasian primitif dalam lingkungan

software maupun hardware Kepentingan relatif dari bermacam kriteria ini sangat

tergantung pada aplikasi dan sumber daya yang tersedia

2 LANDASAN TEORI

Pada Makalah ini akan dibahas tentang algoritma ONE TIME PAD (OTP) pada email One

time pad termasuk dalam kelompok kriptografi simestris One-time pad (pad = kertas bloknot)

berisi deretan karakter-karakter kunci yang dibangkitkan secara acak

Cipher ini diimplementasikan melalui sebuah kunci yang terdiri dari sekumpulan random

karakter-karakter yang tidak berulang Setiap huruf kunci dijumlahkan modulo 26 dengan huruf

pada plaintext Pada One Time Pad tiap huruf kunci digunakan satu kali untuk satu pesan dan tidak

7

digunakan kembaliPanjang stream karakter kunci sama dengan panjang pesanSatu-satunya

algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad One-Time Pads (OTP)

One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne Cipher ini termasuk ke

dalam kelompok algoritma kriptografi simetri One time pad (pad = kertas bloknot) berisi barisan

karakter-karakter kunci yang dibangkitkan secara acak Aslinya satu buah one time pad adalah

sebuah pita (tape) yang berisi barisan karakter-karakter kunci Satu pad hanya digunakan sekali

(one time) saja untuk mengenkripsi pesan setelah itu pad yang telah digunakan dihancurkan

supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain Aturan enkripsi yang digunakan

persis sama seperti pada cipher Vigenere Pengirim pesan menggunakan setiap karakter kunci

untuk mengenkripsikan satu karakter plainteks Enkripsi dapat digambarkan sebagai penjumlahan

modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads ci = (pi + ki) mod

26 yang dalam hal ini pi karakter plainteks ki karakter kunci ci karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks sehingga tidak ada

kebutuhan mengulang penggunaan kunci selama proses enkripsiSetelah pengirim mengenkripsikan

pesan dengan one time pads ia menghancurkan one time pads tersebut (makanya disebut satu kali

pakai atau one time)Penerima pesan menggunakan one time pads yang sama untuk

mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan

pi = (ci ndash ki ) mod 26

Contoh

plainteks ONETIMEPAD

kunci TBFRGFARFM

Misalkan A = 0 B = 1 hellip Z = 25

8

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 8: Amanda lilda-08053111001

digunakan kembaliPanjang stream karakter kunci sama dengan panjang pesanSatu-satunya

algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad One-Time Pads (OTP)

One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne Cipher ini termasuk ke

dalam kelompok algoritma kriptografi simetri One time pad (pad = kertas bloknot) berisi barisan

karakter-karakter kunci yang dibangkitkan secara acak Aslinya satu buah one time pad adalah

sebuah pita (tape) yang berisi barisan karakter-karakter kunci Satu pad hanya digunakan sekali

(one time) saja untuk mengenkripsi pesan setelah itu pad yang telah digunakan dihancurkan

supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain Aturan enkripsi yang digunakan

persis sama seperti pada cipher Vigenere Pengirim pesan menggunakan setiap karakter kunci

untuk mengenkripsikan satu karakter plainteks Enkripsi dapat digambarkan sebagai penjumlahan

modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads ci = (pi + ki) mod

26 yang dalam hal ini pi karakter plainteks ki karakter kunci ci karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks sehingga tidak ada

kebutuhan mengulang penggunaan kunci selama proses enkripsiSetelah pengirim mengenkripsikan

pesan dengan one time pads ia menghancurkan one time pads tersebut (makanya disebut satu kali

pakai atau one time)Penerima pesan menggunakan one time pads yang sama untuk

mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan

pi = (ci ndash ki ) mod 26

Contoh

plainteks ONETIMEPAD

kunci TBFRGFARFM

Misalkan A = 0 B = 1 hellip Z = 25

8

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 9: Amanda lilda-08053111001

cipherteks HOJKOREGHP

yang mana diperoleh sebagai berikut

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena Barisan kunci acak yang

ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak

Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan

pesan-pesan plainteks yang mempunyai makna sehingga kriptanalis tidak punya cara untuk

menentukan plainteks mana yang benarMeskipun one time pads merupakan cipher yang sempurna

aman namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-

satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang

menggunakan one time pads) Malahan orang masih tetap menggunakan sistem cipher yang dapat

dipecahkan Alasannya adalah dari segi kepraktisan yaitu Karena panjang kunci harus sama

dengan panjang pesan maka one time pads hanya cocok untuk pesan berukuran kecil Semakin

besar ukuran pesan semakin besar pula ukuran kunci Pada aplikasi kriptografi untuk

mengenkripsikan data tersimpan timbul masalah lain dalam penyimpanan kunci Karena kunci

dibangkitkan secara acak maka lsquotidak mungkinrsquo pengirim dan penerima membangkitkan kunci

yang sama secara simultan Jadi salah seorang dari mereka harus membangkitkan kunci lalu

mengirimkannya ke pihak lain Karena kerahasiaan kunci harus dijamin maka perlu ada

perlindungan selama pengiriman kunci Jika hanya ada satu saluran komunikasi maka pengirim

9

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 10: Amanda lilda-08053111001

dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads

pertama one time pads ketiga untuk melindungi one time pads pertama dan seterusnya Hal ini

menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga

banyaknyaMengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk

pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat

Oleh karena itu one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang

cukup aman untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal Misalnya pada

perang dingin antara AS dan Uni Soviet (dahulu) one time pads dibangkitkan disimpan lalu

dikirim dengan menggunakan jasa kurir yang aman Penting diingat bahwa saluran kedua yang

aman tersebut umumnya lambat dan mahal

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

10

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 11: Amanda lilda-08053111001

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan

cipherteks

Secara sederhana dapat dituliskan sebagai berikut

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb

(2) p = c XOR k [5]

dengan c chiperteks

p plainteks

k kunci rahasia yang digunakan

jikaoperator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand

(tetapi tidak keduanya) bernilai T

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah

satu operand bernilai 1

Contoh

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

11

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 12: Amanda lilda-08053111001

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan

menghasilkan 0

Contoh

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama

maka akan diperoleh bilangan x tersebut kembali

Contoh

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi yaitu

suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu

12

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 13: Amanda lilda-08053111001

dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator

XOR pada kunci yang sama

3 PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad Contonya adalah Pada

saat kita mengirimkan pesan terhadap seseorang pesan tersebut pastinya bersifat rahasia disini

OTP akan menenkripsi nya sehingga pesan tersebut aman Dibawah ini akan di jelaskan contoh

penggunaan algoritma one time pad pada sebuah pesan

Misalkan

Kita ingin mengirim pesan untuk seseorangpesan yang akan dikirimkan yaitu FIRMAN dengan

kata kunci GLORIA

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb

13

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 14: Amanda lilda-08053111001

a Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan

Tabel 2 ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ldquo $ amp lsquo

05 ( ) + -

06 0 1 2 3 4 5 6 7

07 8 9 lt = gt

10 A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z | ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

14

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 15: Amanda lilda-08053111001

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b Pesan di-XORkan dengan kunci

Akan diperoleh

F 1048774 0000 0000 00011048774001

I 1048774 0000 0000 01011048774005

R 1048774 0000 0011 01011048774035

M 1048774 0000 0011 01001048774034

A 1048774 0000 0001 00001048774010

N 1048774 0000 0001 01111048774017

c Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali

penerima pesan cukup mengubah lagi

15

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 16: Amanda lilda-08053111001

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu

ke komputer lainnya Proses diatas menggunakan fungsi hash Dimana pertama-tama pesan milik

pengirim di pisah menjadi 2 pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai

16

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 17: Amanda lilda-08053111001

kunci private milik pengirim Dan dienkripsi juga oleh OTP OTP disini sebagai simetrik key

Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai

kunci public penerima Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext

Pada saat pesan diterima oleh penerima Pesan tersebut dibuka satu persatu oleh penerima

kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh

Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima Hasilnya adalah simetrik key

Simetrik key adalah OTP OTP yang berisi chipertext dibuka lalu dipisah menjadi 2 salah satunya

ada pada MD5+RSA MD5+RSA adalah kunci public pengirim Kunci ini dibuka kemudian

hasilnya digabungkan dengan hasil dari chipertext OTP Setelah itu menjadi pesan yang benar

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini

antara lain

Terenkriptidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu File

terenkripsi atau tidaknya tidak dapat dipastikan Akan tetapi kita dapat mengetahui file

tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus adalah suatu

kegiatan mengendus-endus seperti namanya)

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user proses

validasi user pada saat melakukan proses dengan system Sama seperti biasanya

username dan password user dicek untuk diproses apakan kebenaranya memang benar

Bila benar maka mereka berhak masuk ke system selanjutnya Jadi pada OTP hanya

user yang benar yang boleh menggunakan system OTP Pada tahap ini menggunakan

privat key algoritma RSA Pada saat pengiriman public dan private key dibutuhkan

untuk proses pengiriman pesan ini

17

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 18: Amanda lilda-08053111001

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat

menerima pesan tersebut masii sama dengan pesan yang asli Atau pada saat kita

mengirim Pesan tersebut masih terenkripsi dengan baik Sehingga tidak ada perubahan

dalam isi nya

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman

pesan

CRYPTICC V 10 Copyright 1998 by Glen E Gardner Jr

Encrypts a file using a random key and saves the key

Automatically generates a new key when needed The new

key is deleted on the second use (decryption) to prevent

accidental reuse of the same key for encryption

This program is freeware use it freely and enjoy

Be sure to cite the author and include the original

source in all distributions

Written and compiled in ANSI C using Borland C++ V 502

Tested on Windows NT 40 and FreeBSD 225 (using gcc)

Run this program once to encrypt and agin using the

same key to decrypt

Any file can be used as a key provided it is the

same size (or larger) as the file being encrypted

(smallrepeating keys are for whimps)

You need to be careful what you use as a key If you

dont believe this try encrypting a file using a windows

dll file as a key and looking at the output with a text

18

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 19: Amanda lilda-08053111001

editor

The encrypted output is binary You can use cryptic to

encrypt any file

includeltstdiohgt

includeltstdlibhgt

includelttimehgt

Use this include with GCC on FreeBSD machines

includeltusrincludesysstathgt

Use this include instead of the one above for Windows NT

includeltsysstathgt

void makekey(long intchar )

int main(int argcchar argv)

struct stat statbuf

time_t t

int key

int data

int output

int count=0

int FLAG=0

FILE mykeyfile

FILE sourcefile

FILE destfile

if(argclt3)

printf(CRYPTIC Coyright 1998 by Glen E

Gardner Jrn)

19

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 20: Amanda lilda-08053111001

printf(USE CRYPTIC

ltDESTINATIONgt ltKEYgtn)

return(0)

Note that if no key name is given the program

generates and uses a new key

Be sure the right key is present when decrypting

(duh) The program does not

know if it is encrypting or decrypting It just

crunches the source file with

whatever key it has and spits out the result

Bail out if the wrong number of arguments are used

if(argcgt4)printf(Too many arguments)return(1)

Seed the random number generator for later use

srand((unsigned) time(ampt))

get the size of the source file

if ((sourcefile = fopen(argv[1] rb))== NULL)

printf(Cant open source filen)

return(4)

fflush(sourcefile)

fstat(fileno(sourcefile) ampstatbuf)

fclose(sourcefile)

Look for default key file if none is given

if(argv[3]==NULL)argv[3]=newkey

If the key is not found make a new one

20

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 21: Amanda lilda-08053111001

if ((mykeyfile = fopen(argv[3] r))== NULL)

FLAG=1

printf(Cant open key filen)

printf(Making a new keyn)

makekey(statbufst_sizenewkey)

elsefclose(mykeyfile)

open all the necessary files

mykeyfile=fopen(argv[3]rb)

sourcefile=fopen(argv[1]rb)

destfile=fopen(argv[2]wb)

Use the key to encryptdecrypt the source file

while (count lt (statbufst_size))

key=fgetc(mykeyfile)

data=fgetc(sourcefile)

This is all there is to it

output=(key^data)

XOR the data byte once with a byte from a key

and it encrypts

XOR the resultant byte again with the same byte

from the same key and it decrypts

write the result to the output file

fputc(outputdestfile)

count++

close the files

21

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 22: Amanda lilda-08053111001

fclose(mykeyfile)

fclose(sourcefile)

fclose(destfile)

Delete the default key on the second time around to

prevent it being reused

The key is deleted only if a key was not specified

and if the default

key is not new

if(FLAG==0)

use this for Windows NT

system(erase newkey)

use this for FreeBSD

system(rm newkey)

return(0)

MAKEKEY() makes a key using random numbers

The random number generator is seeded from the

real time clock

It is fairly random but the nature of the

pseudorandom generator is not

completely random This means that a clever

programmer will

eventually crack your key

Dont reuse keys and consider investing time in a

22

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 23: Amanda lilda-08053111001

better way of generating

random number strings to use as a key

void makekey(long int sizechar name)

int byte

int count=0

FILE filein

filein=fopen(namewb)

while(countampltsize)

byte=rand() 256

fprintf(fileincbyte)

count++

fclose(filein)

[ 6]

23

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 24: Amanda lilda-08053111001

4KESIMPULAN

Kesimpulan yang didapat bahwa one time pad (OTP)

1) System OTP tidak dapat dipecahkankarena

Barisan kunci acak + plainteks yang tidak acak = cipherteks yang seluruhnya acak

Mendekripsi cipherteks dengan beberapa kunci berbeda dapat menghasilkan plainteks

yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan plainteks

mana yang benar

2) Algoritma Vernam atau One-time pad merupakaalgoritma pengenkripsian data dan

informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam

menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan

kepada penerima pesan tanpa dapat diketahui oleh pihak lain

3) Karena algoritma OTP memiliki karakteristik besar key sama dengan besar message maka

sistem ini memiliki keterbatasan akan ukuran message

4) Keamanan algoritma pengenkripsian ini sangat bergantung pada kerahasiaan kunci rahasia

( secret key ) dan pad yang digunakan baik dalam mengenkripsi maupun mendekripsi data

atau informasi karena walaupun untuk memecahkan sandi yang dibuat sangat sulit namun

apabila kunci telah ditemukan akan sangat mudah untuk memecahkan sandi tersebut

5) Untuk menjamin kerahasiaan data dana informasi serta menjamin keamanan kunci rahasia

yang digunakan maka kunci yang digenerate harus benar-benar random atau acak dan

hanya dapat dipergunakan sebanyak satu kali saja

Akan tetapi One Time Pad memiliki kelemahan Meskipun OTP adalah algoritma yang sempurna

aman tetapi ia tidak banyak digunakan dalam praktek Kelemahanya antara lain

24

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 25: Amanda lilda-08053111001

1) Tidak efisien karena panjang kunci =

panjang pesan

Masalah yang timbul

-penyimpanan kunci

-pendistribusian kunci

2) Jika sebuah kunci telah dipergunakan maka kunci tersebut sudah tidak boleh dipergunakan

kembali Akibatnya jumlah kunci yang masih dapat dipergunakan akan semakin berkurang

seiring dengan semakin seringnya penggunaan metode enkripsi ini Penggunaan kunci

yang sama lebih dari satu kali jelas akan berpengaruh buruk bagi kerahasiaan data atau

informasi yang dienkripsikan

3) pertukaran kunci yang terjadi antara pihak pengirim pesan dan penerima pesan juga

merupakan titik rentan dalam metode pengenkripsian ini karena terjadinya kebocoran

kunci dapat terjadi pada saat terjadinya pertukaran informasi mengenai kunci rahasia

tersebut

4) OTP hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman

untuk mengirim kunci Saluran kedua ini umumnya lambat dan mahal

25

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad
Page 26: Amanda lilda-08053111001

DAFTAR PUSTAKA

Internet

httpsearchsecuritytechtargetcomsDefinition0s id14_gci21367300html

httpenwikipediaorgwikiCryptography

httphadiwibowowordpresscomkriptografi

httpdocssuncomsource816-6154-10contentshtm1053011

E-BOOK

CambridgeUniversityPressAdvancesinEllipticCurveCryptography

httpwwwteam509comdownloaddocssecuritycrypt

Buku

Munir Rinaldi Diktat Kuliah IF5054 Kriptografi Sekolah Teknik Elektro dan Informatika Institut

Teknologi Bandung 2006

26

  • Taksonomi Primitif-primitif Kriptografi
  • 2 LANDASAN TEORI
  • Gambar contoh one time pad