• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI. 2.1 Sejarah Kriptografi

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II LANDASAN TEORI. 2.1 Sejarah Kriptografi"

Copied!
26
0
0

Teks penuh

(1)

2. Merancang suatu sistem pengamanan data dengan menggunakan algoritma Gost yang dapat mengenkripsi dan mendekripsi data yang diimplementasikan dalam bahasa pemrograman Visual Basic 6.0.

3. Melakukan uji program.

4. Membuat kesimpulan dan saran dari penelitian yang dilakukan.

5. Menyelesaikan penyandian pesan dengan menggunakan algoritma Gost pada mode cipher feedback (CFB).

6. Melakukan perancangan dan menerapkan algoritma Gost pada Mode Cipher Feedback (CBF) dengan menggunakan bahasa pemrograman Visual Basic 6.0.

BAB II

LANDASAN TEORI

2.1 Sejarah Kriptografi

Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari mereka yang tidak diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan.

(2)

Gambar 2.1 Jenis–jenis Hieroglyph

Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus atau perkamen dibungkus dengan batang kayu. Sistem ini disebut Scytale.

Gambar 2.2 Bentuk Scytale

Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf apfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik. Cipher semacam ini mencakup penggeseran alfabet dengan 3 huruf dan mensubstitusikan huruf tersebut. Substitusi ini kadang dikenal dengan C3 (untuk Caesar menggeser 3 tempat).

Disk mempunyai peranan penting dalam kriptografi sekitar 500 th yang lalu. Di Italia sekitar tahun 1460, Leon Battista Alberti mengembangkan disk cipher untuk enkripsi. Sistemnya terdiri dari dua disk konsentris. Setiap disk memiliki alfabet di

(3)

sekelilingnya, dan dengan memutar satu disk berhubungan dengan yang lainnya, huruf pada satu alfabet dapat ditransformasi ke huruf pada alfabet yang lain.

Militer Jerman menggunakan mesin cipher substitusi polialfabetik disebut Enigma sebagai sistem pengkodean utama selama Perang dunia ke-II. Enigma menggunakan rotor mekanis untuk pengkodean dan pendekodean. Seorang Belanda, Hugo Koch mengembangkan mesin ini pada 1919, dan diproduksi untuk pasar komersial pada 1923 oleh Arthur Scherbius. Scherbius mendapatkan hal paten pada mesin Enigma untuk perusahaan Berlin Chiffriermasschinen Aktiengesellschaft.

Gambar 2.3 Mesin Enigma

Perkembangan komputer dan sistem komunikasi pada tahun 60an berdampak pada permintaan dari sektor-sektor privat sebagai sarana untuk melindungi informasi dalam bentuk digital dan untuk menyediakan layanan keamanan. Dimulai dari usaha Feistel pada IBM di awal tahun 70an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal US untuk mengenkripsi informasi yang unclassified. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah.

Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 saat Diffie dan Hellman mempublikasikan New Directions in Cryptography. Tulisan ini memperkenalkan konsep revolusioner kriptografi kunci publik dan juga

(4)

memberikan metode baru dan jenius untuk pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskret.

2.2 Pengertian Kriptografi

Kata cryptography berasal dari bahasa Yunani: krupto (hidden atau secret) dan grafh (writing) artinya “secret writing”.

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematis yang berhubungan dengan aspek keamanan informasi seperti: keabsahan, integritas data, serta autentifikasi data. Kriptografi tidak berarti hanya memberikan keamanan informasi saja, namun lebih ke arah teknik-tekniknya. Ada empat tujuan dari ilmu kriptografi, yaitu:

1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas.

2. Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain menyangkut penyisipan, penghapusan, dan pensubtitusian data lain ke dalam data yang sebenarnya

3. Autentikasi, adalah berhubungan dengan identifikasi, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.

(5)

4. Non-repudiasi, Merupakan usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang pihak mengirimkan.

2.3 Enkripsi dan Dekripsi

Proses utama dalam suatu algoritma kriptografi adalah enkripsi dan dekripsi berikut dijelaskan mengenai enkripsi dan dekripsi.

2.3.1Enkripsi

Enkripsi adalah suatu proses mengubah sebuah teks murni (plaintext) menjadi sebuah runtutan karakter atau data yang terlihat tidak berarti dan mempunyai urutan bit yang tidak beraturan, disebut ciphertext. Proses enkripsi secara umum adalah sebagai berikut:

Enkripsi

Plaintext Ciphertext

Gambar 2.4 Proses Enkripsi

Plaintext adalah pesan yang akan dirahasiakan yang dapat berupa bit tream, file text, digitized voice stream, digital video image atau lebih singkatnya Plaintext adalah data binary.

Ciphertext adalah hasil dari proses enkripsi juga berupa data binary yang kadang-kadang mempunyai ukuran yang sama dengan Plaintext, lebih kecil dari Plaintext atau lebih besar dari Plaintext.

(6)

Enkripsi merubah sebuah plaintext ke dalam bentuk ciphertext. Pada mode ECB (Electronic Codebook), sebuah blok pada plaintext dienkripsi ke dalam sebuah blok ciphertext dengan panjang blok yang sama.

Blok cipher memiliki sifat bahwa setiap blok harus memiliki panjang yang sama (misalnya 128 bit). Namun apabila pesan yang dienkripsi memiliki panjang blok terakhir tidak tepat 128 bit, maka diperlukan mekanisme padding, yaitu penambahan bit-bit dummies untuk menggenapi menjadi panjang blok yang sesuai; biasanya padding dilakukan pada blok terakhir plaintext.

Padding pada blok terakhir bisa dilakukan dengan berbagai macam cara, misalnya dengan penambahan bit-bit tertentu. Salah satu contoh penerapan padding dengan cara menambahkan jumlah total padding sebagai byte terakhir pada blok terakhir plaintext. Misalnya panjang blok adalah 128 bit (16 byte) dan pada blok terakhir terdiri dari 88 bit (11 byte) sehingga jumlah padding yang diperlukan adalah 5 byte, yaitu dengan menambahkan angka nol sebanyak 4 byte, kemudian menambahkan angka 5 sebanyak satu byte.

2.3.2 Dekripsi

Dekripsi merupakan proses kebalikan dari proses enkripsi, merubah ciphertext kembali ke dalam bentuk plaintext. Untuk menghilangkan padding yang diberikan pada saat proses enkripsi, dilakukan berdasarkan informasi jumlah padding yaitu angka pada byte terakhir.

Deskripsi Plaintext

Ciphertext

(7)

Sebelum membahas lebih jauh mekanisme kriptografi modern, berikut ini diberikan beberapa istilah yang umum digunakan dalam pembahasan kriptografi:

a.Pesan, Plainteks dan Ciphertext

Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks (plaintext) atau teks-jelas (cleartext). Bentuk pesan yang tersandi disebut cipherteks

(chipertext) atau kriptogram (cryptogram). Ciphertext harus dapat ditransformasikan kembali menjadi plaintext semula agar pesan yang diterima bisa dibaca.

b. Pengirim dan Penerima

Komunikasi data melibatkan pertukaran pesan antara 2 (dua) entitas.

Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang, mesin (komputer), kartu kredit dan sebagainya. c. Enkripsi dan Dekripsi

Proses penyandian plaintext menjadi ciphertext disebut enkripsi

(encryption) atau enciphering (standard nama menurut ISO 7498-2). Sedangkan proses mengembalikan ciphertext menjadi plaintext semula dinamakan dekripsi (decryption) atau deciphering (standard nama menurut ISO 7498-2).

d. Cipher dan Kunci

Algoritma kriptografi disebut juga cipher, yaitu aturan untuk enciphering dan deciphering atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk

(8)

enciphering dan deciphering. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara 2 (dua) buah himpunan, yaitu himpunan yang berisi elemen-elemen plaintext dan himpunan yang berisi ciphertext. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara ke dua himpunan tersebut. Jika P menyatakan plaintext dan C menyatakan ciphertext, maka fungsi enkripsi E memetakan P ke C,

E(P) = C (2.1) dan fungsi dekripsi D memetakan C ke P,

D(C) = P (2.2)

karena proses enkripsi kemudian dekripsi. Jika mengembalikan pesan ke pesan asal, maka kesamaan berikut harus benar,

D(E((P)) = P (2.3)

Keamanan algoritma kriptografi sering diukur dari banyaknya kerja (work) yang harus dibutuhkan untuk memecahkan ciphertext menjadi plaintextnya tanpa megetahui kunci yang digunakan. Semakin banyak kerja yang diperlukan berarti semakin lama waktu yang dibutuhkan sehingga semakin kuat algoritma kriptografi tersebut yang berarti semakin aman digunakan untuk menyandikan pesan.

Kriptografi modern mengatasi masalah di atas dengan penggunaan kunci yang dalam hal ini algoritma tidak lagi dirahasiakan, tetapi kunci harus dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan kunci K, fungsi enkripsi dan dekripsi dapat ditulis sebagai:

EK(P) = C dan DK(C) = P (2.4)

(9)

dan ke dua fungsi ini memenuhi

DK(EK(P)) = P (2.5)

e. Sistem Kriptografi

Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi.

Sistem Kriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi, semua plaintext dan ciphertext yang mungkin dan kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen saja.

f. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak-banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan ciphertext.

g. Kriptanalisis dan Kriptologi

Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan ciphertext menjadi plaintext tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Jika seorang kriptografer (cryptographer) mentransformasikan plaintext menjadi ciphertext dengan suatu algoritma dan kunci, maka sebaliknya seorang kriptanalis berusaha untuk memecahkan ciphertext tersebut untuk menemukan plaintext atau kunci. Kriptologi

(cryptologi) adalah studi mengenai kriptografi dan kriptanalisis.

Kriptologi

Kriptografi

Ilmu dan seni untuk menjaga keamanan pesan

Kriptanalisis

Ilmu dan seni untuk memecahkan ciphertext

(10)

Gambar 2.6 Kriptografi dan Kriptanalisis adalah Cabang Ilmu Kriptologi 2.4 Keamanan Algoritma Kriptografi

Lars Knudsen mengelompokkan hasil kriptanalisis ke dalam beberapa kategori berdasarkan jumlah dan kualitas informasi yang berhasil ditemukan:

1. Pemecahan total (total break). Kriptanalis menemukan kunci K sedemikian sehingga dekripsi DK(C)=P.

2. Deduksi (penarikan kesimpulan) global (global deduction). Kriptanalis menemukan algoritma alternative, A, yang ekivalen dengan DK(C) tetapi tidak mengetahui kunci K.

3. Deduksi lokal (instance/local deduction). Kriptanalis menemukan plaintext dari ciphertext yang disadap.

4. Deduksi informasi (information deduction). Kriptanalis menemukan beberapa informasi perihal kunci atau plaintext. Misalnya kriptanalis mengetahui beberapa bit kunci, kriptanalis mengetahui bahasa yang digunakan untuk menulis plaintext, kriptanalis mengetahui informasi plaintext dan sebagainya. Sebuah algoritma kriptografi dikatakan aman mutlak tanpa syarat (unconditionally secure) bila ciphertext yang dihasilkan oleh algoritma tersebut tidak mengandung cukup informasi untuk menentukan plaintext-nya. Artinya, ciphertext sebanyak berapapun yang dimiliki kriptanalisis tidak memberikan informasi yang cukup untuk mendeduksi plaintext yang berkoresponden dengan ciphertext tersebut. Di dalam kriptografi, hanya algoritma ontime pad yang tidak aman mutlak, sementara algoritma kriptografi yang lain dapat dipecahkan.

(11)

Sebaliknya, sebuah algoritma kriptografi dikatakan aman secara komputasi (computationally secure) bila memenuhi 2 (dua) kriteria berikut:

1. Biaya untuk memecahkan ciphertext melampaui nilai informasi yang terkandung di dalam ciphertext tersebut.

2. Waktu yang diperlukan untuk memecahkan ciphertext melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya.

2.5 Pengelompokan Algoritma Kriptografi

Algoritma kriptografi merupakan langkah-langkah logis mengenai penyembunyian pesan dari orang-orang yang tidak berhak atas pesan tersebut. Algoritma kriptografi terdiri dari 3 (tiga) dasar fungsi, yaitu:

1. Enkripsi. Enkripsi merupakan hal yang sangat penting dalam kriptografi yang merupakan pengamanan data yang dikirimkan terjaga kerahasiaannya. Pesan asli disebut plaintext yang diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa diartikan dengan cipher atau kode.

2. Dekripsi. Dekripsi merupakan kebalikan dari enkripsi, pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (plaintext) disebut dengan dekripsi pesan. Algoritma yang digunakan untuk dekripsi tentu berbeda dengan yang digunakan untuk enkripsi.

3. Kunci. Kunci yang dimaksud adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi jadi 2 (dua) bagian, yaitu kunci pribadi (private key) dan kunci umum (public key).

(12)

Enkripsi EK (P) = C

Dekripsi DK(C) = P

Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi dikelompokan menjadi 2 (dua) bagian, yaitu:

1. Algoritma Kriptografi Simetri (Algoritma Konvensional) 2. Algoritma Kriptografi Tak Simetri (Algoritma Kunci Publik)

Perbedaan utama antara metode enkripsi simetri dan asimetri terletak pada sama dan tidaknya kunci yang digunakan dalam proses enkripsi dengan kunci yang digunakan pada proses dekripsi.

2.5.1 Algortitma Kunci Simetri

Algoritma kriptografi simetri (symmetric cryptography) merupakan kriptografi yang menggunakan kunci yang sama baik untuk proses enkripsi maupun dekripsi. Secara matematis dapat dinyatakan bahwa:

e = d = k Ek(P) = C Dk(C) = P

Kunci pribadi, K Kunci pribadi, K

Plaintext, P Ciphertext, C Plaintext, P

Gambar 2.7 Skema Kriptografi Simetri

Kelemahan dari sistem ini adalah baik pengirim maupun penerima pesan harus memiliki kunci yang sama, sehingga pengirim pesan harus mencari cara yang aman untuk memberitahukan kunci kepada penerima pesan. Misalkan X mengirim pesan

(13)

rahasia kepada Y dan Y juga dapat membalas pesan tersebut. X memasukkan suratnya ke dalam sebuah kotak surat dan menguncinya dengan sebuah kunci gembok (surat yang berada di dalam kotak dapat dianalogikan sebagai pesan yang sudah dienkripsi karena tidak ada orang lain yang bisa membacanya dan kunci gembok dianalogikan dengan kunci enkripsi). Kemudian X mengirim kotak surat tersebut melalui jasa pos. Y yang menerima kotak surat tersebut dapat membuka gembok dengan kunci duplikat yang sama dengan kunci gembok yang dimiliki oleh X (ini dapat dianalogikan dengan Y mendekripsi pesan dengan kunci yang sama. Mereka mungkin berbagi kunci gembok pada pertemuan rahasia sebelumnya). Y membaca surat dari X dan mengirim balasannya dengan cara yang serupa.

Oleh karena itu, kriptografi ini dinamakan pula sebagai kriptografi kunci rahasia. Algoritma ini disebut juga dengan algoritma konvensional, yaitu algoritma yang menggunakan kunci yang sama pada proses enkripsi dan deskripsinya. Algoritma ini mengharuskan pengirim dan penerima menyetujui satu kunci tertentu.

Skema enkripsi akan disebut symmetric-key apabila pasangan kunci untuk proses enkripsi dan dekripsinya sama. Pada skema enkripsi kunci simetrik dibedakan lagi menjadi 2 (dua) kelas, yaitu block-cipher dan stream-cipher.

Block Cipher adalah skema enkripsi yang akan membagi-bagi plaintext yang akan dikirimkan menjadi sting-string (disebut blok) dengan panjang t, dan mengenkripsinya per-blok. Pada umumnya block cipher memproses plaintext dengan blok yang relatif panjang lebih dari 64 bit dengan tujuan untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci. Sedangkan skema stream cipher pada dasarnya juga block cipher, hanya dengan panjang bloknya adalah satu bit.

2.5.2 Algoritma Kunci Asimetri

Skema ini adalah algoritma yang menggunakan kunci yang ber beda untuk proses enkripsi dan dekripsinya. Skema ini disebut juga sebagai sistem kriptografi

(14)

key karena kunci untuk enkripsi dibuat secara umum (public-key) atau dapat diketahui oleh siapa saja, tetapi untuk proses dekripsinya yang dibuat satu saja, yakni hanya oleh yang berwenang untuk mendekripsinya (disebut private-key).

Keuntungan skema model ini, untuk berkorespondensi secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci (disebut public-key) bagi para koresponden untuk mengenkripsi pesan, dan private-key untuk mendekripsi pesan. Berbeda dengan skema kunci simetrik yang jumlah kunci yang dibuat adalah harus sebanyak jumlah pihak yang berkorespondensi.

Gambar 2.8 Skema Algoritma Asimetri

2.6 Block Cipher

Block cipher merupakan sebuah fungsi yang memetakan n-bit blok plaintext ke n-bit blok ciphertext, dengan n adalah panjang blok. Blok cipher umumnya memproses plaintext ke dalam blok-blok yang cukup besar (≥ 64).

2.6.1Cipher Berulang

Pada teknik cipher berulang (iterated cipher), blok plaintext mengalami pengulangan fungsi transformasi beberapa kali untuk mendapatkan blok ciphertext. Fungsi transformasi pada umumnya merupakan gabungan proses substitusi, permutasi, kompresi, atau ekspansi terhadap blok plaintext. Sebuah kunci pada setiap

A

Plaintext Ciphertext Plaintext

B

Kunci Publik Kunci Publik

Dekripsi Dekripsi

(15)

putaran akan dikombinasikan dengan plaintext. Parameter dalam cipher ini adalah jumlah putaran r, besar blok n dan besar kunci k. Sub-kunci Ki pada setiap putaran diperoleh dari penurunan kunci input K.

2.6.2 Feistel Cipher

Feistel cipher beroperasi terhadap panjang blok data tetap sepanjang n (genap), kemudian membagi 2 blok tersebut dengan panjang masing-masing n/2, yang dinotasikan dengan L dan R. Feistel cipher menerapkan metode cipher berulang dengan masukan pada putaran ke-I yang didapat dari keluaran sebelumnya, yang secara matematis dapat dinyatakan sebagai berikut :

Li = Ri-1

Ri=Li-1 ⊕ f(Ri-1,Ki); i =1,2,3,…,r

Ki adalah kunci untuk putaran ke-i dan f adalah fungsi transformasi.

Blok plaintext adalah gabungan L dan R awal atau secara formal plaintext dinyatakan dengan (Lo, Ro). Sedangkan blok ciphertext didapatkan dari L dan R hasil putaran terakhir setelah terlebih dahulu dipertukarkan atau dinyatakan dengan (Rr, Lr).

2.6.3 Avalanche

Pada blok cipher perubahan satu buah bit dapat menghasilkan perubahan lebih dari satu bit setelah satu putaran, lebih banyak lagi bit berubah untuk putaran berikutnya. Hasil perubahan tersebut dinamakan sebagai avalanche effect. Sebuah algoritma kriptografi memenuhi kriteria avalanche effect apabila satu buah bit input mengalami perubahan, maka probabilitas semua bit berubah adalah setengahnya. Avalanche effect

(16)

merupakan salah satu karakteristik yang menjadi acuan untuk menentukan baik atau tidaknya sebuah algoritma kriptografi.

2.7 Mode Operasi

Ada beberapa mode operasi yang digunakan dalam kriptografi, seperti:

2.7.1 Electronic Codebook (ECB)

Pada mode ini blok-blok plaintext (x) yang identik (menggunakan kunci sama) akan menghasilkan ciphertext (c) yang identik pula, yang secara matematis dapat dinyatakan:

Enkripsi : cj ←EK(xj); 1≤j≤t Dekripsi : xj← EK-1(cj); 1≤j≤t

2.7.2 Cipher Block Chaining (CBC)

Pada prosesnya, kode ini melibatkan penggunaan initializing vector (IV) yang menyebabkan blok-blok ciphertext yang identik apabila dienkripsi menggunakan kunci dan IV yang sama. Berubahnya IV, kunci atau blok plaintext pertama akan menghasilkan ciphertext yang berbeda. Secara matematis dapat dinyatakan:

Enkripsi : co←IV, untuk 1≤j≤t, cj←EK(cj-1⊕xj)

2.7.3Cipher Feedback (CFB)

Pada mode CBC, plaintext sebesar n bit diproses dalam sekali waktu (menggunakan sebuah n bit cipher blok), beberapa aplikasi mengharuskan r bit plaintext untuk dienkripsi terlebih dahulu dan ditransmisikan bebas delay, untuk r < n (biasanya r = 1 atau r = 8); dalam kasus ini CBF digunakan. Dalam mode ini juga melibatkan penggunaan initializing vector (IV).

(17)

Pada mode CFB, data dienkripsikan dalam unit yang lebih kecil daripada ukuran blok. Unit yang dienkripsikan dapat berupa bit per bit, 2 bit, 3 bit, dan seterusnya. Bila unit yang dienkripsikan satu karakter setiap kalinya, maka mode CFBnya disebut CFB 8-bit.

Secara umum CFB n-bit mengenkripsi plaintext sebanyak n bit setiap kalinya, yang mana n ≤ m (m = ukuran blok). Mode CFB membutuhkan sebuah antrian (queue) yang berukuran sama dengan ukuran blok masukan.

Tinjau mode CFB n-bit yang bekerja pada blok berukuran m-bit.Algoritma enkripsi dengan mode CFB adalah sebagai berikut:

1. Antrian diisi dengan IV (initialization vector).

2. Enkripsikan antrian dengan kunci K. n bit paling kiri dari hasil enkripsi berlaku sebagai keystream (ki) yang kemudian di-XOR-kan dengan n-bit dari plaintext menjadi n-bit pertama dari ciphertext. Salinan (copy) n-bit dari ciphertext ini dimasukkan ke dalam antrian (menempati n posisi bit paling kanan antrian), dan semua m-n bit lainnya di dalam antrian digeser ke kiri menggantikan n bit pertama yang sudah digunakan.

3. m-n bit plaintext berikutnya dienkripsikan dengan cara yang sama seperti pada Langkah 2.

(18)

Pi E Ci + Ki K

Left most n-bit

Antrian (shift register ) m-bit

Gambar 2.9 Proses Alur Enkripsi Pada CFB 8-bit

Sedangkan, algoritma dekripsi dengan mode CFB adalah sebagai berikut:

1. Antrian diisi dengan IV (initialization vector).

2. Dekripsikan antrian dengan kunci K. n bit paling kiri dari hasil dekripsi berlaku sebagai keystream (ki) yang kemudian di-XOR-kan dengan n-bit dari ciphertext menjadi n-bit pertama dari plaintext. Salinan (copy) n-bit dari ciphertext dimasukkan ke dalam antrian (menempati n posisi bit paling kanan antrian), dan semua m-n lainnya di dalam antrian digeser ke kiri menggantikan n bit pertama yang sudah digunakan.

3. m-n bit ciphertext berikutnya dienkripsikan dengan cara yang sama seperti pada Langkah 2.

(19)

Ci D Pi + Ki K

Left most n-bit

Antrian (shift register ) m-bit

Gambar 2.10 Proses Alur Dekripsi Pada CFB 8-bit

2.7.4 Output Feedback (OFB)

Mode OFB tidak mengalirkan error. Satu bit error pada ciphertext hanya mempengaruhi satu bit plaintext pada proses dekripsi. Ini berguna untuk sistem analog yang didigitasi serperti voice atau video, dimana error satu bit dapat ditoleransi namun error yang mengalir tidak dapat ditoleransi.

2.8 Algoritma Gost

Algoritma Gost merupakan blok cipher dari bekas Uni Sovyet, yang merupakan singkatan dari "Gosudarstvennyi Standard" atau Standar Pemerintah, standar ini bernomor 28147-89 oleh sebab itu metoda ini sering disebut sebagai GOST 28147-89.

(20)

Algoritma Gost merupakan blok cipher 64 bit dengan panjang kunci 256 bit. Algoritma ini mengiterasi algoritma enkripsi sederhana sebanyak 32 putaran (round). Untuk mengenkripsi pertama-tama plaintext 64 bit dipecah menjadi 32 bit bagian kiri, L dan 32 bit bagian kanan, R. Subkunci (subkey) untuk putaran i adalah Ki. Pada satu putaran ke-i operasinya adalah sebagai berikut:

Li = Ri-1

Ri = Li-1

f(Ri-1,Ki)

Secara struktural, algoritma Gost mirip dengan algoritma DES (Data Encryption Standart). Algoritma DES merupakan blok cipher 64 bit dengan panjang kunci 56 bit. Algoritma ini mengiterasi algoritma enkripsi sebanyak 16 putaran (round). Karena panjang kunci yang hanya 56 bit, membuat algoritma ini sangat rawan di-brute force sehingga saat ini digunakan 3 buah DES secara berurutan untuk mengenkripsi sebuah paintext yang disebut dengan Triple DES. Panjang kunci juga diperpanjang 3 kali menjadi 168 bit (56*3 = 168).

2.8.1 Cara kerja Algoritma Gost

(21)

Blok Plaintext 64 bit

Blok Plaintext dibagi dua L(kiri) dan R (kanan)

Ki =Bangkitkan kunci internal Putaran i

Lakukan pertukaran L dan R Li = Ri-1

Ri = Li-1 xor f(Ri-1,Ki)

Putaran i=+1

Ulangi sampai putaran=32

Chipertext

Gambar 2.11 Skema Cara Kerja Algoritma Gost

Algoritma Gost merupakan blok cipher 64 bit dengan panjang kunci 256 bit. Algoritma ini mengiterasi algoritma enkripsi sederhana sebanyak 32 putaran (round).

Li = Ri-1

Ri = Li-1 f(Ri-1,Ki)

Pada setiap putaran, blok R (kanan) tidak akan mengalami perubahan apapun karena hanya akan dipindah menjadi blok L pada putaran selanjutnya. Namun blok R akan digunakan bersamaan dengan subkey kunci internal untuk diolah pada fungsi F dan akan di XOR-kan dengan blok L (kiri).

Secara lengkap cara kerja algoritma Gost dapat digambarkan seperti berikut:

(22)

Gambar 2.12 Diagram Alir Enkripsi dengan Metode Gost

2.8.2 Kunci Internal

Pada setiap putaran algoritma enkripsi Gost menggunakan kunci internal. Kunci internal sebenarnya hanya ada 8 buah, K1 sampai K8, karena ada 32 putaran, dengan demikian 8 buah kunci internal ini dijadwalkan penggunaannya.

Pembangkitan kunci internal sangat sederhana. Kunci eksternal yang panjangnya 256 bit dibagi ke dalam delapan bagian yang masing-masing panjangnya 32 bit. Delapan bagian ini yang dinamakan K1, K2, …, K8. Karena ada 32 putaran, maka 8 buah kunci internal ini dijadwalkan penggunaannya

Berikut tabel penjadwalan kunci internal (key schedule) Plaintext 0 L 32 L R32 =L31⊕ f(R31,K32) 0 R i K f + Plaintext Output

(23)

Tabel 2.1 Key Schedule Enkripsi Gost

2.8.3 Fungsi f

Untuk fungsi f, setiap putarannya data sebelah kanan akan dilakukan operasi penambahan dengan blok kunci yang berbeda dimodulus dengan 232 atau untuk hitungan per byte, setiap byte-nya dari bilangan itu akan dimodulus 28.

Fungsi modulus yaitu agar setiap bilangan tidak melebihi 255 (untuk hitungan per byte). Kemudian data yang dihasilkan akan dipecah menjadi 8 bagian dan dijadikan input yang berbeda untuk tiap S-boxnya. Algoritma Gost tidak menentukan standar dalam pembentukan S-boxnya. Setelah itu data akan dikombinasikan lagi menjadi 32 bit. Terakhir data akan dirotasi 11 bit ke kiri, seperti telah disebutkan di atas.

R (32 bits) K (32 bits)

MOD 255

+

4 bits 4 bits 4 bits 4 bits 4 bits 4 bits 4 bits 4 bits

S1 S2 S3 S4 S5 S6 S7 S8

SHIFT 11 BIT

Word (32 bits)

(24)

Gambar 2.13 Diagram Alir fungsi f pada Algoritma Gost

Langkah selanjutnya adalah hasil operasi ini di xor dengan data bagian kiri yang kemudian menjadi bagian kanan dan bagian kanan menjadi bagian kiri (swap). Pada implementasinya nanti rotasi pada fungsi f dilakukan pada awal saat inisialisasi sekaligus membentuk s-box 32 bit dan dilakukan satu kali saja sehingga lebih menghemat operasi dan dengan demikian mempercepat proses enkripsi/dekripsi.

2.8.4 Pembentukan S-box

Standar GOST tidak menentukan bagaimana menghasilkan s-box sehingga ada spekulasi bahwa sebagian organisasi di (eks) Sovyet mempunyai s-box yang baik dan sebagian diberi s-box yang buruk sehingga mudah diawasi.

Hasil penjumlahan Ri – 1 dengan kunci internal ke-i menghasilkan keluaran yang panjangnya 32 bit. Keluaran ini dibagi mejadi 8 bagian yang masing-masing panjangnya 4 bit. Setiap 4 bit masuk ke dalam S-box untuk proses substitusi. Empat bit pertama masuk ke dalam S-box pertama, 4 bit dua masuk ke dalam S-box ke-dua, demikian seterusnya. Hasil substitusi setiap S-box adalah 4 bit. Gost memiliki 8 buah S-box setiap kotak berisi 16 buah elemen nilai. Setiap kotak berisi permutasi angka 0 sampai 15. Berikut pembentukan S-box pada algoritma Gost:

(25)

Untuk proses dekripsinya, operasinya akan dibalik dengan operasi enkripsi sebagai berikut :

Li = Ri-1

Ri = Li-1 ⊕ f(Ri-1,Ki)

Dengan urutan kunci dibalik yaitu dimulai dari blok kunci yang terakhir.

2.9 Perbedaan Algoritma Gost dengan Algoritma DES

Berikut adalah perbedaan antara algoritma Gost dengan algoritma DES (Munir, Rinaldi 2006):

1. Kunci DES 56 bit, sedangkan kunci GOST lebih panjang 256 bit. Ini menyebabkan exchaustive key search terhadap GOST lebih sukar dibandingkan dengan DES.

(26)

2. Jumlah putaran DES 16 kali, sedangkan GOST lebih banyak yaitu 32 kali sehingga membuat kriptanalisis menjadi sangat sulit dalam memecahkan ciphertextnya.

3. Kotak S di dalam DES menerima masukan 6 bit dan keluaran 4 bit (berukuran 6 x 4), sedangkan S-box di dalam GOST menerima masukan 4 bit dan keluaran 4 bit (berukuran 4 x 4).

4. Pembangkitan kunci internal di dalam DES rumit, sedangkan di dalam GOST pembangkitan kunci internalnya sederhana.

5. DES mempunyai permutasi yang tidak teratur, sedangkan GOST hanya menggunakan pergeseran 11- bit secara sirkuler.

Gambar

Gambar 2.1 Jenis–jenis Hieroglyph
Gambar 2.3 Mesin Enigma
Gambar 2.4 Proses Enkripsi
Gambar 2.5 Proses Dekripsi
+7

Referensi

Dokumen terkait

Adalah dengan ini diisytiharkan bahawa tanah dan kawasan yang tertentu yang dinyatakan dalam Jadual di bawah ini adalah diperlukan bagi maksud yang

(2012), dengan sedikit modifikasi yakni menambah variabel kepemilikan terkonsentrasi, serta sampel yang digunakan lebih dikhususkan pada perusahaan yang ada di negara

adalah kalamullah yang diturunkan kepada junjungan kita Nabi Muhammad SAW. Yang lafazhnya merupakan mukjizat, ibadah bagi yang membacanya, dinukilkan secara mutawatir, berfaedah

Setelah sebuah konstanta numerik sudah diubah secara internal ke dalam angka, awk tidak ingat lagi apa bentuk asli dari konstanta tersebut (nilai internal yang biasanya

Hal ini sesuai dengan penelitian yang dilakukan oleh Gusganda Suria Manda (2018) yang menjelaskan bahwa Penelitian ini menggunakan analisis deskriptif dan verifikatif

Tujuan penelitian ini untuk mengetahui sejauhmana jumlah wajib pajak badan dan pemeriksaan pajak dapat mempengaruhi penerimaan pajak penghasilan dengan menggunakan unit

Selama Agustus 2015, deflasi sebesar 0,75 persen dipengaruhi oleh penurunan indeks harga terjadi pada kelompok pengeluaran transportasi, komunikasi, dan jasa keuangan (3,06

10 Roeslan Salah, Stelsel Pidana Indonesia, Aksara Baru, Jakarta, 1987, hlm.61. Gerakan yang menentang pidana mati bukanlah sekedar suatu usaha atau perjuangan yang