MUHAIMIN THAHA

2008 23 0036

Pengacakan dilakukan berdasarkan kata kunci (key) tertentu yang diisikan oleh pengguna. berupa kode C yang berisi program utama yang memanfaatkan enkripsi. Cara kerja enkripsi dilakukan dengan menambahkan kode karakter teks sumber dengan teks kunci. listing enkripsi. Program Enkripsi Dekripsi Program enkripsi file teks berfungsi untuk mengenkripsi (mengacak) suatu file teks sehingga informasi di dalamnya tidak bisa dibaca. sedangkan kunci = ³abcde´ (5 karakter). tugas besar mata kuliah bahasa assembly .c. file ini berisi fungsi enkripsi_dekripsi yang akan digunakan oleh enkripsi_main. kunci maka: . .asm. Seperti dikatakan sebelumnya. sumber . informasi dalam teks tidak akan terbaca. Jika kunci tidak cocok. Kunci yan lebih pendek dari teks sumber akan berulang-ulang sampai panjangnya sama dengan teks sumber. Jadi disini hanya terdapat 1 key (kunci) untuk melakukan enkripsi dan dekripsi (symmetric encription). yaitu dengan melakukan operasi pengurangan teks sumber dengan kunci..Program Enkripsi dan Deskripsi untuk Keamanan Data pada Jaringan 1. sumber . Terdapat 2 listing program:  enkripsi. Misalnya panjang teks sumber 20 karakter. Tentunya kunci harus sama dengan kunci enkripsi untuk menghasilkan teks hasil yang benar. Program juga sekaligus berfungsi untuk meng dekripsi (enkripsi balik) file hasil enkripsi. proram ini terdiri dari 2 bagian.1.c .asm . hasil : "Kucing" : "kode" : 75 117 99 105 110 103 : 107 111 100 101 107 111 : 182 228 199 206 217 214 Demikian pula dengan proses dekripsi. berupa kode assembly yang berisi fungsi enkripsi¶  enkripsi_main. kata kunci (kode) yang digunakan harus sama dengan kata kunci enkripsi. Contoh: . Agar file dapat didekripsi dengan benar. maka faktor penambahan enkripsi adalah abcdeabcdeabcdeabcde. kunci . .asm 1.

.2-6mdk teks editor Kate kompilasi & linking: nasm -f elf enkripsi.0 push esi push edi mov mov edi.string untuk kode enkripsi (pass by reference) . output dari enkripsi .pointer ke string yang akan dienkripsi (pass by reference) . dest : 75 117 99 105 110 103 . misal : src : "Kucing" . gcc 3. karakter dari kunci yang diulang-ulang . void asm_enkripsi_dekripsi( char * dest.0 dengan nasm 0. .pointer ke string hasil enkripsi (pass by reference) . kunci : 107 111 100 101 107 111 . . int flag_enkripsi). .<>1 -> enkripsi (pass by value) . const char * src. flag_enkripsi .asm gcc -o enkripsiku enkripsi_main. parameters: .98. . oleh : Bayu Rizaldhan rayes dites menggunakan Mandrake Linux 10. . kunci : "kode" . . %define dest [ebp + 8] %define src [ebp + 12] %define kunci [ebp + 16] %define flag_enkripsi [ebp + 20] asm_enkripsi_dekripsi: enter 0.. maka: .o segment . contoh: kunci="abcde" -> 97 98 99 100 101 . fungsi asm_enkripsi_dekripsi . dengan menambahkan tiap2 karakter dari teks yang dienkripsi dengan . . . .data format db "x = %d\n". dest esi. src . dest .3. aturan: . .text . . src : 182 228 199 206 217 214 . =1 -> dekripsi . .0 global asm_enkripsi_dekripsi segment . char * kunci. source dari enkripsi . .38-1mdk. src . kunci .c enkripsi.

jumlahkan karakter ke n dengan kunci ke n pop edi pop esi lodsb dari src or al. inc si (al = kunci saat . jika 0 (akhir dari string kunci). hasilnya taruh di cx push esi untuk pemrosesan string kunci. edx elemen ke 1 dari kunci) lodsb ini. blok pemroses kunci . (ENKRIPSI) jumlahkan karakter ke n dengan kunci ke n jmp endif dekripsi: sub al. al jz copy . memperoleh karakter kunci ke n (kunci saat ini) dari string kunci. set condition flags cmp flag_enkripsi. al jnz tidaknol mov edx. set edx kembali ke alamat awal kunci . cx menyimpan karakter kunci saat ini . sekarang lakukan enkripsi . karena esi akan dipakai . . . push edi mov esi. edx buat menyimpan esi dari kunci . word 1 . jika flag_enkripsi = 1 -> dekripsi je dekripsi add al. simpan nilai esi ke edx untuk . al = karakter ke n . ax (kunci ke n) mov edx. kunci ke n sudah didapat (dalam cl). load AL & inc si. keluar pemrosesan kunci . load al. esi = edx. cl . set condition flags . simpan dulu. kunci (looping) tidaknol: . edx awal = kunci (alamat . kunci .mov cld cari_loop: edx. kembalikan esi. kunci tidak nol (bukan akhir kunci) .esi karakter kunci selanjutnya or al. (DEKRIPSI) kurangkan karakter ke n dengan kunci ke n endif: . cl . edi . lanjutkan pencarian) mov cx.

1. Berisi string kunci/kode.Parameter ini merupakan pass by value. copy al ke dest . fungsi tersebut akan memiliki bentuk seperti berikut : void asm_enkripsi_dekripsi( char * dest. %define %define %define %define dest [ebp + 8] src [ebp + 12] kunci [ebp + 16] flag_enkripsi [ebp + 20] Jika dalam C. store AL & inc di.1. maka fungsi akan melakukan enkripsi.  kunci. Parameter pass by reference. set condition flags . Penjelasan : Pada file ini. Secara umum cara kerjanya adalah: . misalnya 0. [ebp+12].asm dilengkapi dengan komentar program untuk memahami detail cara kerja per instruksi. [ebp+16]. Cara kerja. (berisi alamat awal dari string) dan nantinya akan menampung string hasil enkripsi/dekripsi. Berisi variabel untuk menandai apakah akan melakukan enkripsi atau melakukan dekripsi (bersifat boolean). Ada 4 parameter dari fungsi. [ebp+20].1. Jika nilai <> 1. merupakan parameter yang di pass by reference. karena ia akan berisi string. yaitu teks yang akan dienkripsi/didekripsi.  flag_enkripsi. maka fungsi akan melakukan dekripsi. yaitu string yang akan dimanipulasi dengan src untuk proses enkripsi/dekripsi.copy: stosb or al. Jika flag_enkripsi = 1. 1. al jnz cari_loop lanjutkan looping pop pop leave ret edi esi .2.Fungsi ini akan melakukan enkripsi sekaligus dekripsi (tergantung parameternya) Penulisan fungsi ini dibuat sesuai standar konvensi fungsi di bahasa C khususnya GCC (GNU C Compiler) di Linux. int flag_enkripsi). yaitu  dest.1. dest. const char * src.  src. Berisi string sumber. char * kunci. jika bukan nol (end of string). terdapat 1 fungsi yang bersifat global yaitu fungsi asm_enkripsi_dekripsi. sebagai parameter pertama [ebp+8]. yang akan dipush ke dalam stack. Source code enkripsi.

 Program akan berulang sampai ditemukan kode karakter end of string (0). Jika 1. yaitu karakter ke n dari kunci dan karakter ke n dari esi. . int) __attribute__ ((cdecl)).3. maka nilai index akan mengulang dari awal. yaitu src[n]+kunci[n].c // // file berisi fungsi enkripsi_dekripsi yang akan digunakan oleh enkripsi_main. maka lakukan dekripsi yaitu src[n]-kunci[n]. gcc 3. Sekarang esi menunjuk ke alamat berikutnya (n+1). Index ke n perlu disimpan karena selanjutnya nilai esi akan dimanfaatkan untuk hal lain (string_input). yang berada dalam al.2. Jika index ke n merupakan akhir string (kode 0). Jika tidak 1. memproses string kunci. maka nilai al akan disimpan ke alamat yang ditunjuk edi. Setelah itu melalui perintah stosb.c enkripsi.  Langkah selanjutnya melakukan manipulasi terhadap 2 karakter. sehingga menjaga agar index kunci berikutnya tidak hilang.  berikutnya program akan memproses src.o // #include #include #define SIZE_MAX 1024 // prototype untuk fungsi assembly // standard C calling convention untuk GCC (GNU C Compiler) void asm_enkripsi_dekripsi( char *. Src berada dalam esi dan dest berada dalam edi. listing enkripsi_main. yaitu memperoleh karakter kunci ke n. Dilakukan pengecekan flag_enkripsi.98.asm // gcc -o enkripsiku enkripsi_main. char *. alamat kunci akan disimpan dalam esi yang merupakan register untuk memanipulasi string.2-6mdk // teks editor Kate // // kompilasi & linking: // nasm -f elf enkripsi. Pertama-tama nilai edi (milik dest) dan esi (milik src) akan dipush. Perintah lodsb akan meload alamat yang ditunjuk esi ke dalam register al kemudian menambah (increment) si. yaitu nilai kunci ([ebp+16]) Setelah karakter ke n didapat. maka lakukan enkripsi. kemudian nilai di akan ditambah.38-1mdk. Kemudian index n ditambah (increment) lalu disimpan dalam edx. dimulai dari 0.c // enkripsi_main. Karakter ke n disimpan dalam cx.0 // dengan nasm 0. 1. const char * . register esi dan edi dipop kembali sehingga sekarang berisi index dari src dan dest.c // // tugas besar mata kuliah bahasa assembly // oleh : // Bayu Rizaldhan rayes // dites menggunakan Mandrake Linux 10.

} else return 1.modenya)) == NULL) { printf("filenya nggak ada tuh. // argumen option -c char param_read[100]. // flag proses sukses // // reset teks. // karakter satuan . if (reset_teks(nama_filenya. FILE FILE char char *filenya."). // karakter satuan int i = 0. // argumen option -w int i. w=write // int reset_teks(char *namafilenya. // argumen option -r char param_write[100]. int ada_c = 0. } } // // save teks_output ke file // void save_to_file(char *nama_filenya) { char c. char modenya[4]) { if ((filenya = fopen(namafilenya. *nama_fileout. int ada_r = 0. int ada_v = 0. bikin baru ya. return 0.. int ada_w = 0."r")) { while ((c= fgetc(filenya))!=EOF) { teks[i] = c. file char teks_output[SIZE_MAX]. int ada_e = 0. *fileout. int proses_sukses = 0. } fclose(filenya). *nama_filenya. dengan mode r=read. i++. // variabel parameter dari getopt char param_code[SIZE_MAX]. // teks sumber.//////////////////// char teks[SIZE_MAX]. } // // load teks dari file // void load_from_file(char *nama_filenya) { char c. diambil dari // teks hasil pemrosesan // variabel2 flag untuk option dari getopt int ada_d = 0.

{ 0. { "write". 1. ada_e = 1. boleh tidak ada keduanya\n\n"). 1. "dec:vr:w:".... { "view". // parameter }. NULL.. // parameter }.. argv. 0} }.\n"). case 'e': printf("melakukan enkripsi. printf("contoh penggunaan:\nenkripsiku -r teksku. printf("daftar_parameter\n-e -> enkripsi\n-d -> dekripsi\n-v -> tampilkan hasil proses\n\n").filenya). NULL. opt_index = 0. ada_d = 1. if (reset_teks(nama_filenya. 0.&opt_index)) != -1) { switch (ret) { case 'd': printf("melakukan dekripsi.txt -d kunciku -v -e -w tekshasil. 0. NULL..i++) fputc(teks_output[i]. 0. 1. . { "read".txt\n"). break. printf("option e dan d tdk boleh sekaligus.txt"). case 'v': ada_v = 1. { "code". NULL. 0. printf("\nenkripsiku -r teksku.. char *argv[]) { int ret. strcpy(param_code. } } // // mencetak cara penggunaan program // void cetak_usage() { printf("Usage: enkripsiku [-dev] [-r nama_file] [-w nama_file] [-c kode_enkripsi]\n\n").. }. break.optarg). { "encrypt". }.. struct option long_options[] = { { "decrypt".int i = 0. fclose(filenya). 'd' 'e' 'c' 'v' 'r' 'w' }. }. // parameter // memroses argumen program while ((ret = getopt_long(argc.i<strlen(teks). NULL. long_options. } //////////////////// int main (int argc.. break.txt -c kunciku -v -e -w tekshasil. NULL. case 'c': ada_c = 1."w")) { for (i=0.\n"). 0.

printf("file output = %s\n". } } else cetak_usage(). } } if (ada_r) { //load_from_file("email2. strcpy(param_read. case 'w': ada_w = 1. else { asm_enkripsi_dekripsi( teks_output.break. load_from_file(param_read). // enkripsi proses_sukses = 1. } } else { printf("parameter belum lengkap.param_write).param_code. if (ada_c) { // lakukan enkripsi dekripsi if (ada_e == 1 && ada_d == 0) { asm_enkripsi_dekripsi( teks_output. cukup copy teks ke teks_output proses_sukses = 1.param_code. // tidak ada -e dan -d. teks. teks_output).optarg). teks. // dekripsi proses_sukses = 1.0). } if (proses_sukses && ada_w) { // simpan ke file . strcpy(param_write. } else if (ada_d == 1 && ada_e == 0) { asm_enkripsi_dekripsi( teks_output.0). printf("file input = %s\n"."". } else if (ada_d == 1 && ada_e == 1) printf("tidak bisa melakukan enkripsi dan dekripsi sekaligus"). if (proses_sukses && ada_v) { // cetak hasil proses printf("\nHasil proses : \n\n%s\n".1). exit (1). break. default: //tampilkan tata cara (usage) cetak_usage(). break.optarg).txt"). teks.param_read). case 'r': ada_r = 1. minimal -r (read file) dan -c (code)").

1. yaitu · -r : untuk membaca file input. getopt_long berfungsi untuk memparse parameter dari argumen program sesuai dengan standar di Linux.save_to_file(param_write). 2. artinya melakukan enkripsi (flag_enkripsi =0). · -e : untuk melakukan enkripsi · -d : untuk melakukan dekrips · -v : untuk mencetak hasil proses ke layar · -c : argumen value berisi kode enkrips option -d dan -c tidak boleh ada dalam waktu bersamaan.asm.o.asm . const char * . teks. Karena itu kedua file ini harus dilinking agar berjalan. Untuk itu perlu disertakan prototype untuk fungsi assembly sesuai dengan standard c calling convention. pada string teks. Pada dasarnya program enkripsi_main ini adalah sebagai antarmuka untuk proses enkripsi/dekripsi yang dilakukan oleh fungsi asm_enkripsi_dekripsi pada file enkripsi.asm. char *.2.0). Pada listing ini. Pada file ini digunakan library getopt untuk memanfaatkan fungsi getopt_long. Kompilasi dan Linking Perintah berikut kan mengkompilasi file enkripsi. } 1. digunakan standar kompiler GCC. · -w : untuk menulis hasil proses ke file. Contoh penggunaan fungsi asm_enkripsi_dekripsi sebagai berikut: asm_enkripsi_dekripsi( teks_output. Tetapi boleh tidak ada keduanya. Penjelasan program bisa dilihat pada komentar baris pada listing program.asm menjadi enkripsi. $ nasm -f elf enkripsi. exit(0). } printf("\n-----------------------------------------------\n"). Penjelasan: file enkripsi_main berisi fungsi utama yang memanfaatkan fungsi asm_enkripsi_dekripsi yang ada di file enkripsi. int) __attribute__ ((cdecl)). Ada 6 argumen option. void asm_enkripsi_dekripsi( char *. option ini harus ada dan memiliki value. Dan hasilnya dicopy ke teks_output.param_code.

txt $ .c enkripsi. dengan kode ³abcde´.txt melakukan enkripsi. Screenshot Keterangan: teks bergaris bawah adalah input dari pengguna..txt Hallo ini teks bukan sekedar teks ya hehehehe satu dua tiga empat lima enam tujuh delapan sembilan sepuluh angka:1234567890[bayu@bluecat tugasbesarfinal]$ [bayu@bluecat tugasbesarfinal]$ .o dengan enkripsi.txt -c abcde -v -e -w tekshasil.txt ³ÂàÍÚ×ÑÒ ßÆßÔ×ãÎÊnÔÙÌÐÙÏÕtÐÌçäÖËÎhÐÉÙÉÐáÄÝuuÅéÂué×ÊÊ ÐÎäÂßÚÌÖauÆâÂØâØÓuÓkØÆ×ÖÞÄ× ÞÆáÃÔáÏÑssÐÑéÍàÝxÄ×gÖ®¨¢7£¤[bayu@bluecat tugasbesarfinal]$ ... [bayu@bluecat tugasbesarfinal]$ cat teksku.txt Melakukan dekripsi file tekshasil.txt Hasil proses : ³ÂàÍÚ×ÑÒ ßÆßÔ×ãÎÊnÔÙÌÐÙÏÕtÐÌçäÖËÎhÐÉÙÉÐáÄÝuuÅéÂué×ÊÊ ÐÎäÂßÚÌÖauÆâÂØâØÓuÓkØÆ×ÖÞÄ× ÞÆáÃÔáÏÑssÐÑéÍàÝxÄ×gÖ®¨¢7£¤ ----------------------------------------------[bayu@bluecat tugasbesarfinal]$ cat tekshasil.txt -c katakunci -v -e -w tekshasil.txt.txt file input = teksku. hasilditampilkan ke layar dan disimpan pada file tekshasil.txt..txt -c abcde -v -d -w tekshasil.o Sehingga didapatkan file executable bernama enkripsiku 2.txt $ .. kemudian hasilnya ditampilkan ke layar dan disimpan pada file tekshasil.1./enkripsiku -r teksku.Sedangkan mengkompilasi enkripsi_main./enkripsiku -r teksku.txt 2. Contoh penggunaan Melakukan enkripsi file teksku. file output = tekshasil.2.c sekaligus melinking digunakan sintaks berikut: $ gcc -o enkripsiku enkripsi_main./enkripsiku -r tekshasil.

maka teknik ini digunakan dalam sistem keamanan komputer dan network... .txt Hallo ini teks bukan sekedar teks ya hehehehe satu dua tiga empat lima enam tujuh delapan sembilan sepuluh angka:1234567890[bayu@bluecat tugasbesarfinal]$ Salah satu hal yang penting dalam komunikasi menggunakan computer untuk menjamin kerahasian data adalah enkripsi. Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi.. Pada bagian selanjutnya kita akan membahas berbagai macam teknik enkripsi yang biasa digunakan dalam sistem sekuriti dari sistem komputer dan network.[bayu@bluecat tugasbesarfinal]$ . Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unitelligible).. file output = tekskembali. Sebuah sistem pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim. Enkripsi dapat diartikan sebagai kode atau chiper.txt Hasil proses : Hallo ini teks bukan sekedar teks ya hehehehe satu dua tiga empat lima enam tujuh delapan sembilan sepuluh angka:1234567890 ----------------------------------------------[bayu@bluecat tugasbesarfinal]$ cat tekskembali./enkripsiku -r tekshasil..txt file input = tekshasil. Enkripsi dalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca).txt melakukan dekripsi.txt -c katakunci -v -d -w tekskembali.

Proses yang yang sama dengan kunci yang sama digunakan untuk mengubah kembali enkripsi. 64 data input diubah dengan suatu urutan dari metode menjadi 64 bit output. Atau dengan kata lain. yang diambil oleh Biro standart nasional US pada tahun 1977. Chips ini dapat tersedia secara luas dan disediakan pula untuk beberapa jenis produk. Manfaat dari konvensional enkripsi algoritma adalah kemudahan dalam penggunaan secara luas. yang kemudian oleh algoritma Enkripsi diterjemahkan menjadi informasi yang tidak dapat untuk dimengerti yang disimbolkan dengan cipher teks. Proses enkripsi terdiri dari dua yaitu algoritma dan kunci. Proses enkripsi ini dapat digambarkan sebagai berikut : Plain teks -> Algoritma Enkripsi -> Cipher teks ->Algoritma Dekrispsi -> Plain teks User A | | User B |²²²²²²²-Kunci (Key) ²²²²²²±| Gambar 1 Informasi asal yang dapat di mengerti di simbolkan oleh Plain teks. Pertama algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsi cipher teks dengan dasar cipher teks tersebut. Lebih jauh dari itu keamanan dari algoritma enkripsi konvensional bergantung pada kerahasian dari kuncinya bukan algoritmanya. Untuk DES data di enkripsi dalam 64 bit block dengan menggunakan 56 bit kunci. kita tidak perlu menjaga kerahasiaan dari algoritma tetapi cukup dengan kerahasiaan kuncinya. kemudian ditransmisikan. prinsip keamanan adalah menjadi menjaga keamanan dari kunci. Dengan kenyataan bahwa algoritma ini tidak perlu dijaga kerahasiaannya dengan maksud bahwa pembuat dapat dan mampu membuat suatu implementasi dalam bentuk chip dengan harga yang murah. Mengubah kunci dari enkripsi akan mengubah output dari algortima enkripsi. Pada bagian penerima selanjutnya cipher teks yang diterima diubah kembali ke plain teks dengan algoritma dan dan kunci yang sama.3. Kunci biasanya merupakan suatu string bit yang pendek yang mengontrol algoritma. Dengan menggunakan kunci ini. Model enkripsi yang digunakan secara luas adalah model yang didasarkan pada data encrytion standard (DES). Dengan penggunaan dari enkripsi konvensional. Algoritma enkripsi akan menghasilkan hasil yang berbeda tergantung pada kunci yang digunakan. Enkripsi Public-Key . 4. Yaitu dengan asumsi bahwa adalah sangat tidak praktis untuk mendekripsikan informasi dengan dasar cipher teks dan pengetahuan tentang algoritma diskripsi / enkripsi. Sekali cipher teks telah dihasilkan. Keamanan dari enkripsi konvensional bergantung pada beberapa faktor. Enkripsi Konvensional.

 Masing ± masing dari sistem akan menerbitkan kunci enkripsinya ( public key ) dengan memasang dalam register umum atau file. Metode ini dikenal dengan nama enkripsi public-key dan pertama kali diperkenalkan pada tahun 1976. Setiap sistem mengubah private key pasangannya public key akan menggantikan public key yang lama. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya.  Ketika B menerima pesan dari A maka B akan menggunakan kunci privatenya untuk mendeskripsi pesan dari A. Sehingga teknik berikut ini akan dapat dilakukan :  Masing ± masing dari sistem dalam network akan menciptakan sepasang kunci yang digunakan untuk enkripsi dan dekripsi dari informasi yang diterima. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan.  Jika A ingin mengisim pesan kepada B. Semua partisipan mempunyai akses ke kunci publik ( public key ) dan kunci pribadi dihasilkan secara lokal oleh setiap partisipan sehingga tidak perlu untuk didistribusikan. sedang pasangannya tetap dijaga sebagai kunci pribadi ( private key ). Sehingga untuk perbandingan ukuran dan harga dari hardware. Untuk enkripsi konvensional. Plain teks -> Algoritma Enkripsi -> Cipher teks -> Algoritma Dekrispsi -> Plain teks User A | | User B Private Key B ²-| |²²²²²²²-Kunci (Key) ²²²²²²±| Gambar 2 Algoritma tersebut seperti yang digambarkan pada gambar diatas. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekrispi. kunci yang digunakan pada prosen enkripsi dan dekripsi adalah sama. Yang menjadi kelemahan dari metode enkripsi publik key adalah jika dibandingkan dengan metode enkripsi konvensional algoritma enkripsi ini mempunyai algoritma yang lebih komplek. kunci yang berbeda. metode publik key akan menghasilkan performance yang lebih rendah. Seperti yang kita lihat. Enkripsi Konvensional Yang dibutuhkan untuk bekerja : . Selama sistem mengontrol masing ± masing private key dengan baik maka komunikasi menjadi komunikasi yang aman. untuk dekripsi. Sebuah cara yang tepat telah diketemukan untuk mengatasi kelemahan ini dengan suatu model enkripsi yang secara mengejutkan tidak memerlukan sebuah kunci untuk didistribusikan. Tabel berikut ini akan memperlihatkan berbagai aspek penting dari enkripsi konvensional dan public key.Salah satu yang menjadi kesulitan utama dari enkripsi konvensional adalah perlunya untuk mendistribusikan kunci yang digunakan dalam keadaan aman. public-key memecahkan masalah pendistribusian karena tidak diperlukan suatu kunci untuk didistribusikan. maka A akan mengenkripsi pesannya dengan kunci publik dari B.

3. Pengirim dan penerima harus mempunyai sepasang kunci yang cocok. satu untuk enkripsi satu untuk dekripsi. . Algoritma yang digunakan untuk enkripsi dan dekripsi dengan sepasang kunci.  Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi. Enkripsi Yang dibutuhkan untuk bekerja : Public Key 1. Yang dibutuhkan untuk keamanan : 1. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci. Algoritma yang sama dengan kunci yang sama dapat digunakan untuk proses dekripsi ± enkripsi.  Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunc.  Pengirim dan penerima harus membagi algoritma dan kunci yang sama. Salah satu dari kunci harus dirahasiakan. Yang dibutuhkan untuk keamanan :  Kunci harus dirahasiakan. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi. 2. 2.

2003 www.google.Referensi : PC Assembly Language.com . Carter. Paul A.

Sign up to vote on this title
UsefulNot useful