• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI. Microsystem yang dirilis pada tahun 1995 sebagai komponen utama dari Sun

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI. Microsystem yang dirilis pada tahun 1995 sebagai komponen utama dari Sun"

Copied!
90
0
0

Teks penuh

(1)

10 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

(2)

dengan baik pada platform popular, cukup aman, dan menyediakan fitur keamanan yang dapat dikonfigurasi.

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.

3. 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.

(4)

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)

disebut Java Bytecode (file .class). Setelah itu,bytecode siap untuk diinterpretasikan atau dijalankan dengan menggunakan Java Virtual Machine (JVM). (http://wikipedia.org).

Gambar 2.1-1 : Proses Kompilasi dan Interpretasi Kode Java

2.1.1 Teknologi Java

Dengan berkembangnya versi terbaru dari Java yang disebut Java 2, teknologi Java dibagi menjadi 3 (tiga) macam edisi, yaitu :

2.1.1.1 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)

2.1.1.2 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.

2.1.1.3 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. (http://www.sun.com/java)

(7)

Gambar 2.1-2 : Setiap Edisi Java untuk Perangkat Platform yang Berbeda

(http://users.telenet.be/javapda/java%20platform.gif)

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)

2.2 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. (http://en.wikipedia.org)

2.2.1 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)

Gambar 2.2-1 : Arsitektur J2ME

Dilihat pada Gambar 2.2-1 di atas, J2ME mempunyai lapisan konfigurasi dan profile yang didukung oleh Java Virtual Machine (C-Virtual Machine dan K-(C-Virtual Machine).

2.2.1.1 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).

2.2.1.1.1 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.

2.2.1.1.2 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)

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)

sedangakan OS yang lainnya mungkin atau tidak mungkin mendukung sistem file.

Berikut persyaratan minimum hardware untuk menggunakan CLDC :

o Setidaknya terdapat 160 kilobytes dari memorinon-volatile untuk library virtual machine dan CLDC. o Setidaknya terdapat 32 kilobytes dari memori

volatile atau heap untuk proses menjalankan Virtual Machine.

(http://codeidol.com/java/wireless-java/Goals,-Requirements,-and-Scope/Requirements/) 2.2.1.2 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 :

2.2.1.2.1 Mobile Information Device Profile (MIDP)

MIDP digunakan dengan Connected Limited Device Configuration (CLDC) dan berisi kelas-kelas

(13)

yang menyediakan penyimpanan lokal, sebuah user interface, dan kemampuan jaringan untuk sebuah aplikasi yang berjalan pada perangkat mobile.

2.2.1.2.2 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.

2.2.1.2.3 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.

2.2.1.2.4 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)

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.

2.2.1.2.5 Game Profile

profile digunakan dengan Connected Device Configuration (CDC). Pada game profile disediakan platform untuk mengembangkan aplikasi game pada perangkat CDC.

2.2.1.2.6 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)

2.2.1.2.7 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)

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.

(17)

• 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.

2.3.1 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)

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.

2.3.2 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 metode-metode standard yang bersesuaian dipanggil. Metode-metode-metode ini merupakan bawaan dari J2ME.

(19)

Gambar 2.3-1 : 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)

2.4 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.

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)

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)

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)

Gambar 2.6-1 : 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)

Gambar 2.6-2 : 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 block-cipher dan stream-cipher. Block-cipher adalah algoritma yang akan membagi-bagi 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.

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.

Contoh algoritma kunci public (algoritma asimetris) : RSA, DH, ECC, DSA

• 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)

Berhubungan dengan penjagaan dari perubahan data secara tidak sah. Sistem dirancang untuk mampu mendeteksi menipulasi data oleh pihak-pihak 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 1997. Salah satu kandidat AES adalah Twofish.

(29)

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 key-dependent 8-by-b-bit S-boxes, satu fixed 4-by-4 maximum distance separable matrix over GF(28), satu pseudo-Hadamard transform, satu rotasi bitwise dan satu desain key schedule.

2.7.1 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 :

(30)

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 Ki dan S. Untuk

(31)

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.

2.7.2 Proses Algoritma Twofish

Gambar 2.7-1 : Struktur Algoritma Twofish

2.7.3 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)

a. 5- round twofish dengan 2 22,5 pasangan plaintext terpilih dan 251 komputasi fungsi g

b. 10 round twofish dengan sebuah key attack terpilih,memerlukan 232 palintext terpilih dan sekitar 232 plaintext terpilih yang adaptif dan sekitar 232 usaha.

Fakta bahwa twofish mampu menahan related key attack dengan baik merupakan fakta yang paling menarik dan beralasan, karena related-key memberikan kepada attacker hampir semua kontrol terhadap input cipher. Kriptanalis konvensional memungkinkan suatu attacker mengontrol input plaintext dan ciphertext didalam cipher, yaitu key-

schedule.

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 2128, sementara untuk twofish dengan key 192 bit harus menggunakan attack dengan kompleksitas 2192 dan untuk twofish dengan key 256 bit harus menggunakan attack dengan kompleksitas 2 256.

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)

Misalnya, ada sebuah attacker yang menebak suatu kata genap dari key Mc. Attacker tidak mempelajari apapun dari key S, untuk tiap

round blok subkey, ia mengetahui Ai. Jika ia menebak dengan suatu Ko, ia

dapat menghitung K1 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 AI. 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.

2.7.4 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

(34)

• 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 12700 siklus clock.

(35)

b. Melakukan enkripsi data pada 860 siklus per block di atas Pentium Pro setelah menjalankan key setup 1250 siklus clock.

c. Melakukan enkripsi data pada 26500 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.

2.8.1 Algoritma MD5

Terdapat empat langkah pokok dalam proses pembuatan message digest pada algoritma MD5, yaitu :

(36)

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 :

(Catatan : beberapa versi MD5 menggunakan nilai inisialisasi yang berbeda, yaitu :

A = 67 45 23 01 B = EF CD AB 89 C = 98 BA DC FE D = 10 32 54 67 4. 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 2.8-1.

(38)
(39)

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, Yq di atas 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 H ke-q . pada awal proses, MDq berisi nilai

inisialisasi penyangga MD.

Fungsi-fungsi fF, fG, fH, dan fI masing-maisng berisi 16 kali operasi dasar

terhadap masukkan, setiap operasi dasar menggunakan elemen tabel T.

a b c d g + + + CLSs + X[k] T[i]

(40)

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

• CLSs = 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 232

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)

2.8.2 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.

2.8.3 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 1993. 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)

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.

Perbedaan pada masing-masing variasi SHA dapat dilihat pada tabel di bawah ini :

SHA-1 SHA-256 SHA-384 SHA-512

Ukuran message digest 160 256 384 512 Ukuran pesan <264 <264 <2128 <2128 Ukuran block 512 512 1024 1024 Ukuran huruf 32 32 64 64 Number of steps 80 80 80 80 Keamanan 80 128 192 256

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 2n/2.

(43)

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.

2.9.1 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 bit-bitpengganjal.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 0.

2. 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 masing-masing 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 = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0

(45)

Sebagai 32 bit string, setiap penyangga diinisialisasikan dengan nilai-nilai (dalam notasi HEX) sebagai berikut :

Word A = 67 45 23 01 Word B = EF CD AB 89 Word C = 98 BA DC FE Word D = 10 32 54 76 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 232 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 = 0x67452301 h1 = 0xEFCDAB89 h2 = 0x98BADCFE

(46)

h3 = 0x10325476 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 448 ≡−64 (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

(47)

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 = 0x5A827999

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

(48)

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 2.9-2 : 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

(49)

= da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709

2.9.2 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 2..311):

(50)

k[0..63] :=

0x428a2f98, 0x71374491, 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, 0x14292967,

0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,

0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,

0x19a4c116, 0x1e376c08, 0x2748774c, 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

(51)

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[0..15]

Extend the sixteen 32-bit words into sixty-four 32-bit words: for i from 16 to 63

s0 := 15] rightrotate 7) xor 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)

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)

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 2.9-3 : Psedeucode SHA-256

Psedeucode pada 512 identik dengan psedeucode pada SHA-256, tetapi :

• 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)

SHA-256 SHA-512 Konstanta 32 bit pertama dari

pagian fraksional cube root dari 64 angka prima pertama

64 bit pertama dari pagian fraksional cube root dari 80 angka prima pertama

Padding 448 mod 512 896 mod 1024 Panjang Panjang pesan asli

ditambah 64 bit

Panjang pesan asli ditambah 128 bit Inisialisasi buffer 6A09E667

BB67AE85 3C6EF372 A54FF53A 510E527F 9B05688C 1F83D9AB 5BE0CDI9 6A09E667F3BCC908 BB67AE8584CAA73B 3C6EF372FE94F82B A54FF53A5F1D36F1 510E527FADE682D1 9B05688C2B3E6C1F 1F83D9ABFB41BD6B 5BE0CDI913E2179

Tabel 2.9-4 : Standar SHA-256 dan SHA-512

(Contoh SHA-256)

• SHA256("The quick brown fox jumps over the lazy dog") = d7a8fbb3 07d78094 69ca9abc b0082e4f 8d5651e4 6d3cdb76 2d02d0bf 37c9e592

(55)

• // Efek ketika terdapat perubahan di akhir kata "cog" : SHA256("The quick brown fox jumps over the lazy cog")

= e4c4d8f3 bf76b692 de791a17 3e053211 50f7a345 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 435ed769 51218fb7 d0c8d788 a309d785 436bbb64 2e93a252 a954f239 12547d1e 8a3b5ed6 e1bfd709 7821233f 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 b3bd8649 4049e201 c4bd5155 f31ecb7a 3c860684 3c4cc8df cab7da11 c8ae5045

(56)

= cf83e135 7eefb8bd f1542850 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.

Persyaratan yang diajukan oleh NIST tentang algoritma yang baru tersebut adalah :

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.

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 :

(58)

b. ShiftRow : pergeseran baris-baris array state secara wrapping. c. MixColumn : mengacak data di masing-masing kolom array state. d. AddRoundKey : melakukan XOR antara state sekarang dengan round key. 3. Final round : proses untuk putaran terakhir adalah ByteSub, ShiftRow,

AddRoundKey.

Algoritma Rijndaelmempunyai 3 parametersebagai berikut:

1. plainteks : array yangberukuran 16 byte, yang berisi datamasukan. 2. cipherteks : array yangberukuran 16 byte, yang berisi hasilenkripsi.

3. key : array yang berukuran 16 byte, yang berisi kunci ciphering (disebutjuga cipher key).

(59)

2.10.1 Proses Enkripsi Algoritma AES Rijndael

(60)

2.10.2 Proses Dekripsi Algoritma AES Rijndael

(61)

2.11 CBC (Chiper Block Chaining)

Pada CBC (Chiper Block Chining), input algoritma enkripsi CBC adalah XOR dari 64 bit selanjutnya pada plaintext dan 64 bit sebelumnya pada chipertext, kunci yang sama digunakan pada setiap blok. Operasi yang dilakukan di CBC adalah operasi umpan balik atau yang dikenal dengan umpan berantai (chaining). Efeknya, kita mempunyai rantai proses urutan blok plaintext yang sama. Untuk dekripsi, setiap chiper block telah melalui algoritma deskripsi. Kesimpulannya, karena mekanisme rantai dari CBC, hal ini sesuai untuk panjang enkripsi pesan yang lebih dari 64 bit.

2.12 Algoritma Pengkodean Base64

Algoritma base64 dirancang untuk menyandikan data biner manapun, ke dalam sebuah byte, menjadi byte yang bisa dicetak berformat 64-karakter yang bisa terbaca melalui pesan singkat atau SMS.

Transformasi Base64 merupakan salah satu algoritma untuk Encoding dan Decoding suatu data ke dalam format ASCII, yang didasarkan pada bilangan dasar 64 atau bisa dikatakan sebagai salah satu metoda yang digunakan untuk melakukan encoding (penyandian) terhadap data binari. Karakter yang dihasilkan pada transformasi Base64 ini terdiri dari A..Z, a..z dan 0..9, serta ditambah dengan

(62)

dua karakter terakhir yang bersimbol yaitu + dan / serta satu buah karakter sama dengan (=) yang digunakan untuk penyesuaian dan menggenapkan data binary atau istilahnya disebut sebagai pengisi pad. Karakter simbol yang akan dihasilkan akan tergantung dari proses algoritma yang berjalan.

Untuk lebih mudah membayangkannya, dalam proses enkripsi dekripsi data menggunakan algortima transformasi Base 64 akan kita gunakan dua buah tabel, pertama adalah tabel data encoding dengan 64 radix yang berfungsi untuk proses pengkorversian dari data binary ke karakter base 64 atau sebaliknya dari karakter base 64 ke data binary. Selain itu, juga diperlukan tabel ASCII (American Standard Code for Information Interchange), yang merupakan kode standar yang digunakan di seluruh dunia untuk “menerjemahkan” jenis huruf besar/kecil, angka-angka atau simbol-simbol yang berfungsi sebagai standard inputan pertama kali untuk proses encode decode pada algoritma transformasi Base 64.

Dengan memanfaatkan kedua tabel diatas, maka kita dapat melakukan proses encoding decoding base64 dari suatu data, baik bersifat text maupun file .txt. Teknik algoritma Encoding decoding transformasi base64 pun dapat dilihat pada Gambar 2.12-1 dibawah ini.

(63)

Gambar 2.12-1 : Algoritma Base64 Encoding

Dari Gambar 2.12-1, terlihat mula-mula data inputan yang sudah berupa kumpulan binary (hasil ekstrak dari karakter dengan menggunakan tabel ASCII) dimana satu karakter diwakili 8 bits kemudian kumpulan 8 bits tersebut di ekstrak menjadi kumpulan per 6 bits yang mewakili satu karakter yang disusun membentuk 4 bagian per blok (jadi tersusun beberapa blok dimana satu blok terdapat 24 bit data). Untuk kemungkinan jika terdapat data bit yang tidak mencapai 6 bits setelah proses ekstrak tadi, solusinya adalah dengan menambahkan bit 0 pada bit 6 hingga mencapai 6 bit dan bit 1 sisanya hingga mencapai 24 bit pada blok yang tersisa. Setelah kumpulan bit tersusun menjadi 24

(64)

bits dimana setiap blok nya dibagi menjadi 4 bagian, yang terdiri dari susunan-susunan 6 bits, barulah dari setiap bagian 6 bits tersebut data-data binary dapat dikonversikan menjadi karakter encoding base64 berdasarkan tabel data encoding 64 radix diatas dimana satu bagian 6 bits mewakili satu karakter encoding base64.

Gambar 2.12-2 : Algoritma Base64 Decoding

Pada proses dekripsi berdasarkan gambar algortima decoding diatas, terlihat inputan data berupa data karakter base64 hasil encoding pada proses sebelumnya, pertama-tama dengan menggunakan tabel Data Encoding64 Radix, data karakter di ubah menjadi binary, dimana satu karakter di wakili oleh 6 bits

(65)

data yang dikelompokkkan dalam blok yang berisi 24 bits data, setelah semua kumpulan bits data tersusun, kumpulan-kumpulan bits tersebut akan diekstrak menjadi kumpulan 8 bits data, dimana satu blok berisi 24 bits data akan di ekstrak menjadi 3 karakter ASCII 8 bits. Kemudian barulah dengan menggunakan tabel ASCII, kumpulan 8 bits data tersebut di ekstrak menjadi karakter plaintext (8 bits data mewakili satu karakter Plaintext). 64 karakter yang mampu dicetak yang digunakan oleh Base64 adalah:

0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 Y 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 + 12 M 29 d 46 u 63 / 13 N 30 e 47 v 14 O 31 f 48 w 15 P 32 g 49 x

(66)

16 Q 33 h 50 y

Tabel 2.12-1 : 64 Karakter yang Menggunakan Base64

Proses pengkodean Base64 ini digunakan untuk : • Membagi byte input stream ke blok dari 3 byte.

• Membagi 24 bit dari sebuah 3-byte blok menjadi 4 kelompok dari 6 bit. Peta setiap kelompok dari 6 bit ke 1 dicetak karakter, yang didasarkan pada nilai 6-bit.

• Jika 3-byte terakhir blok memiliki hanya 1 byte dari data input, pad 2 byte dari nol (\ x0000). Setelah encoding sebagai blok yang normal, menggantikan 2 karakter terakhir dengan 2 tanda sama dengan (==), sehingga proses decoding tahu 2 bytes dari nol telah di pad.

• Jika 3-byte terakhir blok memiliki hanya 2 byte data input, pad 1 byte nol (\ x00). Setelah encoding sebagai blok yang normal, menimpa 1 terakhir karakter dengan 1 tanda sama dengan (=), sehingga proses decoding tahu 1 byte dari nol telah di pad.

Carriage return (\ r) dan baris baru (\ n) dimasukkan ke dalam karakter output stream. Mereka akan diabaikan oleh proses decoding.

(67)

Contoh 1: Input data, 1 byte, "A". Dikodekan output, 4 karakter, "QQ ==" Input Data A Input Bits 01000001 Padding 01000001 00000000 00000000 \ Groups bit 010000 010000 000000 000000 Pemetaan T T A A Override Q Q = =

Contoh 2: Input data, 2 byte, "AB". Dikodekan output, 4 karakter, "qui ="

Input Data A B Input Bits 01000001 01000010 Padding 01000001 01000010 00000000 \ Groups bit 010000 010100 001000 000000 Pemetaan T U aku A Override Q U I =

Contoh 3: Input data, 3 byte, "ABC". Dikodekan output, 4 karakter, "QUJD"

(68)

Bit input 01000001 01000010 01000011 \

Groups bit 010000 010100 001001 000011 Pemetaan Q U J D

2.13 Arsitektur GSM (Global Sistem for Mobile Communication)

Gambar 2.13-1 : Arsitektur GSM (Global System for Mobile Communication)

Keterangan Gambar 2.13-1 :

• MS (Mobile Station) terdiri dari ME (Mobile Equipment) dan SIM (Subcriber Identification Module).

(69)

ME merupakan perangkat keras dan perangkat lunak untuk melakukan transmisi rasi yang dikenal dengan istilah telepon seluler (ponsel). ME secara dunik diidentifikasikan dalam format IMEI (International Mobile Equipment). SIM Card berisi IMSI (International Mobile Subscriber Identity) yang digunakan untuk menyimpan informasi lainnya seperti phone book atapun pesan SMS. Walaupun pengguna tidak terotorisasi dengan password ataupun Personal Identity Number (PIN), SIM card dapat terproteksi.

• BTS (Base Transceiver Station) merupakan alat transceiver (transmitter receiver) radio pada suatu area. BTS didefinisikan sebagai suatu cell dan menangani protokol radio-link dengan Mobile Station lewat radio link. BTS berfungsi sebagai pengirim dan penerima sinyal.

• BSC (Base Station Controller) digunakan untuk mengontrol dan mengatur bebetara BTS. Selain itu, BSC juga bertanggungjawab untuk memelihara koneksi saat panggilan dan kepadatan lalu lintas panggilan pada areanya dan meneruskannya ke network subsystem yang terdiri dari MSC, HLR, VLR, AUC, dan EIR.

• MSC (Mobile Switch Center) merupakan sebuah network element central dalam sebuah jaringan GSM. MSC sebagai inti dari jaringan seluler, dimana MSC berperan untuk interkoneksi hubungan pembicaraan, baik antar selular maupun dengan jaringan kabel PSTN, ataupun dengan jaringan data.

• OMC (Operation and Management Center) berperan untuk memonitor operasional jaringan dalam system serta melakukan fungsi konfigurasi remote.

(70)

• SMSC (Short Message Service Center) bertanggung jawab dalam penyampaian, penyimpanan dan pengajuan suatu pesan singkat.

• ISC (International Switching Center)

• EIR (Equipment Identity Register) merupakan database yang berisi suatu daftar valid mobile equipment pada jaringan.

• AUC (Authentication Center) merupakan database proteksi yang menyimpan salinan dari kunci rahasi (secret key) yang terdapat pada setiap SIM card pelanggan. Proteksi ini digunakan untuk autentifikasi dan enkripsi pada channel radio.

• HLR (Home Location Registry) berisi semua informasi administrasi dari setiap pelanggan yang tersambung pada jaringan GSM. Semua data dan informasi tersimpan secara permanen.

• VLR (Visitor Location Registry) berisi informasi administrasi terpilih dari HLR yang digunakan untuk control panggilan dan provisi dari layanan pelanggan serta control posisi untuk setiap ponsel pada area geografis.

(71)

2.14 Arsitektur CDMA (Code Division Multiple Access)

2.14.1 Generasi CDMA 2G

Gambar 2.14-1 : Arsitektur Jaringan CDMA 2G

Keterangan Gambar 2.14-1:

• BTS (Base Transceiver Station) : Merupakan perangkat yang langsung berhubungan dengan End User. BTS akan memancarkan gelombang radio dalam frekuensi dan jumlah kanal yang disesuaikan dengan lisensi dari operator telekomunikasi.

• BSC (Base Sistem Controller) : Merupakan perangkat yang menghubungkan beberapa BTS dan MSC, menggunakan protokol klasik yaitu SS7 (TDM).

(72)

• MSC (Mobile Switching Center) : Merupakan pusat pengolahan dara pelanggan, salah satu fungsinya seperti menyambungkan pembicaraan antar pelanggan dan mencatat data pembicaraan tersebut. MSC juga melakukan koordinasi dan membangun komunikasi dengan semua perangkat (maupun antar MSC) dengan mengolah data signalling.

• VLR (Visitor Location Register) : Merupakan tempat penyimpanan semestara database pelanggan yang berada dalam area layanan dari suatu MSC.

• HLR (Home Location Register) : Merupakan tempat penyimpanan database pelanggan.

• SMC (Short Message Center) : Merupakan pusat pengolahan layanan pesan pendek (SMS).

• VMS (Voice Mail Service) : Merupakan tempat penyimpanan pesan suara jika pelanggan tidak dapat dihubungi (Mailbox).

• PDSN (Packet Data Switching Node) : Merupakan pusat pengendali jaringan data berbasis paket, yang menghubungkan End User dengan dunia berbasis IP, contoh: internet.

(73)

2.14.2 Generasi CDMA 3G

Gambar 2.14-2 : Arsitektur jaringan CDMA 3G

Perbedaan mendasar antara 2G dan 3G adalah adanya pemisah antara pengolahan signaling (Media Gateway Controller) dan pengolahan Voice / Trunk (Media Gateway). Selain itu, interface signaling pada MGC berbasis SS7 (IOS, IS-41, dan ISUP); IP PRI/IUA, SIP-T, dan MEGACO; R2.

Jenis Protokol di dalam arsitektur 3G beserta fungsinya adalah sebagai berikut :

(74)

SIP (Session Initiation Protokol), yaitu protokol yang digunakan untuk membangun koneksi, memodifikasi, dan menterminasi komunikasi voice, multimedia, dan conference antara MGC.

SIP-T (SIP for Telephony) : Merupakan protokolsignaling standard SIP yang memiliki kemampuan untuk mendefinisikan payload ISUP dari PSTN. Protokol ini digunakan untuk membangun hubungan antar MGC untuk menirukan fungsi sentral local pada PSTN. Selain itu, SIP-T juga digunakan untuk mengontrol user yang sedang melakukan roaming di MGC lain.

• Protokol pengontrol Media Gateway (MGW)

MIGC (Media Gateway Controll Part) adalah protokol yang digunakan oleh MGC untuk mengontrol operasi (routing) voice (trunk), data, dan video.

Megaco (H.248 ITU-T) merupakan protokol yang digunakan oleh MGC untuk mengontrol MGW dalam hal panggilan. Protokol ini merupakan penyempurnaan dari MGCP dan memiliki kelebihan antara lain dalam hal efisiensi dan perbaikan sintaks serta dukungan terhadap protokol UDP dan TCP.

• Protokol Transport

RTP (Real-time Transport Protokol) yaitu protokol dengan fungsi transportend-to-end yang sesuai dengan aplikasi real-time, contohnya : suara dan video.

Gambar

Gambar 2.1-1 : Proses Kompilasi dan Interpretasi Kode Java
Gambar 2.1-2 : Setiap Edisi Java untuk Perangkat Platform  yang Berbeda
Gambar 2.2-1 : Arsitektur J2ME
Gambar 2.3-1 : MIdlet Lifecycle
+7

Referensi

Dokumen terkait

Prosedur ini mencakup Perencanaan Audit, Persiapan Audit, Pelaksanaan Audit, Tindak Lanjut Audit, Monitoring Tindakan Perbaikan, serta Pelaporan Audit Internal oleh Sistem Manajemen

Penyiangan dan pemberian urea pada tanaman baby corn ini pada intinya merupakan upaya untuk memperlancar pertumbuhan fase vegetatif karena dengan memberikan

Penelitian ini adalah tinjauan literatur dimana akan mengeksplorasi mengenai dasar hukum dalam penilaian makro arsip yang di terapkan di Indonesia, serta memberi

Berdasarkan penelitian di atas maka penelitian ini mencoba untuk melakukan penelitian yang serupa dengan variabel dependen yang berbeda untuk menganalisis Apakah ada pengaruh

Sampai saat ini terdapat 35 orang anak yang dirawat di Rumah Singggah Lentera, rata-rata umur anak yang ada di Rumah Singgah Lentera berkisar dari umur enam bulan

Trauma itu tidak bisa dilepaskan, sehingga ketakutan bahwa UU Keormasan yang baru nanti kembali menjadi alat penguasa untuk membungkam kritisisme dan hak-hak

Analisis petrografi bertujuan untuk penamaan batu sedimen serta memperoleh data penunjang bagi Provenance agar dapat diketahui bagaimana kandungan persentase batuan baik

Perbedaan kelembaban diluar dan didalam arboretum disebabkan oleh adanya kondisi vegetasi di dalam arboretum menyebabkan penguapan terhambat sehingga kandungan air tidak