BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB Kriptografi

BAB 2 TINJAUAN PUSTAKA

Bab 1 PENDAHULUAN Latar Belakang

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

BAB II LANDASAN TEORI

Bab 2 Tinjauan Pustaka

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

BAB 1 PENDAHULUAN 1.1. Latar belakang

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

Kriptografi Kunci Rahasia & Kunci Publik

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

KRIPTOGRAFI VERNAM CIPHER UNTUK MENCEGAH PENCURIAN DATA PADA SEMUA EKSTENSI FILE

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

PERANCANGAN APLIKASI ENKRIPSI MENGGUNAKAN ALGORITMA IDEA (INTERNATIONAL DATA ENCRYPTION ALGORITHM)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

Kriptografi, Enkripsi dan Dekripsi. Ana Kurniawati Kemal Ade Sekarwati

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB II LANDASAN TEORI

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

BAB 2 LANDASAN TEORI

+ Basic Cryptography

BAB I PENDAHULUAN. Universitas Sumatera Utara

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

SISTEM PENGAMANAN PESAN SMS MENGGUNAKAN INTERNASIONAL DATA ENCRYPTION ALGORITHM

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

RUANG LINGKUP KRIPTOGRAFI UNTUK MENGAMANKAN DATA Oleh: Budi Hartono

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

METODE ENKRIPSI DAN DESKRIPSI DATA MENGGUNAKAN KRIPTOGRAFI IDEA

BAB II TINJAUAN PUSTAKA

Kriptografi Modern Part -1

KRIPTOGRAFI MATERI KE-2

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

METODE ENKRIPSI DAN DESKRIPSI DATA MENGGUNAKAN KRIPTOGRAFI IDEA ABDUL HANAN NIM :

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

Pengenalan Kriptografi

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

Modul Praktikum Keamanan Sistem

BAB II. Dasar-Dasar Kemanan Sistem Informasi

Vol. 3, No. 2, Juli 2007 ISSN PERANAN KRIPTOGRAFI DALAM KEAMANAN DATA PADA JARINGAN KOMPUTER

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

Kriptografi. A. Kriptografi. B. Enkripsi

Bab 2: Kriptografi. Landasan Matematika. Fungsi

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

STUDI MENGENAI JARINGAN FEISTEL TAK SEIMBANG DAN CONTOH IMPLEMENTASINYA PADA SKIPJACK CIPHER

BAB II LANDASAN TEORI

Data Encryption Standard (DES)

(pencurian, penyadapan) data. Pengamanan data dapat dilakukan dengan dua cara, yaitu steganography dan cryptography.

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

KRIPTOGRAFI SISTEM KEAMANAN KOMPUTER

IMPLEMENTASI ENKRIPSI DATA BERBASIS ALGORITMA DES

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

TINJAUAN PUSTAKA. Protokol

Elliptic Curve Cryptography (Ecc) Pada Proses Pertukaran Kunci Publik Diffie-Hellman. Metrilitna Br Sembiring 1

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

PERANCANGAN PERANGKAT LUNAK KRIPTOGRAFI METODA IDEA (INTERNATIONAL DATA ENCRYPTION ALGORITHM) SKRIPSI WAY YANTONO SAING

BAB II TINJAUAN PUSTAKA

Kriptografi Modern Part -1

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

BAB II LANDASAN TEORI. bilangan bulat dan mengandung berbagai masalah terbuka yang dapat dimengerti

BAB II DASAR TEORI. membahas tentang penerapan skema tanda tangan Schnorr pada pembuatan tanda

BAB II TINJAUAN PUSTAKA

Mengenal Kriptografi:

IMPLEMENTASI METODE KRIPTOGRAFI IDEA DENGAN FUNGSI HASH DALAM PENGAMANAN INFORMASI

BAB II TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

DATA ENCRYPTION STANDARD (DES) STANDAR ENKRIPSI DATA. Algoritma Kriptografi Modern

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

SISTEM KRIPTOGRAFI. Mata kuliah Jaringan Komputer Iskandar Ikbal, S.T., M.Kom

International Data Encryption Algorithm

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

BAB 2 LANDASAN TEORI

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

2.1 Keamanan Informasi

Transkripsi:

BAB 2 LANDASAN TEORI 2.1 Latar Belakang Kriptografi Menurut Pandiangan dalam jurnalnya yang berjudul Aplikasi Kriptografi untuk Sistem Keamanan Penyimpanan Data atau Informasi (Tahun 2005), menerangkan bahwa kriptografi merupakan disiplin ilmu matematika yang spesial sampai pada akhir Perang Dunia I. Penelitian dalam bidang ini tidak pernah sampai kepada umum sehingga tidaklah mengherankan kalau banyak orang tidak mengetahui keberadaan ataupun manfaat darinya. Kemudian pada Perang Dunia II, pihak militer pun mulai menyadari akan manfaat dari penggunaan kriptografi maupun kriptanalisis. Kriptografi memungkinkan untuk berkomunikasi dalam saluran yang aman (misalnya komunikasi melalui radio gelombang panjang) dengan cara membuatnya menjadi tidak dapat dimengerti oleh musuh. Kriptografi mencapai kemajuan yang pesat pada akhir Perang Dunia II. Akan tetapi kriptografi masih merupakan sesuatu yang sangat rahasia karena kriptografi telah menjadi bagian yang penting dalam komunikasi militer. 2.1.1 Sejarah Kriptografi Menurut Jennifer Seberpy dalam bukunya yang berjudul An Introduction to Computer Security tahun 1990 menjelaskan bahwa kriptografi dimulai pertama sekali dengan menggunakan metode pertukaran posisi untuk mengenkripsi suatu pesan. Dalam sejarah perkembangannya, Julius Caesar dalam mengirimkan pesan selalu mengacak pesannya sebelum diberikan kepada kurir. Ada orang yang

mengatakan bahwa apa yang dilakukan oleh Julius Caesar dianggap sebagai awal dari kriptografi. Dalam sebuah buku yang berjudul The Codebreaker yang dikarang oleh David Kahn pada tahun 1963, disebutkan bahwa kriptografi digunakan pertama sekali oleh bangsa Mesir 4000 tahun yang lalu sampai saat ini. Sejak munculnya buku tersebut kriptografi pun mulai diperbincangkan secara luas. Peminat dari buku tersebut ialah peminat yang berhubungan dengan kemiliteran, layanan diplomatik dan pemerintahan. Kriptografi digunakan sebagai suatu alat untuk melindungi rahasia dan strategi-strategi negara. Perkembangan komputer dan sistem komunikasi pada tahun 1960-an mengakibatkan munculnya kebutuhan pihak swasta akan alat untuk melindungi informasi dalam bentuk digital dan untuk menyediakan layanan keamanan informasi. Kriptografi digital dimulai pada tahun 1970 atas usaha Feistel dari IBM dan memuncak pada tahun 1977 dengan diadopsinya sistem kriptografi DES (Data Encryption Standard) oleh U.S. Federal Information Processing Standard untuk mengenkripsi informasi rahasia. DES merupakan mekanisme kriptografi yang paling terkenal dalam sejarah dan tetap menjadi standar pengamanan data elektronik komersial pada kebanyakan institusi keuangan di seluruh dunia. Perkembangan yang paling pesat dan berpengaruh dalam sejarah kriptografi ialah pada tahun 1976 di mana Whitfield Diffie dan Martin Hellman mempublikasikan sebuah tesis berjudul New Direction in Cryptography. Dalam tesis ini diperkenalkan konsep kunci publik kriptografi yang paling revolusioner dan juga menyediakan metode baru dalam pertukaran kunci, yaitu keamanan yang didasarkan atas logaritma diskrit. Walaupun penulis tesis tersebut tidak mempunyai praktek yang nyata akan bentuk skema enkripsi kunci publik pada saat itu akan tetapi ide tersebut memicu minat dan aktivitas yang besar dalam komunitas kriptografi. Pada tahun 1978, Rivest, Shamir, dan Adleman menemukan enkripsi kunci publik yang pertama dan sekarang ini dikenal dengan nama RSA (Rivest, Shamir, and Adleman). Skema RSA didasarkan pada permasalahan matematika sulit yang terdiri dari pemfaktoran terhadap bilangan yang besar nilainya. Permasalahan matematika

tersebut mengakibatkan munculnya usaha-usaha untuk mencari cara yang paling efisien dalam pemfaktoran bilangan. Salah satu sumbangan yang paling penting dari kriptografi kunci publik ialah tanda tangan digital. Pada tahun 1991, standar internasional yang pertama untuk tanda tangan digital yang dipergunakan ialah berdasarkan pada skema kunci publik RSA. Pada tahun 1994 pemerintah Amerika Serikat mengadopsi standar tanda tangan digital yang didasarkan pada mekanisme skema kunci publik ElGamal. Pencarian terhadap skema kunci publik yang baru dengan pengembangan dari mekanisme kriptografi yang sudah ada dan pembuktian keamanan berlangsung dengan cepat. Berbagai standar dan infrastruktur yang berhubungan dengan kriptografi sedang dibangun. Produk produk keamanan sedang dikembangkan untuk memenuhi kebutuhan akan keamanan informasi pada masyarakat. 2.1.2 Definisi Kriptografi Dalam sebuah buku yang berjudul Kriptografi Keamanan Internet dan Jaringan Komunikasi yang dikarang oleh Kurniawan (Tahun 2004), disebutkan bahwa Kriptografi berasal dari bahasa Yunani yakni kriptos yang artinya tersembunyi dan graphia yang artinya sesuatu yang tertulis, sehingga kriptografi dapat disebut sebagai sesuatu yang tertulis secara rahasia. Kriptografi merupakan suatu bidang ilmu yang mempelajari tentang bagaimana merahasiakan suatu informasi penting ke dalam suatu bentuk yang tidak dapat dibaca oleh siapapun serta mengembalikannya kembali menjadi informasi semula dengan menggunakan berbagai macam teknik yang telah ada sehingga informasi tersebut tidak dapat diketahui oleh pihak manapun yang bukan pemilik atau yang tidak berkepentingan. Sisi lain dari kriptografi ialah kriptanalisis (Cryptanalysis) yang merupakan studi tentang bagaimana memecahkan mekanisme kriptografi. Bagi kebanyakan orang, kriptografi lebih diutamakan dalam menjaga komunikasi tetap rahasia dan khusus. Seperti yang telah diketahui dan disetujui bahwa perlindungan (proteksi) terhadap komunikasi yang sensitif telah menjadi

penekanan kriptografi selama ini. Akan tetapi hal tersebut hanyalah sebagian dari penerapan kriptografi dewasa ini. 2.1.2 Tujuan Kriptografi Kriptografi sesungguhnya merupakan studi terhadap teknik matematis yang terkait dengan 4 (empat) aspek keamanan dari suatu informasi yakni kerahasiaan (confidentiality), integritas data (data integrity), otentikasi (authentication), dan ketiadaan penyangkalan (non-repudiation). Ke empat aspek tersebut merupakan tujuan utama dari suatu sistem kriptografi yang dapat dijelaskan sebagai berikut: 1. Kerahasiaan (confidentiality) Kerahasiaan bertujuan untuk melindungi suatu informasi dari semua pihak yang tidak berhak atas informasi tersebut. Terdapat beberapa cara yang dapat digunakan untuk menjaga kerahasiaan suatu informasi, mulai dari penjagaan secara fisik misalnya menyimpan data pada suatu tempat khusus sampai dengan penggunaan algoritma matematika untuk mengubah bentuk informasi menjadi tidak terbaca. 2. Integritas data (data integrity) Integritas data bertujuan untuk mencegah terjadinya pengubahan informasi oleh pihak-pihak yang tidak berhak atas informasi tersebut. Manipulasi data yang dimaksud di sini meliputi penyisipan, penghapusan, maupun penggantian data. 3. Otentikasi (authentication) Otentikasi merupakan identifikasi yang dilakukan oleh masing masing pihak yang saling berkomunikasi, maksudnya beberapa pihak yang berkomunikasi harus mengidentifikasi satu sama lainnya. Informasi yang didapat oleh suatu pihak dari pihak lain harus diidentifikasi untuk memastikan keaslian dari informasi yang diterima. Identifikasi terhadap suatu informasi dapat berupa tanggal pembuatan informasi, isi informasi, waktu kirim dan hal-hal lainnya yang berhubungan dengan informasi tersebut. 4. Non-repudiation Non-repudiation berfungsi untuk mencegah terjadinya penyangkalan terhadap suatu aksi yang telah dilakukan oleh pelaku aksi itu sendiri. Jika terjadi

penyangkalan, maka diperlukan suatu prosedur yang melibatkan pihak ke tiga untuk menyelesaikan masalah tersebut. 2.2 Aplikasi Kriptografi Kriptografi telah banyak digunakan di dalam aplikasi-aplikasi khususnya aplikasi pengamanan data pada saat sekarang ini. Aplikasi khas dari kriptografi adalah sistem yang dikembangkan dengan teknik dasar. Sistem seperti ini, dapat memiliki tingkat kompleksitas yang beraneka ragam. Beberapa aplikasi yang lebih sederhana antara lain, komunikasi yang aman, identifikasi, otentikasi, dan secret sharing. Aplikasi yang lebih rumit seperti sistem untuk electronic commerce (e-commerce), sertifikasi, electronic mail yang aman, penemuan kunci dan akses komputer yang aman. Secara umum, makin sederhana aplikasi makin cepat menjadi realita. 2.2.1 Komunikasi Aman (Secure Communication) Komunikasi aman merupakan penggunaan kriptografi yang paling sederhana. Dua pihak dapat berkomunikasi secara aman dengan cara mengenkripsi pesan-pesan yang mereka kirimkan di antara mereka. Hal ini dapat dicapai sedemikian rupa sehingga pihak ketiga yang mendapat bocoran (menyadap) pembicaraan antar kedua pihak tadi mungkin tidak pernah mengembalikan pesan dalam bentuk acak ke dalam bentuk yang berarti. 2.2.2 Identifikasi dan Otentikasi (Identification and Authentication) Identifikasi dan otentikasi merupakan dua aplikasi kriptografi yang sangat banyak digunakan saat ini. Identifikasi adalah proses verifikasi identitas seseorang atau sesuatu. Sebagai contoh, ketika menarik uang dari bank dengan menggunakan kartu Automatic Teller Machine (ATM) dilengkapi dengan satu Personal Identification Number (PIN) yang rahasia yang memadukan pemilik kartu dengan kartu tersebut demikian juga dengan rekening yang bersangkutan. Ketika kartu dimasukkan ke dalam mesin ATM, mesin tersebut akan meminta pengguna kartu untuk memasukkan

PIN. Jika PIN yang dimasukkan benar, maka mesin akan mengidentifikasikan orang tersebut benar sebagai pemilik kartu sehingga kepada orang tersebut akan diberikan akses. Aplikasi penting lainnya dari kriptografi adalah otentifikasi. Otentifikasi mirip dengan indetifikasi, di mana ke duanya memberikan kesempatan untuk akses ke dalam sumber daya tertentu misalnya Internet Account, tetapi otentikasi memiliki cakupan lebih luas karena tidak perlu mengidentifikasikan orang atau entity. 2.2.3 Secret Sharing Secret Sharing merupakan salah satu aplikasi dari kriptografi yang memungkinkan pendistribusian satu rahasia di antara sekumpulan orang yang saling percaya. 2.2.4 Sertifikasi (Certification) Sertifikasi merupakan salah satu aplikasi lainnya dari kriptografi. Sertifikasi adalah sebuah skema di mana pihak yang dipercayai seperti penguasa atau pihak yang berwenang mengeluarkan sertifikat untuk pihak lain. Pihak yang dipercayai mengeluarkan kupon (vouchers) yang disebut sertifikat yang memiliki sejumlah arti yang mendalam, misalnya nomor ijazah. Teknologi sertifikasi dikembangkan untuk identifikasi dan otentikasi dimungkinkan dalam skala besar. 2.2.5 Key Recovery Key Recovery adalah suatu teknologi yang memungkinkan sebuah kunci ditemukan dalam kondisi tertentu tanpa pemilik memberitahukan. Ini diperlukan untuk 2 (dua) alasan, pertama, karena pemilik kunci menghilangkan atau secara tidak sengaja menghapus kuncinya, penemuan kunci dapat menghindarkan malapetaka. Kedua, karena aparat penegak hukum ingin mengetahui suatu tindak kriminal tanpa sepengetahuan tersangka, aparat tersebut harus mampu mendapatkan kunci yang diinginkan. Teknik penemuan kunci sudah banyak digunakan saat ini, akan tetapi, penggunaan teknik ini dalam hal penegakan hukum telah menimbulkan kontroversi.

2.3 Jenis Sistem Kriptografi Berdasarkan pemakaian kunci, sistem kriptografi (cryptosystems) dapat digolongkan atas atas 2 (dua) jenis sistem yakni sistem kriptografi kunci publik (public key cryptography) dan sistem kriptografi kunci rahasia (secret key cryptography). Dalam sistem kriptografi kunci rahasia yang dikenal juga dengan symmetric cryptosystems, pihak pengirim dan penerima bersama-sama menyepakati sebuah kunci rahasia yang akan digunakan dalam proses enkripsi dan dekripsi tanpa diketahui oleh pihak lain. Sedangkan dalam sistem kriptografi kunci publik atau dikenal dengan assymmetric cryptosystem, pihak pengirim maupun pihak penerima mendapatkan sepasang kunci yakni kunci publik (public key) dan kunci rahasia (private key) di mana kunci publik dipublikasikan dan kunci rahasia tetap dirahasiakan. Enkripsi dilakukan dengan menggunakan kunci publik sedangkan dekripsi dilakukan dengan menggunakan kunci rahasia. 2.3.1 Kriptografi Kunci Rahasia (Secret Key Cryptography) Kriptografi kunci rahasia (Gambar 2.1) merupakan bentuk kriptografi yang lebih tradisional, di mana kunci tunggal dapat digunakan untuk enkripsi dan dekripsi suatu pesan. Kriptografi kunci rahasia tidak hanya digunakan untuk enkripsi, tetapi juga untuk otentikasi. Salah satu teknik untuk pekerjaan ini disebut Message Authentication Codes (MAC). Masalah utama dengan kriptografi kunci rahasia membuat pengirim dan penerima pesan setuju atas kunci rahasia yang digunakan tanpa orang lain mampu mendapatkan dan mengetahuinya. Atau dengan kata lain bagaimana memilih kunci rahasia yang benar-benar aman. Hal ini membutuhkan suatu metode di mana kedua pihak dapat berkomunikasi tanpa kekhawatiran akan tercecernya kunci tersebut. Akan tetapi, keuntungan dari kriptografi kunci rahasia adalah biasanya lebih cepat dibandingkan dengan kriptografi kunci publik. Metode yang paling umum untuk kriptografi kunci rahasia adalah block ciphers, stream ciphers, dan message authentication codes (MAC).

Gambar 2.1 Ilustrasi kriptografi kunci rahasia 2.3.1.1 Block Cipher Block cipher adalah bentuk algoritma enkripsi kunci simetri yang mentransformasikan satu blok data tertentu dari plaintext ke dalam satu blok data ciphertext dengan panjang blok yang sama. Transformasi ini berlangsung melalui penggunaan kunci rahasia yang disediakan oleh pemakai (user). Dekripsi dilakukan dengan menggunakan transformasi kebalikan terhadap blok ciphertext menjadi satu blok plaintext dengan kunci dan panjang blok yang sama. Panjang blok tertentu disebut ukuran blok (block size) di mana ukuran blok tersebut bervariasi misalnya 16 bit, 32 bit, 64 bit, 128 bit atau 256 bit tergantung dari teknik yang digunakan dan perkembangan kemampuan mikroprosesor selanjutnya. 2.3.1.2 Stream Cipher Stream cipher adalah jenis algoritma enkripsi simetri yang mentransformasikan data secara karakter per karakter. Stream ciphers dapat dibuat sangat cepat sekali, jauh lebih cepat dibandingkan dengan algoritma block cipher yang manapun. Sementara algoritma block cipher secara umum digunakan untuk unit plaintext yang berukuran

besar sedangkan stream cipher digunakan untuk blok data yang lebih kecil, biasanya ukuran bit. Suatu stream cipher akan menghasilkan apa yang disebut suatu keystream yaitu suatu barisan bit yang digunakan sebagai kunci. Proses enkripsi dicapai dengan menggabungkan keystream dengan plaintext biasanya dengan operasi bitwise XOR. Pembentukan keystream dapat dibuat independen terhadap plaintext dan ciphertext, menghasilkan apa disebut dengan synchronous stream cipher, atau dapat dibuat tergantung pada data dan enkripsinya, dalam hal mana stream cipher disebut sebagai self-synchronizing. Kebanyakan bentuk stream cipher adalah synchronous stream ciphers. Konsentrasi dalam stream ciphers pada umumnya berkaitan dengan sifat-sifat teoritis yang menarik dari one-time pad. Suatu one-time pad, kadang-kadang disebut Vernam cipher, menggunakan sebuah string dari bit yang dihasilkan murni secara acak. Keystream memiliki panjang sama dengan pesan plaintext; string acak digabungkan dengan menggunakan bitwise XOR dengan plaintext untuk menghasilkan ciphertext. Karena keystream seluruhnya adalah acak, walaupun dengan sumber daya komputasi tak terbatas seseorang hanya dapat menduga plaintext pada saat melihat ciphertext. Metode cipher seperti ini disebut memberikan kerahasiaan yang sempurna (perfect secrecy), dan analisis terhadap one-time pad dipandang sebagai salah satu landasan kriptografi modern. Sementara one-time pad yang digunakan semasa perang melalui saluran diplomatik membutuhkan tingkat keamanan yang sangat tinggi, fakta bahwa kunci rahasia (yang hanya dapat digunakan satu kali) dianggap rahasia sepanjang pesan memperkenalkan masalah manajemen kunci yang strict. Sedangkan keamanan sempurna, one-time pad secara umum adalah tidak praktis. Stream ciphers dikembangkan sebagai satu aproksimasi terhadap tindakan dari one-time pad. Sementara stream cipher modern tidak mampu menyediakan tingkat keamanan one-time pad yang memadai secara teori, tetapi setidaknya praktis. Sampai saat ini belum ada stream cipher sebagai standard secara de facto. Metode stream cipher yang umum digunakan adalah RC4. Satu hal yang menarik bahwa

mode operasi tertentu dari suatu block cipher dapat mentransformasikan secara efektif hasil operasi tersebut ke dalam satu keystream generator dan dalam hal ini, block cipher apa saja dapat digunakan sebagai suatu stream cipher; seperti dalam DES, CFB atau OFB. 2.3.1.3 Desain Cipher Terdapat 2 (dua) prinsip dasar untuk menghasilkan cipher yang aman, yaitu confusion dan diffusion. Tanpa memperhatikan hal ini, cipher mungkin akan sangat mudah dipecahkan sandinya. Confusion berarti mengaburkan hubungan antara plaintext dan ciphertext. Ini akan membuat frustasi usaha untuk mencari keteraturan dan pola statistik antara plaintext dan ciphertext. Cara paling mudah untuk melakukan hal ini adalah dengan substitusi. Substitusi modern menggunakan cara yang sangat komplek. Namun cara ini belum cukup. Cipher Jerman, Enigma, yang menggunakan algoritma substitusi yang komplek dipecahkan oleh Sekutu dalam Perang Dunia II. Diffusion berarti menghilangkan redundansi plaintext dengan menyebarkan masukan ke seluruh ciphertext. Diperlukan waktu yang lebih lama untuk memecahkan sandi rahasia ini, bila diffusion digunakan. Cara paling mudah untuk melakukan diffusion adalah transposisi atau permutasi. Dalam dunia kriptografi modern, confusion dan diffusion ini dilakukan secara sangat intensif dengan bantuan komputer. 2.3.2 Kriptografi Kunci Publik (Public Key Cryptography) Kriptografi kunci publik diperkenalkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1976. Kriptografi kunci publik memiliki dua penggunaan utama, yakni enkripsi dan tanda tangan digital (encryption and digital signatures). Dalam sistem kriptografi kunci publik, masing-masing pihak mendapat sepasang kunci, satu disebut kunci publik (public key) dan satu lagi disebut kunci rahasia (private key). Kunci publik dipublikasikan, sementara kunci rahasia tetap dirahasiakan. Keharusan penggunaan kunci secara bersama antara pengirim dan penerima pesan rahasia

dihilangkan, semua komunikasi hanya melibatkan kunci publik, dan tidak ada kunci rahasia yang ditransmisikan atau digunakan bersama. Dalam sistem ini, tidak ada lagi kecurigaan terhadap keamanan dari sistem komunikasi. Satu-satunya kebutuhan bahwa kunci publik dikaitkan dengan penggunanya dalam lingkup yang saling mempercayai (contoh dalam suatu trusted directory). Seseorang dapat mengirimkan pesan rahasia dengan hanya menggunakan informasi yang umum (kunci publik), tetapi pesan tersebut hanya mungkin didekripsi dengan menggunakan kunci rahasia, di mana satu-satunya yang memiliki kunci rahasia tersebut hanyalah orang yang diharapkan menerima pesan tersebut. Kriptografi kunci publik tidak hanya digunakan untuk merahasiakan pesan, tetapi juga untuk otentikasi (tanda tangan digital) dan teknik lainnya. Dalam kriptografi kunci publik, kunci rahasia selalu berhubungan secara matematis terhadap kunci publik. Oleh karena itu, selalu dimungkinkan untuk menembus sistem kunci publik dengan menurunkan kunci rahasia dari kunci publik. Biasanya, cara untuk menangkal kemungkinan tersebut adalah dengan membuat sesulit mungkin untuk menghasilkan kunci privat dari kunci publik. Sebagai contoh, beberapa kriptosistem kunci publik dibuat sedemikian hingga penurunan kunci rahasia (private) dari kunci publik mengharuskan penyerang melakukan faktorisasi terhadap bilangan yang sangat besar, dalam hal ini sangat sulit untuk melakukan penurunan. Inilah ide di belakang RSA public-key cryptosystem. Kriptografi kunci publik ini diilustrasikan pada Gambar 2.2. Gambar 2.2 Ilustrasi Kriptografi Kunci Publik

2.4 Aritmatika Modulo Aritmatika modulo merupakan operasi matematika yang banyak diimplementasikan pada metode kriptografi karena nilai matematika aritmatika modulo berada dalam himpunan berhingga (0 sampai m 1). Pada metoda IDEA, operasi aritmatika modulo yang dipakai adalah operasi penjumlahan modulo 2 16 dan operasi perkalian modulo 2 16 +1. Operasi modulo ini melibatkan bilangan 0 dan 1 saja sehingga identik dengan bit pada komputer. Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Jika a dibagi dengan m, maka operasi a mod m (dibaca a modulo m ) memberikan sisa. Bilangan m disebut modulus atau modulo, dan hasil aritmatika modulo m terletak di dalam himpunan {0,1,2,...,m-1}. Notasi: a mod m = r sedemikian hingga a = mq + r, dengan 0 r < m. Contoh: (i) 23 mod 5 = 3 (23 = 5.4 + 3) (ii) 27 mod 3 = 0 (27 = 3.9 + 0) (iii) 6 mod 8 = 6 ( 6 = 8.0 + 6) 2.4.1 Kekongruenan Jika a mod b adalah bilangan bulat, dan m adalah bilangan bulat > 0, maka a b (mod m) jika m habis membagi a-b. Jika a tidak kongruen dengan b dalam modulus m, maka ditulis a / b (mod m). Jika 38 mod 5 = 3 dan 15 mod 5 = 3, maka dapat dikatakan bahwa 38 = 13 (mod 5) (baca: 38 kongruen dengan 13 dalam modulo 5). Contoh: (i) 23 mod 5 = 3 dapat ditulis sebagai 23 3 (mod 5) (ii) 27 mod 3 = 0 dapat ditulis sebagai 27 0 (mod 3) (iii) 6 mod 8 = 6 dapat ditulis sebagai 6 6 (mod 8)

2.4.2 Operasi XOR XOR adalah operasi Exclusive-OR yang dilambangkan dengan tanda. Jika meng-xor-kan dua buah bit yang sama nilainya, maka operasi XOR akan menghasilkan nilai bit 0 (nol) dan jika meng-xor-kan dua buah bit yang masingmasing nilai bitnya berbeda, maka akan menghasilkan nilai bit 1 (satu). Aturan yang berlaku untuk operasi XOR dapat dilihat pada Tabel 2.1. Tabel 2.1 Aturan Operasi XOR A B A B 0 0 0 0 1 1 1 0 1 1 1 0 Jika nilai A di-xor-kan dengan nilai B sebanyak 2 (dua) kali, maka akan didapatkan nilai A kembali. Karena sifat istimewa yang dimiliki operasi XOR tersebut sehingga operasi XOR cenderung dipakai dalam proses enkripsi dan dekripsi yang memiliki algoritma yang sama. Berikut ini adalah contoh operasi XOR: 1101 0110 0001 0100 1000 0001 1110 0000 0101 0111 1111 0100 2.4.3 Permutasi (Permutation) Permutasi dalam kriptografi sering digunakan untuk memindahkan posisi sejumlah bit ke posisi yang telah ditentukan dalam Tabel permutasi. Ada beberapa metode dalam kriptografi yang menggunakan permutasi pada awal maupun akhir dari proses enkripsi maupun dekripsi, dan ada juga metode yang menggunakan permutasi untuk

menghasilkan beberapa subkunci yang diperlukan dalam proses enkripsi dan dekripsi. Contoh: Misalkan terdapat sebuah tabel permutasi 16 bit sebagai berikut: 12 4 13 5 14 6 15 7 0 8 1 9 11 2 3 10 Jika diberikan 1 baris bit 1110 0110 0000 1001, maka barisan bit tersebut akan dilakukan permutasi menggunakan tabel permutasi sebagai berikut: Bit ke- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Bit 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 Hasil permutasinya adalah sebagai berikut: Bit ke- 12 4 13 5 14 6 15 7 0 8 1 9 11 2 3 10 Bit 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 2.4.4 Pergeseran Bit (Shift) Pergeseran bit (Shift) adalah operasi pergeseran terhadap suatu barisan bit sebanyak yang diinginkan. Bit kosong yang telah tergeser akan diberikan nilai bit 0 (nol). Operasi pergeseran terbagi menjadi 2 (dua) macam yaitu: 1. Operasi Geser Kiri (Shift Left) yaitu operasi yang menggeser (shift) sejumlah bit ke kiri (left) dengan nilai bit 0 (nol). Operasi shift left dilambangkan dengan <<. Contoh operasi shift left: 11000110 << 1 : 10001100 11000110 << 2 : 00011000 11000110 << 3 : 00110000

2. Operasi Geser Kanan (Shift Right) yaitu operasi yang menggeser (shift) sejumlah bit ke kanan (right) dengan nilai bit 0 (nol). Operasi shift right dilambangkan dengan >>. Contoh operasi shift right: 11000110 >> 1 : 01100011 11000110 >> 2 : 00110001 11000110 >> 3 : 00011000 2.4.5 Rotasi Bit (Rotate) Rotasi bit (Rotate) adalah operasi perputaran terhadap suatu barisan bit sebanyak yang diinginkan. Bit yang tergeser akan dipindahkan ke sisi barisan bit yang berlawanan dengan arah putaran bit. Operasi rotasi terbagi atas 2 (dua) macam yaitu, yaitu sebagai berikut: 1. Operasi Rotasi Kiri (Rotate Left) yaitu operasi memutar barisan bit ke kiri sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di sebelah kanan akan digantikan dengan bit yang telah tergeser di sebelah kirinya. Operasi rotate left dilambangkan dengan <<<. Contoh operasi rotate left adalah: 11000110 <<< 1 : 10001101 11000110 <<< 2 : 00011011 11000110 <<< 3 : 00110110 2. Operasi Rotasi Kanan (Rotate Right) yaitu operasi memutar barisan bit ke kanan sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di sebelah kiri akan digantikan dengan bit yang telah tergeser di sebelah kanannya. Operasi rotate right dilambangkan dengan >>>. Contoh operasi rotate right adalah: 11000110 >>> 1 : 01100011 11000110 >>> 2 : 10110001 11000110 >>> 3 : 11011000

2.5 Metoda IDEA Metoda IDEA diperkenalkan pertama kali oleh Xuejia Lai dan James Massey pada tahun 1990 dengan nama PES (Proposed Encryption Standard). Kemudian pada tahun 1992, IPES diganti namanya menjadi IDEA (International Data Encryption Algorithm). IDEA dirancang untuk menggantikan DES (Data Encryption Standard). 2.5.1 Algoritma IDEA merupakan block cipher (cipher blok), yang beroperasi pada blok plaintext 64 bit. Panjang kuncinya 128 bit. Algoritma yang sama digunakan untuk proses enkripsi dan dekripsi. IDEA menggunakan operasi aljabar sebagai berikut: a. XOR. b. Penambahan modulo 2 16. c. Perkalian modulo 2 16 + 1 (operasi ini menggantikan kotak-s atau S-Box). Algoritma IDEA menggunakan perkalian modulo 2 16 +1 dengan pertimbangan bahwa perkalian dengan 0 (nol) selalu menghasilkan 0 (nol) dan tidak memiliki invers. Jika angka yang dikalikan tidak relatif prima terhadap n, maka perkalian modulo n juga tidak memiliki inversi. Sementara algoritma kriptografi memerlukan operasi yang memiliki inversi. Angka 65537 (2 16 +1) adalah sebuah bilangan prima. Oleh karena itu, operasi perkalian modulo (2 16 +1) pada algoritma IDEA memiliki inversi. Pada saat membentuk suatu tabel perkalian untuk bilangan-bilangan mulai dari 1 (satu) sampai 65536, setiap baris dan kolom hanya berisi setiap bilangan 1 (satu) kali saja. Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari 0 (nol) semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai dengan bilangan tak bertanda yang diwakilinya. Algoritma IDEA ini dapat dibagi menjadi 3 (tiga) bagian besar, yaitu algoritma pembentukan kunci, enkripsi dan dekripsi.

2.5.2 Pembentukan Kunci Proses pembentukan ini dimulai dengan membagi 128 bit key menjadi 8 buah 16 bit subkey. Ini merupakan delapan subkey pertama untuk algoritma dengan perincian enam subkey pertama untuk putaran (round) 1 dan dua subkey terakhir untuk putaran kedua. Key dirotasikan 25 bit ke kiri dan dibagi menjadi 8 subkey lagi. Ini merupakan delapan subkey ke dua untuk algoritma dengan perincian 4 (empat) subkey pertama untuk putaran ke dua dan ke empat subkey terakhir untuk putaran ke tiga. Algoritma hanya menggunakan 52 buah subkey dengan perincian 6 buah subkey untuk 8 putaran ditambah 4 (empat) buah subkey untuk transformasi output. Proses pembentukan kunci dapat dilihat pada Gambar 2.3.

Gambar 2.3 Proses Pembentukan Kunci untuk IDEA

2.5.3 Enkripsi Pada proses enkripsi algoritma IDEA (Gambar 2.4), pertama tama plaintext 64 bit dibagi menjadi 4 (empat) buah sub blok dengan panjang 16 bit, yaitu X1, X2, X3, X4. Ke empat sub blok ini menjadi masukan bagi iterasi tahap pertama algoritma. Total terdapat 8 iterasi. Pada setiap iterasi, 4 (empat) sub blok di-xor-kan, ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16 bit. Di antara iterasi sub blok ke dua dan ke tiga saling dipertukarkan. Akhirnya 4 (empat) buah sub blok dikombinasikan dengan 4 (empat) subkey dalam transformasi output. Urutan-urutan yang dikerjakan pada setiap tahapan adalah sebagai berikut: a. Kalikan X1 dengan K1 mod (2 16 +1). b. Tambahkan X2 dengan K2 mod 2 16. c. Tambahkan X3 dengan K3 mod 2 16. d. Kalikan X4 dengan K4 mod (2 16 +1). e. XOR hasil dari step 1 dan 3. f. XOR hasil dari step 2 dan 4. g. Kalikan hasil dari step 5 dengan K5 mod (2 16 +1). h. Tambahkan hasil dari step 6 dan 7 mod 2 16. i. Kalikan hasil dari step 8 dengan K6 mod (2 16 +1). j. Tambahkan hasil dari step 7 dan 9. k. XOR hasil dari step 1 dan 9. l. XOR hasil dari step 3 dan 9. m. XOR hasil dari step 2 dan 10. n. XOR hasil dari step 4 dan 10. Output dari setiap round adalah 4 (empat) sub blok yang dihasilkan pada langkah 11, 12, 13 dan 14. Sub blok 12 dan 13 di-swap (kecuali untuk putaran terakhir) sehingga input dari putaran berikutnya adalah hasil kombinasi dari langkah 11, 13, 12, dan 14. Setelah 8 putaran, akan dilakukan tranformasi output berikut: 1. Kalikan X1 dengan subkey K1 mod (2 16 +1). 2. Tambahkan X2 dengan subkey K2 mod 2 16. 3. Tambahkan X3 dengan subkey K3 mod 2 16. 4. Kalikan X4 dengan subkey K4 mod (2 16 + 1).

Gambar 2.4 Proses Enkripsi Algoritma IDEA

2.5.4 Dekripsi Proses dekripsi (Tabel 2.2) sama persis dengan proses enkripsi. Perbedaannya hanya terletak pada aturan dari subkeynya. Urutan subkey terbalik dengan proses enkripsi dan subkeynya diinverskan. Subkey pada langkah transformasi output pada proses enkripsi diinversekan dan digunakan sebagai subkey pada putaran 1 pada proses dekripsi. Subkey pada putaran 8 diinversekan dan digunakan sebagai subkey pada putaran 1 (satu) dan 2 (dua) pada proses dekripsi, dan demikian seterusnya. Tabel 2.2 Subkey enkripsi dan dekripsi algoritma IDEA Round Subkey Enkripsi Subkey Dekripsi 1 K1(1) K2(1) K3(1) K4(1) K5(1) K6(1) K1(9) -1 -K2(9) -K3(9) K4(9) -1 K5(8) K6(8) 2 K1(2) K2(2) K3(2) K4(2) K5(2) K6(2) K1(8) -1 -K3(8) -K2(8) K4(8) -1 K5(7) K6(7) 3 K1(3) K2(3) K3(3) K4(3) K5(3) K6(3) K1(7) -1 -K3(7) -K2(7) K4(7) -1 K5(6) K6(6) 4 K1(4) K2(4) K3(4) K4(4) K5(4) K6(4) K1(6) -1 -K3(6) -K2(6) K4(6) -1 K5(5) K6(5) 5 K1(5) K2(5) K3(5) K4(5) K5(5) K6(5) K1(5) -1 -K3(5) -K2(5) K4(5) -1 K5(4) K6(4) 6 K1(6) K2(6) K3(6) K4(6) K5(6) K6(6) K1(4) -1 -K3(4) -K2(4) K4(4) -1 K5(3) K6(3) 7 K1(7) K2(7) K3(7) K4(7) K5(7) K6(7) K1(3) -1 -K3(3) -K2(3) K4(3) -1 K5(2) K6(2) 8 K1(8) K2(8) K3(8) K4(8) K5(8) K6(8) K1(2) -1 -K3(2) -K2(2) K4(2) -1 K5(1) K6(1) Transformasi output K1(9) K2(9) K3(9) K4(9) K1(1) -1 -K2(1) -K3(1) K4(1) -1