You are on page 1of 11

M ha vi JAVA

Phm Nguyn Khang

Java Cryptography Architecture JCA


 Xut hin t JDK1.1, c chun ha t JDK1.4

gm cc gi:
 java.security
 javax.crypto
 javax.security

 Cung cp khong 11 lp cn thit m bo an

ton cho cc ng dng Java


 ngh cc c ch bo mt t thp n cao





M ha, hm bm
Ch k in t, chng ch
SSL, HTTPS
Chng thc v iu khin truy cp

Nguyn l c bn
 c lp vi ci t
 Alice c th s dng bn ci t DES ca mnh

gii m thng ip c m ha bng bn ci t


ca Peter
 c lp vi gii thut v kh nng m rng
 Nu Alice v Peter quyt nh s dng gii thut

TripleDES thay v DES th h ch cn i tn ca


gii thut trong chng trnh ca h. Cc phn
khc vn khng thay i.

c lp vi ci t
 Nh cung cp dch v m ha (cryptographic

service provider) cung cp cc gi dch v nh:


m ha, cc gii thut ch k in t,
 Alice s dng gii thut TripleDES ca nh cung

cp dch v AliceCrypto m ha cc thng ip


ca c.
 Nh cung cp mc nh: SUN

Mt s lp quan trng
 Cc dch v m ha c nh ngha tru tng

bng cc lp ng c (engine classes)


 Cipher: m ha
 MessageDigest: bm
 Signature: ch k in t
 KeyFactory: sinh kha
 SecureRandom: sinh s ngu nhin an ton


To i tng (Instanciation)
 S dng cc hm sn sut (factory methods)

getInstance() ca cc lp ng c
 C th to cc i tng s dng mt gii thut
c th ca mt nh cung cp dch v m ha no
.
 to ra i tng c kh nng m ha vi gii

thut DES ca nh cung cp dch v mc nh


(SUN), ta s dng hm sn xut ca lp Cipher:
 Cipher.getInstance(DES);

 s dng gii thut DES ca nh cung cp

AliceCrypto:
 Cipher.getInstance(DES, AliceCrypto);

M ha
 Lp ng c: Cipher
 To ra cc b m ha/ gii m cho mt gii thut

v mt kha cho trc


 Cc lp sinh kha (KeyGenerator) v xy dng

kha (KeyFactory) chu trch nhim to ra cc


kha cn thit cho vic m ha v gii m

M ha i xng
 Nh cung cp SunJCE ngh cc gii thut

sau:
 DES: mc nh kha c chiu di 56 bit
 Triple DES: mc nh kha c chiu 112 bit
 Blowfish: mc nh kha c chiu 56 bit

 Kch thc kha c th thay i ty thuc vo

phin bn ca JCE

Kha
 Hai phng php to kha
 Phng php n gin (cp cao)
 sinh kha vi lp javax.crypto.KeyGenerator
 Phng php nng cao (cp thp)
 Xy dng kha vi cc lp:
 javax.crypto.spec.algoKeySpec (DESKeySpec,
BlowfishKeySpec)
 java.security.KeyFactory

Sinh kha
 To ra v khi ng b sinh kha

KeyGenerator gen;
gen = KeyGenerator.getInstance(algo);
gen.init();
 Sinh kha dng b sinh kha

SecretKey key;
key = gen.generateKey();

Xy dng kha (pp 1)


 Chn d liu nh phn dng to kha: mng

cc byte
 Xy dng kha s dng gii thut v nh cung

cp dch v: DESKeySpec, DESedeKeySpec


 Xy dng nh my sn xut kha: mt i

tng ca lp KeyFactory
 Sinh kha: generateSecret()

You might also like