Rabu

Pengertian MD5 dan SHA

Kriptografi berasak dari bahasa Yunani, crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Cukup banyak algoritma yang sering dipakai untuk meng-enkripsikan suatu informasi atau data. Untuk kesempatan ini, mungkin hanya menjelaskan tentang Hash function.

Data yang disimpan di dalam memori komputer perlu ditempatkan dalam suatu cara sedemikian sehingga pencariannya dapat dilakukan dengan cepat. Setiap data yang berupa record mempunyai field kunci yang unik yang membedakan suatu record dengan record yang lainnya. Fungsi Hash digunakan untuk menempatkan suatu record yang mempunyai nilai kunci k. fungsi hash yang paling umum berbentuk.
                                               h(k) = k mod m
yang dalam hal ini m adalah jumlah lokasi memori yang tersedia (misalkan memori bebentuk sel-sel yang diberi indeks 0 sampai m -1). Fungsi h diatas menempatkan record dengan kunci k pada suatu lokasi memori yang berlamat h(k). 

Selanjutnya saya akan menjelaskan algoritma MD-5 dan SHA yang merupakan pengembangan varian dari fungsi hash.

MD-5
Merupakan fungsi Hash yang sering digunakan untuk mengamankan suatu jaringan komputer dan internet yang sengaja dirancang untuk tujuan sebagai berikut:

1. Keamanan  : Hal ini tidak bisa dielakkan karena tidak satupun sistem algoritma yang tidak dapat bisa dipecahkan. Serangan yang sering digunakan untuk menjebol algoritma Hash adalah dengan menggunakan serangan brute force

2. Kecepatan  : Software yang digunakan mempunyai kecepatan yang tinggi karena didasarkan sekumpulan manipulasi operan 32 bit.

3. Simple  : Tanpa menggunakan struktur data yang kompleks

MD5 digunakan untuk pengkodean password pada sistem operasi. MD5 mengolah masukan yang berbentuk blok 512 bit yang dibagi dalam 16 bentuk subblok yang masing-masing berukuran 32 bit, sedangkan keluaran terdiri dari 4 blok berukuran 32 bit, dari 4 blok keluaran digabungkan menjadi 128 bit.

MD-5 adalah salah satu aplikasi yang digunakan untuk mengetahui bahwa pesan yang dikirim tidak ada perubahan sewaktu berada di jaringan. Algoritma MD-5 secara garis besar adalah mengambil pesan yang mempunyai panjang variable diubah menjadi ‘sidik jari’ atau ‘intisari pesan’ yang mempunyai panjang tetap yaitu 128 bit. ‘Sidik jari’ ini tidak dapat dibalik untuk mendapatkan pesan, dengan kata lain tidak ada orang yang dapat melihat pesan dari ‘sidik jari’ MD-5

Langkah-langkah pembuatan message digest secara garis besar:
1. Penambahan bit-bit pengganjal (padding bits).
2. Penambahan nilai panjang pesan semula.
3. Inisialisasi penyangga (bufferMD.
4. Pengolahan pesan dalam blok berukuran 512 bit.

berikut contoh hasil MD5 :
Plain teks:
ini merupakan contoh hash MD5
Cipher teksnya menjadi :
13 D6 8B 6C EC 35 8D AE D8 29 21 64 BC 38 C5 8F
mungkin hanya sampai disini pembahasan dasar mengenai MD5, selanjutnya saya akan menjelaskan algoritma SHA.

SHA
SHA adalah serangkaian fungsi cryptographic hash yang dirancang oleh National Security Agency (NSA) dan diterbitkan oleh NIST sebagai US Federal Information Processing Standard.SHA adalah Secure Hash Algoritma. Jenis-jenis SHA yaitu SHA-0, SHA-1, dan SHA-2.
Untuk SHA-2 menggunakan algoritma yang identik dengan ringkasan ukuran variabel yang terkenal sebagai SHA-224, SHA-256, SHA-384, dan SHA-512. SHA-1 merupakan yang sering digunakan dalam mengamankan protokol pengiriman.

Berikut kelebihan dari SHA 1:

a. validate a password (memvalidasi password); nilai hash dari password akan disimpan, kemudian ketika password diotentikasi, maka password yang dimasukkan oleh user akan dihitung hashnya dan jika hashnya sesuai maka password dinyatakan valid. Namun untuk mendapatkan password yang asli tidak dapat diperoleh dari hash yang telah disimpan.

b. Challenge handshake authentication; untuk menghindari kesalahan pengiriman password dalam kondisi “clear”, client dapat mengirim nilai hash sebuah password melalui internet untuk divalidasi oleh server tanpa beresiko disadapnya password yang asli.

c. Anti-tamper ; untuk memastikan data tidak berubah selama ditransmisikan. Penerima akan menghitung nilai hash dan mencocokkan dengan hash yang dikirimkan, apabila nilainya sama berarti data yang dikirimkan tidak berubah. 

d. digital signatures; dilakukan dengan cara mengenkrip nilai hash sebuah dokumen dengan menggunakan private key, sehingga menghasilkan tanda tangan digital untuk dokumen tersebut. Orang lain dapat mengecek otentikasi dokumen tersebut dengan cara mendekrip tanda tangan tersebut menggunakanpublic key untuk mendapatkan nilai hash yang asli dan membandingkannya dengan nilai hash dari teks.


berikut contoh menggunakan SHA-1 (160 bit):
Plain teks :
ini merupakan contoh hash MD5
Cipher teksnya :
F5 75 6F 4F 26 9F 51 BB B3 55 5F 04 7A 2E E8 FE B0 F9   


Jumat

Macam-macam Software dan Klasifikasi pengembang Game

Siapa yang tidak tertarik untuk bermain game? Nintendo, Square Enix dan Namco adalah bebebrapa perusahaan game developer yang sangat terkenal dengan aplikasi-aplikasi game yang dikembangkan mereka masing-masing saat ini.

Hingga saat ini, sebagian besar dari kita adalah pemain atau pemkai produk game karenakita lebih tertarik untuk memainkannya ketimbang membuatnya. Dalam benak kita, membuat game sudah pasti rumit dan membutuhkan waktu lama. Namun, kini itu semua adalah cerita usang karena sudah banyak beredar aplikasi yang dapat membantu kita untuk merealisasikan ide-ide kreatif kita ke dalam aplikasi game dengan cukup mudah. Aplikasi RPG Maker, Microsoft XNA Game Studio, dan Game Maker adalah beberapa aplikasi pengembang game yang dapat menjadikan impian untuk menjadi pembuat game menjadi kenyataan.

Saya hanya menjelaskan klasifikasi tentang software Microsoft XNA Game Studio. pada aplikasi terdapat framework yang sangat berperan penting dalam pembuatan game, yaitu Microsoft XNA Framework. Framework ini merupakan tools tambahan pada Microsoft Visual Studio untuk pengembangan game dengan kerangka game XNA. Melalui kerangka game itulah, anda dapat melakukan pengembangan hingga kustomisasi untuk menghasilkan game yang unik sesuai dengan keinginan anda.

Kerangka game XNA yang dihasilkan secara otomatis ketika Anda membuat proyek game dengan Visual Studio merupakan kelas turunan dari kelas Microsoft.Xna.Framework.Game. Kelas itu memiliki atribut dan fungsi-fungsi yang dapat dimanfaatkan terkait pengambangan game yang akan dilakukan.

1. Graphics
Atribut bertipe GraphicsDevicemanager ini memunkinkan anda untuk mengakses graphic card yang terdapat pada PC. komponen itulah yang bertindak sebagai perantara antara gane XNA yang dikembangkan dengan GPU (Graphical Processing Unit) yang terdapat pada graphic card anda

2. SpriteBatch
Melalui komponen SpriteBatch inilah anda dapat membuat sprite yang akan diintegrasikan ke dalam game, seperti sprite pemain, sprite musuh, dan sprite background.

3. Initialize()
Fungsi Initialize() digunakan untuk melakukan inisialisasi terhadap seluruh variabel dan objek yang terdapat dalam kerangka game XNA yang dibuat sebelumnya.

4. LoadContent
Fungsi LoadContent() akan secara otomatis dipanggil setelah proses inisialisasi. Melalui fungsi itulah seluruh komponen yang terlibat dalam game, seperti gambar, model 3D, dan efek suara di load ke dalam game.

5. UnloadContent()
Fungsi UnloadContent() berfungsi sebaliknua, yaitu digunakan untuk meng-unload seluruh komponen yang sudah diload melalui fungsi LoadCOntent(). Fugnsi itu dapat digunakan untuk melakukan prises manajemen memory ketika game sedang dimainkan.

6. Update()
Seluruh algoritma yang memengaruhi game dapat di masukkan ke dalam fungsi Update(), seperti pergeseran objek, dteksi tabrakan (collision detection), dan update skor.

7. Draw()
Fungsi Draw(), sesuai dengan namanya, digunakan untuk melakukan menggambar seluruh objek dalam game.