BASE64
BASE64
1.1. PePengngerertitian Kripan Kriptotogrgrafafii
Kriptografi berasal dari bahasa Yunani, crypto dan graphia, crypto berarti rahasia dan Kriptografi berasal dari bahasa Yunani, crypto dan graphia, crypto berarti rahasia dan graphia berarti tulisan, atau bisa diartikan sebagai seni dalam menjaga kerahasiaan suatu graphia berarti tulisan, atau bisa diartikan sebagai seni dalam menjaga kerahasiaan suatu pesan
pesan berupa berupa data data atau atau informasi!, informasi!, yang yang mempunyai mempunyai arti arti atau atau nilai, nilai, dengan dengan caracara menyamarkannya mengacak! menjadi bentuk yang tidak beraturan menggunakan algoritma menyamarkannya mengacak! menjadi bentuk yang tidak beraturan menggunakan algoritma tertentu"
tertentu"
1.1
1.1 Komponen Komponen – Kompo– Komponen Krnen Kriptografiiptografi
Beberapa komponen#komponen yang ada pada kriptografi sebagai berikut $ Beberapa komponen#komponen yang ada pada kriptografi sebagai berikut $ %"
%" Enkripsi, Enkripsi, merubah teks yang dapat dibaca menjadi teks acak yang tidak dapatmerubah teks yang dapat dibaca menjadi teks acak yang tidak dapat dibaca"
dibaca" &"
&" Dekripsi, Dekripsi, merubah teks acak yang tidak terbaca menjadi teks yang dapat dibaca"merubah teks acak yang tidak terbaca menjadi teks yang dapat dibaca" '
'.. KunciKunci , , dapat berupa simbol, karakter yang digunakan untuk melakukan enkripsidapat berupa simbol, karakter yang digunakan untuk melakukan enkripsi dan dekripsi"
dan dekripsi" 4
4. Ciphertex. Ciphertext, merupakan suatu pesan yang telah melalui proses enkripsi"t, merupakan suatu pesan yang telah melalui proses enkripsi" (
(. Plaintext,. Plaintext,merupakan suatu pesan yang telah melalui proses dekripsi"merupakan suatu pesan yang telah melalui proses dekripsi"
6" )esan, dapat berupa data maupun informasi yang dikirim melalui kurir, media 6" )esan, dapat berupa data maupun informasi yang dikirim melalui kurir, media komunikasi data, atau yang disimpan didalam media perekaman"
komunikasi data, atau yang disimpan didalam media perekaman" *"
*" Cyptanalysis Cyptanalysis, , kripkriptantanalisalisis is mermerupakupakan an ilmilmu u untuuntuk k memendapandapatkan tkan teksteks#asl#asli i tanptanpaa harus mengetahui kunci yang sah secara +ajar"
harus mengetahui kunci yang sah secara +ajar"
1.2 Algoritma Kriptografi 1.2 Algoritma Kriptografi
Berdasarkan penyebaran kuncinya, algoritma kriptografi dibagi menjadi dua bagian" Berdasarkan penyebaran kuncinya, algoritma kriptografi dibagi menjadi dua bagian" Yaitu $
Yaitu $
%" Algoritma Simetri %" Algoritma Simetri
Algoritma Simetri adalah suatu algoritma yang menggunakan kunci enkripsi, sama Algoritma Simetri adalah suatu algoritma yang menggunakan kunci enkripsi, sama de
dengngan an kukuncnci i dedekrkripipsi si sesehihingngga ga alalgogoriritmtma a inini i didisesebubut t jujuga ga sesebabagagaii single-key single-key algorithm
&" Algoritma Asimetri
Algoritma Asimetri adalah suatu algoritma yang menggunakan kunci enkripsi tidak sama dengan kunci dekripsi" Algoritma ini menggunakan dua kunci yakni kunci publik  public key! dan kunci priat  private key!"
Algoritma Base64 merupakan algoritma yang menggunakan salah satu konsep algoritma enkripsi modern yaitu algoritma Block Cipher yang berupa operasi pada mode bit namun algortma Base64 ini lebih mudah dalam pengimplementasiannya dari algoritma# algoritma yang lainnya" Base64 adalah metoda yang untuk melakukan encoding penyandian! terhadap data binary menjadi format 6#bit character" )ada algoritma ini, rangkaian bit#bit palainteks dibagi menjadi blok#blok bit dengan panjang yang sama, biasanya 64 bit yang direpresentasikan dengan karakter AS-.." Base64 menggunakan karakter A / 0, a / 1 dan 2 / 3 untuk 6& nilai pertama, sedangkan & nilai terakhir digunakan symbol  dan 5!"
Standar yang penulis gunakan adalah .E ultipurpose .nternet ail E7tensions!589- %(&%" 89- ini menegaskan sebuah standar untuk implementasi Base64 terhadap data binary dan melampirkan sebuah karakter padding :;< jika terdapat kekurangan pada byte" =alam streaming base64, spesifikasi mengharuskan setiap baris menjadi paling banyak *6 basis#64 karakter"
Base64 meruapakan salah satu algoritma enkripsi yang saya pikir unik dan sangat membantu dalam pengiriman data#data biner" Seperti yang kita tahu, data biner bukan lagi data ascii seperti yang kita kenal dan bisa dibaca" Biner yang dimaksud di sini bukan biner dalam bentuk angka 2 dan %" Akan tetapi ya tidak bisa dibaca dengan aplikasi editor te7t biasa seperti gedit dan notepad" 9ile biner, binary file disa dicontohkan dengan file yang berekstensi "e7e dan "bin" 9ile#file tersebut tidak bisa dikirim le+at jaringan dengan tanpa
dikondisikan terlebih dahulu dengan base64"
=engan base64, karakter#karakter aneh pada file biner akan diterjemahkan ke dalam bentuk ascii sehingga file tersebut bisa dikirim le+at email, ftp, dan lain#lain, ingat .E" >al tersebut juga memungkinkan file biner untuk disimpan ke dalam database" =alam beberapa kasus yang saya temui, base64 kadang digunakan untuk gandengan kompresi script atau data yang dikompres dengan g1ip" ?entu kita tahu, file yang dikompres tentu tidak bisa dibaca dengan gedit atau notepad karena sudah menjadi binary file" =an untuk bisa diproses sebagai string, maka harus dienkode atau ditransfer dulu dengan base64"
=alam beberapa tulisan, penjelasan singkat base64 mempunyai kriteria sebagai berikut$
%" Base64 adalah sistem untuk me+akili data mentah byte sebagai karakter AS-.." &" Base64 menyediakan 6#bit encoding @#bit AS-.. karakter"
'" Base64 merupakan format yang dicetak menggunakan karakter, memungkinkan binari data yang akan dikirim dalam bentuk dan email, dan akan disimpan di database atau file"
=alam )>), ada fungsi base64 enkoder base64encode!! dan base64 dekoder base64decode!!" -ontoh nya $
Cphp
555## embuat Enkripsi Dpass+ord ; pass+ordF
Denkripsi ; base64encodeDpass+ord!F 55hasil enkripsi ; cG91c'dcmH;
555## Aplikasinya ketika dimasukkan ke script yang mau dipublikasikan, biar ndak ketahuan! Dpass+ord ; cG91c'dcmH;F
Ddekripsi ; base64decodeDpass+ord!F 55hasil dekripsi ; pass+ord
CI
Selanjutnya, kita akan melihat beberapa pemakaian dari transformasi base64 di lapangan seperti )E, .E, J?9#*, dan pen)G)"
a. Privacy-Enhanced Mail (PEM)
)rotokol )E adalah protokol pertama kali yang menggunakan teknik transformasi base64, yang didasarkan pada 89- 3@3 tahun %3@*, yang terdiri dari karakter *#bit yang digunakan oleh serer mail S?)! dalam transfer datanya"
b. Mltiprpo!e "nternet Mail E#tention (M"ME)
ultipurpose .nternet ail E7tensions, menggunakan base64 sebagai salah satu dari dua skema pengkodean biner#ke#te7t yang lainnya adalah encoding Base64 Luoted#printable!" .E ini didasarkan pada 89- %4&% ersi )E" enggunakan 64#karakter alfabet yang
sama dan mekanisme encoding seperti )E, dan menggunakan ; simbol untuk output padding dengan cara yang sama, seperti yang dijelaskan di 89- %(&%" .E tidak
menentukan panjang tetap untuk saluran Base64#encoded, tetapi tidak menentukan panjang maksimum *6 karakter" Selain itu menetapkan bah+a setiap karakterabjad harus diabaikan oleh decoder kompatibel, +alaupun sebagian besar implementasi menggunakan pasangan -8 5 M9 untuk membatasi baris yang disandikan" Nadi, panjang aktual .E#compliant data biner Base64#encoded biasanya sekitar %'*O dari panjang data asli, meskipun untuk pesan
yang sangat singkat oerhead dapat jauh lebih tinggi karena oerhead dari header"
c. $%&-'
Encoding J?9#* didasarkan pada 89- &%(&, yang ada pada umumnya disebut sebagai :odified Base64<5 J?9#* menggunakan karakter .E base64, tetapi tidak memakai padding :;<5 Karakter :;< digunakan sebagai karakter escape untuk encoding
:Luotedprintable<5 J?9#* juga digunakan sebagai header .E"
Base64 menggunakan karakter A / 0, a / 1 dan 2 / 3 untuk 6& nilai pertama, sedangkan & nilai terakhir digunakan untuk symbol  dan 5!" Beberapa metode encoding lain seperti uuencode dan binhe7 menggunakan 64 karakter yang berbeda untuk me+akili 6 binary digit, namun metodemetode tersebut tidak disebut sebagai encoding Base64"
?abel Jrutan Karakter AS-..
d. Penggnaan a!e*
Berikut ini adalah contoh penggunaan dari .E Base 64 dalam melakukan encoding karakter"Kutipan dari Albert Einstein $ “Imainasi lebih penting !aripa!a pengetahuan", >asinya $
SP%hamluYQRp.G7lYmlo.>Blbn8pbmcg0G9yaQBh0GEgcGu0&2Y+h%YP4;:
Kutipan dari ?homas Alfa Edison$ “Banyak orang yang sebenarnya su!ah sangat !ekat !engan sukses tapi sayangnya, mereka kemu!ian menyerah" >asil ?ransformasi$ :Hm9ueP9r.G3yYP(n.>lhbmcgc&i0P(hcm((YSB1dP8ha-B1YP(nYQHg0GrYQ Hg0Gu0&9u.>R%a'RlcyB2YQBp.>RheP9u0&((YS+gbPy0Pth.GtlbQkaP9u.G%l bnllcm9o:
)ada hasil encoding diatas kata :8io< diganti menjadi :Jml<5 )ada table TS-.. huruf 8, i, o disimpan sebagai @&, %2(, %%% atau dengan kata lain 2%2%22%2, 2%%2%22%, 2%%2%%%% pada bilangan berbasis &" Apabila ketiga byte tersebut digabungkan, maka akan dihasilkan &4 bit buffer yaitu 2%2%22%22%%2%22%2%%2%%%%" Angka tersebut harus dikonersi sehingga berbasis 64, caranya dengan membagi &4bit tersebut dengan 6" aka dihasilkan 4 bagian dengan masing#masing 6bit" Kemudian masing#masing bagian tersebut dikonersi ke nilai yang ada di Base64"
)roses pa!!ing akan dilakukan apabila sekelompok karakter yang dimiliki tidak bernilai ' Byte &4 bit!" )adding dilakukan dengan menambahkan karakter U;V5 -ontoh penggunaan padding dapat dilihat pada tabel berikut"
Apabila terdapat single byte maka jumlah padding yang ditambahkan adalah & Byte yang bernilai 2" Sehingga memenuhi aturan ' Byte &4 bit!, seperti dapat dilihat pada tabel di ba+ah ini" Sedangkan pada tabel 4 jumlah byte padding yang ditambahkan adalah % Byte"
Mangkah / langkah Encripsi menggunakan algoritma Base64 -ontoh engubah kata :M a n :
%" Jbah huruf / huruf yang akan di encripsi menjadi kode / kode AS-..
&" Kode / kode AS-.. tersebut ubah lagi menjadi kode Biner
'" Bagi kode biner tersebut menjadi hanya 6 angka per blok dan berjumlah kelipatan 4 blok 4" Nika angka biner tidak berjumlah 6 angka dan 4 blok maka akan di tambah kode biner 2 sehingga mencukupi menjadi 4 blok"
(" Blok / blok tsb ubah kembali menjadi kode desimal data di baca sebagai inde7!
*" Nika nilai blok adalah hasil tambahan 2! maka hasil dari inde7 tersebut bernilai U;V -ontoh
langkah / langkah =ecripsi menggunakan algoritma Base64 %" >asil dari Encripsi ubah menjadi .nde7
&" Jbah kode inde7 menjadi kode& biner Bit )attern!
'" Buat Blok tiap blok berisi @ bit data
b. Keamanan
data sangat penting untuk menjaga kerahasiaanya" Salah satu cara untuk mengamankan sebuah data adalah dengan meng#encode data tersebut" Encode merupakan
proses transformasi dari data asli plainte7t! ke dalam bentuk kode#kode yang tersandikan cipherte7t! sehingga tidak dapat dikenali lagi" Sedangkan proses transformasi dari cipherte7t kembali ke bentuk plainte7t disebut dengan decode"
Bahasa pemrograman )>) menyediakan fasilitas encoding dan decoding berbasis 64 bit secara default" Base64 atau Luadrose7agesimal adalah penempatan notasi dengan menggunakan bilangan radi7 64" asukan base64 berupa blok data biner berekstensi apa saja seperti com, e7e, dll, AS-.., bahkan gambar, dan suara" Sehingga algoritma ini lebih dikenal dengan istilah .E ultipurpose .nternet ail E7tension! Base64"
Seorang adminstrator bertanggungja+ab penuh terhadap semua sumberdaya yang dimiliki dalam suatu jaringan, termasuk melindungi source code php yang ada dalam +eb serer" )enggunaan fasilitas aplikasi keamanan sistem secara standar belum tentu dapat menjamin keamanan source code php"
)enelitian ini difokuskan pada pengembangan sebuah metode dengan merancang sebuah fungsi yang dapat digunakan untuk penyembuyian source code php pada +eb serer berdasarkan algoritma .E Base64 encoding" 9E= 9ungsi Encode =ecode! adalah nama
sebuah fungsi tersebut, mempunyai kemampuan untuk mengencode dan medecode berbagai tipe file seperti character, suara, gambar, dan lain#lain"
Beberapa fiitur lain yang dimiliki oleh 9E= adalah dapat menghitung +aktu yang dibutuhkan untuk proses encode dan decode, menghitung ukuran file sebelum dan setelah proses encode dan decode, dan meskipun dalam bentuk cipherte7t 9E= dapat menampilkan outputnya di bro+ser" 9E= ditujukan untuk membantu para administrator dalam upaya mengamankan source code php yang bersifat open source pada +eb serer" Kata#kata kunci $ keamanan sistem, +eb serer, encode, decode, source code, plainte7t, cipherte7t"