Program kriptografi dengan delphi


















Dalam implementasi yang akan diberikan, metoda yang digunakan adalah RC4 dan Blowfish, dengan panjang key bit atau 16 byte. Dengan alasan tertentu, implementasi akan diberikan dan dibahas dimulai dari proses decrypt terlebih dahulu. Implementasi decrypt dapat di download pada:.

Sekali lagi, implementasi ini meniru verifikasi serial sebuah software, tetapi tentu saja, dibuat se-sederhana mungkin, agar proses kriptografinya lebih menonjol. File-file yang terdapat dalam implementasi ini, tidak jauh berbeda dengan yang berada pada implementasi kriptografi satu arah, hanya library metoda yang bersangkutan yang berubah. Mari kita buka kode tersebut untuk mulai membedah implementasi ini. Baris 33 sampai dengan 87, menunjukkan dua fungsi untuk men-decrypt dengan masing-masing metoda.

Proses decrypt kedua metoda dibuat seragam dengan tujuan menghindari kebingungan, dan yang pasti bukan bentuk baku. Dikarenakan penyeragaman ini, pembahasan satu metoda bisa mewakili metoda yang satunya. Pada baris 35 dapat kita lihat, inisialisasi konstanta key yang disiapkan untuk proses decrypt. Key dibuat dengan format array dari byte dengan lebar Jadi, pendeklarasian array tersebut bisa saja ditulis seperti ini :.

Pendeklarasian array diatas menggunakan notasi desimal, dengan nilai yang sama. Lalu, mengapa dalam implementasi ditulis dengan notasi hexadecimal? I just love hex, nothing more. Oke , mari kita lihat di baris 39 dan Di situ dideklarasikan dua variable array untuk menampung input dan output dari proses decrypt ini. Karena yang dilakukan saat ini adalah proses decrypt, maka input adalah Cipher Text yang ditampung pada variable arrCipher, sedangkan output adalah Plain Text yang ditampung pada variable arrPlain.

Kedua variable tersebut dibuat dengan panjang yang sama yaitu 8 byte. Hal ini perlu dicatat, karena akan berpengaruh pada penggunaan fungsi ini, kita akan sampai ke sana nanti.

Fungsi decrypt ini menerima parameter dalam bentuk String sebagai input, seperti yang terlihat pada baris 33, sedangkan variable yang di-input ke proses decrypt inti berbentuk array dari byte, seperti yang terlihat pada baris Maka, baris 44 sampai 48, bertugas untuk meng-convert variable String menjadi array of byte.

Ada banyak metode yang bisa digunakan untuk tugas ini, seperti misalnya mengambil nilai ASCII dari masing-masing karakter di dalam string, lalu menyimpannya ke dalam array of byte. Dan hal ini dilakukan dengan loop sebanyak 8 putaran, karena panjang variable penampung yang ada arrCipher adalah 8.

Mari kita ambil contoh untuk memperjelas :. Baris 49 sampai 52 merupakan kode untuk melakukan proses inti decrypt yang diwajibkan oleh library DCPCrypt ini. Dan hasil dari proses decrypt inti ini ditampung di variable arrPlain yang berbentuk array of byte. Baris 53 mempersiapkan mengosongkan variable strResult yang akan menampung hasil dari fungsi decrpyt ini. Jika pada input tadi kita meng-convert dari variable String ke array of byte, sekarang untuk output kita lakukan kebalikannya, merubah variable array of byte ke String.

Dan itulah yang dilakukan pada baris 54 sampai Metode yang digunakan sekarang adalah mengambil setiap byte dari array, lalu men-subtitusikannya dengan karakter yang memiliki nilai ASCII yang bersangkutan, untuk kemudian ditambahkan di variable strResult. Metode ini lebih simpel dari metode sebelumnya, tetapi mari kita ambil contoh untuk lebih memperjelas :.

Demikianlah penjelasan tentang fungsi yang digunakan untuk melakukan decrypt. Kita akan bahas hal tersebut dalam implementasi berikutnya. Fungsi tersebut, tentu saja, terletak pada baris 89 sampai Bila itu yang terjadi, dengan segala kerendahan hati, saya mohon maaf atas buruknya cara pemogramman saya. Tapi saya rasa, percabangan-percabangan ini tidak perlu dibahas semua, karena hanya untuk mengecek kesalahan-kesalahan dasar input dari user.

Yang patut dibahas adalah percabangan pada baris Lagi-lagi, contoh untuk memperjelas :. Sebelum dijawab, saya harap anda masih ingat karakteristik dari fungsi decrypt di atas tadi, input yang valid haruslah string dengan 16 karakter ini menjelaskan percabangan pada baris , dan ouput yang dihasilkan adalah string dengan 8 karakter. Yaitu, bila kita memasukkan serial dengan panjang 16 karakter, tapi karakter yang diinput bukanlah karakter hexadecimal, maka akan muncul pesan error yang kurang bagus.

Tapi tentu saja, hal tersebut bisa diatasi dengan menambahkan percabangan yang mengecek apakah serial yang diinput merupakan karakter hexadecimal atau bukan. Anda bisa menambahkannya bila anda mau! Yap, demikianlah salah satu contoh implementasi proses decrypt yang meniru proses verifikasi serial sebuah software. Untuk melengkapinya, yang tersisa adalah proses encrypt yang akan diterapkan pada keygen untuk verifikasi ini.

Yang patut diingat sebelum melakukan pembedahan adalah, bahwa proses pembuatan implementasi keygen ini saling bergantung dengan kode pada implementasi verifikasi. Enkripsi dan dekripsi. Proses menyandikan plainteks menjadi cipherteks disebut enkripsi. Sedangkan proses mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi. Sistem kriptografi merupakan kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin dan kunci.

Kriptanalisis cryptanalysis adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Kriptologi adalah studi mengenai kriptografi dan kriptanalisis. Jenis — jenis Kriptografi. Kriptografi Modern. Kriptografi Kunci-Simetris. Kriptografi kunci-simetrik mengarah kepada metode enkripsi yang mana baik pengirim maupun yang dikirim saling memiliki kunci yang sama walaupun kebanyakan kunci yang ada sedikit berbeda namun masih berhubungan dalam hal kemudahan perhitungan.

Berikut ini merupakan jenis enkripsi yang diketahui sampai tahun Secret-key cryptography kadang disebut sebagai symmetric cryptography merupakan bentuk kryptografi yang lebih tradisional, dimana sebuah kunci tunggal dapat digunakan untuk mengenkrip dan mendekrip pesan.

Secret-key cryptography tidak hanya berkaitan dengan enkirpsi tetapi juga berkaitan dengan otentikasi. Salah satu teknik semacam ini disebut message authentication codes. Meskipun terdapat bantahan dari standar resminya, DES masih cukup terkenal dan digunakan sebagai aplikasi yang sudah luas penggunaannya, dari enkripsi ATM sampai privasi email dan akses keamanan. Banyak sandi balok lain yang telah didesaindan diluncurkan ke publik dengan mempertimbangkan kualitas dalam berbagai variasi.

Tetapi banyak pula yang sudah terbongkar. Sandi gelombang berlawanan dengan sandi balok, membuat material gelombang panjang yang berubahubahyang dikombinasikan dengan kode tulisan bit demi bit atau karakter demi karakter. Masalah utama yang dihadapi secret-key cryptosystems adalah membuat pengirim dan penerima menyetujui kunci rahasia tanpa ada orang lain yang mengetahuinya. Ini membutuhkan metode dimana dua pihak dapat berkomunikasi tanpa takut akan disadap.

Kelebihan secret-key cryptography dari public-key cryptography adalah lebih cepat. Teknik yang paling umum dalam secret-key cryptography adalah block ciphers, stream ciphers, dan message authentication codes. Kriptografi Simetris adalah : Kode Hill atau lebih dikenal dengan Hill cipher merupakan salah satu algoritma kriptografi kunci simetris dan merupakan salah satu kripto polyalphabetic.

Hill cipher diciptakan oleh Lester S. Hill pada tahun Teknik kriptografi ini diciptakan dengan maksud untuk dapat menciptakan cipher yang tidak dapat dipecahkan menggunakanteknik analisis frekuensi. Berbeda dengan caesar cipher, hill cipher tidak mengganti setiap abjad yang sama pada plainteks dengan abjad lainnya yang sama pada cipherteks karena menggunakan perkalian matriks pada dasar enkripsi dan dekripsinya. Hill cipher merupakan penerapan aritmatika modulo pada kriptografi.

Teknik kriptografi ini enggunakan sebuah matriks persegi sebagai kunci berukuran m x m sebagai kunci untuk melakukan enkripsi dan dekripsi. Dasar teori matriks yang digunakan dalam Hill cipher antara lain adalah perkalian antar matriks dan melakukan invers pada matriks.

Karena menggunakan matriks sebagai kunci, Hill cipher merupakan algoritma kriptografi kunci simetris yang sulit dipecahkan, karena teknik kriptanalisis seperti analisis frekuensi tidak dapat diterapkan dengan mudah untuk memecahkan algoritma ini.

Hill cipher sangat sulit dipecahkan jika kriptanalis hanya memiliki ciphertext saja chipertext-only , namun dapat dipecahkan dengan mudah jika kriptanalis memiliki ciphertext dan potongan dari plaintext-nya known-plaintext. Gambar Kriptografi Simetris :. DEA, sering disebut DES, telah dipelajari secara ekstensif sejak publikasinya dan merupakan algoritma simetris yang paling dikenal dan paling banyak digunakan. DEA memiliki ukuran blokbit dan menggunakan kunci bit kunci selama eksekusi 8 bit paritas dihilangkan dari kunci 64 bit.

DEA adalah symmetric cryptosystem, khususnya cipher Feistel rounddan pada mulanya dirancang untuk implementasi hardware. Saat digunakan untuk komunikasi, baik pengirim maupun penerima harus mengetahui kunci rahasia yang sama, yang dapat digunakan untuk mengenkrip dan mendekrip pesan, atau untuk menggenerate dan memverifikasi message authentication code MAC. DEA juga dapat digunakan untuk enkripsi single user, seperti untuk menyimpan file pada harddisk dalam bentuk terenkripsi.

Dalam lingkungan multiuser, distribusi kunci rahasia akan sulit. Public-key cryptography menyediakan solusi yang ideal untuk masalah ini. Pada Januari inisiatif AES diumumkan dan pada September publik diundang untuk mengajukan proposal block cipher yang cocok sebagai kandidat untuk AES.

AES mendukung ukuran kunci bit, bit, dan bit, berbeda dengan kunci bit yang ditawarkan DES. Algoritma AES dihasilkan dari proses bertahun-tahun yang dipimpin NIST dengan bimbingan dan review dari komunitas internasional pakar kriptografi.

Implementasi interface Aplikasi Kriptografi. Gambar 1. Form Enkripsi Aplikasi Kriptografi. Gambar 2. Contoh Hasil Enkripsi Aplikasi Kriptografi. Gambar 3. Form Deskripsi Aplikasi Kriptografi. Gambar 4. Contoh Hasil Deskripsi Aplikasi Kriptograf i.

Kriptografi merupakan salah satu dari media komunikasi dan informasi kuno yang masih dimanfaatkan hingga saat ini. Tiga alasan mempelajari algoritma klasik : a. Memahami konsep dasar kriptografi b. Dasar algoritma kriptografi modern c. Memahami kelemahan sistem kode Pada dasarnya, algoritma kriptografi klasik dapat dikelompokkan ke dalam dua macam cipher, yaitu : a.

Cipher substitusi substitution cipher Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Cipher transposisi transposition cipher Pada cipher transposisi, huruf-huruf di dalam plainteks tetap saja, hanya saja urutannya diubah. Dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks.

Nama lain untuk metode ini adalah permutasi atau pengacakan scrambling karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter- karkater tersebut.

Cipher ini berhasil dipecahkan oleh Babbage dan Kasiski pada pertengahan abad Kolom paling kiri dari bujursangkar menyatakan huruf-hurf kunci, sedangkan baris paling atas menyatakan huruf-huruf plainteks. Jika panjang kunci lebih pendek dari pada panjang plainteks, maka kunci diulang penggunaanya sistem periodik.

Bila panjang kunci adalah m, maka periodenya dikatakan m. Cara melakukan enkripsi sama seperti kedua kriptografi sebelumnya. Pada kriptografi Autokey juga digunakan sebuah kata sebagai kunci. Kunci ini kemudian diikuti dengan plaintext sehingga membentuk huruf-huruf yang sama panjang dengan plaintext.

Urutan huruf-huruf ini yang akan digunakan sebagai kunci pada saat enkripsi. Rumus yang berlaku untuk kriptografi Autokey sama seperti Caesar dan Vigenere. Kemudian enkripsi dilakukan sama dengan enkripsi Caesar dan Vigenere. Reverse Cipher Ini aadalah contoh kriptografi klasik yang menggunakan substitusi yaitu mengganti satu huruf dengan huruf lain ataupun mengubah suatu kalimat dengan menuliskan setiap kata secara terbalik.

Ini contoh yang paling sederhana dari transposisi yaitu mengubah suatu kalimat dengan menuliskan setiap kata secara terbalik.

Kemudian huruf-huruf dalam kelompok ini dituliskan kembali kolom per kolom, dengan urutan kolom yang bisa berubah-ubah. Zig-Zag Cipher Pada kriptografi kolom zig-zag, plaintext disusun dalam kelompok huruf yang terdiri dari beberapa huruf. Kemudian huruf-huruf dalam uruta kolom yang dimasukkan secara pola zig-zag.

Segitiga Cipher Pada kriptografi kolom Triangle, plaintext disusun dalam kelompok huruf yang terdiri dari beberapa huruf. Kemudian huruf-huruf dalam urutan kolom yang dimasukkan secara pola segitiga. Sehingga memperoleh Cipher yang lebih kuat Super dari pada Satu Cipher saja. Enigma menggunakan sistem rotor mesin berbentuk roda yang berputar untuk membentuk huruf cipherteks yang berubah — ubah.

Setelah setiap huruf dienkripsi, rotor kembali berputar untuk membentuk huruf cipherteks yang baru. Transformasi ini memberikan solusi pada dua macam masalah keamanan data, yaitu masalah privasi privacy dan keautentikan authenticatioan. Privasi mengandung arti bahwa data yang dikirimkan hanya dapat dimengerti informasinya oleh penerima yang sah atau berhak. Sedangkan keotentikan mencegah pihak ketiga untuk mengirimkan data yang salah atau mengubah data yang dikirimkan.

Sehingga, kriptografi diharapkan dapat memenuhi kriteria- kriteria sebagai berikut: 1. Kerahasiaan confidentiality , yang dapat terjamin dengan adanya enkripsi penyandian. Keutuhan integrity atas data-data pembayaran, yang dapat terjamin dengan penggunaan fungsi hash.

Fungsi hash adalah fungsi yang secara efisien mengubah string input dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash.

Jaminan atas identitas dan keabsahan authenticity pihak-pihak yang melakukan transaksi, yang terjamin dengan digunakannya password atau sertifikat digital. Sedangkan keautentikan data transaksi dapat terjamin dengan menggunakan tanda tangan digital.

Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal non-repudiation dengan memanfaatkan tanda tangan digital dan sertifikat digital. Persamaan matematis yang menggambarkan operasi algoritma kriptografi sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara analitik. Biaya untuk memecahkan chiperteks melampaui nilai informasi yang terkandung di dalam chiperteks tersebut.

Waktu yang diperlukan untuk memecahkan chiperteks melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya. Bahkan ada pihak-pihak yang ingin agar dapat mengubah isi pesan tersebut. Ilmu untuk mendapatkan pesan yang asli dari pesan yang telah disandikan tanpa memiliki kunci untuk membuka pesan rahasia tersebut disebut kriptoanalisis.

Sedangkan usaha untuk membongkar suatu pesan sandi tanpa mendapatkan kunci dengan cara yang sah dikenal dengan istilah serangan attack. Ciphertext only attack, penyerang hanya mendapatkan ciphertext dari sejumlah pesan yang seluruhnya telah dienkripsi menggunakan algoritma yang sama.

Sehingga, metode yang digunakan untuk memecahkannya adalah exhaustive key search, yaitu mencoba semua kemungkinan yang ada untuk menemukan kunci. Known plaintext attack, dimana penyerang selain mendapatkan sandi, juga mendapatkan pesan asli. Terkadang disebut pula clear-text attack. Choosen plaintext attack, sama dengan known plaintext attack, namun penyerang bahkan dapat memilih penggalan mana dari pesan asli yang akan disandikan. Serangan jenis ini lebih hebat daripada known-plaintext attack, karena kriptoanalis dapat memilih plainteks tertentu untuk dienkripsikan, yaitu plainteks-plainteks yang lebih mengarahkan penemuan kunci.

Chosen-ciphertext attack. Pada tipe ini, kriptoanalis dapat memilih cipherteks yang berbeda untuk didekripsi dan memiliki akses atas plaintext yang didekripsi. Chosen-key attack. Kriptoanalis pada tipe penyerangan ini memiliki pengetahuan tentang hubungan antara kunci-kunci yang berbeda dan memilih kunci yang tepat untuk mendekripsi pesan. Rubber-hose cryptanalysis. Pada tipe penyerangan ini, kriptoanalis mengancam, menyiksa, memeras, memaksa, atau bahkan menyogok seseorang hingga mereka memberikan kuncinya.

Ini adalah cara yang paling ampuh untuk mendapatkan kunci. Adaptive — chosen — plaintext attack. Penyerangan tipe ini merupakan suatu kasus khusus chosen-plaintext attack. Kriptoanalis tidak hanya dapat memilih plainteks yang dienkripsi, ia pun memiliki kemampuan untuk memodifikasi pilihan berdasarkan hasil enkripsi sebelumnya.

Berdasarkan bagaimana cara dan posisi seseorang mendapatkan pesan-pesan dalam saluran komunikasi, penyerangan dapat dikategorikan menjadi: 1. Spoofing: Penyerang — misalnya Dimana bisa menyamar menjadi Adi. Semua orang dibuat percaya bahwa Diman adalah Adi.

Pihak bank tidak tahu bahwa telah terjadi kejahatan. Man-in-the-middle: Jika spoofing terkadang hanya menipu satu pihak, maka dalam skenario ini, saat Adi hendak berkomunikasi dengan Badu, Diman di mata Adi seolah-olah adalah Badu, dan Diman dapat pula menipu Badu sehingga Diman seolah-olah adalah Adi. Diman dapat berkuasa penuh atas jalur komunikas ini, dan bisa membuat berita fitnah. Gambar 4 : Ilustrasi Man-in-the-middle 3. Sniffing: secara harfiah 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: Jika seseorang bisa merekam pesan-pesan handshake persiapan komunikasi , ia mungkin dapat mengulang pesan-pesan yang telah direkamnya untuk menipu salah satu pihak. Man-in-the-midle, replay attack, dan spoofing termasuk jenis serangan ini.

Serangan dilakukan secara pasif, terjadi bilamana penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima atau penyerang hanya melakukan penyadapan untuk memperoleh data atau informasi sebanyak-banyaknya. Gambar 6 : Ilustrasi Serangan Pasif Beberapa metode penyadapan data yang biasanya dilakukan oleh penyerang: 1.

Electromagnetic eavesdropping. Penyadap mencegat data yang ditransmisikan melalui saluran wireless, misalnya radio dan microwive. Acoustic Eavesdropping. Menangkap gelombang suara yang dihasilkan oleh suara manusia. Wiretapping Penyadap mencegat data yang ditransmisikan pada saluran kabel komunikasi dengan menggunakan sambungan perangkat keras. Gambar 7 : Ilustrasi Wiretapping Jenis-jenis serangan berdasarkan teknik yang digunakan untuk menemukan kunci: 1. Pendekatan ini pada awalnya merujuk pada sebuah program komputer yang mengandalkan kekuatan pemrosesan komputer dibandingkan kecerdasan manusia.

Istilah brute force sendiri dipopulerkan oleh Kenneth Thompson, dengan mottonya: "When in doubt, use brute-force" jika ragu, gunakan brute-force. Teknik ini adalah teknik yang paling banyak digunakan untuk memecahkan password, kunci, kode atau kombinasi. Cara kerja metode ini sangat sederhana yaitu mencoba semua kombinasi yang mungkin. Salah satu contoh penggunaan brute force attack adalah password cracker. Sebuah password dapat dibongkar dengan menggunakan program bernama password cracker ini.

Program password cracker adalah program yang mencoba membuka sebuah password yang telah terenkripsi dengan menggunakan sebuah algoritma tertentu dengan cara mencoba semua kemungkinan. Teknik ini sangatlah sederhana, tapi efektivitasnya luar biasa, dan tidak ada satu pun sistem yang aman dari serangan ini, meski teknik ini memakan waktu yang sangat lama, khususnya untuk password yang rumit.

Namun ini tidak berarti bahwa password cracker membutuhkan decrypt. Pada prakteknya, mereka kebanyakan tidak melakukan itu. Umumnya, kita tidak dapat melakukan dekripsi password-password yang sudah terenkripsi dengan algoritma yang kuat.



0コメント

  • 1000 / 1000