Tanda Tangan Digital (Digital Signature) RSA + SHA-1 Dyah Fajar Nur Rohmah Mulyanto Neng Ika Kurniati Rachmat Wahid Saleh Insani Semuel Hendricard Samadara Siti Puspita Hida Sakti MZ Sumiyatun Teotino Gomez Soares Victoria Diana V. Latumeten Vittalis Ayu Yoga Dwitya Pramudita Natalis Ransi
Neng Ika Kurniati Latar Belakang Sejak jaman dahulu, tanda tangan sudah digunakan untuk otentikasi dokumen cetak Tanda tangan mempunyai karakteristik: - Tanda tangan adalah bukti yang otentik - Tanda tangan tidak dapat dilupakan - Tanda tangan tidak dapat dipindah untuk digunakan ulang - Dokumen yang telah ditandatangani tidak dapat diubah - Tanda tangan tidak dapat disangkal (non repudiation) Page 2
Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk otentikasi pada data digital (pesan, dokumen elektronik). Tanda tangan untuk data digital dinamakan tanda tangan digital (digital signature) Tanda tangan digital bukanlah tulisan tanda tangan yang di-digitisasi (discan) Page 3
Tanda tangan digital adalah nilai kriptografis yang bergantung pada isi pesan dan kunci. Tanda tangan pada dokumen cetak selalu sama, apa pun isi dokumennya. Tanda tangan digital selalu berbeda-beda antara satu isi dokumen dengan dokumen lain. Page 4
Aspek Keamanan Kriptografi Kerahasiaan (confidentiality) : menjaga isi pesan dari siapapun yang tidak berhak membacanya penyandian Integritas data (data integrity) : menjamin pesan masih asli atau belum pernah dimanipulasi selama pengiriman Otentikasi (authentication) : identifikasi kebenaran pihak-pihak yang berkomunikasi. Nir Penyangkalan (non-repudiation) : mencegah entitas yang berkomunikasi melakukan penyangkalan Page 5
Contoh Kepada Yth. Bapak Dekan Di Tempat Dengan hormat. Bersama surat ini saya ingin mengabarkan bahwa nilai skripsi mahasiswa yang bernama Faisal Saleh dengan NIM 13902021 adalah 86,5 atau dalam nilai indeks A. Sidang skripsi sudah dilakukan pada Hari Rabu Tanggal 21 Januari 20 Juli 2005. Atas perhatian Bapak saya ucapkan terima kasih. 25 Juli 2005 Dosen Pembimbing Skripsi Ir. Ahmad Agus -----BEGIN PGP SIGNATURE----- iqa/awuaqnibsbpbxejk4bb3eqjxvqcg8zn6ul0xnwbtpr5 FfWNt4uxh3AEAn2NC/G2VTUrLpcSyo2l/S/D/+rUl=pZeh -----END PGP SIGNATURE----- Page 6
Siti Puspita Hida Sakti MZ Penandatanganan Pesan Menandatangani pesan dapat dilakukan dengan 2 cara, yaitu: 1. Enkripsi pesan Mengenkripsi pesan dengan sendirinya juga menyediakan otentikasi. Pesan yang terenkripsi menyatakan bahwa pesan tersebut telah ditandatangani. 2. Tanda tangan digital dengan fungsi hash Tanda tangan digital dibangkitkan dari hash terhadap pesan. Nilai hash adalah kode ringkas dari pesan. Tanda tangan digital ditambahkan (append) pada pesan. Page 7
Penandatanganan Kriptografi Menggunakan Kunci Publik dan Fungsi Hash Penandatanganan pesan dengan cara enkripsi selalu memberikan dua fungsi berbeda: kerahasiaan pesan dan otentikasi pesan Pada beberapa kasus, seringkali otentikasi yang diperlukan, tetapi kerahasiaan pesan tidak. Maksudnya, pesan tidak perlu dienkripsi, sebab yang dibutuhkan hanya keotentikan pesan saja. Algoritma kunci publik dan fungsi hash dapat digunakan untuk kasus seperti ini. Page 8
Skema Penandatangan dan Verifikasi Page 9
Victoria Diana V. Latumeten Fungsi Hash Fungsi hash: fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi string yang panjangnya tetap (fixed). Umumnya berukuran jauh lebih kecil dari ukuran string semula kompresi Jika string menyatakan message, maka sembarang pesan M berukuran sembarang dikompresi oleh fungsi hash H melalui persamaan: h = H(M) Keluaran fungsi hash disebut nilai-hash (hash value) atau pesan ringkas (message digest) Page 10
Fungsi Hash Satu Arah (One-way hash) Fungsi hash satu arah adalah fungsi hash yang bekerja dalam satu arah. Pesan yang sudah diubah menjadi pesan-ringkas tidak dapat dikembalikan lagi menjadi pesan semula. Contoh fungsi hash satu arah: MD5 dan SHA. MD5 menghasilkan pesan-ringkas berukuran 128 bit. SHA menghasilkan pesan-ringkas berukuran 160 bit. Page 11
Sifat-sifat fungsi Hash Fungsi H dapat diterapkan pada blok data berukuran berapa saja. H menghasilkan nilai-hash(h) dengan panjang tetap (fixed-length output). H(x) mudah dihitung untuk setiap nilai x yang diberikan. Untuk setiap h yang dihasilkan, tidak mungkin dikembalikan nilai x sedemikian sehingga H(x) = h. Itulah sebabnya fungsi H dikatakan fungsi hash satu arah (one-way hash function). Untuk setiap x yang diberikan, tidak mungkin mencari y x sedemikian sehingga H(y) = H(x). Tidak mungkin (secara komputasi) mencari pasangan x dan y sedemikian sehingga H(x) = H(y). Page 12
Sebuah fungsi hash seharusnya berlaku seperti fungsi acak. Sebuah fungsi hash dianggap tidak aman jika: - Secara komputasi dimungkinkan pesan yang bersesuaian dengan pesanringkasnya. - Terjadi kolisi (collision), yaitu terdapat beberapa pesan yang mempunyai pesan ringkas sama. - Masukkan fungsi hash adalah blok pesan (M) dan keluaran dari hashing blok pesan sebelumnya. h i = H(M i, h i-1 ) Page 13
Sumiyatun Secure Hash Algorithm (SHA) Ditemukan oleh National Institute of Standard and Technology (NIST) tahun 1993, merupakan pengembangan dari MD5. Tahun 1995, dikembangkan menjadi SHA-1 Varian SHA: SHA-1, SHA-224, SHA-256, SHA-512. SHA dianggap secure karena dirancang sedemikian rupa sehingga secara komputasi tidak mungkin menemukan pesan yang berkorespondensi dengan message digest yang diberikan. Page 14
SHA-1 Menerima masukan pesan M, dengan panjang maksimal 2 64 bit, ukuran blok pesan 512 bit. Terdapat tiga elemen: 1. Message schedule : terdiri dari word-word (setiap word berukuran 32 bit). Diperoleh dari membagi pesan yang sudah diformat menjadi masing-masing berukuran 32 bit, yang ditulis sebagai W 0, W 1,..., W 79. 2. Buffer: terdiri dari lima buah variabel yang setiap variabelnya berukuran 32- bit, ditulis sebagai a, b, c, d dan e. 3. Nilai hash : sebanyak lima buah masing-masing berukuran 32-bit, ditulis sebagai H 0 (i), H 1 (i), H 2 (i), H 3 (i) dan H 4 (i) Page 15
Preprocessing SHA-1 1. Memformat pesan - Pesan harus diformat terlebih dahulu agar dapat dihitung nilai hash-nya. - Pada SHA-1, pesan diformat dengan menambahkan bit agar panjangnya 512-bit. - Misalkan panjang pesan M adalah l, maka tambahkan bit 1 di bagian akhir pesan dan sejumlah k bit nol, k sendiri didapat dari l + 1 + k = 448 (mod 512) dimana k adalah positif terkecil. - Pesan kemudian ditambahkan lagi sejumlah 64-bit yang nilainya sama dengan panjang l. Page 16
Contoh Pesan abc memiliki panjang 3 x 8-bit = 24 bit. a = 01100001 b = 01100010 c = 01100011 Tambahkan bit 1 pada bagian akhir pesan, diikuti dengan 448 (24 +1) = 423 bit 0. Contoh format pesan 423 64 01100001 01100010 01100011 1 00... 00 00... 011000 a b c l=24 Page 17
Inisialisasi Buffer SHA membutuhkan 5 buah buffer yang masing-masing panjangnya 32 bit (MD5 hanya mempunyai 4 buah buffer). Total panjang buffer adalah 5 32 = 160 bit. Buffer ini menampung hasil antara dan hasil akhir. Kelima penyangga diberi nama A, B, C, D, dan E. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi hexadesimal) sebagai berikut: A : 67452301 B : EFCDAB89 C : 98BADCFE D : 10325476 E : C3D2E1F0 Page 18
Vittalis Ayu Perhitungan Nilai Hash Pengolahan pesan dalam blok berukuran 512-bit Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512-bit (Y 0 sampai Y L-1 ) Setiap blok 512-bit diproses bersama dengan buffer menjadi keluaran 128-bit, dan ini disebut proses H SHA Putaran H SHA terdiri dari 80 putaran (MD5 hanya 4 putaran). Page 19
Masing-masing putaran menggunakan bilangan penambah K t, yaitu: - Putaran 0 t 19 K t = 5A827999 - Putaran 20 t 39 K t = 6ED9EBA1 - Putaran 40 t 59 K t = 8F1BBCDC - Putaran 60 t 79 K t = CA62C1D6 Pada gambar, Y q menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit padding dan tambahan 64 bit nilai panjang pesan semula. MD q adalah nilai message digest 160-bit dari proses H SHA ke-q. Pada awal proses, MD q berisi nilai inisialisasi buffer MD. Page 20
Operasi Dasar SHA-1 dalam satu putaran Setiap putaran menggunakan operasi dasar yang sama. a, b, c, d, e (CLS 5 (a) + f t (b, c, d) + e + W t + K t ), a, CLS 30 (b), c, d t : putaran 0 t 79 f t : fungsi logika CLS : circular left shift sebanyak s bit. W : word 32-bit yang diturunkan dari blok 512-bit yang sedang diproses. K t : konstanta penambah + : operasi penjumlahan dalam modulo 232. Page 21
Fungsi f t adalah fungsi logika yang melakukan operasi logika bitwise. f t (b, c, d) = (b c) ( c d) untuk 0 t 19 f t (b, c, d) = (b c d) untuk 20 t 39 f t (b, c, d) = (b c) (b d) (c d) untuk 40 t 59 f t (b, c, d) = (b c d) untuk 60 t 79 Nilai W 1 sampai W 16 berasal dari 16 word pada blok yang sedang diproses, sedangkan nilai W t berikutnya diperoleh dari persamaan: W t=16 W t-14 W t-8 W t-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 (Y q+1 ). Keluaran akhir dari algoritma SHA adalah hasil penyambungan bit-bit di A, B, C, D, dan E. Page 22
Contoh Perhitungan Misalkan pesan berupa ASCII binary code abc 01100001 01100010 01100011 Panjang pesan l = 24, selanjutnya di-append 1 diikuti 423 0. Selanjutnya di-append dengan panjang message, yaitu 24 (...011000) sepanjang 64-bit Bagi ke dalam blok-blok word hexadesimal W[0] = 61626380 W[6] = 00000000 W[11] = 00000000 W[1] = 00000000 W[7] = 00000000 W[12] = 00000000 W[2] = 00000000 W[8] = 00000000 W[13] = 00000000 W[3] = 00000000 W[9] = 00000000 W[14] = 00000000 W[4] = 00000000 W[10] = 00000000 W[15] = 00000018 W[5] = 00000000 Page 23
Nilai hex A, B, C, D, E untuk t = 0..79 Page 24
Block 1 setelah diproses Setelah semua nilai variable sudah ditentukan, selanjutnya kita akan menentukan nilai hash akhir untuk blok ke-1: H 0 (1) = A + H 0 (i-1) = 67452301 + 42541B35 = A9993E36 H 1 (1) = B + H 1 (i-1) = EFCDAB89 + 5738D5E1 = 4706816A H 2 (1) = C + H 2 (i-1) = 98BADCFE + 21834873 = BA3E2571 H 3 (1) = D + H 3 (i-1) = 10325476 + 681E6DF6 = 7850C26C H 4 (1) = E + H 4 (i-1) = C3D2E1F0 + D8FDF6AD = 9CD0D89D. Message digest = A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D Page 25
Setelah mengulangi langkah sebanyak blok pesan N maka nilai hash akhir digabungkan sehingga dihasilkan nilai sebagai nilai hash akhir sebanyak 160-bit. Page 26
Dyah Fajar Nur Rohmah Metode RSA (Ringkasan) Page 27
Page 28
Enter your title here. It is also possible to have 2 lines of text. Enter your subtitle here This is a dummy text. Please ignore the following content as it is dummy text. This is definitely some dummy text. The text here is meaningless as it is used to fill this slide. Replace this dummy text with our own text. This is a dummy text. Please ignore the following content as it is dummy text. This is definitely some dummy text. The text here is meaningless as it is used to fill this slide. Replace this dummy text with our own text. Here comes your footer Page 29
Enter your title here Enter your subtitle here Enter your title here This is a dummy text. Please ignore the following content as it is dummy text. This is definitely some dummy text. The text here is meaningless as it is used to fill this slide. Enter your title here This is a dummy text. Please ignore the following content as it is dummy text. This is definitely some dummy text. The text here is meaningless as it is used to fill this slide. Here comes your footer Page 30