Perlu diingat, Encryption pake Public Key (Asymetric) pada data yang mau
dikirim, TIDAK DI SARANKAN.
Karena, hasil encryption pake Public Key akan menggelembungkan SIZE (Hasil
Encryption akan jauh lebih besar dari data aslinya).

JADI, encryption dan decryption itu dilakukan dengan algoritma yang
Symetric, hingga hasil encryptionnya memiliki ukuran yang SAMA besar.
Symetric contohnya AES "Advanced Encryption Standard" (dengan menggunakan
SALT key).

NAH, Public Key hanya dipergunakan untuk mengenkripsi SALT key. Karena
keynya kecil, hasil encripsi akan menggelembung dalam ukuran kecil juga,
jadi pembekakan tidak signifikan.

JADI,
1. data asli (RAW) di hash dengan MD5 atau SHA1 => HASH.
2. RAW di encrypt dengan AES ditambah SALT (SALT bisa pre-generate) =>
ENCRYPTED
3. RAW di sign dengan Private Key Sender (PRKS). => SIGNATURE
4. SALT di encrypt dengan Public Key Receiver (PUKR) (yang didapat dari
Verisign atau OpenPGP) => ENCRYPTED SALT.

5. Data yang dikirim adalah. ENCRYPTED + ENCRYPTED SALT + SIGNATURE + HASH.
(Public Key sebaiknya tidak di tukar-tukar langsung, tapi Public Key diambil
dari trusted vendor, semacam Verisign atau OpenPGP).

6. ENCRYPTED + ENCRYPTED SALT + SIGNATURE + HASH diterima disisi Receiver.
7. ENCRYPTED SALT di decrypt dengan Private Key Receiver (PRKR) => SALT
8. ENCRYPTED di decrypt dengan AES + SALT => RAW. (sampai disini data bisa
dipakai, tapi untuk amannya di verify dulu).
9. RAW di verify dengan SIGNATURE + Public Key Sender (PUKS) (yang didapat
dari Verisign atau OpenPGP). => BOOLEAN.
10. Bila #9 = TRUE, RAW di hash dengan MD5 atau SHA1 => HASH NEW.
11. HASH dibandingkan dengan HASH NEW => BOOLEAN.
12 RAW sudah di verify dan diyakinkan bahwa datanya orisinil dan tidak
tampered. Silahkan di embat.

Beberapa skenario mungkin berbeda (biasanya cuma beda urutan), tapi
prinsipnya sama.

KESIMPULANNYA, PKI (Public Key Infrastructure) itu tidak hanya mengandalkan
Public/Private key saja dalam data transmission. Ia juga memanfaatkan
Symetric Enc/Decription. Dan dalam kasus data yang sangat sensitif,
membutuhkan
trusted source dimana kedua pihak bisa consult public key.

Salam.

Ferdinand Neman
----
Developer Team Lead, System Analyst,
System Designer and Solution Architect

http://www.linkedin.com/in/fneman

2010/6/18 Thomas Wiradikusuma (milis) <wiradikusuma.mi...@gmail.com>

>
>
> Mungkin ilustrasinya begini kali:
>
> Disclaimer: ini agak ngawur, tapi basic idenya bener.
>
> Public key: gembok
> Private key: kunci utk buka gembok
>
> Jadi kita bagi-bagi gembok ke semua orang yg mau ngirim data ke kita.
> Trus mereka gembok deh datanya, trus kirim ke kita. Berhubung cuma
> kita yg pegang kuncinya, cuma kita yg bisa buka.
>
>
> On 6/18/10, Leo Mifare <leomif...@gmail.com <leomifare%40gmail.com>>
> wrote:
> > Hi all,
> >
> > I want to ask regarding PKI RSA Encryption/Decryption..
> > RSA is a PKI cryptography example, and there are two keys, namely Private
> > Key and Public Key..
> > I'm a little bit confused regarding it..
> > Public Key dapat didistribusikan secara bebas, sedangkan Private Key
> harus
> > tetap dijaga privately (it means that nobody is allowed to know this key,
> > except me :) )
> >
> > Actually the usage of both keys is like this :
> > ● Signing
> > Use private key to “sign” data
> > ● Verification
> > Use public key to verify “signature”
> > ● Encryption
> > Use public key to encrypt data
> > ● Decryption
> > Use private key to decrypt data
> >
> > Jadi jika Public Key and Private Key disimpulkan, maka penggunaan
> keduanya
> > adalah sbb :
> > ● Private Key : Sign Data and Decrypt Data
> > ● Public Key : Verify Signature and Encrypt Data
> >
> > Klo diimplementasikan seperti apa yach?.
> > Misalkan ada 2 orang sahabat, assume that their name is A and B.
> > A holds *Private Key*, and B holds *Public Key*
> > Yang jadi pertanyaan saya, bagaimana jika A ingin melakukan Encrypt and
> > Verify, dan juga sebaliknya, bagaimana B dapat melakukan Decrypt and
> Sign?..--
>

Kirim email ke