indah_crypt’s blog











{Desember 30, 2007}   Sistem Sandi Modern

KRIPTOGRAFI KUNCI-PUBLIK

Sampai akhir tahun 1975, hanya ada kriptografi kunci-simetri. Karena kriptografi simetri menggunakan kunci yang sama untuk enkripsi dan dekripsi, maka hal ini mengimplikasikan dua pihak yang berkomunikasi saling mempercayai. Kedua pihak harus menjaga kerahasiaan kunci. Satu masalah kritis di dalam sistem kriptografi kunci-simetri adalah cara mendistribusikan kunci. Baik pengirim maupun penerima harus berbagi kunci yang sama. Mengirim kunci dari pengirim ke penerima melalui saluran publik (seperti melalui pos, telepon, internet, dsb) jelas tidak aman, karena pihak lawan dapat menyadap kunci selama transmisi. Oleh karena itu kunci harus dikirim melalui saluran kedua yang benar-benar aman (misalnya melalui kurir) atau bertemu pada tempat yang ditentukan untuk membagi kunci. Perhatikanlah kedua itu umumnya lambat dan mahal.

Masalah ini dipecahkan oleh Diffie dan Hellman dengan mengusulkan kriptografi nirsimetri (asymmetric cryptosystem) yang memungkinkan pengguna berkomunikasi secara aman tanpa perlu berbagi kunci rahasia. Nama lainnya adalah kriptografi kunci-publik (public-key cryptography), sebab kunci untuk enkripsi diumumkan kepada publik sehingga dapat diketahui oleh siapapun, sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan (karena itu rahasia). Siapapun dapat mengirim pesan yang dienkripsi dengan kunci publik tersebut, tetapi hanya penerima pesan yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya sendiri. Ini berlawanan dengan kriptografi kunci simetri yang hanya mempunya satu kunci.

Keuntungan kriptografi kunci-publik ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat sebagaimana pada kriptografi kunci-simetri. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan. Perhatikan bahwa saluran untuk mengirim pesan umumnya tidak aman. Kedua, jumlah kunci dapat ditekan. Untuk komunikasi secara rahasia dengan banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut, cukup membuat dua buah kunci, yaitu kunci pulik bagi para koresponden untuk mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan kriptografi kunci-simetri dimana jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak korespondensi.

Yang termasuk algoritma kriptografi kunci publik adalah RSA, ElGamal, Algoritma Pertukaran Kunci Diffie-Hellman, Algoritma Knapsack. Berikut akan dijelaskan mengenai salah satu dari algoritma kunci publik yaitu RSA.

 

 

RSA

 

Pada tahun 1978, Ron Rivest, Adi Shamir, dan Leonard Adleman yang merupakan tiga orang professor di MIT (Massachussets Institute of Technology), pertama kali mempublikasikan teori secret exponents yang diberi nama RSA (Rivest, Shamir, Adleman) yang merupakan suatu metode untuk memperoleh Digital Signatures dan Public-Key Cryptosystems.

Algoritma RSA adalah algoritma yang paling popular dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat. Algoritma RSA didasarkan pada bukti bahwa menemukan bilangan prima yang cukup besar kemudian mengkalikannya lebih mudah dibandingkan memfaktorkan hasil dari perkalian dua buah bilangan prima tersebut untuk mendapatkan faktornya yang merupakan dua buah bilangan prima itu sendiri.

Algoritma RSA memiliki besaran-besaran sbagai berikut :

1. p dan q bilangan prima (rahasia)

2. n = p . q (tidak rahasia)

3. ф(n) = (p-1)(q-1) (rahasia)

4. e (kunci enkripsi) (tidak rahasia)

5. d (kunci dekripsi) (rahasia)

6. m (plainteks) (rahasia)

7. c (cipherteks) (tidak rahasia)

 

Perumusan Algoritma RSA

Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa

a ф(n) ≡ 1 (mod n)

denagn syarat :

a harus relative prima terhadap n

ф(n) = n (1 – 1/p1)(1 – 1/p2) … (1 – 1/pr), yang dalam hal ini p1,p2, …,pr adalah faktor prima dari n. ф(n) adalah fungsi yang menentukan berapa banyak dari bilangan-bilangan 1,2,3, …,n yang relative prima terhadap n.

Deskripsi Algoritma RSA

Secara garis besar proses dari RSA terbagi ke dalam tiga buah proses, yaitu key generation, encryption, dan decryption

a) Key Generation (Pembangkit pasangan kunci)

Public key adalah kunci publik untuk setiap user dapat diperoleh melalui prosedur berikut:

1. Pilih dua buah bilangan prima sembarang, p dan q

2. Hitung n = p . q (sebaiknya p ≠ q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n)

3. Hitung ф(n) = (p-1)(q-1)

4. Pilih kunci public, e, yang relative prima terhadap ф(n)

5. Bangkitkan kunci privat, yaitu e . d ≡ 1 (mod ф(n)). Perhatikan bahwa e . d ≡1 (mod ф(n)) ekivalen denagn e . d = 1 + kф(n), sehingga secara sederhana d dapat dihitung dengan d = (1 + kф(n)) / e

6. Nilai dari (e,n) adalah kunci publiknya dan (d,n) adalah kunci privatnya

 

b) Encryption (Enkripsi)

1. Ambil kunci publik pnerima pesan, e, dan modulus n

2. Nyatakan plainteks m menjadi blok-blok m1, m2, …sedemikian sehingga setiap blok mempresentasikan niali di dalam selang [0, n-1]

3. Setiap blok mi dienkripsi menjadi blok ci dengan rumus ci = mi e mod n

 

c) Decryption (Dekripsi)

Setiap blok cipherteks ci didekripsi kembali menjadi blok mi dengan rumus

mi = ci d mod n

 

Flowchart Algoritma RSA

 

 

(Flowchart Algoritma RSA)

 

Source Code RSA (C program)

#include <stdio.h>

#include <math.h>

 

#define TRUE 1

#define FALSE 0

 

void get_prime( long *val);

long getE( long PHI);

long get_common_denom( long e, long PHI);

long getD( long e, long PHI);

long decrypt(long c,long n, long d);

 

int main(void)

{

long a,b,n,e,PHI,d,m,c;

 

get_prime(&a);

get_prime(&b);

n=a*b;

PHI=(a-1)*(b-1);

e=getE(PHI);

 

d= getD(e,PHI);

printf(“Enter input value >> “); scanf(“%ld”,&m);

 

printf(“a=%ld b=%ld n=%ld PHI=%ld\n”,a,b,n,PHI);

 

c=(long)pow(m,e) % n; /* note, this may overflow with large numbers */

/* when e is relatively large */

printf(“e=%ld d=%ld c=%ld\n”,e,d,c);

 

m=decrypt(c,n,d); /* this function required as c to */

/*the power of d causes an overflow */

printf(“Message is %ld “,m);

return(0);

}

 

long decrypt(long c,long n, long d)

{

long i,g,f;

 

if (d%2==0) g=1; else g=c;

 

for (i=1;i<=d/2;i++)

{

f=c*c % n;

g=f*g % n;

}

return(g);

}

 

long getD( long e, long PHI)

{

long u[3]={1,0,PHI};

long v[3]={0,1,e};

long q,temp1,temp2,temp3;

 

while (v[2]!=0)

{

q=floor(u[2]/v[2]);

temp1=u[0]-q*v[0];

temp2=u[1]-q*v[1];

temp3=u[2]-q*v[2];

u[0]=v[0];

u[1]=v[1];

u[2]=v[2];

v[0]=temp1;

v[1]=temp2;

v[2]=temp3;

}

if (u[1]<0) return(u[1]+PHI);

else return(u[1]);

}

 

long getE( long PHI)

{

long great=0, e=2;

 

while (great!=1)

{

e=e+1;

great = get_common_denom(e,PHI);

}

return(e);

}

 

long get_common_denom(long e, long PHI)

{

long great,temp,a;

 

if (e >PHI)

{

while (e % PHI != 0)

{

temp= e % PHI;

e =PHI;

PHI = temp;

}

great = PHI;

} else

{

while (PHI % e != 0)

{

a = PHI % e;

PHI = e;

e = a;

}

great = e;

}

return(great);

}

 

void get_prime( long *val)

{

#define NO_PRIMES 13

long primes[NO_PRIMES]={3,5,7,11,13,17,19,23,29,31,37,41,43};

long prime,i;

do

{

prime=FALSE;

printf(“Enter a prime number >> “);

scanf(“%ld”,val);

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

if (*val==primes[i]) prime=TRUE;

} while (prime==FALSE);

}

 

Padding schemes

Padding schemes harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan. Sebagai contoh, jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n, kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0, yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan. Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1. Pada kenyataannya, untuk sistem yang menggunakan nilai e yang kecil, seperti 3, seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman, dikarenakan nilai terbesar n adalah nilai 255, dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya, maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N. Sebagai konsekuensinya, standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman. Dan juga berdasar pada bagian Kecepatan, akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak.

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan. Misalkan Alice ingin mengirim pesan kepada Bob. Alice membuat sebuah hash value dari pesan tersebut, di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan), dan melampirkannya sebagai “tanda tangan” pada pesan tersebut. Saat Bob menerima pesan yang telah “ditandatangani”, Bob memangkatkan “tanda tangan” tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan), dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut. Jika kedua cocok, maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice, dan pesan pun tidak pernah diubah sepanjang pengiriman.

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan, oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan.

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar. Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan, maka ada kemungkinan untuk membongkar RSA.

Pada tahun 2005, bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit, menggunakan metode distribusi mutakhir. Kunci RSA pada umumnya sepanjang 1024—2048 bit. Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan), tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi.

Semisal Eve, seorang eavesdropper (pencuri dengar—penguping), mendapatkan public key N dan e, dan ciphertext c. Bagimanapun juga, Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice. Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA.

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q, dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e. Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini, tapi hal tersebut pun masih belum terbukti.

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c, tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik).

Bagaimanapun juga, secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar.

Jika N sepanjang 256-bit atau lebih pendek, N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer, dengan menggunakan perangkat lunak yang tersedia secara bebas. Jika N sepanjang 512-bit atau lebih pendek, N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999. Secara teori, perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit. Santa disarankan bahwa N setidaknya sepanjang 2048-bit.

Pada thaun 1993, Peter Shor menerbitkan Algoritma Shor , menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial, mengurai RSA dan algoritma lainnya. Bagaimanapun juga, masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip.

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima.

p dan q seharusnya tidak “saling-berdekatan”, agar faktorisasi fermat pada N berhasil. Selain itu pula, jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil, N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan.

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang. Biasanya, pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan. Harap diingat, bahwa kebutuhan disini ialah “acak” dan “tidak-terduga”. Berikut ini mungkin tidak memenuhi kriteria, sebuah bilangan mungkin dapat dipilah dari proses acak (misal, tidak dari pola apapun), tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak), maka metode tersebut akan kehilangan kemampuan keamanannya. Misalnya, tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak, tetapi dikarenakan diterbitkan secara umum, hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut. Jika penyerang dapat menebak separuh dari digit p atau q, para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997).

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar, Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N1/4/3, maka d akan dapat dihitung secara effisien dari N dan e. Kunci enkripsi e = 2 sebaiknya tidak digunakan.

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya. Pada prakteknya, Bob menyandikan pesan rahasia menggunakan algoritma simetrik, menyandikan kunci simetrik menggunakan RSA, dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice.

Prosedur ini menambah permasalahan akan keamanan. Singkatnya, Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan, karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan.

Distribusi kunci

Sebagaimana halnya cipher, bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan. Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan). Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice. Anggap Eve dapan “menghadang” sepenuhnya transmisi antara Alice dan Bob. Eve mengirim Bob public key milik Eve, dimana Bob percaya bahwa public key tersebut milik Alice. Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob, melakukan dekripsi dengan kunci rahasia milik Eve sendiri, menyimpan salinan dari pesan tersebut, melakukan enkripsi menggunakan public key milik Alice, dan mengirimkan ciphertext yang baru kepada Alice. Secara prinsip, baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka. Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digital atau komponen lain dari infrastuktur public key.

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995: jika penyerang, Eve, mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext, Eve dapat menyimpulkan kunci dekripsi d secara cepat. Penyerangan ini dapat juga diaplikasikan pada skema “tanda tangan” RSA. SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses. Cara yang lainnya, yaitu dengan menggunakan properti multipikatif dari RSA. Sebagai ganti dari menghitung cd mod N, Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N. Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya. Nilai baru dari r dipilih pada tiap ciphertext. Dengan teknik ini, dikenal sebagai message blinding (pembutaan pesan), waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal.

Penyerangan ciphertext adaptive

Pada tahun 1998, Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS #1 v1 padding scheme. Dikarenakan kecacatan pada skema PKCS #1, Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer, dan secara potensial mengungkap kunci-kunci yang digunakan. Sebagai hasilnya, para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding, dan Laboratorium RSA telah merilis versi terbaru dari PKCS #1 yang tidak lemah terdapat serangan ini.



danny berkata:

hmmm…bagus deh makin maju kedepannya…
iy skalian jg nanti jelasin seberapa cepat, kuat RSA dibandingkan dengan yg lain…
jg apa ud pernah dibreak…
sampai sejauh mana…



gandi wibowo berkata:

Ada sedikit koreksi dan saran nih:

1.
system sandi kunci publik (public key crypto system) memang hanya membutuhkan pembangkitan 2 buah kunci (private dan publik) untuk setiap pengguna/user. tapi untuk berkomunikasi sebanyak n user, maka dibutuhkan sebanyak n kunci private dan n kunci publik. Artinya dibutuhkan 2n kunci untuk komunikasi n user.
Pada sistem sandi simetrik, terbagi 2 model jaringan komunikasi (secara garis besar), yaitu:

– setiap user dapat mengirimkan berita tersandi kepada semua user hanya dengan satu kali menyandi (biasanya di sebut LS, secara praktek). dalam hal ini hanya dibutuhkan satu kunci yang dibagikan kepada semua user.
– berita tersandi hanya dapat dibuka oleh penerima yang dituju (biasanya disebut cq, secara praktek). Dalam hal ini dibutuhkan sebanyak Sigma n-1 = (n-1) + (n-2) + .. + 3 + 2 + 1 kunci untuk komunikasi n user.

melihat kondisi diatas maka ada 2 kemungkinan jumlah kunci banyakan asimetrik atau simetrik, tergantung dari model jaring simetrik dan jumlah usernya. Sehingga hal ini tidak bisa dijadikan sebagai pembanding antara asimetrik dan simetrik

2.
Setiap sistem sandi (simetrik ataupun asimetrik, blok ataupun stream) memiliki karakteristik tersendiri yang tidak dimiliki sistem sandi lainnya. karakteristik itu bisa menjadi kelebihan dan menjadi kekurangan ada kondisi tertentu (mis: stream cipher cocok untuk penyandian data mengalir/serial). Jadi sebelum membahas public key, ada baiknya di lihat dari segala sisi, jangan hanya kebaikannya saja.

3.
Sepertinya yang ditulis ini lebih merupakan saduran dari referensi-referensi yang ada. bila memang benar ini saduran, sebaiknya dicantumkan sumbernya.

4.
Dalam penulisan sebuah karya ilmiah (ini termasuk loh) ada baiknya disertakan sudut pandang penulis, sehingga bisa dilihat… pengertian dari penulis akan tulisannya.

Segitu dulu ya… Sorry kalo kebanyakan…

Kalo ada salah – salah tolong dikoreksi ya….



motauaje berkata:

Boleh juga blog-nya. Themesnya sederhana tapi Cuepet banget dibukanya (salah satu aspek yang disukai pembaca). Kategorinya banyakin n sering-sering upload. Nanti link aq juga yah..



guruhprast berkata:

untuk sementara bagus kok..
yang penting jangan hanya saat ini saja ngisi blog-nya..
blog itu merupakan tulisan yang dinamis
jadi jangan ditinggalin begitu saja kalo udah selesau tugasnya
musti diisiin artikel terus
gampang kok gak harus nulis sendiri, bisa copy paste dari hasil browsing
hanya saja inget kalo copypaste dari sumber internet ato yang lainnya jangan lupa dicantumin sumbernya yaa
biar ga disangka maling aja
inget hak cipta orang lain yaa

gooo…
selamat menghisasi blognya dengan ide2 brilian lainnya
ditunggu perkembangannya
cayyo..

nb. belom bisa komentarin isinya dulu
masih belajar juga c



evans berkata:

good job….
tulisan yang baus walopun aq bingung itu apa…
uda aq print buat dibaca dirumah tetep aja binung…
whehehe….
blog-nya juga lumayan…tapi terlalu “sepi”…

finally….i just wanna say…
god luck…



esti berkata:

hmmm,,interupsi yawhh!!! gnii,,,,tulisanmu tu BAGUSSSS BUWANGEDD….panjang, lengkap, berisi, tajam, dan dapat dipercaya (mungkin!) plus kompleks banget. tapi,, perlu aku tambahkan di sini,,,hhmmmm,,,, hmmm,, hhmmm,,, kayanya BETTER kalo ni tulisan diakhiri ucapan TERIMA KASIH buat pembaca PLUS SIMPULAN jadi…kita nggak perlu baca tulisan yang puanjangggg buanget n tw intinya secara cepat.. gimana??? mg dipertimbangkan!

Good luck 4 everything u do!!!!



N-Game berkata:

1. Pertama kali liat banyak tulisan. (bagus dah)
2. Coba dibuat skema/gambar untuk menjelaskan suatu proses. Misalkan proses tentang kriptografi kunci publik itu bagaimana bentuknya?(diilustrasikan saja) karena mungkin dari sebagian orang agak bingung kalo baca tulisan aja. Dengan skema/gambar, orang yang membaca bisa mengerti maksud yang ada ditulisan anda.
3. ntar lagi dilanjutin…



Tinggalkan Balasan

dan lain-lain