Digital Signature Standard (DSS)

dokumen-dokumen yang mirip
Digital Signature Algorithm (DSA)

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

Tanda Tangan Digital (Digital Signature)

Bab 2 Tinjauan Pustaka 2.1. Penelitian Terdahulu

Implementasi ECDSA untuk Verifikasi Berkas Berukuran Besar dengan Menggunakan Merkle Tree

PENGGUNAAN DIGITAL SIGNATURE DALAM SURAT ELEKTRONIK DENGAN MENYISIPKANNYA PADA DIGITIZED SIGNATURE

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Fungsi Hash Satu-Arah dan Algoritma MD5

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Otentikasi dan Tandatangan Digital (Authentication and Digital Signature)

STUDI PENCARIAN KOLISI PADA SHA-1 OLEH XIAOYUN WANG dkk.*

Pemanfaatan Metode Pembangkitan Parameter RSA untuk Modifikasi SHA-1

PEMBUATAN TANDA TANGAN DIGITAL MENGGUNAKAN DIGITAL SIGNATURE ALGORITHM

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Tanda Tangan Digital untuk Pengecekan Keaslian Data pada Perpustakaan Digital

Implementasi SHA, Algoritma HAJ, dan Algoritma RSA pada BlackBerry Messanger

PENGGUNAAN FUNGSI HASH SATU-ARAH UNTUK ENKRIPSI DATA

Algoritma RSA dan ElGamal

Studi Perancangan Algoritma Fungsi Hash

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

Algoritma MD5. Bahan Kuliah IF3058 Kriptografi. Rinaldi Munir/Teknik Informatika STEI-ITB 1

Studi dan Implementasi RSA, SHA-1, TimeStamp Untuk penangangan Non Repudiation

PERANCANGAN PEMBANGKIT TANDA TANGAN DIGITAL MENGGUNAKAN DIGITAL SIGNATURE STANDARD (DSS) Sudimanto

Analisis Beberapa Fungsi Hash dan Implementasi Fungsi Hash pada Protokol SMTP

BAB 2 LANDASAN TEORI

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

Analisis Cara Kerja Beragam Fungsi Hash Yang Ada. Christian Angga

Tandatangan Digital. Yus Jayusman STMIK BANDUNG

BAB II TINJAUAN PUSTAKA

Protokol Kriptografi

BAB I PENDAHULUAN. dengan cepat mengirim informasi kepada pihak lain. Akan tetapi, seiring

Kriptografi Elliptic Curve Dalam Digital Signature

Tanda Tangan Digital Majemuk dengan Kunci Publik Tunggal dengan Algoritma RSA dan El Gamal

Algoritma Kriptografi Modern (AES, RSA, MD5)

Algoritma MAC Berbasis Jaringan Syaraf Tiruan

Penerapan digital signature pada social media twitter

Algoritma QR Code Digital Signature dengan Memanfaatkan Fingerprint

Message Authentication Code (MAC) Pembangkit Bilangan Acak Semu

Departemen Teknik Informatika Institut Teknologi Bandung 2004

PERANCANGAN DAN IMPLEMENTASI DSA (DIGITAL SIGNATURE ALGORITHM) MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

Algoritma Pendukung Kriptografi

Implementasi Tandatangan Digital Kunci-Publik pada Berkas Gambar dengan Format JPEG

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

ALGORITMA MAC BERBASIS FUNGSI HASH SATU ARAH

FUNGSI HASH PADA KRIPTOGRAFI

Sistem Kriptografi Kunci-Publik

Implementasi Secure Hash Algorithm-1 Untuk Pengamanan Data Dalam Library Pada Pemrograman Java

Perancangan Kios Buku Online Dengan Menerapkan Algoritma MD5 Dalam Pengamanan Record Login

Pembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256)

Studi dan Aplikasi Verifiable Ring Signature dengan Menggunakan Fungsi Hash SHA-256

Keamanan Transaksi Internet Banking

Modifikasi SHA-1 Untuk Mengurangi Hash collision

IMPLEMENTASI SECURE HASH ALGORITHM (SHA) DAN SUBSTITUSI MONO ALFABET DALAM SISTEM PENGAMANAN DATA SKRIPSI RAJA SALOMO TARIGAN

ALGORITMA MD5 DIBAWAKAN OLEH KELOMPOK 6 TUGAS KEAMANAN INFORMASI

Perbandingan HMAC SHA-512 dan HMAC RIPEMD-160 dengan Penggunaan Kunci Bilangan Acak

PROTOKOL KEAMANAN DOKUMEN DIGITAL PADA SISTEM E-PROCUREMENT MENGGUNAKAN AES, RSA, DAN SHA1 PERMADHI SANTOSA

Kriptografi Modern Part -1

Studi dan Analisis Perbandingan Antara Algoritma El Gamal dan Cramer-Shoup Cryptosystem

BAB II LANDASAN TEORI

Analisis Keamanan Penggunaan Kunci Publik dan Privat pada Digital Signature untuk Aplikasi Blackberry

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

Tanda-Tangan Digital, Antara Ide dan Implementasi

Bab 1 PENDAHULUAN. 1.1 Latar Belakang

STUDI PENERAPAN HTTP DIGEST AUTHENTICATION UNTUK PENGGUNA PADA PROXY SERVER DENGAN DATABASE LDAP

PENGUJIAN INTEGRITAS DATA MENGGUNAKAN ALGORITMA MD5

Implementasi MD5 Hash dengan Random Salt serta Analisis Keamanannya

BAB III ANALISIS DAN PERANCANGAN

Perbandingan Tanda Tangan Digital RSA dan DSA Serta Implementasinya untuk Antisipasi Pembajakan Perangkat Lunak

PENGUJIAN INTEGRITAS DATA MENGGUNAKAN ALGORITMA MD5

DESAIN DAN IMPLEMENTASI PROTOKOL KRIPTOGRAFI UNTUK APLIKASI SECURE CHAT PADA MULTIPLATFORM SISTEM OPERASI

APLIKASI PENGAMANAN FILE DENGAN ALGORITMA AES256 DAN SHA1

DIGITAL CERTIFICATE & DIGITAL SIGNATURE

Analisis Implementasi Algoritma Kunci Publik pada Tanda Tangan Digital

BAB I PENDAHULUAN. Universitas Sumatera Utara

Implementasi SHA untuk Komparasi File

Undeniable Signature

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Kriptografi Modern Part -1

Implementasi ECDSA pada Audio Digital

Adi Shamir, one of the authors of RSA: Rivest, Shamir and Adleman

Pengembangan dan Implementasi Algoritma Tiger

RSA (Rivest, Shamir, Adleman) Encryption

APLIKASI KRIPTOGRAFI DALAM PGP UNTUK KERAHASIAAN

TEKNIK DASAR KRIPTOGRAFI. Algoritma Kriptografi Modern (Bagian 1) Substitusi. Tabel Subsitusi. Substitusi Blocking Permutasi Ekspansi Pemampatan

ALGORITMA RIPEMD. Roland L. Bu'ulölö

Sistem Autentikasi Pengunggahan File dengan Algoritma ECDSA

Perbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna

STUDI ALGORITMA ADLER, CRC, FLETCHER DAN IMPLEMENTASI PADA MAC

PENERAPAN GRUP MULTIPLIKATIF ATAS TANDA TANGAN DIGITAL ELGAMAL

DIGITAL SIGNATURE UNTUK VALIDASI IJAZAH SECARA ONLINE

KRIPTANALISIS TERHADAP FUNGSI HASH

Kegunaan Chinese Remainder Theorem dalam Mempercepat dan Meningkatkan Efisiensi Peforma Sistem Kriptografi RSA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

Penerapan Skema Tanda Tangan Schnorr pada Pembuatan Tanda Tangan Digital. Implementation of Schnorr Signature Scheme in The Form of Digital Signature

Transkripsi:

Bahan Kuliah ke-19 IF5054 Kriptografi Digital Signature Standard (DSS) Disusun oleh: Ir. Rinaldi Munir, M.T. Departemen Teknik Informatika Institut Teknologi Bandung 2004

19. Digital Signature Standard (DSS) 19.1 Pendahuluan Pada bulan Agustus 1991, NIST (The National Institute of Standard and Technology) mengumumkan bakuan (standard) untuk tanda-tangan digital yang dinamakan Digital Signature Standard (DSS). DSS terdiri dari dua komponen: 1. Algoritma tanda-tangan digital yang disebut Digital Signature Algorithm (DSA). 2. Fungsi hash standard yang disebut Secure Hash Algorithm (SHA). DSS adalah standard, sedangkan DSA adalah algoritma. Standard tersebut menggunakan algoritma DSA untuk penandatanganan pesan dan SHA untuk membangkitkan message digest dari pesan. 19.2 Digital Standard Algorithm (DSA) DSA termasuk ke dalam algoritma kriptografi kunci-publik. DSA tidak dapat digunakan untuk enkripsi; DSA dispesifikasikan khusus untuk tanda-tanagn digital. DSA mempunyai dua fungsi utama: 1. Pembentukan tanda-tangan (signature generation), dan 2. Pemeriksaan keabsahan tanda-tangan (signature verification). Rinaldi Munir - IF5054 Kriptografi 1

Sebagaimana halnya pada algoritma kriptografi kunci-publik, DSA menggunakan dua buah kunci, yaitu kunci publik dan kunci privat. Pembentukan tanda-tangan menggunakan kunci rahasia privat, sedangkan verifikasi tanda-tangan menggunakan kunci publik pengirim. DSA menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi message digest yang berukuran 160 bit (SHA akan dijelaskan pada upa-bab 19.3). 19.3.1 Parameter DSA DSA dikembangkan dari algoritma ElGamal. DSA mempunyai properti berupa parameter sebagai berikut: 1. p, adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512 L 1024 dan L harus kelipatan 64. Parameter p bersifat publik dan dapat digunakan bersamasama oleh orang di dalam kelompok. 2. q, bilangan prima 160 bit, merupakan faktor dari p 1. Dengan kata lain, (p 1) mod q = 0. Parameter q berisfat publik. 3. g = h (p 1)/q mod p, yang dalam hal ini h < p 1 sedemikian sehingga h (p 1)/q mod p > 1. Parameter g bersifat publik. 4. x, adalah bilangan bulat kurang dari q. Parameter x adalah kunci privat. 5. y = g x mod p, adalah kunci publik. 6. m, pesan yang akan diberi tanda-tangan. Rinaldi Munir - IF5054 Kriptografi 2

19.3.2 Prosedur Pembangkitan Sepasang Kunci 1. Pilih bilangan prima p dan q, yang dalam hal ini (p 1) mod q = 0. 2. Hitung g = h (p 1)/q mod p, yang dalam hal ini 1 < h < p 1 dan h (p 1)/q mod p > 1. 3. Tentukan kunci privat x, yang dalam hal ini x < q. 4. Hitung kunci publik y = g x mod p. Jadi, prosedur di atas menghasilkan: kunci publik dinyatakan sebagai (p, q, g, y); kunci privat dinyatakan sebagai (p, q, g, x). 19.3.3 Prosedur Pembangkitan Tanda-tangan (Signing) 1. Ubah pesan m menjadi message digest dengan fungsi hash SHA, H. 2. Tentukan bilangan acak k < q. 3. Tanda-tangan dari pesan m adalah bilangan r dan s. Hitung r dan s sebagai berikut: r = (g k mod p) mod q s = (k 1 (H(m) + x * r)) mod q 4. Kirim pesan m beserta tanda-tangan r dan s. Rinaldi Munir - IF5054 Kriptografi 3

19.3.4 Prosedur Verifikasi Keabsahan Tanda-tangan (Verifying) 1. Hitung w = s 1 mod q u 1 = (H(m) * w) mod q u 2 = (r * w) mod q v = ((g u1 * y u2 ) mod p) mod q) 2. Jika v = r, maka tanda-tangan sah, yang berarti bahwa pesan masih asli dan dikirim oleh pengirim yang benar. 19.3.5 Contoh Perhitungan DSA a. Prosedur Pembangkitan Sepasang Kunci 1. Pilih bilangan prima p dan q, yang dalam hal ini (p 1) mod q = 0. p = 59419 q = 3301 (memenuhi 3301 * 18 = 59419 1) 2. Hitung g = h (p 1)/q mod p, yang dalam hal ini 1 < h < p 1 dan h (p 1)/q mod p > 1. g = 18870 (dengan h = 100) 3. Tentukan kunci rahasia x, yang dalam hal ini x < q. x = 3223 4. Hitung kunci publik y = g x mod p. y = 29245 Rinaldi Munir - IF5054 Kriptografi 4

b. Prosedur Pembangkitan Tanda-tangan (Signing) 1. Hitung nilai hash dari pesan, misalkan H(m) = 4321 2. Tentukan bilangan acak k < q. k = 997 k 1 = 2907 (mod 3301) 3. Hitung r dan s sebagai berikut: r = (g k mod p) mod q = 848 s = (k 1 (H(m) + x * r)) mod q = 7957694475 mod 3301 = 183 4. Kirim pesan m dan tanda-tangan r dan s. c. Prosedur Verifikasi Keabsahan Tanda-tangan 1. Hitung s 1 = 469 (mod 3301) w = s 1 mod q = 469 u 1 = (H(m) * w) mod q 2026549 mod 3301 = 3036 u 2 = (r * w) mod q = 397712 mod 3301 = 1592 v = ((g u1 * y u2 ) mod p) mod q) = 848 mod 3301 = 848 2. Karena v = r, maka tanda-tangan sah. Rinaldi Munir - IF5054 Kriptografi 5

19.3.6 Implementasi DSA Adanya batasan bahwa nilai p mempunyai panjang 512 sampai 1024 bit dan q 160-bit, menyebabkan DSA hampir tidak mungkin diimplementasikan dalam perangkat lunak. Panjang bit yang besar ini dimaksudkan agar upaya untuk memecahkan parameter yang lain sangat sulit dilakukan Compiler C hanya sanggup menyatakan bilangan bulat hingga 2 32. Oleh karena itu, bila DSA diimplementasikan dalam perangkat lunak, batasan panjang bit p dan q diubah hingga maksimum nilai p dan q adalah 2 32. 19.4 Secure Hash Algorithm (SHA) 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 rupa sehingga secara komputasi tidak mungkin menemukan pesan yang berkoresponden dengan message digest yang diberikan. Algoritma SHA menerima masukan berupa pesan dengan ukuran maksimum 2 64 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 19.1. Rinaldi Munir - IF5054 Kriptografi 6

L x 512 bit = N x 32 bit K bit < 2 64 Padding bits K (1-512 bit) Pesan 1000...000 Panjang Pesan 512 512 512 512 Y 0 Y 1... Y q... Y L - 1 512 512 512 512 ABCD H SHA H SHA 160 160 160 H SHA 160 160 160 H SHA 160 Message Digest Gambar 19.1. Pembuatan message digest dengan algoritma SHA Langkah-langkah pembuatan message digest secara garis besar adalah sebagai berikut: 1. Penambahan bit-bit pengganjal (padding bits). 2. Penambahan nilai panjang pesan semula. 3. Inisialisasi penyangga (buffer) MD. 4. Pengolahan pesan dalam blok berukuran 512 bit. 19.4.1. Penambahan Bit-bit Pengganjal 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. Rinaldi Munir - IF5054 Kriptografi 7

Pesan dengan panjang 448 bit pun tetap ditambah dengan bitbit 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. 19.4.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. 19.4.3. Inisialisai Penyangga MD SHA membutuhkan 5 buah penyangga (buffer) yang masingmasing 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 MD 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 Rinaldi Munir - IF5054 Kriptografi 8

19.4.4. 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 penyangga MD menjadi keluaran 128-bit, dan ini disebut proses H SHA. Gambaran proses H SHA diperlihatkan pada Gambar 19.2. Y q 512 MD q A B C D E ABCDE f ( ABCDE, Yq, K 0) A B C D E ABCDE f ( ABCDE, Yq, K1)... A B C D E ABCDE f ( ABCDE, Yq, K 79) + + + + 160 MD q + 1 Gambar 19.2. Pengolahan blok 512 bit (Proses H SHA ) Rinaldi Munir - IF5054 Kriptografi 9

Proses H SHA terdiri dari 80 buah putaran (MD5 hanya 4 putaran), dan masing-masing putaran menggunakan bilangan penambah K t, yaitu: Putaran 0 t 19 Putaran 20 t 39 Putaran 40 t 59 Putaran 60 t 79 K t = 5A827999 K t = 6ED9EBA1 K t = 8F1BBCDC K t = CA62C1D6 Pada Gambar 19.2, Y q menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal 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 penyangga MD. Setiap putaran menggunakan operasi dasar yang sama (dinyatakan sebagai fungsi f). Operasi dasar SHA diperlihatkan pada Gambar 19.3. Rinaldi Munir - IF5054 Kriptografi 10

a i-1 b i-1 c i-1 d i-1 e i-1 f t + CLS 5 + W t + CLS 30 K t + a i b i c i d i e i Gambar 19.3. Operasi dasar SHA dalam satu putaran (fungsi f) Operasi dasar SHA yang diperlihatkan pada Gambar 19.3 dapat ditulis dengan persamaan sebagai berikut: a, b, c, d, e (CLS 5 (a) + f t (b, c, d) + e + W t + K t ), a, CLS 30 (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 f t = fungsi logika Rinaldi Munir - IF5054 Kriptografi 11

CLS s = circular left shift sebanyak s bit W t = word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses K t = konstanta penambah + = operasi penjumlahan modulo 2 32 atau dapat dinyatakan dalam kode program berikut: for t 0 to 79 do TEMP (a <<< 5) + f t (b, c, d) + e + W t + K t ) e d d c c b <<< 30 b a a TEMP endfor yang dalam hal ini, <<< menyatakan operasi pergeseran circular left shift. Fungsi f t adalah fungsi logika yang melakukan operasi bitwise. Operasi bitwise yang dilakukan dapat dilihat pada Tabel 1. Rinaldi Munir - IF5054 Kriptografi 12

Tabel 1. Fungsi logika f t pada setiap putaran Putaran f t (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 W 1 sampai W 16 berasal dari 16 word pada blok yang sedang diproses, sedangkan nilai W t berikutnya didapatkan dari persamaan W t = 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. Rinaldi Munir - IF5054 Kriptografi 13