Luận văn Xác thực trong các mạng vô tuyến

Việc đánh giá hiệu năng của hệ mật mã ECC đã có rất nhiều công trình nghiên cứu đã chứng minh rằng hệ mật mã ECC nhanh và hiệu quả hơn so với hệ mật mã RSA trên ở cùng 1 cấp độ an toàn. Do vậy trong luận văn, học viên sẽ không đi vào tính toán và đánh giá lại hiệu năng của hệ mật mã ECC so với hệ mật mã RSA.

pdf117 trang | Chia sẻ: lylyngoc | Lượt xem: 2616 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Luận văn Xác thực trong các mạng vô tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
(1,1). Phương trình của E23(1,1) là:  2 3mod 23 1 mod 23y x x    2 3 2 , [0,p-1] mod ax mod x y y p x b p        Comment [u19]: William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 305 78 Ta có thể nhận thấy P(9,7) E23(1,1). Thật vậy, thay số vào ta có: Bảng 3.2 liệt kêt tất cả các điểm thuộc đường cong E23(1,1). Hình 3.3 biểu diễn các điểm đó trên đồ thị: (0, 1) (6, 4) (12, 19) (0, 22) (6, 19) (13, 7) (1, 7) (7, 11) (13, 16) (1, 16) (7, 12) (17, 3) (3, 10) (9, 7) (17, 20) (3, 13) (9, 16) (18, 3) (4, 0) (11, 3) (18, 20) (5, 4) (11, 20) (19, 5) (5, 19) (12, 4) (19, 18) 72 mod 23 = (92 + 9 + 1) mod 23 49 mod 23 = 91 mod 23 3 = 3 Bảng 3.2 : Các điểm thuộc đường cong E23(1,1) 79 Xét tập hợp các điểm thuộc đường cong Ep(a,b) trên trường số nguyên tố hữu hạn p, và (4a3 + 27b2) mod p ≠ 0. Ta định nghĩa các luật sau:  Điểm  là phần tử đặc biệt, nằm ở vô cực, được gọi là phần tử trung hòa.  Điểm P = (xP, yP) là điểm thuộc EP(a,b), tồn tại phần tử đối –P =(xP,y-P), thỏa mãn ( yP + y-P ) mod p = 0. Ví dụ xét đường cong E23(1,1), phần tử P(13,7) sẽ có phần tử đối là –P = (13,16) do (7 + 16) mod 23 = 0. Hình 3.3 : Các điểm thuộc đường cong E23(1,1) trên đồ thị 80  Điểm P = (xP, yP) và Q= (xQ, yQ) là 2 phần tử thuộc Ep(a,b), với P ≠ −Q. Khi đó tổng của 2 điểm P và Q là điểm R = (xR, yR)  Ep(a,b), ta ký hiệu R = P + Q. Điểm R được xác định theo giải tích như sau:  Phép nhân với hệ số nguyên với điểm P được định nghĩa là tổng của các phép cộng. Ví dụ : 3P = P + P + P Ví dụ: Xét 2 điểm P = (3, 10) và Q = (9, 7) thuộc E23(1,1). Ta tính được: Hệ số 7 10 1mod 23 mod 23 11 9 3 2 s                  Suy ra: 2(11 3 9)mod 23 17Rx     ( 10 11(3 17))mod23 20Ry      Vậy R = P + Q = (17, 20) Từ 4 luật trên, tương tự như tập các điểm của đường cong Elliptic trên trường số thực, tập các điểm của đường cong Elliptic trên trường nguyên tố hữu hạn cũng là một nhóm Abel. Để xét độ an toàn của hệ mật mã, ta cần phải xét số phần tử trong nhóm Abel, trong trường hợp này với nhóm Abel là tập các điểm thuộc Ep(a,b), số lương phần tử của nhóm là N được giới hạn bởi cận trên và cận dưới [30]: 1 2 1 2p p N p p      Bằng giới hạn này, ta thấy N có giá trị xấp xỉ bằng số phần tử của Zp (bằng p) b. Đường cong Elliptic trên trường nhị phân hữu hạn F2 m Trường nhị phân hữu hạn F2 m là trường được biểu diễn thông qua 1 đa thức bậc (m-1) với các hệ số {0,1}, do vậy trường đó được gọi là trường nhị phân. Số  2 modR P Qx s x x p     modR P P Ry y s x x p    Với : 2 mod 3 mod 2 Q P Q P P P y y p x x s x a p y              ≠ ≡ Comment [u20]: William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 308 81 phần tử của trường F2m là 2m phần tử, các phép toán cộng và nhân trong trường F2m đều được thực hiện thông qua phép cộng và nhân đa thức [25]. Có một điều đặc biệt là, do F2m là trường nhị phân hữu hạn, do vậy các phép tính trên F2m có thể được thực hiện thông qua phép toán nhị phân, do vậy việc cài đặt F2m trên các thiết bị phần cứng là rất hiệu quả. Đường cong ECC được biểu diễn trên trường nhị phần hữu hạn F2m bằng 1 phương trình bậc 3, với các biến, các hệ số và các phép toán trên F2m: 2 3 2axy xy x b    Ta ký hiệu E2m(a,b) là tập các nghiệm (x,y) thỏa mãn phương trình (9) và điểm vô cùng  . Ví dụ: Ta xét trường F24 sử dụng đa thức bất khả quy f(x) = x4 + x +1. Phần tử sinh của F24 là g, thỏa mãn f(g) = 0 hay dưới dạng nhị phân là g = 0010. Do f(g) = 0, nên g4 = g + 1. Dựa vào mối quan hệ này ta có thể xây dựng được bảng các thành phần trong trường F24 là: g0 = 0001 g4 = 0011 g8 = 0101 g12 = 1111 g1 = 0010 g5 = 0110 g9 = 1010 g13 = 1101 g2 = 0100 g6 = 1100 g10 = 01111 g14 = 1001 g3 = 1000 g7 = 1011 g11 = 1110 g15 = 0001 Ví dụ, ta có thể tính g5 = g4 x g= (g + 1) x g = g2 + g = 0110. Xét đường cong Elliptic E2 4(g4,1), tương ứng với a = g4, b = g0 =1. Có phương trình là : 42 3 2x 1y xy x g    Ta nhận thấy điểm (g5,g3) là 1 điểm nằm trên đường cong E24(g4,1). Thật vậy, thay số vào (CT 10) ta có: 3 5 3 5 4 52 3 2( ) ( )( ) 1g g gg g g    8 15 146 1g gg g    1100 0101 0001 1001 0001     (9) Bảng 3.3 : Các giá trị trường F24 (10) Comment [u21]: William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 120 82 1001 1001  Đường cong E2 4(g4,1) có tập các điểm được liệt kê trong bảng 3.4 dưới đây : (0, 1) (g5, g3) (g9, g13) (1, g6) (g5, g11) (g10, g) (1, g13) (g6, g8) (g10, g8) (g3, g8) (g6, g14) (g12, 0) (g3, g13) (g9, g10) (g12, g12) Xét tập các điểm thuộc E2m(a,b), với b ≠ 0. Ta định nghĩa các luật sau: Bảng 3.4 : Các điểm thuộc đường cong E24(g4,1) Hình 3.4 : Các điểm thuộc đường cong E24(g4,1) trên đồ thị 83  Điểm là phần tử đặc biệt, nằm ở vô cực, được gọi là phần tử trung hòa.  Với P = (xP, yP) thì tồn tại điểm Q = (xQ, yQ) = (xP, xP + yP) là phần tử đối của P, thỏa mãn P + Q =   Cho P = (xP, yP) và Q = (xQ, yQ) là 2 điểm phân biệt. Khi đó điểm tổng R= P + Q = (xR, yR) được xác định như sau: 2 R P Qx s s x x a     ( )R P R R Px s x x x x a     Với : PQ PQ y y s x x     Nếu P = (xP, yP), điểm R = 2P = (xR, yR) là điểm nhân đôi của điểm P. Được xác định theo công thức sau: 2 Rx s s a   2 ( 1)P RR x s xx   Với PP P y x s x  Với 4 luật như trên, tập các điểm thuộc E2m(a,b) là một nhóm Abel. 3.1.2. Hệ mật mã công khai ECC Như đã nêu ở các phần trước, cơ sở toán học để xây dựng một hệ mật mã công khai là các bài toán một chiều. Tức các bài toán “dễ giải” theo chiều thuận, nhưng “rất khó giải” theo chiều ngược lại. Ví dụ, trong hệ mật mã công khai RSA, bài toán một chiều được sử dụng là bài toán phân tích 1 số nguyên dương rất lớn thành tích của 2 thừa số nguyên tố, hệ mật mã Diffie-Hellman được xây dựng dựa vào bài toán logarit rời rạc. Tương tự như hệ mật mã Diffie-Hellman, hệ mật mã đường cong Elliptic (ECC – Elliptics Curve Cryptography) được xây dựng trên cơ sở bài toán logarit trên đường cong Elliptic. Xét phương trình trên đường cong Elliptic Q=k.P, trong đó P, Q ∈ E(a,b). Theo như nội dung đã trình bày trong phần 3.1.1, từ điểm P cho trước và hệ số k. Ta 84 có thể dễ dàng tính ra được điểm Q dựa vào các thuật toán nhân, trong đó có nhiều thuật toán nhanh, và có thể được tối ưu hóa bằng phần cứng. Tuy nhiên để tìm ra k từ điểm Q và điểm P thì là một bài toán “rất khó” nếu hệ số k là một số lớn 224 bit (Ta có thể so sánh độ an toàn của ECC với thuật toán RSA được nếu trong bảng 4.1). Ta xét một ví dụ được đưa ra bởi Certicom (www.certicom.com) Xét tập các điểm thuộc đường cong E23(9, 17) được xác định bởi phương trình :  2 3mod 23 9 17 mod23y x x   Biết P = (16, 5), Q= (4, 5). Tìm hệ số k thỏa mãn Q= k.P? Phương pháp đơn giản và tự nhiên nhất để tính hệ số k là ta nhân các hệ số nguyên tăng dần từ 2 với P rồi so sánh với điểm Q, ta có các kết quả sau: P = (16, 5), 2P = (20, 20), 3P = (14, 14), 4P = (19, 20), 5P = (13, 10), 6P = (7, 3), 7P = (8, 7), 8P = (12, 17), 9P = (4, 5) Đến đây, ta tính được 9P = Q = (4,5). Do vậy hệ số k phải tìm là k = 9. Trong thực tế, các ứng dụng ECC sẽ phải sử dụng hệ số k có độ lớn để tránh bị tấn công vét cạn Hệ mật mã công khai ECC là hệ mật mã được xây dựng trên cơ sở bài toán lograrit rời rạc trong phép nhân xét trên tập các điểm thuộc đường cong Elliptic. Hệ mật mã công khai ECC cung cấp đầy đủ 4 dịch vụ an ninh: Mã hóa, xác thực, ký số và trao đổi khóa. Trong phần này, ta sẽ xét các thuật toán của các dịch vụ an ninh đó. 3.1.2.1. Các tham số của hệ mật mã hóa ECC Đã có một số các nghiên cứu mật mã công khai ECC đã được công bố nhằm tối ưu hóa việc lựa chọn tham số nhằm nâng cáo tính an toàn và hiệu quả việc sử dụng hệ mật mã ECC. Ta có thể kể tên một số các khuyến nghị sau : “Recommend Elliptic Curves For Federal and Government use” (năm 1999), “Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Algorithm (ECDSA)” ANSI X9.62 (Năm 2005), “SEC2 : Recommended Elliptic Curve Domain Parameters” Certicom reseach (Năm 2010). Hiện nay, để tấn công hệ mật mã ECC, các nhà nghiên cứu công bố 4 phương pháp chính [9]: Tấn công Pohlig-Hellman, tấn công Polland rho, tấn công theo phương pháp giải tích “index-calculus”, và tấn công đẳng cấu (Isomorphism Attacks). Việc nghiên cứu lựa chọn các tham số của hệ mã hóa ECC nhằm mục đích Comment [u22]: Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics Curve Cryptography", Springer publisher, pp 154 85 khắc phục những điểm yếu của thuật toán, để tránh được những hình thức tấn công kể trên. Do vậy, việc sử dụng và lựa chọn các tham số ECC là một việc rất quan trọng. Trong phần phụ lục, luận văn có giới thiệu một số tham số được đưa ra trong khuyến nghị “SEC2 : Recommended Elliptic Curve Domain Parameters”. a. Tham số hệ mật mã ECC trên trường nguyên tố hữu hạn Fp Tổ chức tiêu chuẩn mật mã hiệu quả (SECG – Standards for Efficient Cryptography Group) trong bản khuyến nghị “SEC2 : Recommended Elliptic Curve Domain Parameters” (version 2 - 2010), đã định nghĩa các tham số của hệ mật mã ECC trên truyền nguyên tố hữu hạn Fp, bao gồm [6]:  , , , , ,T p a b G n h Trong đó :  p: là số nguyên dương xác định trường nguyên tố hữu hạn Fp và  2log 192, 224,256,384,512p     a,b : Là 2 hệ số a,b ∈ Fp, xác định đường cong Elliptic E(Fp) trên trường Fp :  2 3: mod a.x+b modE y p x p   G: Là điểm cơ sở thuộc E(Fp)  n : Là một số nguyên tố và là thứ tự của điểm cơ sở G.  h : Là phần phụ đại số (cofactor) thỏa mãn h = #E(Fp)/n. Với #E(Fp) là số các điểm thuộc đường cong E(Fp). b. Tham số hệ mật mã ECC trên trường nhị phân hữu hạn F2m Tương tự như phần a, SECG định nghĩa các tham số của hệ mật mã ECC trên trường nhị phân hữu hạn F2 m. Bao gồm các tham số sau: [7]  , ( ), , , , ,T m f x a b G n h Trong đó : Comment [u23]: Certicom Research (2010), "SEC2 : Recommended Elliptic Curve Domain Parameters", pp 3 Comment [u24]: Certicom Research (2010), "SEC2 : Recommended Elliptic Curve Domain Parameters", pp13 86  m: là số nguyên dương xác định trường nhị phân hữu hạn F2m và  163,233,239,283,409,571m  f(x) : Là một đa thức bất khả quy, có bậc m và là đa thức cơ sở biểu diễn trường F2 m  a,b : Là 2 hệ số a,b ∈ F2m xác định đường cong Elliptic E(F2m) trên trường F2 m : 3 22 ax: . bE y x y x     G: Là điểm cơ sở thuộc E(Fp)  n : Là một số nguyên tố và là thứ tự của điểm cơ sở G.  h : Là phần phụ đại số (cofactor) thỏa mãn h = #E(F2m)/n. Với #E(F2m) là số các điểm thuộc đường cong E(F2m). 3.1.2.2. Các kiểu dữ liệu trong hệ mật mã ECC Để có thể áp dụng các phương pháp mã hóa, giải mã, ký số và xác thực các thông điệp, việc đầu tiên là phải có bước chuyển đổi dữ liệu từ các dạng khác nhau để áp dụng thuật toán. Ví dụ, thông điệp sẽ có dạng tổng quát là các xâu bit. Tuy nhiên các xâu bit này sẽ không thể được sử dụng trong các thao tác điểm trên đường cong Elliptic, do vậy ta phải có các bước chuyển đổi. Hệ mật mã công khai ECC sử dụng 5 kiểu dữ liệu có thể chuyển đổi được cho nhau đó là : Kiểu xâu bit, kiểu số nguyên, kiểu điểm trên đường cong Elliptic, kiểu xâu Octect, và kiểu thành phần trường ( các thành phần trong trường Fp hoặc F2m). 87 Do phạm vi của luận văn, mặt khác các thuật toán chuyển đổi đã được nêu chi tiết trong khuyến nghị “SEC1: Elliptic Curve Cryptography ” (version 2 - 2009) nên luận văn xin phép không được đi chi tiết các thuật toán chuyển đổi. Các quan hệ chuyển đổi các kiểu dữ liệu được mô tả trong hình 3.5 dưới đây: 3.1.2.2. Thuật toán sinh khóa Thuật toán sinh khóa của ECC đơn giản hơn thuật toán của sinh khóa của RSA, được thực thi theo các bước sau: Thuật toán 3.2 : Thuật toán sinh khóa ECC Input : Đường cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h) Output : Khóa công khai và khóa bí mật của ECC 1 : Sinh ngẫu nhiên số nguyên dương k với k < n 2 : Tính điểm Q = k . G 3: Khóa bí mật là (k,Q), khóa công khai là Q Kiểu xâu bit Kiểu xâu octet Điểm điểm Kiểu trường Kiểu số nguyên Hình 3.5 : Quan hệ chuyển đổi giữa các kiểu dữ liệu 88 3.1.2.3. Thuật toán trao đổi khóa ECDH Hệ mật mã ECC có khả năng cung cấp dịch vụ trao đổi khóa an toàn mà không đòi hỏi các bên phải thiết lập trước một khóa bí mật chia sẻ. Phương pháp trao đổi khóa này này tương tự với phương pháp trao đổi khóa Diffie-Hellman nên ta gọi đây là thuật toán ECDH (Elliptic Curve Diffie-Hellman). Thuật toán ECDH được thực thi theo các bước sau: Thuật toán 3.3 : Thuật toán trao đổi khóa ECDH Input : Alice và Bob thống nhất đường cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h) Ouput : Khóa công khái của Alice, Bob và khóa chia sẻ được thiết lập 1 : Alice sinh ngẫu nhiên 1 số nguyên dương dA < n 2 : Alice tính điểm PA = dA x G và gửi PA cho Bob 3: Bob sinh ngẫu nhiên 1 số nguyên dương dB < n 4: Bob tính điểm PB = dB x G và gửi PB cho Alice 5: Khóa công khai của Alice là PA, Alice tính khóa bí mật chia sẻ K = dA x PB. Khóa công khai của Bob là PB, Bob tính khóa bí mật chia sẻ K = dB x PA Alice và Bob có khả năng tính toán độc lập được khóa chia sẻ K bởi :    B B B BA A A AK d P d d G d d G d P          3.1.2.4. Thuật toán chữ ký điện tử ECDSA Hệ mật mã công khai ECC cung cấp dịch vụ chữ ký điện tử tương tự như hệ mật mã RSA, thuật toán ký số ECDSA (Elliptic Curve Digital Signature Algorithm) đã được chuẩn hóa và được đưa vào các bộ chuẩn như ANSI X9.62, FIPS 186-2, IEEE 1363-2000 và ISO/IEC 15946-2. Thuật toán ECDSA được mô tả chi tiết trong “SEC1: Elliptic Curve Cryptography” [2], gồm các bước sau: Comment [u25]: Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 44 89 Thuật toán 3.4 : Thuật toán tạo chữ ký điện tử ECDSA Input : Đường cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h), khóa bí mật k và thông điệp M Output : Chữ ký điện tử của M 1: Tính giá trị băm của thông điệp M, sử dụng thuật toán băm SHA1, được giá trị băm H = SHA1(M). Chuyển xâu băm về kiểu số nguyên được số nguyên e. 2: Sinh ngẫu nhiên d (0 < d < n). Tính điểm R = d x G. Điểm R có tọa độ (xR, yR). 3: Chuyển tọa độ xR từ kiểu trường sang kiểu số nguyên Rx . Tính r = Rx mod n. Nếu r = 0, quay về bước 2. 4: Tính giá trị   1 mods e k r d n    . Nếu s = 0, quay về bước 2. 5: Chữ ký điện tử thông điệp M là (r,s) 3.1.2.5. Thuật toán xác thực chữ ký điện tử ECC Khi Bob nhận được thông điệp M với chữ ký điện tử (r,s) được tạo bởi thuật toán ECDSA. Bob sẽ tiến hành xác thực theo thuật toán sau [3]: Thuật toán 3.5 : Thuật toán xác thực chữ ký điện tử ECC Input : Đường cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h), khóa công khai bên gửi Q, thông điệp gửi m, và chữ ký (r,s) Output: Chữ ký điện tử có hợp lệ không 1 : Nếu 0 < r < n thì tiếp tục bước tiếp theo, nếu không trả về kết quả không hợp lệ và kết thúc. 2 : Tính giá trị băm của thông điệp m, sử dụng thuật toán băm SHA1, ta được giá trị H = SHA1(m). Chuyển xâu băm nhận được về kiểu số nguyên ta được số e. 3 : Tính nghịch đảo của s theo modulo n: w = s-1 mod n 4 : Tính hai giá trị :  1 w modu e n  và  2 w modu r n  5 : Tính điểm 1 2R u G u Q    . Chuyển hoành độ của R là xR từ kiểu trường sang kiểu số nguyên Rx . Comment [u26]: Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 46 90 6 : Nếu Rx ≡ r (mod n) thì thông báo chữ ký hợp lệ và ngược lại. Theo thuật toán ECDSA ta có :   1(mod )s e k r d n     1(mod )sd e k r n    1 1 1 2 (mod )w w u nk r s e k r k ud e s              Theo bước 5 : 1 2R u G u Q     1 21 2 u u k GR u G u k G          GR d   Do vậy R = (xR, yR), và Rx = r (mod n) 3.1.2.6.Mô hình mã hóa tích hợp đường cong Elliptic - ECIES Thuật toán mã hóa và giải mã của mô hình ECIES được đề xuất bởi 2 nhà khoa học Bellare và Rogaway [10], và là một biến thể của hệ mật mã hóa công khai ElGamal. ECIES đã được chuẩn hóa bởi chuẩn ANSI X9.63 và ISO/IEC 15946-3 và được nêu trong chuẩn “SEC1: Ellitptic Curve Cryptography”. Trong ECIES, mô hình chia sẻ khóa Diffie-Hellman được sử dụng để 2 bên truyền thông thiết lập và chia sẻ 2 khóa k1 và k2. Trong đó k1 sẽ được sử dụng để mã hóa thông điệp truyền bằng hệ mật mã khóa đối xứng, k2 được sử dụng để xác thực kết quả của bản mã. Mô hình ECIES sử dụng các hàm chức năng sau:  KDF (Key Derivation Function) : Là hàm sinh khóa (k1, k2) từ điểm R và hoành độ xz của điểm Z.  ENC : Là 1 hàm mã hóa khóa đối xứng. Ví dụ như AES.  MAC : Hàm sinh mã xác thực thông báo. Ví dụ HMAC. Comment [u27]: Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics Curve Cryptography", Springer publisher, pp 189 91 a. Thuật toán mã hóa ECIES Thuật toán mã hóa của ECIES được thực thi như sau [4] : Thuật toán 3.6 : Thuật toán mã hóa ECIES Input : Đường cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h), khóa công khai bên nhận Q, thông điệp gửi M Output: Bản mã của thông điệp M 1 : Sinh ngẫu nhiên số nguyên dương d thỏa mãn 0 < d < n 2 : Tính điểm R d G  và điểm Z h d Q   . Nếu Z = 0 thì quay lại bước 1. 3 : Tính cặp khóa (k1, k2) = KDF(xZ, R) 4 : Tính bản mã sử dụng khóa k1 : C = ENC(k1, M) 5 : Tính mã xác thực thông báo cho bản mã sử dụng khóa k2 : t= MAC(k2, C) 6 : Trả về bản mã (R, C, t) b. Thuật toán giải mã ECIES Ngược lại với thuật toán mã hóa, thuật toán giải mã được thực thi như sau [5]: Thuật toán 3.6 : Thuật toán mã hóa ECIES Input : Đường cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h), khóa bí mật k, và bản mã (R, C, t) Output: Bản rõ M hoặc thông báo thông điệp không hợp lệ 1 : Kiểm tra điểm R có thuộc đường cong Elliptic không. Nếu không thuộc, trả về thông báo không hợp lệ. 2 : Tính điểm Z h k R   . Nếu Z = 0 thì trả về thông báo không hợp lệ. 3 : Tính cặp khóa (k1, k2) = KDF(xZ, R) Comment [u28]: Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 52-53 Comment [u29]: Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 53-54 92 4 : Tính t’ = MAC(k2, C). Nếu t’ ≠ t, trả về thông báo không hợp lệ. 5 : Giải mã M = ENC(k1, C) 6 : Trả về bản rõ M Như đã nêu ở trên, bản chất của việc mã hóa và giải mã của ECIES là thiết lập một khóa phiên rồi sử dụng khóa phiên đó để mã hóa và giải mã theo mô hình mật mã khóa chia sẻ. Khóa phiên trong mã hóa và giải mã chỉnh là điểm Z. Thật vậy, ta có : ( ) ( )Z h d Q h d k G h k d G h k R              3.2. Ưu điểm của hệ mật mã đường cong Elliptic Theo nội dung đã trình bày ở phần trên, ta nhận thấy hệ mật mã ECC cung cấp tất cả các dịch vụ an ninh của 2 hệ mật mã công khai RSA và Diffie-Hellman. Cụ thể hệ mật mã ECC cung cấp các dịch vụ an ninh sau:  Trao đổi khóa an toàn  Chống nghe lén  Ký số  Chống chối bỏ. Tuy nhiên, hệ mật mã ECC có một ưu điểm mà các hệ mật mã công khai trước đó không có được, đó là sự tương thích đối với các thiết bị có năng lực tính toán hạn chế. Do đặc điểm toán học của bài toán lograrit rời rạc trên đường cong Elliptic, độ phức tạp để tìm ra được khóa đúng tăng theo cấp số mũ khi chiều dài khóa được tăng lên. Do vậy, hệ mật mã ECC ở cùng độ an toàn với hệ mật mã RSA chỉ cần khóa có độ lớn bé hơn rất nhiều so với khóa của RSA (Hình 3.2). Chính nhờ tính chất này, việc thực thi hệ mật mã ECC có những ưu điểm sau:  Đòi hỏi năng lực tính toán thấp  Tiết kiệm bộ nhớ  Tiết kiệm băng thông  Tiết kiệm năng lượng 93 3.3. Đề xuất xây dựng hạ tầng khóa công khai cho thiết bị di động dựa trên hệ mật mã ECC 3.3.1. Vấn đề an ninh của hệ mật mã công khai Bên cạnh những ưu điểm của hệ mật mã công khai như an toàn, bảo mật, thuận tiện, các hệ mật mã công khai có cùng 1 yếu điểm, đó là dễ bị tấn công người ở giữa (Man in the middle). Giả sử Alice và Bob thực hiện trao đổi truyền thông với nhau sử dụng hệ mật mã công khai. Để thực hiện được, Alice phải biết được khóa công khai của Bob và ngược lại Bob phải có được khóa công khai của Alice. Tuy nhiên, giả sử kẻ tấn công Darth có thể dùng phương pháp tấn công người ở giữa theo các bước sau:  Trước tiên, bằng một kỹ thuật nào đó, Darth có thể xen vào kênh truyền giữa Alice và Bob. Mọi thông tin truyền giữa Alice và Bob đều đi qua Darth và Darth có thể kiếm soát được việc truyền thông tin đó.  Darth sẽ tự nhận mình là Bob, Darth sẽ sinh ra một cặp khóa cho mình và gửi khóa công khai giả mạo tới cho Alice.  Alice sẽ tin đó là khóa công khai của Bob và gửi trở lại khóa công khai của mình cho Darth – Người Alice tin đó là Bob.  Darth thực hiện việc giả mạo tương tự đối với Bob.  Đến lúc này, giả sử Alice gửi 1 thông điệp mã hóa cho Bob, Alice sẽ dùng khóa công khai của Bob – mà thực chất là khóa công khai của Darth – để mã hóa. Do Darth đứng giữa, lại có khóa bí mật hợp lệ nên có thể đọc lén, hoặc thậm chí sửa đổi thông điệp trong đó. Sau đó sẽ sử dụng khóa công khai thật của Bob để mã hóa và gửi lại cho Bob.  Tương tự, khi Alice muốn ký vào 1 thông điệp, Alice sẽ sử dụng khóa bí mật của mình để ký và gửi đi. Darth sẽ lấy thông điệp đó, sẽ sửa đổi theo ý muốn và sử dụng khóa bí mật giả mạo để ký và gửi cho Bob. Lúc này dó Bob sử dụng giữ khóa công khai giả mạo của Alice – Thực chất là khóa công khai của Darth – để kiểm tra tính hợp lệ của thông điệp, điều tất nhiên là Bob thấy thông điệp đó là hợp lệ và tin đó là thông điệp được gửi từ Alice. 94 Để tránh được tấn công người ở giữa, các bên tham gia truyền thông cần một bên thứ ba tin cậy để xác nhận khóa công khai của nhau. Bên thứ ba tin cậy là một tổ chức phát hành chứng thư, hay còn gọi là CA (Certificate Authority). 3.3.2. Hạ tầng khóa công khai Hạ tầng khóa công khai được phát triển dựa trên các hệ mật mã công khai để cung cấp các dịch vụ định danh cho các thực thể trong các phiên xác thực. Hạ tầng khóa công khai gồm 1 tập các chuẩn, quy định vai trò của các bên tham gia xác thực, các chuẩn mã hóa, chuẩn lưu trữ khóa, chuẩn phân phối khóa. Trong hạ tầng khóa công khai có định nghĩa tổ chức chứng thực (Certificate Authority - CA), có vai trò như bên thứ ba tin cậy giúp các thực thể tham gia xác thực có thể xác thực được nhau để khắc phục nhược điểm bị tấn công người ở giữa của hệ mật mã công khai. Hình 3.6 mô tả các thành phần và hoạt động của hạ tầng khóa công khai [33]. Hạ tầng khóa công khai gồm các thành phần sau: Hình 3.6 : Các thành phần hạ tầng khóa công khai. Comment [u30]: William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 428-430 95  Đối tượng sử dụng cuối : Là đối tượng tham gia phiên xác thực, bao gồm người sử dụng cuối, hoặc các thiết bị như router, switch, server. Các đối tượng sử dụng cuối sở hữu 1 cặp khóa gồm 1 khóa bí mật và 1 khóa công khai. Khóa công khai được lưu trữ trong 1 chứng thư được CA phát hành và công bố rộng rãi.  Cơ quan chứng thực (CA) : Là cơ quan có vai trò cấp phát chứng thư cho đối tượng sử dụng cuối. Khi đối tượng sử dụng cuối gửi yêu cầu cấp phát chứng thư, nếu hợp lệ, CA sẽ tạo ra một chứng thư và ký xác nhận vào chứng thư đó.  Cơ quan đăng ký (RA) : Là thành phần tuy chọn, đây là cơ quan được CA ủy quyền để tiếp nhận đăng ký phát hành chứng thư.  Thành phần phát hành chứng thư bị thu hồi: Là bộ phận để công bố công khai những chứng thư bị thu hồi, không còn giá trị sử dụng. Trong quá trình sử dụng chứng thư, các thành phần cuối phải liên tục cập nhật danh sách chứng thư thu hồi để kiểm tra tính hợp lệ của chứng thư.  Thành phần lưu trữ chứng thư: Là bộ phận lưu trữ tập trung và công khai các chứng thư đã được phát hành, để mọi đối tượng có thể truy cập và lấy về chứng thư mình cần. 3.3.3 Chứng thư số Chứng thư số là thành phần được CA phát hành công khai và cấp cho đối tượng sử dụng cuối. Mỗi chứng thư số là duy nhất, chứng nhận tính xác thực khóa công khai của đối tượng sở hữu, được đảm bảo bằng chữ ký số của đơn vị phát hành chứng thư CA. Cấu trúc của chứng thư số định nghĩa bởi chuẩn X.509 của liên minh viễn thông quốc tế ITU-T. Cấu trúc của chứng thư số X.509 được mô tả trong hình 3.8 , gồm các trường sau:  Version : Định nghĩa phiên bản của chứng thư, phiên bản mới nhất hiện nay là phiên bản 3.  Serial number : Mã số định danh duy nhất của chứng thư.  Signature algorithm Identifier : Định nghĩa thuật toán mã hóa và các tham số được CA sử dụng để xác nhận chứng thư, giúp đối tượng sử 96 dụng cuối có thể kiểm tra tính hợp lệ của chứng thư. Các tham số này được lặp lại trong trường Signature ở cuối chứng thư.  Issuer name : Tên xác định của CA theo chuẩn X.500  Period of validity : Bao gồm người bắt đầu hiệu lực và ngày hết hạn của chứng thư.  Subject name : Tên chủ sở hữu chứng thư theo chuẩn X.500  Subject's public-key information : Thông tin về khóa công khai của chủ sở hưu, bao gồm thuật toán sử dụng và các tham số mã hóa.  Issuer unique identifier: Là trường tùy chọn, chứa mã định danh duy nhất của tổ chức phát hành chứng thưc được dùng để phân biệt trong trường hợp các CA có tên (Issuer Name) trung nhau.  Subject unique identifier: Là trường tuy chọn, chữa mã định danh duy nhất cho mỗi chủ sở hữu được phát hành bởi 1 CA. Trường này được sử dụng để phân biệt các chủ sở hữu trong trường hợp các chủ sở hữu có trùng tên (Subject Name)  Extensions: Là tập các trường mở rộng, chứa các thông tin liên quan khác như địa chỉ danh sách thu hồi, địa chỉ của CA, hay chức năng của chứng thư. 97  Signature: Là các tham số thuật toán ký của CA và mã chứ ký của CA trên tất cả các trường phía trên. 3.3.4. Xác thực di động dựa trên hạ tầng khóa công khai sử dụng hệ mật mã đường cong Elliptic Như đã đề cập ở trên, hạ tầng khóa công khai sử dụng các hệ mật mã công khai để cung các dịch vụ an ninh. Hiện nay, các chứng thư được phát hành hầu hết sử dụng hệ mật mã RSA. Nếu các đối tượng sử dụng cuối là các thiết bị có cấu hình cao như máy vi tính, router, hay như các thiết bị chuyên biệt thì việc triển khai chứng thư sử dụng hệ mật mã RSA hoàn toàn không có trở ngại nào. Tuy nhiên, việc triển khai hệ mật mã RSA trên các thiết bị có năng lực tính toán hạn chế như trên các thiết bị di động thì hoàn toàn không thích hợp. Chính vì lẽ đó cho tơi nay, các thiết bị di động gần như không thể sử dụng chứng thư số cho các giao dịch cần được xác thực. Hình 3.7 : Cấu trúc chứng thư X.509 98 Hệ mật mã ECC là hệ mật mã công khai, có nhiều ưu điểm vượt trội so với hệ mật mã RSA, rất phù hợp cho việc áp dụng trên các thiết bị di động. Do vậy việc sử dụng hệ mật mã công khai trên nền tảng hạ tầng khóa công khai cho phép các thiết bị di động có thể sử dụng các chứng thư số mà không gặp phải những rào cản về tốc độ xử lý cũng như hạn chế về bộ nhớ và băng thông. Trong phần này, học viên sẽ đề xuất ứng dụng triển khai hạ tầng khóa công khai sử dụng hệ mật mã ECC trong việc phát hành chứng thư cho thiết bị di động. Việc xây dựng một hệ thống CA với đầy đủ các tính năng là một công việc rất lớn, do vậy trong phạm vi của luận văn, học viên sẽ xây dựng giao thức cấp phát chứng thư cho thiết bị di động. Sau khi chứng thư được phát hành thành công, việc xác thực dựa trên dịch vụ ký số là một hoàn toàn đơn giản. 3.3.4.1. Giao thức cấp pháp chứng thư trên thiết bị di động Giao thức cấp phát chứng thư cho thiết bị di động được xây dựng gồm 2 giai đoạn: a. Giai đoạn đăng ký cấp phát chứng thư Trong giao đoạn này, người sử dụng sẽ phải đăng ký thủ tục cấp phát chứng thư với đơn vị đăng ký (RA – Register Authority). Sau khi được xét duyệt, đơn vị RA sẽ cấp cho khách hàng một mã định danh và một mã xác thực. Việc cung cấp này được thực thi bằng nhiều biện pháp tin cậy khác nhau như bằng vật lý, hoặc việc cung cấp cho người dùng 1 đường liên kết web sử dụng giao thực https. Mã xác thực người dùng nhận được sẽ được sử dụng để xác thực việc cấp phát chứng thư cho người dùng hợp lệ. Các bước thực thi được mô tả trong hình vẽ dưới đây: Khách hàng RA 1. Thông tin đăng ký phát hành chứng thư 2. Kiểm tra tính hợp lệ 3. Sinh mã xác thực RegCode 4. Truyền mã RegCode bằng theo 1 kênh an toàn 99 b. Giai đoạn cấp phát chứng thư Sau khi đăng ký phát hành chứng thư thành công với cơ quan RA. Người sử dụng nhận được mã xác thực RegCode, sau đó người dùng sẽ được hướng dẫn cài đặt 1 phần mềm lên thiết bị di động của mình. Phần mềm được phát triển trên nền tảng Java sử dụng công nghệ J2ME để tương thích với hầu hết các thiết bị di động có năng lực xử lý hạn chế. Để thuận tiện, chứng thư của CA được cài đặt mặt định sẵn trong phần mềm. Do vậy, để tránh sự giả mạo thì phần mềm này cũng phải được cài đặt bằng 1 phương pháp an toàn (Ví dụ cài đặt bởi các kỹ thuật viên của cơ quan CA, hoặc phần mềm được chứng thực bởi kỹ thuật Code Signing). Sau khi phần mềm được cài đặt, người sử dụng sẽ sử dụng phần mềm để khởi tạo chứng thư và gửi yêu cầu cấp phát chứng thư. Giao thức pháp hành chứng thư được mô tả trong hình 3.9, gồm các bước sau đây:  Bước 1: Người sử dụng nhập các thông tin cần thiết, bao gồm mã ngươi sử dụng và mã xác thực RegCode. Sau đó bấm nút kích hoạt yêu cầu. Sau khi yêu cầu được kích hoạt, chương trình sẽ sinh ra một mã ngẫu nhiên Key và một số khởi tạo IV. Chương trình sử dụng khóa công khai của CA để mã hóa 3 thông tin RegCode, Key và IV, ta có thể viết E(PuCA,RegCode || Key || IV), sau đó truyền thông điệp : ID || E(PuCA, RegCode || Key || IV)  Bước 2: CA nhận được thông điệp kích hoạt từ phía Client. CA sẽ sử dụng khóa bí mật để giải mã các thông tin RegCode, Key và IV. Sau đó sẽ so sánh mã định danh ID và RegCode có hợp lệ không. Nếu không hợp lệ CA sẽ trả lại thông điệp DENY. Nếu hợp lệ Server sẽ sử dụng hệ mật mã AES và và khóa Key để mã hóa giá trị (IV + 1) và gửi lại cho Client thông điệp: ACCEPT || EAES(Key, IV+1).  Bước 3: Client nhận được thông điệp trả lời từ CA. Nếu là thông điệp từ chối thì Client sẽ thông báo lại cho người sử dụng. Nếu nhận được thông điệp chấp nhận, client sẽ sử dụng khóa Key để giải mã ra giá trị (IV + 1). Đến bước này, client có thể xác thực được CA dựa vào giá trị (IV+1).  Bước 4: Client sẽ sinh ra cặp khóa bí mật và khóa công khai. Khóa bí mật sẽ được mã hóa bằng mật khẩu của người dùng. Khóa công khai sẽ được sử dụng để sinh ra thông điệp cấp phát chứng thư dưới định dạng Hình 3.8 : Giao thức cấp đăng ký cấp phát chứng thư 100 PKCS10 [19]. Sau đó PKCS10 và giá trị (IV+2) sẽ được mã hóa và gửi cho CA : EAES(Key, PKCS10 || IV + 2)  Bước 5 : CA nhận được thông điệp gửi trả lại từ phía Client, CA sử dụng Key để giải mã và nhận được mã PKCS10. Đến đây, CA sẽ sử dụng khóa bí mật của mình để tạo chứng thư X.509 cho client. Sau đó gửi trả lại chứng thư đó cho Client. Đến đây chứng thư của người sử dụng chính thức có hiệu lực. Giao thức kết thúc. Ta hãy phân tích các thành phần thông điệp của giao thức chứng minh độ an toàn của giao thức:  Trong thông điệp thứ nhất, client gửi mã định danh và mã hóa các thông tin RegCode, Key, IV bằng khóa công khai của CA. Do vậy chỉ CA mới có thể đọc được nội dung phần thông điệp được mã hóa. CA sẽ đối chiếu RegCode và ID để kiểm tra tính hợp lệ của yêu cầu phát hành chứng thư. Khóa Key có tác dụng là khóa phiên bí mật giữa Client và CA trong các phiên tiếp theo. IV là biến đếm được sử dụng kết hợp với khóa Key để Client xác thực CA. Đồng thời có tác dụng chống tấn công gửi lặp lại.  Trong giao thức phát hành chứng thư, mã RegCode được truyền bí mật đối thủ không thể nghe lén được do được mã hóa bằng khóa công khai của CA. Sau khi chứng thư được phát hành thì mã RegCode cũng không còn tác dụng và có thể được hủy bỏ. Client CA 1. ID || E(PuCA, RegCode || Key || IV) 2. ACCEPT || EAES(Key, IV + 1) 3. Sinh khóa (Pr,Pu) và PKCS10 4. EAES(Key, PKCS10 || IV + 2) 5.Certificate Hình 3.9 : Giao thức phát hành chứng thư Comment [u31]: RSA Laboratories (2000) : PKCS#10 - Certification Request Syntax Standard 101  Trong thông điệp 4, thông điệp PKCS10 và giá trị (IV + 2) được bảo mật bởi hệ mật mã AES với khóa là Key. Do vậy có thể chống được tấn công sửa đổi và tấng công gửi lặp lại. 3.3.4.2. Xác thực di động dựa trên chưng thư số sử dụng hệ mật mã ECC Theo cuốn sách của William Stalling [32] chuẩn X.509 định nghĩa 3 giao thức xác thực khác nhau dựa trên hạ tầng khóa công khai có thể được áp dụng một cách tổng quát trên nhiều ứng dụng khác nhau. Giả sử Alice và Bob tham gia 1 phiên xác thực, Alice và Bob đều có được chứng thư số của nhau và các chứng thư số này đều được xác thực thông qua 1 tổ chức chứng thực. 3 giao thức xác thực được chuẩn X.509 định nghĩa gồm : a. Giao thức xác thực một bước Giao thức xác thực một bước được mô tả trong hình 3.10. Alice sẽ gửi cho Bob thông điệp M = tAlice || rAlice || IDBob || SigData || E(PUBob, KAB). Trong đó : tAlice : Là nhãn thời gian của thông điệp được gửi bởi Alice, theo đó Bob sẽ xác định được hiệu lực thông điệp Alice gửi. rAlice : Là một mã định danh duy nhất trong khoảng thời gian hiệu lực của thông điệp. Tham số định danh này cho phép Bob chống được tấn công gửi lại. IDBob : Định danh của Bob SigData: Là chữ ký số của Alice trên 3 trường trước đó. Chữ ký số này cho phép Bob xác thực được Alice và đảm bảo được thông điệp M không bị tấn công sửa đổi. KAB : Là thành phần tùy chọn, là khóa phiên giữa Alice và Bob, khóa phiên được bảo mật bằng cách sử dụng khóa công khai của Bob để mã hóa. Hình 3.10a: Giao thức xác thực một bước Alice Bob 1. tAlice || rAlice || IDBob || SigData || E(PUBob, KAB) Comment [u32]: William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 426 102 b. Giao thức xác thực hai bước Giao thức xác thực hai bước được phát triển mở rộng từ giao thức xác thực một bước. Hình 3.11 mô tả giao thức xác thực hai bước, ta nhân thấy ở bước thứ nhất tương tự với bước 1 ở giao thức xác thực một bước. Thông điệp ở bước thứ hai do Bob gửi Alice có dạng: tBob || rBob || IDAlice || rAlice || SigData || E(PUAlice, KBA). Các thành phần của thông điệp thứ 2 Bob gửi cho Alice có ý nghĩa tương tự như ở thông điệp 1. Chỉ có khác là trong thông điệp 2, Bob gửi trả lại tham số rAlice cho Alice. Tham số nay nhằm mục đích định danh thông điệp Bob gửi là trả lời cho thông điệp Alice gửi trước đó. c. Giao thức xác thực ba bước Alice Bob 1. tAlice || rAlice || IDBob || SigData || E(PUBob, KAB) 2. tBob || rBob || IDAlice || rAlice || SigData || E(PUAlice, KBA) Hình 3.10b: Giao thức xác thực hai bước Alice Bob 1. tAlice || rAlice || IDBob || SigData || E(PUBob, KAB) 2. tBob || rBob || IDAlice || rAlice || SigData || E(PUAlice, KBA) 3. rBob 103 Tương tự giao thức xác thực hai bước, giao thức xác thực 3 bước được phát triển mở rộng từ giao thức xác thực 2 bước. 2 thông điệp đầu của giao thức này giống với 2 thông điệp của giao thức xác thực 2 bươc. Thông điệp thứ 3 Alice gửi cho Bob là : rBob. Việc trả lại tham số rBob để Bob không cần kiểm tra lại nhãn thời gian. Bởi vì các tham số rAlice và rBob được được gửi 2 lần theo chiều xuôi và chiều ngược lại, do vậy giúp cho Alice và Bob có thể kiểm tra và phòng chống tấn công lặp lại. Việc này là cần thiết khi đồng hồ của Bob và Alice là không được đảm bảo là đồng bộ. 3.3.5. Kết quả 3.3.5.1. Thiết kế chương trình Để mô phỏng giao thức cấp phát chứng thư số dành cho điện thoại di động, học viên đã xây dựng 1 chương trình theo mô hình Client – Server. Trong đó :  Client đóng vai trò là chiếc điện thoại di động khách, được triển khai bằng công nghệ J2ME được chay mô phỏng trên công cụ Wireless Toolkit 3.0. Để phục vụ cho các thao tác mật mã, học viên có sử dụng thư viện mã nguồn mở Bouncy Castle phiên bản trên di động.  Server: Đóng vai trò như CA, cung cấp dịch vụ phát hành chứng thư cho phía máy khách. Server được xây dựng dựa trên công nghệ Java, sử dụng thư viện mã nguồn mở Bouncy Caslte phục vụ cho các thao tác mật mã.  Môi trường truyền thông : Client sẽ sử dụng dịch vụ GPRS hoặc dịch vụ 3G để kết nối Socket tới CA. Tất cả các thông điệp trao đổi giữa Client và CA đều được truyền qua kết nối Socket. 3.3.5.2. Các bước thực hiện Trước tiên, để Server có thể đóng vai trò là 1 CA, Server sẽ phải sinh một cặp khóa gồm khóa bí mật và khóa công khai. Sau đó Server sẽ thực hiện tự sinh 1 chứng thư cho chính bản thân bằng cách lấy khóa bí mật ký xác nhận cho chứng thư được sinh ra. Sau khi hoàn tất bước này, Server sẽ sở hữu 1 chứng thư số và khóa bí mật được sử dụng để phát hành các chứng thư sau này của Client. Mã nguồn việc sinh khóa và việc tự ký của CA được trích dẫn trong phần phụ lục. Hình 3.10c: Giao thức xác thực ba bước 104 Sau đó Server CA sẽ chạy 1 dịch vụ để phục vụ việc cấp phát chứng thư từ các máy khách. Để đơn giản hóa việc thực thi, học viên thiết kế Server chấp nhận tất cả các yêu cầu cấp phát chứng thư với bất cứ mã ID và RegCode nào được gửi từ phía Client. Phía Client, người sử dụng sẽ điền các thông tin về chứng thư của mình, sau đó sẽ kích hoạt giao thức phát hành chứng thư. Client và server thực thi giao thức được đặc tả trong mục 3.3.4.1b Dưới đây là một số hình minh họa cho kết quả của chương trình : 105 Hình 3.11a: Chứng thư của CA Hình 3.11b: Trường khóa công khai của CA 106 Hình 3.11c: Thuật toán ký của CA Hình 3.11d: Chữ ký của CA trên chứng thư 107 Hình 3.11e: Form điền thông tin cấp yêu cầu phát chứng thư Hình 3.11f: Chứng thư được phát hành bởi CA 108 Hình 3.11g: Thuật toán ký số của CA trên chứng thư phát hành Hình 3.11h: Chữ ký của CA trên chứng thư phát hành 109 3.3.5.3. Đánh giá hiệu năng của hệ mật mã ECC Việc đánh giá hiệu năng của hệ mật mã ECC đã có rất nhiều công trình nghiên cứu đã chứng minh rằng hệ mật mã ECC nhanh và hiệu quả hơn so với hệ mật mã RSA trên ở cùng 1 cấp độ an toàn. Do vậy trong luận văn, học viên sẽ không đi vào tính toán và đánh giá lại hiệu năng của hệ mật mã ECC so với hệ mật mã RSA. Tuy nhiên để có thể thấy rõ được sự khác biệt về hiệu suất giữa hệ mật mã ECC và RSA, học viên xin trích lại kết quả nghiên cứu được công bố với công ty Certicom – Công ty nghiên cứu hàng đầu về hệ mật mã ECC – được công bố năm 2005 [21] ECC keysize RSA keysize Symmetric keysize ECDSA Sign (Sigs/min) RSA Sig (Sigs/min) ECC benefit 224 bit 2048 bit 3DES-112 105840 2940 3600% 256 bit 3072 bit AES-128 54000 480 11250% 384 bit 7680 bit AES-192 30960 60 51600% 512 bit 15360 bit AES-256 14400 60 24000% ECC keysize RSA keysize Symmetric keysize ECDSA Verify (Vef/min) RSA Verify (Vef/min) ECC benefit 224 bit 2048 bit 3DES-112 47520 26880 117% 256 bit 3072 bit AES-128 22800 11280 202% 384 bit 7680 bit AES-192 11040 2160 511% 512 bit 15360 bit AES-256 5280 480 1100% Hai bảng so sánh 3.5a và 3.5b cho ta một cái nhìn trực quan về hiệu suất giữa hệ mật mã ECC và RSA. Ta nhận thấy, ở cùng 1 độ an toàn, độ dài khóa của RSA tăng nhanh hơn so với độ dài khóa của ECC. Hơn nữa tốc độ thực hiện (Ký – Xác thực trong một phút) của RSA cũng giảm nhanh hơn so với ECC. Bảng 3.5a : So sánh tốc độ ký giữa hệ mật mã ECC và RSA Hình 3.5b: So sanh tốc độ xác thực giữa hệ mật mã ECC và RSA Comment [u33]: Scott Vanstone (2005) : “An introduction to use of ECC- based certificates”. Code and Cipher vol2, no2. pp -3 110 3.4. Kết luận chương 3 Trong chương 3, với mục đích nghiên cứu phương pháp xác thực phù hợp đối với các thiết bị vô tuyến có hạn chế về năng lực tính toán và tài nguyên bộ nhớ. Luận văn đã giới thiệu nghiên cứu hệ mã hóa đường cong Elliptic, cơ sở toán học đề xây dựng hệ mật mã ECC, các dịch vụ an ninh, các thuật toán thực thi trong hệ mật mã ECC. Với những ưu điểm của hệ mật mã ECC, trong phần cuối của chương, học viên đã đề xuất khả năng xây dựng hạ tầng khóa công khai cho nền tảng di động dựa trên hệ mật mã ECC. Để hiện thực hóa, học viên đã thiết kế giao thức và triển khai ứng dụng cấp phát chứng thư cho thiết bị di động 111 Tổng kết và hướng nghiên cứu tiếp theo Trong luận văn của mình, xuất phát từ những tồn tại trong vấn đề xác thực của các mạng vô tuyến, đặc biệt là trong các mạng di động. Luận văn đã tiến hành nghiên cứu các phương pháp xác thực để từ đó bước đầu tìm ra một giải pháp xác thực có thể áp dụng được trong các mạng vô tuyến, đặc biệt là trên những thiết bị đầu cuối có hạn chế về tốc độ xử lý và khả năng lưu trữ. Luận văn đã nêu khái quát các vấn đề cơ bản trong mật mã học, trong đó đi vào chi tiết 2 hệ mật mã được sử dụng phổ biến nhất hiện nay, đó là hệ mật mã đối xứng và hệ mật mã công khai. Sau khi giới thiệu 2 hệ mật mã, luận văn vào ứng dụng của các hệ mật mã đó trong vấn đề xác thực, học viên đã giới thiệu chữ ký điện tử và các mô hình xác thực được sử dụng phổ biến hiện nay. Để minh họa, trong phần tiếp theo học viên đã khảo cứu và trình bay khái quát phương pháp xác thực được sử dụng trong các mạng di động thể hệ sau gồm mạng GSM, mạng 3G UTMS và mạng WLAN. Phần cuối cùng, học viên đi vào nghiên cứu hệ mật mã đường cong Elliptic (Elliptic Curve Cryptography), học viên đã giới thiệu cơ sở toán học của hệ mật mã ECC, trích dẫn và giải thích các thuật toán sinh khóa, trao đổi khóa, ký số, xác thực, mã hóa – giải mã của hệ mật mã ECC. Do việc chứng minh sự tương thích của hệ mật mã đường cong ECC đối với các thiết bị di động đã được chứng minh trong rất nhiều nghiên cứu trước đó, do vậy luận văn chỉ tổng kết lại những số liệu và đưa ra những đánh giá về sự tương thích đó. Trong phần cuối, luận văn đã đề xuất khả năng ứng dụng hạ tầng khóa công khai dành cho thiết bị di động dựa trên hệ mật mã ECC. Để chứng minh, luân văn đã thiết kế giao thức cấp phát chứng thư giữa thiết bị di động và cơ quan phát hành chứng thư. 1. Hướng nghiên cứu tiếp theo Trong tương lai, học viên có dự đinh sẽ đi vào nghiên cứu và hoàn thiện hạ tầng khóa công khai danh cho các thiết bị di động. Xây dựng và hoàn thiện các ứng dụng dựa trên hạ tầng khóa công khai với mục tiêu là cung cấp 1 hạng tầng xác thực an toàn, bảo mật và có tính pháp lý, dựa trên tính pháp lý của chữ ký điện tử đã được pháp luật Việt Nam công nhận. 112 Tài liệu tham khảo Tiếng Anh 1. Amos Fiat and Adi Shamir "How to prove to yourself: practical solutions to identication and signature problems". In Advances in Cryptology-Crypto 86, pages 186-194. 2. Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 44. 3. Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 46. 4. Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 52-53. 5. Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 53-54. 6. Certicom Research (2010), "SEC2: Recommended Elliptic Curve Domain Parameters", pp 3. 7. Certicom Research (2010), "SEC2: Recommended Elliptic Curve Domain Parameters", pp 13. 8. Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics Curve Cryptography", Springer publisher, pp 95. 9. Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics Curve Cryptography", Springer publisher, pp 154. 10. Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics Curve Cryptography", Springer publisher, pp 189. 11. ElGamal, T. "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms." IEEE Transactions on Information Theory, July 1985. 12. ITU-T Recommendation X.800 (1991), “Security architecture for open system interconnection (OSI)”, pp 8-10. 13. Noureddine Boudriga (2009), “Security of mobile communications”, Auerbach Publications, pp 59-60. 14. Noureddine Boudriga (2009), “Security of mobile communications”, Auerbach Publications, pp 166-169. 15. Noureddine Boudriga (2009), “Security of mobile communications”, Auerbach Publications, pp 175-179. 16. Noureddine Boudriga (2009), “Security of mobile communications”, Auerbach Publications, pp 208-212. 113 17. Prapul Chanda (2005), "Bulletproof wireless security: GSM, UMTS, 802.11, and Ad Hoc Security", Newnes Publisher, pp 165. 18. Prapul Chanda (2005), "Bulletproof wireless security: GSM, UMTS, 802.11, and Ad Hoc Security", Newnes Publisher, pp 169-170. 19. RSA Laboratories (2000) : PKCS#10 - Certification Request Syntax Standard. 20. Schnorr, C. "Efficient Signatures for Smart Card." Journal of Cryptology, No. 3, 1991. 21. Scott Vanstone (2005) : “An introduction to use of ECC-based certificates”. Code and Cipher vol2, no2. pp -3. 22. Spafford, G., 23. The IEEE (2010), "IEEE Standard for port-based Network Access Control" 24. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 13-15. 25. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 120. 26. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 181-189. 27. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 266-267. 28. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 304. 29. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 305. 30. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 308. 31. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 338. 32. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 426. 33. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 428-430. 114 Phụ lục: Tham số hệ mật mã ECC Dưới đây là các tham số của hệ mật mã ECC trên trường hữu hạn Fp, được lựa chọn để thực thi hệ mật mã ECC được đưa ra bởi công ty Certicom trong khuyến nghị “SEC2: Recommended Elliptic Curve Domain Paramaters”. Các tham số cho trên trường nhị phân cũng được nêu chi tiết trong khuyên nghị trên, luận văn sẽ không đưa ra. 1. Secp192k1 p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFEE37 a = 00000000 00000000 00000000 00000000 00000000 00000000 b = 00000000 00000000 00000000 00000000 00000000 00000003 G = 04 DB4FF10E C057E9AE 26B07D02 80B7F434 1DA5D1B1 EAE06C7D 9B2F2F6D 9C5628A7 844163D0 15BE8634 4082AA88 D95E2F9D n = FFFFFFFF FFFFFFFF FFFFFFFE 26F2FC17 0F69466A 74DEFD8D h = 01 2. Secp224k1 p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFE56D a = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 b = 00000000 00000000 00000000 00000000 00000000 00000000 00000005 G = 04 A1455B33 4DF099DF 30FC28A1 69A467E9 E47075A9 0F7E650E B6B7A45C 7E089FED 7FBA3442 82CAFBD6 F7E319F7 C0B0BD59 E2CA4BDB 556D61A5 n = FFFFFFFF FFFFFFFF FFFFFFFE 26F2FC17 0F69466A 74DEFD8D h = 01 3. Secp256k1 p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F a = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 115 00000000 b = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000007 G = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8 n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 h = 01 4. Secp384r1 p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF 00000000 00000000 FFFFFFFF a = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF 00000000 00000000 FFFFFFFC b = B3312FA7 E23EE7E4 988E056B E3F82D19 181D9C6E FE814112 0314088F 5013875A C656398D 8A2ED19D 2A85C8ED D3EC2AEF G = 04 AA87CA22 BE8B0537 8EB1C71E F320AD74 6E1D3B62 8BA79B98 59F741E0 82542A38 5502F25D BF55296C 3A545E38 72760AB7 3617DE4A 96262C6F 5D9E98BF 9292DC29 F8F41DBD 289A147C E9DA3113 B5F0B8C0 0A60B1CE 1D7E819D 7A431D7C 90EA0E5F n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF C7634D81 F4372DDF 581A0DB2 48B0A77A ECEC196A CCC52973 h = 01 5. Secp521r1 p = 01FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF a = 01FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFC 116 b = 0051 953EB961 8E1C9A1F 929A21A0 B68540EE A2DA725B 99B315F3 B8B48991 8EF109E1 56193951 EC7E937B 1652C0BD 3BB1BF07 3573DF88 3D2C34F1 EF451FD4 6B503F00 G = 04 00C6858E 06B70404 E9CD9E3E CB662395 B4429C64 8139053F B521F828 AF606B4D 3DBAA14B 5E77EFE7 5928FE1D C127A2FF A8DE3348 B3C1856A 429BF97E 7E31C2E5 BD660118 39296A78 9A3BC004 5C8A5FB4 2C7D1BD9 98F54449 579B4468 17AFBD17 273E662C 97EE7299 5EF42640 C550B901 3FAD0761 353C7086 A272C240 88BE9476 9FD16650 n = 01FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFA 51868783 BF2F966B 7FCC0148 F709A5D0 3BB5C9B8 899C47AE BB6FB71E 91386409 h = 01

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN- XÁC THỰC TRONG CÁC MẠNG VÔ TUYẾN.pdf