Amanda lilda-08053111001

Post on 25-Jul-2015

48 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

Transcript

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

    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

      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

        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

          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

            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

              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

                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

                  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

                    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

                      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

                        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

                          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

                            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

                              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

                                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

                                  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

                                    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

                                      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

                                        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

                                          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

                                            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

                                              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

                                                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

                                                  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

                                                    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

                                                      top related