MODUL PERKULIAHAN
Kripto
grafi
Modul Standar untuk
digunakan dalam Perkuliahan
di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Teknik Informatika
01
Tim DosenTeori-teori dan fungsi-fungsi yang ada dalam Power Poingt 2010
Mahasiswa memahami teori serta fungsi2 / short key yang ada
Mahasiswa yang awam sekalipun akan mampu untuk membuat slide persentasi melakukan aktifitas yang berhubungan dengan word processor, khususnya MS.Word 2010.
Pendahuluan
Algoritma kriptografi klasik berbasis karakter • Menggunakan pena dan kertas saja, belum ada komputer • Termasuk ke dalam kriptografi kunci‐simetri • Tiga alasan mempelajari algoritma klasik: 1. Memahami konsep dasar kriptografi. 2. Dasar algoritma kriptografi modern. 3. Memahami kelemahan sistem cipher Algoritma kriptografi klasik: 1. Cipher Substitusi (Substitution Ciphers) 2.Cipher Transposisi (Transposition Ciphers)Algoritma Kriptografi Modern
Pendahuluan
Operasi dalam mode bit berarti semua data dan informasi (baik
kunci, plainteks, maupun cipherteks) dinyatakan dalam
rangkaian (
string
) bit biner, 0 dan 1. Algoritma enkripsi dan
dekripsi memproses semua data dan informasi dalam bentuk
rangkaian bit. Rangkaian bit yang menyatakan plainteks
dienkripsi menjadi cipherteks dalam bentuk rangkaian bit,
demikian sebaliknya.
Perkembangan algoritma kriptografi modern berbasis bit
didorong oleh penggunaan komputer digital yang
merepresentasikan data dalam bentuk biner.
‘15
3
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.id
Secure Network Protocols
Block Cipher Stream Cipher Hash Function Pseudo Random Random Source Elliptic Curve DH RSA Symmetric Key Cryptography Message
Digest IVs Nonces
Secret Keys Public Key Cryptography Encryption MACs MICs Challenge Responses Smart Cards Digital Signatures Confidentiality Data Integrity Authentication Non-Repudiation
Gambar 8.1
Diagram blok kriptografi modern
8.2 Rangkaian bit
Rangkaian bit yang dipecah menjadi blok‐blok bit dapat ditulis
dalam sejumlah cara bergantung pada panjang blok.
Contoh: Plainteks
100111010110
dibagi menjadi blok bit
yang panjangnya 4 menjadi
1001 1101 0110
Setiap blok menyatakan bilangan dari
0
sampai
15
, yaitu
9
13
6
Bila plainteks dibagi menjadi blok‐blok berukuran 3 bit:
100 111 010 110
maka setiap blok menyatakan bilangan dari
0
sampai
7
, yaitu
4
7 2
6
Bila panjang rangkaian bit tidak habis dibagi dengan ukuran
blok yang ditetapkan, maka blok yang terakhir ditambah
dengan bit‐bit semu yang disebut
padding bits
.
Misalnya rangkaian bit di atas dibagi menjadi blok 5‐bit menjadi
10011 10101 00010
‘15
5
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.id
(dicetak tebal) agar ukurannya menjadi 5 bit.
Padding bits
dapat
mengakibatkan ukuran plainteks hasil dekripsi lebih besar
daripada ukuran plainteks semula.
Cara lain untuk menyatakan rangkaian bit adalah dengan notasi
heksadesimal (HEX). Rangkaian bit dibagi menjadi blok yang
berukuran 4 bit dengan representasi dalam HEX adalah:
0000 = 0 0001 = 1 0010 = 2
0011 = 3
0100 = 4 0101 = 5 0011 = 6
0111 = 7
1000 = 8 1011 = 9 1010 = A
1011 = B
1100 = C 1101 = D 1101 = E
1111 = F
Misalnya, plainteks
100111010110
dibagi menjadi blok bit
yang panjangnya 4 menjadi
1001 1101 0110
yang dalam notasi HEX adalah
9 D 6
8.4 Operator
XOR
Operator biner yang sering digunakan dalam
cipher
yang yang
beroperasi dalam mode bit adalah
XOR
atau
exclusive-or
.
Notasi matematis untuk operator
XOR
adalah
(dalam Bahasa
C
, operator
XOR
dilambangkan dengan ^).
Operator
XOR
diperasikan pada dua bit dengan aturan sebagai
berikut:
0
0 = 0
0
1 = 1
1
0 = 1
1
1 = 0
Perhatikan bahwa operator
XOR
identik dengan penjumlahan
modulo 2:
0 + 0 (mod 2) = 0
0 + 1 (mod 2) = 1
1 + 0 (mod 2) = 1
1 + 1 (mod 2) = 0
Misalkan
a
,
b
, dan
c
adalah peubah Boolean. Hukum-hukum
yang terkait dengan operator XOR:
‘15
7
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.id
(ii)
a
b
=
b
a
(Hukum komutatif)
(iii)
a
(
b
c
) = (
a
b
)
c
(Hukum asosiatif)
Jika dua rangkaian dioperasikan dengan
XOR
, maka operasinya
dilakukan dengan meng-
XOR
-kan setiap bit yang
berkoresponden dari kedua rangkaian bit tersebut.
Contoh: 10011
11001 = 01010
yang dalam hal ini, hasilnya diperoleh sebagai berikut:
1
0 0 1 1
1
1 0 0 1
1
1 0
1 0
0 1
0 1
1
0
1 0 1 0
Algoritma enkripsi sederhana yang menggunakan
XOR
adalah
dengan meng-
XOR
-kan plainteks (
P
) dengan kunci (
K
)
menghasilkan cipherteks:
C
=
P
K
(8.1)
Karena meng-
XOR
-kan nilai yang sama dua kali berturut-turut
menghasilkan nilai semula, maka dekripsi menggunakan
persamaan:
Contoh:
plainteks
01100101
(karakter ‘e’)
kunci
00110101
(karakter ‘5’)
cipherteks
01010000
(karakter ‘P’)
kunci
00110101
(karakter ‘5’)
plainteks
01100101
(karakter ‘e’)
Algoritma enkripsi
XOR
sederhana pada prinsipnya sama
seperti
Vigenere cipher
dengan penggunaan kunci yang
berulang secara periodik. Setiap bit plainteks di-
XOR
-kan
dengan setiap bit kunci.
/* Enkripsi berkas teks dengan algoritma XOR sederhana. Berkas plainteks: plain.txt Berkas cipherteks: cipher.txt */
#include <stdio.h> main()
{
FILE *Fin, *Fout; char P, C, K[20]; int n, i; Fin = fopen("plain.txt", "r"); Fout = fopen("cipher.txt", "w");
printf("Kata kunci : "); gets(K);
n = strlen(K); /*panjang kunci*/
i = 0;
while ((P = getc(Fin)) != EOF) {
C = P ^ K[i]; /* operasi XOR */
putc(C, Fout);
i++; if (i > n-1) i = 0; }
fclose(Fin);
/* Dekripsi berkas teks dengan algoritma XOR sederhana. Berkas plainteks: cipher.txt Berkas cipherteks: plain2.txt */
#include <stdio.h> main()
{
FILE *Fin, *Fout; char P, C, K[20]; int n, i; Fin = fopen("cipher.txt", "r"); Fout = fopen("plain2.txt", "w");
printf("Kata kunci : "); gets(K);
n = strlen(K); /*panjang kunci*/
i = 0;
while ((C = getc(Fout)) != EOF) {
P = C ^ K[i]; /* operasi XOR */
putc(P, Fout );
i++; if (i > n-1) i = 0; }
‘15
9
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.id
enk_xor.c
dek_xor.c
Contoh hasil eksekusi program (Kata kunci:
ganesha
):
Pa da wi su da sa rj an a ba ru , te rn ya ta ad a se or an g wi su da wa n ya ng pa li ng mu da . Um ur ny a ba ru 21 ta hu n. In i be ra 79 S S9 H IS Ao9 99S G H HKS=9b EAYA9FA.E SA 9
G(:'y9 9N-GPYE @ES29
99E9 H b A 9H A S K
rt i di a ma su k IT B pa da um ur 17 ta hu n. Za ma n se ka ra ng ba ny ak sa rj an a ma si h be ru si a mu da be li a.
plain.txt
cipher.txt
Program komersil yang berbasis
DOS
atau
Macintosh
menggunakan algoritma
XOR
sederhana ini.
Sayangnya, algoritma
XOR
sederhana tidak aman karena
cipherteksnya mudah dipecahkan.
‘15
11
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.id
kunci adalah sejumlah kecil
byte
):
1.
Cari panjang kunci dengan prosedur
counting coincidence
sbb:
XOR
-kan cipherteks terhadap dirinya sendiri setelah
digeser sejumlah
byte
, dan hitung jumlah
byte
yang sama.
Jika pergeseran itu kelipatan dari panjang kunci (yang tidak
diketahui), maka 6% dari
byte
akan sama. Jika tidak, maka
0.4% akan sama. Angka persentase ini disebut
index of
coincidence
. Pergeseran terkecil mengindikasikan panjang
kunci yang dicari.
2.
Geser cipherteks sejauh panjang kunci dan
XOR
-kan dengan
dirinya sendiri. Operasi ini menghasilkan plainteks yang
ter-XOR
dengan plainteks yang digeser sejauh panjang kunci
tersebut.
Referensi :
http://www.slideshare.net/kyucute/kriptografi‐42572702Ir. Rinaldi Munir, M.T.
MODUL PERKULIAHAN
Kripto
grafi
Modul Standar untuk
digunakan dalam Perkuliahan
di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Teknik Informatika
01
Tim DosenTeori-teori dan fungsi-fungsi yang ada dalam Power Poingt 2010
Mahasiswa memahami teori serta fungsi2 / short key yang ada
Mahasiswa yang awam sekalipun akan mampu untuk membuat slide persentasi melakukan aktifitas yang berhubungan dengan word processor, khususnya MS.Word 2010.
‘15
2
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id Algoritma kriptografi klasik berbasis karakter • Menggunakan pena dan kertas saja, belum ada komputer • Termasuk ke dalam kriptografi kunci‐simetri • Tiga alasan mempelajari algoritma klasik: 1. Memahami konsep dasar kriptografi. 2. Dasar algoritma kriptografi modern. 3. Memahami kelemahan sistem cipher Algoritma kriptografi klasik: 1. Cipher Substitusi (Substitution Ciphers) 2.Cipher Transposisi (Transposition Ciphers)
Algoritma Kriptografi Modern
Pendahuluan
Operasi dalam mode bit berarti semua data dan informasi (baik
kunci, plainteks, maupun cipherteks) dinyatakan dalam
rangkaian (string) bit biner, 0 dan 1. Algoritma enkripsi dan
dekripsi memproses semua data dan informasi dalam bentuk
rangkaian bit. Rangkaian bit yang menyatakan plainteks
dienkripsi menjadi cipherteks dalam bentuk rangkaian bit,
demikian sebaliknya.
Perkembangan algoritma kriptografi modern berbasis bit
didorong oleh penggunaan komputer digital yang
merepresentasikan data dalam bentuk biner.
Diagram blok kriptografi modern (Gambar 8.1)
Secure Network Protocols
Block Cipher Stream Cipher Hash Function Pseudo Random Random Source Elliptic Curve DH RSA Symmetric Key Cryptography Message
Digest IVs Nonces
Secret Keys Public Key Cryptography Encryption MACs MICs Challenge Responses Smart Cards Digital Signatures Confidentiality Data Integrity Authentication Non-Repudiation
Gambar 8.1 Diagram blok kriptografi modern
8.2 Rangkaian bit
Rangkaian bit yang dipecah menjadi blok‐blok bit dapat ditulis
dalam sejumlah cara bergantung pada panjang blok.
Contoh: Plainteks
100111010110
dibagi menjadi blok bit
yang panjangnya 4 menjadi
‘15
4
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
Setiap blok menyatakan bilangan dari
0
sampai
15
, yaitu
9
13
6
Bila plainteks dibagi menjadi blok‐blok berukuran 3 bit:
100 111 010 110
maka setiap blok menyatakan bilangan dari
0
sampai
7
, yaitu
4
7 2
6
Bila panjang rangkaian bit tidak habis dibagi dengan ukuran
blok yang ditetapkan, maka blok yang terakhir ditambah
dengan bit‐bit semu yang disebut padding bits.
Misalnya rangkaian bit di atas dibagi menjadi blok 5‐bit menjadi
10011 10101 00010
Blok yang terakhir telah ditambahkan 3 bit 0 di bagian awal
(dicetak tebal) agar ukurannya menjadi 5 bit.
Padding bits
dapat
mengakibatkan ukuran plainteks hasil dekripsi lebih besar
daripada ukuran plainteks semula.
Cara lain untuk menyatakan rangkaian bit adalah dengan notasi
heksadesimal (HEX). Rangkaian bit dibagi menjadi blok yang
berukuran 4 bit dengan representasi dalam HEX adalah:
0000 = 0 0001 = 1 0010 = 2
0011 = 3
0100 = 4 0101 = 5 0011 = 6
0111 = 7
1000 = 8 1011 = 9 1010 = A
1011 = B
1100 = C 1101 = D 1101 = E
1111 = F
Misalnya, plainteks
100111010110
dibagi menjadi blok bit
yang panjangnya 4 menjadi
1001 1101 0110
yang dalam notasi HEX adalah
‘15
6
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
Operator biner yang sering digunakan dalam
cipher
yang yang
beroperasi dalam mode bit adalah
XOR
atau
exclusive-or
.
Notasi matematis untuk operator
XOR
adalah
(dalam Bahasa
C
, operator
XOR
dilambangkan dengan ^).
Operator
XOR
diperasikan pada dua bit dengan aturan sebagai
berikut:
0
0 = 0
0
1 = 1
1
0 = 1
1
1 = 0
Perhatikan bahwa operator
XOR
identik dengan penjumlahan
modulo 2:
0 + 0 (mod 2) = 0
0 + 1 (mod 2) = 1
1 + 0 (mod 2) = 1
1 + 1 (mod 2) = 0
Misalkan
a
,
b
, dan
c
adalah peubah Boolean. Hukum-hukum
yang terkait dengan operator XOR:
(i)
a
a
= 0
(ii)
a
b
=
b
a
(Hukum komutatif)
(iii)
a
(
b
c
) = (
a
b
)
c
(Hukum asosiatif)
Jika dua rangkaian dioperasikan dengan
XOR
, maka operasinya
dilakukan dengan meng-
XOR
-kan setiap bit yang
berkoresponden dari kedua rangkaian bit tersebut.
Contoh: 10011
11001 = 01010
yang dalam hal ini, hasilnya diperoleh sebagai berikut:
1
0 0 1 1
1
1 0 0 1
1
1 0
1 0
0 1
0 1
1
0
1 0 1 0
Algoritma enkripsi sederhana yang menggunakan
XOR
adalah
dengan meng-
XOR
-kan plainteks (
P
) dengan kunci (
K
)
menghasilkan cipherteks:
C
=
P
K
(8.1)
Karena meng-
XOR
-kan nilai yang sama dua kali berturut-turut
menghasilkan nilai semula, maka dekripsi menggunakan
persamaan:
‘15
8
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
Contoh:
plainteks
01100101
(karakter ‘e’)
kunci
00110101
(karakter ‘5’)
cipherteks
01010000
(karakter ‘P’)
kunci
00110101
(karakter ‘5’)
plainteks
01100101
(karakter ‘e’)
Algoritma enkripsi
XOR
sederhana pada prinsipnya sama
seperti
Vigenere cipher
dengan penggunaan kunci yang
berulang secara periodik. Setiap bit plainteks di-
XOR
-kan
dengan setiap bit kunci.
/* Enkripsi berkas teks dengan algoritma XOR sederhana. Berkas plainteks: plain.txt Berkas cipherteks: cipher.txt */
#include <stdio.h> main()
{
FILE *Fin, *Fout; char P, C, K[20]; int n, i; Fin = fopen("plain.txt", "r"); Fout = fopen("cipher.txt", "w");
printf("Kata kunci : "); gets(K);
n = strlen(K); /*panjang kunci*/
i = 0;
while ((P = getc(Fin)) != EOF) {
C = P ^ K[i]; /* operasi XOR */
putc(C, Fout);
i++; if (i > n-1) i = 0; }
fclose(Fin);
/* Dekripsi berkas teks dengan algoritma XOR sederhana. Berkas plainteks: cipher.txt Berkas cipherteks: plain2.txt */
#include <stdio.h> main()
{
FILE *Fin, *Fout; char P, C, K[20]; int n, i; Fin = fopen("cipher.txt", "r"); Fout = fopen("plain2.txt", "w");
printf("Kata kunci : "); gets(K);
n = strlen(K); /*panjang kunci*/
i = 0;
while ((C = getc(Fout)) != EOF) {
P = C ^ K[i]; /* operasi XOR */
putc(P, Fout );
i++; if (i > n-1) i = 0; }
fclose(Fout); }
fclose(Fout); }
enk_xor.c
dek_xor.c
Contoh hasil eksekusi program (Kata kunci:
ganesha
):
Pa da wi su da sa rj an a ba ru , te rn ya ta ad a se or an g wi su da wa n ya ng pa li ng mu da . Um ur ny a ba ru 21 ta hu n. In i be ra 79 S S9 H IS Ao9 99S G H HKS=9b EAYA9FA.E SA 9
G(:'y9 9N-GPYE @ES29
99E9 H b A 9H A S K
‘15
10
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id di a ma su k IT B pa da um ur 17 ta hu n. Za ma n se ka ra ng ba ny ak sa rj an a ma si h be ru si a mu da be li a.
plain.txt
cipher.txt
Program komersil yang berbasis
DOS
atau
Macintosh
menggunakan algoritma
XOR
sederhana ini.
Sayangnya, algoritma
XOR
sederhana tidak aman karena
cipherteksnya mudah dipecahkan.
Cara memecahkannya adalah sebagai berikut (asumsi: panjang
kunci adalah sejumlah kecil
byte
):
1.
Cari panjang kunci dengan prosedur
counting coincidence
sbb:
XOR
-kan cipherteks terhadap dirinya sendiri setelah
digeser sejumlah
byte
, dan hitung jumlah
byte
yang sama.
Jika pergeseran itu kelipatan dari panjang kunci (yang tidak
diketahui), maka 6% dari
byte
akan sama. Jika tidak, maka
0.4% akan sama. Angka persentase ini disebut
index of
coincidence
. Pergeseran terkecil mengindikasikan panjang
kunci yang dicari.
2.
Geser cipherteks sejauh panjang kunci dan
XOR
-kan dengan
dirinya sendiri. Operasi ini menghasilkan plainteks yang
ter-XOR
dengan plainteks yang digeser sejauh panjang kunci
tersebut.
Referensi :
http://www.slideshare.net/kyucute/kriptografi‐42572702Ir. Rinaldi Munir, M.T.
MODUL PERKULIAHAN
Kripto
grafi
Modul Standar untuk
digunakan dalam Perkuliahan
di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Teknik Informatika
03
Tim DosenPengertian Enkripsi
Kalau kamu berbicara tentang enkripsi, ini adalah sebuah metode yang digunakan
untuk mengirim pesan rahasia. Enkripsi memiliki sejarah yang panjang, bermula saat
orang-orang Yunani dan Romawi saling mengirim pesan rahasia.
Mengapa repot-repot melakukan enkripsi?
Sekarang, dan dapat dipastikan kedepannya akan makin bertambah, Anda memiliki
nomor kartu kredit, nomor rekening, dan lain-lain yang bersifat sensitif. Yang
mengatakan bahwa informasi tersebut harus ada di suatu tempat jika tidak anda
tidak akan pernah bisa menggunakannya. Anda dapat menghafal angka, tetapi Anda
tidak dapat mengandalkan memori Anda sebagai satu-satunya sumber untuk
menyimpan angka dalam jumlah banyak.
Dengan menuliskan angka-angka tersebut menimbulkan resiko mereka bisa dibaca
oleh orang lain. Dengan menggunakan enkripsi adalah cara yang efektif. Dengan
cara itu Anda dapat menuliskan data tersebut setelah mengalami pengkodean dan
tidak perlu khawatir apabila orang lain membacanya.
Contoh skema enkripsi umum
Untuk lebih memberikan gambaran tentang pengertian enkripsi, berikut contoh
skema enkripsi paling sederhana yang sudah lama diketahui umum, enkripsi
alphanumeric. enkripsi ini adalah merubah abjad menjadi angka, contoh kata Happy
Birthday diubah menjadi 81161625 29182084125.
Sejarah Singkat Enkripsi
Jaman dahulu orang Yunani menggunakan tool yang disebut Scytale untuk
‘15
3
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
kertas, menulis pesan dan mengirimkannya.
Metode enkripsi ini sangat mudah dipecahkan, tidak mengherankan karena ini
adalah enkripsi pertama di dunia yang digunakan di dunia nyata.
Julius Caesar menggunakan metode yang agak mirip dengan ini, menggeser setiap
huruf alfabet ke kanan atau ke kiri berdasarkan angka dan posisi. Tekni enkripsi ini
disebut juga Caesar cipher. Sebagai contoh kamu bisa melihat cipher di bawah ini,
ketika ingin menuliskan WINPOIN maka dituliskan ZLQSRLQ.
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC
Hanya para penerima pesan memiliki cipher akan tahu maksut pesan tersebut, akan
sulit orang berikutnya untuk memecahkan kode pesan.
Contoh cipher enkripsi sederhana lainnya adalah Polybius
square menggunakan cipher polyalphabetic yang alfabetnya tertulis di setiap sisi
angka.
Dengan menggunakan metode engkripsi di atas, kalau kamu ingin
menuliskanWINPOIN, berarti enrkipsinya adalah 15 34 52 12 53 34 52.
Kamu udah nonton Imitation Game?? Kamu pasti udah tahu tentang mesin Enigma.
Saat perang dunia ke-2, Jerman menggunakan mesin Enigma untuk bisa lolos dari
transmisi enkripsi bolak balik, butuh waktu bertahun-tahun sebelum Polandia
mampu memecahkan pesan, dan memberikan solusi untuk Sekutu. Membuat mereka
menang dari perang dunia ini.
Sejarah Enkripsi di Era Modern
Hari ini orang orang tidak memiliki metode enkripsi yang baik untuk mengamankan
komunikasi di dunia elektronik.
Lucifer adalah nama yang diberikan beberapa orang block cipher saat awal-awal,
dikembangkan oleh Horst Feistel bersama teman-temannya di IBM.
Data Encryption Standard (DES) adalah sebuah block cipher (bentuk dari enkripsi
rahasia yang dibagikan) dipilih oleh National Bureau of Standards sebagai Federal
Information Processing Standard (FIPS) di Amerika pada tahun 1976 yang kemudian
digunakan secara luas dan mendunia.
‘15
5
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
membuat peneliti software termotivasi untuk mengusulkan berbagai alternatif desain
dari block cipher, muncul pada akhir tahun 1980an dan awal 1990an. Sebagai contoh
ada RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 dan FEAL.
Algoritma enkripsi Rijndael digunakan oleh pemerintahan Amerika sebagai standar
enkripsi sysmmetric-key, atau Advanced Encryption Standard (AES). AES diumumkan
secara resmi oleh National Institute of Standards and Technology (NIST) sebagai U.S.
FIPS PUB 197 (FIPS 197) pada 26 November 2001, setelah 5 tahun proses standarisasi
dimana ada 15 desain block cipher bersaing untuk terpilih menjadi algoritma enkripsi
yang cocok.
Algoritma Adalah Kekuatan untuk Enkripsi
Banyak algoritma enkripsi yang terkenal dan mereka semua memiliki fungsi yang
berbeda-beda. Mereka memiliki dua karakteristik yaitu mengidentifikasi dan yang
membedakan algoritma enkripsi antara satu dengan yang lain adalah kemampuan
untuk melindungi data dari serangan dan kecepatan dan efisiensi dalam melakukan
enkripsi.
Sebagai contoh yang mudah dipahami adalah perbedaan kecepatan antara berbagai
jenis enkripsi, kamu bisa menggunakan tool benchmarking yang ada di TrueCrypt’s
volume creation wizard. Seperti yang kamu lihat, AES sejauh ini adalah tipe enkripsi
tercepat dan terkuat.
Ada metode enkripsi yang cepat dan lambat, dan mereka semua memiliki fungsi
yang berbeda. Jika kamu ingin mencoba untuk melakukan dekripsi data kecil, kamu
bisa menggunakan enkripsi yang kuat atau bahkan melakukan enkripsi dua kali
dengan berbagai jenis enkripsi. Kalau kamu butuh sesuatu yang cepat, kamu bisa
menggunakan AES.
Untuk perbandingan atau benchmark tipe enkripsi, kamu bisa melihat Washington
University of St. Louis, dimana kamu bisa melakukan berbagai test pada rutinitas
yang berbeda dan memiliki penjelasan yang sangat geek.
Jenis-Jenis Enkripsi di Era Modern
Semua algoritma enkripsi yang sudah kita bahas tadi sebagian besar menggunakan
dua jenis enkripsi, yaitu:
Algoritma Symmetric key menggunakan kunci enkripsi yang terkait atau identik
untuk enkripsi dan dekripsi.
Algoritma Asymmetric key menggunakan kunci berbeda untuk enkripsi dan
‘15
7
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
Untuk menjelaskan konsep enkripsi ini, kita akan menggunakan sedikit penjelasan
dariWikipedia untuk memahami bagaimana cara kerja algoritma Symmetric.
Alice menaruh sebuah pesan rahasia di dalam kotak dan mengunci kotak
menggunakan gembok dan ia memiliki kuncinya. Kemudian dia mengirimkan kotak
ke Bob melalui surat biasa. Ketika Bob menerima kotak, ia menggunakan kunci
salinan sama persis yang dimiliki Alice untuk membuka kotak dan membaca pesan.
Bob kemudian dapat menggunakan gembok yang sama untuk membalasa pesan
rahasia.
Dari contoh itu, algoritma sysmmetric-key dapat dibagikan kepada stream cipher dan
block cipher. Stream cipher mengenkripsi satu per satu bit dari pesan, dan block
cipher mengamil beberapa bit, biasanya 64bit dan mengenkripsi mereka menjadi
satu bagian. Ada banyak algoritma berbeda dari symmetric termasuk Twofish,
Serpent, AES (Rijndael), Blowfish, CAST5, RC4, TDES, and IDEA.
Enkripsi Asymmetric key
Pada metode asymmetric key, Bob dan Alice memiliki gembok yang berbeda, bukan
satu gembok dengan beberapa kunci seperti contoh symmetrick key di atas. Tentu
saja contoh ini lebih sederhana daripada yang seharusnya, tapi sebenarnya jauh lebih
rumit.
Pertama Alice meminta Bob untuk mengirim gembok yang terbuka melalui surat
biasa, sehingga ia tidak membagikan kuncinya. Ketika Alice menerimanya, ia
menggunakannya untuk mengunci sebuah kota yang berisi pesan dan mengirimkan
kotak dengan gembok terkunci tadi ke Bob. Bob kemudian membuka kotak dengan
kunci yang ia pegang karena itu gembok miliknya untuk membaca pesan Alice.
Untuk membalasnya, Bob harus meminta Alice untuk melakukan hal yang sama.
Keuntungan dari metode asymmetric key adalah Bob dan Alice tidak pernah berbagi
kunci mereka. Hal ini untuk mencegah pihak ketiga agar tidak menyalin kunci atau
memata-matai pesan Alice dan Bob. Selain itu, jika Bob ceroboh dan membiarkan
orang lain untuk menyalin kuncinya, pesan Alice ke Bob akan terganggu, namun
pesan Alice kepada orang lain akan tetap menjadi rahasia, karena orang lain akan
memberikan gembok milik mereka ke Alice untuk digunakan.
Enkripsi asymmetric menggunakan kunci yang berbeda untuk enkripsi dan dekripsi.
Penerima pesan memiliki sebuah kunci pribadi dan kunci publik. Kunci publik
‘15
9
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
pesan enrkipsi yang telah dienkripsi menggunakan kunci publik si penerima.
Ada satu keuntungan melakukan enkripsi dengan menggunakan metode ini. Kita
tidak perlu mengirim sesuatu yang rahasia (seperti kunci enkripsi kita atau password)
melalui saluran yang tidak aman. Kunci publik kamu akan leihat ke dunia dan itu
bukan rahasia. Kunci rahasia kamu akan tetap aman di komputer kamu, dimana itu
tempatnya.
Bagaimana Keamanan Enkripsi di Bidang Web??
Selama bertahun-tahun, protokol SSL (Secure Sockets Layer) telah mengamankan
transaksi web menggunakan enkripsi antara web browser dan web server,
melindungi kamu dari siapa pun yang mengintai kamu.
SSL sendiri memiliki konsep yang sederhana. Dimulai ketika browser meminta
halaman yang aman (biasanya https://).
Web server mengirimkan kunci publik dengan sertifikat.
Browser memeriksa sertifikat yang dikeluarkan oleh pihak terpercaya (biasanya CA),
bahwa sertifikat tersebut masih berlaku dan sertifikat masih berkaitan dengan web
tersebut.
Browser kemudian menggunakan kunci publik untuk mengenkripsi kunci symmetric
secara acak dan mengirimkannya ke server dengan URL terkenkripsi,membutuhkan
juga enkripsi http data.
Web server mendekripsi enkripsi symmetric key menggunakan kunci pribadi dan
menggunakan kunci sysmmetric untuk mendekripsi URL dan http data.
Web server mengirimkan kembali permintaan dokumen html dan enkripsi http data
dengan browser symmetric key. Browser mendekripsi http data dan dokumen html
mengg unakan symmetric key dan menampilkan informasi.
Perlu pemahaman yang panjang untuk tahu tentang enkripsi dan sedikit cara
kerjanya. Dimulai dari memahami awal mula enkripsi di era Yunani dan Romawi,
kemunculan Lucifer dan sekarang SSL yang menggunakan enkripsi asymmetric dan
symmetric untuk mengamankan kamu dari transaksi apa pun.
Referensi :
http://www.slideshare.net/kyucute/kriptografi‐42572702Ir. Rinaldi Munir, M.T.
http://winpoin.com/winexplain‐apa‐itu‐enkripsi‐dan‐bagaimana‐cara‐kerjanya/
MODUL PERKULIAHAN
Kripto
grafi
Modul Standar untuk
digunakan dalam Perkuliahan
di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Teknik Informatika
04
Tim DosenPembagian Jenis Metode Algoritma Kriptografi
Berawal dari membaca diskusi menarik di sebuah forum programmer web, kemudian
muncul kembali di sebuah forum komunitas linux. Saya memposting pernyataan saya
tentang keheranan saya terhadap orang‐orang yang menyatakan bahwa MD5 bisa di‐
decrypt. Tentunya hanya sebuah status di jejaring sosial Google+. Ternyata postingan
tersebut mendapat respon ketidak‐setujuan beberapa mahasiswa saya terhadap pernyataan
saya. Ya sudahlah, tidak apa‐apa, mereka kan belum pernah dapat kuliah keamanan.
Kali ini saya akan sedikit menjelaskan tentang beberapa jenis metode algoritma enkripsi
atau kriptografi. Setidaknya ada 3 jenis, yakni Symmetric, asymmetric, dan hash function.
Apa perbedaannya?
Algoritma enkripsi symmetric adalah sebuah algoritma di mana kunci pengaman untuk
melakukan enkripsi dan dekripsi adalah satu. Kekurangannya adalah, kita tidak bisa
mengobral kunci pengaman sembarangan. Tapi bagaimanapun, algoritma ini masih dipakai
untuk memproteksi file yang dikompresi, semisal file zip, karena biasanya orang yang
menggunakannya sengaja untuk berbagi di internet, tapi tidak ingin mudah dicari oleh
search engine agar tidak dihapus oleh orang yang melaporkan.
Berbeda dengan metode asymmetric, kunci pengamannya ada 2, yang satu untuk disebar ke
umum, biasa disebut Public Key, yang satunya dirahasiakan, disebut Private Key. Salah satu
kelebihannya adalah bisa digunakan untuk tanda tangan digital, juga bisa digunakan untuk
memastikan bahwa file hanya bisa dibuka oleh orang yang berhak.
Kedua kunci pengaman pada Metode Asymmetric, baik Public Key maupun Private Key bisa
digunakan untuk mengenkripsi maupun mendekripsi file. Jika enkripsi dilakukan dengan
menggunakan Public Key, maka dekripsi hanya bisa dilakukan dengan Private Key, begitu
pula sebaliknya, jika enkripsi dilakukan dengan Private Key, maka hanya bisa dibuka dengan
Public Key.
Sebagai contoh kasus dalam Metode Asymmetric, saya akan menggambarkan pengiriman
data, dari A ke B. Kasus pertama sebagai tanda tangan digital. Maka, A akan mengenkripsi
‘15
3
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.idmembukanya dengan Public Key A. Jika bisa dibuka, maka bisa dipastikan itu dari A.
Adapun penggunaan enkripsi untuk memastikan yang menerima B, maka A akan
mengenkripsi dengan Public Key B. Setelah itu, baru B akan membukanya dengan Private
Key B.
Apabila kedua permasalahan di atas digabung, yakni agar pesan dari A ke B bisa dipastikan
dari A dan bahwa hanya B yang bisa membaca pesan, maka pesan bisa dienkripsi dengan
Private Key A terlebih dahulu, baru kemudian dienkripsi dengan Public Key B. Setelah B
menerima, maka B akan membukanya dengan Private Key B terlebih dahulu, kemudian
mendekripnya lagi dengan Public Key A.
Namun, Metode Asymmetric ini jarang digunakan untuk umum, kecuali dalam kasus
perbankan, dikarenakan begitu kompleknya algoritmanya.
Nah, yang terakhir adalah Hash Function. Hash Function adalah algoritma dimana,
berapapun karakter yang anda masukkan akan dirubah ke dalam susunan karakter sebesar
bit tertentu. Bingung? Saya akan berusaha memberikan permisalan semudah mungkin.
Sebagai misal, sebuah password berupa angka akan diubah ke dalam angka senilai 0‐9.
Password hanya berupa angka. Coba gunakan fungsi berikut:
F = Sum ( Input [0 .. n] )
Hash = F %10
Rumusan di atas bisa dikatakan fungsi Hash sederhana. Katakanlah kita gunakan input
"123", maka nilai Hash‐nya adalah
Hash = ( 1 + 2 + 3 ) % 10 = 6
OK, bagaimana dengan input "1234564"?
Hash = ( 1 + 2 + 3 + 4 + 5 + 6 + 4 ) % 10 = 6
Jadi, begitu banyak macam input, hasilnya bisa memiliki nilai Hash yang sama. Fungsi Hash
biasanya digunakan untuk menyimpan password. Mengapa passwordnya tidak langsung di
simpan saja sebagai teks plain tanpa enkripsi. Tentunya berbahaya, karena administrator
dapat membaca password dengan mudah. Meskipun secara otomatis, admin bisa saja
membaca data yang ada di servernya, tapi ada kecenderungan seorang user menggunakan
password yang sama di tempat lain. Sehingga bisa saja admin membuka login user di luar
wilayah kekuasaanya dengan mencoba password yang terdaftar di servernya.
Mengapa tidak menggunakan enkripsi Symmetric atau Asymmetric? Untuk pengamanan
yang kuat, penggunaan kedua enkripsi tersebut sangat menghabiskan resource server. Lagi
pula, melakukan dekripsi pada password juga tidak terlalu penting. Selain itu, kalau
menggunakan metode Symmetric, admin yang iseng bisa saja melakukan brute force diam‐
diam ke data yang dimilikinya. Jadi, kalau bisa malah dekripsi itu jangan sampai bisa
dilakukan.
Jenis-Jenis Kriptografi
1. Pengertian Kriptografi Hybrid
Sistem ini mengggabungkan chiper simetrik dan asimetrik. Proses ini dimulai dengan negosiasi menggunakan chiper asimetrik dimana kedua belah pihak setuju dengan private key/session key yang akan dipakai. Kemudian session key digunakan dengan teknik chiper simetrik untuk mengenkripsi conversation ataupun tukar-menukar data selanjutnya. Suatu session key hanya dipakai sekali sesi. Untuk sesi selanjutnya session key harus dibuat kembali.
Pendistribusian Key
Dalam pendistribusian suatu key dapat dilakukan dengan bermacam cara misalnya download, diberikan secara langsung dsb. Untuk mencegah pemalsuan key oleh pihak ketiga maka diperlukan adanya certificate.
Protokol penyetujuan key
Atau disebut juga protokol pertukaran key adalah suatu sistem dimana dua pihak bernegosiasi untuk menentukan secret value. Contohnya adalah SSL (secure socket layer).
‘15
5
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.id2. Pengertian Kriptografi Simetris
Disebut sebagai algoritma simetris, karena dalam proses enkripsi dan dekripsinya menggunakan kunci yang sama. Algoritma enkripsi dan deskripsi bias merupakan algoritma yang sudah umum diketahui, namun kunci yang dipakai harus terjaga kerahasiaanya, dan hanya diketahui oleh pihak pengirim dan penerima saja. Kunci ini disebut sebagai private key. Sebelum berkomunikasi
kedua pihak harus bersepakat lebih dahulu tentang kunci yang dipergunakan. Pendistribusian kunci dari satu pihak ke pihak lainnya memerlukan suatu kanal tersendiri yang terjagaan kerahasiaannya. Adapun proses kriptografi simetris dapat kita lihat pada Gambar
Algoritma kunci simetris memiliki beberapa kelebihan dan kekurangan, yakni: Kelebihan :
1. Waktu proses untuk enkripsi dan dekripsi relatif cepat, hal ini disebabkan karena efisiensi yang terjadi pada pembangkit kunci.
2. Karena cepatnya proses enkripsi dan dekripsi, maka algoritma ini dapat digunakan pada sistem secara real-time seperti saluran telepon digital.
Kekurangan :
3. Untuk tiap pasang pengguna dibutuhkan sebuah kunci yang berbeda, sedangkan sangat sulit untuk menyimpan dan mengingat kunci yang banyak secara aman, sehingga akan menimbulkan kesulitan dalam hal manajemen kunci.
4. Perlu adanya kesepakatan untuk jalur yang khusus untuk kunci, hal ini akan menimbulkan masalah yang baru karena tidak mudah u menentukan jalur yang aman untuk kunci, masalah ini sering disebut dengan “Key Distribution Problem”.
5. Apabila kunci sampai hilang atau dapat ditebak maka kriptosistem ini tidak aman lagi. Contoh skema enkripsi kunci simetrik adalah :
a. DES (Data Encryption Standard)
b. IDEA (International Data Encryption Algorithm) c. FEAL
3. Pengertian Kriptografi Asimetris
Algoritma asimetrik disebut juga algoritma kunci publik. Disebut kunci publik karena kunci yang digunakan pada proses enkripsi dapat diketahui oleh orang banyak[1] tanpa membahayakan kerahasiaan kunci dekripsi, sedangkan kunci yang digunakan untuk proses dekripsi hanya diketahui oleh pihak yang tertentu (penerima). Mengetahui kunci publik semata tidak cukup untuk menentukan kunci rahasia. Pasangan kunci publik dan kunci rahasia menentukan sepasang transformasi yang merupakan invers satu sama lain, namun tidak dapat diturunkan satu dari yang lain. Dalam sistem kriptografi kunci publik ini, proses enkripsi dan dekripsi menggunakan kunci yang berbeda, namun kedua kunci tersebut memiliki hubungan matematis (karena itu disebut juga sistem asimetris). Adapun proses kriptografi asimetris secara umum dapat kita lihat pada Gambar
Gambar 2.3 Proses Kriptografi Asimetris
Algoritma kunci asimetris memiliki beberapa kelebihan dan kekurangan, yakni: Kelebihan :
a. Masalah keamanan pada distribusi kunci dapat diatasi.
b. Manajemen kunci pada suatu sistem informasi dengan banyak pengguna menjadi lebih mudah, karena jumlah kunci yang digunakan lebih sedikit.
c. Kekurangan :
a. Kecepatan proses algoritma ini tergolong lambat bila dibandingkan dengan algoritma kunci simetris.
b. Untuk tingkat keamanan yang sama, rata-rata ukuran kunci harus lebih besar bila dibandingkan dengan ukuran kunci yang dipakai pada algoritma kunci simetris.
Contoh skema enkripsi kunci asimetrik adalah [1]: a. DSA (Digital Signature Algorithm)
‘15
7
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.idc. Diffie-Hellman (DH)
Daftar Pustaka:
http://surfwithadi.blogspot.com/2011/03/k-r-i-p-t-o-g-r-f-i.html
Ada banyak sekali cara mendistribusikan kunci, salah satunya adalah melalui
teknikKriptografi Simetris. Dalam teknik ini, maka dibutuhkan orang lain yang terpercaya, mungkin dia adalah Trent. Agar anda dapat mengirim kunci kepada Alice dengan sangat rahasia, maka anda bergantung pada Trent ini.
Inilah prosedur bagaimana algoritma simetris dapat membantu anda: 1. Trent meminta kunci random Anda
2. Trent mengirim kunci “A” yang dienkripsi dengan algoritma tertentu berdasarkan kunci random anda kepada anda.
3. Trent mengirim kunci “B” kepada yang tidak dienrkipsi kepada anda dan kepada Alice 4. Anda mendekripsi kunci “A” dengan kunci random anda, anda mempercayai trent. 5. Anda menuliskan kunci simetris anda yang dienkripsi dengan kunci “B” dan mengirim
kepada Alice
6. Alice mendekripsi kunci simetris dengan kunci “B” dari Trent (yang sudah dipercayai oleh anda)
7. Anda dan Alice dapat berkomunikasi dengan kriptografi simetris.
Jika mungkin anda bertanya: “Kenapa Trent harus membuat kunci “A” padahal kunci tersebut tidak digunakan sama sekali”. Nyatanya, kunci “A” tersebut adalah kunci penting yang memverifikasi bahwa Trent setidaknya adalah Trent yang asli. Hanya Trent dan anda yang tahu kunci “A” yang dienkripsi dengan kunci Random.
Dengan sistem ini pula, maka si Interceptor (orang yang ingin tahu kunci-kunci anda) akan bingung. Dia tidak akan bisa membedakan antara kunci A, kunci B, kunci random, atau kunci simetris yang benar-benar merupakan kunci simetris, ingat, dia tidak tahu bahwa kunci simetris anda adalah kunci simetris. Sehingga, disini akan terdapat sedikit permainan ‘probabilitas’ di pelajaran SMA =D.
Lagian, jika sebuah sistem dapat menggenerate 1000-kunci acak, ini ide yang lebih bagus. Si Interceptor akan kebingungan menggunakan kunci yang mana untuk mendapatkan kunci asli anda,
belum lagi, kunci tersebut didekripsi, sehingga membutuhkan waktu banyak untuk mendekripsi si kunci.
Satu hal yang mengkhawatirkan: jika ternyata Trent adalah orang bermulut besar, dia bisa membobol kunci simetris anda. Karena, dia tahu kunci “B”. Kunci simetris yang anda kirim kepada alice dienkripsi menggunakan kunci “B” bukan? Lha, itulah masalahnya. Are you understand? If not, you can ask here, NOW!
Permasalahan yang menarik pada bidang kemanan informasi adalah adanya trade off antara kecepatan dengan kenyamanan. Semakin aman semakin tidak nyaman, berlaku juga sebaliknya semakin nyaman semakin tidak aman. Salah satu contohnya adalah bidang kriptografi. Tetapi hal ini dapat diatasi dengan penggunaan kriptografi hibrida. Kriptografi hibrida sering dipakai karena memanfaatkan keunggulan kecepatan pemrosesan data oleh algoritma simetrik dan kemudahan transfer kunci menggunakan algoritma asimetrik. Hal ini mengakibatkan peningkatan kecepatan tanpa mengurangi kenyamanan serta keamanan. Aplikasi kriptografi hibrida yang ada saat ini pada
umumnya ditujukan untuk penggunaan umum atau mainstream yang merupakan pengguna komputer. Aplikasi pada umumnya mengikuti perkembangan hardware komputer yang semakin cepat dari waktu ke waktu. Sehingga hardware yang sudah lama tidak dapat difungsikan sebagaimana mestinya. Selain itu banyak perangkat embedded dengan kekuatan pemrosesan maupun daya yang terbatas. Terutama dengan trend akhir akhir ini, hampir semua orang memiliki handheld device yang mempunyai kekuatan terbatas, seperti telepon seluler.
Dalam tugas akhir ini dibahas mengenai perancangan sebuah aplikasi kriptografi hibrida yang ditujukan untuk kalangan tertentu, terutama pemakai hardware dengan kekuatan pemrosesan yang terbatas. Aplikasi yang ingin dicapai adalah aplikasi yang sederhana, ringan dan cepat tanpa mengurangi tingkat keamanan menggunakan hash.
Sistem ini mengggabungkan chiper simetrik dan asimetrik. Proses ini dimulai dengan
negosiasi menggunakan chiper asimetrik dimana kedua belah pihak setuju dengan private key/session key yang akan dipakai. Kemudian session key digunakan dengan teknik chiper simetrik untuk
mengenkripsi conversation ataupun tukar-menukar data selanjutnya. Suatu session key hanya dipakai sekali sesi. Untuk sesi selanjutnya session key harus dibuat kembali.
‘15
9
Kriptografi Pusat Bahan Ajar dan eLearning Tim Dosen http://www.mercubuana.ac.idDalam pendistribusian suatu key dapat dilakukan dengan bermacam cara misalnya download, diberikan secara langsung dsb. Untuk mencegah pemalsuan key oleh pihak ketiga maka diperlukan adanya certificate.
Protokol penyetujuan key
Atau disebut juga protokol pertukaran key adalah suatu sistem dimana dua pihak bernegosiasi untuk menentukan secret value. Contohnya adalah SSL (secure socket layer).
Referensi :
http://www.slideshare.net/kyucute/kriptografi‐42572702
http://winpoin.com/winexplain‐apa‐itu‐enkripsi‐dan‐bagaimana‐cara‐kerjanya/
[1] Childs, Lindsay N. A Concrete Introduction to Higher Algebra. Undergraduate Texts in Mathematics. Springer-Verlaag: New York, 2000.
[2] Schneier, B. Applied Cryptography, 2nd Ed. John Wiley & Sons, Inc: Canada, 1996.
[3] Rivest R.L., Shamir A., Adleman L. "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. MIT: Massachusetts. 1977.
MODUL PERKULIAHAN
Kripto
grafi
Modul Standar untuk
digunakan dalam Perkuliahan
di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Teknik Informatika
05
Tim Dosen‘15
3
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
Pembagian Algoritma Kriptografi
• Algoritma Kunci Simetris
• Algoritma Kunci Asimetris
Algoritma Simetris
Ada dua teknik dalam kriptografi enkripsi simetris: stream cipher dan block cipher.
Stream cipher mengenkripsi satu per satu bit pesan dalam satu waktu, sedangkan block
cipher mengambil sejumlah bit dan mengenkripsi mereka sebagai satu unit.
Algoritma kunci simetris umumnya lebih cepat untuk dijalankan daripada algoritma kunci
simetris
Kerugian untuk algoritma kunci simetris adalah persyaratan menggunakan kunci rahasia
bersama. Kunci rahasia harus dipertukarkan antar pihak melalui saluran yang aman sebelum
enkripsi dapat terjadi.
Data Encryption Standard
DES dikembangkan IBM pada tahun 1975, dan telah bertahan sangat baik terhadap
kriptoanalisis selama bertahun‐tahun.
DES adalah algoritma enkripsi simetris dengan panjang kunci yang tetap 56 bit.
‘15
5
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
serangan brute force yang memiliki sumber daya yang cukup.
DES biasanya beroperasi dalam modus blok, di mana mengenkripsi data dalam blok
64‐bit. Algoritma dan kunci yang sama digunakan untuk enkripsi dan dekripsi.
Karena DES didasarkan pada fungsi‐fungsi matematika sederhana, maka dapat
dengan mudah diimplementasikan dalam hardware.
Triple Data Encryption Standard (3DES)
Salah satu cara efektif untuk meningkatkan panjang kunci DES tanpa mengubah
algoritma itu sendiri adalah dengan menggunakan algoritma yang sama dengan
kunci yang berbeda beberapa kali berturut‐turut.
Menerapkan teknik DES tiga kali berturutturut ke blok teks biasa disebut Triple DES
(3DES)
Ketika sebuah pesan yang akan dienkripsi dengan 3DES, sebuah metode yang disebut EDE
(Encrypt Decrypt Encrypt) digunakan.
EDE metode yang dijelaskan dalam daftar berikut :
1.
Pesan dienkripsi dengan 56‐bit kunci pertama, K1.
2.
Data didekripsi dengan kunci kedua 56‐bit, K2.
3.
Data dienkripsi lagi dengan kunci ketiga 56‐bit, K3.
Prosedur EDE menyediakan enkripsi dengan panjang kunci yang efektif 168 bit. Jika kunci K1
dan K3 adalah sama (seperti dalam beberapa implementasi), enkripsi yang kurang aman
dengan panjang kunci 112 bit tercapai.
Untuk mendekripsi pesan, harus menggunakan prosedur sebagai berikut, yang merupakan
kebalikan dari metode EDE:
1.
Mendekripsi ciphertext dengan kunci K3
2.
Mengenkripsi data dengan kunci K2
3.
Akhirnya, mendekripsi data dengan kunci K1
Mengenkripsi data tiga kali dengan tiga kunci yang berbeda tidak secara signifikan
meningkatkan keamanan.
Metode EDE harus digunakan Mengenkripsi turut dengan 56‐bit yang berbeda sama dengan
panjang kunci yang efektif 58 bit dan bukan 128 bit, seperti yg diharapkan.
‘15
7
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
Referensi :
http://www.slideshare.net/kyucute/kriptografi‐42572702Ir. Rinaldi Munir, M.T.
http://winpoin.com/winexplain‐apa‐itu‐enkripsi‐dan‐bagaimana‐cara‐kerjanya/
MODUL PERKULIAHAN
Kripto
grafi
Modul Standar untuk
digunakan dalam Perkuliahan
di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Teknik Informatika
06
Tim DosenDES ‐Data Encryption Standard‐
Kriptografi merupakan ilmu dan seni untuk menjaga kerahasiaan pesan dengan
cara menyandikannya kebentuk yang tidak dapat dimengerti lagi maknanya. DES (Data
Encryption Standard) merupakan salah satu algoritma standar yang ada. DES merupakan
block cipher 16 ronde yang memiliki struktur Feistel dan memiliki masukan/keluaran 64 bit,
serta memiliki kunci sepanjang 56 bit. Dengan struktur Feistel, algoritma enkripsi memiliki
struktur yang sama dengan yang untuk dekripsi. Perbedaannya hanya terletak pada urutan
subkey yang dimasukkan.
APA ITU DES?
DES merupakan salah satu algoritma kriptografi cipher block dengan ukuran blok 64 bit
dan ukuran kuncinya 56 bit. Algoritma DES dibuat di IBM, dan merupakan modifikasi
daripada algoritma terdahulu yang bernama Lucifer. Lucifer merupakan algoritma cipher
block yang beroperasi pada blok masukan 64 bit dan kuncinya berukuran 28 bit.
Pengurangan jumlah bit kunci pada DES dilakukan dengan alasan agar mekanisme algoritma
ini bisa diimplementasikan dalam satu chip.
DES pertama kali dipublikasikan di Federal Register pada 17 Maret 1975. Setelah
melalui banyak diskusi, akhirnya algortima DES diadopsi sebagai algoritma standar yang
digunakan oleh NBS (National Bureau of Standards) pada 15 Januari 1977. Sejak saat itu, DES
banyak digunakan pada dunia penyebaran informasi untuk melindungi data agar tidak bisa
dibaca oleh orang lain. Namun demikian, DES juga mengundang banyak kontroversi dari
para ahli di seluruh dunia. Salah satu kontroversi tersebut adalah S‐Box yang digunakan
pada DES. S‐Box merupakan bagian vital dari DES karena merupakan bagian yang paling sulit
dipecahkan. Hal ini disebabkan karena S‐Box merupakan satu – satunya bagian dari DES
yang komputasinya tidak linear. Sementara itu, rancangan dari S‐Box sendiri tidak
diberitahukan kepada publik. Karena itulah, banyak yang curiga bahwa S‐Box dirancang
sedemikian rupa sehingga memberikan trapdoor kepada NSA agar NSA bisa membongkar
semua ciphertext yang dienkripsi dengan DES kapan saja.
‘15
3
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
Kontroversi yang kedua adalah jumlah bit pada kunci DES yang dianggap terlalu kecil, hanya
56 bit. Akibatnya DES rawan terhadap serangan brute force. Walaupun terdapat
kerawanan tersebut, DES tetap digunakan pada banyak aplikasi seperti pada enkripsi PIN
(Personal Identification Numbers) pada mesin ATM (Automatic Teller Machine) dan
transaksi perbankan lewat internet. Bahkan, organisasi – organisasi pemerintahan di
Amerika seperti Department of Energy, Justice Department, dan Federal Reserve System
menggunakan DES untuk melindungi penyebaran data mereka.
SKEMA GLOBAL DES
Pada sekitar akhir tahun 1960, IBM melakukan riset pada bidang kriptografi yang pada
akhirnya disebut Lucifer. Lucifer dijual pada tahun 1971 pada sebuah perusahaan di London.
Lucifer merupakan algoritma berjenis Block Cipher yang artinya bahwa input maupun
output dari algoritma tersebut merupakan 1 blok yang terdiri dari banyak bit seperti 64 bit
atau 128 bit. Lucifer beroperasi pada blok input 64 bit dan menggunakan key sepanjang 128
bit. Lama kelamaan Lucifer semakin dikembangkan agar bisa lebih kebal terhadap serangan
analisis cypher tetapi panjang kuncinya dikurangi menjadi 56 bit dengan maksud supaya
dapat masuk pada satu chip. Di tempat yang lain, biro standar amerika sedang mencari‐cari
sebuah
algoritma
enkripsi
untuk
dijadikan
sebagai
standar
nasional.IBM
mencoba mendaftarkan algoritmanya dan di tahun 1977 algoritma tersebut dijadikan
sebagai DES (Data Encryption Standard). Algoritma ini telah disetujui oleh National Bureau
of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA)
Amerika Serikat. DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis
cipher blok. DES beroperasi pada ukuran blok 64 bit dan mengenkripsikan 64 bit plainteks
menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau sub‐
kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang
panjangnya 64 bit. Skema global dari algoritma DES adalah sebagai berikut:
1.
Blok plainteks dipermutasi dengan matriks permutasi awal (initial
permutation atau IP).
2.
Hasil permutasi awal kemudian di‐enciphering‐ sebanyak 16 kali (16 putaran).
Setiap putaran menggunakan kunci internal yang berbeda.
3.
Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan
(invers initial permutation atau IP‐1 ) menjadi blok cipherteks.
ENKRIPSI DES
Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan
(R), yang masing‐masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran
DES. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang
disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f
di‐XOR‐kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru
langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES. Secara lengkap
proses Enkripsi dengan menggunakan DES ditunjukan pada skema berikut :
‘15
5
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
Algoritma DES memerlukan sebuah kunci yang panjang bloknya 64 bit di setiap blok
DES digunakan untuk mengamankan data pada perangkat lunak dan keras negara tersebut.
Berikut desain input‐output algoritma DES
‘15
7
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id
bit dan kunci dengan panjang 56‐bit. Untuk mengenkripsi data dengan menggunakan
algoritma DES, dimulai dengan membagi bit dari teks tersebut kedalam blok‐blok dengan
ukuran blok sebesar 64‐bit, yang kemudian disebut blok plaintext. Adapun penjelasan
langkah‐langkah enkripsi DES dijelaskan sebagai berikut :
A. Permutasi Awal
Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial
permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan
bit‐biit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks
permutasi awal berikut ini:
B. Pembangkitan Kunci Internal
Pada proses enchipering akan dilakukan proses pemutaran sebanyak 16 kali, oleh karena
itu dibutuhkan 16 buah kunci. 16 buah kunci tersebut dibangkitkan dari kunci eksternal.
Masukan kunci (input key) K dispesifikasikan sebagai 64‐bit kunci (key), kunci eksternal ini
akan menjadi masukan untuk permutasi dengan menggunakan matriks permutasi choice
one (PC‐1) berikut ini:
‘15
9
Kriptografi Pusat Bahan Ajar dan eLearningTim Dosen http://www.mercubuana.ac.id