BAB 2 LANDASAN TEORI. Microsystem yang dirilis pada tahun 1995 sebagai komponen utama dari Sun
|
|
- Yuliani Lie
- 7 tahun lalu
- Tontonan:
Transkripsi
1 BAB 2 LANDASAN TEORI 2.1 JAVA JAVA merupakan bahasa pemograman yang dikembangkan Sun Microsystem yang dirilis pada tahun 1995 sebagai komponen utama dari Sun Microsystem Lingkungan (Platform) Java. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk pemograman di Internet sehingga dirancang agar aman dan portable. Proyek Java dimulai pada bulan Juni tahun 1991 oleh James Gosling. Pada mulanya bahasa ini disebut Oak yang berasal dari pohon oak yang berada di luar kantor Gosling, selain itu juga pernah berubah menjadi Greendon dan akhirnya dinamakan Java yang berasal dari kumpulan kata acak. Gosling bertujuan untuk mengimplementasikan sebuah mesin virtual dan bahasa yang mirip dengan notasi C / C++. Sun merilis implementasi publik pertamanya Java 1.0 di tahun 1995 yang menjanjikan Write Once, Run Anywhere (WORA) dimana dapat dijalankan 10
2 dengan baik pada platform popular, cukup aman, dan menyediakan fitur keamanan yang dapat dikonfigurasi. 11 Berdasarkan white paper resmi dari Sun, Java memiliki karakteristik sebagai berikut : 1. Sederhana (Simple) Bahasa pemrograman Java menggunakan sintaks mirip dengan C++, namun sintaks pada Java merupakan penyederhanaan dari bahasa C++. Penyederhanaan dilakukaan dengan menambahkan fitur-fitur pendukung yang belum terdapat dalam C++ dan menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java sederhana karena hanya memiliki 3 (tiga) tipe angka data primitive, boolean, dan array. Selebihnya, semua yang ada di dalam Java adalah kelas. Fitur yang tidak terdapat dalam C++, yang ditawarkan java, dua diantaranya automatic memori allocation dan memori garbage collection (pengumpulan sampah). Dengan mekanisme ini, user tidak perlu membebaskan memori yang dialokasikan, karena semua dilakukan oleh Mesin Virtual Java. Java juga mendukung penulisan program multi jalinan, yaitu suatu program yang dapat melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan. 2. Berorientasi Objek (Object Oriented) Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali.
3 Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut Terdistribusi (Distributed) Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java. 4. Interpreted Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda. 5. Robust Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai Runtime-Exception handling untuk membantu mengatasi error pada pemrograman. 6. Secure Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut. 7. Architecture Neutral
4 13 Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda dengan Java Virtual Machine(JVM). 8. Portabel Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang. 9. Performance Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain. 10. Multithreaded Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan. 11. Dynamic Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properti ataupun metode dapat dilakukan tanpa menggangu program yang menggunakan class tersebut. Kode Java diproses melalui 2 (dua) tahap, yaitu fase kompilasi dan interpretasi. Dalam fase kompilasi, source code dari Java (file.java) akan diterjemahkan menjadi sebuah bahasa penengah (intermediate language) yang
5 14 disebut Java Bytecode (file.class). Setelah itu,bytecode siap untuk diinterpretasikan atau dijalankan dengan menggunakan Java Virtual Machine (JVM). ( Gambar : Proses Kompilasi dan Interpretasi Kode Java Teknologi Java Dengan berkembangnya versi terbaru dari Java yang disebut Java 2, teknologi Java dibagi menjadi 3 (tiga) macam edisi, yaitu : Teknologi Java pada perangkat mobile (J2ME) Micro edition dari platform Java memenuhi permintaan dari pengembang untuk menciptakan aplikasi guna memenuhi kebutuhan pasar dan konsumen. J2ME merupakan teknologi Java yang menyediakan aplikasi robust untuk berbagai tipe dan ukuran peralatan wireless dan wireline dari mobile phone, PDA dan sistem telematik pada kendaraan.
6 Teknologi Java pada PC Desktop (J2SE) Merupakan edisi standar dari platform Java yang didesain untuk mengembangkan keamanan, kemudahan, dan aplikasi berperforma tinggi untuk desktop dengan jangkauan yang luas meliputi sistem operasi seperti Apple Macintosh, Linux, Microsoft Windows, dan Sun Solaris. Kompatibel dengan desktop terutama pada lingkungan yang heterogen sehingga dapat menambah produktifitas pengguna, komunikasi, dan kolaborasi dengan biaya yang sesuai Teknologi Java untuk bisnis menengah dan besar (J2EE) Edisi Enterprise dari Platform Java ini dikhususkan untuk membantu perkembangan bisnis dengan keperluan pengembangan yang besar, sebagai contoh server dan aplikasi desktop dan juga aplikasi wireless mobile dan wireline. Hingga saat ini telah lebih dari 5 (lima) juta download teknologi Java Enterprise (J2EE) yang digunakan untuk kepentingan segala idustri dan tipe aplikasi dari proses manajemen bisnis, otomatisasi penjualan dan layanan serta produktifitas kantor. (
7 16 Gambar : Setiap Edisi Java untuk Perangkat Platform yang Berbeda ( Dari gambar di atas dapat dilihat bahwa setiap Virtual Machine digunakan pada lingkungan yang berbeda. Hotspot VM merupakan Virtual Machine default yang disediakan oleh Sun untuk mengeksekusi segala skala versi dari Java. CVM (Compact Virtual Machine) dan KVM (Kilobyte Virtual Machine) merupakan Virtual Machine yang lebih kecil yang digunakan untuk menjalankan perangkat mikro, sedangkan Card VM merupakan Virtual Machine yang digunakan pada kartu elektronik, sebagai contoh simcard pada mobile phone.
8 J2ME (Java 2 Micro Edition) J2ME yang didesain oleh Sun Microsystem, merupakan sekumpulan dari Java API untuk pengembangan software bagi perangkat kecil seperti PDA, Mobile Phone, dan aplikasi untuk konsumen lainnya. J2ME dibuat sebagai pengganti dari teknologi sejenis yang bernama Personal Java. J2ME menjadi pilihan populer dalam membuat aplikasi seperti games, instant messaging, dan aplikasi lainnya untuk mobile phone, J2ME juga bias diemulasikan pada PC selama tahap pengembangan dan dapat dengan mudah diaplikasikan di mobile phone. ( Arsitektur J2ME Arsitektur J2ME dibagi menjadi 2 (dua) lapisan, yaitu lapisan konfigurasi dan profile. Hal ini bertujuan untuk meningkatkan fleksibilitas dari desain. Pada lapisan konfigurasi, J2ME memiliki 2 (dua) lapisan, yaitu Connected Limited Device Configuration (CLDC) dan Connected Device Configuration (CDC). Pada lapisan profile, J2ME memiliki beberapa lapisan, yaitu Mobile Information Device Profile (MIDP), Foundation Profile (FP), Personal Profile, Personal Digital Assistance (PDA), Game Profile, Personal Basis Profile, RMI Profile.
9 18 Gambar : Arsitektur J2ME Dilihat pada Gambar di atas, J2ME mempunyai lapisan konfigurasi dan profile yang didukung oleh Java Virtual Machine (C- Virtual Machine dan K-Virtual Machine) Konfigurasi Sun memperkenalkan konfigurasi untuk mendukung jangkauan produk yang luas yang sesuai dengan scope dari J2ME. Konfigurasi mendefinisikan sebuah Platform Java untuk perangkat dengan jangkauan yang luas. Konfigurasi terikat erat dengan Java Virtual Machine. Kenyataannya, konfigurasi mendefinisikan fitur bahasa Java dan Library Java utama dari Java Virtual Machine khusus untuk konfigurasi yang berbasis pada memori, tampilan, konektifitas jaringan, dan kekuatan proses. Dua konfigurasi yang sudah didefinisikan sekarang ini
10 adalah Connected Device Configuration (CDC) dan Connected Limited Device Configuration(CLDC) Connected Device Configuration (CDC) CDC bertujuan untuk mengaplikasikan kemampuan-kemampuan utama dari tiap jenis device, dimana target CDC tersebut adalah memiliki minimal memori 2MB termasuk RAM dan ROM. CDC menspesifikasikan penggunaan Java 2 Platform Virtual Machine secara penuh disebut juga Compact Virtual Machine (CVM). Walaupun CVM mendukung fitur yang sama seperti J2SE Virtual Machine, CVM dirancang untuk konsumen dan embedded device. Ini berarti J2SE VM telah dikembangkan ulang untuk disesuaikan dengan batasan-batasan dari device yang memiliki sumber daya terbatas Connected Limited Device Configuration(CLDC) Menurut buku Advanced Java 2 Platform HOW TO PROGRAM karangan Deitel, Deitel, dan Santry (2002, p758), Connected Limited Device Configuration (CLDC) merupakan sekumpulan dari API yang memungkinkan pengembang untuk
11 20 membuat aplikasi pada peralatan yang memiliki sumber daya terbatas (keterbatasan besar layer, memori, power, dan bandwith). J2ME CLDC memiliki virtual machine dan penerjemah (interpreter) yang menjalankan aplikasi-aplikasi dan sekumpulan class yang bisa digunakan pengembang untuk mengembangkan dan menjalankan program pada peralatan yang memiliki sumber daya terbatas. Tujuan dari CLDC adalah untuk menggambarkan suatu Platform Java standart untuk device dengan spesifikasi memori kurang dari 512 KB. CLDC untuk Kilo VM (KVM), yang merupakan JVM yang sudah dioptimalisasi untuk battery operated devices (perangkat yang beroperasi dengan baterai) berdasarkan dari 16-bit atau 32-bit microprocessor dengan 160 s.d 512 KB memori untuk Java. Kebutuhan minimal sebagai tempat penyimpanan untuk KVM dan library yang berhubungan adalah sekitar 128 KB. Karena variasi sistem perangakat lunak yang luas pada berbagai personal divice, contoh : sebuah OS mungkin akan mendukung berbagai proses secara bersamaan
12 21 sedangakan OS yang lainnya mungkin atau tidak mungkin mendukung sistem file. Berikut persyaratan minimum hardware untuk menggunakan CLDC : o Setidaknya terdapat 160 kilobytes dari memorinonvolatile untuk library virtual machine dan CLDC. o Setidaknya terdapat 32 kilobytes dari memori volatile atau heap untuk proses menjalankan Virtual Machine. ( Requirements,-and-Scope/Requirements/) Profile Lapisan profile merupakan lapisan kedua dari arsitektur J2ME. Lapisan ini terdiri dari sekumpulan Application Programming Interface (API). Profile merupakan perpanjangan dari konfigurasi, yaitu mengatur segala hal yang spesifik untuk sebuah device. Profile terdiri dari kelas-kelas java yang menyediakan implementasi dari fitur-fitur untuk small computing device. Saat ini, terdapat tujuh profile dalam J2ME : Mobile Information Device Profile (MIDP) MIDP digunakan dengan Connected Limited Device Configuration (CLDC) dan berisi kelas-kelas
13 22 yang menyediakan penyimpanan lokal, sebuah user interface, dan kemampuan jaringan untuk sebuah aplikasi yang berjalan pada perangkat mobile Foundation Profile (FP) Foundation Profile (FP) digunakan dengan Connected Device Configuration (CDC). Terdapat keseluruhan dari kelas-kelas Java yang utama dan menjadi dasar hampir pada semua Connected Device Configuration (CDC) profile lain Personal Profile Personal profile digunakan dengan Connected Device Configuration (CDC) dan menambah fungsi user interface dasar untuk foundation profile. Profile ini menyediakan class yang mengimplementasikan user interface muktahir yang mampu menampilkan banyak windows pada waktu yang bersamaan Personal Digital Assistance (PDA) profile Personal digital assistance digunakan dengan Connected Limited Device Configuration (CLDC). PDA menyediakan user interface library yang lebih muktahir dan java-based API (Application Programming Interface) untuk mengakses fitur
14 23 penting dari Host Operating Sistem. PDA profile mirip dengan MIDP (Mobile Information Device Profile), namun PDA profile mengacu pada PDA yang memiliki lapisan yang lebih baik dan lebih banyak memori dari pada mobile phone Game Profile profile digunakan dengan Connected Device Configuration (CDC). Pada game profile disediakan platform untuk mengembangkan aplikasi game pada perangkat CDC Personal Basis Profile Profile ini mirip dengan personal profile. Pada profile ini disediakan RMI (Remote Invocation) classes untuk kelas-kelas utama yang terdapat pada Foundation Profile, digunakan dengan Connected Device Configuration (CDC) dan Foundation Profile (FP). Tetapi pada personal basis profile disediakan kelas-kelas untuk mengimplementasikan sebuah user interface yang sederhana yang mampu menampilkan sebuah windows pada satu waktu.
15 RMI Profile Profile ini juga digunakan dengan Connected Device Configuration (CDC). 2.3 Mobile Information Device Profile (MIDP) MIDP merupakan sekumpulan API (Application Programming Interface) yang mempermudah pengembang dalam menangani masalah-masalah khusus pada aplikasi mobile seperti membuat user interface, mengijinkan dalam penyimpanan lokal, dan mendefinisikan daur hidup dari aplikasi client MIDP (MIDlet). Alat yang digunakan untuk menjalankan aplikasi menggunakan MIDP disebut MIDP device. Alat tersebut termasuk mobilephone dan pager. MIDP merupakan versi dari platform java yang berdasarkan atas CLDC (Connected Limited Divice Configuration) dan KVM (Kilobyte Virtual Machine) yang mengacu untuk digunakan pada perangakat informasi mobile dengan tampilan dan storage (media penyimapanan) yang terbatas, seperti mobile phone dan beberapa jenis PDA. Oleh karena itu, MIDP menyediakan user interface yang sederhana dan jaringan. MIDP merupakan profile J2ME yang paling dikenal karena merupakan dasar bagi wireless java. Kebutuhan spesifikasi software dan hardware untuk menjalankan MIDP adalah sebagai berikut :
16 25 Syarat minimum spesifikasi hardware : Memori o 256 kilobyte dari non-volatile memori untuk komponen MIDP. Karena MIDP berjalan di atas CLDC, jadi ukuran statistik dari CLDC harus dimasukkan juga. o 8 kilobyte dari non-volatile memori untuk aplikasi data yang tetap. o 128 kilobyte dari volatile memori/heap untuk run time virtual. Display o Ukuran layar : 96 x 54 o Kedalaman tampilan : 1-bit o Ukuran pixel (aspect radio) : sekitar 1:1 Input o One handed keypad o Two handed keyboard o Touch screen Jaringan o Koneksi 2 arah (two - way), wireless, intermittent, dengan bandwidth terbatas. Suara o Kemampuan untuk memainkan nada, baik via hardware atau algoritma software. Syarat minimum spesifikasi software :
17 26 Kemampuan untuk menjalankan beberapa proses dalam waktu yang bersamaan, masing-masing dengan lokasi memori yang berbeda-beda. Kernel minimal untuk mendukung hardware (interupt handling, exception, dan minimal scheduling). Mekanisme untuk membaca dan menulis dari non-volatile memori untuk mendukung MIDP. Kemampuan untuk membaca dan menulis akses untuk jaringan perangkat wireless untu mendukung jaringan MIDP API. Mekanisme untuk menyediakan waktu untuk menulis ke media penyimpanan dan menyediakan timer dasar API (timer support). Kemampuan minimal untuk menulis tampilan grafik bitmap. Mekanisme untuk menerima input dari pengguna MIDlet (MIDP Application) MIDlet merupakan program yang ditulis untuk dieksekusikan pada micro information devices. MIDP memungkinkan eksekusi banyak MIDlet. MIDlet merupakan bagian dari javax.microedition.midlet. MIDlet yang terdapat pada MIDP, memiliki file descriptor bernama JAD pada setiap MIDlet-nya, yang memungkinkan software manejemen aplikasi pada perangkat mengidentifikasi apa yang diperlukan dalam instalasi terlebih dahulu.
18 27 Ada beberapa aturan MIDlet berdasarkan dari run time environment-nya. Pengatur aplikasi yang ada di dalam perangkat bertanggung jawab untuk memulai MIDlet. Sebuah aplikasi memiliki akses sumber daya hanya pada : Semua files dalam aplikasi file JAR. File JAR harus memiliki semua kelas-kelas yang dibutuhkan untuk menjalankan aplikasi dengan semua sumber daya, seperti file image dan data pengguna. Isi dari MIDlet descriptor file. Kelas-kelas yang ada sebagai bagian dari library CLDC dan MIDP Siklus hidup MIDlet Siklus hidup dari sebuah MIDlet ditangani oleh Application Management Software (AMS). AMS ini adalah sebuah lingkungan dimana siklus dari sebuah MIDlet mampu diciptakan, dijalankan, dihentikan, maupun dihilangkan. AMS sering pula dinamakan dengan Java Application Manager (JAM). MIDlet memiliki beberapa state atau keadaan yaitu pause, active, dan destroy. Ketika masing-masing state dipanggil, beberapa metodemetode standard yang bersesuaian dipanggil. Metode-metode ini merupakan bawaan dari J2ME.
19 28 Gambar : MIdlet Lifecycle Urutan eksekusi MIDlet : 1. Ketika MIDlet pertama kali diciptakan dan diinisialisasi, maka MIDlet akan barada dalam state pause. 2. Apabila terjadi kesalahan selama konstruksi MIDlet, maka MIDlet akan berpindah ke state destroy, dan MIDlet batal diciptakan dengan jalan memanggil fungsi standar destroyapp(). 3. Selanjutnya, ketika MIDlet dijalankan, maka MIDlet akan berada pada state active, dalam hal ini fungsi stnadar yang dipanggil adalah startapp(). 4. Akan terjadi jika di tengah jalan MIDlet dihentikan sementara, maka MIDlet akan berada dalam state pause dengan jalan memanggil fungsi standar pauseapp(). Pada state ini diperlukan proses cleanup terhadap garbage collector yang dihasilkan.
20 SMSLib SMSLib adalah pustaka java (java library) yang dapat digunakan untuk menerima atau mengirim SMS (Short Message Service) dengan menggunakan modem GSM atau seluler GSM yang sesuai. SMSLib juga mendukunga beberapa operator SMS besat (hanya untuk pesan outbound ). Secara umum, SMSLib mempunyai fungsi : Mendukung seluler GSM dan modem GSM yang dikoneksikan menggunakan serial port atau IP Bekerja pada PDU atau protokol teks Mendukung inbound dan outbound teks pesan sederhana Pesan kilat Pesan outbound dengan informasi atau alamat port Outbound pesan WAP PUSH SI Laporan status (pengiriman) pesan Informasi dasar GSM yang tersedia : modem, manufaktur, S/W revisi, level sinyal, dan lain-lain. SMSLib mempunyai konsep gateway, dimana antarmuka pada perangkat atau servis dapat mengirim dan atau menerima pesan SMS. Gateway dapat berupa modem GSM atau SMS provider. SMSLib dapat mengatasi beberapa gateway dalam waktu yang bersamaan. SMSLib menawarkan tanpa terbatas prioritas setiap pesan yang dapat digunakan untuk mengirim pesan. Ketika ini mungkin, prioritas
21 SMSLib dapat dipetakan secara langsung ke fungsi gateway, jika tidak mereka akan disimulasikan. 30 SMSLib memberikan dua pilihan untuk menerima pesan : Synchronously : kita dapat mengambil tanggung jawab dan secara periode memanggil metode baca()/read(). Asynchronously: menunggu SMSLib untuk memanggil sampai pesan diterima. SMSLib memberikan dua pilihan untuk mengirim pesan : Synchronously : ketika SMSLib dipanggil untk mengirim pesan, thread di blok sampai pesan diterima atau gagal terkirim. Asynchronously: ketika SMSLib dipanggil untuk mengirim pesan, thread tidak diblok dan SMSLib kembali secepatnya. SMSLib mengurutkan pesan dan mengirim pesan-pesan tersebut di belakang. SMSLib memberi pilihan untuk mendefinisikan metode callback dimana akan dipanggil ketika sesuatu terjadi : Inbound voice calls : SMSLib dapat diatur untuk memanggil saat diterima oleh voice call. Inbound message : Setiap pesan diterima, SMSLib dapat mengatur panggilan dalam metode yang spesifik. Outbound: ketika pesan yang dikirim diasynchronomiskan, SMSLib dapat diatur untuk memanggil metode spesifik dengan pesan dikirim.
22 31 Perubahan status gateway : SMSLib dapat memberitahukan setiap gateway mengubah status. Queque operasi mengirim:smslib dapat memberitahukan bahwa setiap saat untuk siap mengirim pesan dengan urutan background. 2.5 Keamanan (Security) Aspek-aspek yang berkaitan dengan ancaman keamanan yaitu : Interruption Data atau informasi yang berada pada sistemkomputer rusak atau dibuang sehingga menjadi tidak ada dan tidak berguna. Interception Orang yang tidak berhak berhasil mendapatkan akses informasi dari dalam sistem komputer. Modification Orang yang tidak berhak, tidak hanya berhasil mendapatkan akses informasi dari dalam sistem komputer, tetapi juga dapat melakukan perubahan terhadap informasi. Fabrication Orang yang tidak berhak, meniru atau memalsukan suatu objek ke dalam sistem.
23 32 Klasifikasi keamanan pada sistem informasi : Network Security Fokus kepada media pembawa informasi / data, seperti jaringan komputer. Komputer Security Fokus kepada komputer (server, workstation, terminal), termasuk masalah di dalamnya yang berhubungan dengan sistem operasi. Application Security Fokus kepada program aplikasi (software) dan database. 2.6 Kriptografi Serangan terhadap sistem jaringan komputer dan keamanan data membuat teknik untuk pengamanan data terhadap serangan tersebut pun semakin berkembang. Berbagai macam cara dikembangkan untuk menghindari serangan terhadap keamanan data dan sistem jaringan komputer, cara yang sering digunakan adalah dengan proses enkripsi dan dekripsi. Enkripsi adalah pengubahan bentuk dari data asli menjadi data yang tidak mudah dimengerti, sedangkan deskripsi adalah pengubahan dari data yang tidak mudah dimengerti dikembalikan menjadi data semula atau data asli. Pesan asli biasanya disebut plaintext, sedangkan pesan yang sudah disandikan disebut ciphertext. Proses enkripsi dan deskripsi ini disebut dengan kriptografi.
24 33 Gambar : Proses Enkripsi dan Dekripsi Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasian berita (bruce Schneier Applied Cryptography). Dalam ilmu ini, dipelajari bagaimana membuat suatu pesan yang dikirim oleh pengirim, dapat tersampaikan dengan aman pada penerima dengan cara menyamarkan dalam bentuk sandi yang tidak mempunyai makna. Kriptografi berfungsi untuk menjamin penerima bahwa data yang dikirim benar-benar dari pihak pengirim yang sah dan begitu juga sebaliknya menjamin pengirim bahwa data yang dikirim sampai pada penerima yang sah. Selain itu, kriptografi menjamin bahwa data yang mengalami modifikasi akan terdeteksi dan antara pengirim dan penerima masing-masing tidak dapat menyangkal bahwa telah mengirim atau menerima data. Dalam mengantisipasi ancaman keamanan terutama interception, modification, dan fabrication dalam literature telah diperkenalkan 3 jenis algoritma kriptografi yaitu : Algoritma kriptografi kunci rahasia (algoritma simetris) Algoritma yang menggunakan kunci yang sama pada enkripsi dan deskripsinya.
25 34 Gambar : Enkripsi dan Deskripsi Kunci Simetris Berdasarkan jumlah data per proses dan alur pengolahan data di dalamnya, algoritma kunci simetris ini dibedakan menjadi dua kelas, yaitu blockcipher dan stream-cipher. Block-cipher adalah algoritma yang akan membagibagi plaintext yang akan dikirim dengan ukuran tertentu (disebut blok) dengan panjang t, dan setiap blok dienkripsi dengan menggunakan kunci yang sama. Pada umumnya, block-cipher memproses teks pada plaintext dengan blok yang relatif panjangnya lebih dari 64 bit. Hal ini dilakukan untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci. Sedangkan, stream-cipher adalah algoritma yang mengenkripsikan data persatuan data, seperti bit, byte, nible, atau per lima bit. Setiap mengenkripsikan satu satuan data, digunakan kunci yang merupakan hasil pembangkitan dari kunci sebelumnya. Penggunaan metode algoritma simetris ini membutuhkan persetujuan antara pengirim dan penerima tentang kunci sebelum mereka saling mengirim pesan. Keamanan dari kunci simetris tergantung pada kerahasiaan kunci, apabila
26 seorang penyusup dapat menemukan kunci maka dengan mudah dapat membaca pesan yang sudah dienkripsi. 35 Contoh algoritma kriptografi kunci rahasia (algoritma simetris) : DES, IDEA, AES (blok chiper), OTP, A5, RC4 (stream chiper). Algoritma kriptografi kunci publik (algoritma asimetris) Algoritma yang mempergunakan kunci yang berbeda-beda enkripsi dan deskripsinya. Gambar 2.6-3: Enkripsi dan Deskripsi Kunci Asimetris Pada metode ini, kunci untuk enkripsi boleh disebarluaskan kepada umum. Sedangkan, kunci untuk mendeskripsikan hanya disimpan oleh orang yang bersangkutan. Seperti pada gambar 2.6-3, bila seseorang ingin mengirim pesan kepada orang lain maka orang tersebut mengenkripsi pesan yang kita kirim kepadanya lalu orang tersebut akan mendeskripsikan pesan tersebut dengan
27 kunci privat miliknya. Contoh algoritma Asimetris : Knapsack, RSA(Rivert- Shamir-Adelman), Diffie-Hellman. 36 DSA Contoh algoritma kunci public (algoritma asimetris) : RSA, DH, ECC, Fungsi hash satu arah Fungsi ini biasanya digunakan bila kita menginginkan pengambilan sidik jari suatu pesan. Dinamakan juga sebagai fungsi kompresi karena biasanya, masukkan dari fungsi satu arah ini selalu lebih besar dari pada keluarannya. Hal inilah yang menyebabkan terjadinya kompresi. Namun, kompresi hasil fungsi ini tidak dapat dikembalikan ke asalnya. Hal inilah yang menyebabkan fungsi ini disebut fungsi satu arah.contoh algoritma fungsi hash antara lain, MD4, MD5, SHA-0, SHA-1, SHA-256, SHA-512. Terdapat empat tujuan dasar dari ilmu kriptografi yang juga merupakan aspek keamanan data yaitu : Authority Informasi yang berada pada sistem jaringan hanya dapat dimodifikasi oleh pihak yang memiliki otoritas atau kunci rahasia. Non-Repudiation Usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman atau terciptanya suatu informasi oleh yang mengirimkan atau membuat. Integrity
28 37 Berhubungan dengan penjagaan dari perubahan data secara tidak sah. Sistem dirancang untuk mampu mendeteksi menipulasi data oleh pihakpihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya. Authentication Berhubungan dengan indentifikasi atau pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentifikasi keaslian, isi data, waktu pengiriman, dan lain-lain. 2.7 Algoritma Twofish Pada tahun 1972 dan 1974, National of Standart (yang sekarang bernama NIST) mengumumkan adanya standar enkripsi, yaitu DES yang sangat beralasan karena penggunaannya yang luas dan merupakan algoritma yang sangat sukses di dunia. Dalam proses perkembangannya ternyata key-key dalam DES dirasa terlalu pendek bagi keamanan komersial sehingga membuat gusar para kriptografer yang menginginkan proses algoritma yang closed door. Akhirnya, NIST mengumumkan Advanced Encryption Standard (AES) pada tahun Salah satu kandidat AES adalah Twofish.
29 38 Twofish merupakan 128-bit block sandi/cipher yang bisa menerima panjang varibel kunci/key sebesar 256 bit. Cipher tersebut berasal 16-round jaringan Feitsel dengan fungsi bijektif F yang dilanjutkan dengan empat keydependent 8-by-b-bit S-boxes, satu fixed 4-by-4 maximum distance separable matrix over GF(2 8 ), satu pseudo-hadamard transform, satu rotasi bitwise dan satu desain key schedule Mekanisme Kerja Twofish Desain Twofish ditekankan pada kinerjanya. Implementasi dari Twofish sangat efisien pada beragam platform, yaitu CPU 32 bit, smart card 8 bit, dan perangkat VLSI. Desain twofish memungkinkan kinerja beberapa layer, tergantung pada kepentingan relative terhadap kecepatan enkripsi, key setup, penggunaan memori, hardware gate count, dan parameter implementasi yang lain. Hasilnya adalah algoritma yang sangat fleksibel yang dapat diimplementasikan secara efisien dalam beragam aplikasi kriptografi. Algoritma Twofish telah diimplementasikan empat macam pilihan keying yang berbeda. Terdapat beberapa pilihan keying yang mungkin, dimana masing masing mempunyai perbedaasn tipis dalam hal key setup. Empat macam keying tersebut adalah : 1. Full Keying
30 39 Pilihan ini melakukan parkomputasi terhadap kunci. Dalam menggunakan pilihan ini, suatu komputasi dari g berisi empat buah tabel pencarian, dan tiga buah operasi XOR. Sementara itu, kecepatan enkripsi dan deskripsinya bernilai konstan tanpa menghiraukan ukuran kunci. 2. Partial Keying Pada aplikasi yang sebagian kecil blok dienkripsikan dengan kunci tunggal tidak akan menjadi masalah dalam membangun key schedule yang lengkap. Pilihan ini melakukan prakomputasi terhadap empat S-boxes dalam tabel berukuran 8 x 8 bit, dan menggunakan empat buah tabel MDS 8 x 32 bita untuk melakukan perkalian MDS. Kecepatan deskripsi dan enkripsi tidak menghiraukan ukuran kunci. 3. Minimal Keying Pada aplikasi yang mengenkripsikan sangat sedikit bagian dari blok dengan kunci tunggal, terdapat kemungkinan optimasi yang lebih jauh. Penggunaan pilihan Minimal Keying ini hanya memerlukan sebuah tabel 1 Kb untuk menampung S-boxes yang diprakomputasi secara parsial. Pentingnya byte key dari S yang diprakomputasi adalah leyaknya mereka diperlukan dalam setiap round. 4. Zero Keying Pilihan ini tidak melakukan prakomputasi terhadap S-boxes, dan juga tidak memerlukan tabel ekstra. Sebagai gantinya, setiap entri di komputasi secara melayang. Waktu key setup secara murni digunakan untuk melakukan komputasi terhadap nilai K i dan S. Untuk
31 40 aplikasi yang tidak memiliki waktu key setup sama sekali, waktu yang digunakan untuk mengenkripsikan satu blok adalah penjumlahan dari waktu key setup dan waktu enkripsi zero keying Proses Algoritma Twofish Gambar : Struktur Algoritma Twofish Kriptanalis pada Twofish Lebih dari seribu jam telah dilakukan kriptanalis terhadap twofish. Sebuah catatan penting dari attack yang berhasil dilakukan terhadapnya adalah sebagai berikut:
32 41 a. 5- round twofish dengan 2 22,5 pasangan plaintext terpilih dan 2 51 komputasi fungsi g b. 10 round twofish dengan sebuah key attack terpilih,memerlukan 2 32 palintext terpilih dan sekitar 2 32 plaintext terpilih yang adaptif dan sekitar 2 32 usaha. Fakta bahwa twofish mampu menahan related key attack dengan baik merupakan fakta yang paling menarik dan beralasan, karena relatedkey memberikan kepada attacker hampir semua kontrol terhadap input cipher. Kriptanalis konvensional memungkinkan suatu attacker mengontrol input plaintext dan ciphertext didalam cipher, yaitu keyschedule. Berdasarkan hasil analisis ini, dapat diterka bahwa tidak lagi terdapat attack yang efisien terhadap twofish selain brute force yaitu attack yang paling efisien untuk melawan twofish dengan key 128 bit harus memiliki kompleksitas 2 128, sementara untuk twofish dengan key 192 bit harus menggunakan attack dengan kompleksitas dan untuk twofish dengan key 256 bit harus menggunakan attack dengan kompleksitas Salah satu attack yang dibahas disini adalah adalah Partial Key Guessing Attack. Sebuah key schedule yang bagus harus memiliki properti dimana ketika attacker menebak beberapa subset dari bit- bit key, attacker tidak memahami tentang urutan subkey atau operasi internal lainnya di dalam cipher tersebut. Dan twofish memiliki tipe key schedule yang seperti itu.
33 42 Misalnya, ada sebuah attacker yang menebak suatu kata genap dari key M c. Attacker tidak mempelajari apapun dari key S, untuk tiap round blok subkey, ia mengetahui A i. Jika ia menebak dengan suatu K o, ia dapat menghitung K 1 yang besesuaian. Ia dapat melakukan attack round subkey sebanyak yang dia suka, tapi tiap tebakan memakan 32 bit. Dapat dilihat bahwa tidak ada jalan bagi attacker untuk menguji tebakan 96 bit sekalipun hanya satu round subkey dengan cara ini terhadap full Twofish. Jalan lainnya adalah dengan menebak input key S terhadap G. Cara ini hanyalah setengah jalan dari full key M, tapi tidak memberikan informasi tentang round key A I. Dapat dilihat bahwa dengan cara ini pun tak ada jalan bagi attacker untuk menguji tebakan s terhadap twofish 16 round yang penuh sehingga analisis menyarankan bahwa attack terhadap full Twofish dengan menggunakan diferensial realeted key, adalah suatu pekerjaan yang sia- sia karena resistensi cipher Twofish yang handal terhadap attacker sejenis Keunggulan Twofish Keunggulan algoritma kriptografi Twofish adalah sebagai berikut : Memiliki varian dengan sebuah nomor variabel dari setiap round. Memiliki key schedule yang dapat diprakomputasikanuntuk kecepatan maksimum dan penggunaan memori manimum.
34 43 Cocok sebagai stream chipper, fungsi hash satu arah, MAC dan pseudo random number generator, dengan menggunakan metode konstruksi yang dapat dimengerti. Memiliki varian famili-key untuk memungkinkan versi chipper yang berbeda dan non-interrupterable. Selain itu, algoritma twofish memenuhi kriteria yang ditetapkan oleh NIST yaitu : Block chiper simetris 128-bit Memiliki panjang kunci antara lain : 128 bit, 192 bit, dan 256 bit. Tidak terdapat kunci kunci yang lemah. Memiliki efisiensi pada software dan hardware dari platform yang berbeda. Memiliki rancangan yang fleksibel, misalnya menerima panjang kunci tambahan, dapat diterapkan pada software dan hardware dari platform berbeda, cocok untuk stream chipper, fungsi hash dan MAC. Desain yang sederhana, memudahkan baik untuk analisa maupun implementasi. Pemenuhan Twofish terhadap kriteria yang dibutuhkan NIST, yaitu 128-bit block, 128 bit, dan 192 bit, dan 256 bit membuat Twofish efisien terhadap platform manapun. Twofish mampu melakukan : a. Melakukan enkripsi data pada 285 siklus per block di atas Pentium Pro setelah menjalankan key setup siklus clock.
35 b. Melakukan enkripsi data pada 860 siklus per block di atas Pentium Pro setelah menjalankan key setup 1250 siklus clock. 44 c. Melakukan enkripsi data pada siklus per block di atas sebuah 6805 smart card setelah mejalankan key setup 1750 siklus clock. 2.8 MD5 (Message Digest Algorithm) MD5 (Message-Digest algorithm) ialah fungsi hash kriptografik yang digunakan secara luas dengan nilai hash 128-bit. MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Enkripsi MD5 memang irreversible namun penggunaannya adalah dengan membandingkan data yang tersimpan (sudah terenkripsi) dengan hasil enkripsi data yang akan dibandingkan. Sehingga pengujian dapat dilakukan tanpa harus mengembalikan (dekrip) data Algoritma MD5 Terdapat empat langkah pokok dalam proses pembuatan message digest pada algoritma MD5, yaitu : 1. Penambahan Bit-Bit Pengganjal
36 45 Pesan ditambah dengan bit-bit pengganjal hingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. Hal ini berarti bahwa panjang pesan setelah ditambahi bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. Angka 512 muncul karena MD5 memproses pesan dalam blok-blok yang berukuran 512. Pesan dengan pankang 448 bit pun tetap ditambah dengan bit-bit pengganjal. 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 0 bit. 2. Penambahan Nilai Panjang Pesan Semula 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. 3. Inisialisasi Penyangga (Buffer) MD Sebagai Nilai Awal MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 4 x 32 = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir. Keempat penyangga ini diberi nama A, B, C, D.
37 Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut : 46 (Catatan : beberapa versi MD5 menggunakan nilai inisialisasi yang berbeda, yaitu : A = B = EF CD AB 89 C = 98 BA DC FE D = Pengolahan Pesan dalam Blok Berukuran 512 Bit Pesan dibagi menjadi L buah blok yang masingmasing 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, Gambar proses HMD5 diperlihatkan pada Gambar
38 Gambar : Proses Manipulasi Blok 512 bit dalam MD5 47
39 48 Proses H terdiri dari 4 putaran, dan masing-masing putaran melakukan operasi dasar MD5 sebanyak 16 kali dan setiap kali operasi dasar memakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen tabel T. Pada gambar, Y q di atas menyatakan blok 512 bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MD q adalah nilai message digest 128 bit dari proses H ke-q. pada awal proses, MD q berisi nilai inisialisasi penyangga MD. Fungsi-fungsi f F, f G, f H, dan f I masing-maisng berisi 16 kali operasi dasar terhadap masukkan, setiap operasi dasar menggunakan elemen tabel T. a b c d g + + X[k] + T[i] CLS s + Gambar : Operasi Dasar MD5
40 49 Operasi dasar MD5 ditulis dengan sebuah persamaan sebagai berikut : a b + CLSs(a + g(b,c,d) + X[k] + T[i]) dimana, a,b,c,d = empat buah variable penyangga 32 bit (berisi nilai penyangga A,B,C,D) g = salah satu fungsi F,G,H,I CLS s = Circular Left Shift sebanyak s bit (notasi : <<<s) X[k] = kelompok 32 bit ke-k dari blok 512 bit message ke-q. Nilai k=0 sampai 15 T[i] = elemen Tabel T ke-i (32 bit) + = operasi penjumlahan modulo 2 32 Karena ada 16 kali operasi dasar, maka setiap kali selesai satu operasi dasar, penyangga-penyangga tersebut ke kanan secara sirkuler dengan cara pertukaran sebagai berikut : temp d d c c b b a a temp
41 Kelemahan MD5 kekurangan MD5 adalah proses perubahan data asli menjadi MD5 perlu waktu relatif lama, memerlukan hardware komputer yang cukup besar, semakin besar kemampuan komputer makin cepat kinerjanya Kelebihan MD5 Kelebihan dari MD5 adalah sulit untuk dipecahkan walaupun dengan serangan brute force, tingkat keamanan MD5 adalah salah satu yang terbaik, tidak bisa diubah kembali menjadi data asli (irreversible), hasil keluaran MD5 selalu 32 karakter. 2.9 SHA SHA adalah fungsi hash satu arah yang didesain oleh National Security Agency (NSA) dan dipublikasikan oleh National Institute of Standarts and Technology (NIST) sebagai Federal Information Processing Standard (FIPS) pada tahun Fungsi hash ini disebut SHA-0 yang pada dua tahun kemudian dipublikasikan SHA-1 sebagai generasi lanjutan yang juga merupakan revisi dan perbaikan dari SHA-0. Lalu pada tahun 2002 dipublikasikan empat variasi lainnya,
42 51 yaitu : SHA-224, SHA-256, SHA-384, dan SHA-512. Keempat variasi ini termasuk dalam keluarga SHA-2. Detail struktur dan algoritma keluarga SHA hampir sama. bawah ini : Perbedaan pada masing-masing variasi SHA dapat dilihat pada tabel di SHA-1 SHA-256 SHA-384 SHA-512 Ukuran message digest Ukuran pesan <2 64 <2 64 <2 128 <2 128 Ukuran block Ukuran huruf Number of steps Keamanan Catatan : 1. Satuan ukuran dalam bits. 2. Referensi keamanan merupakan fakta dari serangan birthd ay attack terhadap message digets dari ukuran n produces bertubrukan dengan workfaktor sekitar 2 n/2. Tabel : Perbandingan SHA
43 52 Keamanan SHA dinyatakan karena secara komputasi tidak dapat ditemukan isi pesan dari message digest yang dihasilkan, dan tidak dapat dihasilkan dua pesan yang berbeda menghasilkan message digest yang sama. Setiap perubahan yang terjadi pada pesan akan menghasilkan message digest yang berbeda SHA -1 SHA-1 menerima masukkan berupa pesan dengan ukuran maksimum adalah 264 bit dan menghasilkan message digest yang panjangnya 160 bit. Panjang message digest pada SHA-1 pebih panjang dari pada yang dihasilkan oleh MD5 yang menghasilkan panjang message digest 128 bit. Proses SHA-1 secara garis besar adalah sebagai berikut : 1. Penambahan bit-bit pengganjal (padding bits) Pesan ditambah dengan sejumlah bit pengganjal yang sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modul 512. Ini berarti, panjang pesan setelah ditambah dengan bit-bit pengganjal adalah 64 bit kurang sari kelipatan 512. Pesandengan panjang 448 bit pun tetapditambah dengan bitbitpengganjal.jika panjang pesan 448 bit, maka pesantersebut ditambah dengan 512 bitmenjadi 960 bit. Jadi, panjang bit-bitpengganjal adalah
44 antara 1 sam pai 512.Bit-bit pengganjal terdiri dari sebuah bit1 diikuti dengan sisanya Penambahan nilai panjang pesan semula Pesan yang telah diberi bit-bit pengganjal, selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semua. Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit. 3. Inisialisasi penyangga (buffer) MD SHA membutuhkan 5 buah penyangga (buffer) yang masingmasing panjangnya 32 bit. Total panjang penyangga adalah 5 x 32 bit = 160 bit. Kelima penyangga ini menampung hasil antara dan hasil akhir. Kelima penyangga tersebut diberi nama A, B, C, D, dan E. Dimana setiap penyangga diinisialisai dengan nilai-nilai (dalam notasi HEX) sebagai berikut : A = B = EFCDAB89 C = 98BADCFE D = E = C3D2E1F0
45 Sebagai 32 bit string, setiap penyangga diinisialisasikan dengan nilai-nilai (dalam notasi HEX) sebagai berikut : 54 Word A = Word B = EF CD AB 89 Word C = 98 BA DC FE Word D = Word E = C3 D2 E1 F0 4. Pengelolaan pesan dalam blok berukuran 512 bit Pseudocode untuk SHA-1 adalah sebagai berikut : Note 1: All variables are unsigned 32 bits and wrap modulo 2 32 when calculating Note 2: All constants in this pseudo code are in big endian. Within each word, the most significant byte is stored in the leftmost byte position Initialize variables: h0 = 0x h1 = 0xEFCDAB89 h2 = 0x98BADCFE
46 55 h3 = 0x h4 = 0xC3D2E1F0 Pre-processing: append the bit '1' to the message append 0 k < 512 bits '0', so that the resulting message length (in bits) is congruent to (mod 512) append length of message (before pre-processing), in bits, as 64-bit big-endian integer Process the message in successive 512-bit chunks: break message into 512-bit chunks for each chunk break chunk into sixteen 32-bit big-endian words w[i], 0 i 15 Extend the sixteen 32-bit words into eighty 32-bit words: for i from 16 to 79 w[i] = (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) leftrotate 1 Initialize hash value for this chunk: a = h0 b = h1
47 56 c = h2 d = h3 e = h4 Main loop: for i from 0 to 79 if 0 i 19 then f = (b and c) or ((not b) and d) k = 0x5A else if 20 i 39 f = b xor c xor d k = 0x6ED9EBA1 else if 40 i 59 f = (b and c) or (b and d) or (c and d) k = 0x8F1BBCDC else if 60 i 79 f = b xor c xor d k = 0xCA62C1D6 temp = (a leftrotate 5) + f + e + k + w[i] e = d d = c c = b leftrotate 30
48 57 b = a a = temp Add this chunk's hash to result so far: h0 = h0 + a h1 = h1 + b h2 = h2 + c h3 = h3 + d h4 = h4 + e Produce the final hash value (big-endian): digest = hash = h0 append h1 append h2 append h3 append h4 Tabel : Psedeucode SHA-1 Contoh (SHA-1) : SHA1("The quick brown fox jumps over the lazy dog") = 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12 // Efek ketika terdapat perubahan di akhir kata "cog" : SHA1("The quick brown fox jumps over the lazy cog") = de9f2c7f d25e1b3a fad3e85a 0bd17d9b 100db4b3 SHA1("")
49 58 = da39a3ee 5e6b4b0d 3255bfef afd SHA-256 dan SHA-512 Psedeucode untuk SHA-256 dan SHA-512 adalah sebagai berikut : Note 2: All constants in this pseudo code are in big endian Initialize variables (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19): h0 := 0x6a09e667 h1 := 0xbb67ae85 h2 := 0x3c6ef372 h3 := 0xa54ff53a h4 := 0x510e527f h5 := 0x9b05688c h6 := 0x1f83d9ab h7 := 0x5be0cd19 Initialize tabel of round constants (first 32 bits of the fractional parts of the cube roots of the first 64 primes ):
50 59 k[0..63] := 0x428a2f98, 0x , 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x , 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd , 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 Pre-processing: append the bit '1' to the message append k bits '0', where k is the minimum number >= 0 such that the resulting message length (in bits) is congruent to 448 (mod 512)
51 60 append length of message (before pre-processing), in bits, as 64-bit bigendian integer Process the message in successive 512-bit chunks: break message into 512-bit chunks for each chunk break chunk into sixteen 32-bit big-endian words w[0..15] Extend the sixteen 32-bit words into sixty-four 32-bit words: for i from 16 to 63 s0 := (w[i-15] rightrotate 7) xor (w[i-15] rightrotate 18) xor (w[i- 15] rightshift 3) s1 := (w[i-2] rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2] rightshift 10) w[i] := w[i-16] + s0 + w[i-7] + s1 Initialize hash value for this chunk: a := h0 b := h1 c := h2 d := h3 e := h4 f := h5
52 61 g := h6 h := h7 Main loop: for i from 0 to 63 s0 := (a rightrotate 2) xor (a rightrotate 13) xor (a rightrotate 22) maj := (a and b) xor (a and c) xor (b and c) t2 := s0 + maj s1 := (e rightrotate 6) xor (e rightrotate 11) xor (e rightrotate 25) ch := (e and f) xor ((not e) and g) t1 := h + s1 + ch + k[i] + w[i] h := g g := f f := e e := d + t1 d := c c := b b := a a := t1 + t2 Add this chunk's hash to result so far: h0 := h0 + a
53 62 h1 := h1 + b h2 := h2 + c h3 := h3 + d h4 := h4 + e h5 := h5 + f h6 := h6 + g h7 := h7 + h Produce the final hash value (big-endian): digest = hash = h0 append h1 append h2 append h3 append h4 append h5 append h6 append h7 Tabel : Psedeucode SHA , tetapi : Psedeucode pada SHA-512 identik dengan psedeucode pada SHA- Semua angka panjangnya 64-bit Terdapat 80 putaran bukan 64 putaran Nilai awal dan konstanta aditif diperluas menjadi 64-bit Shift dan jumlah putaran yang digunakan berbeda Perbedaan standar SHA, antara SHA versi 256 (SHA-256) dan SHA versi 512 (SHA-512) dapat dilihat pada tabel di bawah ini :
54 63 Konstanta SHA bit pertama dari pagian fraksional cube root dari 64 angka prima pertama SHA bit pertama dari pagian fraksional cube root dari 80 angka prima pertama Padding 448 mod mod 1024 Panjang Inisialisasi buffer Panjang pesan asli ditambah 64 bit 6A09E667 BB67AE85 3C6EF372 A54FF53A 510E527F 9B05688C 1F83D9AB 5BE0CDI9 Panjang pesan asli ditambah 128 bit 6A09E667F3BCC908 BB67AE8584CAA73B 3C6EF372FE94F82B A54FF53A5F1D36F1 510E527FADE682D1 9B05688C2B3E6C1F 1F83D9ABFB41BD6B 5BE0CDI913E2179 Tabel : Standar SHA-256 dan SHA-512 (Contoh SHA-256) SHA256("The quick brown fox jumps over the lazy dog") = d7a8fbb3 07d ca9abc b0082e4f 8d5651e4 6d3cdb76 2d02d0bf 37c9e592
55 64 // Efek ketika terdapat perubahan di akhir kata "cog" : SHA256("The quick brown fox jumps over the lazy cog") = e4c4d8f3 bf76b692 de791a17 3e f7a345 b46484fe 427f6acc 7ecc81be SHA256("") = e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855 (Contoh SHA-512 ) SHA512("The quick brown fox jumps over the lazy dog") = 07e547d9 586f6a73 f73fbac0 435ed fb7 d0c8d788 a309d bbb64 2e93a252 a954f d1e 8a3b5ed6 e1bfd f a0538f3d b854fee6 // Efek ketika terdapat perubahan di akhir kata "cog" : SHA512("The quick brown fox jumps over the lazy cog") = 3eeee1d0 e11733ef 152a6c29 503b3ae2 0c4f1f3c da4cb26f 1bc1a41f 91c7fe4a b3bd e201 c4bd5155 f31ecb7a 3c c4cc8df cab7da11 c8ae5045 SHA512("")
56 65 = cf83e135 7eefb8bd f d66d8007 d620e405 0b5715dc 83f4a921 d36ce9ce 47d0d13c 5d85f2b0 ff8318d2 877eec2f 63b931bd 47417a81 a538327a f927da3e 2.10 AES (Advanced Encryption Standard) Rijndael AES atau Advanced Encryption Standard merupakan Federal Information Proccess Standard (FIPS) yang baru. AES merupakan pengganti DES yang diumumkan usaha pembuatan algoritmanya pada tanggal 2 Januari 1997, oleh NIST yang merupakan badan penelitian milik pemerintah Amerika Serikat. Untuk menghindari kontoversi dari standar baru ini, NIST mengadakan lomba terbuka untuk membuat standart algoritma kriptografi yang baru sebagai pengganti DES. adalah : Persyaratan yang diajukan oleh NIST tentang algoritma yang baru tersebut 1. Algoritma yang ditawarka termasuk ke dalam kelompok algoritma kriptografi simetri berbasis chipper blok. 2. Seluruh rancangan algoritma harus bebas dari royalty. 3. Panjang kunci fleksibel : 128, 192, dan 256 bit. 4. Ukuran blok yang dienkripsi adalah 128 bit. NIST menerima 15 proposal algoritma yang masuk. Berdasarkan aspek keamanan algoritma, efisiensi, fleksibilitas, dan kebutuhan memori, pada bulan
57 Agustus 1998, NIST memilih lima finalis yaitu Rijndael, Twofish, Serpent, RC6, MARS. Dari ke lima finalis ditetapkan Rijndael sebagai AES. 66 Rijndael termasuk dalam jenis algoritma kriptografi yang sifatnya simetri dan chipper block. Dengan demikian algoritma ini mempergunakan kunci yang sama saat enkripsi dan dekripsi serta masukkan dan keluarannya berupa blok dengan jumlah bit tertentu. Algoritma Rijndael memiliki operasi dasar matematika yang meliputi penjumlahan, perkalian, dan perkalian dengan x. Operasi matematika ini berbeda dengan operasi inter biasa, karena diperasikan dalam operasi finite field. Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan digunakan. Rijndael mendukung panjang kunci 128 bit sampai 256 dengan kelipatan 32 bit. Namun Rijndael dalam versi AES mempunyai ukuran blok dan kunci yang tetap sebesar 128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui untuk proses enkripsi dan dekrispsi. Secara garis besar, operasi algoritma Rijndael pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut : 1. ArrRoundKey : operasi untuk melakukan XOR antara state awal (plainteks) dengan chipper key. Tahap ini disebut juga initial round. 2. Putaran sebanyak Nr-1 kali. Proses yang dilakukan pada setiap putaran adalah : a. ByteSub : substitusi byte dengan menggunakan tabel substitusi (S-box).
PENGUJIAN IMPLEMENTASI DAN PERBANDINGAN FUNGSI HASH SATU ARAH SHA-1 dan SHA-2 Ivan Nugraha NIM :
PENGUJIAN IMPLEMENTASI DAN PERBANDINGAN FUNGSI HASH SATU ARAH SHA-1 dan SHA-2 Ivan Nugraha NIM : 13506073 Abstrak Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail
Lebih terperinciModifikasi SHA-1 Untuk Mengurangi Hash collision
Modifikasi SHA-1 Untuk Mengurangi Hash collision Odit Ekwardo 135 04 079 Jurusan Teknik Informatika ITB, Bandung, email: if14079@students.if.itb.ac.id Abstraksi Komunikasi merupakan faktor penting dalam
Lebih terperinciPerkembangan Enkripsi Fungsi Hash pada SHA (Secure Hash Algorithm)
Perkembangan Enkripsi Fungsi Hash pada SHA (Secure Hash Algorithm) Muharram Huda W. Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jl. Ganesha 10, Bandung
Lebih terperinciDigital Signature Standard (DSS)
Bahan Kuliah ke-19 IF5054 Kriptografi Digital Signature Standard (DSS) Disusun oleh: Ir. Rinaldi Munir, M.T. Departemen Teknik Informatika Institut Teknologi Bandung 2004 19. Digital Signature Standard
Lebih terperinciAlgoritma Twofish : kinerja dan implementasinya sebagai salah satu kandidat algoritma AES (Advanced Encryption Standard)
Algoritma Twofish : kinerja dan implementasinya sebagai salah satu kandidat algoritma AES (Advanced Encryption Standard) Indra Mukmin NIM : 13506082 1) 1) Jurusan Teknik Informatika ITB, Bandung 40135,
Lebih terperinciBAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi
BAB 2 LANDASAN TEORI 2.1 Pengertian Kriptografi Kriptografi (cryptography) berasal dari bahasa Yunani yang terdiri atas kata cryptos yang artinya rahasia, dan graphein yang artinya tulisan. Berdasarkan
Lebih terperinciBAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Dalam pembahasan tentang chatting menggunakan J2ME ini
BAB II TINJAUAN PUSTAKA DAN DASAR TEORI 2.1. Tinjauan Pustaka Dalam pembahasan tentang chatting menggunakan J2ME ini pernah dibahas dalam skripsi yang berjudul APLIKASI CHATTING MENGGUNAKAN J2ME dengan
Lebih terperinciIF5093 Java ME. Achmad Imam Kistijantoro Semester II 2006/2007. IF-ITB/AI/Mar 07. IF5093 Java ME
IF5093 Java ME Achmad Imam Kistijantoro Semester II 2006/2007 IF5093 Java ME 1 Java ME overview Java ME (Micro Edition) adalah java platform untuk consumer devices seperti handphone, PDA, TV set-top boxes
Lebih terperinciPengenalan JAVA. Farhat, ST., MMSI., MSc
Pengenalan JAVA Tim sun Microsystems (dipimpin oleh James Gosling) bahasa komputer kecil (chipchip embedded) Proyek bernama Green. Pascal (diciptakkan oleh Niklaus Wirth) Bahasa yang portable kode intermediate
Lebih terperinciBAB III JAVA 2 MICROEDITION (J2ME) definisi dari sun adalah sekumpulan teknologi pemrograman yang digunakan
BAB III JAVA 2 MICROEDITION (J2ME) 3.3 Arsitektur Java Bahasa Java merupakan salah satu bahasa tingkat tinggi. Java berdasarkan definisi dari sun adalah sekumpulan teknologi pemrograman yang digunakan
Lebih terperinciPemanfaatan Metode Pembangkitan Parameter RSA untuk Modifikasi SHA-1
Pemanfaatan Metode Pembangkitan Parameter RSA untuk Modifikasi SHA-1 Miftah Mizan NIM : 13507064 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl.
Lebih terperinciAlgoritma Kriptografi Modern (AES, RSA, MD5)
Algoritma Kriptografi Modern (AES, RSA, MD5) Muhammad Izzuddin Mahali, M.Cs. Izzudin@uny.ac.id / m.izzuddin.m@gmail.com Program Studi Pendidikan Teknik Informatika Jurusan Pendidikan Teknik Elektronika
Lebih terperinciRancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java
SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 16 Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java T - 8 Faizal Achmad Lembaga
Lebih terperinciBab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu
Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu Pada penelitian Aplikasi Kamus Bahasa Jepang - Indonesia Pada Perangkat Genggam Mengunakan J2ME (Murthi, Tommy Adhi Kresna, 2010), perancangan sistem ini
Lebih terperinciModifikasi Proses SHA-1 Berdasarkan Pembangkitan Bilangan Acak
Modifikasi Proses SHA-1 Berdasarkan Pembangkitan Bilangan Acak Austin Dini Gusli - 13506101 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha
Lebih terperinciAlgoritma Fungsi Hash Baru dengan Menggabungkan MD5, SHA-1 dan Penyertaan Panjang Pesan Asli
Algoritma Fungsi Hash Baru dengan Menggabungkan MD5, SHA-1 dan Penyertaan Panjang Pesan Asli Candra Alim Sutanto - 13508069 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut
Lebih terperinciPemrograman Berbasis Objek. Pengenalan Java. Entin Martiana. Politeknik Elektronika Negeri Surabaya
Pengenalan Java Entin Martiana Sejarah Java (1) 1991, Sun dipimpin Patric Naughton dan James Gosling ingin merancang bahasa computer untuk perangkat consumer seperti cable TV Box. Karena perangkat itu
Lebih terperinciAdvanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.
Latar Belakang Advanced Encryption Standard (AES) Rifqi Azhar Nugraha 1137050186 IF 6 A DES dianggap sudah tidak aman. rifqi.an@student.uinsgd.ac.id Perlu diusulkan standard algoritma baru sebagai pengganti
Lebih terperinciBAB 2 Pengenalan Bahasa JAVA
BAB 2 Pengenalan Bahasa JAVA 2.1 Tujuan Pada bab ini akan dibahas secara singkat tentang sejarah JAVA dan definisi teknologi JAVA. Bab ini juga akan sedikit menyinggung tentang fase fase dalam program
Lebih terperinciBAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI Pada bab ini, akan dibahas landasan teori mengenai teori-teori yang digunakan dan konsep yang mendukung pembahasan, serta penjelasan mengenai metode yang digunakan. 2.1. Pengenalan
Lebih terperinciPENGENALAN BAHASA PEMROGRAMAN JAVA
Pertemuan 1 Halaman 1/1 PENGENALAN BAHASA PEMROGRAMAN JAVA Buku referensi : 1. Core Java, Gary Cornell dan Cay S. Horstmann. 2. Teach Yourself Java 1.1 in 21 Days, Laura Lemay dan Charles L. Perkins. 3.
Lebih terperinciBAB 1 PENDAHULUAN Latar Belakang
BAB 1 PENDAHULUAN 1.1. Latar Belakang Dewasa ini keamanan data dirasakan semakin penting, Keamanan pengiriman informasi melalui komputer menjadi bagian yang tidak terpisahkan dalam kehidupan sehari-hari.
Lebih terperinciBAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM
BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Sistem yang Sedang Berjalan Proses analisa sistem merupakan langkah kedua pada pengembangan sistem. Analisa sistem dilakukan untuk memahami
Lebih terperinciImplementasi SHA, Algoritma HAJ, dan Algoritma RSA pada BlackBerry Messanger
Implementasi SHA, Algoritma HAJ, dan Algoritma RSA pada BlackBerry Messanger Andara Livia Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Jl. Ganesha
Lebih terperinciMK. Pemrograman Berorientasi Objek PENGENALAN JAVA KARMILASARI
MK. Pemrograman Berorientasi Objek PENGENALAN JAVA KARMILASARI APA itu JAVA? 2 Dibuat pertama kali oleh James Goslig dkk (1991) sebagai bagian dari Sun Microsystem Java Platform Awalnya diberi nama Oak
Lebih terperinciBAB I PENDAHULUAN. Universitas Sumatera Utara
BAB I PENDAHULUAN 1.1. Latar Belakang Masalah. Perkembangan teknologi saat ini telah mengubah cara masyarakat baik itu perusahaan militer dan swasta dalam berkomunikasi. Dengan adanya internet, pertukaran
Lebih terperinciANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA
ANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA Andi Hendra Jurusan Matematika MIPA Universitas Tadulako Abstrak Selain dokumen yang berupa teks, komunikasi
Lebih terperinciPerancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station
Ultima Computing Husni Perancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station EMIR M. HUSNI Sekolah Teknik Elektro & Informatika, Institut
Lebih terperinciKriptoanalisis Pada Fungsi Hash Kriptografi MD5
Kriptoanalisis Pada Fungsi Hash Kriptografi MD5 Sibghatullah Mujaddid (13507124) Jurusan Teknik Informatika ITB, Bandung 40132, email: sibgha07@students.itb.ac.id Abstract Dalam ilmu komputer, fungsi hash
Lebih terperinciPERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD
Konferensi Nasional Ilmu Sosial & Teknologi (KNiST) Maret 2017, pp. 165~171 165 PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD Cahyani Budihartanti 1, Egi Bagus Wijoyo
Lebih terperinciBab I Pendahuluan 1 BAB I PENDAHULUAN
Bab I Pendahuluan 1 BAB I PENDAHULUAN 1.1 Latar Belakang Secara umum, di Indonesia mobile internet masih merupakan potensi yang belum banyak tersentuh. Hal ini dikarenakan teknologi mobile internet memerlukan
Lebih terperinciAnalisis Cara Kerja Beragam Fungsi Hash Yang Ada. Christian Angga
Analisis Cara Kerja Beragam Fungsi Hash Yang Ada Christian Angga 13508008 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,
Lebih terperinciBAB 2 TINJAUAN PUSTAKA
BAB 2 TINJAUAN PUSTAKA 2.1 Keamanan Data Keamanan merupakan salah satu aspek yang sangat penting dari sebuah sistem informasi. Masalah keamanan sering kurang mendapat perhatian dari para perancang dan
Lebih terperinciBlox: Algoritma Block Cipher
Blox: Algoritma Block Cipher Fikri Aulia(13513050) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, 13513050@std.stei.itb.ac.id
Lebih terperinciBAB II TINJAUAN PUSTAKA. Masalah keamanan data merupakan salah satu aspek yang sangat penting
BAB II TINJAUAN PUSTAKA Masalah keamanan data merupakan salah satu aspek yang sangat penting dari sebuah sistem informasi. Tetapi, masalah ini kurang mendapat perhatian dari para pemilik dan pengelola
Lebih terperinciUniversitas Sumatera Utara BAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1 Algoritma RC4 RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data pada satu saat. Dengan cara ini enkripsi maupun dekripsi dapat dilaksanakan pada
Lebih terperinciPENGEMBANGAN APLIKASI MOBILE
PENGEMBANGAN APLIKASI MOBILE Tujuan Mengidentifikasi karakteristik dari perangkat mobile Menjelaskan arsitektur J2ME Mengetahui peran atau aturan configuration dan profile Mengidentifikasi API yang disediakan
Lebih terperinciAplikasi Pesan dengan Algoritma Twofish pada Platform Android Messaging Application with Twofish Algorithm on Android Platform
Aplikasi Pesan dengan Algoritma Twofish pada Platform Android Messaging Application with Twofish Algorithm on Android Platform Midian Octaviano Gurning Prodi S1 Sistem Komputer, Fakultas Teknik, Universitas
Lebih terperinciKata Kunci: Kriptografi, algoritma,security, pemrograman, pseucode.
KRIPTOGRAFI MD 5 Muhammad Arba Adandi arba@raharja.info Abstrak Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit.
Lebih terperinciTINJAUAN PUSTAKA. Kriptografi
2 2 Penelitian ini berfokus pada poin a, yaitu pengembangan sistem mobile serta melakukan perlindungan komunikasi data. 3 Spesifikasi sistem dibuat berdasarkan pada alur proses penilangan yang berlaku
Lebih terperinciPemrograman Berbasis Objek. Pengenalan Java. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya
Pengenalan Java Yuliana Setiowati Kilas Balik Teknologi Java Bahasa Java awalnya bernama Oak, yakni bagian dari projek Green yang dikembangkan khusus oleh Sun Microsystem untuk memprogram perangkat-perangkat
Lebih terperinciBAB 4 IMPLEMENTASI DAN EVALUASI. dan sistem operasi dengan spesifikasi sebagai berikut: 1. Processor: Intel Pentium, Core Duo, 1.
BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Lingkungan Perancangan Dalam perancangan program simulasi ini, penulis menggunakan komputer dan sistem operasi dengan spesifikasi sebagai berikut: 1. Processor: Intel
Lebih terperinciAPLIKASI ENKRIPSI PESAN TEKS (SMS) PADA PERANGKAT HANDPHONE DENGAN ALGORITMA CAESAR CIPHER
APLIKASI ENKRIPSI PESAN TEKS (SMS) PADA PERANGKAT HANDPHONE DENGAN ALGORITMA CAESAR CIPHER Tri Puji Rahayu 1, Yakub 2, Irwan Limiady 3 Program Studi Teknik Informatika, STMIK Dharma Putra Tangerang Jl.
Lebih terperinciAPLIKASI KAMUS MATEMATIKA UNTUK HANDPHONE
APLIKASI KAMUS MATEMATIKA UNTUK HANDPHONE Ismi Amalia Jurusan Teknik Mesin, Politeknik Negeri Lhokseumawe Nanggroe Aceh Darussalam Email : ismiamalia@gmail.com ABSTRAKS Penelitian ini bertujuan untuk merancang
Lebih terperinciImplementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN
Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN Anggi Purwanto Program Studi Teknik Telekomunikasi, Fakultas Teknik Elektro dan Komunikasi Institut Teknologi Telkom Jl.
Lebih terperinciII Bab II Dasar Teori
II Bab II Dasar Teori II.1 Kriptografi Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan [SCH96]. Terdapat berbagai macam definisi mengenai kriptografi, namun pada intinya kriptografi adalah
Lebih terperinciSTUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD
STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD Mohammad Riftadi NIM : 13505029 Program Studi Informatika, Institut Teknologi Bandung Jl. Ganesha No. 10, Bandung E-mail :
Lebih terperinciPerancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station
Perancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station Emir M. Husni Sekolah Teknik Elektro & Informatika, Institut Teknologi Bandung Jl.
Lebih terperinciBAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam
BAB 1 PENDAHULUAN 1.1 Latar Belakang Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam bentuknya yang konvensional di atas kertas. Dokumen-dokumen kini sudah disimpan sebagai
Lebih terperinciJAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS
JAVA FUNDAMENTAL Nama : Julian Chandra W Telp : 085647155605 Email : maeztro_87@yahoo.co.id Referensi : 1. Benny Hermawan. 2004. Menguasai Java 2 & Object Oriented Programming. Andi. 2. Bambang Hariyanto.
Lebih terperinciImplementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block
Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block Pudy Prima 13508047 Program Studi Teknik Informatika Sekolah Teknik Elektro
Lebih terperinciStudi dan Implementasi Hashing untuk URL Shortening Service
Studi dan Implementasi Hashing untuk URL Shortening Service Ricardo Pramana Suranta / 13509014 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl.
Lebih terperinciBAB I PENDAHULUAN 1.1 Latar Belakang
BAB I PENDAHULUAN 1.1 Latar Belakang Sistem keamanan data dipasang untuk mencegah pencurian, kerusakan dan penyalahgunaan data yang disimpan melalui smartphone. Dalam praktek, pencurian data berwujud pembacaan
Lebih terperinciMODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA
MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA Mohamad Ihwani Universitas Negeri Medan Jl. Willem Iskandar Pasar v Medan Estate, Medan 20221 mohamadihwani@unimed.ac.id ABSTRAK
Lebih terperincimlab : Aplikasi Perangkat Bergerak untuk Mengakses Sistem Informasi Laboratorium berbasis SMS dan J2ME
mlab : Aplikasi Perangkat Bergerak untuk Mengakses Sistem Informasi Laboratorium berbasis SMS dan J2ME Iwan Handoyo Putro 1, Indar Sugiarto 2, Hestin Kezia Octalina Klaas 3 1,2.3 Jurusan Teknik Elektro,
Lebih terperinciTEKNIK DASAR KRIPTOGRAFI. Algoritma Kriptografi Modern (Bagian 1) Substitusi. Tabel Subsitusi. Substitusi Blocking Permutasi Ekspansi Pemampatan
Algoritma Kriptografi Modern (Bagian 1) TEKNIK DASAR KRIPTOGRAFI Substitusi Blocking Permutasi Ekspansi Pemampatan 1 2 Substitusi Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi
Lebih terperinciBAB III ANALISIS DAN PERANCANGAN
BAB III ANALISIS DAN PERANCANGAN III.1. Analisa Masalah Proses Analisa sistem merupakan langkah kedua pada pengembangan sistem. Analisa sistem dilakukan untuk memahami informasi-informasi yang didapat
Lebih terperinciPraktikum Pemograman Berorientasi Objek
Praktikum Pemograman Berorientasi Objek Pertemuan ke-1 A. Konsep PBO Pemrograman Berorientasi Objek (Object Oriented Programming) merupakan teknik pemograman dengan pendekatan berorientasi kelas dan objek.
Lebih terperinciPembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah
Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah Junita Sinambela (13512023) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,
Lebih terperinciBAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1 Pengertiaan Kriptografi Kata kriptografi berasal dari bahasa Yunani, yaitu kata kryptos, yang berarti rahasia dan kata graphein yang berarti menulis. Schineir (1996) mendefinisikan
Lebih terperinciStudi dan Analisis Dua Jenis Algoritma Block Cipher: DES dan RC5
Studi dan Analisis Dua Jenis Algoritma Block Cipher: DES dan RC5 Zakiy Firdaus Alfikri - 13508042 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl.
Lebih terperinciADVANCED ENCRYPTION STANDARD (AES) DENGAN ONE TIME PASSWORD UNTUK KEAMANAN LAYANAN SMS BANKING
ADVANCED ENCRYPTION STANDARD (AES) DENGAN ONE TIME PASSWORD UNTUK KEAMANAN LAYANAN SMS BANKING Satya Fajar Pratama NIM : 13506021 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha
Lebih terperinciVol. 3, No. 2, Juli 2007 ISSN PERANAN KRIPTOGRAFI DALAM KEAMANAN DATA PADA JARINGAN KOMPUTER
Vol. 3, No. 2, Juli 2007 ISSN 0216-0544 PERANAN KRIPTOGRAFI DALAM KEAMANAN DATA PADA JARINGAN KOMPUTER ABSTRAK Sigit Susanto Putro Sigitida_79@yahoo.com Jurusan Teknik Informatika Universitas Trunojoyo
Lebih terperinciFUNGSI HASH BIOMETRIK SEBAGAI SISTEM KEAMANAN KARTU TANDA PENDUDUK
KEAMANAN KARTU TANDA PENDUDUK Irfan Afif (13507099) a Mahasiswa Program Studi Teknik Informatika Institut Tenologi Bandung Jl. Ganesha no. 10, Bandung e-mail: irfan_afif@yahoo.com Abstrak Keamanan kartu
Lebih terperinciPada akhir pembahasan, peserta diharapkan dapat :
Pengenalan Java tujuan Pada akhir pembahasan, peserta diharapkan dapat : Menjelaskan fitur-fitur teknologi Java seperti, Java Virtual Machine(JVM), garbage collection, dan code security. Menjelaskan perbedaan
Lebih terperinci29 Februari Introduction Of Java
29 Februari 2012 Introduction Of Java Sejarah Java Dikembangkan oleh tim Pemimpin: James Gosling Company: Sun Microsystem Agustus 1991, bernama Oak Januari 1995, berganti nama Java Dapat dijalankan di
Lebih terperinciBAB I PENDAHULUAN. dari isinya, informasi dapat berupa penting atau tidak penting. Bila dilihat dari sifat
BAB I PENDAHULUAN 1.1 Latar Belakang Informasi adalah inti yang dipertukarkan dalam proses berkomunikasi. Jenis informasi yang digunakan dalam komunikasi pun bermacam-macam. Jika dilihat dari isinya, informasi
Lebih terperinciAnalisis dan Studi Kriptografi TwoFish
Analisis dan Studi Kriptografi TwoFish Adi Nugraha Setiadi - 13508062 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
Lebih terperinciPembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256)
Pembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256) Sila Wiyanti Putri 1) 1) Program Studi Teknik Informatika ITB, Bandung 40132, email: silawp@gmail.com Abstract
Lebih terperinciAnalisis dan Perbandingan Algoritma Whirlpool dan SHA- 512 sebagai Fungsi Hash
Analisis dan Perbandingan Algoritma Whirlpool dan SHA- 512 sebagai Fungsi Hash Willy Setiawan - 13508043 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,
Lebih terperinciBab 2 Tinjauan Pustaka
Bab 2 Tinjauan Pustaka 2.1 Penelitian Sebelumnya Pada penelitian sebelumnya, yang berjudul Pembelajaran Berbantu komputer Algoritma Word Auto Key Encryption (WAKE). Didalamnya memuat mengenai langkah-langkah
Lebih terperinciDiperkenalkan pertama oleh tim Sun System yang dipimpin Patrick Naughton dan James Gosling tahun 1991 dengan code
PENGANTAR JAVA A. Asal Mula JAVA B. Kelebihan JAVA C. Ciri Khas JAVA D. Perangkat Lunak E. Penerapan JAVA F. Java Virtual Machine G. Pengembangan Program Java A. Asal Mula JAVA Diperkenalkan pertama oleh
Lebih terperinciIMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS
IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS A. Latar Belakang Algoritma AES (Advanced Encryption Standard) muncul akibat penggunaan standart enkripsi kriptografi simetri terdahulu (DES) yang dianggap
Lebih terperinciSISTEM OPERASI TERDISTRIBUSI
SISTEM OPERASI TERDISTRIBUSI PENGANTAR DATA TERDISTRIBUSI Materi: 1. Pendahuluan 2. Manfaat Sistem Operasi Terdistribusi 3. Komponen Inti Sistem Operasi Pertemuan: 5 Pendahuluan Sistem operasi terdistribusi
Lebih terperinciNama : Julian Chandra W Telp :
JAVA FUNDAMENTAL Nama : Julian Chandra W Telp : 085647155605 Email : maeztro_87@yahoo.co.id julian.chand@gmail.com Referensi : 1. Benny Hermawan. 2004. Menguasai Java 2 & Object Oriented Programming. Andi.
Lebih terperinciMODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA
CESS (Journal Of Computer Engineering System And Science) p-issn :2502-7131 MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA Mohamad Ihwani Universitas Negeri Medan Jl. Willem Iskandar
Lebih terperinciBAB I PENDAHULUAN. semua kalangan masyarakat memiliki telepon seluler, personal digital assistant
BAB I PENDAHULUAN 1.1. Latar Belakang Teknologi mobile telah menjadi bagian kehidupan kita sehari-hari. Hampir semua kalangan masyarakat memiliki telepon seluler, personal digital assistant (PDA) atau
Lebih terperinciPENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL
PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL Semuil Tjiharjadi, Marvin Chandra Wijaya Universitas Kristen Maranatha Bandung semuiltj@gmail.com, marvinchw@gmail.com ABSTRACT Data security
Lebih terperinciDASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom
DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi Gentisya Tri Mardiani, S.Kom.,M.Kom KRIPTOGRAFI Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. Para pelaku
Lebih terperinciPengenalan J2ME (Java 2 Platform Micro Edition)
Pengenalan J2ME (Java 2 Platform Micro Edition) Wiranti Sri Utami whiranty68@gmail.com Abstrak Java merupakan sebuah bahasa pemrograman yang diciptakan oleh james gosling pada tahun 1996 dan mengklaim
Lebih terperinciPenggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan
Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan Andreas Dwi Nugroho (13511051) 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut
Lebih terperinciPenggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi
Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi Wulandari NIM : 13506001 Program Studi Teknik Informatika ITB, Jl Ganesha 10, Bandung, email: if16001@students.if.itb.ac.id Abstract
Lebih terperinciReview C/C++ & Intro to Java. Pemrograman Berorientasi Obyek IT209
Review C/C++ & Intro to Java Pemrograman Berorientasi Obyek IT209 Pemrograman Terstruktur Pemrograman terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu
Lebih terperinciAnalisis Penerapan Algoritma MD5 Untuk Pengamanan Password
Analisis Penerapan Algoritma MD5 Untuk Pengamanan Password Inayatullah STMIK MDP Palembang inayatullah@stmik-mdp.net Abstrak: Data password yang dimiliki oleh pengguna harus dapat dijaga keamanannya. Salah
Lebih terperinciBAB II LANDASAN TEORI. Platform Java dibagi dalam 3 (tiga) edisi dimana masing-masing dari
BAB II LANDASAN TEORI 2.1 Java 2 Micro Edition (J2ME) Platform Java dibagi dalam 3 (tiga) edisi dimana masing-masing dari edisi tersebut mempunyai segmen pasar yang berbeda. Ketiga edisi dari Java tersebut
Lebih terperinciBAB 2 LANDASAN TEORI
15 BAB 2 LANDASAN TEORI 2.1 Data dan Informasi Data dapat didefenisikan sebagai kenyataan yang digambarkan oleh nilai-nilai bilangan-bilangan, untaian karakter atau simbol-simbol yang membawa arti tertentu.
Lebih terperinciKriptografi. A. Kriptografi. B. Enkripsi
Kriptografi A. Kriptografi Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. Proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext) menjadi pesan
Lebih terperinciAplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop
Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop Ratno Prasetyo Magister Ilmu Komputer Universitas Budi Luhur, Jakarta, 12260 Telp : (021) 5853753
Lebih terperinciBAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).
BAB II TINJAUAN PUSTAKA 2.1 Kriptografi Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message). Kata cryptography berasal dari kata Yunani yaitu kryptos yang artinya tersembunyi
Lebih terperinciOZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5
OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5 Fahziar Riesad Wutono Teknik Informatika Institut Teknologi Bandung Bandung, Indonesia fahziar@gmail.com Ahmad Zaky Teknik Informatika
Lebih terperinciBAB II LANDASAN TEORI
6 BAB II LANDASAN TEORI II.1 Pendahuluan Dalam bab ini akan dijelaskan tentang landasan teori yang akan digunakan sebagai acuan dalam analisis dan perancangan Pengembangan Aplikasi Mobile Ticketing untuk
Lebih terperinciBAB Kriptografi
BAB 2 LANDASAN TEORI 2.1 Kriptografi Kriptografi berasal dari bahasa Yunani, yakni kata kriptos dan graphia. Kriptos berarti secret (rahasia) dan graphia berarti writing (tulisan). Kriptografi merupakan
Lebih terperinciBab 2 Tinjauan Pustaka 2.1. Penelitian Terdahulu
Bab 2 Tinjauan Pustaka 2.1. Penelitian Terdahulu Pada penelitian berjudul Translucent Databases: A Precursor to Privacy Sensitive Databases, dibahas tentang penerapan translucent database untuk mengamankan
Lebih terperinciTanda Tangan Digital (Digital Signature)
Tanda Tangan Digital (Digital Signature) RSA + SHA-1 Dyah Fajar Nur Rohmah Mulyanto Neng Ika Kurniati Rachmat Wahid Saleh Insani Semuel Hendricard Samadara Siti Puspita Hida Sakti MZ Sumiyatun Teotino
Lebih terperinciAPLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN
APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN Mohamad Ray Rizaldy - 13505073 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung, Jawa Barat e-mail: if15073@students.if.itb.ac.id
Lebih terperinciBAB II TINJAUAN PUSTAKA
BAB II TINJAUAN PUSTAKA 2.1 Kriptografi Kriptografi berasal dari bahasa Yunani, yaitu crypto dan graphia. Crypto berarti secret atau rahasia dan graphia berarti writing (tulisan). Terminologinya, kriptografi
Lebih terperinciImplementasi dan Perbandingan Algoritma Kriptografi Kunci Publik
Implementasi dan Perbandingan Algoritma Kriptografi Kunci Publik RSA, ElGamal, dan ECC Vincent Theophilus Ciputra (13513005) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut
Lebih terperinciStudi Perancangan Algoritma Fungsi Hash
Studi Perancangan Algoritma Fungsi Hash Kevin Chandra Irwanto 13508063 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,
Lebih terperinciAnalisis Performansi Algoritma AES dan Blowfish Pada Aplikasi Kriptografi
Analisis Performansi Algoritma AES dan Blowfish Pada Aplikasi Kriptografi Wiwin Styorini 1), Dwi Harinitha 2) 1) Jurusan Teknik Elektro, Politeknik Caltex Riau, Pekanbaru 28265, email: wiwin@pcr.ac.id
Lebih terperinciBab 1 PENDAHULUAN Latar Belakang
Bab 1 PENDAHULUAN 1.1. Latar Belakang Sistem keamanan pengiriman data (komunikasi data yang aman) dipasang untuk mencegah pencurian, kerusakan, dan penyalahgunaan data yang terkirim melalui jaringan komputer.
Lebih terperinci