POP3

Saat ini di kalangan masyarakat pengguna internet, POP bukanlah suatu barang baru. Dengan menggunakan POP, seseorang mendapat kemudahan untuk mendapatkan mail miliknya dari sebuah mail server, tanpa perlu koneksi yang lama dengan internet yang tentu saja memakan biaya.

Pada tulisan ini, akan banyak ditemui istilah client dan server. Client dan server merupakan bagian dari arsitektur yang banyak digunakan pada implementasi layanan internet. Arsitektur ini biasa disebut sebagai client/server architecture. Pengertian client pada pembahasan tentang POP3 ini adalah pihak yang menggunakan layanan POP3 dan server adalah pihak yang menyediakan layanannya

 

 

Apakah POP itu ?

POP atau Post Office Protocol, sesuai dengan namanya merupakan protokol yang digunakan untuk pengelolaan mail. POP yang sekarang lebih umum dikenal dengan POP3 (POP – Version 3), dimaksudkan untuk mengizinkan client untuk mengakses secara dinamis mail yang masih ada di POP3 server. POP3 menawarkan pada user untuk meninggalkan mail-nya di POP3 server, dan mengambil mail-nya tersebut dari sejumlah sistem sebarang. Untuk mengambil mail dengan menggunakan POP3 dari suatu client, banyak pilihan yang dapat digunakan seperti Sun Microsystem Inc.’s Mailtool, QualComm Inc.’s Eudora, Netscape Comm. Corp.’s Netscape Mail dan Microsoft Corp.’s Outlook Express.

POP3 tidak dimaksudkan untuk menyediakan operasi manipulasi mail yang ada di server secara luas. Pada POP3, mail diambil dari server dan kemudian dihapus (bisa juga tidak dihapus). Segala sesuatu tentang protokol POP3 ini dibahas dalam RFC (Request For Comment) 1725. Protokol yang lebih tinggi dan lebih kompleks, yaitu IMAP4, dibahas dalam RFC 1730.

Mode POP3

Ada dua jenis mode pada POP3 yaitu mode offline dan mode inline. Pada mode offline, POP3 mengambil dan kemudian menghapus mail yang tersimpan dari server. POP3 bekerja dengan baik pada mode ini, karena terutama memang didisain untuk berlaku sebagai sebuah sistem mail yang memiliki sifat “store-and-forward“. Server, pada mode offline, berlaku seperti sebuah tempat penampungan yang menyimpan mail sampai user memintanya.

Pada mode inline, POP3 akan mengambil mail dari server tanpa menghapus mail yang sudah diambil tersebut. Mode ini lebih disukai oleh user yang sering berpindah tempat (nomadic user) karena memungkinkan mereka untuk melihat mail yang sama dari tempat atau komputer yang berbeda. Akan tetapi untuk nomadic user yang selalu bekerja dan bepergian dengan selalu membawa notebook, dan tetap menginginkan agar mail miliknya yang ada di server tidak dihapus, tentu saja menginginkan agar setiap kali mengambil mail tidak semua mail yang akan terambil, tapi hanya mail yang belum pernah dia lihat saja yang akan diambil. Keinginan user seperti ini dapat dipenuhi dengan menggunakan informasi pada client yang memungkinkan untuk memberi tanda mail yang sudah pernah dilihat. Setiap client layanan POP3 yang mendukung mode inline akan menyimpan informasi ini dalam sebuah file. Pada user yang menggunakan Netscape Mail, file yang menyimpan informasi ini adalah file popstate.dat, yang biasanya terdapat di /Program Files/Netscape/Users/Mail. File tersebut memberi tahu mail yang mana saja yang sudah diambil sehingga tidak perlu diambil lagi. Jika file ini dihapus maka tentu saja pada pengambilan mail berikutnya semua mail akan terambil. Contoh isi file popstate.dat untuk seorang user yang memiliki login misalnya ‘wandi’ di POP3 server students.itb.ac.id adalah sebagai berikut :

 

# Netscape POP3 State File

# This is a generated file! Do not edit.

 

*students.itb.ac.id wandi

k c67ee091087ed814337b4cb31e0d488c

k 8541822a98e890b88d8299d034993f61

k 652e17a1c984e610e4e55257c07b6ff4

 

Pada file ini kode dibelakang huruf k merupakan unique-id. Unique-id ini secara unik mengidentifikasi sebuah mail dalam maildrop sehingga masing-masing mail memiliki unique-id yang berbeda. Jika misalnya mail kita yang berada di komputer lokal sudah terhapus sedangkan kita ingin membacanya lagi, maka sebelum kita mengambil maildrop dari server, file popstate.dat ini harus dihapus terlebih dahulu. Apabila kita belum menghapus file tersebut maka akan ada pesan : ” no new messages on server “, yang diberikan oleh Netscape Mail. Untuk pemakai Eudora, file yang menyimpan informasi ini adalah file lmos.dat, sedangkan untuk pengguna Outlook Express biasanya menggunakan file pop3uidl.dat.

 

Operasi Dasar POP3

Pada awalnya, server memulai layanan POP3 dengan mendengarkan permintaan pada TCP port 110. Ketika sebuah client meminta layanan tersebut, maka terjadilah hubungan TCP dengan server. Pada saat hubungan dimulai, POP3 server mengirim greeting (kata pembuka). Setelah itu client akan memberikan command (perintah) ke server dan POP3 server akan memberikan response (jawaban) sampai hubungan ditutup atau digagalkan. Perlu diingat bahwa user tidak memasukkan perintah ini, tapi software dari client-lah yang mengirim perintah ini ke server.

Perintah-perintah di POP3 terdiri dari sebuah keyword yang tidak case sensitive (tidak mempersoalkan huruf kapital ataupun tidak), yang dapat diikuti oleh satu atau lebih argument. Keyword dan argument masing-masing dipisahkan oleh karakter SPACE (spasi). Keyword terdiri dari tiga atau empat karakter, sedangkan tiap argument dapat mencapai 40 karakter. Jawaban di POP3 terdiri dari sebuah indikator status dan sebuah keyword yang dapat diikuti oleh informasi tambahan. Ada dua indikator status : positif (“+OK”) dan negatif (“-ERR”). Server harus memberikan jawaban +OK dan -ERR dalam huruf kapital. Pada perintah tertentu, server akan memberikan jawaban yang terdiri dari beberapa baris.Sebuah sesi hubungan POP3 dibangun melalui tiga tahap, yaitu tahap authorization, transaction dan update. Sekali hubungan TCP dimulai dan POP3 server telah mengirimkan greeting , maka sesi hubungan telah memasuki tahap authorization. Pada tahap ini client mengirim nama dan password user ke server untuk membuktian keaslian user tersebut agar dapat mengambil mail-nya. Ketika client telah berhasil membuktikan identitas dirinya, server akan memperoleh informasi yang berhubungan dengan mail yang dimiliki client tersebut, dan sesi kini memasuki tahap transaction. Pada tahap inilah terjadi proses penerimaan mail, penandaan mail untuk penghapusan, pembatalan penandaan untuk penghapusan, penampilan statistik mail atau perincian identitas mail. Pada saat client telah memberikan perintah quit untuk mengakhiri hubungan, maka sesi memasuki tahap update. Pada tahap inilah server akan menjalankan semua perintah yang diperoleh selama tahap transaction dan menutup sesi dan selanjutnya hubungan TCP ditutup.

Sebuah server harus menjawab perintah yang tidak dikenal, tidak diimplementasi, atau tidak sesuai dengan sintaksis dengan indikator status negatif. Server juga harus memberikan indikator status negatif, jika ada client yang memberikan perintah tidak pada tahap yang seharusnya. Tidak ada metoda umum yang dapat digunakan oleh client untuk membedakan antara server yang tidak mengimplementasikan perintah tambahan dengan server yang tidak dapat atau tidak bersedia memproses perintah tambahan tersebut.

Sebuah POP3 server mungkin memiliki autologout timer untuk client yang sedang tidak aktif dalam rentang waktu tertentu. Timer seperti ini harus paling sedikit memiliki rentang waktu 10 menit. Jika sebuah server menerima sebarang perintah dari client didalam rentang waktu tersebut, maka hal ini sudah cukup untuk me-reset autologout timer tersebut. Ketika waktu rentang timer sudah habis, tanpa ada aktivitas dari client maka sesi hubungan tidak memasuki tahap UPDATE. Server akan menutup hubungan TCP tanpa menghapus mail atau mengirim jawaban ke client.

Semua pesan yang disampaikan selama sesi hubungan POP3 harus disesuaikan dengan standar format dari Internet text messages. Internet text messages ini, secara terperinci dibahas dalam RFC 822. Tabel 1. dibawah ini memperlihatkan perintah-perintah pada POP3 berikut tahap tempat perintah tersebut digunakan.

 

Setting POP3 di Microsoft Outlook

Untuk mengkonfigurasi setelan POP untuk Microsoft Outlook (kadang-kadang disebut Outlook XP) dan 2003, ikuti langkah-langkah berikut:

  1. Dari menu Tools, pilih “Email Accounts.” Anda mungkin perlu mengklik tanda panah.

  2. Pilih tombol radio di samping “Add a new email account” dan klik tombol “Next.”

  3. Pilih tombol radio di samping “POP3” dan klik tombol “Next.”

  4. Masukkan informasi berikut:

    User Information

    • Your Name: Masukkan nama Anda sesuai yang Anda inginkan agar tampak di bidang “Dari” pada surat keluar.

    • Alamat Email: Masukkan alamat Surat Yahoo! Anda yang lengkap (misalnya, “pengguna@yahoo.co.id”).

    Server Information

    • Incoming mail server (POP3):

      pop.mail.yahoo.co.id

    • Outgoing mail server (SMTP):

      smtp.mail.yahoo.co.id

    Login Information

    • User Name: Masukkan ID Yahoo! Anda (alamat email Anda tanpa “@yahoo.co.id”).

    • Sandi: Masukkan sandi Yahoo! Anda.

  5. Jangan mencentang kotak di samping “Log on using Secure Password Authentication (SPA).”

  6. Klik kotak “More Settings,” dan pilih tab “Outgoing Server.”

  7. Centang kotak di samping “My outgoing server (SMTP) requires authentication.”

  8. Jika Anda ingin menyimpan salinan email Anda di server Surat Yahoo!, pilih tab “Advanced.” Centang kotak di samping “Leave a copy of messages on the server.”

  9. Klik tombol “OK.”

  10. Klik tombol “Next” pada Email Account Wizard, lalu klik “Finished.”

     

Penting: Server SMTP Surat Yahoo! membutuhkan autentikasi. Untuk mengaktifkan setelan ini, ikuti langkah-langkah berikut:

  1. Klik “Tools,” lalu pilih “Email Accounts.”

  2. Pilih “View or change existing email accounts” dan klik “Next.”

  3. Pilih akun Surat Yahoo! dan klik tombol “Change” di sebelah kanan.

  4. Klik tombol “More Settings…” di pojok kanan bawah jendela Email Accounts.

  5. Pada jendela Internet Email Settings, klik tab “Outgoing Server.” Pastikan mencentang kotak di samping “My outgoing server (SMTP) requires authentication.”

  6. Klik tab “Advanced,” dan pastikan Anda tidak memilih “This server requires a secure connection (SSL)” di bawah setelan Incoming (POP3) atau Outgoing (SMTP) Port.

Untuk mengendalikan penghapusan surat dari server Surat Yahoo!, ikuti langkah-langkah berikut:

  1. Dari menu Tools, pilih “Email Accounts.”

  2. Pilih tombol radio di samping “Edit an existing account” dan klik tombol “Next.”

  3. Klik dua kali akun Yahoo!.

  4. Pilih tab “Advanced.”

  5. Pada bagian Delivery di bagian bawah jendela, centang “Leave a copy of messages on server” jika Anda ingin menyimpan pesan Surat Yahoo!, baik pada server Surat Yahoo! maupun pada komputer lokal Anda. Jika Anda ingin surat dihapus dari server Surat Yahoo! setelah menerimanya di Outlook, jangan mencentang kotak ini.

     

Jika ISP Anda memblokir port 25 atau jika Anda tidak bisa mengirimkan email, maka Anda harus menggunakan port 587 apabila mengirimkan lewat server SMTP Yahoo!. Untuk melakukan perubahan ini, ikutilah petunjuk berikut:

  1. Dari menu “Tools,” pilih “E-mail Accounts.”

  2. Pilih “View or Change existing email accounts” dan klik “Next.”

  3. Pilih akun POP Yahoo! dan klik tombol “Change.”

  4. Berikutnya, klik “More Settings”

  5. Klik tab “Advanced.”

  6. Di samping “Outgoing server (SMTP), ubah port 25 menjadi 587

  7. Klik “OK”, lalu klik “Next” dan “Finish”

Ditulis dalam Mixed. 1 Komentar »

Algorima Knapsack

Salah satu algoritma public key adalah algoritma knapsack. Apa sih algoritma Knapsack itu?

Algoritma Knapsack adalah algoritma kriptografi kunci-publik yang keamanannya terletak pada sulitnya memecahkan persoalan knapsack(Knapsack Problem). Knapsack di sini artinya adalah kantung. Di algorima ini dikenal permasalahan yang disebut Knapsack Problem.

Knapsack Problem

Jika m merupakan bobt knapsack dan n adalah banyaknya objek yang masing-masing mempunyai bobot w1,w2,…,wn. Tentukan nilai bi sedemikian sehingga

M=b1w1+b2w2+…+bnwn

Yang dalam hal ini bi hanya bernilai 0 dan 1. Jika b=1, maka objek I dimasukkan ke dalam Knapsack, sebaliknya jika b=0, maka tidak dimasukkan ke dalam knapsack.

Algoritma Knapsack Sederhana

Ide dasar Knapsack adalah mengkodekan pesan sebagai rangkaian solusi dari persoalan knapsack. Setiap bobot w1 di dalam persoalan knapsack merupakan kunci privat, sedangkan bit-bit plainteks menyatakan b1

Contoh :

Misalkan n=6 dan w1=1, w2=5, w3=6, w4=11, w5=14 dan w6=20.

Plainteks = 111001010110000000011000

Jawab:

Plainteks dibagi menjadi blok yang panjangnya n, kemudian setiap bit di dalam blok dikalikan dengan w1 yang berkoresponden sesuai persamaan di atas:

            Blok plainteks ke-1     : 111001

            Blok plainteks ke-2     : 010110

Blok plainteks ke-3     : 000000

Blok plainteks ke-4     : 011000

            Knapsack                    : 1,5,6,11,14,20

            Kriptogram ke-1          : (1×1) + (1×5) + (1×6) + (1×20) =32

            Kriptogram ke-2          : (1×5) + (1×11) + (1×14) = 30

            Kriptogram ke-3          : 0

            Kriptogram ke-4          :  (1×5) + (1×6) = 11

            Jadi, cipherteks yang dihasilkan : 32, 30, 0, 11

Untuk algoritma di atas hanya bias digunakan untuk  enkripsi saja. Misalkan kita diberikan kriptogram 32, maka kita harus mencari nilai b1,b2,…,b6 untuk persamaan

            32 = b1+5b2+6b3+11b4+14b5+20b6

Solusi dari persamaan di atas tidak dapat dipecahkan dalam orde waktu polynomial dengan orde waktu polynomial dengan semakin besar n dan barisan bobot tidak dalam urutan naik.

Superincreasing knapsack

Superincreasing knapsack adalah persoalan knapsack yang dapat dipecahkan dalam orde 0(n) yang bersifat polynomial. Ini adalah perrsoalan knapsack yang mudah. Kita dapat membentuk barisan superincreasing kannpsack. Barisan superincreasing adalah suatu barisan di mana setiap nilai di dalam barisan lebih besar daripada jumlah semua nilai sebelumnya, misalnya(1,3,6,13,27,52).

Solusi dari superincreasing knapsack mudah dicari dengan cara berikut:

  1. Jumlahkan semua bobot dalam barisan.
  2. Bandingkan bobot total dengan bobot terbesar di dalam barisan. Jika bobot terbesar lebih kecil atau sama dengan bobot total, maka ia dimasukkan ke dalam knapsack, jika tidak, maka tidak dimasukkan.
  3. Kurangi bobot total dengan bobot yang telah dimasukkan, kemudian bandingkan bobot total sekarang dengan bobot terbesar selanjutnya. Demikian seterusnya sampai seluruh bobot di dalam barisan selesai dibandingkan.
  4. Jika bobot total menjadi nol, maka terdapat solusi superincreasing knapsack, tetapi jika tidak nol, maka tidak ada solusinya.

Contoh :

Misalkan bobot-bobot yang membentuk barisan superincreasing adalah (2,3,6,13,27,52) dan diketahui bobot knapsack (m) = 70. untuk mencari nilai bi, caranya adalah sebagai berikut:

  1. Bandingkan 70 dengan nilai terbesar yaitu 52. Karena 52< 70, maka 52 dimasukkan ke dalam knapsack.
  2. Bobot total sekarang 70-52=18, maka 27 tidak dimasukkan ke dalam knapsack.
  3. Untuk bobot selanjutnya adalah 13, karena 13<18, maka masukkan 13 ke dalam knapsack.
  4. Bobot total menjadi 18-13=5
  5. Bandingkan bobot terbesar 6 dengan 5. Karena 6>5, maka 6 tidak termasuk.
  6. Bandingkan bobot 3 dengan bobot total. Karena 3<5, maka 3 termasuk ke dalam knapsack.
  7. Bobot total menjadi 5-3=2.
  8. Bandingkan bobot terakhir dengan bobot total, Karena 2< 2, maka masukkan 2 ke dalam knapsack.
  9. Bobot total menjadi 2-2=0.

Karena bobot total sama dengan 0, maka persoalan ini dapat dipecahkan. Barisan bobot yang akan dimasukkan ke dalam knapsack adalah (2,3,13,52). Untuk 6 dan 27 tidak termasuk., sehingga 70 = (1×2) + (1×3) + (0×6) + (1×13) + (0×27) + (1×52).

Dengan kata lain, plainteks dari kriptogram 70 adalah 110101.

Algoritma Knapsack Kunci-Publik

Algoritma superincreasing knapsack adalah algoritma yang lemah. Algoritma non supercreasing knapsack atau normal knapsack adalah kelompok algoritma knapsack yang sulit dari segi komputasi karena membutuhkan waktu dalam orde eksponeensial untuk memecahkannya. Namun, supercreasing knapsack dapat dimodifikasi menjadi non-supercreasing knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci privat untuk dekripsi. Kunci public di sini menggunakan barisan non-superincreasing sedangkan kuci privat menggunakan barisan increasing. Algoritma ini ditemukan oleh martin Hellman dan Ralph Merkle.

Algortima untuk membangkitkan kunci public dan kunci privat :

  1. Tentukan barisan superincreasing.
  2. Kalikan setiap elemen di dalam barisan tersebut dengan n modulo m. Modulus m seharusnya angka yang lebih besar daripada jumlah semua elemen di dalam barisan, sedangkan pengali n seharusnya tidak mempunyai factor persekutuan dengan m.
  3. Hasil perkalian akan menjadi kunci public sedangkan barisan suuperincreasing semula menjadi kunci privat,

Contoh:

Misalkan barisan superoncreasing adalah (2,3,6,13,27,52), m=105, n=31. Barisan non-superincreasing knapsack adalah:

            2.31 mod 105 = 62

3.31 mod 105 = 93

6.31 mod 105 = 81

13.31 mod 105 = 88

27.31 mod 105 = 102

52.31 mod 105 = 37

Jadi kunci public adalah (62,93,81,88,102,37), sedangkan kunci privat adalah (2,3,6,13,27,52).

Enkripsi

Enkripsi dilakukan dengan cara yang sama dengan seperti yang dilakukan algoritma k\napsack sebelumnya.

  1. Mula-mula plainteks diubah menjadi blok bit yang sama panjang dengan barisan kunci publik.
  2. Kalikan setiap bit di dalam blok dengan elemen yang berkoresponden di dalam kunci publik.

Misalkan:

Plainteks: 011000110101101110

Dan kunci publik yang digunakan (62,93,81,88,102,37). Plainteks dibagi menjadi blok yang panjangnya sama dengan banyaknya kunci publik yang dipakai, yaitu 6. Kemudian setiap bit di dalam blok dikalikan dengan eleme yang berkoresponden di dalam kunci publik.

            Blok plainteks ke-1     : 011000

            Blok plainteks ke-2     : 110101

            Blok plainteks ke-3     : 101110

            Kunci public                : 62,93,81,88,102,37

Kriptogram ke-1          : (1×93) + (1×81) = 174

Kriptogram ke-2          : (1×62) + (1×93) + (1×88) + (1×37) = 280

Kriptogram ke-3          : (1×62) + (1×81) + (1×88) + (1×102) = 333

            Cipherteks yang dihasilkan : 174, 280, 333

Dekripsi

Dekripsi dilakukan dengan menggunakan kunci privat. Mula-mula penerima pesan menghitung nilai n-1, yaitu inverse n modulo m, sedemikian sehingga n. n-1= 1 (mod m). Kekongruenan ini dapat dihitung dengan cara :            n. n-1= 1 (mod m)            => n. n-1= 1 + km            => n. n-1= (1+km)/n, k sembarang bilangan bulat..Kalikan setiap kriptogram dengan n-1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci privat untuk memperoleh plainteks dengan menggunakan algoritma pencarian solusi superincreasing knapsack.Contoh:Dari contoh sebelumnya, dengan menggunakan kunci privat (62,93,81,88,102,37). Di sini, n=31 dan m=105. Nilai n-1 diperoleh dari:            n-1 = (1+105k)/31, dengan mencoba k=0,1,2,…, maka kita akan memperoleh nilai n-1  jika k=18.n-1 = (1+105.18)/31 = 61Plain teks yang berkoresponden diperoleh kembali dengan cara membuka di awal yang telah kita bahas. Hasilnya akan diperoleh174.61 mod 105 = 9 , bobotnya 3+6, berkoresponden dengan 011000280.61 mod 105 = 70 , bobotnya 2+3+13+52, berkoresponden dengan 110101333.61 mod 105 = 48 , bobotnya 2+6+13+27, berkoresponden dengan 101110

Jadi plainteksnya adalah: 011000 110101 101110

Sourcenya

#include <assert.h>

#include <stdio.h>

#include <stdlib.h>

#define TRUE 1

#define FALSE 0

int recursiveKnapsack(int target, int candidate, int weights[],int taken[], int N);

void initTaken(int taken[], int N);

int main(void)

{

const int N = 5;

int weights[] = {3, 1, 2, 3, 8};

int taken[N];

initTaken(taken, N);

assert(recursiveKnapsack(7, 0, weights, taken, N));

assert( taken[0] == TRUE &&

taken[1] == TRUE &&

taken[2] == FALSE &&

taken[3] == TRUE &&

taken[4] == FALSE);

initTaken(taken, N);

assert(recursiveKnapsack(10, 0, weights, taken, N));

assert(t aken[0] == FALSE &&

taken[1] == FALSE &&

taken[2] == TRUE &&

taken[3] == FALSE &&

taken[4] == TRUE);

initTaken(taken, N);

assert(!recursiveKnapsack(30, 0, weights, taken, N));

initTaken(taken, N);

assert(recursiveKnapsack(17, 0, weights, taken, N));

assert( taken[0] == TRUE &&

taken[1] == TRUE &&

taken[2] == TRUE &&

taken[3] == TRUE &&

taken[4] == TRUE);

return EXIT_SUCCESS;

}

 

int recursiveKnapsack(int target, int candidate, int weights[],int taken[], int N)

{

if (target == 0)

return TRUE;

if (target < 0 || candidate > N-1)

return FALSE;

if (recursiveKnapsack(target – weights[candidate], candidate + 1,weights,taken, N))

{

taken[candidate] = TRUE;

return TRUE;

}

return recursiveKnapsack(target, candidate + 1, weights, taken,N);

}

 

void initTaken(int taken[], int N)

{

int i;

for (i = 0; i < N; i++)

taken[i] = FALSE;

}

 

 Implementasi Knapsack

  • Ukuran cipherteks yang dihasilkan lebih besar daripada plainteksnya, karena enkripsi dapat menghasilkan kriptogram yang nilai desimalnya lebih besar daripada nilai desimal blok plainteks yang dienkripsikan.
  • Untuk menambah kekuatan algoritma knapsack, kunci publik maupun kunci rahasia seharusnya paling sedikit 250 elemen, nilai setiap elemen antara 200 sampai 400 bit panjangnya, nilai modulus antara 100 sampai 200 bit.

  • Dengan nilai-nilai knapsack sepanjang itu, dibutuhkan 1046 tahun untuk menemukan kunci secara brute force, dengan asumsi satu juta percobaan setiap detik.

 

Keamanan Knapsack

Algoritma knapsack dinyatakan sudah tidak aman, karena knapsack dapat dipecahkan oleh pasangan kriptografer Shamir dan Zippel. Mereka merumuskan transformasi yang memungkinkan mereka merekonstruksi superincreasing knapsack dari normal knapsack.

Ditulis dalam Kriptologi. 1 Komentar »

Kriptologi

Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita [Bruce Schneier - Applied Cryptography].Kriptografi adalah suatu ilmu ataupun seni mengamankan pesan, dan dilakukan oleh cryptographer. Sedang, kripanalisis adalah suatu ilmu dan seni membuka ciphertext (teks sandi) dan orang yang melakukannya disebut cryptanalyst. Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :

·         Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.

·         Integritas data, adalah berhubungan dengan penjagaan dari perubahan 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 berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.

·         Non-repudiasi, atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.

Welcome to You

Assalamu’alaikum Wr. WbSelamat satang di scriptdic.wordpress.com. Blog ini masih dalam pengembangan Agus Mahardika Ari Laksmono. Oleh karena itu, kami sangat mengharapkan saran dan kritik dari Saudara. Semoga Blog ini dapat bermanfaat bagi kita semua.

Wassalamu’alaikum Wr. Wb.

Ditulis dalam Mixed. Leave a Comment »

Harta Karun untuk Semua

HARTA KARUN untuk SEMUA
Oleh: Dewi Lestari

Hari ini kiriman buku yang saya pesan dari Amazon.com datang. Ada satu buku yang langsung saya sambar dan baca seketika. Judulnya: “Stuff – The Secret Lives of Everyday Things”. Buku itu tipis, hanya 86 halaman, tapi informasi di dalamnya bercerita tentang perjalanan ribuan mil dari mana barang-barang kita berasal dan ke mana barang-barang kita berakhir.
Dimulai sejak SD, saat saya pertama kali tahu bahwa plastik memakan waktu ratusan tahun untuk musnah, saya sering merenung: orang gila mana yang menciptakan sesuatu yang tak musnah ratusan tahun tapi masa penggunaannya hanya dalam skala jam-bahkan detik? Bungkus permen yang hanya bertahan sepuluh detik di tangan, lalu masuk tong sampah, ditimbun di tanah dan baru hancur setelah si pemakan permen menjadi fosil.
Sukar membayangkan apa jadinya hidup ini tanpa plastik, tanpa cat, tanpa deterjen, tanpa karet, tanpa mesin, tanpa bensin, tanpa fashion. Dan sebagai konsumen dalam sistem perdagangan modern, sejak kita lahir rantai pengetahuan tentang awal dan akhir dari segala sesuatu yang kita konsumsi telah diputus. Kita tidak tahu dan tidak dilatih untuk mau tahu ke mana kemasan styrofoam yang membungkus nasi rames kita pergi, berapa banyak pohon yang ditebang untuk koran yang kita baca setengah jam saja, beban polutan yang diemban baju-baju semusim yang kita beli membabi-buta.
Untuk aktivitas harian yang kita lewatkan tanpa berpikir, yang terasa wajar-wajar saja, pernahkah kita berhitung bahwa untuk hidup 24 jam kita bisa menghabiskan sumber daya Bumi ini berkali-kali lipat berat tubuh kita sendiri? Untuk menyiram 200 cc air kencing, kita memakai 3 liter air. Untuk mencuci secangkir kopi, kita butuh air sebaskom. Untuk memproduksi satu lapis daging burger yang mengenyangkan perut setengah hari dibutuhkan sekitar 2,400 liter air. Produksi satu set PC seberat 24 kg yang parkir di atas meja kerja kita menghasilkan 62 kg limbah, memakai 27,594 liter air, dan mengonsumsi listrik 2,300 kwh. Bagaimana dengan chip kecil yang bekerja di dalamnya? Limbah yang dihasilkan untuk memproduksinya 4,500 kali lipat lebih berat daripada berat chip itu sendiri.
Mengetahui mata rantai tersembunyi ini bisa menimbulkan berbagai reaksi. Kita bisa frustrasi karena terjepit dalam ketergantungan gayahidup yang tak bisa dikompromi, kita bisa juga semakin apatis karena tidak mau pusing. Yang jelas, sesungguhnya ini adalah pengetahuan yang sudah saatnya dibuka. Pelajaran Ilmu Alam, selain belajar penampang daun dan membedah jantung katak, dapat dibuat lebih empiris dengan mempelajari hulu dan hilir dari benda-benda yang kita konsumsi, sehingga tanggung jawab akan alam ini telah disosialisasikan sejak kecil.
Pernahkah kita merenung, saat kita memasuki gedung FO empat lantai, Pasar Baru, atau berjalan-jalan ke Gasibu pada hari Minggu di mana ada lautan PKL: tidakkah semua baju dan barang-barang itu mampu memenuhi kecukupan penduduk satu kota? Tapi kenapa barang-barang ini tidak ada habisnya diproduksi? Setiap hari selalu ada jubelan pakaian baru yang menggelontori pasar. Pernahkah kita merenung, saat kita memasuki hypermarket dan melihat ratusan macam biskuit, ratusan varian mie instan, dan ratusan merk sabun: haruskah kita memiliki pilihan sebanyak itu?
Pernahkah kita merenung, apa yang kita inginkan sesungguhnya jauh melebihi apa yang kita butuhkan? Atas nama kecukupan, satu manusia bisa hidup dengan limapasang baju dalam setahun, bahkan lebih. Atas nama fashion, jumlah itu menjadi tidak berbatas. Atas nama kebutuhan, satu manusia bisa hidup dengan beberapa pilihan panganan dalam sehari. Atas nama selera dan nafsu, seisi Bumi tidak akan sanggup memenuhi keinginan satu manusia.
Permasalahan ini memang bisa dilihat dari berbagai kaca mata. Seorang ekonom mungkin akan menyalahkan sistem kapitalisme dan globalisasi. Seorang sosialis akan mengatakan ini masalah distribusi dan pemerataan. Tapi jika kita runut, satu demi satu, bahwa Bumi adalah kumpulan negara, negara adalah kumpulan kelompok, dan kelompok adalah kumpulan individu, permasalahan ini akan kembali ke pangkuan kita. Dan kesadaran serta kemauan kitalah yang pada akhirnya akan memungkinkan sebuah perubahan sejati.
Belum pernah dalam sejarah kemanusiaan keputusan harian kita menjadi sangat menentukan. Tidak perlu menunggu Amerika menyepakati protocol Kyoto, tidak perlu juga menunggu penjarah hutan tertangkap, setiap langkah kita-meilih merk, kuantitas, tempat, gaya hidup-adalah pilihan politis dan ekologis yang menentukan masa depan seisi Bumi.
Saya belum bisa mengorbankan komputer karena itulah instrumen saya bekerja, tapi saya bisa lebih awas dengan jam penggunaan dan mematikannya jika tidak perlu. Saya belum bisa mengorbankan kebutuhan akan informasi, tapi saya bisa memilih membaca berita lewat internet atau membaca koran di tempat publik ketimbang berlangganan langsung.
Bagaimana dengan fashion?
Di dunia citra ini, dengan profesi yang mengharuskan banyak tampil di muka publik, saya pun belum bisa mengorbankan keperluan fashion (baca: membeli busana lebih sering dari yang dibutuhkan), tapi saya bisa membuat komitmen dengan lemari pakaian, yakni baju yang saya miliki tidak boleh melebihi kapasitas lemari saya. Jika lebih, maka harus ada yang keluar. Dan setiap beberapa bulan saya dihadapkan pada kenyataan bahwa ada baju yang tidak saya pakai setahun lebih atau baju yang cuma sekali dipakai dan tak pernah lagi. Bukan cuma baju, ada juga buku, pernik rumah, alat dapur, bahkan sabun dan sampo yang utuh tak disentuh. Alhasil, dalam rumah saya ada semacam peti-peti ‘harta karun’, yang berisikan barang-barang yang harus keluar dari peredaran, karena jika dipertahankan hanya menjadi kelebihan tanpa lagi unsur manfaat. Harta karun ini lantas harus dicarikan lagi outlet untuk penyaluran.
Pada waktu perayaan 17 Agustus, di kompleks saya diselenggarakan bazaar. Para warga menyewa stand untuk berjualan. Saya ikut berpartisipasi, dan sayalah satu-satunya penjual barang bekas di antara penjual barang-baru baru. Karena bukan demi cari untung, barang-barang itu saya lepas dengan harga sangat murah. Yang membeli bukan cuma warga kompleks, tapi juga dari kampung sekitar. Hari pertama, saya sudah kehabisan dagangan. Terpaksa saya mengontak saudara-saudara saya yang barangkali juga punya barang bekas untuk disalurkan. Sama dengan saya, mereka pun punya timbunan harta karun yang entah harus diapakan. Stand saya menjadi salah satu stand paling laris selama bazaar berlangsung. Dan kakak saya terkaget-kaget dengan penghasilan yang ia dapat dari tumpukan barang yang sudah dianggap sampah.
Berjualan di bazaar tentu bukan satu-satunya jalan, ada aneka cara kreatif lain untuk memanfaatkan harta karun kita, termasuk juga disumbangkan. Namun yang lebih sukar adalah memulai membuat komitmen-komitmen pembatasan diri. Berkomitmen dengan rak buku, dengan lemari pakaian, dengan rak kamar mandi, dengan laci dapur, dan pada intinya… dengan diri sendiri. Siapkah kita menentukan batasan dan berjalan dalam koridor itu?
Dan, yang lebih susah lagi, adalah pengendalian diri dari awal bersua aneka pilihan yang membombardir kita setiap hari, lalu sadar dan mawas akan rantai sebab-akibat yang menyertai pilihan kita. Membuka diri untuk info dan pengetahuan ekologi adalah salah satu cara pembekalan yang baik. Walaupun sekilas tampak merepotkan dan bikin frustrasi, tapi kantong kresek yang kita buang tadi pagi tidak akan hilang oleh sihir, dan hamburger yang kita makan tidak dipetik dari pohon. Rantai yang menyertai barang-barang itu tidak akan hilang hanya karena kita menolak tahu.
Banyak orang yang berkomentar pada saya, “Aduh, Wi. Kamu bikin hidup tambah susah saja.” Dan mereka benar. Hidup ini tak mudah. Untuk itu kita justru harus belajar menghargai setiap jengkalnya. Memilih hidup yang lebih sederhana, hidup dengan tempo yang lebih pelan, hidup dengan pengasahan kesadaran, tak hanya membantu kita lebih eling dan terkendali, tapi juga membantu Bumi ini dan jutaan manusia yang dijadikan alas kaki oleh industri demi pemenuhan nafsu konsumsi kita sendiri.
Lingkaran setan? Ya. Tapi tidak berarti kita tak sanggup berubah.Selama ini kita adalah pembeli yang berlari. Dalam kecepatan tinggi kita bertransaksi, sabet sana sabet sini, tanpa tahu lagi apa yang sesungguhnya kita cari.
Berhentilah sejenak. Marilah kita berjalan.

Selamat Datang

Assalamu’alaikum Wr. Wb

Selamat satang di scriptdic.wordpress.com. Blog ini masih dalam pengembangan Agus Mahardika. Oleh karena itu, kami sangat mengharapkan saran dan kritik dari Saudara. Semoga Blog ini dapat bermanfaat bagi kita semua.

Wassalamu’alaikum Wr. Wb.

Ditulis dalam Mixed. Leave a Comment »