14
MAKALAH ALGORITMA SHA (SECURE HASH ALGORITHM) Dibuat untuk memenuhi Tugas Mata Kuliah Cryptographi Dosen: Iwan Abadi Disusun oleh: 1. Deni Arip Wijaya NIM:104060121 2. Deden Julian NIM:104060055 3. Nana Kusdiana NIM: A. PENDAHULUAN Kemajuan di bidang telekomunikasi dan komputer telah memungkinkan seseorang untuk melakukan transaksi bisnis secara cashless, selain itu ia juga dapat mengirimkan informasi kepada temannya secara on-line. Kegiatan-kegiatan tersebut tentu saja akan menimbulkan resiko bilamana informasi yang sensitif dan berharga tersebut diakses oleh orang-orang yang tidak berhak (unauthorized persons). Misalnya, informasi mengenai nomor kartu kredit anda, bila informasi ini jatuh kepada orang- orang yang jahat maka anda harus bersiap-siap terhadap melonjaknya tagihan kartu kredit anda. Sebelum tahun 1970-an, teknologi kriptografi digunakan terbatas hanya untuk tujuan militer dan diplomatik. Akan tetapi kemudian bidang bisnis dan perorangan mulai menyadari pentingnya melindungi informasi berharga. Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan dilakukan oleh cryptographer. Sedang, cryptanalysis adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut cryptanalyst. Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut

Algoritma SHA - Mata Kuliah Kriptografi

Embed Size (px)

DESCRIPTION

Algoritma SHA - Mata Kuliah Kriptografi

Citation preview

Page 1: Algoritma SHA - Mata Kuliah Kriptografi

MAKALAH ALGORITMA SHA (SECURE HASH ALGORITHM)

Dibuat untuk memenuhi Tugas Mata Kuliah Cryptographi

Dosen: Iwan Abadi

Disusun oleh:

1. Deni Arip Wijaya NIM:104060121

2. Deden Julian NIM:104060055

3. Nana Kusdiana NIM:

A. PENDAHULUAN

Kemajuan di bidang telekomunikasi dan komputer telah memungkinkan

seseorang untuk melakukan transaksi bisnis secara cashless, selain itu ia juga

dapat mengirimkan informasi kepada temannya secara on-line.

Kegiatan-kegiatan tersebut tentu saja akan menimbulkan resiko bilamana

informasi yang sensitif dan berharga tersebut diakses oleh orang-orang yang

tidak berhak (unauthorized persons). Misalnya, informasi mengenai nomor kartu

kredit anda, bila informasi ini jatuh kepada orang-orang yang jahat maka anda

harus bersiap-siap terhadap melonjaknya tagihan kartu kredit anda.

Sebelum tahun 1970-an, teknologi kriptografi digunakan terbatas hanya

untuk tujuan militer dan diplomatik. Akan tetapi kemudian bidang bisnis dan

perorangan mulai menyadari pentingnya melindungi informasi berharga.

Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan

dilakukan oleh cryptographer. Sedang, cryptanalysis adalah suatu ilmu dan seni

membuka (breaking) ciphertext dan orang yang melakukannya disebut

cryptanalyst.

Cryptographic system atau cryptosystem adalah suatu fasilitas untuk

mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini,

seperangkat parameter yang menentukan transformasi pencipheran tertentu

disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau

beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk

proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada

sistem yang digunakan.

Gb. 1. Proses Enkripsi/Dekripsi Sederhana

Page 2: Algoritma SHA - Mata Kuliah Kriptografi

Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara

matematis sebagai berikut :

EK (M) = C  (Proses Enkripsi)

DK (C) = M  (Proses Dekripsi)

Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K

lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut

diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang

sama seperti pesan sebelumnya.

Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun

kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang

digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat

dipublikasikan dan dianalisis, serta produk-produk yang menggunakan

algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila

seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui

kunci yang dipakai, ia tetap tidak dapat membaca pesan.

1. Cryptographic system (cryptosystem)

Suatu cryptosystem terdiri dari sebuah algoritma, seluruh kemungkinan

plaintext, ciphertext dan kunci-kunci. Secara umum cryptosystem dapat

digolongkan menjadi dua buah, yaitu :

a. Symmetric Cryptosystem

Dalam symmetric cryptosystem ini, kunci yang digunakan untuk proses

enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci

dapat pula diturunkan dari kunci yang lainnya. Kunci-kunci ini harus

dirahasiakan. Oleh karena itulah sistem ini sering disebut sebagai

secret-key ciphersystem. Jumlah kunci yang dibutuhkan umumnya

adalah :

nC2  = n . (n-1)

          --------

       2

dengan n menyatakan banyaknya pengguna.

b. Assymmetric Cryptosystem

Dalam assymmetric cryptosystem ini digunakan dua buah kunci. Satu

kunci yang disebut kunci publik (public key) dapat dipublikasikan,

sedang kunci yang lain yang disebut kunci privat (private key) harus

Page 3: Algoritma SHA - Mata Kuliah Kriptografi

dirahasiakan. Proses menggunakan sistem ini dapat diterangkan secara

sederhana sebagai berikut : bila A ingin mengirimkan pesan kepada B, A

dapat menyandikan pesannya dengan menggunakan kunci publik B,

dan bila B ingin membaca surat tersebut, ia perlu mendekripsikan surat

itu dengan kunci privatnya. Dengan demikian kedua belah pihak dapat

menjamin asal surat serta keaslian surat tersebut, karena adanya

mekanisme ini.

Setiap cryptosytem yang baik harus memiliki karakteristik sebagai berikut :

Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada

kerahasiaan algoritma yang digunakan.

Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.

Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak

dalam seluruh tes statistik yang dilakukan terhadapnya.

Cryptosystem yang baik mampu menahan seluruh serangan yang telah

dikenal sebelumnya

Namun demikian perlu diperhatikan bahwa bila suatu cryptosystem

berhasil memenuhi seluruh karateristik di atas belum tentu ia

merupakan sistem yang baik. Banyak cryptosystem lemah yang terlihat

baik pada awalnya. Kadang kala untuk menunjukkan bahwa suatu

cryptosystem kuat atau baik dapat dilakukan dengan menggunakan

pembuktian matematika.

Hingga saat ini masih banyak orang yang menggunakan cryptosystem

yang relatif mudah dibuka, alasannya adalah mereka tidak mengetahui

sistem lain yang lebih baik serta kadang kala terdapat motivasi yang

kurang untuk menginvestasikan seluruh usaha yang diperlukan untuk

membuka suatu sistem.

2. Berbagai macam basic cryptanalytic attacks

Tujuan cryptanalytic attack adalah untuk mengetahui beberapa

plaintext yang sesuai dengan ciphertext yang ada dan berusaha

menentukan kunci yang memetakan satu dengan yang lainnya. Plaintext

ini dapat diketahui karena ia merupakan standar  atau karena

pendugaan. Jika suatu teks diduga berada di dalam suatu pesan,

posisinya mungkin tidak diketahui, tetapi suatu pesan lazimnya cukup

pendek sehingga memungkinkan cryptanalyst menduga plaintext yang

diketahui dalam setiap posisi yang mungkin dan melakukan penyerangan

pada setiap kasus secara paralel.

Page 4: Algoritma SHA - Mata Kuliah Kriptografi

Suatu algoritma enkripsi yang kuat tidak hanya mampu bertahan

terhadap serangan plaintext yang dikenal tetapi juga mampu bertahan

terhadap adaptive chosen plaintext. Dalam penyerangan ini, cryptanalyst

berkesempatan memilih plaintext yang digunakan dan dapat

melakukannya secara berulang kali, memilih plaintext untuk tahap N+1

setelah menganalisis hasil tahap N.

Yang dimaksud cryptanalytic attacks adalah usaha-usaha yang

dilakukan seseorang untuk memperoleh informasi ataupun data yang

telah dienkripsi. Secara ringkas terdapat tujuh macam basic cryptanalytic

attacks  berdasarkan tingkat kesulitannya bagi penyerang, dimulai dari

yang paling sulit adalah :

Ciphertext-only attack. Dalam penyerangan ini, seorang

cryptanalyst memiliki ciphertext dari sejumlah pesan yang

seluruhnya telah dienkripsi menggunakan algoritma yang sama.

Known-plaintext attack. Dalam tipe penyerangan ini, cryptanalyst

memiliki akses tidak hanya ke ciphertext sejumlah pesan, namun ia

juga memiliki plaintext pesan-pesan tersebut.

Chosen-plaintext attack. Pada penyerangan ini, cryptanalyst tidak

hanya memiliki akses atas ciphertext dan plaintext untuk beberapa

pesan, tetapi ia juga dapat memilih plaintext yang dienkripsi.

Adaptive-chosen-plaintext attack. Penyerangan tipe ini merupakan

suatu kasus khusus chosen-plaintext attack. Cryptanalyst tidak

hanya dapat memilih plaintext yang dienkripsi, ia pun memiliki

kemampuan untuk memodifikasi pilihan berdasarkan hasil enkripsi

sebelumnya. Dalam chosen-plaintext attack, cryptanalyst mungkin

hanya dapat memiliki plaintext dalam suatu blok besar untuk

dienkripsi; dalam adaptive-chosen-plaintext attack ini ia dapat

memilih blok plaintext yang lebih kecil dan kemudian memilih yang

lain berdasarkan hasil yang pertama, proses ini dapat dilakukannya

terus menerus hingga ia dapat memperoleh seluruh informasi.

Chosen-ciphertext attack. Pada tipe ini, cryptanalyst dapat memilih

ciphertext yang berbeda untuk didekripsi dan memiliki akses atas

plaintext yang didekripsi.

Chosen-key attack. Cryptanalyst pada tipe penyerangan ini

memiliki pengetahuan tentang hubungan antara kunci-kunci yang

berbeda.

Page 5: Algoritma SHA - Mata Kuliah Kriptografi

Rubber-hose cryptanalysis. Pada tipe penyerangan ini, cryptanalyst

mengancam, memeras, atau bahkan memaksa seseorang hingga

mereka memberikan kuncinya.

Berdasarkan bagaimana cara dan posisi seseorang mendapatkan

pesan-pesan dalam saluran komunikasi, penyerangan dapat

dikategorikan menjadi:

Sniffing: secara harafiah berarti mengendus, tentunya dalam hal ini

yang diendus adalah pesan (baik yang belum ataupun sudah

dienkripsi) dalam suatu saluran komunikasi. Hal ini umum terjadi

pada saluran publik yang tidak aman. Sang pengendus dapat

merekam pembicaraan yang terjadi.

Replay attack [DHMM 96]: Jika seseorang bisa merekam pesan-

pesan handshake (persiapan komunikasi), ia mungkin dapat

mengulang pesan-pesan yang telah direkamnya untuk menipu

salah satu pihak.

Spoofing [DHMM 96]: Penyerang – misalnya Maman – bisa

menyamar menjadi Anto. Semua orang dibuat percaya bahwa

Maman adalah Anto. Penyerang berusaha meyakinkan pihak-pihak

lain bahwa tak ada salah dengan komunikasi yang dilakukan,

padahal komunikasi itu dilakukan dengan sang penipu/penyerang.

Contohnya jika orang memasukkan PIN ke dalam mesin ATM palsu

– yang benar-benar dibuat seperti ATM asli – tentu sang penipu

bisa mendapatkan PIN-nya dan copy pita magentik kartu ATM milik

sang nasabah. Pihak bank tidak tahu bahwa telah terjadi kejahatan.

Man-in-the-middle [Schn 96]: Jika spoofing terkadang hanya

menipu satu pihak, maka dalam skenario ini, saat pihak pertama

hendak berkomunikasi dengan pihak kedua, pihak ketiga di mata

pihak pertama seolah-olah adalah pihak kedua, dan pihak ketiga

dapat pula menipu pihak kedia sehingga pihak ketiga seolah-olah

adalah pihak pertama. Pihak ketiga dapat berkuasa penuh atas jalur

komunikas ini, dan bisa membuat berita fitnah.

Page 6: Algoritma SHA - Mata Kuliah Kriptografi

B. PEMBAHASAN

SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan digunakan

bersama DSS (Digital Signature Standard). Oleh NSA, SHA dinyatakan sebagai

standard fungsi hash satu-arah. SHA didasarkan pada MD4 yang dibuat oleh

Ronald L. Rivest dari MIT.

SHA disebut aman (secure) karena ia dirancang sedemikian sehingga

secara komputasi tidak mungkin menemukan pesan yang berkoresponden

dengan message digest yang diberikan.

Algoritma SHA menerima masukan berupa pesan dengan ukuran

maksimum 264 bit (2.147.483.648 gigabyte) dan menghasilkan message

digest yang panjangnya 160 bit, lebih panjang dari message digest yang

dihasilkan oleh MD5

Gambaran pembuatan message digest dengan algoritma SHA

diperlihatkan pada Gambar 1.

Gambar 1. Pembuatan message digest dengan algoritma SHA

Langkah-langkah pembuatan message digest secara garis besar adalah

sebagai berikut:

Penambahan bit-bit pengganjal (padding bits).

Penambahan nilai panjang pesan semula.

Inisialisasi penyangga (buffer) MD.

Pengolahan pesan dalam blok berukuran 512 bit.

1. Penambahan Bit-bit Pengganjal

Page 7: Algoritma SHA - Mata Kuliah Kriptografi

Pesan ditambah dengan sejumlah bit pengganjal sedemikian

sehingga panjang pesan (dalam satuan bit) kongruen dengan 448

modulo 512. Ini berarti panjang pesan setelah ditambahi bit-bit

pengganjal adalah 64 bit kurang dari kelipatan 512. Angka 512 ini

muncul karena SHA memperoses pesan dalam blok-blok yang berukuran

512.

Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-bit

pengganjal. Jika panjang pesan 448 bit, maka pesan tersebut ditambah

dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah

antara 1 sampai 512.

Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit

0.

2. Penambahan Nilai Panjang Pesan Semula

Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi

dengan 64 bit yang menyatakan panjang pesan semula.

Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi

512 bit.

3. Inisialisai Penyangga MD

SHA membutuhkan 5 buah penyangga (buffer) yang masing-masing

panjangnya 32 bit (MD5 hanya mempunyai 4 buah penyangga). Total

panjang penyangga adalah 5 32 = 160 bit. Keempat penyangga ini

menampung hasil antara dan hasil akhir.

Kelima penyangga ini diberi nama A, B, C, D, dan E. Setiap penyangga

diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut:

A = 67452301

B = EFCDAB89

C = 98BADCFE

D = 10325476

E = C3D2E1F0

4. Pengolahan Pesan dalam Blok Berukuran 512 bit.

Pesan dibagi menjadi L buah blok yang masing-masing panjangnya

512 bit (Y0 sampai YL – 1).

Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi

keluaran 128-bit, dan ini disebut proses HSHA. Gambaran proses HSHA

Page 8: Algoritma SHA - Mata Kuliah Kriptografi

diperlihatkan pada Gambar 2.

Gambar 2. Pengolahan blok 512 bit (Proses HSHA)

Proses HSHA terdiri dari 80 buah putaran (MD5 hanya 4 putaran), dan

masing-masing putaran menggunakan bilangan penambah Kt, yaitu:

Putaran 0 t 19 Kt = 5A827999

Putaran 20 t 39 Kt = 6ED9EBA1

Putaran 40 t 59 Kt = 8F1BBCDC

Putaran 60 t 79 Kt = CA62C1D6

Pada Gambar 2, Yq menyatakan blok 512-bit ke-q dari pesan yang telah

ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula.

MDq adalah nilai message digest 160-bit dari proses HSHA ke-q. Pada awal

proses, MDq berisi nilai inisialisasi penyangga MD.

Setiap putaran menggunakan operasi dasar yang sama (dinyatakan

sebagai fungsi f). Operasi dasar SHA diperlihatkan pada Gambar 3.

Page 9: Algoritma SHA - Mata Kuliah Kriptografi

Gambar 3. Operasi dasar SHA dalam satu putaran (fungsi f)

Operasi dasar SHA yang diperlihatkan pada Gambar 3 dapat ditulis

dengan persamaan sebagai berikut:

a, b, c, d, e (CLS5(a) + ft(b, c, d) + e + Wt + Kt), a, CLS30(b), c, d

yang dalam hal ini,

a, b, c, d, e = lima buah peubah penyangga 32-bit

(berisi nilai penyangga A, B, C, D, E)

t = putaran, 0 t 79

ft = fungsi logika

CLSs = circular left shift sebanyak s bit

Wt = word 32-bit yang diturunkan dari blok 512 bit yang

sedang diproses

Kt = konstanta penambah

+ = operasi penjumlahan modulo 232

atau dapat dinyatakan dalam kode program berikut:

Page 10: Algoritma SHA - Mata Kuliah Kriptografi

for t 0 to 79 do

TEMP (a <<< 5) + ft(b, c, d) + e + Wt + Kt)

e d

d c

c b <<< 30

b a

a TEMP

endfor

yang dalam hal ini, <<< menyatakan operasi pergeseran circular left shift.

Fungsi ft adalah fungsi logika yang melakukan operasi logika bitwise.

Operasi logika yang dilakukan dapat dilihat pada Tabel 1.

Tabel 1. Fungsi logika ft pada setiap putaran

Putaran ft(b, c, d)

0 .. 19 (b c) (~b d)

20 .. 39 b c d

40 .. 59 (b c) (b d) (c d)

60 .. 79 b c d

Catatan: operator logika AND, OR, NOT, XOR masing-masing

dilambangkan dengan , , ~,

Nilai W1 sampai W16 berasal dari 16 word pada blok yang sedang

diproses, sedangkan nilai Wt berikutnya didapatkan dari persamaan

Wt = Wt – 16 Wt – 14 Wt – 8 Wt – 3

Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E

dan selanjutnya algoritma memproses untuk blok data berikutnya (Yq+1).

Keluaran akhir dari algoritma SHA adalah hasil penyambungan bit-bit di A, B,

C, D, dan E.

C. KESIMPULAN

Page 11: Algoritma SHA - Mata Kuliah Kriptografi

Berdasarkan pembahasan bab-bab sebelumnya, maka dapat ditarik

kesimpulan sebagai berikut:

1. Suatu sistem pengamana data dapat dibuat dengan menggunakan

berbagai macam algoritma yang salahsatunya dibahas oleh penulis yaitu

Algoritma SHA (Secure Hash Algorithm).

2. Sistem otentikasi menggunakan algoritma SHA dapat meningkatkan

keamanan pada data.