Zae
Perbedaan yang signifikan antara MD4 dan MD5 adalah sebagai berikut :
1.        MD5 memiliki empat putaran, sedangkan MD4 hanya tiga. Akibatnya, fungsi kompresi MD5 meliputi 64 langkah, sedangkan fungsi kompresi MD4 memiliki 48 langkah.
2.        Setiap langkah MD5 memiliki konstanta tambahan yang unik, sedangkan setiap putaran dari MD4 menggunakan konstan yang tetap.
3.        Fungsi G di putaran kedua MD5 kurang simetris daripada fungsi G MD4.
4.        Setiap langkah MD5 menambahkan hasil dari langkah sebelumnya, yang tidak terjadi di MD4. Tujuan modifikasi ini adalah untuk menghasilkan avalanche effect yang lebih cepat.
5.        Pada MD5, urutan input words diakses pada putaran kedua dan ketiga yang kurang mirip satu sama lain daripada yang terjadi di MD4.
6.        Diklaim bahwa di MD5, “jumlah pergeseran dalam setiap putaran telah kira-kira dioptimalkan, untuk hasil ‘avalanche effect‘ yang lebih cepat”. Selain itu, pergeseran bekerja di masing-masing putaran MD5 yang berbeda, yang tidak terjadi di MD4. 


Zaenal Suhardono
Zae
Dibawah ini merupakan source code  algoritma AES 128 menggunakan bahasa pemrograman java. Disini inputan atau plainteks nya berupa string, untuk yang file akan saya posting berikutnya. Source saya Run menggunakan Netbeans. Agar source dapat dijalankan, download dulu "The Bouncy Castle Crypto package" ,  silahkan download di SINI. Selanjutkan tambahkan file .jar tersebut di Libraries. 

Berikut source code nya :

package aes;

/**
 *
 * @author zae
 */
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class Main {
  public static void main(String[] args) throws Exception {
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    byte[] input = "tes".getBytes();
    byte[] keyBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
        0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };

    SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");

    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");

    System.out.println(new String(input));

    // encryption pass
    cipher.init(Cipher.ENCRYPT_MODE, key);

    byte[] cipherText = new byte[cipher.getOutputSize(input.length)];
    int ctLength = cipher.update(input, 0, input.length, cipherText, 0);
    ctLength += cipher.doFinal(cipherText, ctLength);
    System.out.println(new String(cipherText));
    System.out.println(ctLength);

    // decryption pass
    cipher.init(Cipher.DECRYPT_MODE, key);
    byte[] plainText = new byte[cipher.getOutputSize(ctLength)];
    int ptLength = cipher.update(cipherText, 0, ctLength, plainText, 0);
    ptLength += cipher.doFinal(plainText, ptLength);
    System.out.println(new String(plainText));
    System.out.println(ptLength);
  }
}

Penjelasan dari source code diatas adalah

* Input berupa string, dalam kasus ini, saya meng-enkrip : "tes"
   byte[] input = "tes".getBytes();

*Kunci yang dipakai adalah "123456789abcdef"
SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");

dimana keyBytes adalah array byte yang isinya kunci
byte[] keyBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }; 

* algoritma yang dipakai adalah AES, dalam hal ini AES 128, karena kunci yang dipakai 128 bit
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");

Setelah di Run maka hasilnya sebagai berikut
run:
tes                 //output
System.out.println(new String(input));
O�, qX(PNN�y �    //output System.out.println(new String(cipherText));
16                  //output System.out.println(ctLength);
tes                 //output System.out.println(new String(plainText));
3                   //output System.out.println(ptLength);

Selamat dicoba
 
Zaenal Suhardono
Zae
Blowfish dan twofish keduanya dirancang oleh orang yang sama, yaitu Bruce Schneier. Namun keduanya berasal dari masa yang berbeda. Blowfish merupakan algoritma yang lebih tua, ia dirancang pada tahun 1993. Tujuan perancangannya adalah untuk menggantikan algoritma DES yang sudah sangat tua (sejak 1977). Algoritma DES sendiri merupakan algoritma standar kriptografi yang ditetapkan oleh NIST – sebuah lembaga yang mengatur tentang standar-standar. Antara DES dan blowfish memiliki banyak kesamaan. Kesamaan mendasar adalah keduanya memiliki panjang blok yang sama, yaitu 64 bit. Namun tentu blowfish karena jauh lebih muda, memiliki banyak kelebihan dibandingkan dengan DES. Blowfish sangat terkenal di dunia kriptografi, alasan utamanya adalah karena lisensinya yang bebas dan gratis. Bahkan komunitas open source menghargai blowfish dengan mempercayai blowfish menjadi salah satu Open Cryptography Interface (OCI) pada kernel Linux versi 2.5 keatas.
Sedangkan twofish adalah suksesor dari blowfish. Pada tahun 1997, dengan kemajuan teknologi prosesor yang sangat cepat, maka bukanlah ahal yang sulit untuk menjebol algoritma kriptografi dengan panjang kunci 64 bit. Untuk itu NIST membuka sayembara untuk umum. Semua pihak boleh mensubmit algoritmanya, namun tentu dengan syarat-syarat kualitas minimum, seperti panjang blok minimum 128 bit. Twofish merupakan salah satu peserta, dan berhasil meraih posisi 5 besar, dan bahkan secara tidak resmi mendapatkan posisi 2 besar. Lima besar algoritma yang lolos semuanya memiliki tingkat keamanan yang hampir seimbang, sehingga penilaian disampingkan menjadi performansi kecepatan. Twofish dan rijndael bersaing memperebutkan posisi teratas. Twofish unggul di nomor kunci 256 bit, namun kalah di nomor kunci 128 bit. Akhirnya rijndael yang keluar sebagai pemenang dan berubah nama menjadi AES, suksesor dari DES.

Pengen tahu lebih dalam mengenai algoritma blowfish dan twofish silahkan download artikel ini
(sumber: http://www.informatika.org/~rinaldi/Kriptografi/2006-2007/Makalah1/Makalah1-004.pdf)
 
Zaenal Suhardono
Zae
Camellia merupakan algoritma kriptografi simetris blok cipher. Dalam Camellia proses enkripsi dan dekripsi dilakukan pada blok data berukuran 128-bit dengan kunci yang dapat berukuran 128-bit, 192-bit, 256-bit. Algoritma Camellia dikembangkan oleh :
  • Kazumaro Aoki (NTT - Nippon Telegraph and Telephone Corp.)
  • Tetsuya Ichikawa (Mitsubishi electric Corp.)
  • Masayuki Kanda (NTT – Nippon Telegraph and Telephone Corp.)
  • Mitsuru Matsui (Mitsubishi electric Corp.)
  • Shiho Moriai (NTT – Nippon Telegraph and Telephone Corp.)
  • Junko Nakajima (Mitsubishi electric Corp.)
  • Toshio Tokita (Mitsubishi electric Corp.)
Lengkapnya mengenai algoritma Camellia silahkan Download di SINI [sumber : http://budi.insan.co.id/courses/ec5010/projects/rifqi-report.pdf]

Zaenal Suhardono
Zae
Algoritma Kriptografi LOKI97 merupakan salah satu kandidat Advanced Encryption Standard (AES) yang diajukan kepada NIST. Algoritma Kriptografi LOKI97 dirancang oleh L. Brown dan J. Pieprzyk. NIST mementukan beberapa criteria, diantaranya adalah kunci yang digunakan harus panjang, ukuran blok yang digunakan harus lebih besar, lebih cepat, dan fleksibel. Salah satu kandidat untuk AES adalah algoritma LOKI97. Algoritma ini telah memenuhi semua criteria yang diajukan oleh NIST. LOKI97 adalah algoritma yang menggunakan ukuran blok data sebesar 128 bit dan menggunakan kunci yang dapat bervariasi yaitu 128,192 dan 256 bit.

Lengkapnya Download di SINI [Sumber : http://budi.insan.co.id/courses/el7010/2003/report-avon.pdf]

Zaenal Suhardono
Zae
Berikut saya list semua algoritma kriptografi yang terpublish di internet. Semoga membantu untuk kalangan pecinta kriptografi. Sumber : wikipedia

* Algoritma Kriptografi Simetrik Block Cipher
   

* Algoritma kriptografi Simetrik Stream Cipher


Nama Algoritma : A5/1 · A5/2 · E0 · FISH · ISAAC · MUGI · Panama · Phelix · Pike · Py · QUAD  · Scream · SEAL · SNOW · SOBER · SOBER-128 · VEST · WAKE

Yang Sering Digunakan : RC4 · Block ciphers in stream mode

* Algoritma Kriptografi Kunci Publik


* Fungsi Hash


* Algoritma MAC

DAA · CBC-MAC · HMAC · OMAC/CMAC · PMAC · VMAC · UMAC · Poly1305-AES


Semoga bermanfaat

  Zaenal Suhardono
Zae
Advanced Encryption Standard (AES) merupakan algoritma kriptografi  simetrik yang dapat digunkan untuk mengamakan data . Algoritma AES adalah blok chipertext simetrik yang dapat mengenkripsi (encipher) dan dekripsi (decipher) informasi. Enkripsi merubah data yang tidak dapat lagi dibaca disebut ciphertext; sebaliknya dekripsi adalah merubah ciphertext data menjadi bentuk semula yang kita kenal sebagai plaintext. Algoritma AES is mengunakan kunci kriptografi 128, 192, dan 256 bits untuk mengenkrip dan dekrip data pada blok 128 bits.

Ingin tahu lebih dalam mengenai algoritma AES, silahkan download artikel mengenai algoritma ini yang saya kumpulkan dari beberapa sumber : 
1. Algoritma AES (Advanced Encryption Standard) dan Penggunaannya dalam Penyandian Pengompresian Data [sumber : http://www.informatika.org/~rinaldi/Matdis/2008-2009/Makalah2008/Makalah0809-090.pdf]. Artikel  DOWNLOAD DI SINI
2.   ADVANCED ENCRYPTION STANDARD (AES) [http://www.p4tkipa.org]. Artikel  DOWNLOAD DI SINI
3.   ADVANCED ENCRYPTION STANDARD (AES) 128 [r12k4.files.wordpress.com]. Artikel  DOWNLOAD DI SINI
4.   ENKRIPSI DAN DEKRIPSI DENGAN ALGORITMA AES 256 UNTUK SEMUA JENIS FILE. [ti.ukdw.ac.id/ojs/index.php/informatika/article/download/69/29]. Artikel DOWNLOAD DI SINI

Zaenal Suhardono