Kamis, 24 Maret 2011

Perbedaan MD5 dengan SHA

Pengertian MD5
Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunkan untuk melakukan pengujian integritas sebuah file.


MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.

Langkah-Langkah Pembuatan MD



  1.  Penambahan Bit-bit Pengganjal
    •  Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. 
    •  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
  2.  Penambahan Nilai Panjang Pesan
    • Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula.
    • Jika panjang pesan > 264 maka yang diambil adalah panjangnya dalam modulo 264. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang ditambahkan menyatakan K modulo 264.
    • Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit.
    •  Inisialisai Penyangga MD
    • MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 4 ´ 32 = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir.
    • Keempat penyangga ini diberi nama A, B, C, dan D. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut:
                     A = 01234567
                     B = 89ABCDEF
                     C = FEDCBA98
                     D = 76543210

   3.    Pengolahan Pesan dalam Blok Berukuran 512 bit

    • Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0 sampai YL – 1). 
    •  Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini disebut proses HMD5. Gambaran proses HMD5 diperlihatkan pada Gambar 13.3.
    • Pada Gambar 13.3, Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula.
    • MDq adalah nilai message digest 128-bit dari proses HMD5 ke-q. Pada awal proses, MDq berisi nilai inisialisasi penyangga MD.
    • Proses HMD5 terdiri dari 4 buah putaran, dan masing-masing putaran melakukan operasi dasar MD5 sebanyak 16 kali dan setiap operasi dasar memakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen Tabel T.
    • Fungsi-fungsi fF, fG, fH, dan fI masing-masing berisi 16 kali operasi dasar terhadap masukan, setiap operasi dasar menggunakan elemen Tabel T.
    • Operasi dasar MD5
    • Karena ada 16 kali operasi dasar, maka setiap kali selesai satu operasi dasar, penyangga-penyangga itu digeser ke kanan secara sirkuler dengan cara pertukaran sebagai berikut:
                    temp ¬ d
                    d ¬ c
                    c ¬ b
                    b ¬ a
                    a ¬ temp



SHA (Secure Hash Algorithm)


SHA merupakan salah satu hash function yang cukup banyak digunakan. Keluarga SHA yang paling banyak digunakan adalah SHA-1. SHA-1 memetakan inputan string dengan panjang sembarang menjadi suatu nilai hash dengan panjang tetap yaitu 160 bit. Ukuran internal state pada SHA-1 adalah 160 bit, sedangkan ukuran bloknya adalah 64 bytes.
SHA-1 merupakan hasil rekonstruksi dari MD4 dan memperbaiki kekurangann yang ada di MD4 itu sendiri. SHA-1 merupakan algoritma hash yang banyak diaplikasikan dalam keamanan protokol menggunakan SSL (Secure Sockets Layer), PGP (Pretty Good Privacy), XML Signature, dan beberapa aplikasi lainnya.
Langkah-langkah pada SHA-1 adalah sebagai berikut:


  1. 1. Melakukan padding terhadap pesan sehingga panjangnya adalah 448 modulus 512.
  2.  64 bit sisanya adalah representasi biner dari panjang pesan.
  3.  Melakukan inisialisasi5 word buffer (160 bit)A, B, C, D, dan E dengan nilai A=67452301, B=efcdab89, C=98badcfe, D= 10325476, dan E=c3d2e1f0.
  4.  Memproses pesan dalam blok-blok 16 word (512 bit) dengan ketentuan
    • Ekspansi 16 words menjadi 80 words dengan teknik mixing dan shifting.
    • Menggunakan 4 round dari 20 operasi bit pada blok pesan dan buffer.
    •  Menambahkan output dengan input untuk mempeoleh nilai buffer yang baru
  5. Output nilai hash adalah nilai terakhir dari buffer.
Jadi intinya SHA-1 adalah suatu algoritma hash yang memetakan inputan string dengan panjang sembarang menjadi output dengan panjang tetap yaitu 160 bit.

Senin, 07 Maret 2011

Pengertian Game Engine

Dalam kalangan gamer, istilah game engine sudah menjadi salah satu hal yang paling sering di sebutkan. Sebuah game tidak akan menjadi sebuah mahakarya jika tidak ada game engine yang mampu memberikan visual yang menggiurkan. Game engine memberikan kemudahan dalam menciptakan konsep sebuah game yang akan di buat. Mulai dari sistem rendering, physics, arsitektur suara scripting, A.I, dan bahkan sistem networking. Game engine dapat dikatakan sebagai jiwa dari seluruh aspek sebuah game.




Game Engine adalah sebuah perangkat lunak sistem yang dirancang untuk penciptaan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop, seperti Microsoft Windows, Linux, dan Mac OS X. Fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render ( “renderer”) untuk 2D atau 3D grafis, sebuah mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, lokalisasi dukungan, dan sebuah adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.

Ada Berapa Tipe Game Engine?

Game engine biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrograman. Ada 3 tipe game engine yang ada saat ini, diantaranya :

1. Roll-your-own game engine

Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine-nya sendiri. Mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Di sisi lain, mereka kadang menggunakan library komersil atau yang open source. Terkadang mereka juga membuat semuanya mulai dari nol. Biasanya game engine tipe ini lebih disukai karena selain kemungkinan besar diberikan secara gratis, juga memperbolehkan mereka (para developer) lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Kelemahannya banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya. Tower Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine-nya, hanya untuk ditulis ulang semuanya dalam beberapa hari sebelum penggunaannya karena adanya bug kecil yang sangat mengganggu.

2. Mostly-ready game engines

Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/programer. Semuanya termasuk contoh GUI, physiscs, libraries model, texture dan lain-lain. Banyak dari mereka yang sudah benar-benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama. Game engine semacam ini memiliki beberapa batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar-benar terbuka lebar. Hal ini ditujukan agar tidak terjadi banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis dan masih memungkinkan game engine-nya tersebut untuk mengoptimalkan kinerja game-nya. Contoh tipe game engine seperti ini adalah Unreal Engine, Source Engine, id Tech Engine dan sebagainya yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Dengan hal ini dapat menyingkat menghemat waktu dan biaya dari para developer game.

3. Point-and-click engines

Engine ini merupakan engine yang sangat dibatasi, tapi dibuat dengan sangat user friendly. Anda bahkan bisa mulai membuat game sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget. Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan dan biasanya hal ini mencakup semuanya, mulai dari grafis hingga tata suara. Tapi bukan berarti game engine jenis ini tidak berguna, bagi developer cerdas dan memiliki kreativitas tinggi, game engine seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman dan merilis game-game mereka secepatnya.

Contoh Game Engine

Banyak sekali game engine yang ada sekarang ini mulai dari yang gratis sampai yang berbayar. Berikut contoh 10 game engine yang bagus berdasarkan banyaknya review yang ada pada situs DevMaster.net tersebut.

- Game engine gratis

1. OGRE

2. Irrlicht

3. Panda3D. Contoh game-nya : Pirates of the Caribbean Online.

4. Crystal Space

5. jME

6. Blender Game Engine

7. Reality Factory

8. The Nebula Device 2

9. RealmForge

10. OpenSceneGraph

- Game engine berbayar

1. C4 Engine

2. Torque Game Engine

3. 3DGameStudio

4. TV3D SDK 6.5

5. Leadwerks Engine 2

6. Unity. Contoh game-nya : Tiger Woods PGA Tour Online.

7. DX Studio

8. NeoAxis Engine

9. Visual3D.NET Game Engine

10. Esenthel Engine

Game engine yang akan saya ambil untuk diperbandingkan adalah C4 Engine (berbayar) dan OGRE (gratis). Berikut perbandingannya.

Perbandingan Game Engine C4 Engine dengan OGRE

Sebelum dibandingkan alangkah lebih baiknya saya berikan gambaran singkat dari kedua game engine tersebut.

• C4 Engine. Telah mendukung banyak sistem operasi. Game engine ini sudah memiliki paket lengkap untuk pembuatan suatu game dengan dilengkapi oleh teknologi musik dan suara 3D, komunikasi jaringan, perangkat input, memori dan manajemen sumber daya, dan masih banyak lagi.



• OGRE. Singkatan dari Object-Oriented Graphics Rendering Engine yang merupakan game engine fleksibel yang berbasis scene ditulis dengan bahasa C++ didesain agar lebih mudah dipakai oleh para developer untuk memproduksi game dan demo yang menggunakan hardware 3D. Library kelas menggambarkan semua rincian dari penggunaan sistem library seperti Direct3D dan OpenGL yang menyediakan sebuah antarmuka berbasis pada objek dunia dan kelas intuitif lainnya.



Sumber :

http://en.wikipedia.org/wiki/Game_engine

http://widilovers.ngeblogs.com/2010/03/28/analisa-game-engine

http://en.wikipedia.org/wiki/List_of_game_engines

http://www.ilhamsk.com

http://fitrairfansyah.blogspot.com/2010/06/komputer-dan-game.html

Sabtu, 05 Maret 2011

TAHAPAN PEMBUATAN SUATU GAME

1. Tentukan Genre / Jenis Game

Menentukan jenis game yang ingin dibuat, apakah berjenis RPG (role playing game) seperti  Final Fantasy, FPS (first person shooter) seperti Counter-Strike ,Arcade seperti Riden, Fighting seperti Street Fighter, Racing seperti Need For Speed, atau RTS(Real Time Strategy) seperti Age Of Empire. Disarankan pilihlah jenis game yang sesuai dengan kemampuan yang Anda miliki ,mudah dan cepat dalam pembuatannya.

2. Tentukan Tool yang ingin digunakan

Ini bagian yang terpenting, dengan apakah Anda ingin membuat game tersebut, biasanya game dibuat dengan bahasa pemograman, jika Anda adalah seorang programer maka Anda bisa membuat game dengan bahasa pemograman yang Anda kuasai, tetapi jika Anda adalah orang yang belum begitu menguasai atau sama sekali tidak mengetahui tentang dunia pemograman maka jangan berkecil hati dan jangan menganggap bahwa membuat game dizaman sekarang masih susah, banyak sekali software yang khusus dibuat untuk membuat game dengan genre tertentu, ada software yang menggunakan bahasa pemograman dalam pembuatan game atau sama sekali tidak membutuhkan pemograman dalam pembuatannya, sehingga Anda hanya perlu menggunakan mouse untuk mengatur jalannya game, karakter jagoan, musuh dan beberapa komponen game lainnya, software untuk membuat game sangat membantu Anda dalam membuat sebuah game.

3. Tentukan gameplay game

Gameplay adalah sistem jalannya game tersebut, mulai dari menu, area permainan, save, load, game over, story line, misiion sukses, mission failed, cara bermain dan sistem lainnya harus Anda tentukan, misal dalam sistem save Anda hanya akan membuat pemain bisa mensave permainan jika jagoannya sudah menuju kesebuah lokasi, kemudian ketika meload karakter jagoan akan kembali ketempat area save, atau ketika dalam menu pemain hanya akan mendapat pilihan menu play game, load game, credit dan quit.

4. Tentukan grafis yang ingin digunakan

Jenis grafis secara sederhana dapat dibagi menjadi tiga jenis yaitu jenis kartun, semi realis, atau realis. Pilih jenis grafis yang sesuai dengan kebutuhan game Anda dan sesuai dengan kemampuan Anda, kemudian pilih software apa yang ingin Anda gunakan dalam membuat gambarnya, pilihlah yang Anda anggap paling mudah digunakan

5. Tentukan suara yang ingin digunakan

Tanpa suara akan membuat game Anda kehilangan nilainya, karena itulah pilih suara yang ingin digunakan dalam permainan. Pilihan suara bisa Anda bagi-bagi menjadi beberapa bagian seperti bagian main menu, save menu, load menu, shoot, dead, mission sukses, mission failed, loading dan bagian-bagian lainnya, pemilihan suara yang digunakan harus seirama dengan bagiannya, misal untuk bagian mission failed tidak cocok jika menggunakan musik yang bersemangat, haruslah musik yang mengandung kesedihan untuk didengar sehingga akan membuat pemain makin sedih ketika jagoannya kalah. Kemudian pilih software yang ingin Anda gunakan untuk membuat atau mengedit suara yang akan digunakan dalam game.

6. Lakukan perencanaan waktu

Dengan perencanaan waktu akan membuat Anda makin bebas melakukan hal lainnya karena perasaan Anda tidak lagi terganggu dengan game yang belum selesai dibuat, kemudian ketika waktu pembuatan game sudah tiba Anda akan membuat game sesuai dengan urutan waktu yang sudah Anda tentukan sehingga Anda tidak bingung bagian game mana yang belum selesai dikerjakan dan yang sudah selesai dikerjakan. Perencanaan waktu pembuatan sangat baik untuk dilakukan.

7. Proses pembuatan
       
Yang terakhir lakukan pembuatan game karena semua komponen yang Anda perlukan sudah disiapkan dari awal, lakukan proses pembuatan berdasarkan waktu yang sudah ditentukan, tidak ada salahnya Anda meminta pertolongan orang lain sehingga akan mempercepat proses pembuatan game Anda.

8. Lakukan publishing
        
Ketika Anda sudah selesai membuat sebuah game, publish game Anda menjadi setup jika game Anda harus diinstal terlebih dahulu sebelum dimainkan atau publish menjadi exe jika game Anda bisa langsung dimainkan tanpa harus menginstalnya terlebih dahulu, metode mempublish tergantung dengan tool yang Anda gunakan untuk membuat game.

nb: berbagai sumber

Share IT is Easy !!!! Copyright © 2011 | Template created by O Pregador | Powered by Blogger