Implementasi SHA untuk Komparasi File

dokumen-dokumen yang mirip
Algoritma QR Code Digital Signature dengan Memanfaatkan Fingerprint

Pengembangan dan Implementasi Algoritma Tiger

LUX HASH FUNCTION. Brian Al Bahr NIM: Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung

Studi Perancangan Algoritma Fungsi Hash

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

Implementasi ECDSA untuk Verifikasi Berkas Berukuran Besar dengan Menggunakan Merkle Tree

Pemanfaatan Metode Pembangkitan Parameter RSA untuk Modifikasi SHA-1

Perbandingan Algoritma Pencarian Kunci di dalam Himpunan Terurut Melalui Linear Search dan Binary Search

Implementasi MD5 Hash dengan Random Salt serta Analisis Keamanannya

DIGITAL SIGNATURE UNTUK VALIDASI IJAZAH SECARA ONLINE

Digital Signature Standard (DSS)

Penerapan digital signature pada social media twitter

Optimasi Konversi String Biner Hasil Least Significant Bit Steganography

Analisis Cara Kerja Beragam Fungsi Hash Yang Ada. Christian Angga

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

Penerapan Algoritma Pencocokan String Boyer-Moore untuk Keamanan Komputer

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

VISUAL KRIPTOGRAFI PADA TEKS

Studi Penggunaan SHA Pada Identifikasi E-KTP Indonesia

Implementasi CubeHash dalam Digital Signature dan Perbandingannya dengan Fungsi Hash Lain

PENGGUNAAN FUNGSI HASH SATU-ARAH UNTUK ENKRIPSI DATA

Penerapan Fungsi Hash dalam Penempatan Parkir Mobil

Penanganan Kolisi pada Fungsi hash dengan Algoritma Pengembangan Vigenere Cipher (menggunakan Deret Fibonacci)

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

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

Pengembangan Fungsi Random pada Kriptografi Visual untuk Tanda Tangan Digital

Analisis Penggunaan Fungsi Hash pada Activation Key untuk Autentikasi Pendaftaran Akun

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

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

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

PENGAKSESAN DAUN SECARA RANDOM PADA HASH TREE

Penggunaan Algoritma Divide and Conquer Dalam Pewarnaan Graf

Penentuan Hubungan Kompleksitas Algoritma dengan Waktu Eksekusi pada Operasi Perkalian

Analisis Beberapa Fungsi Hash dan Implementasi Fungsi Hash pada Protokol SMTP

Strategi Optimized Brute Force Pada Tent Puzzle Solver

Tanda Tangan Digital untuk Pengecekan Keaslian Data pada Perpustakaan Digital

Kriptografi Elliptic Curve Dalam Digital Signature

Algoritma Message Authentication Code (MAC) dan Perbandingan Metode Penyerangannya

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

Modifikasi Cipher Block Chaining (CBC) MAC dengan Penggunaan Vigenere Cipher, Pengubahan Mode Blok, dan Pembangkitan Kunci Berbeda untuk tiap Blok

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Key Strengthening Menggunakan KD5 Eko Budhi Susanto 1

TRIPLE STEGANOGRAPHY

Aplikasi Fungsi Hash MD5 untuk Pengecekan Konten Laman Website

Implementasi Pohon Keputusan untuk Membangun Jalan Cerita pada Game Engine Unity

Analisis dan Perbandingan Algoritma Whirlpool dan SHA- 512 sebagai Fungsi Hash

Modifikasi SHA-1 Untuk Mengurangi Hash collision

Digital Signature Algorithm (DSA)

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

Penerapan Algoritma LZW (Lempel-Ziv-Welch) pada Program Pemampat File

Penggunaan Nilai Hash untuk Sinkronisasi Direktori pada Layanan Cloud Storage

Deteksi Plagiarisme Gambar menggunakan Algoritma Pencocokan Pola Rabin-Karp

Aplikasi UMAC pada Instant Messaging

Penerapan Fuzzy Logic untuk Pembatasan Jumlah Partikel Pada Aplikasi yang Menggunakan Sistem Partikel

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

Aplikasi Algoritma Greedy dalam Kompresi Dokumen Teks

Pembangkitan Bilangan Acak Dengan Metode Lantai Dan Modulus Bertingkat

STUDI DAN MODIFIKASI MD5 UNTUK MENGATASI KOLISI DAN IMPLEMENTASINYA DALAM SITUS JEJARING SOSIAL. Arief Latu Suseno NIM:

STUDI ALGORITMA ADLER, CRC, FLETCHER DAN IMPLEMENTASI PADA MAC

Algoritma Fungsi Hash Baru dengan Menggabungkan MD5, SHA-1 dan Penyertaan Panjang Pesan Asli

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

Yama Fresdian Dwi Saputro Pendahuluan

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PENGGUNAAN DIGITAL SIGNATURE DALAM SURAT ELEKTRONIK DENGAN MENYISIPKANNYA PADA DIGITIZED SIGNATURE

Perbandingan Algoritma Fungsi Hash MD5 dengan SHA-1

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

BAB III ANALISA DAN PERANCANGAN

Fungsi Hash dan Metode Collision Resolution

Pengaplikasian Algoritma Knuth-Morris-Pratt dalam Teknik Kompresi Data

Penerapan Algoritma Knuth Morris Pratt dalam Aplikasi Penerjemah Teks

Rancangan Protokol dan Implementasi Website checker Berbasis Tanda Tangan Digital

Analisis Fungsi Hash MD6

MULTI DIGITAL SIGNATURE PADA VIDEO, AUDIO, DAN SUBTITLE

Analisis Penggunaan Algoritma RSA untuk Enkripsi Gambar dalam Aplikasi Social Messaging

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

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Modifikasi Proses SHA-1 Berdasarkan Pembangkitan Bilangan Acak

Aplikasi Teori Graf dalam Penggunaan Cairan Pendingin pada Proses Manufaktur

IF3051 Strategi Algoritma Penerapan Algoritma Greedy untuk Peletakan Tanaman dalam Game Harvest Moon: Back to Nature

Algoritma MAC Berbasis Jaringan Syaraf Tiruan

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC

Percobaan Perancangan Fungsi Pembangkit Bilangan Acak Semu serta Analisisnya

Pemecahan Masalah Longest Increasing Subsequence Memanfaatkan Program Dinamis dan Binary Search

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Penerapan Pengkodean Huffman dalam Pemampatan Data

Analisis Penerapan Algoritma MD5 Untuk Pengamanan Password

PENERAPAN GRUP MULTIPLIKATIF ATAS TANDA TANGAN DIGITAL ELGAMAL

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

Penerapan Algoritma Greedy untuk Permainan Halma

OPTIMASI KONVERSI STRING BINER HASIL LEAST SIGNIFICANT BIT STEGANOGRAPHY (LSB)

Studi dan Implementasi Algoritma kunci publik McEliece

Pengenalan Trie dan Aplikasinya

ALGORITMA MAC BERBASIS FUNGSI HASH SATU ARAH

BEA A New Block Cipher Algorithm

Pendekatan Algoritma Divide and Conquer pada Hierarchical Clustering

Studi, Perbandingan Metode Steganografi, dan Metode Steganalisis pada Berkas HTML

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Implementasi Struktur Data Rope menggunakan Binary Tree dan Aplikasinya dalam Pengolahan Teks Sangat Panjang

Fungsi Hash. Bahan Kuliah IF3058 Kriptografi. Rinaldi Munir/Teknik Informatika STEI-ITB

Transkripsi:

Implementasi SHA untuk Komparasi File Biolardi Yoshogi and 13509035 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia vsio@students.itb.ac.id Abstract Memeriksa apakah suatu file telah dimodifikasi atau tidak, telah banyak digunakan dalam kehidupan seharihari seperti file share(jika hasil modifikasi beda, maka dicommit), compile bahasa pemrograman seperti bahasa ADA (Jika hasil modifikasi sama, akan muncul pesan up-to-date), pengecekan sebuah file apakah mengandung virus atau tidak pada file yang tidak perlu dimodifikasi lagi, dan lain-lain. Untuk memeriksa suatu file apakah telah dimodifikasi atau belum, bisa dengan menggunakan fungsi perbandingan string untuk perkarakter atau panjang string. Akan tetapi, jika file yang ingin dibandingkan lebih dari satu, tentu saja kompleksitas waktunya akan menjadi lebih tinggi. Hal ini membuat mesin harus beroperasi lebih banyak. Waktu yang digunakan pun semakin lebih lama. Belum lagi kecepatan komputer yang digunakan bisa berbeda-beda untuk tiap komputer. Hal ini membuat metode tersebut menjadi kurang efektif dan efisien, sedangkan ukuran file yang akan dimasukin bisa besar (dari Mega hingga Giga pada umumnya). Masalah ini, bisa diselesaikan dengan memanfaatkan fungsi hash. Salah satunya adalah fungsi SHA (Secure Hash Algorithm). Dengan menggunakan fungsi SHA sebagai hash-nya pada file original, akan didapat message-digest-nya. Message digest tersebut digunakan lagi untuk dibandingkan dengan message-digest file sama namun dicurigai telah dimodifikasi. Message-digest file original tersebut dapat digunakan kembali tanpa perlu file originalnya perlu di-hash lagi. Yang hanya perlu dihash adalah file yang dicurigai tidak original sehingga waktu dan banyak operasi mesin yang dibutuhkan menjadi relatif lebih singkat. File yang ukurannya sangat besar pun, lama waktu prosesnya bisa dikurangi dengan memanfaatkan hash tersebut. Kata Kunci sha, kesamaan file, modifikasi, pengujian I. PENDAHULUAN Memeriksa apakah suatu file telah dimodifikasi atau tidak, telah banyak diimplementasikan dalam kehidupan sehari-hari. Dilakukannya pemeriksaan ini, tentunya meningkatkan efisiensi dan efektifitas karena menguji apakah sebaiknya melakukan suatu task atau tidak berdasarkan kesamaan file tersebut. Jika suatu task dilakukan padahal filenya yang diuji sama, tentu saja hal ini mengakibatkan boros waktu karena melakukan task yang seharusnya tidak perlu dilakukan, dan tidak efektif yang mana meningkatkan kinerja komputer yang lebih berakibat boros energi. Hal ini mengakibatkan seberapa pentingnya melakukan pemeriksaan apakah file tersebut sama tau tidak. Dengan melakukan pemeriksaan apakah file telah dimodifikasi atau tidak, tentunya banyak manfaat yang bisa diperoleh dengan pemeriksaan tersebut. Di antaranya adalah file share bersistem cloud(jika hasil modifikasi beda, maka di-commit), compile bahasa pemrograman seperti bahasa ADA (Jika hasil modifikasi sama, akan muncul pesan up-to-date), pengecekan sebuah file apakah mengandung virus atau tidak pada file yang tidak perlu dimodifikasi lagi, dan lain-lain. Sekarang, semakin besarnya kebutuhan fungsionalitas suatu program, maka semakin besar pula ukuran file. Hal ini berarti juga meningkatkan panjang string suatu file. Jika file diperiksa perkarakter satu persatu persatu, hal ini mungkin tidak masalah jika ukuran filenya sangat kecil. Akan tetapi, jika ukuran filenya sangat besar (hingga beberapa GB), hal ini tentunya akan menjadi sangat masalah untuk dilakukan pengujian kesamaan antar file karena dapat meningkatkan lama waktu yang dibutuhkan dan jumlah kinerja yang harus dilakukan mesin hingga EOF. Belum lagi jika harus dilakukan pengecekan kesamaan lebih dari satu file atau perlu dilakukan pengecekan kesamaan file lebih dari satu kali. Menggunakan cara pengecekan string perkarakter tentunya akan membuat hal ini semakin tidak efisien dan tidak efektif. Belum lagi kecanggihan kinerja mesin itu sendiri.. II. TEORI DASAR SHA adalah sejenis fungsi hash satu arah yang dikembangkan oleh NIST. SHA didasarkan pada MD4. SHA lebih aman karena message digest yang dihasilkan tidak mungkin berkoresponden dengan pesan asli. Terdapat beberapa jenis SHA yang standar: - SHA-0 dengan panjang 160 bit - SHA-1 dengan panjang 160 bit - SHA-2 yang terdiri dari - SHA-224 dengan panjang 224 bit - SHA-256 dengan panjang 256 bit - SHA-384 dengan panjang 384 bit - SHA-512 dengan panjang 512 bit Beberapa langkah penambahan bitnya yaitu: 1. Padding bits

2. Ditambahnya panjang pesan masukan 3. Inisialisasi Buffer 4. Proses pesan III. METODE PEMECAHAN MASALAH Untuk mengatasi masalah tersebut, maka digunakan cara, yaitu menghash file yang akan dibandingkan. Dalam makalah ini, hash yang akan digunakan adalah SHA (termasuk keluarganya yang sejenis seperti SHA0, SHA1, dan SHA2). Dengan dihashnya kedua file tersebut, maka akan dihasilkan message digest yang mana akan digunakan sebagai perbandingan. Karena hash umumnya memiliki sensitifitas yang lumayan tinggi, message digest yang dihasilkan pun umumnya bisa berbeda meskipun hanya beda satu karakter atau beda satu jarak antar indeks ASCII. Hal ini dapat dimanfaatkan untuk pengujian apakah kedua file tersebut sama atau tidak yang mana jumlah kerjanya dapat lebih dihemat. Message digest yang dihasilkan oleh sebuah file yang menjadi inti pengujian suatu file pun disimpan (bisa di dalam file yang berbeda, dalam program (sementara), registry, atau metode lainnya selama message digest simpanan tersebut bisa dipanggil kembali). Dari message digest tadi, dapat dibandingkan dengan perbandingan jumlah nilai atau string (jika dikonversi ke string). Jika dibandingkan sebagai string, maka pemeriksaan per karakter pun hanya berdasarkan panjang bitnya. Seperti SHA-512, maka pemeriksaan karakter hanya 512 kali. Berbeda drastis jika file yang sangat besar, misal panjangnya 10000 karakter, dengan dihashnya file tersebut, maka penghematan bisa mencapai sekitar 20 kali lipat. telah disebutkan tadi. Dari output tadi, akan dibagi menjadi dua bagian: apakah file tersebut tidak dihash dan file tersebut dihash. Asumsi yang digunakan sebagai berikut: - Jumlah iterasi dan lama waktu perbandingan hanya dilakukan saat perbandingan per-karakter, bukan saat dihash, menerima masukan file, dan di luar perbandingan tadi - Asumsi jenis file masukan dengan tigas file untuk dibandingkan adalaha sama - File yang sama hanya satu karena pada intinya sama saja jumlah iterasi dan lama waktu jika file tersebut sama - Jika dalam proses iterasi ada satu karakter saja yang tidak sama, iterasi dihentikan dan mengembalikan jumlah iterasi tersebut - Message digest berbasis 16 Percobaan 1 - Jenis File:.txt - Ukuran File: 1 KB IV. EKSPERIMEN DAN HASILNYA Untuk menguji apakah dengan menghash file tersebut dapat menghemat jumlah eksekusi dan menghemat waktu, akan dilakukan eksperimen. Akan digunakan sebuah algoritma (yang mana source codenya dalam bahasa ruby ) yang dilengkapi lama waktu eksekusi dan jumlah eksekusi pada perbandingan filenya. Untuk jumlah eksekusi, hanya akan dipasang di saat perbandingan filenya saja. Jika jumlah eksekusi dirasa kurang sesuai karena tidak diawasinya jumlah iterasi pada hash yang dilakukan, masih bisa dibandingkan dengan waktu. File yang akan diujipun, inputnya adalah jenis file dan ukuran file inti. Outputnya adalah apakah sama atau tidak, jumlah iterasi, dan lama waktu perbandingan yang direpresentasikan dalam bentuk gambar screenshot. File yang akan diuji dengan file inti ada tiga. Masingmasing file mempresentasikan atribut-atribut output yang

Percobaan 2 - Jenis File: jpg - Ukuran File: 10 KB

Percobaan 3 - Jenis File: rb - Ukuran File: 5 KB

Percobaan 4 - Jenis File: gmk - Ukuran File: 17 KB

Percobaan 5 - Jenis File: wav - Ukuran File: 217 KB

Percobaan 6 - Jenis File: pdf - Ukuran File: 152 KB

Percobaan 7 - Jenis File: rar - Ukuran File: 13 KB

V. ANALISIS Dari hasil eksperimen yang didapat, terdapat beberapa hal yang bisa dianalisis. Hal ini termasuk yang diharapkan maupun yang tidak diharapkan. Pada perbandingan apakah sebuah file tersebut sama atau tidak, bisa terlihat bahwa baik yang tidak dihash maupun dihash, didapat bahwa hasil perbandingannya sama. Pada jumlah iterasi yang dilakukan jika hasilnya sama, jumlah iterasi yang dilakukan jika file tidak dihash adalah panjang string file tersebut (dengan 1 karakter = 8 bit). Untuk jumlah iterasi didapat bahwa pada percobaan 1, jumlah iterasi untuk yang tidak dihash lebih kecil daripaa yang dihash. Sedangkan pada percobaan lainnya, jumlah iterasi untuk yang tidak dihash lebih besar daripada jika dihash. Jumlah iterasi hashnya bergantung pada jenisnya (dalam hal ini berdasarkan jumlah bitnya yang mana jumlah bit dibagi 8). Tambahan untuk jumlah iterasi yang jika hasilnya sama, untuk tiap jenis hash, jumlah iterasi yang dilakukan cenderung berdasarkan jenis SHA masingmasing yang mana dalam hal ini berdasarkan jumlah bitnya dibagi delapan. Untuk jumlah iterasi jika file tidak sama, jika tidak dihash, jumlah iterasi yang dilakukan adalah mendekati jumlah panjang string isi file (1 karakter = 8 bit). Sedangkan jika dihash, panjangnya adalah panjang message digest berdasarkan jenis SHA-nya. Kasus terburuk jika tidak dihash adalah panjang string dikurangi 1, sedangkan jika dihash, panjang string message digest (berdasarkan masing-masing jenis SHA-nya) dikurangi 1. Dalam percobaan tadi, cenderung terdapat 1 dan 2 pada pemeriksaan message-digest. Hal ini menandakan bahwa karakter mulai tidak sama saat iterasi pertama atau kedua. Untuk lama waktu yang didapat, rata-rata waktu yang didapat cenderung dibawah 1 sekon. Hal ini ada kemungkinan karena kecepatan CPU sehingga hampir tidak terlihat perbedaan waktunya. Akan tetapi, pada percobaan yang iterasinya sangat banyak, terlihat bahwa waktu yang dibutuhkan lebih lama dibandingkan dengan jumlah iterasi yang lebih sedikit. Dalam percobaan yang didapat, terlihat pada pesan yang tidak dihash memiliki lama waktu lebih lama daripada pesan yang dihash. Hal lain yang menyebabkan lebih lama adalah ketika ada karakter yang menyebabkan iterasi menjadi berhenti sementara atau berbunyi beep. Hash pun berfungsi untuk digunakan sebagai perbandingan apakah file tersebut sama atau tidak dengan jumlah iterasi dan lama waktu yang lebih singkat. Hal ini membuat perbandingan lebih efektif dan efisisen. Meskipun hasil lebih baik dengan dihash, ada saatnya hash tidak perlu digunakan jika panjang bit isi file yang tidak dihash kurang dari panjang bit message digest hasil file. Hal ini perlu dilakukan penyaringan lagi apakah sebuah file perlu atau tidak dihash berdasarkan panjang bit yang dimilikinya. Dari beberapa hasil eksperimen tadi, karena lama waktu dan jumlah iterasi pada proses hashing, pengambilan file, dan di luar perbandingan file tidak dihitung, ada kemungkinan saat digabung dengan fungsi dan program lain, akan ada sedikit perbedaan yaitu jumlah iterasi dan lama waktu mungkin lebih besar. Akan tetapi, abaikan hal tadi, terlihat bahwa dengan dihash secara selektif, maka perbandingan file lebih efisien dan efektif. REFERENCES [1] Munir, Rinaldi. Ir. M.T. Diktat Kuliah IF5054 Kriptografi. PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 14 Mei 2012 Biolardi Yoshogi, 13509035 VI. KESIMPULAN Berdasarkan hasil analisis yang didapat, dapat disimpulkan bahwa dengan melakukan hash, jumlah iterasi dan lama waktu yang dibutuhkan dapat dibuat lebih singkat.