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
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: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
N(cid:1219)u s(cid:1237) nguyên d, trong khóa cá nhâ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
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
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 (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 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.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.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.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 và 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 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). 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 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. 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 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.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) 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 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 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 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.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.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.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 Hình 5.10. Giao di(cid:1227)n c(cid:1259)a ch(cid:1133)(cid:1131)ng trình chính 76 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) 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 [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 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.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.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 - = = và 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
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à +
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- 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) và 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 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 912.5. So sánh RSA và ECC
Ch(cid:1133)(cid:1131)ng 3. Hàm b(cid:259)m
3.1. Tính ch(cid:1193)t c(cid:1259)a hàm b(cid:259)m
3.2. Gi(cid:1247)i thi(cid:1227)u m(cid:1245)t s(cid:1237) hàm b(cid:259)m
3.3. Hàm b(cid:259)m Whirlpool
Ch(cid:1133)(cid:1131)ng 4. 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
4.2. Phân lo(cid:1189)i:
4.3. Mô hình chung:
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
4.5. Ph(cid:1133)(cid:1131)ng pháp gi(cid:1193)u d(cid:1267) li(cid:1227)u
)
(
-c
ij
4.6. Các d(cid:1189)ng t(cid:1193)n công
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
Ch(cid:1133)(cid:1131)ng 5. M(cid:1245)t s(cid:1237)(cid:3)(cid:1261)ng d(cid:1257)ng
5.1. Gi(cid:1193)u tin trên (cid:1191)nh
5.2. Mô hình 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.4. Giao di(cid:1227)n c(cid:1259)a ch(cid:1133)(cid:1131)ng trình chính
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
6.2. H(cid:1133)(cid:1247)ng phát tri(cid:1223)n
Tài li(cid:1227)u tham kh(cid:1191)o
Ph(cid:1257) l(cid:1257)c A: Bi(cid:1219)n (cid:255)(cid:1241)i Wavelet
1 Bi(cid:1219)n (cid:255)(cid:1241)i wavelet liên t(cid:1257)c
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
( )
nh
( )
g,h
n-
j,k}j,k˛ Z trong (cid:255)ó:
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

