LANDASAN TEORI
Julius Caesar dalam mengirimkan pesan yang dibawa oleh hulubalangnya, sengaja
mengacak pesan tersebut sebelum diberikan kepada kurir. Hal ini dilakukan untuk
menjaga kerahasiaan pesan baik bagi kurir maupun bagi musuh jika kurir tertangkap
di tengah jalan oleh musuh. Ada orang yang mengatakan bahwa apa yang dilakukan
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 sekarang ini. Sejak munculnya
buku tersebut maka kriptografi pun mulai diperbincangkan secara luas. Peminat dari
matematika yang spesial. Penelitian dalam bidang ini tidak pernah sampai kepada
4
5
keberadaan ataupun manfaat darinya. Kemudian pada Perang Dunia II, pihak militer
pun mulai menyadari akan manfaat dari penggunaan kriptografi maupun kriptanalisis.
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.
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
terkenal dalam sejarah dan tetap menjadi standar pengamanan data elektronik
ialah pada tahun 1976 dimana 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
6
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
tersebut maka muncul usaha – usaha untuk mencari cara yang paling efisien dalam
pemfaktoran bilangan. Skema kunci publik lainnya yang kuat dan praktis ditemukan
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
Pencarian terhadap skema kunci publik yang baru dengan pengembangan dari
tersembunyi dan graphia yang artinya sesuatu yang tertulis, sehingga kriptografi
bagaimana merahasiakan suatu informasi penting ke dalam suatu bentuk yang tidak
semula dengan menggunakan berbagai macam teknik yang telah ada sehingga
informasi tersebut tidak dapat diketahui oleh pihak manapun yang bukan pemilik atau
kriptografi.
komunikasi tetap rahasia dan khusus. Seperti yang telah diketahui dan disetujui
penekanan kriptografi selama ini. Akan tetapi hal tersebut hanyalah sebagian dari
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
secara fisik misalnya menyimpan data pada suatu tempat khusus sampai dengan
tidak terbaca.
pihak-pihak yang tidak berhak atas informasi tersebut. Untuk menjamin integritas
data.
3. Otentikasi (authentication)
harus mengidentifikasi satu sama lainnya. Informasi yang didapat oleh suatu
9
pihak dari pihak lain harus diidentifikasi untuk memastikan keaslian dari
tanggal pembuatan informasi, isi informasi, waktu kirim dan hal-hal lainnya yang
4. Non-repudiation
suatu aksi yang telah dilakukan oleh pelaku aksi itu sendiri. Jika terjadi
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.
10
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
banyak digunakan saat ini. Identifikasi adalah proses verifikasi identitas seseorang
atau sesuatu. Sebagai contoh, ketika menarik uang dari bank dengan menggunakan
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, mesin akan
orang tersebut akan diberikan akses. Aplikasi penting lainnya dari kriptografi adalah
kesempatan untuk akses ke dalam sumber daya tertentu misalnya Internet Account,
11
tetapi otentikasi memiliki cakupan lebih luas karena tidak perlu mengidentifikasikan
percaya. Sebagai contoh, dalam (k; n)-threshold scheme, informasi tentang rahasia
tetapi sembarang set k - 1 orang tidak dapat melakukannya. Dalam sembarang secret
sharing scheme, terdapat kumpulan orang yang terpilih yang informasi kumulatif
tersebut diberikan (misalnya akses ke dalam ruangan atau izin untuk melakukan
proses).
adalah sebuah skema dimana pihak yang dipercayai seperti penguasa atau pihak yang
12
mengeluarkan kupon (vouchers) yang disebut sertifikat yang memiliki sejumlah arti
ditemukan dalam kondisi tertentu tanpa pemilik memberitahukan. Ini perlu untuk dua
alasan, pertama, jika pemilik kunci menghilangkan atau secara tidak sengaja
diinginkan. Teknik penemuan kunci sudah banyak digunakan saat ini, akan tetapi,
penggunaan teknik ini dalam hal penegakan hukum telah menimbulkan kontroversi.
digolongkan atas atas 2 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
13
akan digunakan dalam proses enkripsi dan dekripsi tanpa diketahui oleh pihak lain.
Sedangkan dalam sistem kriptografi kunci publik atau dikenal dengan assymmetric
yakni kunci publik (public key) dan kunci rahasia (private key) dimana kunci publik
kunci rahasia.
dimana 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).
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 dimana 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
14
kriptografi kunci rahasia adalah block ciphers, stream ciphers, dan message
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
blok plaintext dengan kunci dan panjang blok yang sama. Panjang blok tertentu
disebut ukuran blok (block size) dimana ukuran blok tersebut bervariasi misalnya 16
15
bit, 32 bit, 64 bit, 128 bit atau 256 bit tergantung dari teknik yang digunakan dan
berbeda (untuk memungkinkan dekripsi yang unik), suatu block cipher secara efektif
menyediakan satu permutasi (korespondensi satu ke banyak) dari set pesan yang
mungkin. Permutasi berpengaruh pada saat enkripsi tertentu yang sudah pasti rahasia,
karena permutasi tersebut adalah fungsi dari kunci rahasia. Jika kita menggunakan
satu block cipher untuk mengenkrip satu pesan dengan panjang sembarang, kita
menggunakan teknik yang dikenal sebagai modus operasi untuk block cipher
tersebut. Agar dapat berguna, satu modus operasi setidak-tidaknya seefisien dan
terhadap sifat-sifat dasar yang dimiliki teknik biasa. Teknik standard DES telah
menggabungkan 4 modus operasi dari DES untuk dapat diaplikasikan terhadap block
cipher dengan ukuran blok sembarang. Standard tersebut adalah Electronic Code
Book, Cipher Block Chaining, Cipher Feedback, dan Output Feedback. Berikut ini
Iterated Block Cipher melakukan enkripsi terhadap suatu blok plaintext dengan
suatu proses yang memiliki beberapa putaran (round). Dalam setiap putaran
diturunkan/ diperoleh dari kunci yang disediakan pemilik dengan suatu fungsi
khusus. Himpunan subkunci disebut key schedule. Jumlah putaran dalam iterasi
dibutuhkan untuk mencapai tingkat keamanan yang cukup akan terlalu sulit untuk
Feistel Cipher adalah bentuk khusus dari Iterated Block Cipher dimana ciphertext
fungsi putaran yang sama. Feistel Cipher sering disebut dengan DES-like ciphers.
Dalam Feistel cipher, teks yang sedang dienkrip dipecah menjadi 2 bagian yang
sama panjang yaitu Left dan Right. Fungsi Round f diaplikasikan terhadap salah
dengan potongan yang lainnya. Kemudian kedua potongan kiri dan kanan
dipertukarkan. Setiap putaran mengikuti pola yang sama, kecuali putaran terakhir
Salah satu sifat yang baik dari suatu Feistel cipher adalah bahwa enkripsi dan
selama proses enkripsi pada setiap putaran digunakan dengan urutan terbalik
Untuk lebih spesifik dapat dikatakan input dalam proses dekripsi adalah pasangan
(Rr, Lr) bukan pasangan (L0, R0) seperti pada saat enkripsi (notasi seperti terlihat
pada Gambar 2.3), dan subkunci ke-i adalah kr-i+1 bukan ki. Ini berarti kita akan
memperoleh pasangan (Rr-i; Lr-i) jadi bukanlah pasangan (Li; Ri) setelah putaran
sehingga diperoleh,
Li = Ri-1 dan
Tentu saja dapat dirancang iterative ciphers yang bukan merupakan Feistel
Dalam mode ECB (Gambar 2.4), setiap blok plaintext dienkripsi secara
Mode ECB memiliki tingkat keamanan sama seperti block cipher. Akan tetapi,
cipher. ECB dapat dengan mudah melakukan proses paralel untuk menghasilkan
performansi yang lebih tinggi. Akan tetapi, sangat disayangkan tidak ada proses
Dalam mode CBC, setiap blok plaintext di-XOR-kan dengan blok ciphertext
Mode CBC memiliki tingkat keamanan yang setara dengan block cipher terhadap
sebelumnya dengan blok plaintext. Satu hal yang perlu dicatat bahwa plaintext
tidak dapat dimanipulasi secara langsung dengan menghilangkan blok dari awal
atau akhir dari ciphertext. Vektor inisialisasi harus berbeda untuk dua sembarang
pesan yang di-enkrip dengan kunci sama dan lebih baik jika dipilih secara acak.
Tidak ada keharusan untuk melakukan enkripsi dan dapat ditransmisikan dengan
ciphertext.
Akan tetapi, perhatikan juga kelemahan yang dimiliki seperti kecepatan enkripsi
sama dengan block cipher, tetapi proses enkripsi sulit untuk diparalelkan,
Mode PCBC adalah variasi pada mode CBC dimana operasi dirancang untuk
memperbesar atau menyebarkan satu bit error dalam ciphertext. Cara ini
suatu contoh arahan (pengujian) dalam cryptanalysis tentang block cipher. Jika
dua blok ciphertext Ci-2 dan Ci-1 dipertukarkan, maka hasil dari langkah ke-i
dalam proses dekripsi masih menghasilkan blok plaintext yang benar. Untuk lebih
nampak dengan jelas, PCBC digantikan dengan mode CBC dalam Kerberos versi
Dalam mode Cipher Feedback (CFB) blok ciphertext sebelumnya dienkripsi dan
sedemikian hingga mode tersebut menggunakan feedback yang lebih kecil dari 1
21
blok penuh data. Sebuah vektor inisialisasi C0 digunakan sebagai sebuah “seed”
Ci = Ek (Ci-1) Mi ; Mi = Ek (Ci-1) Ci
CFB mode memiliki tingkat keaamanan yang setara dengan cipher yang ada dan
menghilangkan blok dari awal atau akhir dari ciphertext. Dengan mode CFB dan
full feedback, jika dua blok ciphertext adalah identik, output dari operasi blok
cipher pada tahap berikutnya juga adalah identik. Hal ini memungkinkan
inisialisasi pada mode CFB sama seperti pada mode CBC, kecuali attack tidak
berlaku. Akan tetapi blok terakhir dari blok ciphertext dapat diserang (attacked).
enkripsi sama seperti yang dimiliki metode block cipher yang lain, tetapi proses
Mode Output Feedback mirip dengan mode CFB kecuali bahwa jumlah operasi
XOR dengan setiap blok plaintext dihasilkan secara independen dari plaintext
untuk sebarisan blok data Si, dan setiap blok data Si diperoleh dari proses enkripsi
terhadap blok data Si-1 sebelumnya. Proses enkripsi blok plaintext diperoleh
dengan melakukan operasi XOR antara blok plaintext dengan blok data yang
relevan.
Lebar umpan balik lebih kecil dari blok penuh tidak direkomendasikan untuk
CFB dimana setiap bit error yang mungkin terjadi selama transmisi tidak ikut
keamanan untuk vektor inisialisasi sama seperti pada mode CFB. Satu masalah
dengan mode OFB adalah bahwa plaintext dapat dimanipulasi. Yakni, seorang
plaintext x yang salah atau dengan melakukan x XOR Mi terhadap blok ciphertext
Ci yang terkait.
23
Terdapat serangan yang mirip terhadap mode CBC dan CFB, tetapi serangan
tersebut beberapa blok plaintext akan dimodifikasi dalam suatu cara yang tidak
dapat diprediksi oleh penyerang. Tetapi blok ciphertext paling depan (vektor
inisialisasi) dalam mode CBC dan blok terakhir ciphertext dalam CFB sangat
lemah terhadap serangan seperti blok dalam mode OFB. Serangan jenis ini dapat
Kecepatan proses enkripsi sama seperti yang dimiliki oleh block cipher yang
lain. Namun proses tidak dapat diparalelkan, waktu bisa dihemat dengan
menghasilkan aliran kunci (keystream) sebelum data ada untuk proses enkripsi.
Untuk mengatasi kelemahan yang dimiliki mode OFB, Diffie telah mengusulkan
penambahan mode operasi, yang disebut dengan mode counter. Mode ini berbeda
dengan mode OFB dalam cara blok data yang berkelanjutan dihasilkan untuk
+ IV mod 264 untuk blok data ke-i, dimana IV adalah Vektor Inisialisasi (Initial
Vector).
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. Proses enkripsi terhadap plaintext tertentu
dengan algoritma block cipher akan menghasilkan ciphertext yang sama jika kunci
yang sama digunakan. Dengan stream cipher, transformasi dari unit plaintext yang
lebih kecil ini berbeda antara satu dengan lainnya, tergantung pada kapan unit
Suatu stream cipher akan menghasilkan apa yang disebut suatu keystream
yaitu suatu barisan bit yang digunakan sebagai kunci. Proses enkripsi dicapai dengan
menghasilkan apa disebut dengan synchronous stream cipher, atau dapat dibuat
tergantung pada data dan enkripsinya, dalam hal mana stream cipher disebut sebagai
25
ciphers.
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
dengan sumber daya komputasi tak terbatas seseorang hanya dapat menduga plaintext
jika dia 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
keamanan yang sangat tinggi, fakta bahwa kunci rahasia (yang hanya dapat
manajemen kunci yang strict. Sedangkan keamanan sempurna, one-time pad secara
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
26
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. Akan tetapi, stream ciphers dengan desain khusus biasanya
jauh lebih cepat. Berikut ini adalah jenis – jenis dari stream cipher,
Suatu Linear Feedback Shift Register (LFSR) adalah suatu mekanisme untuk
menghasilkan sekuens bit biner. Register (Gambar 2.7) memiliki sebarisan sel yang
ditentukan oleh vektor inisialisasi yakni, biasanya, menjadi kunci rahasia. Tingkah
laku register diatur oleh sebuah counter (clock). Pada setiap saat isi sel dari register
digeser (shift) ke kanan sejauh satu posisi, dan hasil operasi XOR terhadap subset dari
isi sel ditempatkan pada sel paling kiri. Satu bit dari output biasanya diturunkan
maupun secara software. Dengan pemilihan yang cermat terhadap alat kontrol (pad)
feedback (bit tertentu yang digunakan, dalam Gambar 2.7 di atas tap adalah bit
27
pertama dan bit kelima) sekuens yang dihasilkan dapat memiliki performansi yang
baik secara statistik.. Akan tetapi, sekuens yang dihasilkan oleh LFSR tunggal tidak
cukup aman karena sebuah kerangka matematik yang kuat telah dikembangkan
tersebut. Namun demikian, LFSR sangat berguna sebagai blok bangunan dalam
Suatu shift register cascade merupakan sebuah set dari LFSR yang
LFSR sebelumnya dalam bentuk aliran yang menyerupai air terjun. Sifat dan tingkah
laku yang saling tergantung ini biasanya ditempuh dengan menggunakan satu LFSR
melangkah lebih dulu satu fase jika output register di depannya adalah 1 dan maju
dua langkah jika hasil = 0. Beberapa konfigurasi yang berbeda mungkin dan
Mansour. Ini adalah suatu stream cipher yang didasarkan pada interaksi sederhana
antara output dari dua LFSR. Bit-bit dari satu output digunakan untuk menentukan
apakah bit yang terkait dengan output register kedua akan digunakan sebagai bagian
dari keystream secara keseluruhan. The shrinking generator adalah sederhana dan
dapat diukur, dan memiliki sifat-sifat keamanan yang baik. Salah satu kelemahan dari
the shrinking generator adalah bahwa tingkat output keystream tidak akan konstan
28
lain hal jika proteksi dilakukan. Salah satu varian dari shrinking generator adalah the
output dari salah satu LFSR melainkan ia melakukan penyusutan output dari register
yang satunya (seperti pada the shrinking generator), output dari LFSR tunggal
digunakan untuk mengekstraksi bit-bit dari output yang sama. Belum ditemukan hasil
lebih rumit daripada yang digunakan LFSRs atau FCSRs. Masalahnya adalah tidak
b. Periode maksimum dari rangkaian mungkin jauh lebih rendah daripada yang
diharapkan.
d. Rangkaian dapat muncul secara acak untuk sesaat, tetapi kemudian terjadi “dead
end” pada suatu nilai tunggal. Ini dapat diselesaikan dengan meng-XOR-kan
Sebaliknya, jika tidak ada teori untuk menganalisis sisi keamanan umpan
balik nonliniear shift register, terdapat sedikit perangkat (tool) kriptanalisis stream
29
cipher yang didasarkan padanya. Kita dapat menggunakan umpan balik nonlinear
shift register pada rancangan stream cipher, tetapi kita harus berhati-hati.
Dalam sebuah umpan balik nonlinear shift register, fungsi umpan balik dapat
berupa apa saja yang diinginkan yang terlihat pada Gambar 2.9 berikut ini.
Terdapat dua prinsip dasar untuk menghasilkan cipher yang aman, yaitu
confusion dan diffusion. Tanpa memperhatikan hal ini, cipher kita mungkin akan
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
memecahkan sandi rahasia ini, bila diffusion digunakan. Cara paling mudah untuk
Dalam dunia kriptografi modern, confusion dan diffusion ini dilakukan secara
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).
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
bahwa kunci publik dikaitkan dengan penggunanya dalam lingkup yang saling
pesan rahasia dengan hanya menggunakan informasi yang umum (kunci publik),
31
tetapi pesan tersebut hanya mungkin didekrip dengan menggunakan kunci rahasia,
dimana 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.
matematis terhadap kunci publik. Oleh karena itu, selalu dimungkinkan untuk
menembus (menyerang) sistem kunci publik dengan menurunkan kunci rahasia dari
membuat sesulit mungkin untuk menghasilkan kunci privat dari kunci publik.
melakukan faktorisasi terhadap bilangan yang sangat besar, dalam hal ini sangat sulit
modular yang dipakai adalah operasi penjumlahan modulo 2 16 dan operasi perkalian
modulo 216 + 1. Operasi modulo ini melibatkan bilangan 0 dan 1 saja sehingga
Inverse perkalian yang digunakan pada metode IDEA tidak seperti inverse
pada operasi perkalian dalam matematika. Inverse perkalian ini tidak dapat dijelaskan
Inverse = V0 + n
End If
End Fungsi
Contoh, Misalkan untuk A = 3265, maka proses kerjanya adalah sebagai berikut :
n = 65537
G0 = 65537
G1 = 3265
V0 = 0
V1 = 1
While (3265 <> 0)
Y = Int(65537 / 3265) = 20
G2 = 65537 - 20 * 3265 = 237
G0 = 3267
G1 = 237
V2 = 0 - 20 * 1 = -20
V0 = 1
V1 = -20
Wend
o
o
o
While (0 <> 0)
Y = 3
G2 = 0
G0 = 1
G1 = 0
V2 = -65537
V0 = 21016
V1 = -65537
Wend
Operasi XOR akan menghasilkan nilai bit “0” (nol) jika meng-XOR-kan dua buah bit
yang sama nilainya dan akan menghasilkan nilai bit “1” (satu) jika meng-XOR-kan
dua buah bit yang masing – masing nilai bitnya berbeda. Aturan yang berlaku untuk
A B AB
0 0 0
0 1 1
1 0 1
1 1 0
Nilai A jika di-XOR-kan dengan nilai B sebanyak 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
PK=C; CK=P
Keterangan,
P = Plaintext
K = Key
C = Ciphertext
35
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.
12 4 13 5
14 6 15 7
0 8 1 9
11 2 3 10
Terhadap 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
36
Hasil permutasi :
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
Pergeseran bit (Shift) adalah operasi pergeseran terhadap suatu barisan bit
sebanyak yang diinginkan. Bit kosong yang telah tergeser akan diberikan nilai bit “0”
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
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
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 dua macam
yaitu,
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 :
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.
Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki invers.
Perkalian modulo n juga tidak memiliki invers jika angka yang dikalikan tidak relatif
memiliki inversi. Angka 65537 (216 + 1) adalah sebuah bilangan prima. Oleh karena
itu, operasi perkalian modulo (216 + 1) pada algoritma IDEA memiliki inversi. Jika
kita membentuk suatu tabel perkalian untuk bilangan-bilangan mulai dari 1 sampai
65536, maka setiap baris dan kolom hanya berisi setiap bilangan satu kali saja.
Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol
semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai
Contoh :
2.5.1 Sejarah
Metoda IDEA diperkenalkan pertama kali oleh Xuejia Lai dan James Massey
pada tahun 1990 dengan nama PES (Proposed Encryption Standard). Tahun
berbeda, sang penemu memperkuat algoritma mereka dari serangan dan algoritma
39
Algorithm). Kemudian pada tahun 1992, IPES diganti namanya menjadi IDEA
2.5.2 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. Sebagaimana algoritma enkripsi yang lain, IDEA
permutasi dan substitusi untuk confusion dan diffusion, IDEA menggunakan operasi
a. XOR.
berikut ini,
Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki inversi. Perkalian
modulo n juga tidak memiliki inversi jika angka yang dikalikan tidak relatif prima
inversi. Angka 65537 (216 + 1) adalah sebuah bilangan prima. Oleh karena itu,
40
operasi perkalian modulo (216 + 1) pada algoritma IDEA memiliki inversi. Jika kita
membentuk suatu tabel perkalian untuk bilangan-bilangan mulai dari 1 sampai 65536,
maka setiap baris dan kolom hanya berisi setiap bilangan satu kali saja.
Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol
semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai
dengan bilangan tak bertanda yang diwakilinya. Algoritma IDEA ini dapat dibagi
menjadi tiga bagian besar, yaitu algoritma pembentukan kunci, enkripsi dan dekripsi.
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 2. Key dirotasikan 25 bit ke kiri dan dibagi menjadi 8 subkey lagi. Ini
merupakan delapan subkey kedua untuk algoritma dengan perincian empat subkey
pertama untuk putaran 2 dan empat subkey terakhir untuk putaran 3. Algoritma hanya
Proses pembentukan kunci dapat dilihat pada gambar 2.10 di bawah ini :
41
K1 K2 K3 K4 K5 K6 K7 K8
Round 1 Round 2
Diputar ke kiri 25 bit K1 K2 K3 K4 K5 K6 K1 K2
K1 K2 K3 K4 K5 K6 K7 K8
Round 2 Round 3
o K3 K4 K5 K6 K1 K2 K3 K4
o
o
K1 K2 K3 K4 K5 K6 K7 K8
Transformasi Output
K1 K2 K3 K4
2.5.2.2 Enkripsi
Pertama – tama, plaintext 64 bit dibagi menjadi 4 buah sub blok dengan panjang 16
bit, yaitu X1, X2, X3, X4. Empat sub blok ini menjadi masukan bagi iterasi tahap
pertama algoritma. Total terdapat 8 iterasi. Pada setiap iterasi, 4 sub blok di-XOR-
kan, ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16 bit.
Diantara iterasi sub blok kedua dan ketiga saling dipertukarkan. Akhirnya 4 buah sub
Output dari setiap round adalah 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 14.
Proses enkripsi algoritma IDEA dapat dilihat pada gambar berikut ini,
X1 X2 X3 X4
Satu K5(1)
putaran / iterasi
(round)
K6(1)
Tujuh o
putaran / iterasi o
(round) lainnya o
2.5.2.3 Dekripsi
terletak pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi
dan subkey-nya di-inverse-kan. Subkey pada langkah transformasi output pada proses
enkripsi di-inverse-kan dan digunakan sebagai subkey pada putaran 1 pada proses
dekripsi. Subkey pada putaran 8 di-inverse-kan dan digunakan sebagai subkey pada
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
K1(9) K2(9) K3(9) K4(9) K1(1)-1 -K2(1) -K3(1) K4(1)-1
output
bidang teknologi, tanpa disadari komputer telah ikut berperan dalam dunia
46
penggunaan komputer untuk proses belajar dimulai di Amerika Serikat pada akhir
tahun 1950-an dan awal tahun 1960-an. Kemudian penelitian selanjutnya dilakukan
oleh Harvard University bekerja sama dengan IBM pada tahun 1965. Setelah
meluas pada pengembangan aplikasi perangkat lunak ajar yang dikenal dengan istilah
muncul dari sejumlah disiplin ilmu, terutama ilmu komputer dan psikologi. Dari ilmu
perhitungan dan fungsi lebih mudah dan bermanfaat. Sedangkan dari ilmu psikologi
muncul pengetahuan mengenai teori belajar, teknik belajar, serta motivasi yang baik.
1. Peningkatan pengawasan
3. Individualisasi
2. Pengembangan teknik
3. Evaluasi
standar maka perlu dilakukan suatu pengujian. Pengujian biasanya dilakukan pada
bagian pelajaran dan pelatihan. Hasil dari pengujian inilah yang dievaluasi oleh
tim perancang.
Produksi ini harus dilakukan secara teknis dan logis dalam pembuatan
pengembangannya.
48
5. Evaluasi akhir
kuisioner maupun konsultasi dengan mereka yang ingin belajar. Hasilnya dapat