Selasa, 25 Desember 2012

SISTEM KRIPTOGRAFI


Pengertian Kriptografi
Menutur Menezes, Oorschot and Vanstone, (1997)., Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Ketika suatu pesan dikirim dari suatu tempat ke tempat lain, isi pesan tersebut mungkin dapat disadap oleh pihak lain yang tidak berhak. Agar pesan tidak terbaca, maka pesan tersebut dapat diubah menjadi suatu kode yang tidak dapat dimengerti oleh pihak lain
Menurut Bruce Scheiner dalam bukunya “Applied Cryptography”, kriptografi adalah ilmu pengetahuan dan seni menjaga message-message agar tetap aman (secure).
Sistem Kriptografi
Suatu sistem kriptografi terdiri dari sebuah algoritma, seluruh kemungkinan plainteks, cipherteks dan kunci-kuncinya. Sistem kriptografi merupakan suatu fasilitas untuk mengkonversikan plainteks menjadi cipherteks, dan sebaliknya.
Sejarah Kriptografi
Sekitar 40 abad yang lalu, Kriptografi sudah digunakan oleh orang-orang Mesir untuk mengirim pesan ke pasukan yang berada di medan perang dan agar pesan tersebut tidak terbaca oleh pihak musuh walaupun pembawa pesan tersebut tertangkap oleh musuh.
Sekitar 400 SM, kriptografi digunakan oleh bangsa Spartan dalam bentuk sepotong papirus atau perkamen yang dibungkus dengan batang kayu. Pada zaman Romawi kuno, ketika Julius Caesar ingin mengirimkan pesan rahasia pada seorang Jendral di medan perang. Pesan tersebut harus dikirimkan melalui seorang prajurit, tetapi karena pesan tersebut mengandung rahasia, Julius Caesar tidak ingin pesan tersebut terbuka di tengah jalan. Di sini Julius Caesar memikirkan bagaimana mengatasinya yaitu dengan mengacak isi pesan tersebut menjadi suatu pesan yang tidak dapat dipahami oleh siapapun kecuali hanya dapat dipahami oleh Jendralnya saja. Tentu sang Jendral telah diberi tahu sebelumnya bagaimana cara membaca pesan yang teracak tersebut, karena telah mengetahui kuncinya.
Tahun 40-an, Pada perang dunia kedua, Jerman menggunakan mesin enigma atau juga disebut dengan mesin rotor yang digunakan Hitler untuk mengirim pesan kepadatentaranya di medan perang. Jerman sangat percaya bahwa pesan yang dienkripsi menggunakan enigma tidak dapat dipecahkan. Tapi anggapan itu keliru, setelahbertahun-tahun sekutu mempelajarinya dan berhasil memecahkan kode-kodetersebut. Setelah Jerman mengetahui bahwa enigma dapat dipecahkan, maka enigma mengalami beberapa kali perubahan. Enigma yang digunakan Jerman dapat mengenkripsi suatu pesan sehingga mempunyai 15×1018 kemungkinan untuk dapat mendekripsi pesan.
Tahun 60-an,  perkembangan komputer dan sistem komunikasi pada tahun 60-an berdampak pada permintaan dari pihak-pihak tertentu sebagai sarana untuk melindungi informasi dalam bentuk digital dan untuk menyediakan layanan keamanan.
Tahun 70-an, Dimulai dari usaha Feistel dari IBM di awal tahun 70-an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal Amerika Serikat untuk mengenkripsi informasi yang tidak/belum diklasifikasi. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah.Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 saat Diffie dan Hellman mempublikasikan ”New Directions in Cryptography”. Tulisan ini memperkenalkan konsep revolusioner kriptografi kunci publik dan juga memberikan metode baru untuk pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskret. Meskipun Diffie dan Hellman tidak memiliki realisasi praktis pada ide enkripsi kunci publik saat itu, idenya sangat jelas dan menumbuhkan ketertarikan yang luas pada komunitas kriptografi. Pada 1978 Rivest, Shamir dan Adleman menemukan rancangan enkripsi kunci publik yang sekarang disebut RSA. Rancangan RSA berdasar pada masalah faktorisasi bilangan yang sulit, dan menggiatkan kembali usaha untuk menemukan metode yang lebih efisien untuk pemfaktoran.
Tahun 80-an, pada dekade ini terjadi peningkatan luas di area ini, sistem RSA masih aman. Sistem lain yang merupakan rancangan kunci publik ditemukan oleh Taher ElGamal pada tahun 1985. Rancangan ini berdasar pada masalah logaritma diskret. Salah satu kontribusi penting dari kriptografi kunci publik adalah tanda tangan digital.
Tahun 90-an, Pada tahun 1991 standar internasional pertama untuk tanda tangan digital diadopsi. Standar ini berdasar pada rancangan kunci publik RSA. Pada 1994 pemerintah Amerika Serikat mengadopsi Digital Signature Standard, sebuah mekanisme kriptografi yang berdasar pada algoritma ElGamal.
Beberapa Istilah Kriptografi
·    Plaintext adalah pesan yang hendak  dikirimkan  (berisi  data asli).
·   Ciphertext adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.
·  Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.
·   Enkripsi adalah sebuah proses penyandian yang melakukan perubahan sebuahkode (pesan) dari yang bisa dimengerti (plainteks) menjadi sebuah kode yang tidakbisa dimengerti (cipherteks).
·    Dekripsi adalah proses merubah cipherteks menjadi plainteks disebut. Proses enkripsi dan dekripsi memerlukan suatu mekanisme dan kunci tertentu.
·  Cipher adalah suatu fungsi matematis yang digunakan untuk melakukan enkripsi dan dekripsi (Schneier, 1996).
· Kriptoanalisis (cryptanalysis) adalah kebalikan dari kriptografi, yaitu suatu ilmu untuk memecahkan mekanisme kriptografi dengan cara mendapatkan kunci dari cipherteks yang digunakan untuk mendapatkan plainteks.
·         Kriptologi (cryptology)adalah ilmu yang mencakup kriptografi dan kriptoanalisis.
Tujuan Kriptografi
·         Kerahasiaan, adalah aspek yang berhubungan dengan penjagaan isi informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untukmembuka informasi yang telah dienkripsi.
·         Integritas data, adalah aspek yang berhubungan dengan penjagaan dariperubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
·         Autentikasi, adalah aspek yang berhubungan dengan identifikasi atau pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri.Informasi yang dikirimkan harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
·         Non-repudiation (menolak penyangkalan), adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman suatu informasi oleh yang mengirimkan, atau harus dapat membuktikan bahwa suatu pesan berasal dari seseorang, apabila ia menyangkal mengirim informasi tersebut.(Menezes, Oorschot and Vanstone, 1996).
Algoritma Kriptografi
Algoritma kriptografi atau sering disebut dengan cipher adalah suatu fungsi matematis yang digunakan untuk melakukan enkripsi dan dekripsi (Schneier, 1996). Ada dua macam algoritma kriptografi, yaitu:
  • algoritma simetris (symmetric algorithms)
  • algoritma asimetris (asymmetric algorithms).
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Algoritma ini mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka saling berkomunikasi.
Kelebihan Algoritma Simetris
  • Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik.
  • Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time
Kelemahan Algortima Simetri
  • Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.
  • Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”
Algoritma asimetris, sering juga disebut dengan algoritma kunci publik, menggunakan dua jenis kunci, yaitu kunci publik (public key) dan kunci rahasia (secret key). Kunci publik merupakan kunci yang digunakan untuk mengenkripsi pesan. Sedangkan kunci rahasia digunakan untuk mendekripsi pesan.
Kelebihan Algorima Asismetri
  • Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling tidak mengenal satu sama lainnya.
  • Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik.
  • Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time
  Kelemahan Algoritma Asimetris
  • Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.
  • Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”
SUMBER :
·         http://4mie.wordpress.com/2007/11/25/sistem-kriptografi/





Senin, 12 November 2012

SOFTWARE ENGINEERING


PENJELASAN SOFTWARE ENGINEERING

Arti Software Engineering adalah Ilmu yang mempelajari tehnik pembuatan software yang baik dengan pendekatan tehnik (Engineering ap­proach)

Menurut Fritz Badar, software engineering adalah disiplin ilmu yang menerapkan prinsip-prinsip engineering agar mendapatkan software yang ekonomis yang dapat dipercaya dan bekerja lebih efisien pada mesin yang se­benarnya.
Software engineering  terdiri dari 3 elemen kunci, yaitu :
  1. Metode, 
  2. Peralatan (tools),
  3. Prosedur,
yang memungkinkan manajer mengontrol proses pengembangan software dan memberikan praktisi dasar yang baik untuk pembentukan software berkualitas tinggi.

YANG DIPELAJARI DALAM SOFTWARE ENGINEERING

1.      Metode Software Enginnering
Metode software engineering memberikan tehnik-tehnik bagaimana membentuk software. Metode ini terdiri dari serangkaian tugas :
1.  Perencanaan & estimasi proyek
2. Analisis kebutuhan sistem dan software
3.  Desain struktur data
4. Arsitektur program dan prosedur algoritma
5.  Coding
6. Testing dan pemeliharaan
2.      Peralatan Software Engineering
Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya :
- CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hard­ware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering.
- Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing.
- Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE
3.      Prosedur Software Engineering
Terdiri dari :
1. urut-urutan di mana metode tersebut diterapkan
2.  dokumen
3. laporan-laporan
4. formulir-formulir yang diperlukan
5.  mengontrol kualitas software
6. mengkoordinasi perubahan yang terjadi pada software

Dalam penguasaan atas model software engineering atau software engineering paradigma, dikenal ada 3 metode yang luas dipergunakan, yaitu :

1.      Classic Life Cycle Pradigm - Model Water Fall - Model Siklus Hidup Klasik

A.     System Engineering and Analysis
Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara menerap­kan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan ele­men lain, seperti :
1.  Hardware
2. Software
3. Database
B.     Analisis kebutuhan software
Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk soft­ware engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan inter­face terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer.
C.     Design
Desain software sesungguhnya adalah proses multi step (proses yang terdiri dari banyak langkah) yang memfokuskan pada 3 atribut program yang berbeda, yaitu :
1.   Struktur data
2. Arsitektur software
3.  Rincian prosedur
Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software.
D.     Coding
Desain harus diterjemahkan ke dalam bentuk yang dapat dibaca oleh mesin
E.      Testing
Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah dites dan lingkungan external menjamin bahwa definisi input akan menghasilkan output yang diinginkan.
F.      Maintenance
Software yang sudah dikirim ke customer data berubah karena

2.      Prototype Paradigm

Seringkali seorang customer sulit menentukan input yang lebih terinci, proses yang diinginkan dan output yang diharapkan. Tentu saja ini menyebabkan developer tidak yakin dengan efisiensi alogoritma yang di­buatnya, sulit menyesuaikan sistem operasi, serta interaksi manusia dan mesin yang harus diambil. Dalam hal seperti ini, pendekatan prototype untuk software engineering merupakan langkah yang terbaik. Proto­type sebenarnya adalah suatu proses yang memungkinkan developer membuat sebuah model software.

3.      Fourth Generation Tehnique Paradigm - Model tehnik generasi   ke 4 / 4GT

Istilah Fourth Generation Technique (4GT) meliputi seperangkat peralatan software yang memungkinkan seorang developer software menerapkan beberapa karakteristik software pada tingkat yang tinggi, yang ke­mudian menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi yang ditentu­kan developer. Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk :
- DataBase Query
- Pembentukan laporan ( Report Generation )
- Manipulasi data
Definisi dan interaksi layar (screen)
- Pembentukan object dan source ( Object and source generation )
- Kemampuan grafik yang tinggi, dan
- Kemampuan spreadsheet
Keterangan gambar :
Model 4GT untuk software engineering dimulai dengan rangkaian pengumpulan kebutuhan. Idealnya, seorang customer menjelaskan kebutuhan-kebutuhan yang selanjutnay diterjemahkan ke dalam proto­type. Tetapi ini tidak dapat dilakukan karena customer tidak yakin dengan apa yang diperlukan, tidak jelas dalam menetapkan fakta-fakta yang diketahui dan tidak dapat menentukan informasi yang diing­inkan oleh peralatan 4GT.
Untuk aplikasi kecil adalah mungkin bergerak langsung dari langkah pengumpulan kebutuhan ke im­plementasi yang menggunakan bahasa non prosedur fourth generation (generasi ke 4). Tetapi untuk proyek besar, pengembangan strategi desain sistem tetap diperlukan, sekalipun kita menggunakan 4GL. Penggunaan 4GT tanpa desain untuk proyek besar akan menyebabkan masalah yang sama yang ditemui dalam pengembangan software yang menggunakan pendekatan konvensional.
  Implementasi yang menggunakan 4GL memungkinkan developer software menjelaskan hasil yang diing­inkan yang kemudian diterjemahkan ke dalam bentuk source code dan object code secara otomatis.
- Langkah yang terakhir adalah mengubah implementasi 4GT ke dalam sebuah product. Selanjutnya de­veloper harus melakukan pengetesan, pengembangan dokumentasi dan pelaksanaan semua aktifitas lainnya yang diwujudkan dalam model software engineering.

Masalah yang dihadapi dalam model 4GT adalah adanya sebagian orang yang beranggapan bahwa :
A.     peralatan 4GT tidak semudah penggunaan bahasa pemrograman,
B.     source code yang dihasilkan oleh peralatan ini tidak efisien,
C.     pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih merupakan tanda tanya.

KURIKULUM SOFTWARE ENGINEERING

Tingkat I : Mempersiapkan siswa menjadi Stand Alone Programmer
Semester 1:
1.      Mengoperasikan Sistem Operasi
2.      Menginstalasi software
3.      Mengubah konfigurasi software
4.      Menyiapkan dan melakukan survey untuk menentukan kebutuhan data
Semester 2:
1.      Mengoperasikan software bahasa pemograman level 1
2.      Konversi data level 1
3.      Menguji program level 1

Tingkat II: Mempersiapkan siswa menjadi Multi User Programmer
Semester 3:
1.      Mengoperasikan sistem operasi jaringan komputer berbasis teks
2.      Mengoperasikan sistem operasi jaringan komputer berbasis GUI
3.      Melakukan perancangan pengumpulan data
4.      Melakukan desain dan perancangan software
5.      Melakukan pengkodean program

Semester 4:
1.      Melakukan back up data
2.      Melakukan restore data
3.      Mengoperasikan software aplikasi basis data
4.      Membuat query data
5.      Menguji Program

Tingkat III: Mempersiapkan siswa menjadi Web Programmer
Semester 5:
1.      Membangun interface dengan bahasa pemograman berorientasi objek
2.      Melakukan pengkodean program
3.      Mengoperasikan bahasa pemograman berbasis web
4.      Membangun program aplikasi remote data interaktif

PELUANG KERJA SEBAGAI SOFTWARE ENGINEERING

Profesi ini di tahun sebelum 1990 an tidak banyak di lirik kebanyakan orang di karenakan sistem kerjanya yang terlalu monoton yang selalu berkutat dengan algoritma dan hanya mengelola data pada tahapan lokal, serta tidak banyak menjajikan untuk penghasilan yang bergengsi, software engineer di anggap hanya sebagai alat untuk membantu perusahaan dalam menjalankan roda bisnisnya dengan cara membuat aplikasi yang di inginkan oleh perusahaan, serta mengelola data pada tahapan lokal saja.

Tetapi setelah era 1990an banyak bermunculan milyader –milyader baru yang berasal dari latar belakang profesi software engineer atau pengembang software engineer seperti , Bill gates CEO Microsoft corporate yang menguasai pasar software di dunia, Waren Buffet CEO Oracel software, Michael Dell CEO Dell corporate, dan masih banyak lagi yang lainnya, dan di amerika setelah badai krisis melanda system perekonomian negeri tersebut, warga negaranya mulai menjadi melirik peluang baru untuk bisa eksis dalam menjalankan roda perekonomian, banyak yang memulai menjadi tenaga ahli dalam software engineer, kerena keahlian ini hanya sedikit kompetitornya dan nilai income yang di dapat juga cukup menjanjikan, maka tidak heran kalau sekarang di amerika tenaga ahli bidang software engineer mempunyai nilai tersendiri di masyarakat amerika ini bisa terlihat dalam data berikut ini :

1.      Human resource management S1 $49,96 (atau sekitar Rp. 518,335) per jamnya
2.      Software engineering S1 $ 42,26 (atau sekitar Rp. 438,448)
3.      Fashion Design S1 $ 34,33 (atau sekitar Rp. 352,750)
4.      Administrasi Pendidikan S2 $30 (atau sekitar Rp. 311,250)
5.      Accounting S1 / S2 $31,65 atau sekitar Rp. 328,368.75 per jam


hasmapsa.staff.gunadarma.ac.id/Downloads/files/1503/RPL1.DOC