TR(cid:1132)(cid:1248)NG (cid:264)(cid:1188)I H(cid:1232)C KHOA H(cid:1232)C T(cid:1268) NHIÊN KHOA CÔNG NGH(cid:1226) THÔNG TIN B(cid:1244) MÔN CÔNG NGH(cid:1226) TRI TH(cid:1260)C

TR(cid:1194)N H(cid:1238)NG NG(cid:1232)C – TR(cid:1132)(cid:1130)NG TH(cid:1230) M(cid:1274) TRANG

NGHIÊN C(cid:1260)U CÁC PH(cid:1132)(cid:1130)NG PHÁP MÃ HOÁ – GI(cid:1192)U TIN (cid:264)A T(cid:1194)NG VÀ (cid:1260)NG (cid:39)(cid:1256)NG

LU(cid:1200)N V(cid:258)N C(cid:1264) NHÂN TIN H(cid:1232)C

TP. HCM, 2004

TR(cid:1132)(cid:1248)NG (cid:264)(cid:1188)I H(cid:1232)C KHOA H(cid:1232)C T(cid:1268) NHIÊN KHOA CÔNG NGH(cid:1226) THÔNG TIN B(cid:1244) MÔN CÔNG NGH(cid:1226) TRI TH(cid:1260)C

TR(cid:1132)(cid:1130)NG TH(cid:1230) M(cid:1274) TRANG TR(cid:1194)N H(cid:1238)NG NG(cid:1232)C - 0012694 - 0012746

NGHIÊN C(cid:1260)U CÁC PH(cid:1132)(cid:1130)NG PHÁP MÃ HOÁ – GI(cid:1192)U TIN (cid:264)A T(cid:1194)NG VÀ (cid:1260)NG (cid:39)(cid:1256)NG

LU(cid:1200)N V(cid:258)N C(cid:1264) NHÂN TIN H(cid:1232)C

GIÁO VIÊN H(cid:1132)(cid:1246)NG D(cid:1198)N NGUY(cid:1224)N (cid:264)ÌNH THÚC PH(cid:1188)M PH(cid:1188)M TUY(cid:1218)T TRINH T.S Th.S

NIÊN KHÓA 2000 - 2004

NH(cid:1200)N XÉT C(cid:1258)A GIÁO VIÊN H(cid:1132)(cid:1246)NG D(cid:1198)N

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

NH(cid:1200)N XÉT C(cid:1258)A GIÁO VIÊN PH(cid:1190)N BI(cid:1226)N

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

.......................................................................................................................

(cid:47)(cid:1248)I C(cid:1190)M (cid:1130)N

Chúng em xin chân thành cám (cid:1131)n Khoa Công Ngh(cid:1227) Thông Tin, tr(cid:1133)(cid:1249)ng

(cid:264)(cid:1189)i H(cid:1233)c Khoa H(cid:1233)c T(cid:1269) Nhiên TpHCM (cid:255)ã t(cid:1189)o (cid:255)(cid:76)(cid:1221)u ki(cid:1227)n t(cid:1237)t cho chúng em th(cid:1269)c

hi(cid:1227)n (cid:255)(cid:1221) tài lu(cid:1201)n v(cid:259)n t(cid:1237)t nghi(cid:1227)p này.

Chúng em xin chân thành cám (cid:1131)n Th(cid:1195)y Nguy(cid:1225)n (cid:264)ình Thúc và Cô Ph(cid:1189)m

Ph(cid:1189)m Tuy(cid:1219)t Trinh (cid:255)ã t(cid:1201)n tình h(cid:1133)(cid:1247)ng d(cid:1199)n, ch(cid:1229) b(cid:1191)o và (cid:255)óng góp ý ki(cid:1219)n cho

chúng em trong su(cid:1237)t th(cid:1249)i gian th(cid:1269)c hi(cid:1227)n (cid:255)(cid:1221) tài.

Chúng em xin chân thành cám (cid:1131)n quý Th(cid:1195)y Cô trong Khoa (cid:255)ã t(cid:1201)n tình

gi(cid:1191)ng d(cid:1189)y, trang b(cid:1231) cho chúng em nh(cid:1267)ng ki(cid:1219)n th(cid:1261)c quý báu trong nh(cid:1267)ng n(cid:259)m

h(cid:1233)c v(cid:1263)a qua.

Chúng con xin nói lên lòng bi(cid:1219)t (cid:1131)n sâu s(cid:1203)c (cid:255)(cid:1237)i v(cid:1247)i Ông Bà, Cha M(cid:1213)(cid:3)(cid:255)ã

ch(cid:259)m sóc, nuôi d(cid:1189)y chúng con thành ng(cid:1133)(cid:1249)i.

Xin chân thành cám (cid:1131)n các anh ch(cid:1231) và b(cid:1189)n bè (cid:255)ã (cid:1259)ng h(cid:1245), giúp (cid:255)(cid:1253) và

(cid:255)(cid:1245)ng viên chúng em trong th(cid:1249)i gian h(cid:1233)c t(cid:1201)p và nghiên c(cid:1261)u.

M(cid:1211)c dù chúng em (cid:255)ã c(cid:1237) g(cid:1203)ng hoàn thành lu(cid:1201)n v(cid:259)n trong ph(cid:1189)m vi và kh(cid:1191)

(cid:81)(cid:259)ng cho phép nh(cid:1133)ng ch(cid:1203)c ch(cid:1203)n s(cid:1217) không tránh kh(cid:1235)i nh(cid:1267)ng thi(cid:1219)u sót. Chúng

em kính mong nh(cid:1201)n (cid:255)(cid:1133)(cid:1255)c s(cid:1269) c(cid:1191)m thông và t(cid:1201)n tình ch(cid:1229) b(cid:1191)o c(cid:1259)a quý Th(cid:1195)y Cô và

các b(cid:1189)n

.

Sinh viên

Tr(cid:1195)n H(cid:1239)ng Ng(cid:1233)c – Tr(cid:1133)(cid:1131)ng Th(cid:1231) M(cid:1275) Trang

Tháng 07/ 2004

(cid:48)(cid:1256)C L(cid:1256)C (cid:151)fl(cid:150)

2.1.1. 2.1.2. 2.1.3.

2.1.4.

2.2.1. 2.2.2.

2.2.3. 2.2.4.

2.3.1. 2.3.2. 2.3.3. 2.3.4.

2.4.1. 2.4.2.

2.4.3.

2.4.4.

2.4.5.

Ch(cid:1133)(cid:1131)ng 3. DANH SÁCH CÁC HÌNH V(cid:1216).........................................................................1 Gi(cid:1247)i thi(cid:1227)u..................................................................................2 Ch(cid:1133)(cid:1131)ng 1. Ch(cid:1133)(cid:1131)ng 2. M(cid:1245)t s(cid:1237) h(cid:1227) th(cid:1237)ng mã hoá ............................................................4 2.1. Các khái ni(cid:1227)m c(cid:1131) b(cid:1191)n .......................................................................4 S(cid:1237) nguyên t(cid:1237)........................................................................4 Mã hóa khóa bí m(cid:1201)t (Private-Key Encryption):....................7 Mã khóa công khai (Public-Key Encyption): .......................9 2.1.3.1. Gi(cid:1247)i thi(cid:1227)u ..........................................................................9 2.1.3.2. Phân lo(cid:1189)i h(cid:1227) th(cid:1237)ng mã hóa khóa công:.............................11 Ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) ...................................................................11 2.1.4.1. Gi(cid:1247)i thi(cid:1227)u: .......................................................................11 2.1.4.2. Các (cid:255)(cid:1211)c (cid:255)(cid:76)(cid:1223)m c(cid:1259)a ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265): ....................................13 2.2. Mã hóa (cid:255)(cid:1237)i x(cid:1261)ng RC6 ....................................................................14 Gi(cid:1247)i thi(cid:1227)u RC6 ..................................................................14 Thu(cid:1201)t toán RC6 .................................................................14 2.2.2.1. L(cid:1201)p khóa:.........................................................................14 2.2.2.2. Mã hóa và gi(cid:1191)i mã : .........................................................15 Nghi th(cid:1261)c RC6...................................................................16 (cid:264)ánh giá RC6 ....................................................................17 2.3. Ph(cid:1133)(cid:1131)ng pháp mã hóa khóa công RSA ............................................17 Gi(cid:1247)i thi(cid:1227)u ..........................................................................17 Thu(cid:1201)t toán RSA.................................................................17 Nghi th(cid:1261)c RSA ..................................................................18 (cid:264)ánh giá RSA....................................................................19 2.4. H(cid:1227) mã hóa ECC (Elliptic Curve Cryptography)..............................19 Gi(cid:1247)i thi(cid:1227)u ..........................................................................19 M(cid:1245)t s(cid:1237) khái ni(cid:1227)m ...............................................................19 2.4.2.1. Tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n ...............................................................20 2.4.2.2. M(cid:1245)t s(cid:1237)(cid:3)(cid:255)(cid:1211)c tính Elip trên tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n.........................22 2.4.2.3. Kh(cid:1191)o sát (cid:255)(cid:1133)(cid:1249)ng cong Elip................................................23 Các thành t(cid:1237) m(cid:1201)t mã trong ECC.........................................25 2.4.3.1. Các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong Elip ................................25 2.4.3.2. C(cid:1211)p khóa (cid:255)(cid:1133)(cid:1249)ng cong Elip...............................................27 Các l(cid:1133)(cid:1255)c (cid:255)(cid:1239) trong ECC......................................................27 2.4.4.1. (cid:47)(cid:1133)(cid:1255)c (cid:255)(cid:1239) ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) d(cid:1269)a trên ECC..............................28 (cid:264)ánh giá ECC....................................................................30 2.5. So sánh RSA và ECC.....................................................................30 Hàm b(cid:259)m ................................................................................33 3.1. Tính ch(cid:1193)t c(cid:1259)a hàm b(cid:259)m ..................................................................34

i

Hàm b(cid:259)m m(cid:1245)t chi(cid:1221)u (OWHF - One-Way Hash Function)..34 Hàm b(cid:259)m ch(cid:1237)ng xung (cid:255)(cid:1245)t (CRHF - Collision Resistant Hash

3.1.1. 3.1.2. Function) 34 3.1.3.

3.2.1.

3.2.2.

3.2.3.

3.3.1. 3.3.2.

Các hàm b(cid:259)m l(cid:1211)p (Iterated Hash Function) ........................35 3.2. Gi(cid:1247)i thi(cid:1227)u m(cid:1245)t s(cid:1237) hàm b(cid:259)m ............................................................36 Hàm MD5..........................................................................36 3.2.1.1. Gi(cid:1247)i thi(cid:1227)u ........................................................................36 3.2.1.2. Thu(cid:1201)t toán .......................................................................36 3.2.1.3. Phân bi(cid:1227)t MD5 v(cid:1247)i MD4 .................................................40 SHA-1 ...............................................................................41 3.2.2.1. Gi(cid:1247)i thi(cid:1227)u ........................................................................41 3.2.2.2. Các hàm và các h(cid:1205)ng s(cid:1237)(cid:3)(cid:255)(cid:1133)(cid:1255)c dùng trong thu(cid:1201)t toán........41 3.2.2.3. Tính giá tr(cid:1231) b(cid:259)m ...............................................................42 Tiger..................................................................................43 3.2.3.1. Gi(cid:1247)i thi(cid:1227)u ........................................................................43 3.2.3.2. (cid:264)(cid:1211)c t(cid:1191) ..............................................................................45 3.2.3.3. Tính b(cid:1191)o m(cid:1201)t ...................................................................47 3.3. Hàm b(cid:259)m Whirlpool.......................................................................48 Gi(cid:1247)i thi(cid:1227)u ..........................................................................48 Các c(cid:1131) s(cid:1251) và ký hi(cid:1227)u toán h(cid:1233)c............................................49 3.3.2.1. Tr(cid:1133)(cid:1249)ng Galois (s(cid:1269) bi(cid:1223)u di(cid:1225)n nh(cid:1231) phân).............................49 3.3.2.2. Các l(cid:1247)p ma tr(cid:1201)n ...............................................................49 3.3.2.3. Mã MDS (MDS code - Maximal Distance Separable code) 49

3.3.3.

3.3.4. Ch(cid:1133)(cid:1131)ng 4.

3.3.2.4. Các thu(cid:1245)c tính m(cid:1201)t mã .....................................................50 3.3.2.5. Ký hi(cid:1227)u khác ...................................................................51 Mô t(cid:1191) Whirlpool ................................................................51 3.3.3.1. Nh(cid:1201)p và xu(cid:1193)t ...................................................................52 3.3.3.2. L(cid:1247)p phi tuy(cid:1219)n g ...............................................................52 3.3.3.3. Hoán v(cid:1231) theo chu k(cid:484) p ......................................................52 3.3.3.4. L(cid:1247)p lan truy(cid:1221)n tuy(cid:1219)n tính q ..............................................52 3.3.3.5. Phép c(cid:1245)ng khoá s [k]........................................................53 3.3.3.6. H(cid:1205)ng s(cid:1237) vòng cr...............................................................53 3.3.3.7. Hàm vòng p[k]................................................................53 3.3.3.8. B(cid:1191)ng x(cid:1219)p l(cid:1231)ch khoá ..........................................................53 3.3.3.9. M(cid:1201)t mã kh(cid:1237)i n(cid:1245)i W.........................................................53 3.3.3.10. Thêm các bit và t(cid:259)ng c(cid:1133)(cid:1249)ng MD....................................53 3.3.3.11. Ch(cid:1261)c n(cid:259)ng nén( Nguyên t(cid:1203)c nén) ...................................54 3.3.3.12. Tính thông (cid:255)i(cid:1227)p b(cid:259)m......................................................54 (cid:264)ánh giá hàm b(cid:259)m Whirpool .............................................54 Gi(cid:1193)u d(cid:1267) li(cid:1227)u – Watermarking ..................................................55 4.1. Gi(cid:1193)u d(cid:1267) li(cid:1227)u ...................................................................................55 4.2. Phân lo(cid:1189)i: .......................................................................................55 4.3. Mô hình chung:..............................................................................56 4.4. Các yêu c(cid:1195)u c(cid:1259)a bài toán gi(cid:1193)u d(cid:1267) li(cid:1227)u.............................................56 4.5. Ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u...............................................................58

ii

4.5.1.

4.5.2.

5.1.1. 5.1.2.

5.2.1. 5.2.2. 5.2.3.

5.3.1.

5.3.2.

Ch(cid:1133)(cid:1131)ng 6.

Ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u có th(cid:1223) nhìn th(cid:1193)y ........................58 4.5.1.1. Ph(cid:1133)(cid:1131)ng pháp d(cid:1269)a vào phép bi(cid:1219)n (cid:255)(cid:1241)i Cosin t(cid:1263)ng ph(cid:1195)n......58 4.5.1.2. Ph(cid:1133)(cid:1131)ng pháp chèn giá tr(cid:1231)(cid:3)(cid:255)(cid:1245) xám.....................................59 Ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u không th(cid:1223) th(cid:1193)y ..........................60 4.5.2.1. Ph(cid:1133)(cid:1131)ng pháp l(cid:1133)(cid:1255)ng hoá h(cid:1227) s(cid:1237) bi(cid:1219)n (cid:255)(cid:1241)i wavelet ...............60 4.5.2.2. Ph(cid:1133)(cid:1131)ng pháp d(cid:1269)a vào s(cid:1269) khác bi(cid:1227)t gi(cid:1267)a các h(cid:1227) s(cid:1237) wavelet k(cid:1221) nhau ........................................................................................60 4.5.2.3. Ph(cid:1133)(cid:1131)ng pháp d(cid:1269)a vào phép bi(cid:1219)n (cid:255)(cid:1241)i Wavelet d(cid:1133) th(cid:1263)a......62 4.5.2.4. Ph(cid:1133)(cid:1131)ng pháp d(cid:1269)a trên vi(cid:1227)c chia block thích nghi.............64 4.6. Các d(cid:1189)ng t(cid:1193)n công ..........................................................................66 4.7. (cid:1260)ng d(cid:1257)ng c(cid:1259)a ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u ........................................66 Ch(cid:1133)(cid:1131)ng 5. M(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng .....................................................................68 5.1. Gi(cid:1193)u tin trên (cid:1191)nh.............................................................................68 Nghi th(cid:1261)c gi(cid:1193)u tin (cid:255)a t(cid:1195)ng trên (cid:1191)nh ....................................68 Giao di(cid:1227)n (cid:1261)ng d(cid:1257)ng ...........................................................70 5.2. Mô hình ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) ..................................................................71 Mô hình t(cid:1189)o ch(cid:1267) ký............................................................71 Mô hình ch(cid:1261)ng th(cid:1269)c ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) ...................................72 Giao di(cid:1227)n (cid:1261)ng d(cid:1257)ng ...........................................................73 5.3. Nhúng tin vào phim và (cid:1261)ng d(cid:1257)ng ...................................................74 Mô hình nhúng c(cid:1131) s(cid:1251) d(cid:1267) li(cid:1227)u trên phim .............................74 5.3.1.1. T(cid:1241) ch(cid:1261)c C(cid:1131) s(cid:1251) d(cid:1267) li(cid:1227)u....................................................74 5.3.1.2. T(cid:1201)p l(cid:1227)nh trên (cid:1241) c(cid:1261)ng (cid:1191)o ...................................................75 5.3.1.3. Thu(cid:1201)t toán .......................................................................75 Giao di(cid:1227)n (cid:1261)ng d(cid:1257)ng ...........................................................76 5.4. Giao di(cid:1227)n c(cid:1259)a ch(cid:1133)(cid:1131)ng trình chính...................................................76 K(cid:1219)t lu(cid:1201)n – H(cid:1133)(cid:1247)ng phát tri(cid:1223)n ....................................................77 6.1. K(cid:1219)t lu(cid:1201)n .........................................................................................77 6.2. H(cid:1133)(cid:1247)ng phát tri(cid:1223)n ............................................................................78 Tài li(cid:1227)u tham kh(cid:1191)o..........................................................................................79 Ph(cid:1257) l(cid:1257)c A: Bi(cid:1219)n (cid:255)(cid:1241)i Wavelet ..........................................................................81 Ph(cid:1257) l(cid:1257)c B: K(cid:1219)t qu(cid:1191) th(cid:1265) nghi(cid:1227)m hàm b(cid:259)m Tiger và Whirlpool.........................90

iii

DANH SÁCH CÁC HÌNH V(cid:1216)

Hình 2.1. Ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1265)i cùng b(cid:1191)n rõ thông (cid:255)i(cid:1227)p ............................13

Hình 2.2. Ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1265)i cùng b(cid:1191)n mã c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p ....................13

Hình 2.3. So sánh m(cid:1261)c (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t gi(cid:1267)a ECC và RSA ...................................31

Hình 3.1. Phát th(cid:1191)o ch(cid:1261)c n(cid:259)ng nén c(cid:1259)a Tiger .................................................47

Hình 4.1. Hai m(cid:1199)u watermark........................................................................55

Hình 4.2. Mô hình chung c(cid:1259)a h(cid:1227) th(cid:1237)ng gi(cid:1193)u d(cid:1267) li(cid:1227)u.......................................56

Hình 4.3.(cid:54)(cid:1131)(cid:3)(cid:255)(cid:1239) nhúng watermark b(cid:1205)ng ph(cid:1133)(cid:1131)ng pháp d(cid:1269)a trên block thích nghi

.......................................................................................................................65

Hình 5.1. Mô hình h(cid:1227) th(cid:1237)ng nhúng watermark trên (cid:1191)nh .................................68

Hình 5.2. Màn hình giao di(cid:1227)n nhúng không nhìn th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c ...........................70

Hình 5.3. Màn hình giao di(cid:1227)n nhúng nhìn th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c......................................71

Hình 5.4. Mô hình t(cid:1189)o ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) ............................................................71

Hình 5.5. Mô hình ch(cid:1261)ng th(cid:1269)c ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)................................................72

Hình 5.6. Màn hình giao di(cid:1227)n phát sinh c(cid:1211)p khoá...........................................73

Hình 5.7. Màn hình giao di(cid:1227)n t(cid:1189)o ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) ...........................................74

Hình 5.8. Màn hình giao di(cid:1227)n ch(cid:1261)ng th(cid:1269)c ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)...............................74

Hình 5.9. Màn hình giao di(cid:1227)n (cid:1261)ng d(cid:1257)ng (cid:1241) c(cid:1261)ng (cid:1191)o.........................................76

Hình 5.10.Giao di(cid:1227)n c(cid:1259)a ch(cid:1133)(cid:1131)ng trình chính ..................................................76

B(cid:1191)ng 2.1.B(cid:1191)ng so sánh v(cid:1221) kích th(cid:1133)(cid:1247)c khóa công khai gi(cid:1267)a ECC, RSA và AES

[7] ..................................................................................................................30

1

Ch(cid:1133)(cid:1131)ng 1. Gi(cid:1247)i thi(cid:1227)u

Trong nh(cid:1267)ng n(cid:259)m g(cid:1195)n (cid:255)ây, s(cid:1269) phát tri(cid:1223)n nhanh chóng c(cid:1259)a Internet và các công c(cid:1257) x(cid:1265) lý multimedia (cid:255)ã mang l(cid:1189)i cho chúng ta nhi(cid:1221)u thu(cid:1201)n l(cid:1255)i trong vi(cid:1227)c l(cid:1133)u tr(cid:1267) d(cid:1267) li(cid:1227)u, trao (cid:255)(cid:1241)i thông tin, sao chép d(cid:1267) li(cid:1227)u v.v…Tuy nhiên, bên c(cid:1189)nh các thu(cid:1201)n l(cid:1255)i (cid:255)ó, s(cid:1269) phát tri(cid:1223)n này c(cid:458)ng t(cid:1189)o ra nhi(cid:1221)u th(cid:1265) thách trong v(cid:1193)n (cid:255)(cid:1221) tìm ra gi(cid:1191)i pháp b(cid:1191)o m(cid:1201)t d(cid:1267) li(cid:1227)u c(cid:458)ng nh(cid:1133) vi(cid:1227)c ch(cid:1261)ng nh(cid:1201)n quy(cid:1221)n s(cid:1251) h(cid:1267)u c(cid:1259)a các cá nhân. Nh(cid:1267)ng th(cid:1265) thách này (cid:255)ã thu hút s(cid:1269) chú ý c(cid:1259)a nhi(cid:1221)u nhà nghiên c(cid:1261)u trong l(cid:429)nh v(cid:1269)c công ngh(cid:1227) thông tin và toán: (cid:255)ó chính là b(cid:1191)o m(cid:1201)t:

(cid:216) Làm sao (cid:255)(cid:1223) b(cid:1191)o m(cid:1201)t d(cid:1267) li(cid:1227)u? (cid:216) Làm sao ch(cid:1261)ng nh(cid:1201)n m(cid:1245)t d(cid:1267) li(cid:1227)u nào (cid:255)ó thu(cid:1245)c quy(cid:1221)n s(cid:1251) h(cid:1267)u c(cid:1259)a ng(cid:1133)(cid:1249)i này hay ng(cid:1133)(cid:1249)i kia? (cid:216) Làm sao (cid:255)(cid:1223) ng(cid:1133)(cid:1249)i nh(cid:1201)n bi(cid:1219)t (cid:255)(cid:1133)(cid:1255)c thông tin mà h(cid:1233) nh(cid:1201)n (cid:255)(cid:1133)(cid:1255)c là chính xác? (cid:216) Làm sao (cid:255)(cid:1223) tin t(cid:1261)c truy(cid:1221)n (cid:255)i không b(cid:1231)(cid:3)(cid:255)ánh c(cid:1203)p?

Hi(cid:1227)n (cid:255)ã có nhi(cid:1221)u gi(cid:1191)i pháp (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1221) xu(cid:1193)t nh(cid:1133): s(cid:1265) d(cid:1257)ng m(cid:1201)t kh(cid:1197)u, mã hoá thông tin, steganography, (cid:1197)n d(cid:1267) li(cid:1227)u (watermarking) v.v….và bên c(cid:1189)nh các ph(cid:1133)(cid:1131)ng pháp b(cid:1191)o m(cid:1201)t m(cid:1247)i ngày càng ph(cid:1261)c t(cid:1189)p thì c(cid:458)ng xu(cid:1193)t hi(cid:1227)n nhi(cid:1221)u d(cid:1189)ng t(cid:1193)n công khác nhau và ngày càng tinh vi h(cid:1131)n. Do (cid:255)ó, v(cid:1193)n (cid:255)(cid:1221) làm sao (cid:255)(cid:1133)a ra m(cid:1245)t gi(cid:1191)i pháp hi(cid:1227)u qu(cid:1191) theo th(cid:1249)i gian và s(cid:1269) phát tri(cid:1223)n m(cid:1189)nh m(cid:1217) c(cid:1259)a khoa h(cid:1233)c k(cid:1275) thu(cid:1201)t và các k(cid:1275) thu(cid:1201)t ph(cid:1195)n c(cid:1261)ng là không d(cid:1225).

Trong gi(cid:1247)i h(cid:1189)n c(cid:1259)a lu(cid:1201)n v(cid:259)n, chúng tôi s(cid:1217) trình bày s(cid:1131) nét v(cid:1221) các gi(cid:1191)i pháp này (cid:255)(cid:1223) chúng ta có cái nhìn t(cid:1241)ng quát v(cid:1221) b(cid:1191)o m(cid:1201)t thông tin. (cid:264)(cid:1239)ng th(cid:1249)i, chúng tôi c(cid:458)ng (cid:255)(cid:1221) xu(cid:1193)t m(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng. B(cid:1237) c(cid:1257)c lu(cid:1201)n v(cid:259)n g(cid:1239)m 6 ch(cid:1133)(cid:1131)ng và ba ph(cid:1257) l(cid:1257)c:

Ch(cid:1133)(cid:1131)ng 1. Gi(cid:1247)i thi(cid:1227)u - Trình bày khái quát v(cid:1221) lu(cid:1201)n v(cid:259)n và gi(cid:1247)i h(cid:1189)n m(cid:1257)c tiêu c(cid:1259)a (cid:255)(cid:1221) tài.

Ch(cid:1133)(cid:1131)ng 2. M(cid:1245)t s(cid:1237) h(cid:1227) mã hóa - Trình bày m(cid:1245)t s(cid:1237) khái ni(cid:1227)m c(cid:1131) b(cid:1191)n, h(cid:1227) mã khoá công khai RSA, ECC, h(cid:1227) mã (cid:255)(cid:1237)i x(cid:1261)ng RC6 và so sánh gi(cid:1267)a RSA và ECC.

Ch(cid:1133)(cid:1131)ng 3. Hàm b(cid:259)m - Gi(cid:1247)i thi(cid:1227)u m(cid:1245)t s(cid:1237) ph(cid:1133)(cid:1131)ng pháp b(cid:259)m h(cid:1243) tr(cid:1255) (cid:87)(cid:259)ng t(cid:1237)c (cid:255)(cid:1245) x(cid:1265) lý cho vi(cid:1227)c mã hoá d(cid:1267) li(cid:1227)u trong (cid:1261)ng d(cid:1257)ng t(cid:1189)o ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265).

Ch(cid:1133)(cid:1131)ng 4. Gi(cid:1193)u d(cid:1267) li(cid:1227)u – WaterMarking - Gi(cid:1247)i thi(cid:1227)u s(cid:1131) l(cid:1133)(cid:1255)c v(cid:1221) k(cid:1275) thu(cid:1201)t gi(cid:1193)u d(cid:1267) li(cid:1227)u và m(cid:1245)t s(cid:1237) ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u d(cid:1269)a trên phép bi(cid:1219)n (cid:255)(cid:1241)i Wavelet.

2

Ch(cid:1133)(cid:1131)ng 5. M(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng – Mô t(cid:1191) m(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1221) xu(cid:1193)t d(cid:1269)a trên các ki(cid:1219)n th(cid:1261)c (cid:255)ã trình bày (cid:1251) các ch(cid:1133)(cid:1131)ng trên.

Ch(cid:1133)(cid:1131)ng 6. K(cid:1219)t lu(cid:1201)n và h(cid:1133)(cid:1247)ng phát tri(cid:1223)n - (cid:264)ánh giá các k(cid:1219)t qu(cid:1191)(cid:3)(cid:255)(cid:1189)t (cid:255)(cid:1133)(cid:1255)c và (cid:255)(cid:1133)a ra h(cid:1133)(cid:1247)ng phát tri(cid:1223)n cho lu(cid:1201)n v(cid:259)n.

Ph(cid:1257) l(cid:1257)c 1: Bi(cid:1219)n (cid:255)(cid:1241)i Wavelet - Trình bày s(cid:1131) nét v(cid:1221) phép bi(cid:1219)n (cid:255)(cid:1241)i Wavelet là c(cid:1131) s(cid:1251) c(cid:1259)a các ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c trình bày trong Ch(cid:1133)(cid:1131)ng 4.

Ph(cid:1257) l(cid:1257)c 2: K(cid:1219)t qu(cid:1191) th(cid:1265) nghi(cid:1227)m hàm b(cid:259)m Tiger và Whirlpool.

3

Ch(cid:1133)(cid:1131)ng 2. M(cid:1245)t s(cid:1237) h(cid:1227) th(cid:1237)ng mã hoá

2.1. Các khái ni(cid:1227)m c(cid:1131) b(cid:1191)n

2.1.1. S(cid:1237) nguyên t(cid:1237)

(cid:264)(cid:851)nh ngh(cid:429)a 2.1: G(cid:1233)i Z là t(cid:1201)p các s(cid:1237) nguyên {0, 1, -1, 2, -2, ...} và N = {n ˛ Z, n ‡ 0}; N* = { n ˛ Z, n ‡ 1}. Cho a, b ˛ Z, n(cid:1219)u $ c ˛ Z : b = ac ta nói a là (cid:1133)(cid:1247)c s(cid:1237) c(cid:1259)a b hay b là b(cid:1245)i s(cid:1237) c(cid:1259)a a, ký hi(cid:1227)u a|b.

a|c (cid:1167) a|(bx + cy) a = – b

(cid:264)(cid:851)nh lý 2.1: V(cid:1247)i a, b, c, x, y ˛ Z: a|a, 1|a; a|b, b|c (cid:222) a|b, a|c (cid:222) a|b, b|a (cid:222) a|b (cid:222) (-a)|b, a|(-b), (-a)|(-b)

(cid:264)(cid:851)nh ngh(cid:429)a 2.2: Cho a ˛ Z, b ˛ N*, t(cid:1239)n t(cid:1189)i duy nh(cid:1193)t q ˛ Z, và r ˛ N sao cho: a = bq + r, r £ b. Khi (cid:255)ó: q (cid:255)(cid:1133)(cid:1255)c ký hi(cid:1227)u là a/b và r (cid:255)(cid:1133)(cid:1255)c ký hi(cid:1227)u là a % b (hay a mod 0 £ b).

(cid:264)(cid:851)nh ngh(cid:429)a 2.3:

§ M(cid:1245)t s(cid:1237) nguyên c ˛ Z (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là (cid:1133)(cid:1247)c chung c(cid:1259)a a,b ˛ Z n(cid:1219)u c|a và c|b. § M(cid:1245)t (cid:1133)(cid:1247)c chung d ˛ Z c(cid:1259)a a, b ˛ Z, (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là (cid:1133)(cid:1247)c chung l(cid:1247)n nh(cid:1193)t c(cid:1259)a a,b ˛ Z , ký hi(cid:1227)u d = gcd(a,b) hay d = a (cid:217) b, n(cid:1219)u m(cid:1233)i b(cid:1245)i s(cid:1237) c(cid:1259)a m(cid:1233)i s(cid:1237) chia c(cid:1259)a a, b; (c ˛ Z, c|a, c|b (cid:222) c|d).

(cid:264)(cid:851)nh ngh(cid:429)a 2.4:

§ M(cid:1245)t s(cid:1237) nguyên d ˛ Z (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là b(cid:1245)i chung c(cid:1259)a a, b ˛ Z n(cid:1219)u a|d và b|d. § M(cid:1245)t b(cid:1245)i chung d ˛ N c(cid:1259)a a, b ˛ Z, (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là b(cid:1245)i chung nh(cid:1235) nh(cid:1193)t c(cid:1259)a a, b ˛ Z, ký hi(cid:1227)u d = lcm(a,b) hay d = a (cid:218) b, n(cid:1219)u m(cid:1233)i b(cid:1245)i s(cid:1237) c(cid:1259)a a, b (cid:255)(cid:1221)u chia h(cid:1219)t cho d; (c ˛ Z, a|c, b|c (cid:222) d|c).

(cid:264)(cid:851)nh ngh(cid:429)a 2.5: Hai s(cid:1237) nguyên t(cid:1237) a,b ˛ Z (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là nguyên t(cid:1237) cùng nhau, ký hi(cid:1227)u a

^ b, n(cid:1219)u a (cid:217) b=1.

4

4 Ghi chú: 1 ^ 1.

1 (cid:217) 1 = 1 (cid:222) a, b ˛ N và a ‡ 2, b ‡ 2, a ^ b, thì a „ b. Th(cid:1269)c v(cid:1201)y, n(cid:1219)u a = b, ta có a (cid:217) a „ a „ 1.

(cid:264)(cid:851)nh ngh(cid:429)a 2.6: M(cid:1245)t s(cid:1237) nguyên a ‡ 2 (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là s(cid:1237) nguyên t(cid:1237) n(cid:1219)u nó ch(cid:1229) có (cid:1133)(cid:1247)c s(cid:1237) (cid:71)(cid:1133)(cid:1131)ng là 1 và a; ng(cid:1133)(cid:1255)c l(cid:1189)i, a (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là h(cid:1255)p s(cid:1237). Vì th(cid:1219), 1 là h(cid:1255)p s(cid:1237). T(cid:1201)p t(cid:1193)t c(cid:1191) các s(cid:1237) nguyên t(cid:1237) ký hi(cid:1227)u là P.

4 Ghi chú: a,b ˛ P, a „ b (cid:222)

a ^ b; vì a và b ch(cid:1229) có (cid:1133)(cid:1247)c chung d(cid:1133)(cid:1131)ng là 1. § § N(cid:1219)u a ˛ P, " b ˛ Z và không là b(cid:1245)i s(cid:1237) c(cid:1259)a a thì b nguyên t(cid:1237) cùng nhau v(cid:1247)i a. Th(cid:1269)c v(cid:1201)y, n(cid:1219)u c là (cid:1133)(cid:1247)c chung d(cid:1133)(cid:1131)ng c(cid:1259)a a, b và c „ 1, ta có c = a vì a là s(cid:1237) nguyên t(cid:1237). Thì b chia h(cid:1219)t cho c là vô lý. § M(cid:1243)i s(cid:1237) nguyên l(cid:1247)n h(cid:1131)n hay b(cid:1205)ng 2 có ít nh(cid:1193)t m(cid:1245)t (cid:1133)(cid:1247)c s(cid:1237) là s(cid:1237) nguyên t(cid:1237): (cid:1133)(cid:1247)c chung nguyên t(cid:1237) nh(cid:1235) nh(cid:1193)t c(cid:458)ng s(cid:1217) l(cid:1247)n h(cid:1131)n hay b(cid:1205)ng 2.

(cid:264)(cid:851)nh lý 2.2: " a, b ˛ N*, a > b, ta có: a (cid:217) b = b (a % b)

Thu(cid:821)t toán 2.1: (Thu(cid:821)t toán Euclid tính (cid:753)(cid:867)c chung l(cid:867)n nh(cid:813)t c(cid:879)a 2 s(cid:857) nguyên d(cid:753)(cid:751)ng)

0 £ 0 £ r2 < r1; r3 < r2;

k £ n; rk < rk-1; 2 £

Cho a,b ˛ N, a > b > 1. (cid:264)(cid:1211)t a = r0, b = r1. T(cid:1263)(cid:3)(cid:255)(cid:1231)nh ngh(cid:429)a 1.2, ta có: r0 = r1q1 + r2, r1 = r2q1 + r3, ……………… rk-2 = rk-1qk-1 + rk, rn-1 = rnqn + rn+1, 0 £ 0 = rn+1 < rn; (cid:222) a = r0 > b = r1 > r2 > … > rn > rn+1 = 0.

V(cid:1201)y, rn = gcd(a, b);

Theo (cid:255)(cid:1231)nh lý 2.2:

gcd(a,b) = gcd(r0,r1) = gcd(r1,r2) = … = gcd(rn-1,rn) = gcd(rnqn + rn+1, rn) gcd(rnqn, rn) = rn.

(cid:264)(cid:851)nh lý 2.3: ((cid:264)(cid:851)nh lý Eulid m(cid:871) r(cid:865)ng)

$

x, y ˛ Z: ax + by = 1; $ V(cid:1247)i a,b ˛ N, a > b ‡ 1; ta có: x, y ˛ Z: ax + by = 1; N(cid:1219)u a ^ b, $ a ^ b (cid:219) x, y ˛ Z: ax + by = 1.

5

Z, m ˛ N*: (cid:264)(cid:851)nh ngh(cid:429)a 2.8: ((cid:264)(cid:851)nh ngh(cid:429)a phép (cid:255)(cid:859)ng d(cid:753)) Cho x,y ˛ x (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là (cid:255)(cid:1239)ng d(cid:1133) c(cid:1259)a y mod m, ký hi(cid:1227)u: x ” y(mod m).

n(cid:1219)u m là s(cid:1237) chia c(cid:1259)a x – y; m (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là mô(cid:255)un c(cid:1259)a phép (cid:255)(cid:1239)ng d(cid:1133). T(cid:1201)p các s(cid:1237) nguyên modulo m, ký hi(cid:1227)u Zm, là t(cid:1201)p: Zm = {0, 1, 2, … , m-1} N(cid:1219)u x ˛ Zm , s(cid:1237) nguyên x mod m c(cid:1259)a Zm(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là rút g(cid:1233)n modulo c(cid:1259)a x theo m.

(cid:264)(cid:851)nh ngh(cid:429)a 2.9: M(cid:1245)t s(cid:1237) nguyên a ˛ Zm (cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là modulo m kh(cid:1191) ngh(cid:1231)ch n(cid:1219)u t(cid:1239)n t(cid:1189)i x ˛

Zm: ax = 1 (mod m). N(cid:1219)u t(cid:1239)n t(cid:1189)i s(cid:1237) x này, thì x là duy nh(cid:1193)t, và (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i ngh(cid:1231)ch (cid:255)(cid:1191)o c(cid:1259)a a modulo m, ký hi(cid:1227)u a-1 (mod m), hay (cid:255)(cid:1131)n gi(cid:1191)n h(cid:1131)n a-1.

(cid:264)(cid:851)nh ngh(cid:429)a 2.10: ((cid:264)(cid:851)nh ngh(cid:429)a hàm phi-Euler) Cho n ‡ 1, (cid:255)(cid:1211)t j (n) là t(cid:1201)p các s(cid:1237) nguyên trong kho(cid:1191)ng [1,n] nguyên t(cid:1237)

cùng nhau v(cid:1247)i n. Hàm j nh(cid:1133) th(cid:1219)(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là hàm phi-Euler

(cid:264)(cid:851)nh lý 2.3: Cho k = card(Zm*) = j (m), m ‡ 2, Zm* = {x1, x2, …, xk}, xZm* = {xy; y

˛ Zm*}, " x ˛ Zm*, và u = x1x2…xk. Ta có:

xj (m) =1 (mod m). xp-1 = 1 (mod p).

nr = ns (mod p). xZm* = Zm*, " x ˛ Zm*. u = xku (mod m), xk = 1 (mod m). (cid:11)(cid:264)(cid:1231)nh lý Euler) x ^ m (cid:222) (cid:11)(cid:264)(cid:1231)nh lý Fermat) p ˛ P, x ^ p (cid:222) p ˛ P, n ˛ Z (cid:222) np = n (mod p). p ˛ P, n ˛ Z, r = s (mod j (m)) (cid:222) N(cid:1219)u p,q là hai s(cid:1237) nguyên t(cid:1237) khác nhau và n = pq, thì j (m) = (p-1)(q-1).

(cid:264)(cid:851)nh lý 2.4: ((cid:264)(cid:851)nh lý s(cid:857) d(cid:753) Trung Hoa) N(cid:1219)u các s(cid:1237) nguyên n1,…,nk(cid:3)(cid:255)ôi m(cid:1245)t nguyên t(cid:1237) cùng nhau và n = n1…nk thì x ” a1(mod n1), … , x ” ak (mod nk), có duy nh(cid:1193)t nghi(cid:1227)m trong Zn. Ánh x(cid:1189) f: Znfi Zn-1 · … · Znk, xác (cid:255)(cid:1231)nh b(cid:1251)i

f(x) = (x mod n1, … , x mod nk), x ˛ Zn

M(cid:865)t s(cid:857) phép tính nhanh trên các s(cid:857) nguyên: q Phép toán mod trên tr(cid:753)(cid:869)ng Zm Ta có : x = y (mod m)

i

2 và y =

i

I

£0

i )*(

(cid:229) là bi(cid:1223)u di(cid:1225)n c(cid:1131) s(cid:1251) b c(cid:1259)a y, ta có: Khi x, y, m là nh(cid:1267)ng s(cid:1237) nguyên l(cid:1247)n, 0 £ x,y £ m, b ‡ iby £

bxy i

0

I

i

(cid:229) £ £

(x * y) mod m = (y0 * x + (x * bi) mod m = (b * ((x * bi) mod m)) mod m, 0 £ mod m)) mod m i £ I

6

Vì th(cid:1219) ta có th(cid:1223) s(cid:1265) d(cid:1257)ng thu(cid:1201)t gi(cid:1191)i sau (cid:255)(cid:1223) tính tích modulo P = (x*y)mod m

Thu(cid:821)t gi(cid:811)i: (tr(cid:753)(cid:869)ng h(cid:875)p t(cid:861)ng quát) (cid:264)(cid:1211)t x = x mod m, y = y mod m, và P = (y0 * x) mod m Cho i t(cid:1263) 1 (cid:255)(cid:1219)n I, do:

a. b. x = (b * x) mod m; Tính x = (yi * x) mod m, và P = (P + x) mod m Return P

i

q Phép l(cid:458)y th(cid:883)a mod

ip 2

i

I

(cid:229) (cid:264)(cid:851)nh ngh(cid:429)a 1.11: Cho x ˛ Zm và m(cid:1245)t s(cid:1237) nguyên p ˛ N* có bi(cid:1223)u di(cid:1225)n . Vi(cid:1227)c tính giá tr(cid:1231) y = xp mod m (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là phép l(cid:458)y £ £

i

i

p

p

2

4

2

p

0

2

=

x

x

(*

x

p (*) 1

x

p (*...*)

x

)

i

nh(cid:1231) phân p = 0 th(cid:1263)a mod. Ta có:

ip 2

0

i

I

(cid:229) Thu(cid:821)t gi(cid:811)i: (cid:264)(cid:1195)u vào: £ £

(cid:264)(cid:1195)u ra: x ˛ Zm, p = y = xp mod m

y = 1. N(cid:1219)u p = 0, return y A = x. N(cid:1219)u p0 = 1 thì y = x Cho I ch(cid:1189)y t(cid:1263) 1 (cid:255)(cid:1219)n I, do:

c. d. A = A2 mod m N(cid:1219)u pi = 1 thì y = (A*y) mod m Return y

2.1.2. Mã hóa khóa bí m(cid:1201)t (Private-Key Encryption):

Các thu(cid:1201)t toán mã hoá khoá bí m(cid:1201)t dùng m(cid:1245)t khoá bí m(cid:1201)t (cid:255)(cid:1131)n (cid:255)(cid:1223) mã hóa và gi(cid:1191)i mã d(cid:1267) li(cid:1227)u. C(cid:1195)n ph(cid:1191)i gi(cid:1267) an toàn cho khoá t(cid:1263) vi(cid:1227)c truy c(cid:1201)p b(cid:1251)i các tác nhân không (cid:255)(cid:1133)(cid:1255)c phân quy(cid:1221)n b(cid:1251)i vì b(cid:1193)t k(cid:484) ng(cid:1133)(cid:1249)i nào có khoá (cid:255)(cid:1221)u có th(cid:1223) gi(cid:1191)i mã d(cid:1267) li(cid:1227)u. Mã hoá khoá bí m(cid:1201)t c(cid:458)ng (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là mã hoá khoá (cid:255)(cid:1237)i x(cid:1261)ng b(cid:1251)i vì ch(cid:1229) cùng m(cid:1245)t khoá dùng cho c(cid:1191) mã hoá và gi(cid:1191)i mã. Thu(cid:1201)t toán mã hoá khoá bí m(cid:1201)t t(cid:1237)c (cid:255)(cid:1245) c(cid:1269)c k(cid:484) nhanh (so v(cid:1247)i các thu(cid:1201)t toán khoá công) và thích h(cid:1255)p t(cid:1237)t v(cid:1247)i vi(cid:1227)c th(cid:1269)c thi bi(cid:1219)n (cid:255)(cid:1241)i m(cid:1201)t mã trên các dòng d(cid:1267) li(cid:1227)u l(cid:1247)n.

(cid:264)i(cid:1223)n hình, các thu(cid:1201)t toán khoá bí m(cid:1201)t (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là m(cid:1201)t mã kh(cid:1237)i (block cipher) (cid:255)(cid:1133)(cid:1255)c dùng (cid:255)(cid:1223) mã hoá m(cid:1245)t kh(cid:1237)i d(cid:1267) li(cid:1227)u t(cid:1189)i m(cid:1245)t th(cid:1249)i (cid:255)(cid:76)(cid:1223)m. Các ph(cid:1133)(cid:1131)ng pháp mã kh(cid:1237)i nh(cid:1133) RC2, DES, Tripple DES, và Rijindael,… bi(cid:1219)n (cid:255)(cid:1241)i m(cid:1245)t kh(cid:1237)i n byte (cid:255)(cid:1195)u vào thành m(cid:1245)t kh(cid:1237)i byte (cid:255)(cid:1133)(cid:1255)c mã hoá (cid:1251)(cid:3)(cid:255)(cid:1195)u ra. N(cid:1219)u mu(cid:1237)n mã hoá hay gi(cid:1191)i mã m(cid:1245)t chu(cid:1243)i byte c(cid:1195)n ph(cid:1191)i bi(cid:1219)n (cid:255)(cid:1241)i nó thành t(cid:1263)ng kh(cid:1237)i, b(cid:1251)i vì kích th(cid:1133)(cid:1247)c n thì nh(cid:1235) (n = 8 byte cho RC2, DES và Tripple DES n = 16; n = 24; hay

7

n = 32 byte (cid:255)(cid:1237)i v(cid:1247)i Rijindael), các giá tr(cid:1231) l(cid:1247)n h(cid:1131)n n ph(cid:1191)i (cid:255)(cid:1133)(cid:1255)c mã hoá m(cid:1245)t kh(cid:1237)i t(cid:1189)i m(cid:1245)t th(cid:1249)i (cid:255)(cid:76)(cid:1223)m.

Các lo(cid:1189)i mã hóa kh(cid:1237)i dùng ki(cid:1223)u xích (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là xích kh(cid:1237)i m(cid:1201)t mã (CBC_Cipher Block Chaining) dùng m(cid:1245)t khoá và m(cid:1245)t vect(cid:1131) kh(cid:1251)i t(cid:1189)o (IV_Initial Vector) (cid:255)(cid:1223) th(cid:1269)c thi bi(cid:1219)n (cid:255)(cid:1241)i m(cid:1201)t mã trên d(cid:1267) li(cid:1227)u. (cid:264)(cid:1237)i v(cid:1247)i khoá bí m(cid:1201)t K (cid:255)(cid:1133)(cid:1255)c cho, m(cid:1245)t m(cid:1201)t mã kh(cid:1237)i (cid:255)(cid:1131)n gi(cid:1191)n không dùng IV s(cid:1217) mã hoá cùng hai kh(cid:1237)i (cid:255)(cid:1195)u vào c(cid:1259)a v(cid:259)n b(cid:1191)n g(cid:1237)c gi(cid:1237)ng nhau (plaintext) s(cid:1217) cho cùng m(cid:1245)t kh(cid:1237)i (cid:255)(cid:1195)u ra v(cid:259)n b(cid:1191)n m(cid:1201)t mã (ciphertext). N(cid:1219)u các kh(cid:1237)i (cid:255)(cid:1133)(cid:1255)c nhân (cid:255)ôi trong chu(cid:1243)i d(cid:1267) li(cid:1227)u (cid:89)(cid:259)n b(cid:1191)n g(cid:1237)c, thì các kh(cid:1237)i (cid:255)(cid:1133)(cid:1255)c mã hoá (cid:255)(cid:1133)(cid:1255)c nhân (cid:255)ôi trong chu(cid:1243)i v(cid:259)n b(cid:1191)n m(cid:1201)t mã. N(cid:1219)u m(cid:1245)t ng(cid:1133)(cid:1249)i dùng không (cid:255)(cid:1133)(cid:1255)c phân quy(cid:1221)n bi(cid:1219)t b(cid:1193)t c(cid:1261)(cid:3)(cid:255)(cid:76)(cid:1221)u gì v(cid:1221) c(cid:1193)u trúc c(cid:1259)a kh(cid:1237)i v(cid:259)n b(cid:1191)n g(cid:1237)c, h(cid:1233) có th(cid:1223) dùng thông tin (cid:255)ó (cid:255)(cid:1223) gi(cid:1191)i mã kh(cid:1237)i v(cid:259)n b(cid:1191)n m(cid:1201)t mã (cid:255)(cid:1133)(cid:1255)c bi(cid:1219)t và có th(cid:1223) ph(cid:1257)c h(cid:1239)i khoá. (cid:264)(cid:1223) ch(cid:1237)ng l(cid:1189)i (cid:255)(cid:76)(cid:1221)u này, thông tin t(cid:1263) kh(cid:1237)i tr(cid:1133)(cid:1247)c (cid:255)ó (cid:255)(cid:1133)(cid:1255)c tr(cid:1245)n vào trong ti(cid:1219)n trình mã hoá kh(cid:1237)i ti(cid:1219)p theo. Vì v(cid:1201)y, (cid:255)(cid:1195)u ra c(cid:1259)a hai kh(cid:1237)i v(cid:259)n b(cid:1191)n g(cid:1237)c gi(cid:1237)ng nhau là khác nhau b(cid:1251)i vì k(cid:1275) thu(cid:1201)t này dùng kh(cid:1237)i tr(cid:1133)(cid:1247)c (cid:255)ó (cid:255)(cid:1223) mã hoá kh(cid:1237)i ti(cid:1219)p theo, m(cid:1245)t IV (cid:255)(cid:1133)(cid:1255)c dùng (cid:255)(cid:1223) mã hóa kh(cid:1237)i (cid:255)(cid:1195)u tiên c(cid:1259)a d(cid:1267) li(cid:1227)u. Dùng h(cid:1227) th(cid:1237)ng này, các ph(cid:1195)n (cid:255)(cid:1195)u (header) thông (cid:255)(cid:76)(cid:1227)p ph(cid:1241) bi(cid:1219)n có th(cid:1223) b(cid:1231) nh(cid:1267)ng ng(cid:1133)(cid:1249)i không có quy(cid:1221)n bi(cid:1219)t (cid:255)(cid:1219)n thì h(cid:1233) c(cid:458)ng không th(cid:1223) dùng công ngh(cid:1227)(cid:3)(cid:255)(cid:1191)o (reverse engineer) (cid:255)(cid:1223) tìm ra khoá.

Ch(cid:1229) có m(cid:1245)t cách (cid:255)(cid:1223) xâm ph(cid:1189)m vào d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c mã hoá b(cid:1205)ng ph(cid:1133)(cid:1131)ng pháp m(cid:1201)t mã này là th(cid:1269)c hi(cid:1227)n vét c(cid:1189)n v(cid:1247)i m(cid:1233)i khoá có th(cid:1223) có. Ph(cid:1257) thu(cid:1245)c vào kích th(cid:1133)(cid:1247)c khoá (cid:255)(cid:1133)(cid:1255)c dùng (cid:255)(cid:1223) th(cid:1269)c hi(cid:1227)n mã hoá, lo(cid:1189)i tìm ki(cid:1219)m này s(cid:1265) d(cid:1257)ng r(cid:1193)t nhi(cid:1221)u th(cid:1249)i gian th(cid:1201)m chí dùng các máy tính nhanh nh(cid:1193)t và do (cid:255)ó không kh(cid:1191) thi. Các kích th(cid:1133)(cid:1247)c khoá l(cid:1247)n h(cid:1131)n, thì khó gi(cid:1191)i mã h(cid:1131)n. M(cid:1211)c dù vi(cid:1227)c mã hoá v(cid:1221) m(cid:1211)t lý thuy(cid:1219)t không có ngh(cid:429)a là không kh(cid:1191) thi vi(cid:1227)c l(cid:1193)y d(cid:1267) li(cid:1227)u (cid:255)ã mã hóa, nó không (cid:255)(cid:1133)a ra các chi phí th(cid:1249)i gian ph(cid:1191)i tr(cid:1191) cho vi(cid:1227)c th(cid:1269)c hi(cid:1227)n gi(cid:1191)i mã này. N(cid:1219)u m(cid:1193)t nhi(cid:1221)u tháng (cid:255)(cid:1223) th(cid:1269)c hi(cid:1227)n m(cid:1233)i cách tìm ki(cid:1219)m d(cid:1267) li(cid:1227)u thì nó c(cid:458)ng ch(cid:1229) có ý ngh(cid:429)a nh(cid:1133) vài ngày vì (cid:255)(cid:1221)u không có k(cid:1219)t qu(cid:1191). Do (cid:255)ó, ph(cid:1133)(cid:1131)ng pháp vét c(cid:1189)n là không th(cid:1223) th(cid:1269)c hi(cid:1227)n.

S(cid:1269) b(cid:1193)t l(cid:1255)i c(cid:1259)a khóa bí m(cid:1201)t là nó cho hai nhóm ng(cid:1133)(cid:1249)i tho(cid:1191) thu(cid:1201)n v(cid:1221) khoá và IV và truy(cid:1221)n thông các giá tr(cid:1231) c(cid:1259)a h(cid:1233). C(cid:458)ng v(cid:1201)y, khoá ph(cid:1191)i (cid:255)(cid:1133)(cid:1255)c gi(cid:1267) bí m(cid:1201)t (cid:255)(cid:1237)i v(cid:1247)i nh(cid:1267)ng ng(cid:1133)(cid:1249)i không quy(cid:1221)n. Vì nh(cid:1267)ng v(cid:1193)n (cid:255)(cid:1221) này mà mã hoá khoá bí m(cid:1201)t th(cid:1133)(cid:1249)ng (cid:255)(cid:1133)(cid:1255)c dùng chung v(cid:1247)i mã hóa khóa công (cid:255)(cid:1223) truy(cid:1221)n thông cá nhân các giá tr(cid:1231) c(cid:1259)a khóa và IV. M(cid:1245)t s(cid:1237) thu(cid:1201)t toán mã hóa ph(cid:1241) bi(cid:1219)n nh(cid:1133) DES (Data Encrypion Standard), AES (Advanced Encryption Standard), Blowfish, IDEA, RC4,…

Gi(cid:1191) s(cid:1265) A và B là hai nhóm ng(cid:1133)(cid:1249)i mu(cid:1237)n truy(cid:1221)n thông trên m(cid:1245)t kênh truy(cid:1221)n không an toàn, h(cid:1233) có th(cid:1223) dùng mã hóa khoá bí m(cid:1201)t nh(cid:1133) sau: C(cid:1191) A và B th(cid:1235)a thu(cid:1201)n v(cid:1247)i nhau dùng m(cid:1245)t thu(cid:1201)t toán c(cid:1257) th(cid:1223) (ví d(cid:1257) Rijindael) v(cid:1247)i m(cid:1245)t khóa và IV c(cid:1257) th(cid:1223). A so(cid:1189)n m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p và t(cid:1189)o m(cid:1245)t dòng truy(cid:1221)n trên m(cid:1189)ng (cid:255)(cid:1223) g(cid:1265)i (cid:255)i. K(cid:1219)(cid:3)(cid:255)ó, A mã hóa v(cid:259)n b(cid:1191)n dùng khóa và IV và g(cid:1265)i nó thông qua m(cid:1189)ng A không g(cid:1265)i khóa và IV cho B. B nh(cid:1201)n v(cid:259)n b(cid:1191)n mã hóa và gi(cid:1191)i mã nó b(cid:1205)ng khóa và IV (cid:255)ã th(cid:1235)a thu(cid:1201)n tr(cid:1133)(cid:1247)c. N(cid:1219)u vi(cid:1227)c truy(cid:1221)n thông b(cid:1231) ch(cid:1211)n thì ng(cid:1133)(cid:1249)i ch(cid:1211)n không

8

th(cid:1223) ph(cid:1257)c h(cid:1239)i v(cid:259)n b(cid:1191)n g(cid:1237)c do không bi(cid:1219)t khóa và IV. Trong k(cid:1231)ch b(cid:1191)n này, khóa ph(cid:1191)i (cid:255)(cid:1133)(cid:1255)c gi(cid:1267) bí m(cid:1201)t còn IV thì không c(cid:1195)n ph(cid:1191)i gi(cid:1267) bí m(cid:1201)t. Trong k(cid:1231)ch b(cid:1191)n th(cid:1219) gi(cid:1247)i th(cid:1269)c, A hay B phát sinh ra khoá bí m(cid:1201)t và dùng mã hóa khóa công (b(cid:1193)t (cid:255)(cid:1237)i x(cid:1261)ng) (cid:255)(cid:1223) truy(cid:1221)n khóa bí m(cid:1201)t (b(cid:1193)t (cid:255)(cid:1237)i x(cid:1261)ng) .

Các h(cid:1227) th(cid:1237)ng mã khóa bí m(cid:1201)t tuy (cid:255)(cid:1133)(cid:1255)c s(cid:1265) d(cid:1257)ng m(cid:1245)t th(cid:1249)i gian dài và ít ph(cid:1261)c t(cid:1189)p v(cid:1221) m(cid:1211)t toán h(cid:1233)c h(cid:1131)n các ph(cid:1133)(cid:1131)ng pháp mã hóa khóa công khai. Tuy nhiên v(cid:1199)n còn m(cid:1245)t s(cid:1237) h(cid:1189)n ch(cid:1219) làm gi(cid:1247)i h(cid:1189)n kh(cid:1191) n(cid:259)ng c(cid:1259)a các h(cid:1227) th(cid:1237)ng mã hóa khóa bí m(cid:1201)t. Hai v(cid:1193)n (cid:255)(cid:1221) gây h(cid:1189)n ch(cid:1219) chính là:

§ V(cid:813)n (cid:255)(cid:841) phân ph(cid:857)i khóa: tr(cid:1133)(cid:1247)c (cid:255)ây các h(cid:1227) th(cid:1237)ng mã hóa khóa bí m(cid:1201)t ch(cid:1259) y(cid:1219)u ch(cid:1229) s(cid:1265) d(cid:1257)ng trong quân (cid:255)(cid:1245)i và các t(cid:1241) ch(cid:1261)c ngo(cid:1189)i giao nên không có tr(cid:1251) ng(cid:1189)i gì khi thay (cid:255)(cid:1241)i khoá hay truy(cid:1221)n khóa, nh(cid:1133)ng ngày nay nhu c(cid:1195)u nhi(cid:1221)u ng(cid:1133)(cid:1249)i mu(cid:1237)n truy(cid:1221)n tin an toàn mà không c(cid:1195)n bi(cid:1219)t nhau qua Internet d(cid:1199)n (cid:255)(cid:1219)n vi(cid:1227)c thi(cid:1219)t l(cid:1201)p kênh truy(cid:1221)n an toàn gi(cid:1267)a hai ng(cid:1133)(cid:1249)i b(cid:1193)t k(cid:484) không kh(cid:1191) thi.

§ V(cid:813)n (cid:255)(cid:841) qu(cid:811)n lý khóa: trong h(cid:1227) th(cid:1237)ng có n ng(cid:1133)(cid:1249)i s(cid:1265) d(cid:1257)ng, gi(cid:1191) s(cid:1265) m(cid:1243)i ng(cid:1133)(cid:1249)i mu(cid:1237)n liên l(cid:1189)c an toàn v(cid:1247)i t(cid:1193)t c(cid:1191) m(cid:1233)i ng(cid:1133)(cid:1249)i thì c(cid:1195)n n(n-1)/2 khóa. Trong khi vi(cid:1227)c s(cid:1265) d(cid:1257)ng cho các m(cid:1257)c (cid:255)ích th(cid:1133)(cid:1131)ng m(cid:1189)i ngày nay t(cid:259)ng lên r(cid:1193)t nhanh, vi(cid:1227)c l(cid:1133)u tr(cid:1267) khóa tr(cid:1251) nên khó kh(cid:259)n.

Gi(cid:867)i thi(cid:847)u ph(cid:753)(cid:751)ng pháp DIFFIE-HELLMAN trong truy(cid:841)n khóa

(cid:264)ây là gi(cid:1191)i pháp (cid:255)(cid:1195)u tiên cho v(cid:1193)n (cid:255)(cid:1221) phân ph(cid:1237)i khóa c(cid:1259)a h(cid:1227) th(cid:1237)ng mã hóa khóa (cid:255)(cid:1237)i x(cid:1261)ng. Nghi th(cid:1261)c th(cid:1269)c hi(cid:1227)n nh(cid:1133) sau: (1) A, B công khai ch(cid:1233)n m(cid:1245)t nhóm nhân tu(cid:1195)n hoàn G và m(cid:1245)t ph(cid:1195)n t(cid:1265) g ˛ G

A ch(cid:1233)n m(cid:1245)t s(cid:1237) ng(cid:1199)u nhiên a, và g(cid:1265)i ga (cid:255)(cid:1219)n B B ch(cid:1233)n m(cid:1245)t s(cid:1237) ng(cid:1199)u nhiên b, và g(cid:1265)i gb (cid:255)(cid:1219)n A Sau khi nh(cid:1201)n gb, A tính (gb)a (cid:55)(cid:1133)(cid:1131)ng t(cid:1269), B tính (ga)b A, B cùng chia x(cid:1215) m(cid:1245)t ph(cid:1195)n chung là gab (cid:255)óng vai trò nh(cid:1133) khóa bí m(cid:1201)t gi(cid:1267)a h(cid:1233). N(cid:1219)u m(cid:1245)t k(cid:1215) t(cid:1193)n công bi(cid:1219)t (cid:255)(cid:1133)(cid:1255)c g, ga, gb thì c(cid:458)ng r(cid:1193)t khó xác (cid:255)(cid:1231)nh gab. Bài toán này có quan h(cid:1227) ch(cid:1211)t ch(cid:1217)(cid:3)(cid:255)(cid:1219)n bài toán logarit r(cid:1249)i r(cid:1189)c.

2.1.3. Mã khóa công khai (Public-Key Encyption):

2.1.3.1. Gi(cid:867)i thi(cid:847)u

Mã hóa khóa công dùng khóa cá nhân (cid:255)(cid:1133)(cid:1255)c gi(cid:1267) bí m(cid:1201)t (cid:255)(cid:1237)i v(cid:1247)i nh(cid:1267)ng ng(cid:1133)(cid:1249)i không quy(cid:1221)n và m(cid:1245)t khóa công (cid:255)(cid:1133)(cid:1255)c m(cid:1233)i ng(cid:1133)(cid:1249)i bi(cid:1219)t (cid:255)(cid:1219)n. C(cid:1191) khóa công và khóa bí m(cid:1201)t có quan h(cid:1227) toán h(cid:1233)c v(cid:1247)i nhau; d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c mã hóa v(cid:1247)i khóa công ch(cid:1229) có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c gi(cid:1191)i mã v(cid:1247)i khóa bí m(cid:1201)t và d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c ký v(cid:1247)i khoá bí m(cid:1201)t có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c ki(cid:1223)m tra v(cid:1247)i khóa công. Khóa công s(cid:1209)n có v(cid:1247)i b(cid:1193)t k(cid:484) ai. C(cid:1191) hai khóa là duy nh(cid:1193)t v(cid:1247)i phiên truy(cid:1221)n. Các thu(cid:1201)t toán m(cid:1201)t mã khóa công c(cid:458)ng (cid:255)(cid:1133)(cid:1255)c

9

bi(cid:1219)t (cid:255)(cid:1219)n nh(cid:1133) các thu(cid:1201)t toán b(cid:1193)t (cid:255)(cid:1237)i x(cid:1261)ng b(cid:1251)i vì m(cid:1245)t khóa (cid:255)(cid:1133)(cid:1255)c yêu c(cid:1195)u mã hóa d(cid:1267) li(cid:1227)u trong khi khóa kia (cid:255)(cid:1223) gi(cid:1191)i mã d(cid:1267) li(cid:1227)u.

Các thu(cid:1201)t toán m(cid:1201)t mã khóa công dùng kích th(cid:1133)(cid:1247)c vùng nh(cid:1247) c(cid:1237)(cid:3) (cid:255)(cid:1231)nh trong khi các thu(cid:1201)t toán m(cid:1201)t mã khóa bí m(cid:1201)t dùng vùng nh(cid:1247) có chi(cid:1221)u dài bi(cid:1219)n (cid:255)(cid:1241)i. Các thu(cid:1201)t toán khoá công không th(cid:1223) dùng d(cid:1267) li(cid:1227)u d(cid:1189)ng xích v(cid:1247)i các chu(cid:1243)i d(cid:1267) li(cid:1227)u theo cách các thu(cid:1201)t toán khoá bí m(cid:1201)t làm vì ch(cid:1229) các kh(cid:1237)i l(cid:1133)(cid:1255)ng d(cid:1267) li(cid:1227)u nh(cid:1235) có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c mã hóa. Do (cid:255)ó, các thao tác b(cid:1193)t (cid:255)(cid:1237)i x(cid:1261)ng không dùng cùng mô hình dòng d(cid:1267) li(cid:1227)u nh(cid:1133) các thao tác (cid:255)(cid:1237)i x(cid:1261)ng.

Hai nhóm (A và B) có th(cid:1223) dùng mã hóa khóa công nh(cid:1133) sau: (cid:264)(cid:1195)u tiên A phát sinh c(cid:1211)p khóa khóa công khai – khoá bí m(cid:1201)t. N(cid:1219)u B mu(cid:1237)n g(cid:1265)i cho A m(cid:1245)t thông (cid:255)i(cid:1227)p (cid:255)(cid:1133)(cid:1255)c mã hóa, B yêu c(cid:1195)u A khoá công khai. A g(cid:1265)i cho B khóa công khai c(cid:1259)a A trên m(cid:1189)ng không an toàn và B dùng khóa này (cid:255)(cid:1223) mã hóa thông (cid:255)i(cid:1227)p (n(cid:1219)u B nh(cid:1201)n khóa c(cid:1259)a A trên m(cid:1245)t kênh truy(cid:1221)n không an toàn nh(cid:1133) m(cid:1189)ng công c(cid:1245)ng , B ph(cid:1191)i xác nh(cid:1201)n v(cid:1247)i A r(cid:1205)ng B nh(cid:1201)n (cid:255)úng b(cid:1191)n sao khóa công khai c(cid:1259)a A). B g(cid:1265)i thông (cid:255)(cid:76)(cid:1227)p (cid:255)(cid:1133)(cid:1255)c mã hóa cho A và A gi(cid:1191)i mã b(cid:1205)ng khóa bí m(cid:1201)t c(cid:1259)a A.

Trong quá trình truy(cid:1221)n khoá công khai c(cid:1259)a A, m(cid:1245)t tác nhân không quy(cid:1221)n có th(cid:1223) ch(cid:1211)n khóa l(cid:1189)i. Ngoài ra, cùng tác nhân này có th(cid:1223) ch(cid:1211)n thông (cid:255)(cid:76)(cid:1227)p mã hóa t(cid:1263) B. Nh(cid:1133)ng tác nhân này không th(cid:1223) gi(cid:1191)i mã thông (cid:255)i(cid:1227)p v(cid:1247)i khóa công khai. Thông (cid:255)i(cid:1227)p ch(cid:1229) có th(cid:1223) gi(cid:1191)i mã v(cid:1247)i khóa bí m(cid:1201)t c(cid:1259)a A mà khóa này không (cid:255)(cid:1133)(cid:1255)c truy(cid:1221)n. A không dùng khóa bí m(cid:1201)t c(cid:1259)a A (cid:255)(cid:1223) mã hóa thông (cid:255)i(cid:1227)p h(cid:1239)i âm (cid:255)(cid:1219)n B vì b(cid:1193)t c(cid:1261) ai v(cid:1247)i khóa công khai có th(cid:1223) gi(cid:1191)i mã thông (cid:255)i(cid:1227)p (cid:255)(cid:1133)(cid:1255)c. N(cid:1219)u A mu(cid:1237)n g(cid:1265)i thông (cid:255)(cid:76)(cid:1227)p l(cid:1189)i cho B, A s(cid:1217) yêu c(cid:1195)u khóa công khai c(cid:1259)a B và mã hóa thông (cid:255)i(cid:1227)p dùng khóa công khai (cid:255)ó. K(cid:1219)(cid:3)(cid:255)ó, B gi(cid:1191)i mã thông (cid:255)i(cid:1227)p dùng khóa bí m(cid:1201)t t(cid:1133)(cid:1131)ng (cid:1261)ng c(cid:1259)a B.

Trong th(cid:1269)c t(cid:1219), A và B dùng mã hóa khóa công khai (b(cid:1193)t (cid:255)(cid:1237)i x(cid:1261)ng) (cid:255)(cid:1223) truy(cid:1221)n khóa bí m(cid:1201)t ((cid:255)(cid:1237)i x(cid:1261)ng) và dùng mã hóa khóa bí m(cid:1201)t cho ph(cid:1195)n còn l(cid:1189)i c(cid:1259)a phiên.

Mã hóa khoá công khai có không gian khóa hay ph(cid:1189)m vi các giá tr(cid:1231) có th(cid:1223) cho khóa l(cid:1247)n h(cid:1131)n, và do (cid:255)ó ít b(cid:1231)(cid:3)(cid:1191)nh h(cid:1133)(cid:1251)ng do t(cid:1193)n công vét c(cid:1189)n h(cid:1131)n khi th(cid:1265) m(cid:1233)i khóa có th(cid:1223). Khóa công khai d(cid:1225) phân ph(cid:1237)i b(cid:1251)i vì nó không ph(cid:1191)i b(cid:1191)o m(cid:1201)t. Các thu(cid:1201)t toán khóa công khai có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c dùng (cid:255)(cid:1223) t(cid:1189)o ch(cid:1267) ký s(cid:1237)(cid:3)(cid:255)(cid:1223) xác nh(cid:1201)n (cid:255)(cid:1231)nh danh ng(cid:1133)(cid:1249)i g(cid:1265)i d(cid:1267) li(cid:1227)u. Tuy nhiên, các thu(cid:1201)t toán khóa công khai thì r(cid:1193)t ch(cid:1201)m (so v(cid:1247)i các thu(cid:1201)t toán khóa bí m(cid:1201)t) và th(cid:1133)(cid:1249)ng không phù h(cid:1255)p khi mã hoá kh(cid:1237)i l(cid:1133)(cid:1255)ng d(cid:1267) li(cid:1227)u l(cid:1247)n. (cid:264)i(cid:1223)n hình, mã hóa khóa công (cid:255)(cid:1133)(cid:1255)c dùng mã hóa khóa và IV (cid:255)(cid:1133)(cid:1255)c dùng b(cid:1251)i thu(cid:1201)t toán khóa bí m(cid:1201)t. Sau khi khóa và IV (cid:255)(cid:1133)(cid:1255)c truy(cid:1221)n, k(cid:1219)(cid:3)(cid:255)ó mã hóa khóa bí m(cid:1201)t (cid:255)(cid:1133)(cid:1255)c dùng cho ph(cid:1195)n còn l(cid:1189)i c(cid:1259)a phiên.

RSA là m(cid:1245)t minh ho(cid:1189) n(cid:1241)i ti(cid:1219)ng c(cid:1259)a ph(cid:1133)(cid:1131)ng pháp mã hóa công khai. Tuy nhiên, RSA r(cid:1193)t ch(cid:1201)m trong khi yêu c(cid:1195)u b(cid:1191)o m(cid:1201)t ngày nay không ch(cid:1229)(cid:3)(cid:1261)ng d(cid:1257)ng trên m(cid:1189)ng có dây mà còn áp d(cid:1257)ng cho m(cid:1189)ng không dây và các thi(cid:1219)t b(cid:1231) c(cid:1195)m tay b(cid:1231) h(cid:1189)n ch(cid:1219) nhi(cid:1221)u v(cid:1221) kh(cid:1191) n(cid:259)ng l(cid:1133)u tr(cid:1267), n(cid:259)ng l(cid:1133)(cid:1255)ng, t(cid:1237)c (cid:255)(cid:1245) nên m(cid:1245)t ph(cid:1133)(cid:1131)ng pháp

10

khóa công m(cid:1247)i (ECC) (cid:255)ã ra (cid:255)(cid:1249)i vá (cid:255)áp (cid:1261)ng các yêu c(cid:1195)u này. C(cid:1191) hai ph(cid:1133)(cid:1131)ng pháp s(cid:1217)(cid:3)(cid:255)(cid:1133)(cid:1255)c trình bày chi ti(cid:1219)t (cid:1251) ph(cid:1195)n sau.

2.1.3.2. Phân lo(cid:809)i h(cid:847) th(cid:857)ng mã hóa khóa công:

Hi(cid:1227)n nay, ng(cid:1133)(cid:1249)i ta chia các h(cid:1227) th(cid:1237)ng m(cid:1201)t mã khóa công khai chu(cid:1197)n công nghi(cid:1227)p thành 3 lo(cid:1189)i d(cid:1269)a trên c(cid:1131) s(cid:1251) toán h(cid:1233)c và (cid:255)(cid:1245) khó (cid:255)(cid:1223) gi(cid:1191)i quy(cid:1219)t bài toán (cid:87)(cid:1133)(cid:1131)ng (cid:1261)ng:

q Bài toán phân tích ra th(cid:883)a s(cid:857) nguyên t(cid:857) (Integer Factorization Problem (cid:177) IFP)

Cho tr(cid:1133)(cid:1247)c n là tích c(cid:1259)a hai s(cid:1237) nguyên t(cid:1237) l(cid:1247)n, tìm hai s(cid:1237)(cid:3)(cid:255)ó. n =pq => Tìm p,q?

Các h(cid:1227) th(cid:1237)ng d(cid:1269)a trên IFP g(cid:1239)m RSA, Rabin Williams,…Nhi(cid:1221)u h(cid:1227) th(cid:1237)ng ch(cid:1261)ng t(cid:1235) là an toàn, ngh(cid:429)a là r(cid:1193)t khó khi phân tích n thành các th(cid:1263)a s(cid:1237) nguyên t(cid:1237).

q Bài toán logarit r(cid:869)i r(cid:809)c (Discrete Logarithm Problem (cid:177) DLP)

i £ n-1}, a là m(cid:1245)t ph(cid:1195)n t(cid:1265) sinh c(cid:1259)a G Cho n là s(cid:1237) nguyên t(cid:1237), G = {i: 1£ ngh(cid:429)a là b(cid:1201)c c(cid:1259)a a b(cid:1205)ng n-1. V(cid:1201)y ta có G = {ai: 0 £ i £ n – 2}.

V(cid:1247)i m(cid:1243)i ph(cid:1195)n t(cid:1265) y thu(cid:1245)c G, có duy nh(cid:1193)t m(cid:1245)t ph(cid:1195)n t(cid:1265) x thu(cid:1245)c G sao cho y = ax (mod n) ph(cid:1195)n t(cid:1265) x này (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là logarit r(cid:1249)i r(cid:1189)c c(cid:1259)a y, v(cid:1247)i c(cid:1131) s(cid:1237) a.

Và ta có phép bi(cid:1219)n (cid:255)(cid:1241)i logarit r(cid:1249)i r(cid:1189)c G vào G, dùng (cid:255)(cid:1223) mã hóa thông tin. (cid:264)(cid:1223) gi(cid:1191)i (cid:255)(cid:1133)(cid:1255)c bài toán logarit r(cid:1249)i r(cid:1189)c thì c(cid:1195)n tìm (cid:255)(cid:1133)(cid:1255)c x (0 £ x £ n – 1). Tuy nhiên, hi(cid:1227)n t(cid:1189)i v(cid:1199)n ch(cid:1133)a có ph(cid:1133)(cid:1131)ng pháp nào gi(cid:1191)i bài toán logarit r(cid:1249)i r(cid:1189)c hi(cid:1227)u qu(cid:1191).

M(cid:1245)t ví d(cid:1257) v(cid:1221) h(cid:1227) th(cid:1237)ng d(cid:1269)a trên DLP là h(cid:1227) th(cid:1237)ng DSA mà chính ph(cid:1259) hoa k(cid:484)(cid:3)(cid:255)ang s(cid:1265) d(cid:1257)ng.

q ECC (Elliptic Curve Cryptography): gi(cid:811)i quy(cid:839)t bài toán logarit r(cid:869)i r(cid:809)c trên (cid:255)(cid:753)(cid:869)ng cong Elip.

2.1.4. Ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)

2.1.4.1. Gi(cid:867)i thi(cid:847)u:

Các thu(cid:1201)t toán khóa công (cid:255)(cid:1133)(cid:1255)c dùng (cid:255)(cid:1223) t(cid:1189)o các ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) là m(cid:1245)t (cid:1261)ng d(cid:1257)ng ch(cid:1261)ng th(cid:1269)c quan tr(cid:1233)ng. Các ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) ch(cid:1261)ng th(cid:1269)c (cid:255)(cid:1231)nh danh ng(cid:1133)(cid:1249)i g(cid:1265)i và b(cid:1191)o v(cid:1227) s(cid:1269) toàn v(cid:1213)n d(cid:1267) li(cid:1227)u. Dùng khóa công khai (cid:255)(cid:1133)(cid:1255)c phát sinh

11

b(cid:1251)i A, ng(cid:1133)(cid:1249)i nh(cid:1201)n d(cid:1267) li(cid:1227)u c(cid:1259)a A có th(cid:1223) xác nh(cid:1201)n r(cid:1205)ng A (cid:255)ã g(cid:1265)i b(cid:1205)ng cách so sánh ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) v(cid:1247)i d(cid:1267) li(cid:1227)u và khoá công c(cid:1259)a A.

M(cid:1245)t ph(cid:1133)(cid:1131)ng pháp ch(cid:1267) ký g(cid:1239)m 2 thành ph(cid:1195)n: thu(cid:1201)t toán dùng (cid:255)(cid:1223) t(cid:1189)o ra ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) và thu(cid:1201)t toán (cid:255)(cid:1223) xác nh(cid:1201)n ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265). Và m(cid:1245)t ph(cid:1133)(cid:1131)ng pháp ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) là m(cid:1245)t b(cid:1245) n(cid:259)m (P, K, A, S, V) th(cid:1235)a các (cid:255)(cid:76)(cid:1221)u ki(cid:1227)n sau:

=

{true, false} là các hàm th(cid:1235)a (cid:255)(cid:76)(cid:1221)u ki(cid:1227)n: § P là t(cid:1201)p h(cid:1267)u h(cid:1189)n các thông (cid:255)(cid:76)(cid:1227)p. § A là t(cid:1201)p h(cid:1255)p h(cid:1267)u h(cid:1189)n các ch(cid:1267) ký có th(cid:1223) s(cid:1265) d(cid:1257)ng. § Không gian khóa K là t(cid:1201)p h(cid:1255)p h(cid:1267)u h(cid:1189)n các khóa có th(cid:1223) s(cid:1265) d(cid:1257)ng. § V(cid:1247)i m(cid:1243)i khóa k ˛ K, t(cid:1239)n t(cid:1189)i thu(cid:1201)t toán ch(cid:1267) ký và sigk ˛ S, và thu(cid:1201)t toán xác nh(cid:1201)n ch(cid:1267) ký t(cid:1133)(cid:1131)ng (cid:1261)ng verk ˛ V. V(cid:1247)i m(cid:1243)i thu(cid:1201)t toán sigk : P fi A, và P x A fi

true

y

sig

neáu

(

)

=

:

, AyPx

ver

, yx

false

y

sig

( ) x ( ) x

neáu

(cid:236) ˛ " ˛ " (cid:237) „ (cid:238)

Chu(cid:1197)n DSS c(cid:1259)a NIST b(cid:1203)t (cid:255)(cid:1195)u n(cid:259)m 1994 qui (cid:255)(cid:1231)nh các gi(cid:1191)i thu(cid:1201)t ch(cid:1267) ký (cid:255)(cid:1133)(cid:1255)c ch(cid:1193)p nh(cid:1201)n, chi(cid:1221)u dài khóa, chi(cid:1221)u dài thông (cid:255)i(cid:1227)p, … (cid:255)(cid:1191)m b(cid:1191)o tính b(cid:1191)o m(cid:1201)t cao áp d(cid:1257)ng vào các l(cid:429)nh v(cid:1269)c kinh t(cid:1219) th(cid:1133)(cid:1131)ng m(cid:1189)i, ngân hàng, an ninh, quân (cid:255)(cid:1245)i, chính ph(cid:1259), … DSS c(cid:458)ng công nh(cid:1201)n 3 gi(cid:1191)i thu(cid:1201)t ch(cid:1267) ký: DSA (Digital Signature Algorithm), RSA, ECDSA (Elipptic Curve Digital Signature Algorithm).

(cid:264)(cid:1223) dùng mã hóa khóa công khai cho vi(cid:1227)c ký s(cid:1237) m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p. (cid:264)(cid:1195)u tiên A áp d(cid:1257)ng thu(cid:1201)t toán b(cid:259)m cho thông (cid:255)(cid:76)(cid:1227)p (cid:255)(cid:1223) t(cid:1189)o mã khoá thông (cid:255)i(cid:1227)p. Mã khóa thông (cid:255)i(cid:1227)p là th(cid:1223) hi(cid:1227)n duy nh(cid:1193)t và mang tính cô (cid:255)(cid:1245)ng c(cid:1259)a d(cid:1267) li(cid:1227)u. K(cid:1219)(cid:3)(cid:255)ó A mã hóa mã khóa thông (cid:255)i(cid:1227)p v(cid:1247)i khóa bí m(cid:1201)t c(cid:1259)a A (cid:255)(cid:1223) t(cid:1189)o ra ch(cid:1267) ký cá nhân. Khi nh(cid:1201)n thông (cid:255)(cid:76)(cid:1227)p và ch(cid:1267) ký, B gi(cid:1191)i mã ch(cid:1267) ký dùng khóa công khai c(cid:1259)a A (cid:255)(cid:1223) ph(cid:1257)c h(cid:1239)i mã khóa thông (cid:255)i(cid:1227)p, và b(cid:259)m thông (cid:255)i(cid:1227)p dùng cùng hàm b(cid:259)m mà A dùng. N(cid:1219)u mã khóa thông (cid:255)i(cid:1227)p mà B làm trùng kh(cid:1247)p mã khóa thông (cid:255)i(cid:1227)p A g(cid:1265)i. B (cid:255)(cid:1191)m b(cid:1191)o là thông (cid:255)i(cid:1227)p này (cid:255)(cid:1219)n t(cid:1263) ch(cid:1259) nhân khóa bí m(cid:1201)t và thông (cid:255)i(cid:1227)p không b(cid:1231) s(cid:1265)a (cid:255)(cid:1241)i. L(cid:1133)u ý là ch(cid:1267) ký có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c ki(cid:1223)m ch(cid:1261)ng b(cid:1251)i b(cid:1193)t c(cid:1261) ng(cid:1133)(cid:1249)i nào do khóa công khai c(cid:1259)a ng(cid:1133)(cid:1249)i g(cid:1265)i thì ph(cid:1241) bi(cid:1219)n và nó (cid:255)(cid:1133)(cid:1255)c bao g(cid:1239)m trong (cid:255)(cid:1231)nh d(cid:1189)ng c(cid:1259)a ch(cid:1267) ký s(cid:1237). Ph(cid:1133)(cid:1131)ng pháp này không gi(cid:1267) bí m(cid:1201)t cho thông (cid:255)(cid:76)(cid:1227)p (cid:255)(cid:1237)i v(cid:1247)i nh(cid:1267)ng thông (cid:255)(cid:76)(cid:1227)p bí m(cid:1201)t thì thông (cid:255)i(cid:1227)p này ph(cid:1191)i (cid:255)(cid:1133)(cid:1255)c mã hóa (Hình 2.1). Khi g(cid:1265)i (cid:255)(cid:1219)n B tùy theo m(cid:1261)c (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p mà ta s(cid:1217) g(cid:1265)i b(cid:1191)n rõ hay b(cid:1191)n mã thông (cid:255)i(cid:1227)p.

12

Ngöôøi B

Ngöôøi A

Chaáp nhaän Chöõ kyù

Thoâng ñieäp M

Ñuùng

Sai

Haøm baêm H

Baèng?

Töø choái Chöõ kyù

Keânh truyeàn khoâng ñöôïc baûo veä

Giaùtrò Baêm MD

Giaù trò Baêm MD

Giaù trò Baêm MD

Thoâng ñieäp M

Thoâng ñieäp M

Haøm baêm H

Chöõ kyù

Giaûi maõ

Maõ hoùa

Chöõ kyù

Khoùa bí maät ( A)

Khoùa coâng khai (A)

Caëp khoùa (Ngöôøi A)

Ngöôøi B

Ngöôøi A

Chaáp nhaän Chöõ kyù

Thoâng ñieäp M

Ñuùng

Khoùa coâng khai (B)

Sai

Haømbaêm H

Maõ hoùa

Baèng?

Töø choái Chöõ kyù

Hình 2.1. Ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1265)i cùng b(cid:1191)n rõ thông (cid:255)i(cid:1227)p

Keânh truyeàn khoâng ñöôïc baûo veä

Giaù trò MD

Giaù trò MD

Giaù trò MD

Giaù trò maõ hoùa

Giaù trò maõ hoùa

Chöõ kyù

Haømbaêm H

Maõ hoùa

Khoùa bí maät ( A)

Giaûi maõ

Caëp khoùa (Ngöôøi B)

Caëp khoùa (Ngöôøi A)

Kh où a bí maät (B)

Khoùa coâng khai (A)

Hình 2.2. Ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1265)i cùng b(cid:1191)n mã c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p

2.1.4.2. Các (cid:255)(cid:831)c (cid:255)(cid:76)(cid:843)m c(cid:879)a ch(cid:887) ký (cid:255)(cid:76)(cid:847)n t(cid:885):

§ Tính xác nh(cid:821)n: m(cid:1245)t ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1191)m b(cid:1191)o r(cid:1205)ng chính ng(cid:1133)(cid:1249)i ký là ng(cid:1133)(cid:1249)i t(cid:1189)o ra nó. § Tính an toàn : không th(cid:1223) làm gi(cid:1191) ch(cid:1267) ký n(cid:1219)u không bi(cid:1219)t thông tin bí m(cid:1201)t (cid:255)(cid:1223) t(cid:1189)o ch(cid:1267) ký.

13

§ Không th(cid:843) dùng l(cid:809)i: m(cid:1245)t ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) không th(cid:1223) dùng cho m(cid:1245)t tài li(cid:1227)u khác. § Không th(cid:843) ph(cid:879) nh(cid:821)n: m(cid:1245)t khi (cid:255)ã ký ng(cid:1133)(cid:1249)i ký không th(cid:1223) ph(cid:1259) nh(cid:1201)n ch(cid:1267) ký (cid:255)ó. § Tính hi(cid:847)u qu(cid:811): ký và xác nh(cid:1201)n nhanh chóng, d(cid:1225) dàng.

2.2. Mã hóa (cid:255)(cid:1237)i x(cid:1261)ng RC6

2.2.1. Gi(cid:1247)i thi(cid:1227)u RC6

RC6 là m(cid:1245)t c(cid:1191)i ti(cid:1219)n (cid:255)áng k(cid:1223) c(cid:1259)a h(cid:1227) mã RC5 (RC5 (cid:255)(cid:1133)(cid:1255)c công b(cid:1237) vào 12/1994), (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) b(cid:1251)i Ronald Rivest (MIT, USA), cùng v(cid:1247)i Matt Robshaw, Ray Sidney, Yiqun Lisa Yin trong phòng nghiên c(cid:1261)u RSA nh(cid:1205)m (cid:255)áp (cid:1261)ng nh(cid:1267)ng yêu c(cid:1195)u m(cid:1247)i c(cid:1259)a AES (Advanced Encryption Standard) c(cid:1259)a NIST (cid:81)(cid:259)m 1998. RC6 là m(cid:1245)t trong n(cid:259)m ph(cid:1133)(cid:1131)ng pháp (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n (cid:255)(cid:1189)t chu(cid:1197)n AES c(cid:1259)a NIST ngày 2/10/2000.

RC6 là m(cid:1245)t thu(cid:1201)t toán (cid:255)(cid:1131)n gi(cid:1191)n, cài (cid:255)(cid:1211)t nhanh h(cid:1131)n so v(cid:1247)i nh(cid:1267)ng ph(cid:1133)(cid:1131)ng pháp AES khác. RC6 c(cid:458)ng d(cid:1269)a trên các vòng l(cid:1211)p v(cid:1247)i phép toán quay vòng ph(cid:1257) thu(cid:1245)c d(cid:1267) li(cid:1227)u (cid:255)(cid:1195)u vào. RC6 mã hóa m(cid:1245)t l(cid:1195)n 4 kh(cid:1237)i w bit thay vì 2 kh(cid:1237)i nh(cid:1133) RC5 (cid:255)(cid:1223) th(cid:1235)a mãn yêu c(cid:1195)u x(cid:1265) lý kh(cid:1237)i d(cid:1267) li(cid:1227)u (cid:255)(cid:1195)u vào dài 128 bit (4 words x 32 bits) chu(cid:1197)n c(cid:1259)a AES, và s(cid:1265) d(cid:1257)ng các phép tính tích các s(cid:1237) nguyên c(cid:458)ng nh(cid:1133) phép c(cid:1245)ng s(cid:1237) nguyên t(cid:1237).

2.2.2. Thu(cid:1201)t toán RC6

M(cid:1245)t phiên b(cid:1191)n RC6 (cid:255)(cid:1133)(cid:1255)c c(cid:1257) th(cid:1223) m(cid:1245)t cách chính xác v(cid:1247)i tên RC6-w/r/b (cid:1251) (cid:255)ó kích th(cid:1133)(cid:1247)c m(cid:1243)i t(cid:1263) là w bits (chi(cid:1221)u dài kh(cid:1237)i d(cid:1267) li(cid:1227)u), mã hóa bao g(cid:1239)m m(cid:1245)t s(cid:1237) vòng mã hóa không âm r, b là chi(cid:1221)u dài khóa mã hóa theo byte. RC6-w/r/b ho(cid:1189)t (cid:255)(cid:1245)ng trên các (cid:255)(cid:1131)n v(cid:1231) 4 t(cid:1263) w-bit dùng sáu phép tính c(cid:1131) b(cid:1191)n sau.

b: phép XOR trên t(cid:1263)ng bit c(cid:1259)a các t(cid:1263) w bit.

a + b : phép c(cid:1245)ng mod 2w. a – b : phép tr(cid:1263) mod 2w. a ¯ a . b : nhân mod 2w. a >>> b : quay trái t(cid:1263) a m(cid:1245)t l(cid:1133)(cid:1255)ng là lg(w) bit c(cid:1259)a t(cid:1263) b. a <<< b : quay ph(cid:1191)i t(cid:1263) a m(cid:1245)t l(cid:1133)(cid:1255)ng là lg(w) bit c(cid:1259)a t(cid:1263) b.

2.2.2.1. L(cid:821)p khóa:

L(cid:1201)p khóa c(cid:1259)a RC6-w/r/b c(cid:458)ng gi(cid:1237)ng v(cid:1247)i l(cid:1201)p khóa c(cid:1259)a RC5-w/r/b, ch(cid:1229) khác là (cid:255)(cid:1237)i v(cid:1247)i RC6-w/r/b, nhi(cid:1221)u t(cid:1263) xu(cid:1193)t phát t(cid:1263) khóa ng(cid:1133)(cid:1249)i dùng cung c(cid:1193)p (cid:255)(cid:1223) dùng trong mã hóa và gi(cid:1191)i mã. Ng(cid:1133)(cid:1249)i dùng cung c(cid:1193)p m(cid:1245)t khóa b bytes (0 £ b £ 255), các byte zero (cid:255)(cid:1133)(cid:1255)c thêm vào (cid:255)(cid:1223) cho chi(cid:1221)u dài khóa b(cid:1205)ng v(cid:1247)i m(cid:1245)t s(cid:1237) khác 0 các t(cid:1263)(cid:3)(cid:255)(cid:1195)y (cid:255)(cid:1259) (có ngh(cid:429)a là m(cid:1243)i t(cid:1263)(cid:3)(cid:255)(cid:1259) 4 byte). Các byte khoá này k(cid:1219)(cid:3)(cid:255)ó (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1133)a vào m(cid:1245)t m(cid:1191)ng c t(cid:1263) w-bit d(cid:1189)ng little-endian L[0],…, L[c-1]. Do (cid:255)ó,

14

byte (cid:255)(cid:1195)u tiên c(cid:1259)a khóa (cid:255)(cid:1133)(cid:1255)c l(cid:1133)u tr(cid:1267) nh(cid:1133) là byte v(cid:1231) trí th(cid:1193)p trong L[0],… và L[c- 1] (cid:255)(cid:1133)(cid:1255)c làm (cid:255)(cid:1195)y v(cid:1247)i các byte 0 n(cid:1219)u c(cid:1195)n thi(cid:1219)t (Chú ý n(cid:1219)u b = 0 thì c = 1 và L[0] = 0). 2r + 4 t(cid:1263) (m(cid:1243)i t(cid:1263) w bit) (cid:255)(cid:1133)(cid:1255)c d(cid:1199)n xu(cid:1193)t t(cid:1263) khóa này và l(cid:1133)u tr(cid:1267) trong m(cid:1191)ng S[0, 1, …, 2r + 3]. M(cid:1191)ng này (cid:255)(cid:1133)(cid:1255)c dùng cho c(cid:1191) mã hóa và gi(cid:1191)i mã. Các giá tr(cid:1231) c(cid:1259)a h(cid:1205)ng s(cid:1237) P32 = 0xB7E15163, Q32 = 0x9E3779B9.

Th(cid:879) t(cid:877)c th(cid:889)c hi(cid:847)n:

S[0] = Pw For i=1 to 2r+3 do S[i] = S[i-1] + Qw

A = B = i = j = 0

v = 3 x max{c, 3r + 4} For s=1 to v do {

A = S[i] = (S[i] + A + B) <<<3 B = L[j] = (L[j] +A + B) <<< (A + B) i = (i + 1) mod (2r + 4) j = (j + 1) mod c }

2.2.2.2. Mã hóa và gi(cid:811)i mã :

RC6 làm vi(cid:1227)c v(cid:1247)i 4 thanh ghi A, B, C, D m(cid:1243)i thanh ghi dài w-bit ch(cid:1261)a (cid:255)(cid:1195)u vào là b(cid:1191)n rõ, và (cid:255)(cid:1195)u ra là b(cid:1191)n mã (cid:1251) cu(cid:1237)i quá trình mã hóa. Sau khi phát sinh khóa m(cid:1251) r(cid:1245)ng, d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c chia thành 4 kh(cid:1237)i cùng chi(cid:1221)u dài w-bit ký hi(cid:1227)u A, B, C, D. Th(cid:1269)c hi(cid:1227)n r vòng mã hóa trên các kh(cid:1237)i này, m(cid:1243)i vòng s(cid:1265) d(cid:1257)ng 2 khóa m(cid:1251) r(cid:1245)ng. Sau m(cid:1243)i vòng l(cid:1211)p, v(cid:1231) trí các kh(cid:1237)i (cid:255)(cid:1133)(cid:1255)c bi(cid:1219)n (cid:255)(cid:1241)i t(cid:1263) (A, B, C, D) thành (B, C, D, A). Cu(cid:1237)i cùng, k(cid:1219)t qu(cid:1191) là (A, B, C, D). Quá trình gi(cid:1191)i mã làm ng(cid:1133)(cid:1255)c l(cid:1189)i do RC6 là ph(cid:1133)(cid:1131)ng pháp mã (cid:255)(cid:1237)i x(cid:1261)ng.

Th(cid:879) t(cid:877)c th(cid:889)c hi(cid:847)n :

q Mã hóa

B = B + S[0] D = D + S[1]

For i=1 to r do {

t = ( B x ( 2B + 1 )) <<< lg(w) u = ( D x ( 2D + 1 )) <<< lg(w) A = (( A ¯ t) <<< u) + S[ 2i ] C = (( C ¯ u) <<< t) + S[ 2i+1 ]

15

(A, B, C, D) = (B, C, D, A)

} A = A + S[ 2r + 2 ] C = C + S[ 2r + 3 ]

q Gi(cid:811)i mã

C = C – S [ 2r + 3 ] A = A – S [ 2r + 2 ]

For i = r downto 1 do {

u

(A, B, C, D) = (D, A, B, C) u = ( D x ( 2D + 1 )) <<< lg(w) t = ( B x ( 2B + 1 )) <<< lg(w) C = ((C – S [2i + 1] ) >>> t) ¯ A = ((A – S[2i] ) >>> u ) ¯ t }

D = D – S[1] B = B – S[0]

2.2.3. Nghi th(cid:1261)c RC6

(cid:264)(cid:1223) s(cid:1265) d(cid:1257)ng h(cid:1227) th(cid:1237)ng mã hoá khóa (cid:255)(cid:1237)i x(cid:1261)ng RC6 ta làm theo các b(cid:1133)(cid:1247)c sau:

Ng(cid:1133)(cid:1249)i dùng cung c(cid:1193)p khóa (g(cid:1233)i là khóa ng(cid:1133)(cid:1249)i dùng) g(cid:1239)m b byte. L(cid:1201)p khóa vòng S, thêm các byte 0 (cid:255)(cid:1223) t(cid:1241)ng s(cid:1237) byte c(cid:1259)a khóa ng(cid:1133)(cid:1249)i § § dùng là b(cid:1245)i s(cid:1237) c(cid:1259)a w-bit/8

(cid:264)(cid:815)u vào : Khoá ng(cid:1133)(cid:1249)i dùng cung c(cid:1193)p b byte (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1133)a vào m(cid:1191)ng c t(cid:1263)

L[0], L[1],…, L[c-1]. S(cid:1237) vòng r. Khóa vòng w-bit S[0,…, r+3]. (cid:264)(cid:815)u ra:

q Mã hóa:(cid:3)(cid:255)(cid:1133)a b(cid:1191)n rõ vào và mã hóa k(cid:1219)t qu(cid:1191)(cid:3)(cid:255)(cid:1133)(cid:1255)c b(cid:1191)n mã.

(cid:264)(cid:815)u vào : V(cid:259)n b(cid:1191)n rõ ch(cid:1261)a trong 4 thanh ghi w-bit A, B, C, D

S(cid:1237) vòng r. Khoá vòng w-bit S[0, 1, …, 2r+3]. (cid:264)(cid:815)u ra : V(cid:259)n b(cid:1191)n mã (cid:255)(cid:1133)(cid:1255)c l(cid:1133)u tr(cid:1267) trong 4 thanh ghi A, B, C, D.

q Gi(cid:811)i mã: làm ng(cid:1133)(cid:1255)c l(cid:1189)i (cid:255)(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c b(cid:1191)n rõ.

(cid:264)(cid:815)u vào : B(cid:1191)n mã (cid:255)(cid:1133)(cid:1255)c l(cid:1133)u tr(cid:1267) trong 4 thanh ghi (cid:255)(cid:1195)u vào A, B, C, D.

16

S(cid:1237) vòng r. Khóa vòng w-bit S[0, 1, …, 2r+3].

(cid:264)(cid:815)u ra : B(cid:1191)n rõ l(cid:1133)u tr(cid:1267) trong A, B, C, D.

2.2.4. (cid:264)ánh giá RC6

RC6 là gi(cid:1191)i thu(cid:1201)t (cid:255)(cid:1131)n gi(cid:1191)n d(cid:1225) cài (cid:255)(cid:1211)t nh(cid:1193)t trong các ph(cid:1133)(cid:1131)ng pháp AES và t(cid:1237)c (cid:255)(cid:1245) th(cid:1269)c thi cao trên các b(cid:1245) vi x(cid:1265) lý 32 bit; tuy nhiên, hi(cid:1227)u n(cid:259)ng không b(cid:1205)ng 4 gi(cid:1191)i thu(cid:1201)t AES còn l(cid:1189)i (Mars, Rijindael, Twofish, Sherpen) khi ho(cid:1189)t (cid:255)(cid:1245)ng trên b(cid:1245) vi x(cid:1265) lý 8-bit và m(cid:1245)t s(cid:1237) b(cid:1245) x(cid:1265) lý 64 bit (do không h(cid:1243) tr(cid:1255) t(cid:1237)t phép nhân 64 bit). V(cid:1221)(cid:3)(cid:255)(cid:1245) an toàn b(cid:1191)o m(cid:1201)t thì không chênh l(cid:1227)ch so v(cid:1247)i 4 gi(cid:1191)i thu(cid:1201)t AES còn l(cid:1189)i.

2.3. Ph(cid:1133)(cid:1131)ng pháp mã hóa khóa công RSA

2.3.1. Gi(cid:1247)i thi(cid:1227)u

RSA là h(cid:1227) th(cid:1237)ng m(cid:1201)t mã dùng khóa công (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) b(cid:1251)i các giáo s(cid:1133) (cid:1251) vi(cid:1227)n công ngh(cid:1227) MIT (USA): Ronald Rivest, Adi Sharmir, Leonard Adleman (cid:81)(cid:259)m 1977 cho RSA Data Security inc. RSA là 3 ch(cid:1267) cái (cid:255)(cid:1195)u c(cid:1259)a tên 3 giáo (cid:86)(cid:1133) (Rivest, Sharmir, Adleman). H(cid:1227) th(cid:1237)ng mã hóa này dùng cho mã hóa, gi(cid:1191)i mã và mô hình ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265).

Thu(cid:1201)t toán RSA (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) d(cid:1269)a trên (cid:255)(cid:1245) khó c(cid:1259)a bài toán phân tích ra th(cid:1263)a s(cid:1237) nguyên t(cid:1237) trên t(cid:1201)p s(cid:1237) nguyên Zn. Cho s(cid:1237) nguyên d(cid:1133)(cid:1131)ng n = p.q v(cid:1247)i p,q là 2 s(cid:1237) nguyên t(cid:1237). N(cid:1219)u bi(cid:1219)t (cid:255)(cid:1133)(cid:1255)c n mu(cid:1237)n tìm p, q thì ph(cid:1191)i gi(cid:1191)i bài toán phân tích ra th(cid:1263)a s(cid:1237) nguyên t(cid:1237)(cid:3)(cid:255)òi h(cid:1235)i ph(cid:1191)i th(cid:1269)c hi(cid:1227)n m(cid:1245)t s(cid:1237) l(cid:1133)(cid:1255)ng các phép tính vô cùng l(cid:1247)n n(cid:1219)u n,p,q (cid:255)(cid:1259) l(cid:1247)n (ít nh(cid:1193)t là 100 ký s(cid:1237)); hi(cid:1227)n t(cid:1189)i, (cid:255)(cid:76)(cid:1221)u này là không kh(cid:1191) thi. Tuy nhiên, trong (cid:87)(cid:1133)(cid:1131)ng lai v(cid:1247)i s(cid:1269) ra (cid:255)(cid:1249)i c(cid:1259)a các công ngh(cid:1227) máy tính c(cid:1269)c m(cid:1189)nh thì bài toán phân tích ra th(cid:1263)a s(cid:1237) nguyên t(cid:1237) v(cid:1199)n có th(cid:1223) gi(cid:1191)i (cid:255)(cid:1133)(cid:1255)c.

2.3.2. Thu(cid:1201)t toán RSA

Thu(cid:1201)t toán RSA ch(cid:1259) y(cid:1219)u d(cid:1269)a trên 3 s(cid:1237) nguyên d(cid:1133)(cid:1131)ng v(cid:1247)i

e : s(cid:1237) m(cid:458) công khai d : s(cid:1237) m(cid:458) cá nhân n : h(cid:1205)ng s(cid:1237) c(cid:1259)a ph(cid:1133)(cid:1131)ng pháp

C(cid:1211)p (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là khóa công khai, còn c(cid:1211)p (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là khóa cá nhân.

(cid:38)(cid:751) s(cid:871) toán h(cid:853)c c(cid:879)a h(cid:847) mã RSA là (cid:255)(cid:851)nh lý Euler: (cid:179)N(cid:839)u n và a là 2 s(cid:857) j (n) = 1(mod n); trong (cid:255)ó, j (n) là s(cid:857) s(cid:857) nguyên nguyên t(cid:857) cùng nhau, ta có: a trong (cid:255)o(cid:809)n [1, n] và nguyên t(cid:857) cùng nhau v(cid:867)i n (cid:180)

17

Ta có : N(cid:1219)u n là s(cid:1237) nguyên t(cid:1237), j (n) = n – 1. N(cid:1219)u n là tích c(cid:1259)a 2 s(cid:1237) nguyên t(cid:1237) p và q : n=p.q thì

j (n) = (p – 1)(q – 1)

Gi(cid:1191) s(cid:1265) thông (cid:255)(cid:76)(cid:1227)p s(cid:1237) m là m(cid:1245)t s(cid:1237) nguyên trong (cid:255)o(cid:1189)n [2, n – 1]; m s(cid:1217) (cid:255)(cid:1133)(cid:1255)c mã hóa b(cid:1205)ng khóa công khai thành s(cid:1237) nguyên c: c = me (mod n)

N(cid:1219)u s(cid:1237) nguyên d, trong khóa cá nhân th(cid:1235)a (cid:255)(cid:76)(cid:1221)u ki(cid:1227)n

e.d = 1(mod j (n)) thì t(cid:1239)n t(cid:1189)i m(cid:1245)t s(cid:1237) nguyên k sao cho: e.d = k. j (n) + 1.

Và cd (mod n) = (me (modn))d (mod n)

= med (mod n) = (mk.j (n) (mod n)) ( m (mod n)) = (1k (mod n)) (m (mod n)) = m.

Có th(cid:1223) tìm l(cid:1189)i b(cid:1191)n thông (cid:255)(cid:76)(cid:1227)p m t(cid:1263) khóa cá nhân và b(cid:1191)n mã c theo công th(cid:1261)c : m = cd (mod n)

2.3.3. Nghi th(cid:1261)c RSA

1. T(cid:1189)o ng(cid:1199)u nhiên 2 s(cid:1237) nguyên t(cid:1237) p,q phân bi(cid:1227)t, g(cid:1195)n nhau, và r(cid:1193)t l(cid:1247)n (có s(cid:1237) ký s(cid:1237) ít nh(cid:1193)t là 100). Và tính :

n = p.q j (n) = (p – 1)(q – 1)

2. Ch(cid:1233)n ng(cid:1199)u nhiên m(cid:1245)t s(cid:1237) e, 1< e < j (n), sao cho e nguyên t(cid:1237) cùng nhau v(cid:1247)i j (n). 3. Tính s(cid:1237) ngh(cid:1231)ch (cid:255)(cid:1191)o d c(cid:1259)a e (cid:255)(cid:1237)i v(cid:1247)i j (n): 1 < d < j (n), ed = 1(mod

j (n)) (dùng thu(cid:1201)t toán Eulid m(cid:1251) r(cid:1245)ng).

q Mã hóa: B mu(cid:1237)n g(cid:1265)i thông (cid:255)(cid:76)(cid:1227)p m cho A v(cid:1247)i yêu c(cid:1195)u c(cid:1195)n b(cid:1191)o m(cid:1201)t

thông tin. § B yêu c(cid:1195)u A g(cid:1265)i khóa công khai . § B dùng khóa công khai này , mã hóa thông (cid:255)i(cid:1227)p m thành c theo công th(cid:1261)c c = me (mod n). § B g(cid:1265)i c cho A. q Gi(cid:811)i mã: dùng khóa cá nhân , A tính m = cd (mod n), (cid:255)(cid:1223) có nguyên b(cid:1191)n m t(cid:1263) b(cid:1191)n mã c.

18

2.3.4. (cid:264)ánh giá RSA

RSA (cid:255)(cid:1131)n gi(cid:1191)n, d(cid:1225) hi(cid:1223)u, d(cid:1225) cài (cid:255)(cid:1211)t.

Hi(cid:1227)u su(cid:1193)t ho(cid:1189)t (cid:255)(cid:1245)ng: RSA ch(cid:1189)y ch(cid:1201)m do vi(cid:1227)c phát sinh khóa công khai - khoá bí m(cid:1201)t hay quá trình mã hóa - gi(cid:1191)i mã t(cid:1237)n nhi(cid:1221)u th(cid:1249)i gian vì ph(cid:1191)i tính toán trên các s(cid:1237) nguyên d(cid:1133)(cid:1131)ng c(cid:1269)c l(cid:1247)n, có chi(cid:1221)u dài v(cid:1133)(cid:1255)t quá kh(cid:1191) n(cid:259)ng ch(cid:1261)a c(cid:1259)a thanh ghi nên ph(cid:1191)i gi(cid:1191) l(cid:1201)p, th(cid:1269)c hi(cid:1227)n l(cid:1189)i nhi(cid:1221)u l(cid:1195)n và s(cid:1265) d(cid:1257)ng nhi(cid:1221)u (cid:255)(cid:1219)n b(cid:1245) x(cid:1265) lý. Do (cid:255)ó, RSA không (cid:255)(cid:1133)(cid:1255)c s(cid:1265) d(cid:1257)ng vào m(cid:1257)c (cid:255)ích mã hóa các kh(cid:1237)i l(cid:1133)(cid:1255)ng d(cid:1267) li(cid:1227)u l(cid:1247)n mà ch(cid:1229)(cid:3)(cid:1261)ng d(cid:1257)ng trong ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1223) mã hóa thông (cid:255)i(cid:1227)p ng(cid:1203)n (cid:255)ã qua hàm b(cid:259)m, gi(cid:1191)i thu(cid:1201)t trao (cid:255)(cid:1241)i khóa bí m(cid:1201)t (khóa dùng cho các h(cid:1227) th(cid:1237)ng mã hóa (cid:255)(cid:1237)i x(cid:1261)ng – hay khóa riêng), hay ch(cid:1229) mã hóa m(cid:1245)t l(cid:1133)(cid:1255)ng d(cid:1267) li(cid:1227)u nh(cid:1235).

Tính b(cid:1191)o m(cid:1201)t: nh(cid:1133)(cid:3)(cid:255)ã trình bày (cid:1251) trên, (cid:255)(cid:1245) an toàn c(cid:1259)a RSA d(cid:1269)a trên bài toán phân tích ra th(cid:1263)a s(cid:1237) nguyên t(cid:1237). Do (cid:255)ó, chi(cid:1221)u dài s(cid:1237) càng l(cid:1247)n thì càng khó phân tích ra th(cid:1263)a s(cid:1237) nguyên t(cid:1237).

2.4. H(cid:1227) mã hóa ECC (Elliptic Curve Cryptography)

2.4.1. Gi(cid:1247)i thi(cid:1227)u

ECC (cid:255)(cid:1195)u tiên (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1221) xu(cid:1193)t (cid:255)(cid:1245)c l(cid:1201)p nhau b(cid:1251)i Victor Miller và Neal Koblitz n(cid:259)m 1985 và (cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) là m(cid:1245)t l(cid:1269)a ch(cid:1233)n cùng v(cid:1247)i các thu(cid:1201)t toán khóa công khác (RSA, DSA, DH). ECC có cùng m(cid:1261)c (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t nh(cid:1133)ng v(cid:1247)i kích th(cid:1133)(cid:1247)c khóa nh(cid:1235) h(cid:1131)n làm cho vi(cid:1227)c tính toán ít h(cid:1131)n, s(cid:1265) d(cid:1257)ng n(cid:259)ng l(cid:1133)(cid:1255)ng th(cid:1193)p h(cid:1131)n, c(cid:458)ng nh(cid:1133) ti(cid:1219)t ki(cid:1227)m b(cid:259)ng thông và b(cid:1245) nh(cid:1247) (cid:75)(cid:1131)n, chính nh(cid:1267)ng (cid:255)(cid:1211)c (cid:255)(cid:76)(cid:1223)m này mà ECC tr(cid:1251) nên thu hút (cid:255)(cid:1237)i v(cid:1247)i m(cid:1189)ng không dây và các thi(cid:1219)t b(cid:1231) c(cid:1195)m tay, các máy ch(cid:1259) Web an toàn, th(cid:1215) thông minh, (cid:255)(cid:76)(cid:1227)n tho(cid:1189)i t(cid:1219) bào, và máy nh(cid:1203)n tin,… mà các ph(cid:1133)(cid:1131)ng pháp mã hóa khóa công khai khác không th(cid:1223)(cid:3)(cid:255)áp (cid:1261)ng (cid:255)(cid:1133)(cid:1255)c.

ECC (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) d(cid:1269)a trên (cid:255)(cid:1245) khó trong vi(cid:1227)c gi(cid:1191)i bài toán logarit r(cid:1249)i r(cid:1189)c trên (cid:255)(cid:1133)(cid:1249)ng cong Elip (ECDLP_ Elliptic Curve Discrete Logarithm Problem). ECC (cid:255)(cid:1133)(cid:1255)c dùng trong truy(cid:1221)n khóa, ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265), ch(cid:1261)ng th(cid:1269)c, truy(cid:1221)n thông (cid:255)i(cid:1227)p, …

2.4.2. M(cid:1245)t s(cid:1237) khái ni(cid:1227)m

Các tính toán trên s(cid:1237) th(cid:1269)c th(cid:1133)(cid:1249)ng r(cid:1193)t ch(cid:1201)m và t(cid:1189)o ra k(cid:1219)t qu(cid:1191) không chính xác do vi(cid:1227)c làm tròn s(cid:1237) th(cid:1269)c. Các (cid:1261)ng d(cid:1257)ng trên mã hóa c(cid:1195)n tính toán nhanh và chính xác nên các tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n (cid:255)(cid:1133)(cid:1255)c quan tâm nhi(cid:1221)u.

M(cid:1245)t trong nh(cid:1267)ng (cid:255)(cid:76)(cid:1223)m khác bi(cid:1227)t quan tr(cid:1233)ng gi(cid:1267)a (cid:255)(cid:1133)(cid:1249)ng cong Elip phân b(cid:1237) trên tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n và trên tr(cid:1133)(cid:1249)ng s(cid:1237) th(cid:1269)c là s(cid:1237) h(cid:1267)u h(cid:1189)n các (cid:255)(cid:76)(cid:1223)m c(cid:1259)a nó, là m(cid:1245)t thu(cid:1245)c tính mong mu(cid:1237)n trong m(cid:1257)c tiêu mã hóa. Do các (cid:255)(cid:1133)(cid:1249)ng cong này

19

ch(cid:1261)a m(cid:1245)t s(cid:1237)(cid:3) (cid:255)(cid:76)(cid:1223)m r(cid:1249)i r(cid:1189)c, nên khi n(cid:1237)i các (cid:255)(cid:76)(cid:1223)m l(cid:1189)i v(cid:1247)i nhau thì (cid:255)(cid:1239) th(cid:1231) này không rõ ràng là (cid:255)(cid:1133)(cid:1249)ng cong. Các quy lu(cid:1201)t (cid:255)(cid:1189)i s(cid:1237) khi tính toán có th(cid:1223)(cid:3) (cid:255)(cid:1133)(cid:1255)c chuy(cid:1223)n v(cid:1221) các (cid:255)(cid:1133)(cid:1249)ng cong Elip trên tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n. Ngoài ra, các tính toán trên tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n không ch(cid:1261)a l(cid:1243)i làm tròn – m(cid:1245)t (cid:255)(cid:1211)c tính quan tr(cid:1233)ng yêu c(cid:1195)u cho m(cid:1245)t h(cid:1227) th(cid:1237)ng mã hóa.

2.4.2.1. Tr(cid:753)(cid:869)ng h(cid:887)u h(cid:809)n

q Khái ni(cid:1227)m

M(cid:1245)t tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n bao g(cid:1239)m m(cid:1245)t t(cid:1201)p h(cid:1267)u h(cid:1189)n các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng g(cid:1233)i là các ph(cid:1195)n t(cid:1265) tr(cid:1133)(cid:1249)ng cùng v(cid:1247)i vi(cid:1227)c (cid:255)(cid:1231)nh ngh(cid:429)a hai phép toán: phép c(cid:1245)ng và phép nhân. Tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n có q ph(cid:1195)n t(cid:1265) n(cid:1219)u và ch(cid:1229) n(cid:1219)u q là l(cid:458)y th(cid:1263)a c(cid:1259)a m(cid:1245)t s(cid:1237) nguyên t(cid:1237) và t(cid:1133)(cid:1131)ng (cid:1261)ng v(cid:1247)i m(cid:1243)i q s(cid:1217) có m(cid:1245)t tr(cid:1133)(cid:1249)ng. Tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n ch(cid:1261)a q ph(cid:1195)n t(cid:1265)(cid:3)(cid:255)(cid:1133)(cid:1255)c ký hi(cid:1227)u là Fq.

m v(cid:1247)i q = 2m v(cid:1247)i m b(cid:1193)t k(cid:484) (m ‡ 1) g(cid:1233)i là các

Có hai lo(cid:1189)i tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n Fq (cid:255)(cid:1133)(cid:1255)c dùng: (i)

(ii) Fp v(cid:1247)i q = p, p là s(cid:1237) nguyên t(cid:1237) l(cid:1215) và (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là các tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n s(cid:1237) nguyên t(cid:1237). Tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n F2 tr(cid:1133)(cid:1249)ng nh(cid:1231) phân h(cid:1267)u h(cid:1189)n.

q Các tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n

(cid:216) Tr(cid:753)(cid:869)ng h(cid:887)u h(cid:809)n Fp

Tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n Fp là tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n s(cid:1237) nguyên t(cid:1237) ch(cid:1261)a p ph(cid:1195)n t(cid:1265). Ch(cid:1229) có m(cid:1245)t tr(cid:1133)(cid:1249)ng Fp cho m(cid:1243)i s(cid:1237) nguyên t(cid:1237) l(cid:1215) p, nh(cid:1133)ng có nhi(cid:1221)u cách khác nhau bi(cid:1223)u di(cid:1225)n các ph(cid:1195)n t(cid:1265) c(cid:1259)a Fp, lu(cid:1201)n v(cid:259)n này s(cid:1265) d(cid:1257)ng cách bi(cid:1223)u di(cid:1225)n Fp là t(cid:1201)p các s(cid:1237) nguyên : {0, 1, .., p – 1} v(cid:1247)i phép c(cid:1245)ng và phép nhân (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a nh(cid:1133) sau: (cid:1167)r (mod p). § Phép c(cid:1245)ng: N(cid:1219)u a, b˛ § Phép nhân: N(cid:1219)u a, b˛ (cid:1167)Fp thì a + b ” (cid:1167)Fp thì a.b ” (cid:1167)s (mod p).

Ngoài ra, ta còn (cid:255)(cid:1231)nh ngh(cid:429)a ngh(cid:1231)ch (cid:255)(cid:1191)o c(cid:1259)a phép c(cid:1245)ng và phép nhân gi(cid:1267)a các ph(cid:1195)n t(cid:1265) tr(cid:1133)(cid:1249)ng nh(cid:1133) sau:

§ Phép c(cid:1245)ng ngh(cid:1231)ch (cid:255)(cid:1191)o: N(cid:1219)u a ˛ Fp, thì phép c(cid:1245)ng ngh(cid:1231)ch (cid:255)(cid:1191)o (- a ) c(cid:1259)a a trong tr(cid:1133)(cid:1249)ng Fp là nghi(cid:1227)m duy nh(cid:1193)t cho ph(cid:1133)(cid:1131)ng trình a + x ” 0 (mod p).

§ Phép nhân ngh(cid:1231)ch (cid:255)(cid:1191)o: N(cid:1219)u a ˛ Fp, a „ 0 thì phép nhân ngh(cid:1231)ch (cid:255)(cid:1191)o a–1 c(cid:1259)a a trong tr(cid:1133)(cid:1249)ng Fp, là nghi(cid:1227)m duy nh(cid:1193)t cho ph(cid:1133)(cid:1131)ng trình a.x ” 1 (mod p) (dùng thu(cid:1201)t toán Eulid m(cid:1251) r(cid:1245)ng (cid:255)(cid:1223) tính a–1).

Phép chia và phép tr(cid:1263)(cid:3)(cid:255)(cid:1133)(cid:1255)c bi(cid:1223)u di(cid:1225)n qua phép c(cid:1245)ng ngh(cid:1231)ch (cid:255)(cid:1191)o và phép nhân ngh(cid:1231)ch (cid:255)(cid:1191)o: (a – b) mod p là a + (– b) mod p và a / b mod p là a.(b–1) mod p. Tr(cid:1133)(cid:1249)ng Fp (cid:255)(cid:1133)(cid:1255)c dùng nên th(cid:1235)a :

20

m

{112, 128, 160, 192, 224, 256, 384, 521} [log2p] ˛

(cid:216) Tr(cid:753)(cid:869)ng h(cid:887)u h(cid:809)n F2

m là tr(cid:1133)(cid:1249)ng nh(cid:1231) phân h(cid:1267)u h(cid:1189)n ch(cid:1261)a 2m ph(cid:1195)n t(cid:1265). Ch(cid:1229) có m duy nh(cid:1193)t cho m(cid:1243)i l(cid:458)y th(cid:1263)a 2m v(cid:1247)i m ‡ 1. Có nhi(cid:1221)u m(cid:1245)t tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n F2 m m. Trong lu(cid:1201)n v(cid:259)n này, tr(cid:1133)(cid:1249)ng F2 cách bi(cid:1223)u di(cid:1225)n các ph(cid:1195)n t(cid:1265) c(cid:1259)a tr(cid:1133)(cid:1249)ng F2 (cid:255)(cid:1133)(cid:1255)c bi(cid:1223)u di(cid:1225)n d(cid:1133)(cid:1247)i d(cid:1189)ng t(cid:1201)p các (cid:255)a th(cid:1261)c nh(cid:1231) phân b(cid:1201)c nh(cid:1235) h(cid:1131)n b(cid:1205)ng (m – 1):

Tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n F2

{0, 1}} {am-1xm–1 + am-2xm–2 + … + a1x + a0, ai ˛

m, v(cid:1247)i

v(cid:1247)i phép c(cid:1245)ng và phép nhân (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a d(cid:1133)(cid:1247)i d(cid:1189)ng m(cid:1245)t (cid:255)a th(cid:1261)c nh(cid:1231) phân t(cid:1237)i gi(cid:1191)n f(x) b(cid:1201)c m là m(cid:1245)t (cid:255)a th(cid:1261)c rút g(cid:1233)n nh(cid:1133) sau:

§ Phép c(cid:1245)ng: N(cid:1219)u a = am-1xm–1 + am-2xm–2 + … + a1x + a0, m, thì a + b = r trong tr(cid:1133)(cid:1249)ng F2 bm-1xm–1 + bm-2xm–2 + … + b1x + b0 ˛ F2 r = rm-1xm–1 + rm-2xm–2 + … + r1x + r0 v(cid:1247)i ri ” ai + bi (mod 2).

m, v(cid:1247)i

m, thì a.b = s trong tr(cid:1133)(cid:1249)ng F2

§ Phép nhân: N(cid:1219)u a = am-1xm–1 + am-2xm–2 + … + a1x + a0,

bm-1xm–1 + bm-2xm–2 + … + b1x + b0 ˛ F2 s = sm-1xm–1 + sm-2xm–2 + … + s1x + s0 là ph(cid:1195)n d(cid:1133) khi (cid:255)a th(cid:1261)c a.b / f(x) v(cid:1247)i t(cid:1193)t c(cid:1191) h(cid:1227) s(cid:1237)(cid:3)(cid:255)(cid:1133)(cid:1255)c bi(cid:1223)u di(cid:1225)n d(cid:1189)ng mod 2.

m, thì ngh(cid:1231)ch (cid:255)(cid:1191)o (-a ) c(cid:1259)a a m là nghi(cid:1227)m duy nh(cid:1193)t c(cid:1259)a a + x = 0 (mod p) trong

m.

m, a „ 0 thì nhân ngh(cid:1231)ch (cid:255)(cid:1191)o a–1 m là nghi(cid:1227)m duy nh(cid:1193)t c(cid:1259)a a.x ” 1 (mod p) trong

(cid:264)(cid:1223)(cid:3)(cid:255)(cid:1231)nh ngh(cid:429)a phép tr(cid:1263) và phép chia, ta c(cid:1195)n (cid:255)(cid:1231)nh ngh(cid:429)a ngh(cid:1231)ch (cid:255)(cid:1191)o c(cid:1259)a phép c(cid:1245)ng và phép nhân:

§ Phép c(cid:1245)ng ngh(cid:1231)ch (cid:255)(cid:1191)o: N(cid:1219)u a ˛ F2 trong tr(cid:1133)(cid:1249)ng F2 tr(cid:1133)(cid:1249)ng F2 § Phép nhân ngh(cid:1231)ch (cid:255)(cid:1191)o: N(cid:1219)u a ˛ F2 c(cid:1259)a a trong tr(cid:1133)(cid:1249)ng F2 m. tr(cid:1133)(cid:1249)ng F2

Phép chia và phép tr(cid:1263)(cid:3)(cid:255)(cid:1133)(cid:1255)c bi(cid:1223)u di(cid:1225)n d(cid:1133)(cid:1247)i d(cid:1189)ng phép c(cid:1245)ng ngh(cid:1231)ch (cid:255)(cid:1191)o m m là a + (– b) trong tr(cid:1133)(cid:1249)ng F2 m. và phép nhân ngh(cid:1231)ch (cid:255)(cid:1191)o: (a – b) trong tr(cid:1133)(cid:1249)ng F2 m là a.(b–1) trong tr(cid:1133)(cid:1249)ng F2 và a / b trong tr(cid:1133)(cid:1249)ng F2

m v(cid:1247)i m ˛ {113, 131, 163, 193, 233, 239, 283, 409, 571} và phép c(cid:1245)ng và phép nhân (cid:255)(cid:1133)(cid:1255)c bi(cid:1223)u di(cid:1225)n dùng m(cid:1245)t trong nh(cid:1267)ng (cid:255)a th(cid:1261)c nh(cid:1231) phân t(cid:1237)i gi(cid:1191)n b(cid:1201)c m nh(cid:1133) trong b(cid:1191)ng sau [4]:

131

163

193

Trong th(cid:1269)c ti(cid:1225)n th(cid:1133)(cid:1249)ng dùng F2

(cid:264)a th(cid:1261)c t(cid:1237)i gi(cid:1191)n f(x) = x113 + x9 + 1 f(x) = x131 + x8 + x3 + x2 + 1 f(x) = x163 + x7 + x6 + x3 + 1 f(x) = x193 + x15 + 1 Tr(cid:1133)(cid:1249)ng 113 F2 F2 F2 F2

21

233

239

283

409

571

m

f(x) = x233 + x74 + 1 f(x) = x239 + x36 + 1 hay f(x) = x239 + x158 + 1 f(x) = x283 + x12 + x7 + x5 + 1 f(x) = x409 + x87 + 1 f(x) = x571 + x10 + x5 + x2 + 1 F2 F2 F2 F2 F2 B(cid:1191)ng 1: bi(cid:1223)u di(cid:1225)n tr(cid:1133)(cid:1249)ng F2

q Nh(cid:1201)n xét v(cid:1221) tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n Fp và F2m

F2m

Tính toán nhanh

Hi(cid:1227)u qu(cid:1191) khi cài (cid:255)(cid:1211)t cho ph(cid:1195)n c(cid:1261)ng Fp D(cid:1269)a trên các tính toán s(cid:1237) h(cid:1233)c (mod) c(cid:458) D(cid:1225) nâng c(cid:1193)p t(cid:1263) RSA Ch(cid:1201)m khi cài (cid:255)(cid:1211)t cho ph(cid:1195)n c(cid:1261)ng

2.4.2.2. M(cid:865)t s(cid:857)(cid:3)(cid:255)(cid:831)c tính Elip trên tr(cid:753)(cid:869)ng h(cid:887)u h(cid:809)n

q M(cid:1245)t s(cid:1237) khái ni(cid:1227)m

R Cho (cid:255)(cid:1133)(cid:1249)ng cong Elip có ph(cid:1133)(cid:1131)ng trình theo công th(cid:881)c Weierstrass dài: Y2 + a1XY + a3Y = X3 + a2X2 + a4X + a6, v(cid:1247)i ai ˛ (1)

G(cid:1233)i E là m(cid:1245)t Elip (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a trên tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n Fq b(cid:1193)t k(cid:484) (tr(cid:1133)(cid:1249)ng Fq có q ph(cid:1195)n t(cid:1265)).

§ B(cid:821)c c(cid:879)a m(cid:865)t (cid:255)(cid:76)(cid:843)m trên Elip: N(cid:1219)u P ˛ E(Fq) là m(cid:1245)t (cid:255)(cid:76)(cid:1223)m c(cid:1259)a Elip thì b(cid:1201)c c(cid:1259)a P là s(cid:1237) d(cid:1133)(cid:1131)ng n nh(cid:1235) nh(cid:1193)t, sao cho nP = O v(cid:1247)i O là (cid:255)i(cid:1223)m trung hòa c(cid:1259)a Elip (hay còn g(cid:1233)i là (cid:255)i(cid:1223)m (cid:1251) vô cùng).

§ S(cid:857)(cid:3) (cid:255)(cid:76)(cid:843)m c(cid:879)a m(cid:865)t (cid:255)(cid:753)(cid:869)ng cong Elip trên Fq(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là b(cid:1201)c c(cid:1259)a Elip trên tr(cid:1133)(cid:1249)ng Fq, ký hi(cid:1227)u #E(Fq) hay vi(cid:1219)t t(cid:1203)t là #(E).

§ (cid:264)inh lý Hasse v(cid:841) s(cid:857)(cid:3)(cid:255)(cid:76)(cid:843)m trên (cid:255)(cid:753)(cid:869)ng cong E: q + 1 – 2 q £ #E(Fq) £ q + 1 + 2 q

§ Bi(cid:847)t s(cid:857) (discrimant) và l(cid:753)(cid:875)ng b(cid:813)t bi(cid:839)n j (j-invariant) c(cid:879)a Elip:

G(cid:1233)i E là Elip (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a b(cid:1205)ng công th(cid:1261)c Weiertrass dài, (cid:255)(cid:1231)nh ngh(cid:429)a các thông s(cid:1237) sau:

22

2

+

=

a

a4

d

2

+

=

1 a2

d

2 aa 1

3

4

4

2

+

=

a

a4

d

3

6

6

2

2

=

+

+

d

a

8

2 aa 1

aa4 2

6

aaa 31

4

aa 2

3

4

2

6 +

=

c

d

d24

4

2

4

3

2

- -

-=

+

d8

d27

8

4

6

ddd9 2

4

6

3

D - -

2 dd 2 =

)E(j

c

/

4

D

D (cid:3) (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là bi(cid:1227)t s(cid:1237) c(cid:1259)a công th(cid:1261)c Weierstrass, và j(E) (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là

(cid:79)(cid:1133)(cid:1255)ng b(cid:1193)t bi(cid:1219)n j c(cid:1259)a E n(cid:1219)u D „ 0.

q Các l(cid:1247)p Elip (cid:255)(cid:1211)c bi(cid:1227)t

Có vô s(cid:1237) l(cid:1247)p Elip, nh(cid:1133)ng chúng ta c(cid:1195)n xem xét m(cid:1245)t s(cid:1237) l(cid:1247)p Elip (cid:255)(cid:1211)c bi(cid:1227)t vì chúng có liên quan (cid:255)(cid:1219)n tính b(cid:1191)o m(cid:1201)t c(cid:1259)a h(cid:1227) th(cid:1237)ng.

t

£ 2

§ L(cid:867)p Elip k(cid:484) d(cid:851) (supersingular): các Elip k(cid:484) d(cid:1231) có m(cid:1245)t s(cid:1237) tính ch(cid:1193)t m nh(cid:1133) sau: m(cid:1245)t Elip trên tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n có q (cid:255)(cid:1211)c bi(cid:1227)t cho tr(cid:1133)(cid:1249)ng F2 ph(cid:1195)n t(cid:1265) (q = #E) (cid:255)(cid:1133)(cid:1255)c nói là k(cid:484) d(cid:1231) n(cid:1219)u t2 = 0, q, 2q, 3q, 4q v(cid:1247)i t = q + q ( theo (cid:255)(cid:1231)nh lý Hasse ). M(cid:1245)t Elip E là k(cid:484) d(cid:1231) n(cid:1219)u 1 - #E(Fq), j(E) = 0.

§ Các l(cid:867)p Elip không k(cid:484) d(cid:851) (non-supersingular): m(cid:1245)t Elip không k(cid:484) d(cid:1231) là m(cid:1245)t Elip có l(cid:1133)(cid:1255)ng b(cid:1193)t bi(cid:1219)n j „ 0. (cid:1132)u (cid:255)i(cid:1223)m c(cid:1259)a m(cid:1245)t Elip không k(cid:484) d(cid:1231) so v(cid:1247)i Elip k(cid:484) d(cid:1231) là nó có th(cid:1223) cho cùng m(cid:1261)c (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t, nh(cid:1133)ng v(cid:1247)i tr(cid:1133)(cid:1249)ng nh(cid:1235) h(cid:1131)n.

2.4.2.3. Kh(cid:811)o sát (cid:255)(cid:753)(cid:869)ng cong Elip

q (cid:264)(cid:1133)(cid:1249)ng cong Elip trên Fp

(cid:264)(cid:1211)t Fp là tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n s(cid:1237) nguyên t(cid:1237) v(cid:1247)i p là s(cid:1237) nguyên t(cid:1237) l(cid:1215), và a,b ˛ Fp th(cid:1235)a 4a3 + 27b2 „ 0 (mod p). (cid:264)(cid:1133)(cid:1249)ng cong elip E(Fp) trên tr(cid:1133)(cid:1249)ng Fp (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a b(cid:1251)i các thông s(cid:1237) a, b ˛ Fp bao g(cid:1239)m m(cid:1245)t t(cid:1201)p h(cid:1255)p các nghi(cid:1227)m hay các (cid:255)i(cid:1223)m P = (x, y), v(cid:1247)i x, y ˛ Fp, c(cid:1259)a ph(cid:1133)(cid:1131)ng trình: y2 = x3 + ax + b (mod p)

v(cid:1247)i O g(cid:1233)i là (cid:255)i(cid:1223)m (cid:1251) vô cùng. Ph(cid:1133)(cid:1131)ng trình y2 = x3 + ax + b (mod p) (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là ph(cid:1133)(cid:1131)ng trình xác (cid:255)(cid:1231)nh c(cid:1259)a E(Fp) v(cid:1247)i P(xp, yp) (cid:255)(cid:1133)(cid:1255)c cho tr(cid:1133)(cid:1247)c. S(cid:1237) (cid:255)i(cid:1223)m trên E(Fp) ký hi(cid:1227)u là #E(Fp).

Theo (cid:255)inh lý Hasse, ta có s(cid:857)(cid:3)(cid:255)(cid:76)(cid:843)m trên (cid:255)(cid:753)(cid:869)ng cong E trên Fp:

23

p + 1 – 2 p £ #E(Fp) £ p + 1 + 2 p

Các lu(cid:821)t c(cid:865)ng (cid:255)(cid:76)(cid:843)m trên E(Fp):

(x, y) ˛ E( Fp)

E( Fp) v(cid:1247)i -(x, y) = (x, -y) l (x1 - x3) – y1 (mod p) và

2

1. O + O = O 2. (x, y) + O = O + (x, y) = (x, y) , " 3. (x, y) + (x, -y) = O, " 4. x3 ” l = (mod p)

+

a

(x, y) ˛ l 2 - x1 - x2 (mod p), y3 ” 2 y-y 1 x - x 1 5. (x1, y1) ˛ E (Fp) là (cid:255)i(cid:1223)m v(cid:1247)i y1„ 0 thì (x1,y1) + (x2,y2) = l 2 - 2.x1, y3 ” l (x1 - x3) - y1 (mod p) và

y 1

(mod p) (x3,y3) v(cid:1247)i x3 ” 2 3.x l = 1 .2

T(cid:1201)p các (cid:255)(cid:76)(cid:1223)m trên E(Fp) hình thành nhóm hoán v(cid:1231), nhóm Abel ngh(cid:429)a là E(Fp). Chú ý tính hoán v(cid:1231) có th(cid:1223) luôn luôn tính P1 + P2 = P2 + P1, " P1, P2 ˛ (cid:255)(cid:1133)(cid:1255)c m(cid:1245)t cách hi(cid:1227)u qu(cid:1191) qua các phép s(cid:1237) h(cid:1233)c (cid:255)(cid:1131)n gi(cid:1191)n.

Các h(cid:1227) mã ECC d(cid:1269)a trên phép nhân vô h(cid:753)(cid:867)ng c(cid:1259)a các (cid:255)(cid:76)(cid:1223)m (cid:255)(cid:1133)(cid:1249)ng cong Elip. Cho tr(cid:1133)(cid:1247)c s(cid:1237) nguyên k và m(cid:1245)t (cid:255)(cid:76)(cid:1223)m P ˛ E(Fp), phép nhân vô h(cid:1133)(cid:1247)ng là quá trình c(cid:1245)ng P vào chính nó k l(cid:1195)n. K(cid:1219)t qu(cid:1191) phép nhân vô h(cid:1133)(cid:1247)ng (cid:255)(cid:1133)(cid:1255)c ký hi(cid:1227)u: k · P hay kP. Phép nhân vô h(cid:1133)(cid:1247)ng gi(cid:1267)a các (cid:255)(cid:76)(cid:1223)m c(cid:1259)a (cid:255)(cid:1133)(cid:1249)ng cong Elip (cid:255)(cid:1133)(cid:1255)c tính toán m(cid:1245)t cách hi(cid:1227)u qu(cid:1191) dùng tính hoán v(cid:1231) cùng v(cid:1247)i thu(cid:1201)t toán “g(cid:1193)p (cid:255)ôi và c(cid:1245)ng” (double – and – add) hay m(cid:1245)t trong nh(cid:1267)ng bi(cid:1219)n c(cid:1259)a nó.

m

q (cid:264)(cid:1133)(cid:1249)ng cong Elip trên F2

m là tr(cid:1133)(cid:1249)ng nh(cid:1231) phân h(cid:1267)u h(cid:1189)n, và (cid:255)(cid:1211)t a, b ˛ F2 m) trên tr(cid:1133)(cid:1249)ng F2

m thì (cid:255)(cid:1133)(cid:1249)ng cong Elip không k(cid:484) d(cid:1231) E(F2

m, b„ 0 trong tr(cid:1133)(cid:1249)ng m(cid:3)(cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a m là t(cid:1201)p các nghi(cid:1227)m hay các (cid:255)(cid:76)(cid:1223)m P = (x, y) v(cid:1247)i x, y

(cid:264)(cid:1211)t F2

m y2 + x.y = x3 + a.x2 + b trong tr(cid:1133)(cid:1249)ng F2

m)

m) (cid:255)(cid:1133)(cid:1255)c ký hi(cid:1227)u #E(F2

F2 b(cid:1205)ng các thông s(cid:1237) a, b ˛ F2 ˛ F2 m c(cid:1259)a ph(cid:1133)(cid:1131)ng trình:

m:

O g(cid:1233)i là (cid:255)i(cid:1223)m (cid:1251) vô cùng. S(cid:1237)(cid:3)(cid:255)(cid:76)(cid:1223)m trên E(F2

m) £

m2

m2

£ 2m + 1 – 2 2m + 1 + 2 Theo (cid:255)inh lý Hasse, ta có s(cid:857)(cid:3)(cid:255)(cid:76)(cid:843)m trên (cid:255)(cid:753)(cid:869)ng cong E trên F2 #E(F2

Các lu(cid:821)t c(cid:865)ng các (cid:255)i(cid:843)m trên E:

(x, y) ˛ E( F2m) 1. O + O = O 2. (x, y) + O = O + (x, y) = (x, y), " 3. (x, y) + (x, x+y) = O , "( x, y) ˛ E( F2m)(cid:1167) v(cid:1247)i –(x, y) = (x, x+y)

24

2

4. (cid:264)(cid:1211)t (x1, y1), (x2, y2) ˛ E( F2m) là 2 (cid:255)i(cid:1223)m x1 „ x2 thì (x1, y1) + (x2, + x1 + x2 + a trong tr(cid:1133)(cid:1249)ng F2m và y3

+ +

y x

y 1 x 1

2

” trong tr(cid:1133)(cid:1249)ng F2m y2) = (x3, y3) n(cid:1219)u x3 = l 2 + l (x1 + x3) + x3 + y1 và l = l

5. (cid:264)(cid:1211)t (x1, y1) ˛ E( F2m) là m(cid:1245)t (cid:255)(cid:76)(cid:1223)m v(cid:1247)i x1„ 0 thì (x1, y1) + (x2, 2 + ( + a trong tr(cid:1133)(cid:1249)ng F2m và y3 = x1

y 1 x 1

l trong tr(cid:1133)(cid:1249)ng F2m y2) = (x3, y3) n(cid:1219)u x3 = l 2 + l + 1).x3 trong tr(cid:1133)(cid:1249)ng F2m và l = x1 +

m) hình thành nhóm giao hoán Abel. Lu(cid:1201)t giao hoán dùng phép s(cid:1237) h(cid:1233)c (cid:255)(cid:1131)n gi(cid:1191)n (cid:255)(cid:1223) tính. Các h(cid:1227) mã ECC d(cid:1269)a trên phép nhân vô h(cid:1133)(cid:1247)ng gi(cid:1267)a các (cid:255)(cid:76)(cid:1223)m (cid:255)(cid:1133)(cid:1249)ng cong Elip. Cho tr(cid:1133)(cid:1247)c s(cid:1237) nguyên k và m(cid:1245)t (cid:255)(cid:76)(cid:1223)m P ˛ E( F2m)(cid:1167), phép nhân vô h(cid:1133)(cid:1247)ng là ti(cid:1219)n trình thêm P vào chính nó k l(cid:1195)n. K(cid:1219)t qu(cid:1191) c(cid:1259)a phép nhân vô h(cid:1133)(cid:1247)ng ký hi(cid:1227)u k · P hay kP.

T(cid:1201)p các (cid:255)(cid:76)(cid:1223)m trên E(F2

2.4.3. Các thành t(cid:1237) m(cid:1201)t mã trong ECC

2.4.3.1. Các thông s(cid:857) mi(cid:841)n (cid:255)(cid:753)(cid:869)ng cong Elip

Ho(cid:1189)t (cid:255)(cid:1245)ng c(cid:1259)a các h(cid:1227) mã khóa công bao g(cid:1239)m các phép tính s(cid:1237) h(cid:1233)c trên (cid:255)(cid:1133)(cid:1249)ng cong elip d(cid:1269)a trên m(cid:1245)t tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n (cid:255)(cid:1133)(cid:1255)c xác (cid:255)(cid:1231)nh b(cid:1251)i các tham s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong Elip.

q Các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong Elip trên tr(cid:1133)(cid:1249)ng Fp

Các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong Elip trên tr(cid:1133)(cid:1249)ng Fp là b(cid:1245) sáu T = (p, a, b, G, n, h) g(cid:1239)m m(cid:1245)t s(cid:1237) nguyên t(cid:1237) l(cid:1215) p t(cid:1189)o thành tr(cid:1133)(cid:1249)ng Fp, hai thành ph(cid:1195)n a, b ˛ Fp hình thành (cid:255)(cid:1133)(cid:1249)ng cong Elip (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a b(cid:1251)i ph(cid:1133)(cid:1131)ng trình

E: y2 = x3 + ax + b (mod p) (cid:264)i(cid:1223)m c(cid:1131) s(cid:1251) G = (xG, yG) trên E(Fp), s(cid:1237) nguyên t(cid:1237) n cho bi(cid:1219)t b(cid:1201)c c(cid:1259)a G, và s(cid:1237) nguyên h là ph(cid:1195)n bù (cid:255)(cid:1189)i s(cid:1237) h = #E(Fp) / h. Các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong Elip trên tr(cid:1133)(cid:1249)ng Fp xác (cid:255)(cid:1231)nh chính xác (cid:255)(cid:1133)(cid:1249)ng cong Elip và (cid:255)i(cid:1223)m c(cid:1131) s(cid:1251). Vi(cid:1227)c này c(cid:1195)n thi(cid:1219)t (cid:255)(cid:1223)(cid:3)(cid:255)(cid:1231)nh ngh(cid:429)a các h(cid:1227) mã khoá công khai d(cid:1269)a trên ECC.

Phát sinh các thông s(cid:857) mi(cid:841)n (cid:255)(cid:753)(cid:869)ng cong Elip trên tr(cid:753)(cid:869)ng Fp

{56, 64, 80, 96, 112, 128, 192, 256} (cid:264)(cid:815)u vào: M(cid:1245)t s(cid:1237) nguyên t ˛ (cid:264)(cid:815)u ra: Các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong trên tr(cid:1133)(cid:1249)ng Fp T = (p, a, b, G, n, h) Th(cid:879) t(cid:877)c th(cid:889)c hi(cid:847)n:

Ch(cid:1233)n m(cid:1245)t s(cid:1237) nguyên t(cid:1237) p sao cho [log2p] = 2t n(cid:1219)u t „ 256, và 1. [log2p] = 521 n(cid:1219)u t = 256 (cid:255)(cid:1223) xác (cid:255)(cid:1231)nh tr(cid:1133)(cid:1249)ng h(cid:1267)u h(cid:1189)n Fp

25

Ch(cid:1233)n a, b ˛ Fp(cid:3)(cid:255)(cid:1223) xác (cid:255)(cid:1231)nh (cid:255)(cid:1133)(cid:1249)ng cong elip E(Fp) qua ph(cid:1133)(cid:1131)ng 2. trình: E: y2 = x3 + a.x + b (mod p)

M(cid:1245)t (cid:255)(cid:76)(cid:1223)m c(cid:1131) s(cid:1251) G = (xG, yG) trên E(Fp), s(cid:1237) nguyên t(cid:1237) n là b(cid:1201)c c(cid:1259)a G, và s(cid:1237) nguyên h là ph(cid:1195)n bù (cid:255)(cid:1189)i s(cid:1237) h = #E(Fp) / n, v(cid:1247)i nh(cid:1267)ng ràng bu(cid:1245)c sau:

§ 4.a3 + 27. b2 „ 0 (mod p) § #E(Fp) „ p § pB „ 1 (mod p) v(cid:1247)i 1 £ B £ 20 § h £ 4 3. Return T = (p, a, b, G, n, h)

m

q Các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong Elip trên tr(cid:1133)(cid:1249)ng F2

Các thông s(cid:1237) trên (cid:255)(cid:1133)(cid:1249)ng cong Elip trên tr(cid:1133)(cid:1249)ng F2m là b(cid:1245) b(cid:1191)y T = (m, f(x), a, b, G, n, h)

g(cid:1239)m s(cid:1237) nguyên m t(cid:1189)o thành tr(cid:1133)(cid:1249)ng F2m, m(cid:1245)t (cid:255)a th(cid:1261)c nh(cid:1231) phân t(cid:1237)i gi(cid:1191)n F2m t(cid:1189)o thành (cid:255)(cid:1133)(cid:1249)ng cong Elip f(x) b(cid:1201)c m (cid:255)(cid:1189)i di(cid:1227)n F2m, hai thành t(cid:1237) a,b ˛ E(F2m) qua ph(cid:1133)(cid:1131)ng trình:

y2 + x.y = x3 + a.x2 + b trong tr(cid:1133)(cid:1249)ng F2m m(cid:1245)t (cid:255)(cid:76)(cid:1223)m c(cid:1131) s(cid:1251) G = (xG, yG) trên E(F2m), m(cid:1245)t s(cid:1237) nguyên t(cid:1237) n ch(cid:1229) b(cid:1201)c c(cid:1259)a G, và m(cid:1245)t s(cid:1237) nguyên h là ph(cid:1195)n bù (cid:255)(cid:1189)i s(cid:1237) h = #E(F2m) / n

m

Phát sinh các thông s(cid:857) mi(cid:841)n (cid:255)(cid:753)(cid:869)ng cong Elip trên tr(cid:753)(cid:869)ng F2

m:

m.

{56, 64, 80, 96, 112, 128, 192, 256} (cid:264)(cid:815)u vào: M(cid:1245)t s(cid:1237) nguyên t ˛ (cid:264)(cid:815)u ra: Các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong Elip trên tr(cid:1133)(cid:1249)ng F2 T = (m, f(x), a, b, G, n, h) Th(cid:879) t(cid:877)c th(cid:889)c hi(cid:847)n:

m

m) qua

m(cid:3) (cid:255)(cid:1223) xác (cid:255)(cid:1231)nh (cid:255)(cid:1133)(cid:1249)ng cong E(F2

Ch(cid:1233)n m(cid:1245)t(cid:3)(cid:255)a th(cid:1261)c t(cid:1237)i gi(cid:1191)n f(x) có b(cid:1201)c m t(cid:1263) b(cid:1191)ng 1 làm (cid:255)(cid:1189)i

m m), m(cid:1245)t s(cid:1237)

Ch(cid:1233)n a, b ˛ F2 G(cid:1233)i t’ là s(cid:1237) nguyên nh(cid:1235) nh(cid:1193)t l(cid:1247)n h(cid:1131)n t trong t(cid:1201)p {64, 80, 1. 96, 112, 128, 192, 256, 512}. Ch(cid:1233)n m ˛ {113, 131, 163, 193, 233, 239, 283, 409, 571} sao cho 2t

m)/n, th(cid:1235)a các ràng bu(cid:1245)c sau:

E : y2 + x.y = x3 + a.x2 + b trong tr(cid:1133)(cid:1249)ng F2 M(cid:1245)t (cid:255)(cid:76)(cid:1223)m c(cid:1131) s(cid:1251) G = (xG, yG) trên (cid:255)(cid:1133)(cid:1249)ng cong E(F2 nguyên t(cid:1237) n ch(cid:1229) b(cid:1201)c c(cid:1259)a G, và m(cid:1245)t s(cid:1237) nguyên h là ph(cid:1195)n bù (cid:255)(cid:1189)i s(cid:1237)

§ § § h=#E(F2 b „ 0 trên tr(cid:1133)(cid:1249)ng F2 m m) „ 2m #E(F2 2mB „ 1 (mod n) v(cid:1247)i 1 £ B £ 20

26

h £ 4 § Return T = (m, f(x), a, b, G, n, h) 4.

2.4.3.2. C(cid:831)p khóa (cid:255)(cid:753)(cid:869)ng cong Elip

Cho các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong T trên tr(cid:1133)(cid:1249)ng Fp hay F2m thì m(cid:1245)t c(cid:1211)p khóa (d, Q) liên quan (cid:255)(cid:1219)n T bao g(cid:1239)m khóa bí m(cid:1201)t (cid:255)(cid:1133)(cid:1249)ng cong Elip d là m(cid:1245)t s(cid:1237) nguyên thu(cid:1245)c kho(cid:1191)ng [1, n-1] và khóa công khai (cid:255)(cid:1133)(cid:1249)ng cong Elip Q = (xQ, yQ) là (cid:255)i(cid:1223)m th(cid:1235)a Q = dG.

Phát sinh c(cid:831)p khoá (cid:255)(cid:753)(cid:869)ng cong Elip

(cid:264)(cid:815)u vào: Các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong có giá tr(cid:1231) T = (p, a, b, G, n, h) hay T = (m, f(x), a, b, G, n, h)

(cid:264)(cid:815)u ra: M(cid:1245)t c(cid:1211)p khóa (cid:255)(cid:1133)(cid:1249)ng cong (d, Q) liên quan (cid:255)(cid:1219)n T Th(cid:879) t(cid:877)c th(cid:889)c hi(cid:847)n phát sinh c(cid:831)p khóa (cid:255)(cid:753)(cid:869)ng cong Elip:

1. Ch(cid:1233)n ng(cid:1199)u nhiên hay gi(cid:1191) ng(cid:1199)u nhiên m(cid:1245)t s(cid:1237) nguyên d trong kho(cid:1191)ng [1, n-1] 2. Tính Q = dG 3. K(cid:1219)t xu(cid:1193)t (d, Q)

Ki(cid:843)m tra tính h(cid:875)p l(cid:847) c(cid:879)a khóa công khai Q

3 + a.xQ + b (mod p)

Q „ O N(cid:1219)u xét T trên tr(cid:1133)(cid:1249)ng Fp thì ki(cid:1223)m tra xQ, yQ là nh(cid:1267)ng s(cid:1237)

m thì ki(cid:1223)m tra xQ, yQ là nh(cid:1267)ng (cid:255)a

1. 2. nguyên trong kho(cid:1191)ng [1, p–1] và: 2 = xQ yQ

m

2 + b trong tr(cid:1133)(cid:1249)ng F2

3 + a. xQ

2 + xQ.yQ = xQ

N(cid:1219)u xét T trên tr(cid:1133)(cid:1249)ng F2 th(cid:1261)c nh(cid:1231) phân có b(cid:1201)c t(cid:1237)i (cid:255)a là (m – 1) , và:

yQ nQ = O N(cid:1219)u có m(cid:1245)t (cid:255)(cid:76)(cid:1221)u ki(cid:1227)n không th(cid:1235)a thì khóa công khai 3. 4. không h(cid:1255)p l(cid:1227).

2.4.4. Các l(cid:1133)(cid:1255)c (cid:255)(cid:1239) trong ECC

Có 5 loai d(cid:887) li(cid:847)u dùng cho d(cid:887) li(cid:847)u trong các l(cid:753)(cid:875)c (cid:255)(cid:859) trong ECC

§ Chu(cid:1243)i bit § (cid:264)i(cid:1223)m EC § Chu(cid:1243)i 8 bit: m(cid:1245)t chu(cid:1243)i bit (cid:255)(cid:1133)(cid:1255)c thêm các bit 0 sao cho k(cid:1219)t qu(cid:1191) chi(cid:1221)u dài c(cid:1259)a nó là b(cid:1245)i s(cid:1237) c(cid:1259)a 8, sau (cid:255)ó chia chu(cid:1243)i k(cid:1219)t qu(cid:1191) thành các chu(cid:1243)i dài 8 bit. § S(cid:1237) nguyên § Các thành ph(cid:1195)n tr(cid:1133)(cid:1249)ng: bao g(cid:1239)m các thành ph(cid:1195)n thu(cid:1245)c tr(cid:1133)(cid:1249)ng Fp hay F2m.

27

2.4.4.1. (cid:47)(cid:753)(cid:875)c (cid:255)(cid:859) ch(cid:887) ký (cid:255)(cid:76)(cid:847)n t(cid:885) d(cid:889)a trên ECC

(cid:47)(cid:1133)(cid:1255)c (cid:255)(cid:1239) ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) cho 2 bên - ng(cid:1133)(cid:1249)i ký U và ng(cid:1133)(cid:1249)i xác nh(cid:1201)n V – khi U mu(cid:1237)n g(cid:1265)i m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p M c(cid:1195)n ch(cid:1261)ng th(cid:1269)c và V mu(cid:1237)n xác th(cid:1269)c (cid:255)ó c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p M. L(cid:1133)(cid:1255)c (cid:255)(cid:1239) ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1133)(cid:1255)c mô t(cid:1191) d(cid:1133)(cid:1247)i hành (cid:255)(cid:1245)ng ký g(cid:1265)i, hành (cid:255)(cid:1245)ng xác nh(cid:1201)n, hành (cid:255)(cid:1245)ng thi(cid:1219)t l(cid:1201)p và tri(cid:1223)n khai khóa.

Thu(cid:821)t toán ch(cid:887) ký (cid:255)(cid:76)(cid:847)n t(cid:885) (Elliptic Curve Digital Signature Algorithm _ ECDSA)

q Thi(cid:1219)t l(cid:1201)p l(cid:1133)(cid:1255)c (cid:255)(cid:1239)

V (cid:255)(cid:1189)t (cid:255)(cid:1133)(cid:1255)c hàm b(cid:259)m và các thông s(cid:1237) trong tr(cid:1189)ng thái 1. U dùng hàm b(cid:259)m khi phát sinh ch(cid:1267) ký. G(cid:1233)i Hash là hàm (cid:69)(cid:259)m (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n và hashlen là chi(cid:1221)u dài chu(cid:1243)i giá tr(cid:1231) b(cid:259)m (cid:255)(cid:1133)(cid:1255)c sinh ra khi s(cid:1265) d(cid:1257)ng hàm b(cid:259)m Hash. 2. U thi(cid:1219)t l(cid:1201)p các thông s(cid:1237) mi(cid:1221)n (cid:255)(cid:1133)(cid:1249)ng cong Elip T = (p,a,b,G,n,h) hay T = (m, f(x), a, b, G, n, h) v(cid:1247)i m(cid:1261)c (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t mong mu(cid:1237)n. 3. ch(cid:1261)ng th(cid:1269)c (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t l(cid:1201)p b(cid:1251)i U.

q Tri(cid:1223)n khai khóa

U thi(cid:1219)t l(cid:1201)p c(cid:1211)p khóa (dU, QU) liên quan (cid:255)(cid:1219)n T dùng v(cid:1247)i

V nh(cid:1201)n (cid:255)(cid:1133)(cid:1255)c khóa công khai QU trong tr(cid:1189)ng thái ch(cid:1261)ng 1. (cid:79)(cid:1133)(cid:1255)c (cid:255)(cid:1239) ch(cid:1267) ký. 2. th(cid:1269)c (cid:255)(cid:1133)(cid:1255)c xác nh(cid:1201)n có giá tr(cid:1231).

q Hành (cid:255)(cid:1245)ng ký

U ký thông (cid:255)i(cid:1227)p dùng ECDSA b(cid:1205)ng cách dùng các khóa và các thông s(cid:1237) (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t l(cid:1201)p trong su(cid:1237)t th(cid:1259) t(cid:1257)c thi(cid:1219)t l(cid:1201)p và th(cid:1259) t(cid:1257)c tri(cid:1223)n khai khóa:

(cid:264)(cid:815)u vào: (cid:264)(cid:815)u ra: Thông (cid:255)i(cid:1227)p M d(cid:1189)ng chu(cid:1243)i 8 bit Ch(cid:1267) ký S = (r, s) trên M bao g(cid:1239)m c(cid:1211)p s(cid:1237) nguyên r và s hay xu(cid:1193)t “không h(cid:1255)p l(cid:1227)” Th(cid:879) t(cid:877)c th(cid:889)c hi(cid:847)n:

1.

Ch(cid:1233)n m(cid:1245)t c(cid:1211)p khóa (k, R) v(cid:1247)i R = (xR, yR) liên quan (cid:255)(cid:1219)n các thông s(cid:1237) T (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t l(cid:1201)p trong th(cid:1259) t(cid:1257)c thi(cid:1219)t l(cid:1201)p b(cid:1205)ng cách dùng vi(cid:1227)c phát sinh c(cid:1211)p khóa.

Rx (d(cid:1189)ng s(cid:1237) nguyên c(cid:1259)a

2.

3. Bi(cid:1219)n (cid:255)(cid:1241)i thành ph(cid:1195)n tr(cid:1133)(cid:1249)ng xR thành thành ph(cid:1195)n tr(cid:1133)(cid:1249)ng xR) (xem cách chuy(cid:1223)n (cid:255)(cid:1241)i (cid:1251) ph(cid:1257) l(cid:1257)c B). (cid:264)(cid:1211)t r = Rx (mod n). N(cid:1219)u r = 0, quay v(cid:1221) b(cid:1133)(cid:1247)c 1.

28

4.

5. Tính giá tr(cid:1231) b(cid:259)m dùng hàm b(cid:259)m Hash (cid:255)ã ch(cid:1233)n H = Hash(M). N(cid:1219)u hàm b(cid:259)m báo “không h(cid:1255)p l(cid:1227)”, xu(cid:1193)t “không h(cid:1255)p l(cid:1227)” và ng(cid:1263)ng. Phát sinh m(cid:1245)t s(cid:1237) nguyên e t(cid:1263) H nh(cid:1133) sau:

8(hashlen), và (cid:255)(cid:1211)t E b(cid:1205)ng

5.1. Bi(cid:1219)n (cid:255)(cid:1241)i chu(cid:1243)i H thành chu(cid:1243)i bit H . 5.2. (cid:264)(cid:1211)t E = H n(cid:1219)u [log2n] ‡ [log2n] bits bên trái c(cid:1259)a H n(cid:1219)u [log2n] < 8(hashlen). 5.3. Bi(cid:1219)n (cid:255)(cid:1241)i chu(cid:1243)i bit E thành chu(cid:1243)i octet E 5.4. Chuy(cid:1223)n chu(cid:1243)i octet E thành s(cid:1237) nguyên e. 6. Tính: (mod n) s = k–1.(e + r. dU)

7. N(cid:1219)u s = 0, quay v(cid:1221) b(cid:1133)(cid:1247)c 1 K(cid:1219)t xu(cid:1193)t S = (r, s).

q Hành (cid:255)(cid:1245)ng xác nh(cid:1201)n

V xác nh(cid:1201)n thông (cid:255)(cid:76)(cid:1227)p t(cid:1263) U dùng ECDSA b(cid:1205)ng cách dùng các khóa và các thông s(cid:1237)(cid:3)(cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t l(cid:1201)p trong th(cid:1259) t(cid:1257)c thi(cid:1219)t l(cid:1201)p và th(cid:1259) t(cid:1257)c tri(cid:1223)n khai khóa:

Ch(cid:1267) ký trên M có giá tr(cid:1231) hay kh(cid:1245)ng (cid:264)(cid:815)u vào: Chu(cid:1243)i octet thông (cid:255)(cid:76)(cid:1227)p M và ch(cid:1267) ký c(cid:1259)a U là S = (r, s) (cid:264)(cid:815)u ra: Th(cid:879) t(cid:877)c th(cid:889)c hi(cid:847)n:

Tính giá tr(cid:1231) b(cid:259)m dùng hàm b(cid:259)m Hash (cid:255)ã ch(cid:1233)n H = Hash(M). N(cid:1219)u

1. N(cid:1219)u r và s (cid:255)(cid:1221)u là s(cid:1237) nguyên trong kho(cid:1191)ng [1, n-1], xu(cid:1193)t “có giá tr(cid:1231)” và ng(cid:1263)ng. 2. hàm b(cid:259)m báo “không h(cid:1255)p l(cid:1227)”, xu(cid:1193)t “không h(cid:1255)p l(cid:1227)” và ng(cid:1263)ng. 3. Phát sinh m(cid:1245)t s(cid:1237) nguyên e t(cid:1263) H nh(cid:1133) sau:

3.1. Bi(cid:1219)n (cid:255)(cid:1241)i chu(cid:1243)i H thành chu(cid:1243)i bit H . 3.2. (cid:264)(cid:1211)t E = H n(cid:1219)u [log2n] ‡ 8(hashlen), và (cid:255)(cid:1211)t E b(cid:1205)ng [log2n] bits bên trái c(cid:1259)a H n(cid:1219)u [log2n] < 8(hashlen). 3.3. Bi(cid:1219)n (cid:255)(cid:1241)i chu(cid:1243)i bit E thành chu(cid:1243)i octet E 3.4. Chuy(cid:1223)n chu(cid:1243)i octet E thành s(cid:1237) nguyên e. 4. Tính

(mod n) (mod n) u1 = e.s–1 u2 = r.s–1 5. Tính

Rx .

R = (xR, yR) = u1G + u2QU N(cid:1219)u R = O, xu(cid:1193)t “không h(cid:1255)p l(cid:1227)” và d(cid:1263)ng.

(mod n)

So sánh v và r n(cid:1219)u v = r thì xu(cid:1193)t “h(cid:1255)p l(cid:1227)” , n(cid:1219)u v „ r thì xu(cid:1193)t 6. Bi(cid:1219)n (cid:255)(cid:1241)i thành ph(cid:1195)n tr(cid:1133)(cid:1249)ng xR thành m(cid:1245)t s(cid:1237) nguyên 7. (cid:264)(cid:1211)t v = Rx 8. “không h(cid:1255)p l(cid:1227)”.

29

2.4.5. (cid:264)ánh giá ECC

q (cid:1132)u (cid:255)i(cid:1223)m các h(cid:1227) th(cid:1237)ng d(cid:1269)a trên ECC

§ (cid:264)(cid:1133)(cid:1255)c (cid:255)ánh giá là an toàn h(cid:1131)n các h(cid:1227) th(cid:1237)ng mã hóa khóa công khác d(cid:1269)a trên DLP/IFP [2]. § Th(cid:1269)c thi nhanh § (cid:37)(cid:259)ng thông nh(cid:1235) § Các thông s(cid:1237) ng(cid:1203)n h(cid:1131)n § T(cid:1189)o c(cid:1211)p khóa (cid:255)(cid:1131)n gi(cid:1191)n. § Các h(cid:1227) th(cid:1237)ng ECC có th(cid:1223) ch(cid:1237)ng l(cid:1189)i các t(cid:1193)n công trên các h(cid:1227) th(cid:1237)ng mã hóa d(cid:1269)a trên DLP/IFP

q Khuy(cid:1219)t (cid:255)(cid:76)(cid:1223)m các h(cid:1227) th(cid:1237)ng d(cid:1269)a trên ECC

§ Có nhi(cid:1221)u tùy ch(cid:1233)n cài (cid:255)(cid:1211)t. § V(cid:1193)n (cid:255)(cid:1221) toán h(cid:1233)c (cid:255)(cid:1133)(cid:1255)c (cid:255)ánh giá là m(cid:1247)i nên nghiên c(cid:1261)u ch(cid:1133)a hoàn t(cid:1193)t

2.5. So sánh RSA và ECC

(cid:264)(cid:1223)(cid:3)(cid:255)ánh giá (cid:255)(cid:1245) an toàn c(cid:1259)a m(cid:1245)t h(cid:1227) th(cid:1237)ng mã hóa th(cid:1269)c t(cid:1219)(cid:3)(cid:255)ã ch(cid:1261)ng minh là không nh(cid:1193)t thi(cid:1219)t chúng ta ph(cid:1191)i tìm cách gi(cid:1191)i (cid:255)(cid:1133)(cid:1255)c bài toán mà h(cid:1227) th(cid:1237)ng (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) d(cid:1269)a trên (cid:255)ó, chúng ta ch(cid:1259) y(cid:1219)u (cid:255)ánh giá trong tr(cid:1133)(cid:1249)ng h(cid:1255)p t(cid:1241)ng quát do các tham s(cid:1237) h(cid:1227) th(cid:1237)ng (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n l(cid:1269)a không r(cid:1131)i vào các tr(cid:1133)(cid:1249)ng h(cid:1255)p (cid:255)(cid:1211)c bi(cid:1227)t d(cid:1225) b(cid:1231) t(cid:1193)n công. Do (cid:255)ó (cid:255)(cid:1223)(cid:3)(cid:255)ánh giá m(cid:1245)t h(cid:1227) th(cid:1237)ng chúng ta có th(cid:1223) t(cid:1201)p trung trên các thu(cid:1201)t gi(cid:1191)i t(cid:1237)t nh(cid:1193)t (cid:255)(cid:1133)(cid:1255)c bi(cid:1219)t (cid:255)(cid:1223)(cid:3)(cid:255)ánh giá (cid:255)(cid:1245) an toàn.

q Kích th(cid:1133)(cid:1247)c khóa

(cid:264)(cid:1237)i v(cid:1247)i RSA, tuy ECC có kích th(cid:1133)(cid:1247)c khóa nh(cid:1235) h(cid:1131)n nh(cid:1133)ng ECC v(cid:1199)n có cùng m(cid:1261)c (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t v(cid:1247)i RSA.

(cid:43)(cid:1133)(cid:1247)ng d(cid:1199)n c(cid:1259)a NIST v(cid:1221) kích th(cid:1133)(cid:1247)c khóa công khai (cid:255)(cid:1237)i v(cid:1247)i chu(cid:1197)n AES

Kích th(cid:1133)(cid:1247)c khóa ECC (Bits) Kích th(cid:1133)(cid:1247)c khóa RSA (Bits) T(cid:1273) l(cid:1227) kích th(cid:1133)(cid:1247)c khóa Kích th(cid:1133)(cid:1247)c khóa AES (Bits)

1024 3072 7680 15360 1:06 1:12 1:20 1:30 - 128 192 256 163 256 384 512

B(cid:1191)ng 2.1. B(cid:1191)ng so sánh v(cid:1221) kích th(cid:1133)(cid:1247)c khóa công khai gi(cid:1267)a ECC, RSA và AES [7]

30

q Th(cid:1249)i gian th(cid:1269)c thi

ECC có kích th(cid:1133)(cid:1247)c khóa ng(cid:1203)n h(cid:1131)n RSA d(cid:1199)n (cid:255)(cid:1219)n vi(cid:1227)c th(cid:1269)c hi(cid:1227)n các phép tính c(cid:1195)n thi(cid:1219)t ít h(cid:1131)n, th(cid:1249)i gian mã hóa nhanh h(cid:1131)n, và c(cid:1195)n ít transistor cho vi(cid:1227)c cài (cid:255)(cid:1211)t ph(cid:1195)n c(cid:1261)ng h(cid:1131)n. Trong khi (cid:255)ó, RSA v(cid:1247)i vi(cid:1227)c th(cid:1269)c hi(cid:1227)n các phép tính trên các s(cid:1237) nguyên d(cid:1133)(cid:1131)ng c(cid:1269)c l(cid:1247)n v(cid:1247)i kích th(cid:1133)(cid:1247)c khóa dài làm cho th(cid:1249)i gian phát sinh khóa, mã hóa và gi(cid:1191)i mã lâu h(cid:1131)n r(cid:1193)t nhi(cid:1221)u so v(cid:1247)i ECC, ch(cid:1133)a tính (cid:255)(cid:1219)n chi phí cho nh(cid:1267)ng phép tính ph(cid:1191)i s(cid:1265) d(cid:1257)ng nhi(cid:1221)u n(cid:259)ng l(cid:1133)(cid:1255)ng, b(cid:1245) x(cid:1265) lý, không gian (cid:79)(cid:1133)u tr(cid:1267) do chi(cid:1221)u dài bit c(cid:1259)a m(cid:1245)t s(cid:1237) nguyên d(cid:1133)(cid:1131)ng th(cid:1133)(cid:1249)ng v(cid:1133)(cid:1255)t qua kh(cid:1191) n(cid:259)ng ch(cid:1261)a c(cid:1259)a thanh ghi nên ph(cid:1191)i dùng (cid:255)(cid:1219)n b(cid:1245)(cid:3)(cid:255)(cid:1227)m và b(cid:1245) nh(cid:1247) ph(cid:1257)(cid:3)(cid:255)(cid:1223) l(cid:1133)u tr(cid:1267) và chuy(cid:1223)n (cid:255)(cid:1241)i.

Ví d(cid:877): ECC 115-bit s(cid:1265) d(cid:1257)ng 11000 transistor trong khi RSA 512-bit khi th(cid:1269)c thi dùng 50000 transistor và (cid:255)(cid:1133)(cid:1255)c xem là có (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t nh(cid:1133) nhau.

m cho phép th(cid:1269)c hi(cid:1227)n tính toán r(cid:1193)t nhanh, trong tr(cid:1133)(cid:1249)ng h(cid:1255)p này ECC nhanh h(cid:1131)n c(cid:1253) 10 l(cid:1195)n so v(cid:1247)i RSA hay DSA.

Ngoài ra, (cid:255)(cid:1211)c bi(cid:1227)t trong nhi(cid:1221)u tr(cid:1133)(cid:1249)ng h(cid:1255)p c(cid:1259)a tr(cid:1133)(cid:1249)ng F2

q Tài nguyên s(cid:1265) d(cid:1257)ng

Các thi(cid:1219)t b(cid:1231) ECC yêu c(cid:1195)u ít không gian l(cid:1133)u tr(cid:1267), ít n(cid:259)ng l(cid:1133)(cid:1255)ng, ít b(cid:1245) nh(cid:1247), và yêu c(cid:1195)u b(cid:259)ng thông ít h(cid:1131)n (do khóa nh(cid:1235) h(cid:1131)n t(cid:1189)o ch(cid:1267) ký ng(cid:1203)n h(cid:1131)n) nh(cid:1267)ng h(cid:1227) th(cid:1237)ng khóa công khác.

q (cid:264)(cid:1245) an toàn

Cùng m(cid:1245)t m(cid:1261)c (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t (cùng m(cid:1245)t th(cid:1249)i gian gi(cid:1191)i mã khóa) nh(cid:1133)ng kích th(cid:1133)(cid:1247)c khóa c(cid:1259)a RSA dài h(cid:1131)n ECC (Hình 3).

Hình 2.3. So sánh m(cid:1261)c (cid:255)(cid:1245) b(cid:1191)o m(cid:1201)t gi(cid:1267)a ECC và RSA

31

Cho (cid:255)(cid:1219)n n(cid:259)m 2002, thu(cid:1201)t toán hi(cid:1227)u qu(cid:1191) nh(cid:1193)t (cid:255)(cid:1223) gi(cid:1191)i bài toán logarit r(cid:1249)i r(cid:1189)c trên tr(cid:1133)(cid:1249)ng các s(cid:1237) nguyên mod p b(cid:1205)ng ph(cid:1133)(cid:1131)ng pháp sàng s(cid:1237) có (cid:255)(cid:1245) ph(cid:1261)c t(cid:1189)p m(cid:458) là: O(exp(c+o(1)))(ln p)1/3 (ln (ln p))2/3) v(cid:1247)i c là h(cid:1205)ng s(cid:1237)

Tuy nhiên (cid:255)(cid:1223) gi(cid:1191)i bài toán logarit r(cid:1249)i r(cid:1189)c trên (cid:255)(cid:1133)(cid:1249)ng cong Elip (ECDLP) (cid:255)(cid:1219)n n(cid:259)m 2002 v(cid:1199)n ch(cid:1133)a có thu(cid:1201)t toán t(cid:1241)ng quát (cid:255)(cid:1245) ph(cid:1261)c t(cid:1189)p m(cid:458) con nào (cid:255)(cid:1133)(cid:1255)c bi(cid:1219)t. Thu(cid:1201)t toán trong tr(cid:1133)(cid:1249)ng h(cid:1255)p t(cid:1241)ng quát nhanh nh(cid:1193)t hi(cid:1227)n nay là thu(cid:1201)t toán Pollard’s có (cid:255)(cid:1245) ph(cid:1261)c t(cid:1189)p tính s(cid:1237) l(cid:1133)(cid:1255)ng phép toán trên nhóm là O(0.88 n ), v(cid:1247)i n là (cid:1133)(cid:1247)c s(cid:1237) nguyên t(cid:1237) l(cid:1247)n nh(cid:1193)t c(cid:1259)a b(cid:1201)c Elip. Nói chung, thu(cid:1201)t toán t(cid:1241)ng quát cho ECDLP là hàm m(cid:458) hoàn toàn.

32

Ch(cid:1133)(cid:1131)ng 3. Hàm b(cid:259)m

Do t(cid:1237)c (cid:255)(cid:1245) c(cid:1259)a các h(cid:1227) mã công khai r(cid:1193)t ch(cid:1201)m, vì th(cid:1219), ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) th(cid:1133)(cid:1249)ng không (cid:255)(cid:1133)(cid:1255)c ký tr(cid:1269)c ti(cid:1219)p trên toàn v(cid:259)n b(cid:1191)n mà thông qua b(cid:1191)n tóm t(cid:1203)t. B(cid:1191)n tóm t(cid:1203)t th(cid:1133)(cid:1249)ng (cid:255)(cid:1133)(cid:1255)c xây d(cid:1269)ng d(cid:1269)a trên m(cid:1245)t hàm b(cid:259)m. Ch(cid:1133)(cid:1131)ng này kh(cid:1191)o sát các ph(cid:1133)(cid:1131)ng pháp b(cid:259)m và (cid:1261)ng d(cid:1257)ng nó trong t(cid:1189)o ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)

Các hàm b(cid:259)m m(cid:1201)t mã nh(cid:1201)n chu(cid:1243)i (cid:255)(cid:1195)u vào có chi(cid:1221)u dài b(cid:1193)t k(cid:484) (th(cid:1133)(cid:1249)ng r(cid:1193)t l(cid:1247)n) và ánh x(cid:1189) chu(cid:1243)i này thành chu(cid:1243)i (cid:255)(cid:1195)u ra có chi(cid:1221)u dài c(cid:1237)(cid:3)(cid:255)(cid:1231)nh th(cid:1133)(cid:1249)ng ng(cid:1203)n, k(cid:1219)t xu(cid:1193)t này g(cid:1233)i là giá tr(cid:1231) b(cid:259)m (hash value), b(cid:1191)n tóm t(cid:1203)t hay ma(cid:1146) kho(cid:1171)a thông (cid:255)iê(cid:1173)p (message disgest). Thu(cid:1201)t ng(cid:1267) hàm b(cid:259)m (Hash Function) có ngh(cid:429)a là nén m(cid:1245)t chu(cid:1243)i có chi(cid:1221)u dài b(cid:1193)t k(cid:484) thành chu(cid:1243)i có chi(cid:1221)u dài c(cid:1237)(cid:3)(cid:255)(cid:1231)nh. (cid:264)(cid:1237)i v(cid:1247)i các (cid:1261)ng d(cid:1257)ng b(cid:1191)o m(cid:1201)t c(cid:1195)n phân bi(cid:1227)t gi(cid:1267)a hàm b(cid:259)m có khoá (MAC – Message Authentication Code) và hàm b(cid:259)m không khoá (MDC - Manipulation Detection Codes).

Ha(cid:1170)m b(cid:259)m (cid:255)(cid:1133)(cid:1131)(cid:1173)c du(cid:1170)ng trong ch(cid:1133)(cid:1146) ky(cid:1171) (cid:255)i(cid:1227)n t(cid:1265). Mô(cid:1173)t (cid:255)(cid:259)(cid:1173)c ti(cid:1171)nh c(cid:1131) ba(cid:1140)n cu(cid:1140)a ha(cid:1170)m (cid:69)(cid:259)m la(cid:1170) viê(cid:1173)c ta(cid:1173)o ma(cid:1146) kho(cid:1171)a thông (cid:255)iê(cid:1173)p râ(cid:1171)t dê(cid:1146) nh(cid:1133)ng viê(cid:1173)c pha(cid:1171) ma(cid:1146)(cid:3)(cid:255)(cid:114)(cid:1140) chuyê(cid:1140)n ng(cid:1133)(cid:1131)(cid:1173)c ma(cid:1146) thông (cid:255)iê(cid:1173)p tha(cid:1170)nh ba(cid:1140)n ro(cid:1146) ban (cid:255)(cid:107)(cid:1170)u râ(cid:1171)t kho(cid:1171) nê(cid:1171)u không mu(cid:1237)n no(cid:1171)i la(cid:1170) không thê(cid:1140).

Ly(cid:1171) do (cid:255)(cid:114)(cid:1140) s(cid:1133)(cid:1140) du(cid:1173)ng ha(cid:1170)m b(cid:259)m có th(cid:1223) so sánh v(cid:1247)i vi(cid:1227)c mô(cid:1146)i ng(cid:1133)(cid:1131)(cid:1170)i co(cid:1171) mô(cid:1173)t dâ(cid:1171)u tay duy nhâ(cid:1171)t (cid:255)(cid:114)(cid:1140) phân biê(cid:1173)t, ng(cid:1133)(cid:1131)(cid:1170)i ta cu(cid:1146)ng muô(cid:1171)n du(cid:1170)ng ha(cid:1170)m b(cid:259)m (cid:255)(cid:114)(cid:1140) ta(cid:1173)o ra gia(cid:1171) tri(cid:1173) duy nhâ(cid:1171)t cho mô(cid:1146)i thông (cid:255)iê(cid:1173)p. Vi(cid:1171) du(cid:1173), g(cid:1131)(cid:1140)i thông (cid:255)iê(cid:1173)p “mua 500 cô(cid:1140) phâ(cid:1170)n ABC” (cid:255)(cid:114)(cid:1171)n ng(cid:1133)(cid:1131)(cid:1170)i môi gi(cid:1131)(cid:1171)i ch(cid:1133)(cid:1171)ng khoa(cid:1171)n. Tr(cid:1133)(cid:1131)(cid:1171)c khi g(cid:1131)(cid:1140)i, cho thông (cid:255)iê(cid:1173)p qua mô(cid:1173)t ha(cid:1170)m b(cid:259)m (cid:255)(cid:114)(cid:1140) ta(cid:1173)o ra mô(cid:1173)t ma(cid:1146) kho(cid:1171)a thông(cid:3)(cid:255)iê(cid:1173)p r(cid:1239)i g(cid:1131)(cid:1140)i ca(cid:1140) thông (cid:255)iê(cid:1173)p va(cid:1170) gia(cid:1171) tri(cid:1173) b(cid:259)m (cid:255)(cid:114)(cid:1171)n ng(cid:1133)(cid:1131)(cid:1170)i môi gi(cid:1131)(cid:1171)i ch(cid:1133)(cid:1171)ng khoa(cid:1171)n. D(cid:1233)c (cid:255)(cid:1133)(cid:1131)(cid:1170)ng, mô(cid:1173)t ke(cid:1140) gian ch(cid:259)(cid:1173)n thông (cid:255)iê(cid:1173)p va(cid:1170) thay (cid:255)(cid:123)(cid:1140)i sô(cid:1171) cô(cid:1140) phiê(cid:1171)u tha(cid:1170)nh 5000. Khi ng(cid:1133)(cid:1131)(cid:1170)i môi gi(cid:1131)(cid:1171)i ch(cid:1133)(cid:1171)ng khoa(cid:1171)n nhâ(cid:1173)n thông (cid:255)iê(cid:1173)p và cha(cid:1173)y cu(cid:1170)ng ha(cid:1170)m b(cid:259)m trên thông (cid:255)iê(cid:1173)p. Do thông (cid:255)iê(cid:1173)p (cid:255)(cid:68)(cid:1146) bi(cid:1173) thay (cid:255)(cid:123)(cid:1140)i, gia(cid:1171) tri(cid:1173) b(cid:259)m mà ng(cid:1133)(cid:1131)(cid:1170)i môi gi(cid:1131)(cid:1171)i ch(cid:1133)(cid:1171)ng khoa(cid:1171)n thu (cid:255)(cid:1133)(cid:1131)(cid:1173)c không giô(cid:1171)ng v(cid:1131)(cid:1171)i giá tr(cid:1231) b(cid:259)m (cid:255)(cid:1133)(cid:1255)c g(cid:1131)(cid:1140)i ke(cid:1170)m theo thông (cid:255)iê(cid:1173)p, va(cid:1170) ng(cid:1133)(cid:1131)(cid:1170)i môi gi(cid:1131)(cid:1171)i ch(cid:1133)(cid:1171)ng khoa(cid:1171)n bi(cid:1219)t (cid:255)(cid:1133)(cid:1255)c thông (cid:255)iê(cid:1173)p (cid:255)ã b(cid:1231) thay (cid:255)(cid:1241)i.

Nh(cid:1133)(cid:3)(cid:255)(cid:68)(cid:1146)(cid:3)(cid:255)(cid:1133)(cid:1131)(cid:1173)c (cid:255)(cid:114)(cid:1170) câ(cid:1173)p, ca(cid:1171)c ha(cid:1170)m b(cid:259)m (cid:255)(cid:1133)(cid:1131)(cid:1173)c du(cid:1170)ng (cid:255)(cid:114)(cid:1140) ky(cid:1171) ca(cid:1171)c v(cid:259)n ba(cid:1140)n b(cid:259)(cid:1170)ng ky(cid:1146) thuâ(cid:1173)t sô(cid:1171). Mô(cid:1173)t khi ma(cid:1146) kho(cid:1171)a thông (cid:255)iê(cid:1173)p (cid:255)(cid:1133)(cid:1131)(cid:1173)c ta(cid:1173)o ra, no(cid:1171) co(cid:1171) thê(cid:1140)(cid:3)(cid:255)(cid:1133)(cid:1131)(cid:1173)c ma(cid:1146) ho(cid:1171)a chung v(cid:1131)(cid:1171)i thông (cid:255)iê(cid:1173)p ban (cid:255)(cid:107)(cid:1170)u b(cid:259)(cid:1170)ng ca(cid:1171)ch du(cid:1170)ng kho(cid:1171)a công khai cu(cid:1140)a ng(cid:1133)(cid:1131)(cid:1170)i nhâ(cid:1173)n. Ba(cid:1140)n ma(cid:1146) sau cu(cid:1170)ng co(cid:1171) thê(cid:1140)(cid:3)(cid:255)(cid:1133)(cid:1131)(cid:1173)c truyê(cid:1170)n (cid:255)i mô(cid:1173)t ca(cid:1171)ch an toa(cid:1170)n. Chi(cid:1140) ng(cid:1133)(cid:1131)(cid:1170)i nhâ(cid:1173)n m(cid:1131)(cid:1171)i co(cid:1171) thê(cid:1140) gia(cid:1140)i ma(cid:1146) thông (cid:255)iê(cid:1173)p b(cid:259)(cid:1170)ng kho(cid:1171)a cá nhân cu(cid:1140)a anh ta. Ha(cid:1170)m b(cid:259)m co(cid:1170)n co(cid:1171) mô(cid:1173)t (cid:255)(cid:259)(cid:1173)c ti(cid:1171)nh la(cid:1170) chu(cid:1171)ng sinh ra nh(cid:1133)(cid:1146)ng ma(cid:1146) kho(cid:1171)a thông (cid:255)iê(cid:1173)p râ(cid:1171)t kho(cid:1171) chuyê(cid:1140)n da(cid:1173)ng ng(cid:1133)(cid:1131)(cid:1173)c la(cid:1173)i. Do(cid:3)(cid:255)(cid:82)(cid:1171), ma(cid:1146) kho(cid:1171)a thông (cid:255)iê(cid:1173)p co(cid:1171) thê(cid:1140) truyê(cid:1170)n công khai hâ(cid:1170)u nh(cid:1133) không s(cid:1131)(cid:1173) ai se(cid:1146) du(cid:1170)ng no(cid:1171)(cid:3)(cid:255)(cid:114)(cid:1140) chuyê(cid:1140)n ng(cid:1133)(cid:1131)(cid:1173)c la(cid:1173)i tha(cid:1170)nh thông (cid:255)iê(cid:1173)p ban (cid:255)(cid:107)(cid:1170)u.

33

3.1. Tính ch(cid:1193)t c(cid:1259)a hàm b(cid:259)m

3.1.1. Hàm b(cid:259)m m(cid:1245)t chi(cid:1221)u (OWHF - One-Way Hash Function)

Khái ni(cid:1227)m hàm b(cid:259)m m(cid:1245)t chi(cid:1221)u (cid:255)(cid:1133)(cid:1255)c gi(cid:1247)i thi(cid:1227)u b(cid:1251)i Diffie và Hellman. Còn khái ni(cid:1227)m (cid:255)(cid:1195)u tiên không hình th(cid:1261)c (cid:255)(cid:1133)(cid:1255)c gi(cid:1247)i thi(cid:1227)u b(cid:1251)i Merkle.

(cid:264)(cid:851)nh ngh(cid:429)a 1: M(cid:1245)t hàm b(cid:259)m m(cid:1245)t chi(cid:1221)u là m(cid:1245)t hàm b(cid:259)m h th(cid:1235)a các (cid:255)(cid:76)(cid:1221)u ki(cid:1227)n sau:

1. (cid:264)(cid:1237)i s(cid:1237) X có th(cid:1223) có chi(cid:1221)u dài b(cid:1193)t k(cid:484) và k(cid:1219)t qu(cid:1191) h(X) có chi(cid:1221)u dài c(cid:1237) (cid:255)(cid:1231)nh n bits.

2. Hàm b(cid:259)m ph(cid:1191)i là m(cid:1245)t chi(cid:1221)u có ngh(cid:429)a là cho Y là (cid:1191)nh c(cid:1259)a X thì không có kh(cid:1191) n(cid:259)ng tính toán (cid:255)(cid:1223) tìm m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p X sao cho h(X) = Y (tính ch(cid:1237)ng ngh(cid:1231)ch (cid:1191)nh) và cho X và h(X) thì không th(cid:1223) tìm (cid:255)(cid:1133)(cid:1255)c thông (cid:255)i(cid:1227)p X’ „ X (cid:255)(cid:1223) h(X’) = h(X) (tính ch(cid:1237)ng trùng (cid:1191)nh).

Chi(cid:1221)u dài n c(cid:1259)a k(cid:1219)t qu(cid:1191) b(cid:259)m th(cid:1133)(cid:1249)ng t(cid:1263) 64 (cid:255)(cid:1219)n 128 bit. M(cid:1245)t hàm có tính ch(cid:1193)t ch(cid:1237)ng ngh(cid:1231)ch (cid:1191)nh (cid:255)(cid:1133)(cid:1255)c bi(cid:1219)t nh(cid:1133) hàm m(cid:1245)t chi(cid:1221)u (tính ch(cid:1193)t ch(cid:1237)ng ngh(cid:1231)ch (cid:1191)nh là (cid:255)(cid:1211)c thù cho các hàm b(cid:259)m). Ch(cid:1237)ng trùng (cid:1191)nh còn (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là s(cid:1269) ch(cid:1237)ng xung (cid:255)(cid:1245)t y(cid:1219)u. V(cid:1247)i m(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng (ví d(cid:1257): các hàm phát sinh ng(cid:1199)u nhiên và thu(cid:1201)t toán MAC trên c(cid:1131) s(cid:1251) các hàm b(cid:259)m), ph(cid:1195)n l(cid:1247)n (cid:255)(cid:1195)u vào c(cid:1259)a hàm b(cid:259)m có th(cid:1223) bi(cid:1219)t tr(cid:1133)(cid:1247)c, tuy nhiên ng(cid:1133)(cid:1249)i ta yêu c(cid:1195)u là ph(cid:1195)n không bi(cid:1219)t còn l(cid:1189)i c(cid:1259)a (cid:255)(cid:1195)u vào khó ph(cid:1257)c h(cid:1239)i sau khi b(cid:259)m. (cid:264)(cid:1211)c tính này g(cid:1233)i là ch(cid:1237)ng ngh(cid:1231)ch (cid:1191)nh thành ph(cid:1195)n (partial preimage resistance).

Hàm b(cid:259)m ch(cid:1237)ng xung (cid:255)(cid:1245)t (CRHF - Collision Resistant Hash 3.1.2. Function)

T(cid:1195)m quan tr(cid:1233)ng c(cid:1259)a vi(cid:1227)c ch(cid:1237)ng xung (cid:255)(cid:1245)t (cid:255)(cid:1237)i v(cid:1247)i các hàm b(cid:259)m (cid:255)(cid:1133)(cid:1255)c dùng trong các l(cid:1133)(cid:1255)c (cid:255)(cid:1239) ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)(cid:3)(cid:255)(cid:1195)u tiên (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1133)a ra b(cid:1251)i Yuval. (cid:264)(cid:1231)nh ngh(cid:429)a (cid:255)(cid:1195)u tiên c(cid:1259)a CRHF (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1221) xu(cid:1193)t b(cid:1251)i Damgard. (cid:264)(cid:1231)nh ngh(cid:429)a không hình th(cid:1261)c (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1221) xu(cid:1193)t b(cid:1251)i Merkle.

(cid:264)(cid:851)nh ngh(cid:429)a 2: M(cid:1245)t hàm b(cid:259)m ch(cid:1237)ng xung (cid:255)(cid:1245)t (CRHF) là m(cid:1245)t hàm h tho(cid:1191) các (cid:255)i(cid:1221)u ki(cid:1227)n sau:

1. (cid:264)(cid:1237)i s(cid:1237) X có th(cid:1223) có chi(cid:1221)u dài b(cid:1193)t k(cid:484) và k(cid:1219)t qu(cid:1191) h(X) có chi(cid:1221)u dài c(cid:1237) (cid:255)(cid:1231)nh n bits.

2. Hàm b(cid:259)m ph(cid:1191)i là hàm m(cid:1245)t chi(cid:1221)u. 3. Hàm b(cid:259)m ch(cid:1237)ng xung (cid:255)(cid:1245)t có ngh(cid:429)a là s(cid:1217) không kh(cid:1191) thi n(cid:1219)u c(cid:1195)n tìm hai thông (cid:255)i(cid:1227)p khác nhau có cùng k(cid:1219)t qu(cid:1191) b(cid:259)m.

34

3.1.3. Các hàm b(cid:259)m l(cid:1211)p (Iterated Hash Function)

(cid:264)a s(cid:1237) các hàm b(cid:259)m hi(cid:1227)n nay (cid:255)(cid:1221)u d(cid:1269)a trên nguyên t(cid:1203)c nén v(cid:1247)i (cid:255)(cid:1195)u vào có chi(cid:1221)u dài c(cid:1237)(cid:3) (cid:255)(cid:1231)nh. Chúng x(cid:1265) lý các kh(cid:1237)i thông (cid:255)(cid:76)(cid:1227)p theo cách t(cid:1133)(cid:1131)ng t(cid:1269) nh(cid:1133) nhau. Lai và Messay g(cid:1233)i (cid:255)ây là hàm b(cid:259)m l(cid:1211)p. D(cid:1267) li(cid:1227)u (cid:255)(cid:1195)u vào (cid:255)(cid:1133)(cid:1255)c thêm các bit/byte/… (cid:255)(cid:1223) chi(cid:1221)u dài (cid:255)(cid:1195)u vào là b(cid:1245)i s(cid:1237) c(cid:1259)a chi(cid:1221)u dài kh(cid:1237)i. Ti(cid:1219)p theo d(cid:1267) li(cid:1227)u (cid:255)(cid:1195)u vào (cid:255)(cid:1133)(cid:1255)c chia thành t kh(cid:1237)i t(cid:1263) X1(cid:3)(cid:255)(cid:1219)n Xt. K(cid:1219)t qu(cid:1191) b(cid:259)m (cid:255)(cid:1133)(cid:1255)c tính nh(cid:1133) sau:

i = 1, 2, …, t H0 = IV Hi = f(Xi, Hi-1) h(X) = g(Ht)

f: hàm nén hay hàm vòng. Trong (cid:255)ó: § IV (Initial Value) : giá tr(cid:1231) kh(cid:1251)i (cid:255)(cid:1195)u. § Hi (chaining variable) : bi(cid:1219)n xích. § § g: hàm bi(cid:1219)n (cid:255)(cid:1241)i (cid:255)(cid:1195)u ra.

Hai y(cid:1219)u t(cid:1237) có t(cid:1195)m quan tr(cid:1233)ng (cid:1191)nh h(cid:1133)(cid:1251)ng (cid:255)(cid:1219)n tính b(cid:1191)o m(cid:1201)t c(cid:1259)a hàm b(cid:259)m là: qui lu(cid:1201)t thêm giá tr(cid:1231) (thêm các bit hay byte,…) và ch(cid:1233)n IV. Lu(cid:1201)t thêm giá tr(cid:1231) này không (cid:255)(cid:1133)(cid:1255)c nh(cid:1201)p nh(cid:1205)ng (t(cid:1261)c là không t(cid:1239)n t(cid:1189)i hai thông (cid:255)(cid:76)(cid:1227)p sau khi thêm cho hai giá tr(cid:1231) gi(cid:1237)ng nhau); cu(cid:1237)i cùng ng(cid:1133)(cid:1249)i ta thêm chi(cid:1221)u dài thông (cid:255)i(cid:1227)p. Còn IV nên (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a nh(cid:1133) ph(cid:1195)n mô t(cid:1191) c(cid:1259)a hàm b(cid:259)m (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là s(cid:1269) t(cid:259)ng (cid:70)(cid:1133)(cid:1249)ng thông (cid:255)(cid:76)(cid:1227)p rút g(cid:1233)n (MD-strengthening = Message Disgest – strengthening) theo Merkle và Damgard.

(cid:264)(cid:851)nh lý 1 ((cid:264)(cid:851)nh lý Lai-Massey): Gi(cid:1191) s(cid:1265) r(cid:1205)ng vi(cid:1227)c thêm giá tr(cid:1231) bit/byte/… bao g(cid:1239)m c(cid:1191) chi(cid:1221)u dài c(cid:1259)a chu(cid:1243)i (cid:255)(cid:1195)u vào và gi(cid:1191) s(cid:1265) thêm r(cid:1205)ng thông (cid:255)i(cid:1227)p X ban (cid:255)(cid:1195)u (ch(cid:1133)a thêm giá tr(cid:1231)) ch(cid:1261)a ít nh(cid:1193)t 2 kh(cid:1237)i thì khi tìm m(cid:1245)t ngh(cid:1231)ch (cid:1191)nh th(cid:1261) hai (cid:255)(cid:1237)i v(cid:1247)i h v(cid:1247)i giá tr(cid:1231) IV c(cid:1237)(cid:3)(cid:255)(cid:1231)nh 2n thao tác n(cid:1219)u và ch(cid:1229) n(cid:1219)u tìm m(cid:1245)t ngh(cid:1231)ch (cid:1191)nh th(cid:1261) hai (cid:255)(cid:1237)i v(cid:1247)i f v(cid:1247)i Hi-1 (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n b(cid:1193)t k(cid:484) yêu c(cid:1195)u 2n thao tác.

(cid:264)(cid:851)nh lý 2 ((cid:264)(cid:851)nh lý Damgard-Merkle):(cid:3) (cid:264)(cid:1211)t f là hàm b(cid:259)m ch(cid:1237)ng xung (cid:255)(cid:1245)t ánh x(cid:1189) l thành n bits (v(cid:1247)i l – n > 1). N(cid:1219)u m(cid:1245)t lu(cid:1201)t thêm không nh(cid:1201)p nh(cid:1205)ng (cid:255)(cid:1133)(cid:1255)c s(cid:1265) d(cid:1257)ng thì hàm thi(cid:1219)t l(cid:1201)p sau (cid:255)ây s(cid:1217) cho ra m(cid:1245)t hàm b(cid:259)m ch(cid:1237)ng xung (cid:255)(cid:1245)t.

i = 2, 3, …, t. H1 = f(0n+1 || X1) Hi = f(Hi-1 || 1 || Xi)

35

3.2. Gi(cid:1247)i thi(cid:1227)u m(cid:1245)t s(cid:1237) hàm b(cid:259)m

3.2.1. Hàm MD5

3.2.1.1. Gi(cid:867)i thi(cid:847)u

MD5 do giáo s(cid:1133) Ron Rivest (cid:255)(cid:1221) xu(cid:1193)t n(cid:259)m 1991. Thu(cid:1201)t toán l(cid:1193)y d(cid:1267) li(cid:1227)u (cid:255)(cid:1195)u vào có chi(cid:1221)u dài b(cid:1193)t k(cid:484) và cho ra k(cid:1219)t qu(cid:1191) thông (cid:255)i(cid:1227)p rút g(cid:1233)n dài 128-bit. Thu(cid:1201)t toán (cid:255)(cid:1133)(cid:1255)c ch(cid:1261)ng minh là không kh(cid:1191) thi trong vi(cid:1227)c tìm ra 2 thông (cid:255)i(cid:1227)p có cùng thông (cid:255)i(cid:1227)p rút g(cid:1233)n ho(cid:1211)c không th(cid:1223) tìm thông (cid:255)i(cid:1227)p ban (cid:255)(cid:1195)u t(cid:1263) thông (cid:255)(cid:76)(cid:1227)p rút g(cid:1233)n cho tr(cid:1133)(cid:1247)c. Thu(cid:1201)t toán MD5 (cid:255)(cid:1133)(cid:1255)c áp d(cid:1257)ng cho h(cid:1195)u h(cid:1219)t các (cid:1261)ng d(cid:1257)ng ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265). (cid:1250)(cid:3)(cid:255)ó m(cid:1245)t t(cid:1201)p tin l(cid:1247)n ph(cid:1191)i (cid:255)(cid:1133)(cid:1255)c “nén” trong tr(cid:1189)ng thái an toàn tr(cid:1133)(cid:1247)c khi (cid:255)(cid:1133)(cid:1255)c mã hoá b(cid:1205)ng m(cid:1245)t khoá cá nhân trong h(cid:1227) mã hoá khoá công khai nh(cid:1133) RSA ch(cid:1207)ng h(cid:1189)n. Thu(cid:1201)t toán MD5 (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) ch(cid:1189)y khá nhanh trên các máy 32-bit và không yêu c(cid:1195)u b(cid:1193)t k(cid:484) b(cid:1191)ng thay th(cid:1219) (S-box) l(cid:1247)n nào. Thu(cid:1201)t toán MD5 là phiên b(cid:1191)n m(cid:1251) r(cid:1245)ng c(cid:1259)a thu(cid:1201)t toán MD4. MD5 ch(cid:1189)y khá ch(cid:1201)m h(cid:1131)n so v(cid:1247)i MD4, nh(cid:1133)ng (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) c(cid:1197)n th(cid:1201)n h(cid:1131)n và có tính b(cid:1191)o m(cid:1201)t cao h(cid:1131)n. MD4 (cid:255)ang ph(cid:1191)i (cid:255)(cid:1237)i (cid:255)(cid:1195)u v(cid:1247)i nh(cid:1267)ng t(cid:1193)n công gi(cid:1191)i mã.

3.2.1.2. Thu(cid:821)t toán

C(cid:458)ng nh(cid:1133) MD4, MD5 th(cid:1269)c hi(cid:1227)n trên (cid:255)(cid:1131)n v(cid:1231) kh(cid:1237)i là chu(cid:1243)i bit. (cid:264)(cid:1195)u vào là thông (cid:255)i(cid:1227)p b-bit (b Z, b>=0, b không nh(cid:1193)t thi(cid:1219)t ph(cid:1191)i là b(cid:1245)i s(cid:1237) c(cid:1259)a 8, và có th(cid:1223) l(cid:1247)n tu(cid:484) ý); (cid:255)(cid:1195)u ra là thông (cid:255)i(cid:1227)p rút g(cid:1233)n. Các bit c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p (cid:255)(cid:1133)(cid:1255)c vi(cid:1219)t l(cid:1189)i nh(cid:1133) sau: m0, m1, …., mb-1

Tính toán thông (cid:255)i(cid:1227)p rút g(cid:1233)n c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p g(cid:1239)m 5 b(cid:1133)(cid:1247)c sau:

1. Thêm bit: Thông (cid:255)i(cid:1227)p (cid:255)(cid:1133)(cid:1255)c thêm các bit (cid:255)(cid:1223) chi(cid:1221)u dài khi mod 512 b(cid:1205)ng 448 và thêm 64 bit (cid:255)(cid:1223) l(cid:1133)u chi(cid:1221)u dài thông (cid:255)i(cid:1227)p (cid:255)(cid:1223) cho kích th(cid:1133)(cid:1247)c sau cùng c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p này là b(cid:1245)i s(cid:1237) c(cid:1259)a 512. B(cid:1133)(cid:1247)c này luôn (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n dù chi(cid:1221)u dài có b(cid:1205)ng 448 khi mod 512 hay không. Thêm ít nh(cid:1193)t là 1 bit và thêm nhi(cid:1221)u nh(cid:1193)t là 512 bit. Thông (cid:255)i(cid:1227)p ban (cid:255)(cid:1195)u (cid:255)(cid:1133)(cid:1255)c thêm 1 bit ‘1’ duy nh(cid:1193)t và sau (cid:255)ó là thêm các bit ‘0’ (cid:255)(cid:1223) chi(cid:1221)u dài sau cùng c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p là 448 khi mod 512.

2. Thêm chi(cid:1221)u dài: b là chi(cid:1221)u dài c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p tr(cid:1133)(cid:1247)c khi thêm các bit vào ((cid:1251) b(cid:1133)(cid:1247)c 1) (cid:255)(cid:1133)(cid:1255)c l(cid:1133)u tr(cid:1267) trong 64 bit, b không th(cid:1223) l(cid:1247)n h(cid:1131)n 264 bit; 64 bit l(cid:1133)u tr(cid:1267) b (cid:255)(cid:1133)(cid:1255)c chia làm 2 t(cid:1263) 32 bit (cid:255)(cid:1133)(cid:1255)c thêm vào thông (cid:255)i(cid:1227)p theo d(cid:1189)ng t(cid:1263) có th(cid:1261) t(cid:1269) th(cid:1193)p (cid:255)(cid:1133)(cid:1255)c l(cid:1133)u tr(cid:1133)(cid:1247)c.Thông (cid:255)(cid:76)(cid:1227)p sau khi qua (cid:69)(cid:1133)(cid:1247)c 1 và thêm b vào s(cid:1217) có chi(cid:1221)u dài chính xác là b(cid:1245)i s(cid:1237) c(cid:1259)a 512 bit (16 t(cid:1263) 32 bit). (cid:264)(cid:1211)t M[0..N-1] ký hi(cid:1227)u cho các t(cid:1263) c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p k(cid:1219)t qu(cid:1191) v(cid:1247)i N là b(cid:1245)i s(cid:1237) c(cid:1259)a 16-t(cid:1263).

36

3. Kh(cid:1251)i t(cid:1189)o vùng (cid:255)(cid:1227)m MD: Vùng (cid:255)(cid:1227)m g(cid:1239)m 4 t(cid:1263) (A, B, C, D) (cid:255)(cid:1133)(cid:1255)c dùng (cid:255)(cid:1223) tính giá tr(cid:1231) b(cid:259)m (hay giá tr(cid:1231) rút g(cid:1233)n c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p). M(cid:1243)i t(cid:1263) A, B, C, D là m(cid:1245)t thanh ghi 32-bit, các thanh ghi này (cid:255)(cid:1133)(cid:1255)c kh(cid:1251)i t(cid:1189)o b(cid:1251)i các giá tr(cid:1231) sau theo h(cid:1227) s(cid:1237) th(cid:1201)p l(cid:1257)c phân, các byte th(cid:1261) t(cid:1269) th(cid:1193)p l(cid:1133)u tr(cid:1133)(cid:1247)c:

word A: 01 23 45 67 word B: 89 ab cd ef word C: fe dc ba 98 word D: 76 54 32 10

4. X(cid:1265) lý các thông (cid:255)(cid:76)(cid:1227)p theo các kh(cid:1237)i 16-t(cid:1263): Tr(cid:1133)(cid:1247)c h(cid:1219)t c(cid:1195)n (cid:255)(cid:1231)nh ngh(cid:429)a 4 hàm ph(cid:1257) tr(cid:1255) có (cid:255)(cid:1195)u vào là 3 t(cid:1263) 32-bit và cho k(cid:1219)t qu(cid:1191) là 1 t(cid:1263) 32-bit.

F(X,Y,Z) = XY OR NOT(X) Z G(X,Y,Z) = XZ OR Y NOT(Z) H(X,Y,Z) = X XOR Y XOR Z I (X,Y,Z) = Y XOR (X OR NOT(Z))

(cid:37)(cid:1133)(cid:1247)c này dùng m(cid:1245)t b(cid:1191)ng g(cid:1239)m 64 ph(cid:1195)n t(cid:1265) T[0..63] (cid:255)(cid:1133)(cid:1255)c kh(cid:1251)i t(cid:1189)o t(cid:1263) hàm sine, T[i] ký hi(cid:1227)u cho ph(cid:1195)n t(cid:1265) th(cid:1261) i c(cid:1259)a b(cid:1191)ng và b(cid:1205)ng abs(sin(i)) * 4294967296, i có (cid:255)(cid:1131)n v(cid:1231) là radian.

static DWORD T[64] = { //vòng 1

0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, //vòng 2

0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, 0xd62f105d, 0x2441453 , 0xd8a1e681, 0xe7d3fbc8, 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, //vòng 3

0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x4881d05 , 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,

//vòng 4

0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 };

37

(cid:37)(cid:1133)(cid:1247)c này (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n nh(cid:1133) sau :

/* X(cid:1265) lý m(cid:1243)i kh(cid:1237)i 16-t(cid:1263) */ For i = 0 to N/16-1 do

/* Copy kh(cid:1237)i i vào X. */ For j = 0 to 15 do Set X[j] to M[i*16+j]. end for on j

/* L(cid:1133)u l(cid:1189)i n(cid:1245)i dung các thanh ghi */ AA = A BB = B CC = C DD = D

/* Vòng 1. */ /* (cid:264)(cid:1211)t [abcd k s i] ký hi(cid:1227)u cho a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */

[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8] [ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]

/* Vòng 2. */ /* (cid:264)(cid:1211)t [abcd k s i] ký hi(cid:1227)u cho a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */

[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20] [ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28] [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

/* Vòng 3. */ /* (cid:264)(cid:1211)t [abcd k s t] ký hi(cid:1227)u cho a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */

[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36] [ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40] [ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44] [ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

/* Vòng 4. */ /* (cid:264)(cid:1211)t [abcd k s t] ký hi(cid:1227)u cho a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */

[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52] [ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56] [ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]

38

[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]

hay các vòng (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n c(cid:1257) th(cid:1223) nh(cid:1133) sau: /* Vòng 1 */ FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */ FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */ FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */ FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */ FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */ FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */ FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */ FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */ FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */ FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */ FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */

/* Vòng 2 */ GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */ GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */ GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */ GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */ GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */ GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */ GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */ GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */ GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */ GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */ GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */ GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */

/* Vòng 3 */ HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */ HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */ HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */ HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */

39

HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */ HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */ HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */ HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */ HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */ HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */

/* Vòng 4 */ II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */ II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */ II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */ II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */ II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */ II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */ II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */ II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */ II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */ II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */

A = A + AA B = B + BB C = C + CC D = D + DD

//h(cid:1219)t vòng l(cid:1211)p theo i

5. Xu(cid:1193)t k(cid:1219)t qu(cid:1191): Giá tr(cid:1231) b(cid:259)m (cid:255)(cid:1133)(cid:1255)c l(cid:1133)u trong 4 thanh ghi A, B, C, D có ngh(cid:429)a là chu(cid:1243)i byte k(cid:1219)t qu(cid:1191) b(cid:1203)t (cid:255)(cid:1195)u v(cid:1247)i v(cid:1247)i byte th(cid:1193)p c(cid:1259)a A và k(cid:1219)t thúc v(cid:1247)i byte cao c(cid:1259)a D.

3.2.1.3. Phân bi(cid:847)t MD5 v(cid:867)i MD4

MD5 khác MD4 (cid:1251) nh(cid:1267)ng (cid:255)(cid:76)(cid:1223)m sau:

1. MD5 có thêm vòng th(cid:1261) t(cid:1133) nh(cid:1205)m t(cid:259)ng (cid:255)(cid:1245) an toàn.

40

2. M(cid:1243)i b(cid:1133)(cid:1247)c có m(cid:1245)t h(cid:1205)ng s(cid:1237) ph(cid:1257) T[i] phân bi(cid:1227)t còn MD4 s(cid:1265) d(cid:1257)ng 3 h(cid:1205)ng s(cid:1237) 0, 0x5A827999, 0x6ED9EBA1 cho t(cid:1263)ng chu k(cid:484) bi(cid:1219)n (cid:255)(cid:1241)i. 3. Hàm G trong vòng 2 thay (cid:255)(cid:1241)i t(cid:1263) (XY OR XZ OR YZ) thành (XZ OR Y NOT(Z)) nh(cid:1205)m làm cho g ít tính (cid:255)(cid:1237)i x(cid:1261)ng h(cid:1131)n.

4. K(cid:1219)t qu(cid:1191) m(cid:1243)i b(cid:1133)(cid:1247)c c(cid:1245)ng v(cid:1247)i k(cid:1219)t qu(cid:1191) c(cid:1259)a b(cid:1133)(cid:1247)c tr(cid:1133)(cid:1247)c cho th(cid:1193)y k(cid:1219)t qu(cid:1191) c(cid:1259)a m(cid:1243)i b(cid:1133)(cid:1247)c ph(cid:1257) thu(cid:1245)c vào b(cid:1133)(cid:1247)c tr(cid:1133)(cid:1247)c (cid:255)ó. (cid:264)i(cid:1221)u này giúp thu(cid:1201)t toán lan truy(cid:1221)n nhanh h(cid:1131)n.

5. Các h(cid:1205)ng s(cid:1237) xoay vòng trong m(cid:1243)i vòng v(cid:1263)a (cid:255)(cid:1133)(cid:1255)c t(cid:1237)i (cid:1133)u, (cid:255)(cid:1223)(cid:3)(cid:255)(cid:1189)t (cid:255)(cid:1133)(cid:1255)c m(cid:1245)t hi(cid:1227)u (cid:1261)ng lan truy(cid:1221)n nhanh h(cid:1131)n. Các h(cid:1205)ng s(cid:1237) xoay vòng trong các vòng khác nhau thì phân bi(cid:1227)t nhau.

3.2.2. SHA-1

3.2.2.1. Gi(cid:867)i thi(cid:847)u

SHA_1 d(cid:1269)a trên các nguyên lý t(cid:1133)(cid:1131)ng t(cid:1269) v(cid:1247)i nh(cid:1267)ng nguyên lý mà giáo (cid:86)(cid:1133) Ronald L.Rivest c(cid:1259)a MIT khi thi(cid:1219)t k(cid:1219) thu(cid:1201)t toán b(cid:259)m MD4, SHA_1 (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1221) xu(cid:1193)t vào tháng 4 n(cid:259)m 1995.

Khi nh(cid:1201)p vào m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p có chi(cid:1221)u dài b(cid:1193)t k(cid:484) nh(cid:1235) h(cid:1131)n 264 bit, SHA_1 cho ra k(cid:1219)t qu(cid:1191) là m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p rút g(cid:1233)n (hay giá tr(cid:1231) b(cid:259)m) dài 160 bits.

SHA_1 (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là an toàn vì không th(cid:1223) tìm ra thông (cid:255)i(cid:1227)p liên quan (cid:255)(cid:1219)n thông (cid:255)i(cid:1227)p rút g(cid:1233)n hay tìm ra hai thông (cid:255)i(cid:1227)p khác nhau nh(cid:1133)ng có cùng thông (cid:255)i(cid:1227)p rút g(cid:1233)n. B(cid:1193)t k(cid:484) thay (cid:255)(cid:1241)i nào c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p, v(cid:1247)i xác su(cid:1193)t cao, k(cid:1219)t qu(cid:1191) v(cid:1199)n cho ra các thông (cid:255)i(cid:1227)p rút g(cid:1233)n khác nhau.

3.2.2.2. Các hàm và các h(cid:825)ng s(cid:857)(cid:3)(cid:255)(cid:753)(cid:875)c dùng trong thu(cid:821)t toán

M(cid:1245)t chu(cid:1243)i các hàm logic f(0), f(1),…, f(79) (cid:255)(cid:1133)(cid:1255)c dùng trong thu(cid:1201)t toán SHA_1. M(cid:1243)i hàm f(t), 0 (cid:148) t (cid:148) 79, ho(cid:1189)t (cid:255)(cid:1245)ng trên các t(cid:1263) 32-bit B, C, D và cho ra m(cid:1245)t t(cid:1263) 32-bit. Hàm f(t, B, C, D) (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a nh(cid:1133) sau:

( 0 (cid:148) t (cid:148) 19). (20 (cid:148) t (cid:148) 39).

Cho các t(cid:1263) B, C, D. f(t;B,C,D) = (B AND C) OR ((NOT B) AND D) f(t;B,C,D) = B XOR C XOR D f(t;B,C,D) = (B AND C) OR (B AND D) OR (C AND D) (40 (cid:148)t (cid:148)59). f(t;B,C,D) = B XOR C XOR D (60 (cid:148) t (cid:148) 79).

Các t(cid:1263) h(cid:1205)ng s(cid:1237) K(0), K(1),…K(79) (cid:255)(cid:1133)(cid:1255)c dùng trong SHA_1. Trong h(cid:1227) th(cid:1201)p l(cid:1257)c phân, nh(cid:1267)ng h(cid:1205)ng này (cid:255)(cid:1133)(cid:1255)c cho b(cid:1251)i các giá tr(cid:1231) nh(cid:1133) sau:

K(t) = 5A827999 K(t) = 6ED9EBA1 K(t) = 8F1BBCDC K(t) = CA62C1D6 ( 0 (cid:148) t (cid:148) 19). (20 (cid:148) t (cid:148) 39). (40 (cid:148) t (cid:148) 59). (60 (cid:148) t (cid:148) 79).

41

3.2.2.3. Tính giá tr(cid:851) b(cid:259)m

Có hai ph(cid:1133)(cid:1131)ng pháp (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1221) xu(cid:1193)t trong vi(cid:1227)c tính giá tr(cid:1231) b(cid:259)m c(cid:1259)a thu(cid:1201)t toán SHA_1 và c(cid:1191) hai cho ra cùng giá tr(cid:1231) b(cid:259)m. M(cid:1211)c dù thu(cid:1201)t toán th(cid:1261) hai l(cid:1133)u tr(cid:1267) 64 t(cid:1263) 32-bit, nó có th(cid:1223) kéo dài th(cid:1249)i gian ho(cid:1189)t (cid:255)(cid:1245)ng do vi(cid:1227)c t(cid:259)ng tính ph(cid:1261)c t(cid:1189)p trong tính toán (cid:255)(cid:1231)a ch(cid:1229) cho {W[t]} trong b(cid:1133)(cid:1247)c c. Ngoài ra còn có nh(cid:1267)ng ph(cid:1133)(cid:1131)ng pháp tính toán khác c(cid:458)ng cho các k(cid:1219)t qu(cid:1191) gi(cid:1237)ng nhau.

q Ph(cid:1133)(cid:1131)ng pháp 1 (thêm bit vào thông (cid:255)i(cid:1227)p )

SHA_1(cid:3)(cid:255)(cid:1133)(cid:1255)c dùng (cid:255)(cid:1223) tính thông (cid:255)(cid:76)(cid:1227)p rút g(cid:1233)n cho (cid:255)(cid:1195)u vào là m(cid:1245)t thông (cid:255)i(cid:1227)p hay m(cid:1245)t t(cid:1201)p tin d(cid:1267) li(cid:1227)u có chi(cid:1221)u dài l < 264. Thông (cid:255)i(cid:1227)p hay t(cid:1201)p tin d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) m(cid:1245)t chu(cid:1243)i bit. N(cid:1219)u s(cid:1237) bit c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p là b(cid:1245)i s(cid:1237) c(cid:1259)a 8 ((cid:255)(cid:1223) g(cid:1233)n (cid:75)(cid:1131)n bi(cid:1223)u di(cid:1225)n thông (cid:255)(cid:76)(cid:1227)p (cid:1251) h(cid:1227) l(cid:1257)c phân). M(cid:1257)c (cid:255)ích c(cid:1259)a vi(cid:1227)c thêm các bit vào thông (cid:255)i(cid:1227)p (cid:255)(cid:1223) làm cho chi(cid:1221)u dài t(cid:1241)ng c(cid:1245)ng c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p là b(cid:1245)i s(cid:1237) c(cid:1259)a 512. SHA_1 liên t(cid:1257)c x(cid:1265) lý các kh(cid:1237)i 512 bit (cid:255)(cid:1223) tính thông (cid:255)(cid:76)(cid:1227)p rút g(cid:1233)n.

Vi(cid:1227)c thêm bit (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n nh(cid:1133) sau: m(cid:1245)t bit ‘1’ (cid:255)(cid:1133)(cid:1255)c thêm vào ti(cid:1219)p theo là m(cid:1245)t chu(cid:1243)i bit ‘0’ và m(cid:1245)t giá tr(cid:1231) nguyên 64 bit ch(cid:1261)a chi(cid:1221)u dài c(cid:1259)a thông (cid:255)i(cid:1227)p ban (cid:255)(cid:1195)u (cid:255)(cid:1133)(cid:1255)c thêm vào thông (cid:255)i(cid:1227)p sao cho chi(cid:1221)u dài sau cùng c(cid:1259)a thông (cid:255)i(cid:1227)p là b(cid:1245)i s(cid:1237) c(cid:1259)a 512 bit. Chi(cid:1221)u dài thông (cid:255)i(cid:1227)p (cid:255)(cid:1133)(cid:1255)c l(cid:1133)u trong 2 t(cid:1263) 32-bit, n(cid:1219)u chi(cid:1221)u dài l < 232 thì t(cid:1263)(cid:3)(cid:255)(cid:1195)u tiên ch(cid:1261)a các bit ‘0’. Thông (cid:255)(cid:76)(cid:1227)p sau khi thêm (cid:255)(cid:1133)(cid:1255)c x(cid:1265) lý nh(cid:1133) nh(cid:1267)ng kh(cid:1237)i 512-bit. Thông (cid:255)i(cid:1227)p sau khi thêm ch(cid:1261)a 16*n t(cid:1263) 32-bit v(cid:1247)i n>0, thông (cid:255)(cid:76)(cid:1227)p g(cid:1239)m n kh(cid:1237)i 16-t(cid:1263) M(0), M(1),…M(n).

Vi(cid:1227)c tính toán dùng 2 vùng (cid:255)(cid:1227)m , m(cid:1243)i vùng (cid:255)(cid:1227)m ch(cid:1261)a 5 t(cid:1263) 32 bit và m(cid:1245)t chu(cid:1243)i 80 t(cid:1263) 32-bit. Các t(cid:1263) c(cid:1259)a vùng (cid:255)(cid:1227)m 5 t(cid:1263)(cid:3)(cid:255)(cid:1195)u ký hi(cid:1227)u là A, B, C, D, E. Các t(cid:1263) c(cid:1259)a vùng (cid:255)(cid:1227)m trong 5 t(cid:1263) th(cid:1261) hai ký hi(cid:1227)u là H0, H1, H2, H3, H4. Các t(cid:1263) c(cid:1259)a chu(cid:1243)i 80-t(cid:1263)(cid:3) (cid:255)(cid:1133)(cid:1255)c ký hi(cid:1227)u là W(0), W(1), W(2),….,W(79). M(cid:1245)t vùng (cid:255)(cid:1227)m TEMP ch(cid:1261)a duy nh(cid:1193)t 1 t(cid:1263)(cid:3)(cid:255)(cid:1133)(cid:1255)c dùng.

(cid:264)(cid:1223) t(cid:1189)o ra thông (cid:255)(cid:76)(cid:1227)p rút g(cid:1233)n , các kh(cid:1237)i 16-t(cid:1263) M(1),M(2),…,M(n) (cid:255)(cid:1133)(cid:1255)c x(cid:1265) lý theo th(cid:1261) t(cid:1269). Vi(cid:1227)c x(cid:1265) lý m(cid:1243)i M(i) bao g(cid:1239)m 80 b(cid:1133)(cid:1247)c. Tr(cid:1133)(cid:1247)c khi x(cid:1265) lý b(cid:1193)t k(cid:484) kh(cid:1237)i nào , Hi(cid:3)(cid:255)(cid:1133)(cid:1255)c kh(cid:1251)i (cid:255)(cid:1245)ng theo h(cid:1227) th(cid:1227)p l(cid:1257)c phân nh(cid:1133) sau:

H0 = 67452301 H1 = EFCDAB89 H2 = 98BADCFE H3 = 10325476 H4 = C3D2E1F0.

Bây gi(cid:1249) M(1), M(2), …, M(n) (cid:255)(cid:1133)(cid:1255)c x(cid:1265) lý nh(cid:1133) sau:

1. Chia M(i) thành 16 t(cid:1263) W(0), W(1), …, W(15), trong (cid:255)ó W(0) là t(cid:1263)

bên trái nh(cid:1193)t. 2. For t = 16 to 79

42

W(t) = S^1(W(t-3) XOR W(t-8) XOR W(t-14) XOR W(t-16)).

3. (cid:264)(cid:1211)t A = H0, B = H1, C = H2, D = H3, E = H4. 4. For t = 0 to 79 do

TEMP = S^5(A) + f(t;B,C,D) + E + W(t) + K(t); E = D; D = C; C = S^30(B); B = A; A = TEMP;

5. H0 = H0 + A, H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E.

Sau khi x(cid:1265) lý thông (cid:255)i(cid:1227)p là m(cid:1245)t chu(cid:1243)i dài 160-bit (cid:255)(cid:1133)(cid:1255)c bi(cid:1223)u di(cid:1225)n b(cid:1205)ng 5 t(cid:1263): H0 H1 H2 H3 H4.

q Ph(cid:1133)(cid:1131)ng pháp 2

Ph(cid:1133)(cid:1131)ng pháp (cid:1251) trên gi(cid:1191) s(cid:1265) chu(cid:1243)i W(0),…, W(79) (cid:255)(cid:1133)(cid:1255)c l(cid:1133)u nh(cid:1133) m(cid:1245)t m(cid:1191)ng 80 t(cid:1263) 32-bit. (cid:264)i(cid:1221)u này thì có hi(cid:1227)u qu(cid:1191) theo quan (cid:255)(cid:76)(cid:1223)m t(cid:1237)i (cid:1133)u th(cid:1249)i gian th(cid:1269)c thi b(cid:1251)i vì các (cid:255)(cid:1231)a ch(cid:1229) c(cid:1259)a W(t-3), … , W(t-16) (cid:1251) b(cid:1133)(cid:1247)c b d(cid:1225) dàng tính (cid:255)(cid:1133)(cid:1255)c. N(cid:1219)u không gian l(cid:1133)u tr(cid:1267)(cid:3) (cid:255)(cid:1133)(cid:1255)c chú tr(cid:1233)ng thì {W(t)} (cid:255)(cid:1133)(cid:1255)c bi(cid:1223)u di(cid:1225)n nh(cid:1133) m(cid:1245)t hàng (cid:255)(cid:1255)i xoay vòng. Hàng (cid:255)(cid:1255)i này bao g(cid:1239)m m(cid:1245)t m(cid:1191)ng 160 t(cid:1263) 32-bit W(0), … , W(15). Trong tr(cid:1133)(cid:1249)ng h(cid:1255)p này, theo h(cid:1227) th(cid:1201)p l(cid:1257)c phân ta (cid:255)(cid:1211)t MASK = 0000000F.

K(cid:1219)(cid:3)(cid:255)ó x(cid:1265) lý M(i) nh(cid:1133) sau: 1. Chia M(i) thành 16-t(cid:1263) W[0], … , W[15] v(cid:1247)i W[0] là t(cid:1263) bên trái nh(cid:1193)t. 2. (cid:264)(cid:1211)t A = H0, B = H1, C = H2, D = H3, E = H4. 3. For t = 0 to 79 do

s = t AND MASK; if (t >= 16) W[s] = S^1(W[(s + 13) AND MASK] XOR W[(s +8) AND MASK] XOR W[(s + 2) AND MASK] XOR W[s]); TEMP = S^5(A) + f(t;B,C,D) + E + W[s] + K(t); E = D; D = C; C = S^30(B); B = A; A = TEMP; 4. (cid:264)(cid:1211)t

H0 = H0 + A, H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E.

3.2.3. Tiger

3.2.3.1. Gi(cid:867)i thi(cid:847)u

Các hàm b(cid:259)m (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1221) c(cid:1201)p (cid:1251) trên (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) trên các b(cid:1245) vi x(cid:1265) lý 32- bit, th(cid:1219) h(cid:1227) s(cid:1203)p t(cid:1247)i c(cid:1259)a các b(cid:1245) vi x(cid:1265) lý có dùng các t(cid:1263) 64-bit (word), và bao g(cid:1239)m

43

luôn c(cid:1191) m(cid:1245)t lo(cid:1189)t các máy DEC Alpha c(cid:458)ng nh(cid:1133) các b(cid:1245) vi x(cid:1265) lý th(cid:1219) h(cid:1227) k(cid:1219) ti(cid:1219)p t(cid:1263) Intel, HP, và IBM. D(cid:1133)(cid:1249)ng nh(cid:1133) s(cid:1217) h(cid:1255)p lý n(cid:1219)u gi(cid:1191) s(cid:1265) vi(cid:1227)c dùng các vi x(cid:1265) lý trong các (cid:1261)ng d(cid:1257)ng nhúng ((cid:255)a s(cid:1237) các h(cid:1227) th(cid:1237)ng s(cid:1217) dùng các b(cid:1245) vi x(cid:1265) lý 64-bit trong vòng 5 n(cid:259)m t(cid:1247)i). Tuy nhiên, trên các vi x(cid:1265) lý, các h(cid:1233) hàm b(cid:259)m trên không th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c cài (cid:255)(cid:1211)t m(cid:1245)t cách hi(cid:1227)u qu(cid:1191).

Ví d(cid:1257): h(cid:1233) MD dùng các phép toán c(cid:1245)ng và xoay vòng, vì v(cid:1201)y m(cid:1245)t thanh ghi 64-bit ch(cid:1229) có th(cid:1223) x(cid:1265) lý m(cid:1245)t giá tr(cid:1231) 32-bit t(cid:1189)i m(cid:1245)t th(cid:1249)i (cid:255)(cid:76)(cid:1223)m, vi(cid:1227)c này làm gi(cid:1191)m (cid:255)i t(cid:1237)c (cid:255)(cid:1245) kho(cid:1191)ng 2 l(cid:1195)n. H(cid:1131)n n(cid:1267)a c(cid:1193)u trúc Alpha không có h(cid:1243) tr(cid:1255) b(cid:1193)t k(cid:484) phép xoay vòng nào trên 64-bit hay 32-bit.

Tiger, ra (cid:255)(cid:1249)i n(cid:259)m 1996 b(cid:1251)i Ross Anderson và Eli Biham, gi(cid:1191)i quy(cid:1219)t các v(cid:1193)n (cid:255)(cid:1221) nêu trên, nó nhanh nh(cid:1133) SHA-1 trên b(cid:1245) vi x(cid:1265) lý 32-bit và nhanh h(cid:1131)n kho(cid:1191)ng 3 l(cid:1195)n trên vi x(cid:1265) lý 64-bit (DEC Alpha), và (cid:255)(cid:1133)(cid:1255)c cho là nhanh h(cid:1131)n SHA-1 trên các b(cid:1245) vi x(cid:1265) lý 16-bit vì SHA-1 (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219)(cid:3)(cid:255)(cid:1223) ch(cid:1189)y trên các máy 32-bit, trong khi yêu c(cid:1195)u là hàm b(cid:259)m th(cid:1269)c hi(cid:1227)n trên nhi(cid:1221)u kích th(cid:1133)(cid:1247)c khác nhau c(cid:1259)a t(cid:1263). Hàm b(cid:259)m Tiger có tính m(cid:1245)t chi(cid:1221)u, gi(cid:1191)i quy(cid:1219)t v(cid:1193)n (cid:255)(cid:1221) xung (cid:255)(cid:1245)t, gi(cid:1191)i quy(cid:1219)t v(cid:1193)n (cid:255)(cid:1221) b(cid:1245)i s(cid:1237) (ch(cid:1237)ng l(cid:1189)i các ki(cid:1223)u t(cid:1193)n công dùng b(cid:1245)i s(cid:1237) hay các h(cid:1227) s(cid:1237) c(cid:1259)a các giá tr(cid:1231) b(cid:259)m (cid:255)(cid:1223) tìm ra (cid:255)(cid:1133)(cid:1255)c khoá dùng trong vi(cid:1227)c b(cid:259)m thông (cid:255)(cid:76)(cid:1227)p).

Hành (cid:255)(cid:1245)ng chính c(cid:1259)a hàm b(cid:259)m là tra c(cid:1261)u b(cid:1191)ng trong 4 S-box , m(cid:1243)i ho(cid:1189)t (cid:255)(cid:1245)ng (cid:255)(cid:1195)u vào 8-bit và (cid:255)(cid:1195)u ra 64-bit. Trên các máy 32-bit có th(cid:1223) cài (cid:255)(cid:1211)t hai l(cid:1195)n tra c(cid:1261)u b(cid:1191)ng, v(cid:1247)i kho(cid:1191)ng cách (cid:255)(cid:1133)(cid:1255)c tính ch(cid:1229) m(cid:1245)t l(cid:1195)n. Nh(cid:1267)ng phép tính khác nh(cid:1133) c(cid:1245)ng hay tr(cid:1263) 64-bit, nhân 64-bit v(cid:1247)i h(cid:1205)ng s(cid:1237) nh(cid:1235) (5, 7, và 9), các phép tính shift và logic 64-bit nh(cid:1133) XOR và NOT. T(cid:1193)t c(cid:1191) các phép toán này ch(cid:1201)m h(cid:1131)n g(cid:1195)n hai l(cid:1195)n trên các máy 32-bit; ngoài ra phép shift và nhân v(cid:1247)i h(cid:1205)ng s(cid:1237) nh(cid:1235), ch(cid:1201)m (cid:75)(cid:1131)n 4 hay 5 l(cid:1195)n (các b(cid:1245) vi x(cid:1265) lý Alpha có nh(cid:1267)ng l(cid:1249)i h(cid:1133)(cid:1247)ng d(cid:1199)n (cid:255)(cid:1211)c bi(cid:1227)t cho phép nhân v(cid:1247)i các h(cid:1205)ng s(cid:1237) là nên có d(cid:1189)ng 4– 1 hay 8– 1).

Vì kh(cid:1191) n(cid:259)ng t(cid:1133)(cid:1131)ng thích, chúng ta ch(cid:1193)p nh(cid:1201)n c(cid:1193)u trúc bên ngoài c(cid:1259)a h(cid:1233) MD4: thông (cid:255)i(cid:1227)p (cid:255)(cid:1133)(cid:1255)c thêm m(cid:1245)t bit ‘1’ duy nh(cid:1193)t (cid:255)(cid:1133)(cid:1255)c theo sau b(cid:1251)i chu(cid:1243)i bit ‘0’ và cu(cid:1237)i cùng là chi(cid:1221)u dài thông (cid:255)i(cid:1227)p l(cid:1133)u tr(cid:1267) trong 64-bit ti(cid:1219)p theo. K(cid:1219)t qu(cid:1191) (cid:255)(cid:1133)(cid:1255)c chia thành n kh(cid:1237)i 512-bit.

Kích th(cid:1133)(cid:1247)c c(cid:1259)a giá tr(cid:1231) b(cid:259)m hay c(cid:1259)a tr(cid:1189)ng thái trung gian là 3 t(cid:1263) (192 bit), giá tr(cid:1231) này (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n vì :

§ Dùng các t(cid:1263) 64-bit, kích th(cid:1133)(cid:1247)c là b(cid:1245)i s(cid:1237) c(cid:1259)a 64. § Do t(cid:1133)(cid:1131)ng thích v(cid:1247)i (cid:1261)ng d(cid:1257)ng dùng SHA-1, kích th(cid:1133)(cid:1247)c b(cid:259)m nên ít nh(cid:1193)t là 160 bit t(cid:259)ng tính b(cid:1191)o m(cid:1201)t.

§ Các bi(cid:1227)n pháp t(cid:1193)n công các hàm b(cid:259)m trên các giá tr(cid:1231) b(cid:259)m trung gian h(cid:1131)n là giá tr(cid:1231) b(cid:259)m cu(cid:1237)i cùng. (cid:264)i(cid:1223)n hình, nh(cid:1267)ng k(cid:1215) t(cid:1193)n công ch(cid:1233)n ra hai giá tr(cid:1231) xung (cid:255)(cid:1245)t nhau trong m(cid:1245)t kh(cid:1237)i trung gian và hai giá tr(cid:1231) này c(cid:1261)(cid:3)(cid:255)(cid:1133)(cid:1255)c nhân lên thành s(cid:1269) xung (cid:255)(cid:1245)t toàn b(cid:1245) hàm. Tuy nhiên, các t(cid:1193)n công này s(cid:1217) không hi(cid:1227)u qu(cid:1191) n(cid:1219)u các giá tr(cid:1231) b(cid:259)m trung gian l(cid:1247)n h(cid:1131)n.

44

Tiger v(cid:1247)i toàn b(cid:1245) 192 bit (cid:1251)(cid:3)(cid:255)(cid:1195)u ra (cid:255)(cid:1133)(cid:1255)c ký hi(cid:1227)u là Tiger/192. Có hai lo(cid:1189)i hàm Tiger ng(cid:1203)n h(cid:1131)n dùng thay th(cid:1219) cho các hàm b(cid:259)m khác trong các (cid:1261)ng d(cid:1257)ng hi(cid:1227)n t(cid:1189)i là:

§ Tiger/160: giá tr(cid:1231) b(cid:259)m là 160 bit (cid:255)(cid:1195)u trong k(cid:1219)t qu(cid:1191) c(cid:1259)a Tiger/192 và (cid:255)(cid:1133)(cid:1255)c dùng vì tính t(cid:1133)(cid:1131)ng thích v(cid:1247)i SHA và SHA-1.

§ Tiger/128: Giá tr(cid:1231) b(cid:259)m là 128 bit trong k(cid:1219)t qu(cid:1191) c(cid:1259)a Tiger/192, và (cid:255)(cid:1133)(cid:1255)c dùng cho t(cid:1133)(cid:1131)ng thích v(cid:1247)i MD4, MD5, RIPE_MD, các hàm (cid:69)(cid:259)m thu(cid:1245)c h(cid:1233) Snefru và các hàm b(cid:259)m khác.

Tính hi(cid:1227)u qu(cid:1191) c(cid:1259)a hàm m(cid:1245)t ph(cid:1195)n d(cid:1269)a trên tính song song trong thi(cid:1219)t k(cid:1219) c(cid:1259)a nó. Trong h(cid:1233) MD và Snefru, m(cid:1243)i phép tính ph(cid:1257) thu(cid:1245)c trên k(cid:1219)t qu(cid:1191) c(cid:1259)a phép tính tr(cid:1133)(cid:1247)c (cid:255)ó; vì v(cid:1201)y, các b(cid:1245) vi x(cid:1265) lý không th(cid:1223) dùng m(cid:1245)t cách hi(cid:1227)u qu(cid:1191) do c(cid:1131) ch(cid:1219)(cid:3) (cid:255)(cid:1133)(cid:1249)ng (cid:1237)ng. Trong m(cid:1243)i vòng c(cid:1259)a Tiger, 8 hành (cid:255)(cid:1245)ng tra c(cid:1261)u b(cid:1191)ng (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n song song, vì v(cid:1201)y trình biên d(cid:1231)ch có th(cid:1223) t(cid:1201)n d(cid:1257)ng c(cid:1131) ch(cid:1219)(cid:3)(cid:255)(cid:1133)(cid:1249)ng (cid:1237)ng t(cid:1237)t nh(cid:1193)t. Thi(cid:1219)t k(cid:1219) c(cid:458)ng cho phép vi(cid:1227)c cài (cid:255)(cid:1211)t ph(cid:1195)n c(cid:1261)ng hi(cid:1227)u qu(cid:1191). Tiger yêu c(cid:1195)u kích th(cid:1133)(cid:1247)c vùng nh(cid:1247) ít h(cid:1131)n kích th(cid:1133)(cid:1247)c c(cid:1259)a 4 S-box, n(cid:1219)u vùng nh(cid:1247)(cid:3)(cid:255)(cid:1133)(cid:1255)c yêu c(cid:1195)u này (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh v(cid:1231) trong cache c(cid:1259)a vi x(cid:1265) lý thì vi(cid:1227)c tính toán s(cid:1217) ch(cid:1189)y nhanh kho(cid:1191)ng 2 l(cid:1195)n ((cid:255)(cid:1133)(cid:1255)c (cid:255)o trên máy DEC Alpha). Kích th(cid:1133)(cid:1247)c c(cid:1259)a 4 S-box là 4*256*8 = 8096 Bytes = 8Kbytes t(cid:1133)(cid:1131)ng (cid:255)(cid:1133)(cid:1131)ng v(cid:1247)i kích th(cid:1133)(cid:1247)c c(cid:1259)a cache trên (cid:255)a s(cid:1237) các máy. N(cid:1219)u 8 S-box (cid:255)(cid:1133)(cid:1255)c dùng, 16 Kbytes s(cid:1217)(cid:3)(cid:255)(cid:1133)(cid:1255)c yêu c(cid:1195)u g(cid:1193)p hai l(cid:1195)n kích th(cid:1133)(cid:1247)c cache trên Alpha.

3.2.3.2. (cid:264)(cid:831)c t(cid:811)

Trên Tiger t(cid:1193)t c(cid:1191) các phép tính (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n trên các t(cid:1263) 64-bit theo d(cid:1189)ng little endian hay bù 2. Dùng 3 thanh ghi 64-bit (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là a,b và c (cid:255)(cid:1223) ch(cid:1261)a các giá tr(cid:1231) b(cid:259)m trung gian. Các thanh ghi này (cid:255)(cid:1133)(cid:1255)c kh(cid:1251)i t(cid:1189)o v(cid:1247)i giá tr(cid:1231) h0 nh(cid:1133) sau:

A = 0x0123456789ABCDEF B = 0xFEDCBA9876543210 C = 0xF096A5B4C3B2E187

M(cid:1243)i kh(cid:1237)i thông (cid:255)(cid:76)(cid:1227)p 512-bit liên ti(cid:1219)p (cid:255)(cid:1133)(cid:1255)c chia thành 8 t(cid:1263) 64-bit x0, x1,…., x7, và vi(cid:1227)c tính toán sau th(cid:1269)c hi(cid:1227)n vi(cid:1227)c c(cid:1201)p nh(cid:1201)t hi thành hi+1.

Vi(cid:1227)c tính toán này bao g(cid:1239)m 3 l(cid:1195)n thông qua hàm pass, và c(cid:1261) gi(cid:1267)a hai hàm pass là hàm key schedule, hàm này có tác d(cid:1257)ng bi(cid:1219)n (cid:255)(cid:1241)i d(cid:1189)ng d(cid:1267) li(cid:1227)u (cid:255)(cid:1195)u vào ng(cid:259)n c(cid:1191)n k(cid:1215) t(cid:1193)n công l(cid:1255)i d(cid:1257)ng tính th(cid:1133)a c(cid:1259)a d(cid:1267) li(cid:1227)u trong 3 vòng l(cid:1211)p qua hàm pass trên. Cu(cid:1237)i cùng hàm feedforward(cid:3)(cid:255)(cid:1133)(cid:1255)c dùng, (cid:1251)(cid:3)(cid:255)ó giá tr(cid:1231) c(cid:1259)a a,b,c (cid:255)(cid:1133)(cid:1255)c k(cid:1219)t h(cid:1255)p v(cid:1247)i các giá tr(cid:1231) kh(cid:1251)i (cid:255)(cid:1195)u c(cid:1259)a nó (cid:255)(cid:1223) cho giá tr(cid:1231) b(cid:259)m hi+1:

save_abc pass(a, b, c, 5) key_schedule pass(c, a, b, 7) key_schedule

45

pass(b, c, a, 9) feedforward

Trong (cid:255)ó:

q save_abc l(cid:1133)u l(cid:1189)i giá tr(cid:1231) hi

aa = a bb = b cc = c dd = d

q pass(a, b, c, mul) là:

round(a, b, c, x0, mul); round(b, c, a, x1, mul); round(c, a, b, x2, mul); round(a, b, c, x3, mul); round(b, c, a, x4, mul); round(c, a, b, x5, mul); round(a, b, c, x6, mul); round(b, c, a, x7, mul);

trong (cid:255)ó:

c ^= x; a -= t1[c0] ^ t2[c2] ^ t3[c4] ^ t4[c6] ; b += t4[c1] ^ t3[c3] ^ t2[c5] ^ t1[c7] ; b *= mul;

(cid:1250)(cid:3) (cid:255)ây c_i là byte th(cid:1261) i c(cid:1259)a c (0 (cid:148) i (cid:148) 7) và t1 (cid:255)(cid:1219)n t4 là 4 b(cid:1191)ng S_box (cid:255)(cid:1133)(cid:1255)c trình bày trong t(cid:1201)p tin “sboxes.h”(cid:3)(cid:255)ính kèm.

q key_schedule

x0 -= x7 ^ 0xA5A5A5A5A5A5A5A5; x1 ^= x0; x2 += x1; x3 -= x2 ^ ((~x1)<<19); x4 ^= x3; x5 += x4; x6 -= x5 ^ ((~x4)>>23); x7 ^= x6; x0 += x7; x1 -= x0 ^ ((~x7)<<19); x2 ^= x1; x3 += x2; x4 -= x3 ^ ((~x2)>>23); x5 ^= x4; x6 += x5;

46

x7 -=x6 ^ 0x0123456789ABCDEF;

q feedforward

a ^= aa; b – = bb; c += cc;

Các thanh ghi a,b,c ch(cid:1261)a các giá tr(cid:1231) b(cid:259)m (trung gian) hi+1 dài 192 bit

Hình 3.1. Phát th(cid:1191)o ch(cid:1261)c n(cid:259)ng nén c(cid:1259)a Tiger

Vùng màu (cid:255)en là các thanh ghi b(cid:1231)(cid:3)(cid:1191)nh h(cid:1133)(cid:1251)ng mà các (cid:255)(cid:1133)(cid:1249)ng s(cid:1233)c trong các thanh ghi này ch(cid:1229)(cid:3)(cid:255)(cid:1219)n các byte trong vùng màu tr(cid:1203)ng. Các bi(cid:1219)n y0,…,y7 và các bi(cid:1219)n z0,…z7 là ký hi(cid:1227)u c(cid:1259)a x0,…,x7 t(cid:1133)(cid:1131)ng (cid:1261)ng trong hàm pass th(cid:1261) 2 và th(cid:1261) 3. Cu(cid:1237)i cùng, giá tr(cid:1231) trung gian hn(cid:3)(cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133)(cid:3)(cid:255)(cid:1195)u ra Tiger/192.

3.2.3.3. Tính b(cid:811)o m(cid:821)t

Tính ch(cid:1193)t phi tuy(cid:1219)n t(cid:1263) các S_box t(cid:1263) 8 bit thành 64 bit ((cid:255)(cid:1195)u vào 8 bit, (cid:255)(cid:1195)u ra 64 bit). (cid:264)i(cid:1221)u này t(cid:1237)t h(cid:1131)n nhi(cid:1221)u so v(cid:1247)i vi(cid:1227)c ch(cid:1229) k(cid:1219)t h(cid:1255)p phép tính c(cid:1245)ng v(cid:1247)i phép XOR (dùng các bit mang theo _ carry bit), và nó (cid:1191)nh h(cid:1133)(cid:1251)ng (cid:255)(cid:1219)n các bit xu(cid:1193)t, không ch(cid:1229) các bit lân c(cid:1201)n.

47

Có m(cid:1245)t s(cid:1269) lan truy(cid:1221)n m(cid:1189)nh , trong m(cid:1243)i bit thông (cid:255)(cid:76)(cid:1227)p (cid:1191)nh h(cid:1133)(cid:1251)ng (cid:255)(cid:1219)n t(cid:1193)t c(cid:1191) 3 thanh ghi sau 3 vòng _ nhanh h(cid:1131)n nh(cid:1267)ng hàm b(cid:259)m khác. Vi(cid:1227)c lan truy(cid:1221)n trong các t(cid:1263) 64 bit (và các S_box 64 bit) thì nhanh h(cid:1131)n nhi(cid:1221)u khi các t(cid:1263) ng(cid:1203)n (cid:75)(cid:1131)n (cid:255)(cid:1133)(cid:1255)c dùng.

Nh(cid:1133) ghi chú (cid:1251) trên, t(cid:1193)t c(cid:1191) các bi(cid:1227)n pháp t(cid:1193)n công (cid:255)(cid:1221)u t(cid:1193)n công trên k(cid:1219)t qu(cid:1191) c(cid:1259)a MDx hay Snefru (cid:1251) m(cid:1245)t trong các kh(cid:1237)i trung gian. T(cid:259)ng giá tr(cid:1231) c(cid:1259)a k(cid:1219)t qu(cid:1191) trung gian lên 192 bit giúp ng(cid:259)n ch(cid:1211)n các cu(cid:1245)c t(cid:1193)n công này. Các b(cid:1191)ng khoá b(cid:1191)o (cid:255)(cid:1191)m r(cid:1205)ng vi(cid:1227)c thay (cid:255)(cid:1241)i m(cid:1245)t s(cid:1237) l(cid:1133)(cid:1255)ng nh(cid:1235) bit trong thông (cid:255)i(cid:1227)p (cid:1191)nh h(cid:1133)(cid:1251)ng (cid:255)(cid:1219)n nhi(cid:1221)u bit trong su(cid:1237)t quá trình thông qua hàm pass. Cùng v(cid:1247)i vi(cid:1227)c lan truy(cid:1221)n m(cid:1189)nh, nó giúp cho Tiger ch(cid:1237)ng l(cid:1189)i các t(cid:1193)n công t(cid:1133)(cid:1131)ng (cid:255)(cid:1133)(cid:1131)ng v(cid:1247)i các t(cid:1193)n công khác nhau c(cid:1259)a Dobbertin trên MD4 ((cid:255)ó vi(cid:1227)c thay (cid:255)(cid:1241)i m(cid:1245)t s(cid:1237) bit nào (cid:255)ó trong thông (cid:255)i(cid:1227)p (cid:1191)nh h(cid:1133)(cid:1251)ng (cid:255)(cid:1219)n (cid:255)a s(cid:1237) các bit trong nhi(cid:1219)u vòng, và k(cid:1219)(cid:3)(cid:255)ó s(cid:1269) khác bi(cid:1227)t nh(cid:1235) nào có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n (cid:255)(cid:1223) h(cid:1259)y b(cid:1235) trong hàm pass tr(cid:1133)(cid:1247)c (cid:255)ó).

Phép nhân c(cid:1259)a thanh ghi b trong m(cid:1243)i vòng c(cid:458)ng góp ph(cid:1195)n cho vi(cid:1227)c ch(cid:1237)ng l(cid:1189)i các t(cid:1193)n công nh(cid:1133) v(cid:1201)y, do nó b(cid:1191)o (cid:255)(cid:1191)m r(cid:1205)ng các bit (cid:255)(cid:1133)(cid:1255)c dùng nh(cid:1133)(cid:3)(cid:255)(cid:1195)u vào (cid:255)(cid:1219)n các S_box trong các vòng tr(cid:1133)(cid:1247)c (cid:255)(cid:1133)(cid:1255)c tr(cid:1245)n v(cid:1247)i nh(cid:1267)ng S_box khác, và v(cid:1247)i cùng S_box v(cid:1247)i m(cid:1245)t (cid:255)(cid:1195)u vào khác. Phép nhân này c(cid:458)ng ch(cid:1237)ng l(cid:1189)i các t(cid:1193)n công trên các hàm b(cid:259)m, b(cid:1251)i vì các h(cid:1205)ng s(cid:1237) là khác nhau (cid:1251) m(cid:1243)i vòng.

Hàm feedforward ng(cid:259)n c(cid:1191)n các t(cid:1193)n công “meet-in-the-middle”, “birthday” tìm ra các (cid:1191)nh tr(cid:1133)(cid:1247)c (cid:255)ó c(cid:1259)a hàm b(cid:259)m (m(cid:1211)c dù s(cid:1269) ph(cid:1261)c t(cid:1189)p s(cid:1217) là 296).

3.3. Hàm b(cid:259)m Whirlpool

3.3.1. Gi(cid:1247)i thi(cid:1227)u

Hàm b(cid:259)m Whirlpool (cid:255)(cid:1133)(cid:1255)c công nh(cid:1201)n cùng v(cid:1247)i ph(cid:1133)(cid:1131)ng pháp mã hoá AES là nh(cid:1267)ng n(cid:1221)n t(cid:1191)ng b(cid:1191)o m(cid:1201)t m(cid:1189)nh m(cid:1217) t(cid:1189)i H(cid:1245)i th(cid:1191)o v(cid:1221) B(cid:1191)o M(cid:1201)t NESSIE _ New European Schemes for Signatures, Integrity, and Encryption (các k(cid:1219) ho(cid:1189)ch Châu Âu m(cid:1247)i cho ch(cid:1267) ký, tính toàn v(cid:1213)n, và mã hoá) t(cid:1189)i Lund, Th(cid:1257)y (cid:264)(cid:76)(cid:1223)n vào ngày 26/2/2003. M(cid:1257)c (cid:255)ích c(cid:1259)a d(cid:1269) án là nêu ra nh(cid:1267)ng thu(cid:1201)t toán b(cid:1191)o m(cid:1201)t m(cid:1247)i cho th(cid:1231) tr(cid:1133)(cid:1249)ng Châu Âu. Vincent Rijmen, tr(cid:1133)(cid:1251)ng nhóm b(cid:1191)o m(cid:1201)t (cid:1251) v(cid:259)n phòng Cryptomathic.s Belgian (cid:1251) Leuven, là m(cid:1245)t trong hai tác gi(cid:1191) c(cid:1259)a thu(cid:1201)t toán AES và hàm b(cid:259)m Whirlpool. N(cid:1219)u AES (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n vào danh sách mã hoá theo kh(cid:1237)i 128-bit thì Whirlpool (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n trong danh sách các hàm b(cid:259)m ch(cid:1237)ng xung (cid:255)(cid:1245)t. Whirlpool (cid:255)(cid:1133)(cid:1255)c x(cid:1219)p vào chu(cid:1197)n ISO ISO/IEC 10118-3 cho các hàm (cid:69)(cid:259)m.

Whirlpool là hàm b(cid:259)m 512-bit (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) d(cid:1269)a trên nguyên lý ho(cid:1189)t (cid:255)(cid:1245)ng c(cid:1259)a AES và có th(cid:1223) là m(cid:1245)t l(cid:1269)a ch(cid:1233)n cho thu(cid:1201)t toán SHA_1, m(cid:1245)t chi(cid:1221)u, ch(cid:1237)ng xung (cid:255)(cid:1245)t th(cid:1269)c hi(cid:1227)n trên thông (cid:255)i(cid:1227)p có chi(cid:1221)u dài ít h(cid:1131)n 2256 bit do Paulo S.L.M Barreto và Vincent Rijmen (cid:255)(cid:1221) xu(cid:1193)t n(cid:259)m 2001.

48

Whirlpool bao g(cid:1239)m vi(cid:1227)c áp d(cid:1257)ng hàm nén nhi(cid:1221)u l(cid:1195)n, trên n(cid:1221)n t(cid:1191)ng mã hoá toàn b(cid:1245) kh(cid:1237)i 512 bit thông (cid:255)(cid:76)(cid:1227)p ch(cid:1189)y bên d(cid:1133)(cid:1247)i, dùng khoá 512 bit. Hàm round và key schedule(cid:3) (cid:255)(cid:1133)(cid:1255)c thi(cid:1219)t k(cid:1219) theo chi(cid:1219)n l(cid:1133)(cid:1255)c Wide Trail. Whirlpool th(cid:1269)c thi trên b(cid:1245) vi x(cid:1265) lý 8-bit và 64-bit thu(cid:1201)n l(cid:1255)i (cid:255)(cid:1211)c bi(cid:1227)t do c(cid:1193)u trúc hàm; tuy nhiên, l(cid:1189)i không h(cid:1133)(cid:1247)ng t(cid:1247)i b(cid:1193)t k(cid:484) n(cid:1221)n ph(cid:1195)n c(cid:1261)ng c(cid:1257) th(cid:1223) nào.

3.3.2. Các c(cid:1131) s(cid:1251) và ký hi(cid:1227)u toán h(cid:1233)c

3.3.2.1. Tr(cid:753)(cid:869)ng Galois (s(cid:889) bi(cid:843)u di(cid:845)n nh(cid:851) phân)

Ký hi(cid:1227)u tr(cid:1133)(cid:1249)ng Galois GF(24) là GF(2)[x] / p4(x) v(cid:1247)i p4(x) = x4 + x + 1 và tr(cid:1133)(cid:1249)ng GF(28) nh(cid:1133) GF(2)[x] / p8x v(cid:1247)i p8(x) = x8 + x4 + x3 + x2 + 1.

1m

(cid:264)a th(cid:1261)c p4(x) và p8(x) là các (cid:255)a th(cid:1261)c chính (cid:255)(cid:1195)u tiên (cid:1251) b(cid:1201)c 4 và 8, và (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n sao cho g(x) = x là ph(cid:1195)n t(cid:1265) sinh c(cid:1259)a GF(24) / {0} và GF(28) / {0} (cid:87)(cid:1133)(cid:1131)ng (cid:1261)ng. Các ph(cid:1195)n t(cid:1265) thu(cid:1245)c tr(cid:1133)(cid:1249)ng Galois (cid:255)(cid:1133)(cid:1255)c bi(cid:1223)u di(cid:1225)n d(cid:1133)(cid:1247)i d(cid:1189)ng m(cid:1245)t (cid:255)a -

= oi

1m

ui.xi(cid:3)(cid:559) GF(2)[x], trong (cid:255)ó ui(cid:3)(cid:559) GF(2) v(cid:1247)i m(cid:1233)i i = 0,…, m-1 -

= oi ví d(cid:1257) 13x(cid:3)(cid:255)(cid:1223) ký hi(cid:1227)u cho p4(x).

th(cid:1261)c u = (cid:229) s(cid:1217)(cid:3)(cid:255)(cid:1133)(cid:1255)c ghi chú giá tr(cid:1231) s(cid:1237) (cid:229) ui.2i hay (cid:255)(cid:1133)(cid:1255)c vi(cid:1219)t d(cid:1133)(cid:1247)i d(cid:1189)ng th(cid:1201)p l(cid:1257)c phân,

3.3.2.2. Các l(cid:867)p ma tr(cid:821)n

Mmxn [GF(28)] ký hi(cid:1227)u cho t(cid:1201)p các ma tr(cid:1201)n mxn d(cid:1269)a trên tr(cid:1133)(cid:1249)ng Galois GF(28). Cir(a0, a1 , … , am-1) ký hi(cid:1227)u cho ma tr(cid:1201)n xoay vòng mxm mà dòng (cid:255)(cid:1195)u tiên bao g(cid:1239)m a0, a1 , … , am-1, t(cid:1261)c là :

0

1-m

… …

1-m

2-m

a a

,a, 1 ,a, 0

a, a,

..........

..........

..........

..........

..........

........

.......... …

1

0

a

,a, 2

a,

ø Ø œ Œ œ Œ Cir(a0, a1 , … , am-1) (cid:321) œ Œ œ Œ ß º

i,j £ m-1. cij = a(j-i) mod m , 0 £ Hay (cid:255)(cid:1131)n gi(cid:1191)n Cir(a0, a1 , … , am-1) = c (cid:219)

3.3.2.3. Mã MDS (MDS code - Maximal Distance Separable code)

Kho(cid:811)ng cách Hamming: gi(cid:1267)a hai vect(cid:1131) u và v t(cid:1263) không gian vect(cid:1131) n chi(cid:1221)u GF(2p)n b(cid:1205)ng s(cid:1237) t(cid:1233)a (cid:255)(cid:1245) mà u và v khác nhau.

Tr(cid:853)ng l(cid:753)(cid:875)ng Hamming wh(a): c(cid:1259)a ph(cid:1195)n t(cid:1265) a (cid:559) GF(2p)n là kho(cid:1191)ng cách Hamming gi(cid:1267)a a và vect(cid:1131) không trong tr(cid:1133)(cid:1249)ng GF(2p)n t(cid:1261)c là s(cid:1237) thành ph(cid:1195)n khác không c(cid:1259)a a.

49

Mã tuy(cid:839)n tính [n,k,d]: trên tr(cid:1133)(cid:1249)ng GF(2p)n là không gian con k chi(cid:1221)u c(cid:1259)a không gian vect(cid:1131) (GF(2p))n trong (cid:255)ó kho(cid:1191)ng cách Hamming gi(cid:1267)a 2 vect(cid:1131) không gian con phân bi(cid:1227)t b(cid:1193)t k(cid:484) ít nh(cid:1193)t là d (và d là s(cid:1237) l(cid:1247)n nh(cid:1193)t v(cid:1247)i (cid:255)(cid:1211)c tính này).

Ma tr(cid:821)n sinh G: cho mã [n,k,d] tuy(cid:1219)n tính C là ma tr(cid:1201)n kxn mà các dòng c(cid:1259)a ma tr(cid:1201)n này hình thành nên n(cid:1221)n t(cid:1191)ng cho C. M(cid:1245)t ma tr(cid:1201)n phát sinh (cid:1251) d(cid:1189)ng chu(cid:1197)n hay phân c(cid:1193)p b(cid:1201)c, n(cid:1219)u nó có d(cid:1189)ng G = [Ikxk Akx(n-k)] trong (cid:255)ó Ikxk là ma tr(cid:1201)n (cid:255)(cid:1231)nh v(cid:1231) b(cid:1201)c k. Vi(cid:1219)t (cid:255)(cid:1131)n gi(cid:1191)n là G = [IA] b(cid:1235)(cid:3)(cid:255)i các ch(cid:1229) m(cid:1257)c khi các chi(cid:1221)u c(cid:1259)a ma tr(cid:1201)n không liên quan (cid:255)(cid:1219)n th(cid:1191)o lu(cid:1201)n hay (cid:255)ã rõ trong ng(cid:1267) c(cid:1191)nh (cid:255)ã cho.

Mã tuy(cid:1219)n tính [n,k,d] tuân theo ràng bu(cid:1245)c m(cid:1245)t (cid:255)(cid:1195)u là d £

(cid:1167)n-k+1. Mã g(cid:1211)p gi(cid:1247)i h(cid:1189)n này t(cid:1261)c là d = n-k+1 g(cid:1233)i là mã có th(cid:1223) phân rã kho(cid:1191)ng cách l(cid:1247)n nh(cid:1193)t. Mã [n,k,d] tuy(cid:1219)n tính C v(cid:1247)i ma tr(cid:1201)n phát sinh G = [Ikxk Akx(n-k)] là MDS khi và ch(cid:1229) khi m(cid:1233)i ma tr(cid:1201)n con vuông hình thành t(cid:1263) các dòng và các c(cid:1245)t c(cid:1259)a A thì không k(cid:484) d(cid:1231).

3.3.2.4. Các thu(cid:865)c tính m(cid:821)t mã

Tích c(cid:1259)a m bi(cid:1219)n Bool phân bi(cid:1227)t (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là tích b(cid:1201)c m c(cid:1259)a các bi(cid:1219)n. M(cid:1243)i hàm Bool f : GF(2n) " GF(2) có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c vi(cid:1219)t nh(cid:1133) m(cid:1245)t t(cid:1241)ng trên tr(cid:1133)(cid:1249)ng GF(2) c(cid:1259)a các tích b(cid:1201)c m phân bi(cid:1227)t c(cid:1259)a các (cid:255)(cid:1237)i s(cid:1237) c(cid:1259)a nó, 0 £ m £ n, và (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là d(cid:1189)ng chu(cid:1197)n (cid:255)(cid:1189)i s(cid:1237) c(cid:1259)a f.

B(cid:821)c d(cid:809)ng chu(cid:817)n (cid:255)(cid:809)i s(cid:857) c(cid:879)a f, kí hi(cid:1227)u là v(f) là b(cid:1201)c l(cid:1247)n nh(cid:1193)t c(cid:1259)a các s(cid:1237) h(cid:1189)ng xu(cid:1193)t hi(cid:1227)n trong d(cid:1189)ng chu(cid:1197)n (cid:255)(cid:1189)i s(cid:1237) c(cid:1259)a f. M(cid:1245)t hàm Bool tuy(cid:1219)n tính là hàm Bool có b(cid:1201)c b(cid:1205)ng 1, t(cid:1261)c là d(cid:1189)ng chu(cid:1197)n (cid:255)(cid:1189)i s(cid:1237) c(cid:1259)a nó ch(cid:1229) bao g(cid:1239)m các (cid:255)(cid:1237)i s(cid:1237) (cid:255)(cid:1131)n. Cho tr(cid:1133)(cid:1247)c a (cid:559) GF(2)n, ký hi(cid:1227)u hàm Bool tuy(cid:1219)n tính là la : GF(2)n " GF(2) bao g(cid:1239)m t(cid:1241)ng các bit (cid:255)(cid:1237)i s(cid:1237)(cid:3)(cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n b(cid:1251)i các bit c(cid:1259)a a :

i £ M(cid:1245)t ánh x(cid:1189) S: GF(2n) " GF(2 n), x # S[x] (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là S-box. M(cid:1245)t S-box c(cid:458)ng có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) là m(cid:1245)t ánh x(cid:1189) S : GF(2n) " GF(2 n), do (cid:255)ó (cid:255)(cid:1133)(cid:1255)c mô t(cid:1191) d(cid:1133)(cid:1247)i d(cid:1189)ng các hàm Bool thành ph(cid:1195)n c(cid:1259)a nó si : GF(2n) " GF(2), 0 £ n-1 t(cid:1261)c là S[x] = (s0(x),…,sn-1(x)).

B(cid:1201)c c(cid:1259)a m(cid:1245)t S-box S, ký hi(cid:1227)u là vS là b(cid:1201)c nh(cid:1235) nh(cid:1193)t trên t(cid:1193)t c(cid:1191) các phép h(cid:1255)p các thành ph(cid:1195)n c(cid:1259)a S:

Tham s(cid:1237) d c(cid:1259)a m(cid:1245)t S-box S (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a nh(cid:1133) sau:

50

Giá tr(cid:1231) 2n. d (cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là h(cid:1227) s(cid:1237)(cid:3)(cid:255)(cid:1239)ng d(cid:1189)ng phân bi(cid:1227)t c(cid:1259)a S.

H(cid:1227) s(cid:1237) t(cid:1133)(cid:1131)ng quan (correlation) c(f,g) gi(cid:1267)a 2 hàm Bool f và g (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a nh(cid:1133) sau:

C(cid:1269)c tr(cid:1231) (the extreme value) c(cid:1259)a h(cid:1227) s(cid:1237) t(cid:1133)(cid:1131)ng quan gi(cid:1267)a các hàm tuy(cid:1219)n tính c(cid:1259)a các bit (cid:255)(cid:1195)u vào và các hàm tuy(cid:1219)n tính c(cid:1259)a các bit (cid:255)(cid:1195)u ra (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là (cid:255)(cid:1245) d(cid:1237)c c(cid:1259)a S (the bias of S).

Tham s(cid:1237) l c(cid:1259)a S-box S (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a là giá tr(cid:1231) tuy(cid:1227)t (cid:255)(cid:1237)i c(cid:458)a (cid:255)(cid:1245) d(cid:1237)c:

S(cid:1237) nhánh B (the branch number B) c(cid:1259)a ánh x(cid:1189) tuy(cid:1219)n tính q : GF(2n)k " GF(2 n)m

Cho mã tuy(cid:1219)n tính a[k+m,k,d] trên tr(cid:1133)(cid:1249)ng GF(2p) v(cid:1247)i ma tr(cid:1201)n phát sinh (generator matrix) G = [IkxkMkxm], ánh x(cid:1189) tuy(cid:1219)n tính q : GF(2n)k " GF(2 n)m (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a b(cid:1251)i q (a) = a.M có nhánh B(q ) = d; n(cid:1219)u mã là MDS, m(cid:1245)t ánh x(cid:1189) nh(cid:1133) v(cid:1201)y (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là ánh x(cid:1189) lan truy(cid:1221)n t(cid:1237)i (cid:1133)u (optimal diffusion mapping).

3.3.2.5. Ký hi(cid:847)u khác

n, chúng ta dùng ký Cho m(cid:1245)t dãy các hàm fm, fm+1,…, fn-1, fn , n(cid:1219)u m £ hi(cid:1227)u

n(cid:1219)u m > n c(cid:1191) hai bi(cid:1223)u th(cid:1261)c thay th(cid:1219) cho ánh x(cid:1189)(cid:3)(cid:255)(cid:1131)n v(cid:1231).

3.3.3. Mô t(cid:1191) Whirlpool

Whirlpool nguyên th(cid:1259)y chính là hàm b(cid:259)m Merkle d(cid:1269)a trên mã hoá toàn b(cid:1245) kh(cid:1237)i (dedicated block cipher), W, ho(cid:1189)t (cid:255)(cid:1245)ng trên m(cid:1245)t tr(cid:1189)ng thái b(cid:259)m (state hash) 512 bit dùng m(cid:1245)t tr(cid:1189)ng thái khoá m(cid:1203)c xích (chained key state), c(cid:1191) hai (cid:255)(cid:1221)u

51

xu(cid:1193)t phát t(cid:1263) d(cid:1267) li(cid:1227)u nh(cid:1201)p. Sau (cid:255)ây là các ánh x(cid:1189) và các h(cid:1205)ng s(cid:1237) thành ph(cid:1195)n thi(cid:1219)t l(cid:1201)p nên Whirlpool và (cid:255)(cid:1211)c t(cid:1191) hàm b(cid:259)m Whirpool.

3.3.3.1. Nh(cid:821)p và xu(cid:813)t

Tr(cid:809)ng thái b(cid:259)m (state hash) bên trong (cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) là m(cid:1245)t ma tr(cid:1201)n M8x8[GF(28)]. Do (cid:255)ó, các kh(cid:1237)i d(cid:1267) li(cid:1227)u 512 bit ((cid:255)(cid:1133)(cid:1255)c mô t(cid:1191) bên ngoài nh(cid:1133) các m(cid:1191)ng byte b(cid:1205)ng cách nhóm các bit l(cid:1195)n l(cid:1133)(cid:1255)t thành nh(cid:1267)ng (cid:255)(cid:82)(cid:1189)n 8 bit) ph(cid:1191)i (cid:255)(cid:1133)(cid:1255)c ánh x(cid:1189)(cid:3)(cid:255)(cid:1219)n hay t(cid:1263)(cid:3)(cid:255)(cid:1231)nh d(cid:1189)ng ma tr(cid:1201)n. Vi(cid:1227)c này (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n b(cid:1251)i hàm

µ : GF(28)64 " M8x8[GF(28)] và ngh(cid:1231)ch (cid:255)(cid:1191)o c(cid:1259)a nó là : µ(a) = b (cid:219) i,j £ 7 bij = a8i+j , 0 £

3.3.3.2. L(cid:867)p phi tuy(cid:839)n g

Hàm g

: M8x8[GF(28)] " M8x8[GF(28)] bao g(cid:1239)m vi(cid:1227)c áp d(cid:1257)ng song song c(cid:1259)a S-box S : GF(28) " GF(28), x # S[x] cho t(cid:1193)t c(cid:1191) các byte c(cid:1259)a t(cid:1263)ng (cid:255)(cid:1237)i s(cid:1237) : g (a) = b (cid:219) i,j £ 7 bij = S[aij], 0 £

3.3.3.3. Hoán v(cid:851) theo chu k(cid:484) p

Hàm hoán v(cid:1231) p

: M8x8[GF(28)] " M8x8[GF(28)] xoay theo chu k(cid:484) m(cid:1243)i c(cid:1245)t c(cid:1259)a (cid:255)(cid:1237)i s(cid:1237) (argument) c(cid:1259)a nó m(cid:1245)t cách (cid:255)(cid:1245)c l(cid:1201)p, (cid:255)(cid:1223) các ph(cid:1195)n t(cid:1265) thu(cid:1245)c c(cid:1245)t j (cid:255)(cid:1133)(cid:1255)c xoay j v(cid:1231) trí trên c(cid:1245)t j (xoay theo dòng):

p( a) = p (cid:219) i,j £ 7 bij = a(i-j)mod8,j , 0 £ M(cid:1257)c (cid:255)ích c(cid:1259)a p là phát tán các byte c(cid:1259)a m(cid:1243)i dòng gi(cid:1267)a các dòng v(cid:1247)i nhau.

3.3.3.4. L(cid:867)p lan truy(cid:841)n tuy(cid:839)n tính q

L(cid:1247)p lan truy(cid:1221)n tuy(cid:1219)n tính q : M8x8[GF(28)] " M8x8[GF(28)] là m(cid:1245)t ánh x(cid:1189) tuy(cid:1219)n tính d(cid:1269)a trên mã MDS [n,k,d] v(cid:1247)i n = 16, k = 8, d = 9 v(cid:1247)i ma tr(cid:1201)n sinh GC = [IC] trong (cid:255)ó C = Cir(01x, 01x, 04x, 01x, 08x, 05x, 02x, 09x) t(cid:1261)c là :

b = a . C. K(cid:1219)t qu(cid:1191) c(cid:1259)a q là tr(cid:1245)n các byte trong m(cid:1243)i dòng tr(cid:1189)ng (cid:255)(cid:1223) q (a) = b (cid:219) thái.

52

3.3.3.5. Phép c(cid:865)ng khoá s [k]

Phép c(cid:1245)ng khoá quan h(cid:1227) s [k] : M8x8[GF(28)] " M8x8[GF(28)] bao g(cid:1239)m phép XOR c(cid:1259)a ma tr(cid:1201)n khoá k (cid:559) M8x8[GF(28)] : s [k](a) = b (cid:219) i,j £ 7 bij = aij¯ kij, 0 £ Ánh x(cid:1189) này c(cid:458)ng cho bi(cid:1219)t các h(cid:1205)ng s(cid:1237) vòng trong b(cid:1191)ng x(cid:1219)p l(cid:1231)ch khoá.

3.3.3.6. H(cid:825)ng s(cid:857) vòng cr

H(cid:1205)ng s(cid:1237) vòng cho vòng th(cid:1261) r , r>0, là m(cid:1245)t ma tr(cid:1201)n cr(cid:3)(cid:559) M8x8[GF(28)] , (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a nh(cid:1133) sau:

3.3.3.7. Hàm vòng p[k]

Hàm vòng th(cid:1261) r là ánh x(cid:1189) h(cid:1255)p (composite mapping) p[k] : M8x8[GF(28)] " M8x8[GF(28)] (cid:255)(cid:1133)(cid:1255)c tham s(cid:1237) hoá b(cid:1251)i ma tr(cid:1201)n khoá k (cid:559) M8x8[GF(28)] và (cid:255)(cid:1133)(cid:1255)c cho b(cid:1251)i : s [k] (cid:176) q (cid:176) p (cid:176) g p[k] ”

3.3.3.8. B(cid:811)ng x(cid:839)p l(cid:851)ch khoá

B(cid:1191)ng x(cid:1219)p l(cid:1231)ch khoá (cid:255)(cid:1133)(cid:1255)c m(cid:1251) r(cid:1245)ng khoá m(cid:1201)t mã 512 bit K (cid:559) M8x8[GF(28)] thành các khoá vòng K0,…, KR :

K0 = K, Kr = r[ cr]( Kr-1 ), r > 0.

3.3.3.9. M(cid:821)t mã kh(cid:857)i n(cid:865)i W

M(cid:1201)t mã toàn b(cid:1245) kh(cid:1237)i 512 bit W[K] : M8x8[GF(28)] " M8x8[GF(28)], (cid:255)(cid:1133)(cid:1255)c tham s(cid:1237) hoá b(cid:1251)i khoá m(cid:1201)t mã n(cid:1245)i 512 bit K, (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a nh(cid:1133) sau:

(cid:1251)(cid:3)(cid:255)ó các khoá vòng K0,…, KR d(cid:1199)n xu(cid:1193)t t(cid:1263) K b(cid:1251)i b(cid:1191)ng x(cid:1219)p l(cid:1231)ch khóa. S(cid:1237) vòng ng(cid:1199)u nhiên là R = 10.

3.3.3.10. Thêm các bit và t(cid:259)ng c(cid:753)(cid:869)ng MD

Tr(cid:1133)(cid:1247)c khi (cid:255)(cid:1133)(cid:1255)c b(cid:259)m, thông (cid:255)(cid:76)(cid:1227)p M có chi(cid:1221)u dài L < 2256(cid:3)(cid:255)(cid:1133)(cid:1255)c thêm m(cid:1245)t bit ‘1’ và m(cid:1245)t s(cid:1237) bit ‘0’ (cid:255)(cid:1133)(cid:1255)c thêm vào (cid:255)(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c chu(cid:1243)i bit có chi(cid:1221)u dài là b(cid:1245)i s(cid:1237) l(cid:1215) c(cid:1259)a 256 và cu(cid:1237)i cùng là 256 bit nh(cid:1231) phân ch(cid:1261)a chi(cid:1221)u dài L c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p

53

tr(cid:1133)(cid:1247)c khi thêm các bit (cid:255)(cid:1133)(cid:1255)c thêm vào t(cid:1189)o thành m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p m, thông (cid:255)(cid:76)(cid:1227)p k(cid:1219)t qu(cid:1191) này (cid:255)(cid:1133)(cid:1255)c chia thành t kh(cid:1237)i m1,…, mt. Các kh(cid:1237)i này (cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) là các m(cid:1191)ng byte b(cid:1205)ng cách nhóm liên t(cid:1257)c các bit thành các (cid:255)o(cid:1189)n 8-bit.

3.3.3.11. Ch(cid:881)c n(cid:259)ng nén( Nguyên t(cid:823)c nén)

WHIRLPOOL l(cid:1211)p chi(cid:1219)n l(cid:1133)(cid:1255)c b(cid:259)m Miyaguchi Preneel trên t kh(cid:1237)i thông t, dùng m(cid:1201)t mã toàn b(cid:1245) kh(cid:1237)i 512-bit W (dedicated 512- i £ (cid:255)i(cid:1227)p thêm bit mi, 1 £ bit block cipher W) :

v(cid:1247)i IV(Initialisation Vector) là m(cid:1245)t chu(cid:1243)i 512-bit ‘0’.

3.3.3.12. Tính thông (cid:255)i(cid:847)p b(cid:259)m

-1 (Ht).

Thông (cid:255)i(cid:1227)p b(cid:259)m WHIRLPOOL t(cid:1263) thông (cid:255)(cid:76)(cid:1227)p ngu(cid:1239)n M (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a nh(cid:1133)(cid:3)(cid:255)(cid:1195)u ra Ht c(cid:1259)a ho(cid:1189)t (cid:255)(cid:1245)ng nén, ánh x(cid:1189) ng(cid:1133)(cid:1255)c l(cid:1189)i chu(cid:1243)i bit: WHIRLPOOL(M) ” m

3.3.4. (cid:264)ánh giá hàm b(cid:259)m Whirpool

§ Có kh(cid:1191) n(cid:259)ng m(cid:1251) r(cid:1245)ng ph(cid:1189)m vi s(cid:1265) d(cid:1257)ng h(cid:1131)n (cid:255)a s(cid:1237) các hàm b(cid:259)m khác. § Hi(cid:1227)u qu(cid:1191) trên (cid:255)a s(cid:1237) ph(cid:1195)n c(cid:1261)ng (h(cid:1243) tr(cid:1255) cho các b(cid:1245) x(cid:1265) lý 8-bit c(cid:458), các b(cid:1245) x(cid:1265) lý 32-bit hi(cid:1227)n t(cid:1189)i và các b(cid:1245) x(cid:1265) lý 64-bit trong t(cid:1133)(cid:1131)ng lai).

§ Không yêu c(cid:1195)u không gian luu tr(cid:1267) quá m(cid:1261)c cho c(cid:1191) mã l(cid:1199)n các S-box. § (cid:264)(cid:1133)(cid:1255)c cài (cid:255)(cid:1211)t hi(cid:1227)u qu(cid:1191) trên môi tr(cid:1133)(cid:1249)ng có nh(cid:1267)ng ràng bu(cid:1245)c nh(cid:1133) các th(cid:1215) thông minh, các thi(cid:1219)t b(cid:1231) c(cid:1195)m tay,…; và ho(cid:1189)t (cid:255)(cid:1245)ng v(cid:1247)i hi(cid:1227)u su(cid:1193)t r(cid:1193)t cao khi ho(cid:1189)t (cid:255)(cid:1245)ng trên các b(cid:1245) nh(cid:1247) cache l(cid:1247)n h(cid:1131)n c(cid:1259)a các b(cid:1245) x(cid:1265) lý hi(cid:1227)n (cid:255)(cid:1189)i.

§ Ch(cid:1229) s(cid:1265) d(cid:1257)ng nh(cid:1267)ng l(cid:1227)nh (cid:255)(cid:1131)n gi(cid:1191)n (cid:255)(cid:1133)(cid:1255)c h(cid:1243) tr(cid:1255) s(cid:1209)n trong b(cid:1245) x(cid:1267) lý máy tính, không dùng nh(cid:1267)ng l(cid:1227)nh không thông th(cid:1133)(cid:1249)ng hay nh(cid:1267)ng câu l(cid:1227)nh t(cid:1263) các ti(cid:1227)n ích. § Chi(cid:1221)u dài giá tr(cid:1231) b(cid:259)m dài làm t(cid:259)ng kh(cid:1191) n(cid:259)ng ch(cid:1237)ng l(cid:1189)i các t(cid:1193)n công.

54

Ch(cid:1133)(cid:1131)ng 4. Gi(cid:1193)u d(cid:1267) li(cid:1227)u – Watermarking

Các ch(cid:1133)(cid:1131)ng tr(cid:1133)(cid:1247)c (cid:255)ã trình bày các ph(cid:1133)(cid:1131)ng pháp b(cid:1191)o m(cid:1201)t d(cid:1267) li(cid:1227)u và các gi(cid:1191)i pháp h(cid:1243) tr(cid:1255)(cid:3)(cid:255)(cid:1223) c(cid:1191)i ti(cid:1219)n t(cid:1237)c (cid:255)(cid:1245). Ch(cid:1133)(cid:1131)ng này s(cid:1217) gi(cid:1247)i thi(cid:1227)u m(cid:1245)t ph(cid:1133)(cid:1131)ng pháp b(cid:1191)o m(cid:1201)t d(cid:1267) li(cid:1227)u khác c(cid:458)ng (cid:255)ang phát tri(cid:1223)n m(cid:1189)nh và thu hút nhi(cid:1221)u ng(cid:1133)(cid:1249)i tham gia nghiên c(cid:1261)u: gi(cid:1193)u d(cid:1267) li(cid:1227)u (watermarking).

4.1. Gi(cid:1193)u d(cid:1267) li(cid:1227)u

Watermark có th(cid:1223) là m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p, m(cid:1245)t file, m(cid:1245)t logo, v.v..

(a) Nhúng không nhìn th(cid:1193)y

(b) Nhúng có th(cid:1223) nhìn th(cid:1193)y

Gi(cid:1193)u d(cid:1267) li(cid:1227)u là quá trình nhúng d(cid:1267) li(cid:1227)u watermark vào m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng multimedia (text, hình (cid:1191)nh, video, audio) nh(cid:1205)m m(cid:1245)t m(cid:1257)c (cid:255)ích nào (cid:255)ó: b(cid:1191)o v(cid:1227) watermark, b(cid:1191)o v(cid:1227) b(cid:1191)n quy(cid:1221)n, v.v…; và n(cid:1219)u c(cid:1195)n, watermark có th(cid:1223) trích ra sau (cid:255)ó.

Hình 4.1. Hai m(cid:1199)u watermark

4.2. Phân lo(cid:1189)i:

K(cid:1275) thu(cid:1201)t gi(cid:1193)u d(cid:1267) li(cid:1227)u có th(cid:1223) chia thành nhi(cid:1221)u lo(cid:1189)i khác nhau theo các cách khác khác nhau.

q Phân lo(cid:1189)i theo tài li(cid:1227)u watermark thì có b(cid:1237)n d(cid:1189)ng gi(cid:1193)u d(cid:1267) li(cid:1227)u:

§ Gi(cid:1193)u d(cid:1267) li(cid:1227)u trên text § Gi(cid:1193)u d(cid:1267) li(cid:1227)u trên (cid:1191)nh § Gi(cid:1193)u d(cid:1267) li(cid:1227)u trên file audio § Gi(cid:1193)u d(cid:1267) li(cid:1227)u trên file video

q Phân lo(cid:1189)i theo tính ch(cid:1193)t c(cid:1259)a watermark thì có hai d(cid:1189)ng gi(cid:1193)u d(cid:1267) li(cid:1227)u: § Gi(cid:813)u d(cid:887) li(cid:847)u có th(cid:843) nhìn th(cid:813)y: lo(cid:1189)i này xâm th(cid:1269)c vào d(cid:1267) li(cid:1227)u multimedia. Ví d(cid:1257): logo nh(cid:1235)(cid:3) (cid:1251) góc màn hình có th(cid:1223) th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c trong tr(cid:1189)m truy(cid:1221)n hình m(cid:1189)ng

55

(cid:222) có th(cid:1223) c(cid:1203)t (cid:255)i ph(cid:1195)n watermark

§ Gi(cid:813)u d(cid:887) li(cid:847)u không th(cid:843) nhìn th(cid:813)y: lo(cid:1189)i này thu(cid:1201)n l(cid:1255)i h(cid:1131)n lo(cid:1189)i có th(cid:1223) nhìn th(cid:1193)y, do vi trí c(cid:1259)a watermark n(cid:1205)m (cid:1251)(cid:3)(cid:255)âu chúng ta không bi(cid:1219)t (cid:255)(cid:1133)(cid:1255)c. H(cid:1131)n n(cid:1267)a, (cid:255)(cid:1223) tránh tr(cid:1133)(cid:1249)ng h(cid:1255)p watermark b(cid:1231) c(cid:1203)t b(cid:1235) chúng ta có th(cid:1223) phân ph(cid:1237)i watermark trên toàn d(cid:1267) li(cid:1227)u g(cid:1237)c. Và do không th(cid:1223) nhìn th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c nên lo(cid:1189)i này ít (cid:1191)nh h(cid:1133)(cid:1251)ng (cid:255)(cid:1219)n ho(cid:1189)t (cid:255)(cid:1245)ng c(cid:1259)a d(cid:1267) li(cid:1227)u.

4.3. Mô hình chung:

Thông th(cid:1133)(cid:1249)ng, m(cid:1245)t h(cid:1227) th(cid:1237)ng gi(cid:1193)u d(cid:1267) li(cid:1227)u bao g(cid:1239)m hai quá trình: nhúng watermark và dò tìm watermark.

D(cid:1267) li(cid:1227)u g(cid:1237)c

D(cid:1267) li(cid:1227)u có

B(cid:1245) nhúng Watermark B(cid:1245) dò tìm Watermark Watermark Watermark (cid:255)(cid:1133)(cid:1255)c tìm th(cid:1193)y

Watermark

Hình 4.2. Mô hình chung c(cid:1259)a h(cid:1227) th(cid:1237)ng gi(cid:1193)u d(cid:1267) li(cid:1227)u

q B(cid:1245) nhúng watermark

§ (cid:264)ây là qui trình nhúng m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p vào d(cid:1267) li(cid:1227)u g(cid:1237)c. § (cid:264)(cid:1195)u vào: thông (cid:255)i(cid:1227)p watermark và thông tin c(cid:1259)a d(cid:1267) li(cid:1227)u g(cid:1237)c. § (cid:264)(cid:1195)u ra: d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c watermark.

q B(cid:1245) dò tìm watermark

§ (cid:264)ây là qui trình trích thông (cid:255)i(cid:1227)p t(cid:1263) d(cid:1267) li(cid:1227)u (cid:255)ã watermark. § (cid:264)(cid:1195)u vào: d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c watermark hay là d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c watermark (cid:255)ã b(cid:1231) ch(cid:1229)nh s(cid:1265)a, bi(cid:1219)n (cid:255)(cid:1241)i (cid:1251) m(cid:1261)c (cid:255)(cid:1245) nh(cid:1193)t (cid:255)(cid:1231)nh nào (cid:255)ó § (cid:264)(cid:1195)u ra: thông (cid:255)i(cid:1227)p (cid:255)ã (cid:255)(cid:1133)(cid:1255)c nhúng (n(cid:1219)u có). H(cid:1195)u h(cid:1219)t các b(cid:1245) dò tìm s(cid:1217) xác (cid:255)(cid:1231)nh xem có t(cid:1239)n t(cid:1189)i watermark trong d(cid:1267) li(cid:1227)u watermark hay không

4.4. Các yêu c(cid:1195)u c(cid:1259)a bài toán gi(cid:1193)u d(cid:1267) li(cid:1227)u

56

Tùy vào (cid:1261)ng d(cid:1257)ng c(cid:1259)a watermarking và m(cid:1257)c (cid:255)ích c(cid:1259)a (cid:1261)ng d(cid:1257)ng, các yêu c(cid:1195)u khác nhau (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1211)t ra. Nh(cid:1133)ng yêu c(cid:1195)u th(cid:1133)(cid:1249)ng g(cid:1211)p là tính không c(cid:1191)m nh(cid:1201)n (cid:255)(cid:1133)(cid:1255)c và tính (cid:255)(cid:1245)c l(cid:1201)p v(cid:1247)i m(cid:1257)c tiêu (cid:1261)ng d(cid:1257)ng. M(cid:1245)t (cid:1261)ng d(cid:1257)ng watermarking có nh(cid:1267)ng yêu c(cid:1195)u c(cid:1131) b(cid:1191)n sau:

§ Tính hi(cid:1227)u qu(cid:1191): xác su(cid:1193)t thành công c(cid:1259)a quá trình nhúng. Có ngh(cid:429)a là xác su(cid:1193)t tìm th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c watermark ngay sau khi nhúng.

§ Tính trong su(cid:1237)t: là tính không c(cid:1191)m nh(cid:1201)n (cid:255)(cid:1133)(cid:1255)c v(cid:1219)t watermark sau khi (cid:255)(cid:1133)(cid:1255)c nhúng vào d(cid:1267) li(cid:1227)u g(cid:1237)c. Ch(cid:1207)ng h(cid:1189)n (cid:255)(cid:1237)i v(cid:1247)i m(cid:1245)t t(cid:1193)m hình, ng(cid:1133)(cid:1249)i s(cid:1265) d(cid:1257)ng h(cid:1195)u nh(cid:1133) s(cid:1217) không th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c b(cid:1193)t k(cid:484) s(cid:1269) thay (cid:255)(cid:1241)i nào (cid:255)(cid:1237)i v(cid:1247)i t(cid:1193)m hình; (cid:255)(cid:1237)i v(cid:1247)i m(cid:1245)t (cid:255)(cid:82)(cid:1189)n phim video, ng(cid:1133)(cid:1249)i s(cid:1265) d(cid:1257)ng c(cid:458)ng r(cid:1193)t khó th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c s(cid:1269) khác bi(cid:1227)t so v(cid:1247)i phim g(cid:1237)c.

§ (cid:264)(cid:1245) tin c(cid:1201)y: m(cid:1261)c (cid:255)(cid:1245) t(cid:1133)(cid:1131)ng t(cid:1269) gi(cid:1267)a d(cid:1267) li(cid:1227)u g(cid:1237)c và d(cid:1267) li(cid:1227)u có watermark. N(cid:1219)u d(cid:1267) li(cid:1227)u có watermark b(cid:1231) gi(cid:1191)m ch(cid:1193)t l(cid:1133)(cid:1255)ng hay b(cid:1231) bi(cid:1219)n (cid:255)(cid:1241)i trong quá trình truy(cid:1221)n t(cid:1191)i hay phát hành, thì (cid:255)(cid:1245) tin c(cid:1201)y c(cid:1259)a h(cid:1227) th(cid:1237)ng này chính là m(cid:1261)c (cid:255)(cid:1245) t(cid:1133)(cid:1131)ng t(cid:1269) gi(cid:1267)a ngu(cid:1239)n d(cid:1267) li(cid:1227)u g(cid:1237)c và d(cid:1267) li(cid:1227)u có watermark sau quá trình truy(cid:1221)n t(cid:1191)i.

§ Tính b(cid:1221)n v(cid:1267)ng: kh(cid:1191) n(cid:259)ng dò tìm (cid:255)(cid:1133)(cid:1255)c v(cid:1219)t watermark sau khi có nh(cid:1267)ng thao tác x(cid:1265) lý tín hi(cid:1227)u thông th(cid:1133)(cid:1249)ng (l(cid:1233)c không gian (spatial filtering) trong (cid:1191)nh, nén có m(cid:1193)t d(cid:1267) li(cid:1227)u, quét, bi(cid:1219)n d(cid:1189)ng hình h(cid:1233)c (quay, d(cid:1231)ch chuy(cid:1223)n, t(cid:1273) l(cid:1227)) v.v…

§ T(cid:1191)i tr(cid:1233)ng d(cid:1267) li(cid:1227)u: s(cid:1237) bits c(cid:1259)a m(cid:1245)t watermark (cid:255)(cid:1133)(cid:1255)c mã hoá trong m(cid:1245)t (cid:255)(cid:1131)n v(cid:1231) th(cid:1249)i gian ho(cid:1211)c m(cid:1245)t ngu(cid:1239)n d(cid:1267) li(cid:1227)u. Ví d(cid:1257): (cid:255)(cid:1237)i v(cid:1247)i m(cid:1245)t t(cid:1193)m (cid:1191)nh, t(cid:1191)i tr(cid:1233)ng d(cid:1267) li(cid:1227)u ch(cid:1229) s(cid:1237) bits watermark (cid:255)(cid:1133)(cid:1255)c mã hoá trong t(cid:1193)m (cid:1191)nh; (cid:255)(cid:1237)i v(cid:1247)i âm thanh, t(cid:1191)i tr(cid:1233)ng d(cid:1267) li(cid:1227)u ch(cid:1229) s(cid:1237) bits watermark (cid:255)(cid:1133)(cid:1255)c nhúng vào 1 giây d(cid:1267) li(cid:1227)u; (cid:255)(cid:1237)i v(cid:1247)i video, t(cid:1191)i tr(cid:1233)ng d(cid:1267) li(cid:1227)u ch(cid:1229)(cid:3)(cid:255)(cid:1219)n s(cid:1237) bits c(cid:1259)a m(cid:1245)t frame ho(cid:1211)c s(cid:1237) bits c(cid:1259)a 1 giây.

§ Ch(cid:1237)ng t(cid:1193)n công: tùy thu(cid:1245)c vào m(cid:1257)c (cid:255)ích c(cid:1259)a (cid:1261)ng d(cid:1257)ng, tính ch(cid:1237)ng t(cid:1193)n công (cid:1191)nh h(cid:1133)(cid:1251)ng (cid:255)(cid:1219)n qui trình thi(cid:1219)t k(cid:1219)

§ Khôi ph(cid:1257)c watermark c(cid:1195)n ho(cid:1211)c không c(cid:1195)n d(cid:1267) li(cid:1227)u g(cid:1237)c

§ L(cid:1193)y watermark hay xác nh(cid:1201)n s(cid:1269) xu(cid:1193)t hi(cid:1227)n c(cid:1259)a m(cid:1245)t watermark cho tr(cid:1133)(cid:1247)c

§ (cid:264)(cid:1245) b(cid:1191)o m(cid:1201)t và khóa watermark

§ V(cid:1193)n (cid:255)(cid:1221) chi phí: chi phí cho vi(cid:1227)c tri(cid:1223)n khai b(cid:1245) nhúng và b(cid:1245) dò tìm r(cid:1193)t ph(cid:1261)c t(cid:1189)p và tu(cid:484) thu(cid:1245)c vào mô hình phát tri(cid:1223)n. V(cid:1221) m(cid:1211)t k(cid:1275) thu(cid:1201)t, hai v(cid:1193)n (cid:255)(cid:1221) chính là t(cid:1237)c (cid:255)(cid:1245) mà b(cid:1245) nhúng và b(cid:1245) dò tìm th(cid:1269)c hi(cid:1227)n và s(cid:1237) các b(cid:1245) nhúng và b(cid:1245) dò tìm ph(cid:1191)i (cid:255)(cid:1133)(cid:1255)c tri(cid:1223)n khai.

57

4.5. Ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u

4.5.1. Ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u có th(cid:1223) nhìn th(cid:1193)y

Do (cid:255)(cid:1211)c (cid:255)(cid:76)(cid:1223)m c(cid:1259)a quá trình nhúng watermark có th(cid:1223) nhìn th(cid:1193)y, h(cid:1227) th(cid:1237)ng nhúng watermark có th(cid:1223) nhìn th(cid:1193)y không yêu c(cid:1195)u trích watermark, nên v(cid:1247)i các ph(cid:1133)(cid:1131)ng pháp trong lo(cid:1189)i nhúng này, chúng tôi ch(cid:1229) gi(cid:1247)i thi(cid:1227)u quá trình nhúng watermark.

4.5.1.1. Ph(cid:753)(cid:751)ng pháp d(cid:889)a vào phép bi(cid:839)n (cid:255)(cid:861)i Cosin t(cid:883)ng ph(cid:815)n

Trong ph(cid:1133)(cid:1131)ng pháp này, nh(cid:1267)ng block (cid:1251) ngoài rìa s(cid:1217)(cid:3)(cid:255)(cid:1133)(cid:1255)c bi(cid:1219)n (cid:255)(cid:1241)i th(cid:1193)p nh(cid:1193)t (cid:255)(cid:1223) tránh s(cid:1269) méo mó quan tr(cid:1233)ng c(cid:1259)a (cid:1191)nh. Quá trình nhúng watermark (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n theo các b(cid:1133)(cid:1247)c sau:

1. Chia (cid:1191)nh g(cid:1237)c I ((cid:1191)nh (cid:255)(cid:1133)(cid:1255)c Watermark) và (cid:1191)nh WaterMark W thành nh(cid:1267)ng block 8x8. Kích th(cid:1133)(cid:1247)c c(cid:1259)a 2 (cid:1191)nh I và W có th(cid:1223) không b(cid:1205)ng nhau.

2. Tìm các h(cid:1227) s(cid:1237) DCT c(cid:1259)a t(cid:1263)ng block c(cid:1259)a (cid:1191)nh I

(n)

00

=

3. V(cid:1247)i m(cid:1243)i block c(cid:1259)a (cid:1191)nh g(cid:1237)c I, tính giá tr(cid:1231)(cid:3)(cid:255)(cid:1245) xám (cid:255)(cid:1133)(cid:1255)c chu(cid:1197)n hoá c(cid:1259)a block th(cid:1261) n m n b(cid:1205)ng công th(cid:1261)c (1) (ép v(cid:1221) kho(cid:1191)ng [0.1,1]) và tính giá tr(cid:1231) (cid:255)(cid:1245) xám (cid:255)(cid:1133)(cid:1255)c chu(cid:1197)n hoá c(cid:1259)a (cid:1191)nh I m b(cid:1205)ng công th(cid:1261)c (2)

(1)

n

00max

c c

N

=

m

(2)

n )(

n

= 1

00c

1 N

* = lns n, ta có:

m (cid:229)

2

=

4. V(cid:1247)i nh(cid:1267)ng h(cid:1227) s(cid:1237) thích nghi DCT, tính s(cid:1269) khác bi(cid:1227)t c(cid:1259)a nh(cid:1267)ng h(cid:1227) s(cid:1237) s n b(cid:1205)ng công th(cid:1261)c (3) (ép v(cid:1221) kho(cid:1191)ng thích nghi DCT c(cid:1259)a block th(cid:1261) n, [0.1,1]), và tính s(cid:1269) khác bi(cid:1227)t (cid:255)(cid:1133)(cid:1255)c chu(cid:1197)n hoá c(cid:1259)a nh(cid:1267)ng h(cid:1227) s(cid:1237) DCT c(cid:1259)a block n, s n’ b(cid:1205)ng công th(cid:1261)c (4). (cid:264)(cid:1211)t s n

)

(3)

n

m s (cid:229) (cid:229)

( -c ij

AC n

1 64

i

j

* n

=

(4)

' n

* max

s s s

5. Nh(cid:1267)ng block (cid:1251) ngoài rìa ((cid:255)(cid:1133)(cid:1255)c xác (cid:255)(cid:1231)nh b(cid:1205)ng toán t(cid:1265) c(cid:1189)nh Sobel), thì các h(cid:1227) s(cid:1237) co giãn a n và h(cid:1227) s(cid:1237) nhúng b n(cid:3)(cid:255)(cid:1133)(cid:1255)c l(cid:1193)y b(cid:1205)ng v(cid:1247)i a max và b max.

58

(

) 2'

6. Nh(cid:1267)ng block không (cid:1251) ngoài rìa thì h(cid:1227) s(cid:1237) co giãn a n và h(cid:1227) s(cid:1237) nhúng b n (cid:255)(cid:1133)(cid:1255)c tính b(cid:1205)ng công th(cid:1261)c (5) và (6)

-

-

' n

=

e

(5)

n

(

) 2'

m m s a

-

-

' n

=

e1

(6)

n

' n 1 ' n

m m (cid:246) (cid:230) b - (cid:247) (cid:231) ł Ł s

7. Tìm h(cid:1227) s(cid:1237) DCT c(cid:1259)a (cid:1191)nh W. Khi (cid:255)ó, watermark (cid:255)(cid:1133)(cid:1255)c chèn vào (cid:1191)nh g(cid:1237)c I b(cid:1205)ng cách thay (cid:255)(cid:1241)i h(cid:1227) s(cid:1237) DCT c(cid:1259)a (cid:1191)nh g(cid:1237)c I b(cid:1205)ng công th(cid:1261)c (7) nh(cid:1133) sau:

n = 1,2… (7) c'ij(n) = a ncij(n) + b nwij(n)

Trong (cid:255)ó: - cij(n), wij(n) là h(cid:1227) s(cid:1237) DCT c(cid:1259)a block th(cid:1261) n c(cid:1259)a (cid:1191)nh I, (cid:1191)nh W

4 Ghi chú: Trong th(cid:1269)c ti(cid:1225)n, a min, a max, b min và b max th(cid:1133)(cid:1249)ng (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n là 0.95, 0.98, 0.07 và 0.17

4.5.1.2. P(cid:75)(cid:753)(cid:751)ng pháp chèn giá tr(cid:851)(cid:3)(cid:255)(cid:865) xám

Ph(cid:1133)(cid:1131)ng pháp này nhúng watermark (logo) b(cid:1205)ng cách chèn các giá tr(cid:1231) (cid:255)(cid:1245)c xám c(cid:1259)a Logo vào (cid:1191)nh g(cid:1237)c. Công th(cid:1261)c chèn watermark (cid:255)(cid:1131)n gi(cid:1191)n nh(cid:1133) sau:

+

nmI ( ),

nmW ), (

nmI ), (

nmI (

2),

I 903

<

+

nmI ( ),

nmW ), (

nmI ), (

2

nmI ), (

64

.6

=

<

+

nmI ( ),

nmW ), (

nmI ), (

64

nmI ), (

128

nmI ( ), w

.6

<

+

nmI ( ),

nmW ), (

nmI ), (

128

nmI ), (

192

.6

<

+

nmI ( ),

nmW ), (

nmI ), (

192

nmI ), (

256

3. C I 1 0976 C I 2 0976 C I 3 0976 C I 4 0976

.6

a (cid:236) £ * * (cid:239) (cid:239) a (cid:239) £ * * (cid:239) (cid:239) a (cid:239) £ * * (cid:237) (cid:239) a (cid:239) £ * * (cid:239) (cid:239) a (cid:239) £ * * (cid:239) (cid:238)

Trong (cid:255)ó:

a Iw(m,n): pixel t(cid:1189)i to(cid:1189)(cid:3)(cid:255)(cid:1245) (m,n) c(cid:1259)a (cid:1191)nh (cid:255)ã watermark I(m,n): pixel t(cid:1189)i to(cid:1189)(cid:3)(cid:255)(cid:1245) (m,n) c(cid:1259)a (cid:1191)nh g(cid:1237)c I: quy(cid:1219)t (cid:255)(cid:1231)nh (cid:255)(cid:1245) m(cid:1189)nh c(cid:1259)a watermark § § § § C1, C2, C3, C4: là các h(cid:1227) s(cid:1237)

I, C1, C2, C3, C4(cid:3)(cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n là: 0.0001, 4, 9,

4 Ghi chú: Thông th(cid:1133)(cid:1249)ng, a 16 và 1

59

4.5.2. Ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u không th(cid:1223) th(cid:1193)y

Các ph(cid:1133)(cid:1131)ng pháp (cid:255)(cid:1133)(cid:1255)c trình bày trong ph(cid:1195)n này d(cid:1269)a vào phép bi(cid:1219)n (cid:255)(cid:1241)i Wavelet (cid:255)(cid:1223) nhúng watermark vào (cid:1191)nh và các watermark (cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) m(cid:1245)t dãy nh(cid:1231) phân {wi, wi ˛ {0,1}}

4.5.2.1. Ph(cid:753)(cid:751)ng pháp l(cid:753)(cid:875)ng hoá h(cid:847) s(cid:857) bi(cid:839)n (cid:255)(cid:861)i wavelet

B(cid:1205)ng ph(cid:1133)(cid:1131)ng pháp này, (cid:1191)nh sau khi nhúng không thay (cid:255)(cid:1241)i kích th(cid:1133)(cid:1247)c và không b(cid:1231) méo mó. Chi(cid:1221)u dài watermark ph(cid:1257) thu(cid:1245)c vào kích th(cid:1133)(cid:1247)c c(cid:1259)a (cid:1191)nh g(cid:1237)c.

Không c(cid:1195)n (cid:1191)nh g(cid:1237)c khi trích watermark.

q Quá trình nhúng watermark

Quá trình nhúng watermark (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n theo các b(cid:1133)(cid:1247)c sau:

1. Th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet trên (cid:1191)nh g(cid:1237)c và tính các h(cid:1227) s(cid:1237) bi(cid:1219)n (cid:255)(cid:1241)i wavelet (h(cid:1227) s(cid:1237) WTC): Ci , i=0..N (N tu(cid:484) thu(cid:1245)c vào m(cid:1261)c bi(cid:1219)n (cid:255)(cid:1241)i Wavelet) 2. Th(cid:1269)c hi(cid:1227)n phép l(cid:1133)(cid:1255)ng hoá h(cid:1227) s(cid:1237) wavelet: C’i = Ci/M (M: h(cid:1227) s(cid:1237) l(cid:1133)(cid:1255)ng

hoá) 3. L(cid:1211)p: N(cid:1219)u (wi=0) Bi(cid:1219)n (cid:255)(cid:1241)i h(cid:1227) s(cid:1237) WTC C’i thành s(cid:1237) ch(cid:1209)n Ng(cid:1133)(cid:1255)c l(cid:1189)i: Bi(cid:1219)n (cid:255)(cid:1241)i h(cid:1227) s(cid:1237) WTC C’i thành s(cid:1237) l(cid:1215) D(cid:1263)ng khi h(cid:1219)t watermark ho(cid:1211)c duy(cid:1227)t h(cid:1219)t (cid:1191)nh

4. Th(cid:1269)c hi(cid:1227)n phép l(cid:1133)(cid:1255)ng hoá ng(cid:1133)(cid:1255)c h(cid:1227) s(cid:1237) wavelet: Ci = C’i*M 5. Th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet ng(cid:1133)(cid:1255)c v(cid:1247)i h(cid:1227) s(cid:1237) wavelet Ci, ta d(cid:1133)(cid:1255)c (cid:1191)nh (cid:255)ã watermark

q Quá trình trích watermark

Quá trình trích watermark (cid:255)(cid:1131)n gi(cid:1191)n ch(cid:1229) là quá trình ng(cid:1133)(cid:1255)c v(cid:1247)i quá trình nhúng watermark và watermark (cid:255)(cid:1133)(cid:1255)c trích ra theo công th(cid:1261)c:

N(cid:1219)u (C’i là s(cid:1237) l(cid:1215)) thì wi = 1; Ng(cid:1133)(cid:1255)c l(cid:1189)i: wi = 0;

v(cid:1247)i C’i là h(cid:1227) s(cid:1237) bi(cid:1219)n (cid:255)(cid:1241)i wavelet c(cid:1259)a (cid:1191)nh (cid:255)(cid:1191) watermark sau khi (cid:255)ã qua (cid:69)(cid:1133)(cid:1247)c l(cid:1133)(cid:1255)ng hoá.

Ph(cid:753)(cid:751)ng pháp d(cid:889)a vào s(cid:889) khác bi(cid:847)t gi(cid:887)a các h(cid:847) s(cid:857) wavelet k(cid:841) 4.5.2.2. nhau

60

Ph(cid:1133)(cid:1131)ng pháp này s(cid:1265) d(cid:1257)ng phép bi(cid:1219)n (cid:255)(cid:1241)i Wavelet (cid:255)(cid:1223) nhúng watermark vào (cid:1191)nh. Ch(cid:1193)t l(cid:1133)(cid:1255)ng (cid:1191)nh sau khi nhúng không thay (cid:255)(cid:1241)i kích th(cid:1133)(cid:1247)c và không b(cid:1231) méo mó hình (cid:1191)nh. Chi(cid:1221)u dài watermark ph(cid:1257) thu(cid:1245)c vào kích th(cid:1133)(cid:1247)c c(cid:1259)a (cid:1191)nh g(cid:1237)c và ph(cid:1257) thu(cid:1245)c vào tính ch(cid:1193)t c(cid:1259)a (cid:1191)nh: (cid:255)(cid:1245) dài c(cid:1259)a watermark t(cid:1229) l(cid:1227) thu(cid:1201)n v(cid:1247)i s(cid:1237) (cid:255)i(cid:1223)m (cid:1191)nh ph(cid:1207)ng k(cid:1221) nhau.

Không c(cid:1195)n (cid:1191)nh g(cid:1237)c khi trích watermark.

q Quá trình nhúng watermark

Quá trình nhúng watermark (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n theo các b(cid:1133)(cid:1247)c sau:

1. Th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet trên (cid:1191)nh g(cid:1237)c và tính các h(cid:1227)

s(cid:1237) bi(cid:1219)n (cid:255)(cid:1241)i wavelet WTC: Cij 2. Chia (cid:1191)nh g(cid:1237)c thành nhi(cid:1221)u block 2x1 theo chi(cid:1221)u d(cid:1233)c và m(cid:1243)i block nhúng m(cid:1245)t bit watermark 3. L(cid:1211)p

a. Tính s(cid:1269) khác bi(cid:1227)t tuy(cid:1227)t (cid:255)(cid:1237)i d(m,n) và giá tr(cid:1231) trung bình trong m(cid:1243)i block

M(m,n) c(cid:1259)a hai h(cid:1227) s(cid:1237) WTC {(m,2n),(m,2n+1)}: § d = |Cm,2n – Cm,2n+1| § M = (Cm,2n – Cm,2n+1)/2 b. N(cid:1219)u d<=T thì wj(cid:3)(cid:255)(cid:1133)(cid:1255)c nhúng vào block này nh(cid:1133) sau: § wj = 1

Cm,2n+1 || d<2a) N(cid:1219)u (Cm,2n £ {

Cm,2n = M+a Cm,2n+1 = M-a

} Ng(cid:1133)(cid:1255)c l(cid:1189)i thì không thay (cid:255)(cid:1241)i Cm,2n và Cm,2n+1 § wj = 0 Cm,2n+1 || d<2a) N(cid:1219)u (Cm,2n ‡ {

Cm,2n = M-a Cm,2n+1 = M+a

} Ng(cid:1133)(cid:1255)c l(cid:1189)i thì không thay (cid:255)(cid:1241)i Cm,2n và Cm,2n+1

Ng(cid:1133)(cid:1255)c l(cid:1189)i thì block này không dùng (cid:255)(cid:1223) nhúng watermark D(cid:1263)ng khi h(cid:1219)t watermark ho(cid:1211)c h(cid:1219)t kích th(cid:1133)(cid:1247)c (cid:1191)nh

4. Th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet ng(cid:1133)(cid:1255)c v(cid:1247)i h(cid:1227) s(cid:1237) wavelet Ci, ta d(cid:1133)(cid:1255)c (cid:1191)nh (cid:255)ã watermark

Trong (cid:255)ó:

61

(cid:216) T: ng(cid:1133)(cid:1253)ng xác (cid:255)(cid:1231)nh block nào là ph(cid:1207)ng. N(cid:1219)u m(cid:1245)t block có d>T thì block (cid:255)ó thu(cid:1245)c vào ph(cid:1195)n ph(cid:1207)ng và ng(cid:1133)(cid:1255)c l(cid:1189)i (cid:216) a là tham s(cid:1237) t(cid:1133)(cid:1131)ng quan ch(cid:1193)t l(cid:1133)(cid:1255)ng (a

q Quá trình trích watermark

Quá trình trích watermark (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n theo các b(cid:1133)(cid:1247)c sau:

1. Th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet trên (cid:1191)nh g(cid:1237)c và tính các h(cid:1227) s(cid:1237) bi(cid:1219)n

(cid:255)(cid:1241)i wavelet WTC: Cij

2. Chia (cid:1191)nh g(cid:1237)c thành nhi(cid:1221)u block 2x1 theo chi(cid:1221)u d(cid:1233)c 3. L(cid:1211)p

a. Tính s(cid:1269) khác bi(cid:1227)t tuy(cid:1227)t (cid:255)(cid:1237)i d(m,n) và giá tr(cid:1231) trung bình trong m(cid:1243)i block c(cid:1259)a hai h(cid:1227) s(cid:1237) WTC M(m,n) {(m,2n),(m,2n+1)}:

§ d = |Cm,2n – Cm,2n+1| § M = (Cm,2n – Cm,2n+1)/2 b. N(cid:1219)u d<=T thì block này có ch(cid:1261)a watermark và:

§ N(cid:1219)u Cm,2n

Ng(cid:1133)(cid:1255)c l(cid:1189)i thì block này không ch(cid:1261)a watermark

D(cid:1263)ng khi h(cid:1219)t watermark (theo qui (cid:255)(cid:1231)nh c(cid:1259)a t(cid:1263)ng ng(cid:1133)(cid:1249)i) ho(cid:1211)c duy(cid:1227)t h(cid:1219)t (cid:1191)nh

Khi (cid:255)ó, W={wi} là watermark c(cid:1195)n trích.

4 Ghi chú: Trong th(cid:1269)c t(cid:1219), T và a th(cid:1133)(cid:1249)ng (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n là 6.2 và 2.1

4.5.2.3. Ph(cid:753)(cid:751)ng pháp d(cid:889)a vào phép bi(cid:839)n (cid:255)(cid:861)i Wavelet d(cid:753) th(cid:883)a

Ph(cid:1133)(cid:1131)ng pháp này s(cid:1265) d(cid:1257)ng Redundant Wavelet Trasform (RDWT: phép bi(cid:1219)n (cid:255)(cid:1241)i Wavelet d(cid:1133) th(cid:1263)a) và (cid:255)(cid:1245) dài c(cid:1259)a watermark ph(cid:1257) thu(cid:1245)c vào nh(cid:1267)ng h(cid:1227) s(cid:1237) (cid:255)áng giá c(cid:1259)a (cid:1191)nh.

Không c(cid:1195)n (cid:1191)nh g(cid:1237)c khi trích watermark.

q Quá trình nhúng watermark

RDWT h(cid:1243) tr(cid:1255) ti(cid:1219)n tình nhúng watermarking thông qua m(cid:1245)t m(cid:1211)t n(cid:1189) h(cid:1133)(cid:1247)ng d(cid:1199)n n(cid:1131)i watermark (cid:255)(cid:1133)(cid:1255)c thêm vào.

Trong k(cid:1275) thu(cid:1201)t này, nhi(cid:1225)u Gaussian tr(cid:1203)ng (white Gaussian noise) (cid:255)(cid:1133)(cid:1255)c dùng nh(cid:1133) chu(cid:1243)i mã (watermark), nhi(cid:1225)u này (cid:255)(cid:1133)(cid:1255)c thêm vào h(cid:1227) s(cid:1237) RDWT c(cid:1259)a (cid:1191)nh:

62

f’{V,H,D}(x,y) = f{V,H,D}(x,y) + a v{V,H,D}(x,y)w{V,H,D}(x,y)

f{V,H,D}(x,y) : h(cid:1227) s(cid:1237) RDWT c(cid:1259)a (cid:1191)nh v{V,H,D}(x,y): watermark (cid:255)(cid:1133)(cid:1255)c nhúng

Trong (cid:255)ó: - - - V, H, D (cid:255)(cid:1189)i di(cid:1227)n cho thành ph(cid:1195)n d(cid:1233)c, ngang và chéo. - w{V,H,D}(x,y): là m(cid:1237)i t(cid:1133)(cid:1131)ng quan c(cid:1259)a m(cid:1211)t n(cid:1189) ph(cid:1257) c(cid:1259)a thành ph(cid:1195)n d(cid:1233)c, ngang và chéo.

i

*

=

,{ }, DHVj

w

(x,

y)

(x,

y)

f

Trong k(cid:1275) thu(cid:1201)t này, m(cid:1211)t n(cid:1189) quan h(cid:1227)(cid:3)(cid:255)(cid:1133)(cid:1255)c t(cid:1189)o b(cid:1205)ng:

i{V,

D}H,

= 1

j

(cid:213)

j{V,H,D}(x,y) là chu(cid:1197)n hoá c(cid:1259)a h(cid:1227) s(cid:1237) RDWT t(cid:1189)i scale th(cid:1261) j c(cid:1259)a

f

)

f

)

,( yx

j{V,

D}H,

j{V,

D}H,

*

=

,{ }, DHVj

f

1

M

,( yx 1 N

2

f

)

,( yx

j{V,

D}H,

=

0

= 0y

x

Trong (cid:255)ó: - f* phép bi(cid:1219)n (cid:255)(cid:1241)i VD: * - - (cid:229) (cid:229)

- wi{V,H,D}(x,y): là m(cid:1211)t n(cid:1189) quan h(cid:1227) ch(cid:1261)a t(cid:1263) scale th(cid:1261) 1 (cid:255)(cid:1219)n scale th(cid:1261) i c(cid:1259)a phép bi(cid:1219)n (cid:255)(cid:1241)i.

q Quá trình trích watermark

Vi(cid:1227)c tìm watermark có t(cid:1239)n t(cid:1189)i hay không (cid:255)(cid:1131)n gi(cid:1191)n ch(cid:1229) là m(cid:1245)t ti(cid:1219)n trình ng(cid:1133)(cid:1255)c v(cid:1247)i ti(cid:1219)n trình nhúng watermark. Sau khi th(cid:1269)c hi(cid:1227)n RDWT, ph(cid:1133)(cid:1131)ng pháp (cid:255)(cid:1131)n gi(cid:1191)n (cid:255)(cid:1223) tìm ra watermark t(cid:1133)(cid:1131)ng t(cid:1269) và (cid:255)(cid:1239)ng nh(cid:1193)t là d(cid:1269)a vào tính t(cid:1133)(cid:1131)ng t(cid:1269):

r = max{V,H,D}[r S]

v(cid:1247)i phép (cid:255)o tính t(cid:1133)(cid:1131)ng t(cid:1269) cho subband s là:

1-M

1

N

'

=

S

(cid:545)

f

(x,

y)v

yx ,(

)

S

S

=

= 0x

0

y

- (cid:229) (cid:229)

Trong (cid:255)ó: - - - f’s(x,y): h(cid:1227) s(cid:1237) RDWT c(cid:1259)a (cid:1191)nh (cid:255)(cid:1133)(cid:1255)c ki(cid:1223)m tra vs(x,y): watermark (cid:255)(cid:1133)(cid:1255)c nhúng vào chi(cid:1221)u d(cid:1233)c, ngang, và chéo r : h(cid:1227) s(cid:1237) t(cid:1133)(cid:1131)ng t(cid:1269) l(cid:1247)n nh(cid:1193)t t(cid:1263) m(cid:1243)i h(cid:1133)(cid:1247)ng khác nhau

4 Ghi chú: N(cid:1219)u trong quá trình dò tìm có thêm (cid:1191)nh g(cid:1237)c thì công th(cid:1261)c tính (cid:255)(cid:1245) t(cid:1133)(cid:1131)ng t(cid:1269) c(cid:1259)a subband s s(cid:1217) là:

63

1-M

1

N

'

=

S

(cid:545)

f(

(x,

f-y)

(x,

v)y)

)

,( yx

S

S

S

=

= 0x

0

y

- (cid:229) (cid:229)

4.5.2.4. Ph(cid:753)(cid:751)ng pháp d(cid:889)a trên vi(cid:847)c chia block thích nghi

Ph(cid:1133)(cid:1131)ng pháp này s(cid:1265) d(cid:1257)ng mô hình chia (cid:1191)nh thành t(cid:1263)ng block thích nghi s(cid:1265) d(cid:1257)ng nh(cid:1267)ng t(cid:1195)n s(cid:1237) th(cid:1193)p c(cid:1259)a phép bi(cid:1219)n (cid:255)(cid:1241)i cosin r(cid:1249)i r(cid:1189)c và phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet. (cid:1190)nh (cid:255)(cid:1133)(cid:1255)c chia thành các block theo tính ch(cid:1193)t c(cid:1257)c b(cid:1245) và HVS và ch(cid:1233)n ra các block quan tr(cid:1233)ng. Ph(cid:1133)(cid:1131)ng pháp này (cid:255)(cid:1259) m(cid:1189)nh (cid:255)(cid:1223) ch(cid:1237)ng l(cid:1189)i các t(cid:1193)n công nh(cid:1133): l(cid:1233)c, c(cid:1203)t xén, phép quay, nén m(cid:1193)t thông tin nh(cid:1133) JPEG hay JPEG2000,… mà không b(cid:1231) gi(cid:1191)m ch(cid:1193)t l(cid:1133)(cid:1255)ng thông tin nhúng.

q Thu(cid:1201)t toán chia (cid:1191)nh thành các block thích nghi

n

x

(i)

1. Chia (cid:1191)nh thành các block 64x64 2. V(cid:1247)i m(cid:1243)i block tính h(cid:1227) s(cid:1237) khác bi(cid:1227)t Vk và h(cid:1227) s(cid:1237) trung bình m k.

k

== 1i

(cid:229)

k

n

m

Trong (cid:255)ó:

- - - k: s(cid:1237) block n s(cid:1237) pixel trong 1 block xk(i): là pixel th(cid:1261) i trong block th(cid:1261) k

th thì ho(cid:1211)c là chia l(cid:1189)i block v(cid:1247)i kích th(cid:1133)(cid:1247)c nh(cid:1235) nh(cid:1193)t là 8x8 và d(cid:1263)ng ti(cid:1219)n trình chia ho(cid:1211)c là nh(cid:1267)ng block (cid:255)(cid:1133)(cid:1255)c chia (cid:255)ôi ti(cid:1219)p t(cid:1257)c và quay l(cid:1189)i B2

3. N(cid:1219)u Vk và m k cao h(cid:1131)n ng(cid:1133)(cid:1253)ng Vth và m

64

q Quá trình nhúng watermark

Hình 4.3. (cid:54)(cid:1131)(cid:3)(cid:255)(cid:1239) nhúng watermark b(cid:1205)ng ph(cid:1133)(cid:1131)ng pháp d(cid:1269)a trên block thích nghi

- Chia (cid:1191)nh c(cid:1195)n watermark thành các block theo thu(cid:1201)t toán trên - Ch(cid:1233)n nh(cid:1267)ng block quan tr(cid:1233)ng (t(cid:1195)n s(cid:1237) th(cid:1193)p và (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n theo HVS c(cid:1259)a con ng(cid:1133)(cid:1249)i, vì (cid:1251) các t(cid:1195)n s(cid:1237) th(cid:1193)p thì giá tr(cid:1231) ít b(cid:1231) thay (cid:255)(cid:1241)i khi b(cid:1231) t(cid:1193)n công; tuy nhiên s(cid:1217) làm thay (cid:255)(cid:1241)i (cid:1191)nh)

- Th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i (cid:1191)nh trên các block (cid:255)ã ch(cid:1233)n (v(cid:1247)i block có kích th(cid:1133)(cid:1247)c 64x64 và 32x32 thì dùng phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet còn v(cid:1247)i các block có kích th(cid:1133)(cid:1247)c 8x8 và 16x16 thì dùng phép bi(cid:1219)n (cid:255)(cid:1241)i Cosin r(cid:1249)i r(cid:1189)c DCT - Nhúng watermark vào các block (cid:255)(cid:1133)(cid:1255)c ch(cid:1233)n N(cid:1219)u (w=0)

C’(i,j) = C(i,j) + a C(i,j)logVk Ng(cid:1133)(cid:1255)c l(cid:1189)i:

C’(i,j) = C(i,j) - a C(i,j)logVk - Th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i ng(cid:1133)(cid:1255)c

Trong (cid:255)ó: a là chi(cid:1221)u dài c(cid:1259)a watermark c(cid:1195)n nhúng

q Quá trình trích watermark

Quá trình trích watermark ph(cid:1191)i c(cid:1195)n (cid:255)(cid:1219)n (cid:1191)nh g(cid:1237)c. T(cid:1133)(cid:1131)ng t(cid:1269) nh(cid:1133) ti(cid:1219)n trình nhúng watermark, (cid:1191)nh watermark c(cid:458)ng (cid:255)(cid:1133)(cid:1255)c chia thành các block thích nghi

65

nh(cid:1133) trên và các block c(cid:458)ng ph(cid:1191)i phép bi(cid:1219)n (cid:255)(cid:1241)i. Khi (cid:255)ó, vi(cid:1227)c trích watermark nh(cid:1133) sau:

N(cid:1219)u (C’(i,j) > C(i,j) + b C(i,j)logVk) thì w=1 Ng(cid:1133)(cid:1255)c l(cid:1189)i:

N(cid:1219)u (C’(i,j) < C(i,j) - b C(i,j)logVk) thì w=0

Trong (cid:255)ó: b < a

4.6. Các d(cid:1189)ng t(cid:1193)n công

M(cid:1245)t s(cid:1237) d(cid:1189)ng t(cid:1193)n công trên watermark nh(cid:1133):

§ Nâng cao ch(cid:1193)t l(cid:1133)(cid:1255)ng tín hi(cid:1227)u (g(cid:1233)t, t(cid:259)ng (cid:255)(cid:1245) t(cid:1133)(cid:1131)ng ph(cid:1191)n, s(cid:1265)a màu) § Nhi(cid:1225)u b(cid:1241) sung và nhi(cid:1225)u b(cid:1245)i (Gauss, (cid:255)(cid:1239)ng b(cid:1245), v.v.. ) § L(cid:1233)c tuy(cid:1219)n tính (l(cid:1233)c lowpass, highpass, bandpass) § L(cid:1233)c phi tuy(cid:1219)n (l(cid:1233)c morphology, median) § Nén m(cid:1193)t thông tin (âm thanh MP3) § Các bi(cid:1219)n (cid:255)(cid:1241)i affine toàn c(cid:1257)c hay c(cid:1257)c b(cid:1245) (d(cid:1231)ch, quay, t(cid:1229) l(cid:1227), shearing) § Gi(cid:1191)m d(cid:1267) li(cid:1227)u (c(cid:1203)t, dán, thay (cid:255)(cid:1241)i l(cid:1133)(cid:1255)c (cid:255)(cid:1239) xám) § K(cid:1219)t h(cid:1255)p d(cid:1267) li(cid:1227)u (chèn logo, k(cid:1219)t h(cid:1255)p c(cid:1191)nh) § Thay (cid:255)(cid:1241)i mã hóa (H.263fi MPEG-2, WAVfi MP3, MP3fi WAV…)

• Chuy(cid:1223)n (cid:255)(cid:1241)i D/A và A/D • (cid:264)a watermarking • T(cid:1193)n công d(cid:1189)ng thông (cid:255)(cid:1239)ng • Trung bình th(cid:1237)ng kê • T(cid:1193)n công Mosaic

4.7. (cid:1260)ng d(cid:1257)ng c(cid:1259)a ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u

Ngày nay, ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u (cid:255)(cid:1133)(cid:1255)c (cid:1261)ng d(cid:1257)ng r(cid:1245)ng rãi trong nhi(cid:1221)u l(cid:429)nh v(cid:1269)c nh(cid:1133):

§ Theo dõi phát sóng

§ Xác minh ch(cid:1259) s(cid:1251) h(cid:1267)u

§ Ch(cid:1261)ng minh s(cid:1251) h(cid:1267)u

§ Theo dõi giao d(cid:1231)ch

§ Ch(cid:1261)ng th(cid:1269)c: nhúng thông tin v(cid:1221) ngu(cid:1239)n g(cid:1237)c c(cid:1259)a d(cid:1267) li(cid:1227)u

§ (cid:264)i(cid:1221)u khi(cid:1223)n sao chép: ví d(cid:1257) nh(cid:1133) trong 1 (cid:255)(cid:429)a CD ho(cid:1211)c VCD, ta

nhúng vào m(cid:1245)t thông tin cho phép chép hay không? (cho sao

chép, ch(cid:1229)(cid:3)(cid:255)(cid:1133)(cid:1255)c sao chép 1 l(cid:1195)n, không (cid:255)(cid:1133)(cid:1255)c sao chép)

66

§ (cid:264)i(cid:1221)u khi(cid:1223)n thi(cid:1219)t b(cid:1231)

§ Xác nh(cid:1201)n thông tin d(cid:1267) li(cid:1227)u có thay (cid:255)(cid:1241)i hay không: nhúng vào

trong (cid:1191)nh m(cid:1245)t (cid:255)(cid:1211)c tính gì (cid:255)ó, khi ki(cid:1223)m tra thì ki(cid:1223)m tra xem (cid:1191)nh có

nh(cid:1267)ng(cid:3)(cid:255)(cid:1211)c tính gi(cid:1237)ng nh(cid:1133) (cid:1191)nh g(cid:1237)c hay không.

67

Ch(cid:1133)(cid:1131)ng 5. M(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng

Ch(cid:1133)(cid:1131)ng này s(cid:1217) trình bày m(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng (cid:255)(cid:1133)(cid:1255)c xây d(cid:1269)ng d(cid:1269)a trên các (cid:70)(cid:1131) s(cid:1251) lý thuy(cid:1219)t (cid:255)ã trình bày trong các ch(cid:1133)(cid:1131)ng tr(cid:1133)(cid:1247)c.

5.1. Gi(cid:1193)u tin trên (cid:1191)nh

5.1.1. Nghi th(cid:1261)c gi(cid:1193)u tin (cid:255)a t(cid:1195)ng trên (cid:1191)nh

(cid:1190)nh g(cid:1237)c (cid:1190)nh ch(cid:1261)a Watermark

B(cid:1245) nhúng Watermark và

Khoá nhúng Thông (cid:255)i(cid:1227)p

Hình (a): Mô hình Nhúng Watermark

(cid:1190)nh ch(cid:1261)a Watermark Thông (cid:255)i(cid:1227)p

B(cid:1245) trích Watermark Ho(cid:1211)c

Không tìm th(cid:1193)y Khoá nhúng

Hình (b): Mô hình Trích Watermark

Hình 5.1. Mô hình h(cid:1227) th(cid:1237)ng gi(cid:1193)u watermark trên (cid:1191)nh

q Format thông (cid:255)i(cid:1227)p nhúng

Thông (cid:255)i(cid:1227)p (cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) m(cid:1245)t dãy các ký t(cid:1269): m0, m1,…, mN Watermark xem nh(cid:1133) dãy các bit: w0, w1, …, wK và ch(cid:1261)a các thông tin: § Khoá nhúng

68

§ § V(cid:1231) trí c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p ti(cid:1219)p theo Thông (cid:255)i(cid:1227)p

q Thu(cid:1201)t toán

S(cid:1265) d(cid:1257)ng thu(cid:1201)t toán gi(cid:1193)u tin d(cid:1269)a vào s(cid:1269) khác bi(cid:1227)t gi(cid:1267)a các h(cid:1227) s(cid:1237) wavelet k(cid:1221) nhau (4.5.2.2) v(cid:1247)i bi(cid:1219)n (cid:255)(cid:1241)i wavelet Harr

(cid:216) Thu(cid:821)t toán nhúng Watermark § (cid:264)(cid:1195)u vào: - B(cid:1191)ng màu (cid:1191)nh g(cid:1237)c - Thông (cid:255)i(cid:1227)p § (cid:264)(cid:1195)u ra: - B(cid:1191)ng màu ch(cid:1261)a thông tin watermark

- Khoá nhúng - Nhúng thành công hay không § Thu(cid:1201)t toán 1. Bi(cid:1219)n (cid:255)(cid:1241)i wavelet v(cid:1247)i thành ph(cid:1195)n màu R c(cid:1259)a h(cid:1227) màu RGB c(cid:1259)a b(cid:1191)ng màu (cid:1191)nh g(cid:1237)c 2. Dò t(cid:1193)t c(cid:1191) các thông (cid:255)(cid:76)(cid:1227)p có trong (cid:1191)nh (cid:255)(cid:1223) l(cid:1193)y các khoá nhúng tr(cid:1133)(cid:1247)c (cid:255)ó Tính toán kích th(cid:1133)(cid:1247)c watermark 3. 4. Ki(cid:1223)m tra xem (cid:1191)nh có ch(cid:1261)a (cid:255)(cid:1259) watermark không

N(cid:1219)u (cid:1191)nh ch(cid:1261)a h(cid:1219)t watermark Phát sinh khoá nhúng 4.1. 4.2. Chuy(cid:1223)n thông tin watermark thành dãy bit 4.3. Nhúng dãy bit vào các h(cid:1227) s(cid:1237) wavelet Th(cid:1269)c hi(cid:1227)n phép bi(cid:1221)n (cid:255)(cid:1241)i wavelet ng(cid:1133)(cid:1255)c 4.4. 4.5. Tr(cid:1191) v(cid:1221) TRUE Ng(cid:1133)(cid:1255)c l(cid:1189)i: tr(cid:1191) v(cid:1221) FALSE

(cid:216) Thu(cid:821)t toán trích Watermark § (cid:264)(cid:1195)u vào: - B(cid:1191)ng màu (cid:1191)nh

- Khoá: K § (cid:264)(cid:1195)u ra: - Thông (cid:255)i(cid:1227)p - Trích thành công hay không § Thu(cid:1201)t toán

1. Bi(cid:1219)n (cid:255)(cid:1241)i wavelet v(cid:1247)i thành ph(cid:1195)n màu R c(cid:1259)a h(cid:1227) màu RGB c(cid:1259)a b(cid:1191)ng màu (cid:1191)nh g(cid:1237)c 2. Dò các thông (cid:255)i(cid:1227)p trong (cid:1191)nh. 3. N(cid:1219)u tìm th(cid:1193)y thông (cid:255)(cid:76)(cid:1227)p có khoá K

3.1. (cid:264)(cid:1233)c thông (cid:255)(cid:76)(cid:1227)p 3.2. Tr(cid:1191) v(cid:1221) TRUE Ng(cid:1133)(cid:1255)c l(cid:1189)i: tr(cid:1191) v(cid:1221) FALSE

Trong (cid:255)ó, phép bi(cid:1219)n (cid:255)(cid:1241)i Harr Wavelet trên (cid:1191)nh theo dòng hay theo c(cid:1245)t nh(cid:1133) sau:

69

- IWT[i] = h0*I[2i] + h1*I [2i + 1] - IWT[i + N/2] = g0*I [2i] + g1*I [2i + 1]

và phép bi(cid:1219)n (cid:255)(cid:1241)i ng(cid:1133)(cid:1255)c:

- I [2i] = h0*IWT[i+N/2] + h1*IWT[i+N/2+1] - I [2i + 1] = g0*IWT[i+N/2] + g1*IWT[i+N/2+1]

1

v(cid:1247)i:

2

§ , g1 = - g0 h0 = h1 = g0 =

IWT[k]: là giá tr(cid:1231)(cid:3)(cid:255)(cid:76)(cid:1223)m (cid:1191)nh th(cid:1261) k trên m(cid:1245)t dòng hay m(cid:1245)t c(cid:1245)t

I [k]: là giá tr(cid:1231)(cid:3)(cid:255)(cid:76)(cid:1223)m (cid:1191)nh th(cid:1261) k trên m(cid:1245)t dòng hay m(cid:1245)t c(cid:1245)t

§ c(cid:1259)a (cid:1191)nh sau khi th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i Wavelet. § c(cid:1259)a (cid:1191)nh g(cid:1237)c § N: s(cid:1237)(cid:3)(cid:255)(cid:76)(cid:1223)m (cid:1191)nh trên m(cid:1245)t dòng hay m(cid:1245)t c(cid:1245)t

5.1.2. Giao di(cid:1227)n (cid:1261)ng d(cid:1257)ng

Hình 5.2. Màn hình giao di(cid:1227)n nhúng không nhìn th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c

70

Hình 5.3. Màn hình giao di(cid:1227)n nhúng nhìn th(cid:1193)y (cid:255)(cid:1133)(cid:1255)c

5.2. Mô hình ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)

5.2.1. Mô hình t(cid:1189)o ch(cid:1267) ký

A mu(cid:1237)n g(cid:1265)i cho B m(cid:1245)t thông (cid:255)(cid:76)(cid:1227)p M m(cid:1245)t cách (cid:255)áng tin c(cid:1201)y trên kênh truy(cid:1221)n không an toàn và B mu(cid:1237)n ph(cid:1257)c h(cid:1239)i l(cid:1189)i thông (cid:255)(cid:76)(cid:1227)p M và xác th(cid:1269)c M là t(cid:1263) A g(cid:1265)i ch(cid:1261) không ph(cid:1191)i t(cid:1263) m(cid:1245)t ng(cid:1133)(cid:1249)i nào khác, A s(cid:1217) dùng mô hình t(cid:1189)o ch(cid:1267) ký, và B s(cid:1217) s(cid:1265) d(cid:1257)ng mô hình xác th(cid:1269)c ch(cid:1267) ký nh(cid:1133) sau:

Hình 5.4. Mô hình t(cid:1189)o ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)

71

q Thu(cid:1201)t toán t(cid:1189)o ch(cid:1267) ký (cid:216) (cid:264)(cid:1195)u vào:

§ B(cid:1191)n rõ: thông tin c(cid:1195)n g(cid:1251)i (cid:255)(cid:1219)n ng(cid:1133)(cid:1249)i nh(cid:1201)n § Khoá bí m(cid:1201)t c(cid:1259)a ng(cid:1133)(cid:1249)i g(cid:1251)i § (cid:1190)nh X (cid:255)(cid:1223) nhúng thông tin

(cid:216) (cid:264)(cid:1195)u ra: (cid:1191)nh Y ch(cid:1261)a ch(cid:1267) ký và thông tin (cid:255)ã mã hoá; c(cid:1211)p khoá (cid:216) Thu(cid:1201)t toán: 1. Phát sinh khoá mã hoá 2. Mã hóa b(cid:1191)n rõ t(cid:1189)o thành b(cid:1191)n mã. 3. (cid:37)(cid:259)m b(cid:1191)n rõ t(cid:1189)o giá tr(cid:1231) b(cid:259)m. 4. Mã hóa giá tr(cid:1231) b(cid:259)m (cid:255)(cid:1223) t(cid:1189)o ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265). 5. Phát sinh khoá nhúng 6. Nhúng b(cid:1191)n mã và ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) vào (cid:1191)nh

5.2.2. Mô hình ch(cid:1261)ng th(cid:1269)c ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)

B nh(cid:1201)n (cid:255)(cid:1133)(cid:1255)c (cid:1191)nh X, (cid:255)(cid:1223) trích (cid:255)(cid:1133)(cid:1255)c thông (cid:255)(cid:76)(cid:1227)p M và xác th(cid:1269)c thông (cid:255)(cid:76)(cid:1227)p M có ph(cid:1191)i (cid:255)(cid:1133)(cid:1255)c g(cid:1265)i t(cid:1263) A hay không, B s(cid:1217) dùng mô hình ch(cid:1261)ng th(cid:1269)c ch(cid:1267) ký (cid:255)i(cid:1227)n t(cid:1265) sau:

Hình 5.5. Mô hình ch(cid:1261)ng th(cid:1269)c ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)

72

q Thu(cid:1201)t toán ch(cid:1261)ng th(cid:1269)c ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) (cid:216) (cid:264)(cid:1195)u vào:

§ (cid:1190)nh Y ch(cid:1261)a b(cid:1191)n mã c(cid:1259)a thông (cid:255)(cid:76)(cid:1227)p và ch(cid:1267) ký § Các khoá: khoá công khai c(cid:1259)a ng(cid:1133)(cid:1249)i g(cid:1251)i, c(cid:1211)p khoá (cid:216) (cid:264)(cid:1195)u ra: § N(cid:1219)u ch(cid:1261)ng th(cid:1269)c thành công, thu(cid:1201)t toán tr(cid:1191) v(cid:1221) thông (cid:255)(cid:76)(cid:1227)p c(cid:1259)a ng(cid:1133)(cid:1249)i g(cid:1251)i § Ng(cid:1133)(cid:1255)c l(cid:1189)i: ch(cid:1261)ng th(cid:1269)c không thành công. (cid:216) Thu(cid:1201)t toán:

1. 2. 3. 4. 5. Trích thông tin t(cid:1263)(cid:3)(cid:1191)nh Y: b(cid:1191)n mã và ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265). Gi(cid:1191)i mã b(cid:1191)n mã thành b(cid:1191)n rõ. Gi(cid:1191)i mã ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) cho ra giá tr(cid:1231) b(cid:259)m H1. (cid:37)(cid:259)m b(cid:1191)n rõ thu (cid:255)(cid:1133)(cid:1255)c t(cid:1263) B(cid:1133)(cid:1247)c 2 thu (cid:255)(cid:1133)(cid:1255)c giá tr(cid:1231) b(cid:259)m H2. So sánh hai giá tr(cid:1231) b(cid:259)m H1 và H2.

N(cid:1219)u (H1=H2) thì ch(cid:1261)ng th(cid:1269)c thành công và tr(cid:1191) v(cid:1221) thông (cid:255)(cid:76)(cid:1227)p Ng(cid:1133)(cid:1255)c l(cid:1189)i: ch(cid:1261)ng th(cid:1269)c không thành công.

5.2.3. Giao di(cid:1227)n (cid:1261)ng d(cid:1257)ng

Hình 5.6. Màn hình giao di(cid:1227)n phát sinh c(cid:1211)p khoá

73

Hình 5.7. Màn hình giao di(cid:1227)n t(cid:1189)o ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)

Hình 5.8. Màn hình giao di(cid:1227)n ch(cid:1261)ng th(cid:1269)c ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265)

5.3. Nhúng tin vào phim và (cid:1261)ng d(cid:1257)ng

5.3.1. Mô hình nhúng c(cid:1131) s(cid:1251) d(cid:1267) li(cid:1227)u trên phim

5.3.1.1. T(cid:861) ch(cid:881)c C(cid:751) s(cid:871) d(cid:887) li(cid:847)u

File video (cid:255)(cid:1133)(cid:1255)c xem là m(cid:1245)t dãy các frame (cid:1191)nh và (cid:255)(cid:1133)(cid:1255)c t(cid:1241) ch(cid:1261)c nh(cid:1133) sau (m(cid:1243)i frame (cid:1191)nh là m(cid:1245)t block):

74

HEADER FAT B_0 B_1 B_2 ….. B_N-1 B_N

q Header: g(cid:1239)m có các tr(cid:1133)(cid:1249)ng sau, n(cid:1205)m (cid:1251) các Frame (cid:255)(cid:1195)u tiên:

§ Key: dùng (cid:255)(cid:1223) truy c(cid:1201)p (cid:1241) c(cid:1261)ng (cid:1191)o § Label: nhãn c(cid:1259)a (cid:1241) c(cid:1261)ng (cid:1191)o § Size: ch(cid:1261)a dung l(cid:1133)(cid:1255)ng (cid:255)(cid:429)a(Gb-Mb-Kb-b) § Empty Size: dung l(cid:1133)(cid:1255)ng (cid:255)(cid:429)a còn tr(cid:1237)ng (Gb-Mb-Kb-b) § NumBlock: s(cid:1237) Block

q B(cid:1191)ng FAT: (cid:1251) các Frame ti(cid:1219)p theo Header và có các tr(cid:1133)(cid:1249)ng: § Flag: cho bi(cid:1219)t Block này (cid:255)ã (cid:255)(cid:1133)(cid:1255)c s(cid:1265) d(cid:1257)ng ch(cid:1133)a (tr(cid:1237)ng, (cid:255)ang dùng, (cid:255)ã xoá) § NumByteUsed: s(cid:1237) byte (cid:255)(cid:1133)(cid:1255)c ghi trong Block (n(cid:1219)u là t(cid:1201)p tin) ho(cid:1211)c ch(cid:1261)a s(cid:1237) entry c(cid:1259)a th(cid:1133) m(cid:1257)c (n(cid:1219)u là RDET)

§ NumByteEmpty: s(cid:1237) byte còn tr(cid:1237)ng trong block § NextBlock: ch(cid:1229) s(cid:1237) c(cid:1259)a Block k(cid:1219) ti(cid:1219)p

q B(cid:1191)ng th(cid:1133) m(cid:1257)c g(cid:1237)c RDET:

iBlock: ch(cid:1229) s(cid:1237) c(cid:1259)a Block (cid:255)(cid:1195)u § Name (8 byte): tên file § Ext (3 byte): ph(cid:1195)n m(cid:1251) r(cid:1245)ng § Type: cho bi(cid:1219)t file này là lo(cid:1189)i gì (t(cid:1201)p tin, th(cid:1133) m(cid:1257)c) § CreateDate: ngày t(cid:1189)o file hay th(cid:1133) m(cid:1257)c § § Flag: c(cid:1249) cho bi(cid:1219)t tr(cid:1189)ng thái c(cid:1259)a file này ((cid:255)ã xoá, (cid:255)ang dùng)

5.3.1.2. T(cid:821)p l(cid:847)nh trên (cid:861) c(cid:881)ng (cid:811)o

Trên (cid:1241) c(cid:1261)ng (cid:1191)o h(cid:1243) tr(cid:1255) các ch(cid:1261)c n(cid:259)ng sau: 1. 2. 3. 4. 5. 6. 7. 8. 9. Format (cid:1241) c(cid:1261)ng (cid:1191)o M(cid:1251)(cid:3)(cid:1241) c(cid:1261)ng (cid:1191)o (cid:264)óng (cid:1241) c(cid:1261)ng (cid:1191)o T(cid:1189)o th(cid:1133) m(cid:1257)c Sao chép t(cid:1201)p tin, th(cid:1133) m(cid:1257)c Xoá t(cid:1201)p tin, th(cid:1133) m(cid:1257)c (cid:264)(cid:1241)i tên t(cid:1201)p tin, th(cid:1133) m(cid:1257)c Ph(cid:1257)c h(cid:1239)i các file b(cid:1231) xoá trong (cid:1241) c(cid:1261)ng (cid:1191)o Tìm ki(cid:1219)m trên (cid:1241) c(cid:1261)ng (cid:1191)o

5.3.1.3. Thu(cid:821)t toán

File video (cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) m(cid:1245)t t(cid:1201)p các bitmap, trong (cid:255)ó m(cid:1243)i bitmap là m(cid:1245)t frame (cid:1191)nh và áp d(cid:1257)ng thu(cid:1201)t toán nhúng tin trên (cid:1191)nh (cid:255)(cid:1223) nhúng d(cid:1267) li(cid:1227)u vào file video.

75

q Thu(cid:1201)t toán nhúng tin trên file video:

§ (cid:264)(cid:1195)u vào: file video, thông tin nhúng, ch(cid:1229) s(cid:1237) c(cid:1259)a frame c(cid:1195)n nhúng § (cid:264)(cid:1195)u ra: file video có ch(cid:1261)a thông tin nhúng § Thu(cid:1201)t toán:

1. (cid:264)(cid:1233)c frame (cid:1191)nh c(cid:1195)n nhúng 2. Nhúng thông tin lên frame (cid:1191)nh 3. (cid:47)(cid:1133)u l(cid:1189)i frame (cid:1191)nh vào file video

5.3.2. Giao di(cid:1227)n (cid:1261)ng d(cid:1257)ng

Hình 5.9. Màn hình giao di(cid:1227)n (cid:1261)ng d(cid:1257)ng (cid:1241) c(cid:1261)ng (cid:1191)o

5.4. Giao di(cid:1227)n c(cid:1259)a ch(cid:1133)(cid:1131)ng trình chính

Hình 5.10. Giao di(cid:1227)n c(cid:1259)a ch(cid:1133)(cid:1131)ng trình chính

76

Ch(cid:1133)(cid:1131)ng 6. K(cid:1219)t lu(cid:1201)n – H(cid:1133)(cid:1247)ng phát tri(cid:1223)n

6.1. K(cid:1219)t lu(cid:1201)n

Lu(cid:1201)n v(cid:259)n (cid:255)ã trình bày khá (cid:255)(cid:1195)y (cid:255)(cid:1259) lý thuy(cid:1219)t v(cid:1221) các ph(cid:1133)(cid:1131)ng pháp b(cid:1191)o m(cid:1201)t thông tin (cid:255)ang phát tri(cid:1223)n m(cid:1189)nh hi(cid:1227)n nay nh(cid:1133): mã hoá khoá công khai, mã (cid:255)(cid:1237)i x(cid:1261)ng, gi(cid:1193)u tin và gi(cid:1191)i pháp nâng cao t(cid:1237)c (cid:255)(cid:1245) x(cid:1265) lý nh(cid:1133) hàm b(cid:259)m. (cid:264)(cid:1239)ng th(cid:1249)i, lu(cid:1201)n v(cid:259)n c(cid:458)ng xây d(cid:1269)ng m(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng minh ho(cid:1189) cho các ph(cid:1133)(cid:1131)ng pháp này nh(cid:1133): nhúng tin trên (cid:1191)nh, ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265), nhúng tin vào file video.

Hi(cid:1227)n t(cid:1189)i, lu(cid:1201)n v(cid:259)n (cid:255)(cid:1189)t (cid:255)(cid:1133)(cid:1255)c m(cid:1245)t s(cid:1237) k(cid:1219)t qu(cid:1191) sau:

q Nhúng tin trên (cid:1191)nh (cid:216) (cid:1132)u (cid:255)i(cid:1223)m

§ Cho phép nhúng nhi(cid:1221)u watermark trên m(cid:1245)t file (cid:1191)nh mà ch(cid:1193)t (cid:79)(cid:1133)(cid:1255)ng thông tin c(cid:1259)a m(cid:1243)i l(cid:1195)n nhúng không b(cid:1231) thay (cid:255)(cid:1241)i § Watermark không b(cid:1231) bi(cid:1219)n d(cid:1189)ng qua phép quay § Ch(cid:1193)t l(cid:1133)(cid:1255)ng và kích th(cid:1133)(cid:1247)c (cid:1191)nh sau khi nhúng không b(cid:1231) thay (cid:255)(cid:1241)i § H(cid:1243) tr(cid:1255) các ti(cid:1227)n ích khác: nhúng visible, load (cid:1191)nh, l(cid:1133)u (cid:1191)nh

(cid:216) Khuy(cid:1219)t (cid:255)(cid:76)(cid:1223)m § Kh(cid:1191) n(cid:259)ng ch(cid:1237)ng l(cid:1189)i các d(cid:1189)ng t(cid:1193)n công còn kém

q Ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) (cid:216) (cid:1132)u (cid:255)i(cid:1223)m

§ H(cid:1243) tr(cid:1255) Wizard h(cid:1133)(cid:1247)ng d(cid:1199)n s(cid:1265) d(cid:1257)ng cho ng(cid:1133)(cid:1249)i dùng § B(cid:1191)n rõ có th(cid:1223) là t(cid:1193)t c(cid:1191) các lo(cid:1189)i file (*.txt, *.bmp, *.pdf,…) § Tính b(cid:1191)o m(cid:1201)t cao § Giao di(cid:1227)n ti(cid:1227)n s(cid:1265) d(cid:1257)ng

(cid:216) Khuy(cid:1219)t (cid:255)(cid:76)(cid:1223)m § Ch(cid:1133)(cid:1131)ng trình còn ch(cid:1201)m khi nhúng tin trên (cid:1191)nh có kích th(cid:1133)(cid:1247)c l(cid:1247)n

q Nhúng tin vào file video (cid:216) (cid:1132)u (cid:255)i(cid:1223)m

Tính b(cid:1191)o m(cid:1201)t t(cid:1133)(cid:1131)ng (cid:255)(cid:1237)i t(cid:1237)t § H(cid:1243) tr(cid:1255)(cid:3)(cid:255)(cid:1195)y (cid:255)(cid:1259) các ch(cid:1261)c n(cid:259)ng c(cid:1131) b(cid:1191)n trên (cid:1241) c(cid:1261)ng (cid:1191)o § Có th(cid:1223) nhúng t(cid:1193)t c(cid:1191) các lo(cid:1189)i file (*.txt, *.bmp, *.pdf, *.avi,…) § T(cid:1241) ch(cid:1261)c c(cid:1131) s(cid:1251) d(cid:1267) li(cid:1227)u trên (cid:1241) c(cid:1261)ng (cid:1191)o linh (cid:255)(cid:1245)ng: kích th(cid:1133)(cid:1247)c t(cid:1263)ng entry trong b(cid:1191)ng th(cid:1133) m(cid:1257)c g(cid:1237)c và b(cid:1191)ng FAT thay (cid:255)(cid:1241)i tu(cid:484) thu(cid:1245)c vào t(cid:1263)ng file avi § § Giao di(cid:1227)n ti(cid:1227)n s(cid:1265) d(cid:1257)ng

77

(cid:216) Khuy(cid:1219)t (cid:255)(cid:76)(cid:1223)m

§ Khi format (cid:1241) c(cid:1261)ng (cid:1191)o còn ch(cid:1201)m do th(cid:1269)c hi(cid:1227)n phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet trên toàn file § Hi(cid:1227)n ch(cid:1229) h(cid:1243) tr(cid:1255) cho file avi ch(cid:1229) ch(cid:1261)a hình (cid:1191)nh v(cid:1247)i b(cid:1191)ng màu 24bit

Tuy nhiên, do ph(cid:1189)m vi c(cid:1259)a (cid:255)(cid:1221) tài r(cid:1245)ng và th(cid:1249)i gian th(cid:1269)c hi(cid:1227)n h(cid:1189)n h(cid:1213)p, lu(cid:1201)n v(cid:259)n ch(cid:1133)a nghiên c(cid:1261)u k(cid:1275) m(cid:1245)t s(cid:1237) v(cid:1193)n (cid:255)(cid:1221)

6.2. H(cid:1133)(cid:1247)ng phát tri(cid:1223)n

D(cid:1269)a trên các k(cid:1219)t qu(cid:1191)(cid:3)(cid:255)ã th(cid:1269)c hi(cid:1227)n trong lu(cid:1201)n v(cid:259)n, chúng tôi (cid:255)(cid:1221) xu(cid:1193)t các (cid:75)(cid:1133)(cid:1247)ng c(cid:1191)i ti(cid:1219)n sau:

§ M(cid:1251) r(cid:1245)ng (cid:1261)ng d(cid:1257)ng (cid:1241) c(cid:1261)ng (cid:1191)o trên các chu(cid:1197)n file khác § Nghiên c(cid:1261)u ph(cid:1133)(cid:1131)ng pháp nhúng tin khác (cid:255)(cid:1223) t(cid:259)ng (cid:255)(cid:1245) an toàn cho thông tin nhúng khi b(cid:1231) t(cid:1193)n công (resize (cid:1191)nh, nén m(cid:1193)t thông tin, …) và t(cid:259)ng (cid:255)(cid:1245) dài c(cid:1259)a watermark (s(cid:1265) d(cid:1257)ng c(cid:1191) ba thành ph(cid:1195)n màu (cid:255)(cid:1223) nhúng watermark). § C(cid:1191)i ti(cid:1219)n t(cid:1237)c (cid:255)(cid:1245) load (cid:1191)nh § Cài (cid:255)(cid:1211)t các l(cid:1133)(cid:1255)c (cid:255)(cid:1239) c(cid:1259)a ph(cid:1133)(cid:1131)ng pháp mã hoá ECC

78

Tài li(cid:1227)u tham kh(cid:1191)o

[1]

Saraju Prasad Mohanty, “Watermarking of Digital Images”, A master of Engineering in System Science and Automatic, Electrical Engineering Department, Indian Institue Of Science Bangalore, India, January, 1999

[2]

Kumiko, Kenggo, Atsushi, Makoto Fujimura, Hiroki Imamura and Hideo Kuroda, “An adaptive data hiding method using best combination neighboring pairs of WTC for division into flat/non-flat parts”, Faculty of Engineering, Nagasaki University, Japan

[3]

Jian-Guo Cao, James E. Fowler, and Nicholas H. Younan, “An image-adaptive watermark based on a redundant wavelet transform”, Department of Electrical & Computer Engineering Mississippi State University

[4]

Deepa Kundur and Dimitrios Hatzinakos, “Digital watermarking using multiresolution wavelet decomposition”, Department of Electrical and Computer Engineering University of Toronto, Toronto, Ontario, Canada

[5]

S. Asif Mahmood Gilani and A. N. Skodras, “DLT-based digital image watermarking”, Electronics Laboratory, University of Patras, Greece

Paulo S.L.M. Barreyo and Vincent Rijment, “The Whirlpool [6] Hashing Function”, Sao Paulo, Brazil

Simon Blake Wilson, “Elliptic Curve Crytography”, Certicom [7] 1999

S. Blake-Wilson, D. Brown, “RFC3278”, Certicom Corp [8]

Joel Allardyce, Nitesh Goyal, “Elliptic Curve Cryptography”, [9] April 15, 2004

[10]

David Pointcheval, “Provable Security in Cryptography, DL- based Systems”, Ecole normale supérieure, France, ECC - Sept 24th 2002 – Essen

[11]

Victor S. Miller, “Use of Elliptic Curves in Cryptography”, Exploratory Computer Science, IBM Research, P.O. Box 21 8, Yorktown Heights, Y 10598

79

[12] Ross Anderson and Eli Biham, “Tiger_ A Fast New Hash Function”, Cambridge University, England

[13] Blaine Hoffman and Evan Lewis, “Tiger Hash Summary Paper”, CS 402 – Network Security

[14] Bart Preneel, K.U.Leuven, “Hash functions”, Version 2.b — January 18, 2004

[15] Taizo Shirai, Kyoji Shibutani, “On the di_usion matrix employed in the Whirlpool hashing function”

[16]

Tr(cid:1195)n Tr(cid:1233)ng Tuyên, “Nghiên c(cid:1261)u nghi th(cid:1261)c th(cid:1269)c hi(cid:1227)n ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) và (cid:1261)ng d(cid:1257)ng. trong mô hình th(cid:1133)(cid:1131)ng m(cid:1189)i (cid:255)(cid:76)(cid:1227)n t(cid:1265)”, Lu(cid:1201)n v(cid:259)n th(cid:1189)c s(cid:429) khoa h(cid:1233)c n(cid:259)m 2003

[17] Nguy(cid:1225)n V(cid:259)n Hùng, “Nghiên c(cid:1261)u ch(cid:1267) ký (cid:255)(cid:76)(cid:1227)n t(cid:1265) s(cid:1265) d(cid:1257)ng b(cid:1191)o v(cid:1227) thông tin trên m(cid:1189)ng”, Lu(cid:1201)n v(cid:259)n th(cid:1189)c s(cid:429) tin h(cid:1233)c 2003

[18] Tr(cid:1195)n Minh Tri(cid:1219)t , L(cid:1133)(cid:1131)ng Hán C(cid:1131), “Mã hoá và (cid:1261)ng d(cid:1257)ng”, Lu(cid:1201)n (cid:89)(cid:259)n c(cid:1265) nhân tin h(cid:1233)c n(cid:259)m 2001

[19] Nguy(cid:1225)n Quang H(cid:1133)ng, “Phép bi(cid:1219)n (cid:255)(cid:1241)i Wavelet và (cid:1260)ng d(cid:1257)ng”, Lu(cid:1201)n v(cid:259)n Th(cid:1189)c s(cid:429) toán h(cid:1233)c n(cid:259)m 2001

[20] Nguy(cid:1225)n V(cid:259)n Diêu, “Bi(cid:1219)n (cid:255)(cid:1241)i Wavelet và (cid:1261)ng d(cid:1257)ng trong tìm ki(cid:1219)m trên c(cid:1131) s(cid:1251) d(cid:1267) li(cid:1227)u (cid:1191)nh”, Lu(cid:1201)n v(cid:259)n th(cid:1189)c s(cid:429) tin h(cid:1233)c, n(cid:259)m 2003

80

Ph(cid:1257) l(cid:1257)c A: Bi(cid:1219)n (cid:255)(cid:1241)i Wavelet

Trong ph(cid:1195)n này, chúng tôi ch(cid:1229) gi(cid:1247)i thi(cid:1227)u các khái ni(cid:1227)m c(cid:1131) b(cid:1191)n v(cid:1221) wavelet và các tính ch(cid:1193)t c(cid:1259)a nó. M(cid:1245)t s(cid:1237) các tính ch(cid:1193)t (cid:255)(cid:1133)(cid:1255)c cho d(cid:1133)(cid:1247)i d(cid:1189)ng (cid:255)(cid:1231)nh lý không ch(cid:1261)ng minh (chi ti(cid:1219)t ch(cid:1261)ng minh này xem trong [19][20]).

1 Bi(cid:1219)n (cid:255)(cid:1241)i wavelet liên t(cid:1257)c

1.1 (cid:264)(cid:1231)nh ngh(cid:429)a

2

1,

2

¥+

- Xét hàm s(cid:1237) y Y ˛ C tho(cid:1191): = ( ), R : R fi L (cid:549)

)((cid:214)

=

¥+<

2

< C0,

d

C

-

x y x p y (cid:242) y x ¥

thì y (cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là hàm wavelet (hay wavelet).

- Bi(cid:1219)n (cid:255)(cid:1241)i wavelet liên t(cid:1257)c (còn g(cid:1233)i là bi(cid:1219)n (cid:255)(cid:1241)i tích phân wavelet) c(cid:1259)a

t

b

=

b)

dt,

ba,

0aR,

f

)( t

(a,W f

a

a

-

- (cid:230) (cid:246) „ ˛ y (cid:231) (cid:247) (cid:242) m(cid:1245)t hàm s(cid:1237) f ˛ L2(R) là: 1 2/1 Ł ł ¥

=

trong (cid:255)ó

§

t )( dt

0

-

y y là wavelet tho(cid:1191) (cid:242) ¥

§ tho(cid:1191)

¥<

xf )(

2 dx

L2(R): không gian các hàm có m(cid:1261)c n(cid:259)ng l(cid:1133)(cid:1255)ng h(cid:1267)u h(cid:1189)n

(cid:242)

khi (cid:255)ó Wf(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là bi(cid:1219)n (cid:255)(cid:1241)i wavelet c(cid:1259)a f k(cid:1219)t h(cid:1255)p v(cid:1247)i wavelet y

=

(t)

ba,

1 2/1

b-t a

a

(cid:230) (cid:246) y y (cid:231) (cid:247) 4 Ghi chú: N(cid:1219)u (cid:255)(cid:1211)t Ł ł

Thì ta có th(cid:1223) vi(cid:1219)t:

baW ),(

f(t)

t )(

dt

= (cid:242)

f

ba ,

- <=

>

f

,

ba ,

y ¥ y

Ví d(cid:1257): Cho hàm wavelet Haar v(cid:1247)i a>0

81

)

1

(b

x

+< b

a 2

=

x

+< b

a)

(b1

)

(

a £+ 2

b-t a

0

khác

(cid:236) £ (cid:239) (cid:239) (cid:239) - y (cid:237) (cid:239) (cid:239) (cid:239) (cid:238)

+

b

a/2

+ ab

1

=

f(x)dx

-

b)

(a,W f

+

a

f(x)dx a/2

b

b

+

b

a/2

+ ab

thì bi(cid:1219)n (cid:255)(cid:1241)i wavelet c(cid:1259)a hàm s(cid:1237) f là: (cid:230) (cid:246) (cid:231) (cid:247) (cid:242) (cid:242) (cid:231) (cid:247) Ł ł

=

f(x)dx

-

2 a

a 2

2 a

+

b

f(x)dx a/2

b

(cid:230) (cid:246) (cid:231) (cid:247) (cid:242) (cid:242) (cid:231) (cid:247) Ł ł

(cid:264)(cid:1239) th(cid:1231) c(cid:1259)a Wf(a,b) v(cid:1247)i b c(cid:1237)(cid:3)(cid:255)(cid:1231)nh trên Hình A.1 , giá tr(cid:1231) Wf(a,b) là giá tr(cid:1231) trung bình c(cid:1259)a f (cid:1251) trong kho(cid:1191)ng a/2

b b+a/2 a+b

Hình A.1: (cid:264)(cid:1239) th(cid:1231) Wf(a,b) v(cid:1247)i b c(cid:1237)(cid:3)(cid:255)(cid:1231)nh

1.2 Tính ch(cid:1193)t

2

<=

>

baWbaW

.),(

a.),(

dadb

gf,C

g

f

N(cid:1219)u f, g ˛ L2(R) thì v(cid:1247)i wavelet y ta có

2

¥+

(cid:242) (cid:242) ¥ - ¥ -

)((cid:214)

=

trong

C(cid:255)ó

d

-

2

¥+

x y x (cid:242) x ¥

)((cid:214)

=

C

d

-

x y x < ¥ Cho f ˛ L2(R) và wavelet y tho(cid:1191) (cid:242) x ¥

Khi (cid:255)ó bi(cid:1219)n (cid:255)(cid:1241)i wavelet c(cid:1259)a f có bi(cid:1219)n (cid:255)(cid:1241)i ng(cid:1133)(cid:1255)c và

82

=

.

da

db

ybaf .),(WCf

ba,

1 2 a

-

-

(cid:242) (cid:242) ¥ ¥

f

t -)(

f(b)

b-tC

+

˛ có ty L1(R) và f ˛ L2(R) b(cid:1231) ch(cid:1211)n trên R và liên t(cid:1257)c a ˛ Gi(cid:1191) s(cid:1265) Wavelet y Hölder t(cid:1189)i b, ngh(cid:429)a là $ (0,1] sao cho v(cid:1247)i m(cid:1233)i t thu(cid:1245)c lân c(cid:1201)n c(cid:1259)a b thì a £

1 2

' aC),(

baW f

a £ khi (cid:255)ó ta có:

'

˛ có ty L1. N(cid:1219)u hàm f ˛ L2 là Lipschitz trên

aC),(

£baW f

H(cid:1227) qu(cid:1191): gi(cid:1191) s(cid:1265) Wavelet y R thì t(cid:1239)n t(cid:1189)i h(cid:1205)ng s(cid:1237) C sao cho: 3 2 (áp d(cid:1257)ng (cid:255)(cid:1231)ng lý 3 v(cid:1247)i a = 1)

2 Bi(cid:1219)n (cid:255)(cid:1241)i r(cid:1249)i r(cid:1189)c – Phân tích (cid:255)a phân gi(cid:1191)i

2.1 R(cid:1249)i r(cid:1189)c hóa bi(cid:1219)n (cid:255)(cid:1241)i wavelet

(a,b) / (a,b) ˛

V(cid:1221) ph(cid:1133)(cid:1131)ng di(cid:1227)n v(cid:1201)t lý, phép bi(cid:1219)n (cid:255)(cid:1241)i wavelet có tính ch(cid:1193)t c(cid:1257)c b(cid:1245) v(cid:1221) th(cid:1249)i gian và t(cid:1195)n s(cid:1237) c(cid:1259)a m(cid:1245)t tín hi(cid:1227)u là r(cid:1193)t t(cid:1237)t. Trong m(cid:1257)c này, chúng ta s(cid:1217) kh(cid:1191)o sát m(cid:1245)t t(cid:1201)p con r(cid:1249)i r(cid:1189)c c(cid:1259)a t(cid:1201)p {y (R*,R)} là m(cid:1245)t c(cid:1131) s(cid:1251) c(cid:1259)a L2(R) mà v(cid:1199)n gi(cid:1267) nguyên (cid:255)(cid:1133)(cid:1255)c tính c(cid:1257)c b(cid:1245) v(cid:1221) th(cid:1249)i gian và t(cid:1195)n s(cid:1237) c(cid:1259)a h(cid:1233) liên t(cid:1257)c các wavelet ban (cid:255)(cid:1195)u.

=

(t)

ba ,

b-t a

1 1 2

a

Trong bi(cid:1219)n (cid:255)(cid:1241)i wavelet chúng ta s(cid:1265) d(cid:1257)ng h(cid:1233) các hàm wavelet (cid:230) (cid:246) y (cid:231) (cid:247) y Ł ł

2

2

¥+

0

)((cid:214)

)((cid:214)

=

=

¥+<

d

d

C

0

j, v(cid:1247)i j ˛

(cid:264)(cid:1223) thu(cid:1201)n ti(cid:1227)n cho vi(cid:1227)c r(cid:1249)i r(cid:1189)c hoá ta gi(cid:1247)i h(cid:1189)n a>0, lúc này ta có: x y x y x x (cid:242) (cid:242) y x x ¥ -

T(cid:1263)(cid:3)(cid:255)ây, ta có th(cid:1223) r(cid:1249)i r(cid:1189)c hoá hàm wavelet b(cid:1205)ng cách ch(cid:1233)n a = a0

j

j,

1. (cid:264)(cid:1223)(cid:3)(cid:255)(cid:1191)m b(cid:1191)o sau khi r(cid:1249)i r(cid:1189)c hoá v(cid:1199)n gi(cid:1267) nguyên tính ch(cid:1193)t c(cid:1259)a j v(cid:1247)i b0>0 và n ˛ Z. Tóm l(cid:1189)i vi(cid:1227)c r(cid:1249)i r(cid:1189)c Z và (cid:255)(cid:1245) n(cid:1251) a0 „ hàm wavelet liên t(cid:1257)c ta ch(cid:1233)n b = nb0a0 hoá (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c hi(cid:1227)n nh(cid:1133) sau:

Z a0 > 1, b0 > 0, j,n ˛ a = a0 b = nb0a0

j 0

0

=

(x)

a

a

nb-xa(

)

j/2- 0

j/2- 0

j- 0

0

=(cid:247)

, nj

anb-x j a 0

Lúc này ta (cid:255)(cid:1133)(cid:1255)c hàm wavelet r(cid:1249)i r(cid:1189)c: (cid:230) (cid:246) (cid:231) (cid:247) y y y (cid:231) Ł ł

83

¥=

j

j

2/

)

=(cid:247)

x

,

2

f(x)

.

( 2

k-

dx,

Zkj,

f

j

W

1 j 2

k 2

-

=

=

tron

a:(cid:255)óg

,

b

j

k 2

=

=

=

n,

bk,

1

a

0

0

1 j 2 1 2

Nh(cid:1133) v(cid:1201)y, v(cid:1247)i wavelet y , bi(cid:1219)n (cid:255)(cid:1241)i wavelet r(cid:1249)i r(cid:1189)c c(cid:1259)a m(cid:1245)t hàm f ˛ L2(R) là: (cid:230) (cid:246) y ˛ " (cid:231) (cid:242) Ł ł ¥

2.2 Phân tích (cid:255)a phân gi(cid:1191)i ( Multiresolution analysis - MRA) c(cid:1259)a L2(R)

2.2.1 (cid:264)(cid:851)nh ngh(cid:429)a

M(cid:1245)t phân tích (cid:255)a phân gi(cid:1191)i MRA c(cid:1259)a L2(R) là dãy các không gian con

(cid:255)óng {Vj}j˛ Z c(cid:1259)a L2(R) tho(cid:1191) các (cid:255)(cid:76)(cid:1221)u ki(cid:1227)n sau: j˛ Z

jV

Zj

=

1. Vj (cid:204) 2. U Vj+1 " 2L= ˛

{0}

jV

Zj

3. I ˛

+

j 2

j˛ Z Vj+1, " f(2x) ˛ f(x - n) ˛ V0, " n˛ Z $ j ˛ 4. f(x) ˛ 5. f(x) ˛ 6. Vj (cid:219) V0 (cid:219) V0 sao cho {f 0,n}n là m(cid:1245)t c(cid:1131) s(cid:1251) tr(cid:1269)c chu(cid:1197)n c(cid:1259)a V0, v(cid:1247)i:

=

2

j -x(2.

k),

Zkj,

kj ,

f ˛ "

¯ Z, g(cid:1233)i Wj là ph(cid:1195)n bù tr(cid:1269)c giao c(cid:1259)a Vj trong Vj+1. Wj và " u ˛ Vj+1, u = v + w trong (cid:255)ó v ˛ Vj, w ˛ Wj, V(cid:1247)i m(cid:1233)i j ˛ Ta có: Vj+1 = Vj =0 và s(cid:1269) phân tích c(cid:1259)a u là duy nh(cid:1193)t.

PHÂN TÍCH (cid:264)A PHÂN GI(cid:1190)I

L2(R)

V2

V1 V0

{0}(cid:204) …. (cid:204) …. (cid:204) L2(R) V0 (cid:204) V1 (cid:204) V2 (cid:204)

84

Hình A.2: Phân tích (cid:255)a phân gi(cid:1191)i trong L2(R)

2.2.2 Tính ch(cid:1193)t

=

(L2 R

)

N(cid:1219)u m(cid:1245)t dãy các không gian con (cid:255)óng {Vj}j˛ Z tho(cid:1191) các (cid:255)(cid:76)(cid:1221)u ki(cid:1227)n 1, 2, 3 trong (cid:255)(cid:1231)nh ngh(cid:429)a II.2.1 và các không gian con t(cid:1133)(cid:1131)ng (cid:1261)ng Wj là tr(cid:1269)c giao (cid:255)ôi m(cid:1245)t thì

W j

Zj

¯ ˛

j/2

j

N(cid:1219)u m(cid:1245)t dãy các không gian con (cid:255)óng {Vj}j˛ Z là các (cid:255)a phân gi(cid:1191)i c(cid:1259)a

x

(2

-

} Zkj,

˛ y y L2(R) thì t(cid:1239)n t(cid:1189)i wavelet y { ˛ L2(R) sao cho h(cid:1233): = xkj 2)( k), ,

(cid:215)<

>

+

P

,

,

Zj

+ 1

j

jP

, kj

, kj

Zk

là m(cid:1245)t c(cid:1131) s(cid:1251) tr(cid:1269)c chu(cid:1197)n c(cid:1259)a L2(R) tho(cid:1191): = ˛ " y y (cid:229) ˛

2.2.3 (cid:47)(cid:1133)(cid:1255)c (cid:255)(cid:1239) phân tích và tái t(cid:1189)o c(cid:1259)a phân tích (cid:255)a phân gi(cid:1191)i

T(cid:1241)ng quát ta có bi(cid:1219)n (cid:255)(cid:1241)i wavelet nhanh trong phân tích (cid:255)a phân gi(cid:1191)i g(cid:1239)m hai giai (cid:255)(cid:82)(cid:1189)n:

j

+ 1

j

=

c

cH

+

j

1

j

=

d

cG

1. Giai (cid:255)o(cid:1189)n phân tích

+ 1j

+ + 1j

=jc

cH

cG

2. Giai (cid:255)o(cid:1189)n tái t(cid:1189)o

85

H

H

H

H

G

G

G

G

c2 c1 cj c0 … … cj-1

d1 d2 dj

(a) Giai (cid:255)o(cid:1189)n phân tích

H H … H … ¯ ¯ ¯ cj cj-1 cj cj-1

G G G

dj dj

(b) Giai (cid:255)o(cid:1189)n tái t(cid:1189)o

Hình A.3: L(cid:1133)(cid:1255)c (cid:255)(cid:1239) phân tích (cid:255)a phân gi(cid:1191)i

n

=

=

=

2.2.4 Phân tích (cid:255)a phân gi(cid:811)i v(cid:867)i dàn l(cid:853)c chi(cid:839)u kính liên h(cid:875)p

gcó

(-1)

g

h

Vi(cid:1227)c phân tích (cid:255)a phân gi(cid:1191)i t(cid:1263) m(cid:1245)t m(cid:1261)c n (cid:255)(cid:1219)n m(cid:1261)c k(cid:1219) thô h(cid:1131)n t(cid:1133)(cid:1131)ng (cid:1261)ng v(cid:1247)i các m(cid:1261)c bi(cid:1219)n (cid:255)(cid:1241)i wavelet và sau (cid:255)ó (cid:255)(cid:1133)(cid:1255)c tái t(cid:1189)o l(cid:1189)i; qui trình này (cid:255)(cid:1133)(cid:1255)c mô hình hoá b(cid:1205)ng l(cid:1133)(cid:1255)c (cid:255)(cid:1239) l(cid:1233)c trong Hình 4. (cid:264)(cid:1211)t : và

( ) nh

( ) g,h n-

+ 1n-

n-

n

n

h

c cj h 2fl 2›

¯ cj-1 cj-1

g

dj g 2fl 2›

Hình A.4: L(cid:1133)(cid:1255)c (cid:255)(cid:1239) l(cid:1233)c t(cid:1133)(cid:1131)ng (cid:1261)ng (cid:255)a phân gi(cid:1191)i

(cid:55)(cid:1133)(cid:1131)ng t(cid:1269), n(cid:1219)u (cid:1261)ng v(cid:1247)i m(cid:1243)i m(cid:1261)c l(cid:1233)c ta l(cid:1189)i l(cid:1233)c ti(cid:1219)p nh(cid:1133) trong phân tích (cid:255)a phân gi(cid:1191)i ta s(cid:1217)(cid:3)(cid:255)(cid:1133)(cid:1255)c m(cid:1245)t dàn l(cid:1233)c nh(cid:1133) l(cid:1133)(cid:1255)c (cid:255)(cid:1239) trong Hình 5.

86

ck

h

cj+2 2fl

h

dk cj+1 2fl

g

dj+2 2fl cj

g

dj+1 2fl

ck h 2›

¯ ck-1 h 2›

dk ¯ ¯ g 2›

dk-1 g 2›

Hình A.5: Dàn l(cid:1233)c t(cid:1133)(cid:1131)ng (cid:1261)ng phân tích (cid:255)a phân gi(cid:1191)i

87

2.3 Wavelet có giá compact

2.3.1 Wavelet có giá compact c(cid:879)a Harr

<

x0

=

)(x

1 0 x

1 [0,1)

\R

Cho hàm: £ (cid:236) j (cid:237) ˛ (cid:238)

Khi (cid:255)ó ta xây d(cid:1269)ng (cid:255)(cid:1133)(cid:1255)c (cid:255)a phân gi(cid:1191)i {Vj}j˛ Z trong (cid:255)ó: L2(R): f = const trên [2jk, 2j(k+1)] } " k˛ Z Vj = {f ˛

=

+

x )(

x )2(

(2x

1)-

Ta có: j j j

1

(

=

+

2

x )2(

(2x

1)-

2

1

Ø ø j j Œ º ß

2

k˛ Z\{0,1} suy ra: h0 = h1 = , hk = 0 "

<

1

x0

1 2

=

=

<

x

1

1

x )(

(2x)

-

(2x

1)-

1 2 x 0

[0,1)

j

j 2

T(cid:1263)(cid:3)(cid:255)ó, ta có (cid:255)(cid:1133)(cid:1255)c wavelet y (cid:3)(cid:255)(cid:1231)nh b(cid:1251)i (cid:236) £ (cid:239) (cid:239) (cid:239) £ - j j y (cid:237) (cid:239) ˇ (cid:239) (cid:239) (cid:238)

x

= x 2)(

( 2

y y {y Ti(cid:1219)p theo ta xây d(cid:1269)ng (cid:255)(cid:1133)(cid:1255)c h(cid:1227) c(cid:1131) s(cid:1251) tr(cid:1269)c chu(cid:1197)n có giá compact )k-

j,k}j,k˛ Z trong (cid:255)ó:

kj ,

2.3.2 Wavelet có giá compact c(cid:879)a Daubechies

N

-i

=

)(

m

)(

0

(cid:230) + e1 2

Daubechies (cid:255)ã xây d(cid:1269)ng các wavelet b(cid:1203)t (cid:255)(cid:1195)u b(cid:1205)ng hàm m0 cho s(cid:1237) t(cid:1269) nhiên N‡ 2. Khi (cid:255)ó, m0 có d(cid:1189)ng: x (cid:246) (cid:247) (cid:231) x l x (cid:247) (cid:231) ł Ł

2

2

=

)(

P

sin

2

x (cid:230) (cid:246) x l (cid:231) (cid:247) Trong (cid:255)ó, l (x ) là m(cid:1245)t (cid:255)a th(cid:1261)c l(cid:1133)(cid:1255)ng giác tho(cid:1191) Ł ł

v(cid:1247)i P là m(cid:1245)t (cid:255)a th(cid:1261)c sao cho:

88

N

=

+

yP

y

yR

-

y)(P)( N

N

1

=

ky

trong

y )(P:(cid:255)ó N

=

1 2 + 1-kN k

k

0

(cid:230) (cid:246) (cid:231) (cid:247) Ł ł - (cid:230) (cid:246) (cid:231) (cid:247) (cid:229) Ł ł

2

2

+

+

=

=

và R là m(cid:1245)t hàm (cid:255)a th(cid:1261)c l(cid:1215) sao cho P(y)‡ 0 " y˛ [0,1]

m

)(

m

(

)

(0)m và1

1

0

0

0

p x x Khi (cid:255)ó m0 tho(cid:1191):

1

=

m

m

m

)((cid:214)

......

....

0

0

0

k

2

4

2

2

-

i 2

=

+

(cid:214)

m

)((cid:214)

e-

0

2

2

T(cid:1263)(cid:3)(cid:255)ó ta (cid:255)(cid:1231)nh ngh(cid:429)a: x x x (cid:230) (cid:246) (cid:230) (cid:246) (cid:230) (cid:246) x j (cid:231) (cid:247) (cid:231) (cid:247) (cid:231) (cid:247) p Ł ł Ł ł Ł ł x x x (cid:230) (cid:246) (cid:230) (cid:246) j p x y (cid:231) (cid:247) (cid:231) (cid:247) Ł ł Ł ł

N

=

Suy ra: j và y có giá là các (cid:255)o(cid:1189)n có (cid:255)(cid:1245) dài b(cid:1205)ng 2N -1 :

h

x )(

2

-2x(

n)

n

=

n

0

N

j j (cid:229)

n

1

=

h

x )(

2

)1(

-2x(

n)

n

+ 1

=

n

0

- - j y (cid:229) -

Hàm chu(cid:1197)n và wavelet Daubechies t(cid:1133)(cid:1131)ng (cid:1261)ng v(cid:1247)i N (cid:255)(cid:1133)(cid:1255)c ký hi(cid:1227)u b(cid:1251)i

Nf và NY .

89

Ph(cid:1257) l(cid:1257)c B: K(cid:1219)t qu(cid:1191) th(cid:1265) nghi(cid:1227)m hàm b(cid:259)m Tiger và Whirlpool

Kích th(cid:1133)(cid:1247)c giá tr(cid:1231) b(cid:259)m là nh(cid:1133) nhau (cid:255)(cid:1237)i v(cid:1247)i t(cid:1263)ng ph(cid:1133)(cid:1131)ng pháp b(cid:259)m cho dù kích th(cid:1133)(cid:1247)c file tr(cid:1133)(cid:1247)c khi b(cid:259)m có khác nhau:

§ (cid:264)(cid:1237)i v(cid:1247)i Tiger, kích th(cid:1133)(cid:1247)c giá tr(cid:1231) b(cid:259)m là 192 bit § (cid:264)(cid:1237)i v(cid:1247)i Whirlpool, kích th(cid:1133)(cid:1247)c giá tr(cid:1231) b(cid:259)m là 512 bit

Stt Tên file Kích th(cid:1133)(cid:1247)c tr(cid:1133)(cid:1247)c khi b(cid:259)m (b) Th(cid:1249)i gian b(cid:259)m (ms) Whirlpool Tiger

1. 2. 3. 4. 5. 6. 7.266 231 11.942 175.487 361.518 786.944 435 10 831 11576 27940 60047 0 0 0 80 170 530

7. 83520 1.222 1.075.712

8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 3.txt 1.txt 2.txt 3.pdf 4.pdf Tk.ppt Reversed Engineering1.pps QLCHPM1.doc Figure1.gif Figure2.gif Figure3.gif Html1.htm Html2.htm Html3.htm FileSys.doc KetQuaBam.doc FZ.zip FT.txt CNET.pdf CTDL2.pdf ADO.ppt 920.576 11.975 2.369 21.836 38.029 47.843 82.519 40.448 68.608 179.861 9.615 168.419 58.923 184.832 72745 811 180 1.722 2.794 3.394 5.678 2.724 4.877 13.780 631 13.089 3.985 12.968 1.151 0 0 10 20 20 50 20 30 100 10 90 30 100

B(cid:1191)ng B.1. Máy CPU Celeron 533 MHz, SDRAM 256 MB, HDD 24GB, Processor 32bit

1

2

3

4

Stt Tên file Th(cid:1249)i gian b(cid:259)m (ms) Tiger Whirlpool

MoHinhBaLop.doc FileSys.doc KetQuaBam.doc Total.zip Kích th(cid:1133)(cid:1247)c tr(cid:1133)(cid:1247)c khi b(cid:259)m (b) 3021824 40448 68608 22990659 79.500 1.046 1.812 605.047 1.200 15 16 17.360

90

5

6

7

8

9

10

11

12

13

14

15

16

17

18

4.781 12.609 281

FZ.zip Sumo.txt FT.txt OPENGL.pdf CNET.pdf CTDL2.pdf OPENGL.ppt ADO.ppt Figure1.gif Figure2.gif Figure3.gif Html1.htm Html2.htm Html3.htm 179861 492740 9615 15140771 168419 58923 12875776 184832 11975 2369 21836 38029 47843 82519 4.421 1.547 346.062 5.078 312 62 563 1.015 1.266 2.188 62 188 0 11.906 62 15 5.000 78 0 0 0 15 15 31

B(cid:1191)ng B.2. Máy CPU Pentium IV 1.7GHz, DDRAM 128 MB, HDD 80GB, Processor 32bit

Stt Tên file Whirlpool

Th(cid:1249)i gian b(cid:259)m (ms) Tiger 213.817 2.583 4.606 12.628 731 12.268 3.825 3.515 20 40 90 0 90 40

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 MoHinhBaLop.doc FileSys.doc KetQuaBam.doc FZ.zip FT.txt CNET.pdf CTDL2.pdf OPENGL.ppt ADO.ppt Figure1.gif Figure2.gif Figure3.gif Html1.htm Html2.htm Html3.htm Kích th(cid:1133)(cid:1247)c tr(cid:1133)(cid:1247)c khi b(cid:259)m (b) 3021824 40448 68608 179861 9615 168419 58923 12875776 184832 11975 2369 21836 38029 47843 82519 13.129 781 150 1.712 4.947 3.254 5.568 121 0 0 10 20 30 40

B(cid:1191)ng B.3. Máy CPU Pentium III, SDRAM 128 MB, HDD 80GB, Processor 32bit

91