Anda di halaman 1dari 9

BASE64

1. Pengertian Kriptografi
Kriptografi berasal dari bahasa Yunani, crypto dan graphia, crypto berarti rahasia dan
graphia berarti tulisan, atau bisa diartikan sebagai seni dalam menjaga kerahasiaan suatu
pesan (berupa data atau informasi), yang mempunyai arti atau nilai, dengan cara
menyamarkannya (mengacak) menjadi bentuk yang tidak beraturan menggunakan algoritma
tertentu.
1.1 Komponen Komponen Kriptografi
Beberapa komponen-komponen yang ada pada kriptografi sebagai berikut :
1. Enkripsi, merubah teks yang dapat dibaca menjadi teks acak yang tidak dapat
dibaca.
2. Dekripsi, merubah teks acak yang tidak terbaca menjadi teks yang dapat dibaca.
3. Kunci, dapat berupa simbol, karakter yang digunakan untuk melakukan enkripsi
dan dekripsi.
4. Ciphertext, merupakan suatu pesan yang telah melalui proses enkripsi.
5. Plaintext, merupakan suatu pesan yang telah melalui proses dekripsi.
6. Pesan, dapat berupa data maupun informasi yang dikirim melalui kurir, media
komunikasi data, atau yang disimpan didalam media perekaman.
7. Cyptanalysis, kriptanalisis merupakan ilmu untuk mendapatkan teks-asli tanpa
harus mengetahui kunci yang sah secara wajar.
1.2 Algoritma Kriptografi
Berdasarkan penyebaran kuncinya, algoritma kriptografi dibagi menjadi dua bagian.
Yaitu :
1. Algoritma Simetri
Algoritma Simetri adalah suatu algoritma yang menggunakan kunci enkripsi, sama
dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key
algorithm.

2. 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 privat (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 algoritmaalgoritma yang lainnya. Base64 adalah metoda yang untuk melakukan encoding (penyandian)
terhadap data binary menjadi format 6-bit character. Pada algoritma ini, rangkaian bit-bit
palainteks dibagi menjadi blok-blok bit dengan panjang yang sama, biasanya 64 bit yang
direpresentasikan dengan karakter ASCII. Base64 menggunakan karakter A Z, a z dan 0
9 untuk 62 nilai pertama, sedangkan 2 nilai terakhir digunakan symbol (+ dan /).
Standar yang penulis gunakan adalah MIME (Multipurpose Internet Mail
Extensions)/RFC 1521. RFC ini menegaskan sebuah standar untuk implementasi Base64
terhadap data binary dan melampirkan sebuah karakter padding = jika terdapat kekurangan
pada byte. Dalam streaming base64, spesifikasi mengharuskan setiap baris menjadi paling
banyak 76 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 0 dan 1. Akan tetapi ya tidak bisa dibaca dengan aplikasi editor text
biasa seperti gedit dan notepad. File biner, binary file disa dicontohkan dengan file yang
berekstensi .exe dan .bin. File-file tersebut tidak bisa dikirim lewat jaringan dengan tanpa
dikondisikan terlebih dahulu dengan base64.
Dengan base64, karakter-karakter aneh pada file biner akan diterjemahkan ke dalam
bentuk ascii sehingga file tersebut bisa dikirim lewat email, ftp, dan lain-lain, ingat MIME.
Hal tersebut juga memungkinkan file biner untuk disimpan ke dalam database. Dalam
beberapa kasus yang saya temui, base64 kadang digunakan untuk gandengan kompresi script
atau data yang dikompres dengan gzip. Tentu kita tahu, file yang dikompres tentu tidak bisa
dibaca dengan gedit atau notepad karena sudah menjadi binary file. Dan untuk bisa diproses
sebagai string, maka harus dienkode atau ditransfer dulu dengan base64.

Dalam beberapa tulisan, penjelasan singkat base64 mempunyai kriteria sebagai


berikut:
1. Base64 adalah sistem untuk mewakili data mentah byte sebagai karakter ASCII.
2. Base64 menyediakan 6-bit encoding 8-bit ASCII karakter.
3. Base64 merupakan format yang dicetak menggunakan karakter, memungkinkan binari data
yang akan dikirim dalam bentuk dan email, dan akan disimpan di database atau file.
Dalam PHP, ada fungsi base64 enkoder (base64_encode()) dan base64 dekoder
(base64_decode()). Contoh nya :
<?php
///-- Membuat Enkripsi
$password = "password";
$enkripsi = base64_encode($password);
//hasil enkripsi = cGFzc3dvcmQ=
///-- Aplikasinya (ketika dimasukkan ke script yang mau dipublikasikan, biar ndak ketahuan)
$password = "cGFzc3dvcmQ=";
$dekripsi = base64_decode($password);
//hasil dekripsi = password
?>
Selanjutnya, kita akan melihat beberapa pemakaian dari transformasi base64 di lapangan
seperti PEM, MIME, UTF-7, dan OpenPGP.
a. Privacy-Enhanced Mail (PEM)
Protokol PEM adalah protokol pertama kali yang menggunakan teknik transformasi base64,
yang didasarkan pada RFC 989 tahun 1987, yang terdiri dari karakter 7-bit yang digunakan
oleh server mail (SMTP) dalam transfer datanya.
b. Multipurpose Internet Mail Extention (MIME)
Multipurpose Internet Mail Extensions, menggunakan "base64" sebagai salah satu dari dua
skema pengkodean biner-ke-text (yang lainnya adalah "encoding Base64 quoted-printable").
MIME ini didasarkan pada RFC 1421 versi PEM. Menggunakan 64-karakter alfabet yang

sama dan mekanisme encoding seperti PEM, dan menggunakan "=" simbol untuk output
padding dengan cara yang sama, seperti yang dijelaskan di RFC 1521. MIME tidak
menentukan panjang tetap untuk saluran Base64-encoded, tetapi tidak menentukan panjang
maksimum 76 karakter. Selain itu menetapkan bahwa setiap karakterabjad harus diabaikan
oleh decoder kompatibel, walaupun sebagian besar implementasi menggunakan pasangan CR
/ LF untuk membatasi baris yang disandikan. Jadi, panjang aktual MIME-compliant data
biner Base64-encoded biasanya sekitar 137% dari panjang data asli, meskipun untuk pesan
yang sangat singkat overhead dapat jauh lebih tinggi karena overhead dari header.
c. UTF-7
Encoding UTF-7 didasarkan pada RFC 2152, yang ada pada umumnya disebut sebagai
Modified Base64/ UTF-7 menggunakan karakter MIME base64, tetapi tidak memakai
padding =/ Karakter = digunakan sebagai karakter escape untuk encoding
quotedprintable/ UTF-7 juga digunakan sebagai header MIME.
Base64 menggunakan karakter A Z, a z dan 0 9 untuk 62 nilai pertama,
sedangkan 2 nilai terakhir digunakan untuk symbol (+ dan /). Beberapa metode encoding lain
seperti uuencode dan binhex menggunakan 64 karakter yang berbeda untuk mewakili 6
binary digit, namun metodemetode tersebut tidak disebut sebagai encoding Base64.

Tabel Urutan Karakter ASCII


d. Penggunaan Base64
Berikut ini adalah contoh penggunaan dari MIME Base 64 dalam melakukan
encoding karakter.Kutipan dari Albert Einstein : Imajinasi lebih penting daripada
pengetahuan, Hasinya :
SW1hamluYXNpIGxlYmloIHBlbnRpbmcgZGFyaXBhZGEgcGVuZ2V0Ywh1YW4=
Kutipan dari Thomas Alfa Edison: Banyak orang yang sebenarnya sudah sangat dekat
dengan sukses tapi sayangnya, mereka kemudian menyerah Hasil Transformasi:
QmFueWFrIG9yYW5nIHlhbmcgc2ViZW5hcm55YSBzdWRhaCBzYW5nYXQgZGVrYX
QgZGVuZ2FuIHN1a3NlcyB0YXBpIHNheWFuZ255YSwgbWVyZWthIGtlbXVkaWFuIG1l
bnllcmFo
Pada hasil encoding diatas kata Rio diganti menjadi Umlv/ Pada table !SCII huruf
R, i, o disimpan sebagai 82, 105, 111 atau dengan kata lain 01010010, 01101001, 01101111
pada bilangan berbasis 2. Apabila ketiga byte tersebut digabungkan, maka akan dihasilkan 24
bit buffer yaitu 010100100110100101101111. Angka tersebut harus dikonversi sehingga
berbasis 64, caranya dengan membagi 24bit tersebut dengan 6. Maka dihasilkan 4 bagian
dengan masing-masing 6bit. Kemudian masing-masing bagian tersebut dikonversi ke nilai
yang ada di Base64.

Proses padding akan dilakukan apabila sekelompok karakter yang dimiliki tidak
bernilai 3 Byte (24 bit). Padding dilakukan dengan menambahkan karakter =/ Contoh
penggunaan padding dapat dilihat pada tabel berikut.

Apabila terdapat single byte maka jumlah padding yang ditambahkan adalah 2 Byte
yang bernilai 0. Sehingga memenuhi aturan 3 Byte (24 bit), seperti dapat dilihat pada tabel di
bawah ini. Sedangkan pada tabel 4 jumlah byte padding yang ditambahkan adalah 1 Byte.

Langkah langkah Encripsi menggunakan algoritma Base64


Contoh Mengubah kata M a n
1. Ubah huruf huruf yang akan di encripsi menjadi kode kode ASCII

2. Kode kode ASCII tersebut ubah lagi menjadi kode Biner

3. Bagi kode biner tersebut menjadi hanya 6 angka per blok dan berjumlah kelipatan 4 blok
4. Jika angka biner tidak berjumlah 6 angka dan 4 blok maka akan di tambah kode biner 0
sehingga mencukupi menjadi 4 blok.
5. Blok blok tsb ubah kembali menjadi kode desimal (data di baca sebagai index)

6.

Hasil

kode

index

tersebut

di

ubah

menjadi

huruf

yang

ada

pd

index

7. Jika nilai blok adalah hasil tambahan (0) maka hasil dari index tersebut bernilai =
Contoh

langkah langkah Decripsi menggunakan algoritma Base64


1. Hasil dari Encripsi ubah menjadi Index

2. Ubah kode index menjadi kode2 biner (Bit Pattern)

3. Buat Blok tiap blok berisi 8 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 (plaintext) ke dalam bentuk kode-kode yang tersandikan
(ciphertext) sehingga tidak dapat dikenali lagi. Sedangkan proses transformasi dari ciphertext
kembali ke bentuk plaintext disebut dengan decode.
Bahasa pemrograman PHP menyediakan fasilitas encoding dan decoding berbasis 64
bit secara default. Base64 atau quadrosexagesimal adalah penempatan notasi dengan
menggunakan bilangan radix 64. Masukan base64 berupa blok data biner berekstensi apa saja
seperti com, exe, dll, ASCII, bahkan gambar, dan suara. Sehingga algoritma ini lebih dikenal
dengan istilah MIME (Multipurpose Internet Mail Extension) Base64.
Seorang adminstrator bertanggungjawab penuh terhadap semua sumberdaya yang
dimiliki dalam suatu jaringan, termasuk melindungi source code php yang ada dalam web
server. Penggunaan fasilitas aplikasi keamanan sistem secara standar belum tentu dapat
menjamin keamanan source code php.
Penelitian ini difokuskan pada pengembangan sebuah metode dengan merancang
sebuah fungsi yang dapat digunakan untuk penyembuyian source code php pada web server
berdasarkan algoritma MIME Base64 encoding. FED (Fungsi Encode Decode) 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 FED adalah dapat menghitung waktu yang
dibutuhkan untuk proses encode dan decode, menghitung ukuran file sebelum dan setelah
proses encode dan decode, dan meskipun dalam bentuk ciphertext FED dapat menampilkan
outputnya di browser. FED ditujukan untuk membantu para administrator dalam upaya
mengamankan source code php yang bersifat open source pada web server. Kata-kata kunci :
keamanan sistem, web server, encode, decode, source code, plaintext, ciphertext.

Anda mungkin juga menyukai