Monday, 12 December 2016

Enkripsi dan Dekripsi dengan menggunakan Algoritma Base 85 atau ASCII 85



Tentang ASCII85 atau Base85

ASCII85 atau disebut juga dengan Base85, adalah salah satu jenis dari kriptografi modern yang merubah bentuk biner ke dalam bentuk teks encode dan dikembangkan oleh seseorang bernama Paul E. Dengan menggunakan lima karakter ASCII untuk mewakili empat byte data biner (membuat ukuran kode menjadi 1/4 lebih besar dibandingkan yang asli, dengan asumsi delapan bit per karakter ASCII), itu akan lebih efisien daripada encode dari Base64 yang hanya menggunakan empat karakter untuk mewakili tiga byte data (hanya meningkat 1/3 dengan asumsi delapan bit per karakter ASCII).
Hal mendasar kenapa enkripsi pada suatu plainteks diperlukan tidak lain dan tidak bukan adalah untuk melindungi pesan agar tidak semua dapat membaca apa isi yang terdapat dalam pesan, hal ini dikarenakan komunikasi data yang dilakukan pada biasanya dibawa atau dikirimkan dalam bentuk teks biasa yang dapat dibaca dengan mudah oleh setiap orang, sehingga sangat beresiko untuk bocornya isi pesan.
Empat byte dapat mewakili 232 = 4294967296 nilai yang mungkin. Lima radix-85 digit menyediakan 855 = 4437053125 nilai yang mungkin, cukup untuk menyediakan representasi yang unik untuk setiap kemungkinan nilai 32-bit. Karena lima radix-84 digit hanya menyediakan 845 = 4182119424 nilai representable, 85 adalah basis terpisahkan minimun yang mungkin akan mewakili empat byte dalam lima karekter.
Ketika pengkodean dilakukan maka masing-masing kelompok dari 4 byte diambil sebagai angka biner 32-bit, byte byte paling siginifikan pertama (ASCII85 menggunakan konversi besar di akhir). Kemudian, dengan berulang kali membagi dengan 85 dan mengambil yang sisanya atau disebut juga dengan mod, menjadi 5 radix-85 digit. Kemudian masing-masing digit (sekali lagi yang paling signifikan pertama) dikodekan sebagai karakter yang dapat dicetak ASCII dengan menambahkan nilai 33 pada hasil akhirnya.
Karena semua data nol sangat bersifat umum, maka pengecualian dibuat untuk kepentingan kompresi data, dan kelompok semua nol dikodekan dengan karakter tunggal “z” bukan “!!!!!”.
Kelompok karakter yang decode untuk nilai lebih besar dari 232-1 (dikodekan sebagai “! S8W-”) akan menyebabkan kesalahan decoding, misalnya akan membuat karakter “z” berada di tengah-tengah kelompok.

Kelebihan dan Kekurangan

Kelebihan
-          Membuat ukuran kode menjadi 1/4 lebih besar dibandingkan yang asli, dengan asumsi delapan bit per karakter ASCII. Lebih efisien dibanding encode dari Base64 yang hanya meningkat 1/3 dengan asumsi delapan bit per karakter ASCII.
-          Tidak mudah dikenal oleh orang banyak bahwa chipertext yang dihasilkan dibuat dengan menggunakan algoritma ASCII85.



Kekurangan

-          data yang dienkripsikan mungkin berisi karakter sensitif seperti kutipan, di mana kutipan ini memiliki arti khusus dalam banyak bahasa pemrograman dan dalam beberapa protokol berbasis teks.
   
Percobaan Manual Enkripsi dan Dekripsi


a.      Enkripsi
Plainteks
s
u
r
e
ASCII
115
115
114
101
Bit pattern
01110011
01110101
01110010
01100101
32 bit pattern
01110011011101010111001001100101
Decimal
1937076837

Lakukan perhitungan sesuai dengan rumus ASCII 85
N0 =      1937076837 / (85)4
      =      37 => hasil dibulatkan
N1 =      1937076837 – 37 * (85)4
      =      5653712 / (85)3
      =      9
N2 =      5653712 – 9 * (85)3
      =      126587 / (85)2
      =      17
N3 =      126587 – 17 * (85)2
      =      3762 / 85
      =      44
N4 =      3762 – 44 *85
      =      22

Kemudian, setiap hasil nilai N ditambahkan dengan 33, baru setelah itu di rubah ke dalam ASCII
N0
N1
N2
N3
N4
37 + 33
9 + 33
17 + 33
44 + 33
22 + 33
70
42
50
77
55
F
*
2
M
7

Hasil dari enkripsi plainteks “sure” dengan menggunakan Base85 adalah F*2M7

b.      Dekripsi
Tuliskan kembali hasil dari enkripsi dengan menggunakan ASCII 85
F
*
2
M
7
Rubah ke dalam ASCII kemudian dikurangi dengan 33
70-33
42-33
50-33
77-33
55-33
37
9
17
44
22
Kalikan dengan kelipatan 85
37 * (85)4
9 * (85)3
17 * (85)2
44 *85
22 * 1
Jumlahkan semua hasil perkalian di atas
1937076837
Rubah ke dalam bentuk biner 32 bit
01110011011101010111001001100101
Rubah bentuk 32 bit menjadi 4 byte dengan 8 bit untuk setiap bytenya
01110011
01110101
01110010
01100101
Rubah ke dalam bentuk desimal
115
115
114
101
Rubah ke dalam bentuk ASCII
s
u
r
e

Hasil dari deksripsi chipertext F*2M7 adalah “sure”

1 comment:

  1. Terimakasih, sangat bermanfaat.

    http://154gaming.blogspot.com/

    ReplyDelete

luvne.com resepkuekeringku.com desainrumahnya.com yayasanbabysitterku.com