Đề tài Nghiên cứu hệ mật đường cong Elliptic và ứng dụng

1. Đã nghiên cứu cơ sở toán học hệ mật dựa trên đường cong elliptic và các tấn công đối với hệ mật Elliptic. 2. Đã nghiên cứu, đánh giá một số chuẩn về tham số. 3. Nghiên cứu được giá trị tham số p là số nguyên tố ngẫu nhiên là an toàn cho các tham số hệ mật Elliptic. 4. Đã nghiên cứu, đánh giá thuật toán tính số điểm của đường cong elliptic phục vụ cho bài toán sinh tham số an toàn. 5. Đã nghiên cứu về cấu trúc, nguyên lý hoạt động của một ứng dụng bảo mật mạng riêng ảo (trao đổi khóa, tham số an toàn .).

pdf25 trang | Chia sẻ: lylyngoc | Lượt xem: 3910 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu hệ mật đường cong Elliptic và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- Hoàng Thị Xuân NGHIÊN CỨU HỆ MẬT ĐƯỜNG CONG ELLIPTIC VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI - 2013 2 Luận văn được hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: GS. Nguyễn Bình Phản biện 1: …………………………………………………………………………… Phản biện 2: ………………………………………………………………………….. Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm ............... Có thể tìm hiểu luận văn tại: - Thư viện của Học viện Công nghệ Bưu chính Viễn thông 3 MỞ ĐẦU Lý do chọn đề tài Sự phát triển của công nghệ thông tin, truyền thông nói chung và Internet nói riêng đã giúp cho việc trao đổi thông tin nhanh chóng, dễ dàng. Do vậy một số vấn đề phát sinh là thông tin có thể bị trộm cắp, có thể sai lệch, có thể giả mạo. Điều đó có thể ảnh hưởng đến các tốc chức, các công ty hay cả một quốc gia. Để giải quyết tình hình trên an toàn thông tin được đặt ra cấp thiết. Kỹ thuật mật mã là một trong những giải pháp của an toàn truyền thông. Các nhà khoa học đã phát minh ra những hệ mật ma nhằm che dấu thong tin cũng như là làm rõ chúng để tránh kẻ cố tình phá hoạt các hệ mật: RSA, Elgamal … Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu của Luận văn: - Cơ sở toán học hệ mật dựa trên các đường cong Elliptic. - Các tấn công và độ phức tạp của các tấn công trên hệ mật Elliptic. - Giao thức bảo mật mạng sử dụng hệ mật Elliptic. Phạm vi nghiên cứu của Luận văn: - Luận văn tập trung tìm hiểu về các đánh giá tấn công hệ mật đường cong Elliptic, tìm hiểu một số hệ mật trên các đường cong Elliptic. - Dựa trên các cơ sở lý thuyết và tìm hiểu, xây dựng ứng dụng bảo mật mạng riêng ảo sử dụng hệ mật Elliptic. Mục đích nghiên cứu - Làm rõ các phương pháp tấn công trong hệ mật đường cong Elliptic. - Ứng dụng trong một bài toán bảo mật mạng cụ thể. Bố cục luận văn: Luân văn này gồm 03 chương cùng với phần mở đầu, kết luận và các danh mục: Chương 1: Tổng quan về hệ mật đường cong Elliptic Chương 2: Mật mã đường cong Elliptic Chương 3:Ứng dụng trong bài toán bảo mật mạng riêng ảo CHƯƠNG I – TỔNG QUAN VỀ HỆ MẬT ĐƯỜNG CONG ELLIPTIC 1.1 Cơ sở toán học hệ mật đường cong Elliptic 1.1.1 Các định nghĩa Định nghĩa 1. 4 Một đường cong Elliptic dạng Weierstrass đầy đủ là tập tất cả các điểm với 3 tọa độ x, y, z thỏa mãn phương trình: 2 3 3 2 2 3 1 1 2 4 6yzy z a xyz a x a x z a xz a z      Với 1, 2, 3, 4, 6a a a a a  (1.1) Phương trình đường cong Elliptic dạng Weierstrass rút gọn sẽ được biểu diễn bởi phương trình: 2 3: ;E y x Ax B   với , pA B (1.2) Định nghĩa 2: Biệt thức của đường cong E được xác định bởi công thức:  3 216 4 27A B  (1.3) Định nghĩa 3: Gọi 3 2( , )f x y x Ax B y    . Một điểm ( , )P x y E được gọi là điểm không kì dị nếu có ít nhất một trong hai đạo hàm df dx hoặc df dy khác 0. Điều này có nghĩa là nếu cả hai đạo hàm này bằng 0 thì điểm P sẽ được coi là điểm kì dị. Định nghĩa 4: Đường cong Elliptic E được coi là đường cong không kì dị nếu tất cả các điểm của nó là không kì dị. Ngược lại, nếu có ít nhất một điểm kì dị thì đường cong được coi là đường cong kì dị. Định nghĩa 5: Đại lượng j – bất biến của đường cong E khi 0 là: 3 3 2 4 ( ) 1728 4 27 A j j E A B    (1.4) Định nghĩa 6: Hai đường cong E và E’ xác định bởi phương trình Weierstrass rút gọn với các biến số tương ứng là (x, y) và (x’, y’) được gọi là đẳng cấu trên trường nếu và chỉ nếu tồn tại các hằng số , ,r s t và *u sao cho khi thực hiện đổi biến 2 3 2' ; ' 'x u x r y u y su x t     thì E biến thành E’. Có hai giá trị đặc biệt của j – bất biến là:  j = 0: Khi đó đường cong Elliptic có dạng 2 3y x B  .  j = 1728: Đường cong Elliptic có dạng 2 3y x Ax  . Định nghĩa 7: Nếu hai đường cong Elliptic khác nhau được xác định trên một trường có cùng một j – bất biến thì ta gọi chúng là “xoắn đôi” (twist) của nhau. Đường cong xoắn đôi với đường cong với j – bất biến là j có dạng: 2 3 3 2 ; 0,1728 1728 1728 j j y x x j j j       (1.5) Định nghĩa 8: Một đường cong Elliptic E định nghĩa trên p được gọi là đường cong siêu kì dị nếu không có điểm bậc p. 5 Định nghĩa 9: Đường cong Elliptic E định nghĩa trên p thỏa mãn  # pE p được gọi là các đường cong bất quy tắc. 1.1.2 Hệ mật dựa trên đường cong Elliptic Tập hợp tất cả các điểm  ,x y với , px y thỏa mãn phương trình của đường cong E và với một điểm  ở vô cực cùng với một phép toán cộng sẽ tạo thành một nhóm, gọi là nhóm các điểm trên đường cong Elliptic trong p , ký hiệu là  pE .  Phép cộng điểm: Cho hai điểm 1P và 2P phân biệt trên đường cong Elliptic E. Tổng của 1P và 2P , ký hiệu là 3P , được định nghĩa như sau: Kẻ một đường thẳng đi qua 1P và 2P . Đường thẳng này sẽ cắt E tại một điểm thứ 3, được ký hiệu là '3P . Tiếp tục kẻ đường thẳng đi qua ' 3P và vuông góc với trục x , đường thẳng này sẽ cắt E tại điểm thứ hai chính là điểm 3P .  Phép nhân đôi một điểm: Cho 1P là một điểm trên E . Nhân đôi điểm 1P , ký hiệu là 1 1 12P P P  , được định nghĩa như sau: Kẻ qua 1P một tiếp tuyến của E , tiếp tuyến này cắt E tại điểm thứ hai, ký hiệu là R . Kẻ đường thẳng đi qua R và vuông góc với trục x , đường thẳng này cắt E tại điểm thứ hai chính là 12P . Cho E là một đường cong Elliptic xác định bởi phương trình 2 3y x x B    . Gọi 11 1 ( , )P x y và 2 2 2( , )P x y là các điểm trên E với 1 2,P P   . Khi đó 1 2 3 3 3( , )P P P x y   với 3 3,x y được tính như sau: (1) (Công thức cộng điểm) Nếu 1 2x x , thì 2 3 1 2x m x x   ,  3 1 3 1y m x x y   , với 2 1 2 1 y y m x x    . (2) Nếu 1 2x x nhưng 1 2y y , thì 1 2P P  . (3) (Công thức nhân đôi điểm) Nếu 1 2P P và 1 0y  , thì 2 3 1 2x m x x   ,  3 1 3 1y m x x y   với 2 1 1 3 2 x A m y   (4) Nếu 1 2P P và 1 0y  , thì 1 2P P  . (5) 1 1 1;P P P E    . Phép cộng điểm trên đường cong Elliptic E thỏa mãn các tính chất sau: (1) Tính giao hoán: 1 2 2 1P P P P   với mọi 1 2,P P trên E . (2) Tồn tại phần tử đơn vị: P P  với mọi P trên E . (3) Tồn tại phần tử nghịch đảo: Với điểm P cho trước trên E , tồn tại một điểm 'P trên E sao cho 'P P  . Điểm 'P thường được kí hiệu là P . (4) Tính kết hợp:  1 2 3 1 2 3 1 2 3( ) , ,P P P P P P P P P E       . 6 1.1.2.1 Các tự đồng cấu Một tự đồng cấu E nghĩa là một đồng cấu : ( ) ( )E E  được cho bởi các hàm hữu tỉ. Nói cách khác,      1 2 1 2P P P P     , và có các hàm hữu tỉ (thương của các đa chức)  1 ,R x y ,  2 ,R x y với các hệ số trong sao cho           1 2, , , , ,x y R x y R x y x y E    Một tự đồng cấu  , 0x y  được gọi là tự đồng cấu tách được nếu đạo hàm  '1 ,R x y không đồng nhất bằng không. 1.1.2.2 Các điểm n – xoắn Các điểm xoắn, chính là các điểm có bậc hữu hạn, đóng một vai trò quan trọng trong nghiên cứu các đường cong Elliptic. Cho E là một đường cong Ellip được xác định trên một trường . Giả sử n là một số nguyên dương. Theo [6] tập các điểm n-xoắn được định nghĩa bởi:     |E n P E nP   (1.7) 1.1.2.3 Đa thức chia Đa thức chia thứ - m của đường cong Elliptic E , [ , , , ]m x y A B  , được xác định bởi dãy các công thức toán học truy hồi sau đây: 0 1 20, 1, 2y     4 2 2 3 3 6 12x Ax Bx A     6 4 3 2 2 2 3 4 4 ( 5 20 5 4 8 )y x Ax Bx A x ABx B A        3 3 2 1 2 1 1m m m m m         Với 2m      1 2 22 2 1 2 12m m m m m my            Với 2m  . Cho  ,P x y là một điểm trên đường cong Elliptic 3 Ay x x B   (trên một trường nào đó có đặc số khác 2), và n là một số nguyên dương. Khi đó:         32 , , , n n n n x x y nP x x y              (1.8) 1.1.3 Cặp Weil Cho E là một đường cong Elliptic trên một trường và cho n là một số nguyên không chia hết cho đặc số của . Khi đó   n nE n  . Đặt:  | 1nn x x    (1.9) Là nhóm của các căn bậc n của phần tử đơn vị trong . Vì đặc số của không chia hết cho n , nên phương trình 1nx  không có nghiệm bội, do đó nó có n nghiệm trong . Do 7 vậy, n là một nhóm cyclic bậc n . Một phần tử sinh  của n được gọi là một căn nguyên thủy bậc n . Điều này tương đương với việc nói rằng 1k  khi và chỉ khi n chia hết cho k . Định lý [6 – Theorem 3.9]: Cho E là một đường cong Elliptic xác định trên một trường và cho n là một số nguyên dương. Giả sử rằng đặc số của trường không chia hết cho n . Khi đó một phép ghép cặp:    :n ne E n E n   (1.10) 1.2 Đường cong Elliptic 1.2.1 Đặt vấn đề bài toán Đường cong elliptic là tập hợp các điểm có toạ độ  ,x y thoả mãn phương trình có dạng sau đây: 2 3 2 1 3 2 4 6y a xy a y x a x a x a      Trên trường F biểu diễn bằng phương trình Weiretrass: 3 2 1 3 2 4 6ay xy a y x a x a x a      (1.11) Xét đường cong E trên trường nguyên tố hữu hạn pF ( p nguyên tố, p >3 ) với công thức biến đổi như sau: 2 3 a b     (1.12) Hình 1: Một ví dụ về đường cong Elliptic Định nghĩa: Giả sử  là một trường có đặc số khác 2 và khác 3 và xét đa thức 3 a b   (với a, b   ). Khi đó đường cong elliptic trên trường : 2 3 a b     là tập hợp tất cả các điểm (x, y) với x, y   sao cho (1.12) không có các nghiệm bội tức là 3 24 27 0moda b p  cùng với phần tử O - điểm O này được gọi là điểm vô hạn. Tính chất của đường cong elliptic: 8 Nếu hai điểm 1 1 1(x y )  và 2 2 2(x y )  với 1 2x x nằm trên đường cùng một đường cong elliptic  , thì đường thẳng qua hai điểm 1 và 2 sẽ cắt một điểm duy nhất  3 3 3x , y có thể xác định thông qua 1 và 2 nằm trên đường cong  . Tiếp tuyến của đường cong tại điểm bất kỳ  P x, y trên đường cong  cũng cắt đường cong elliptic  tại một điểm duy nhất nằm trên đường  , điểm này cũng có thể xác định được thông qua P. 1.2.2 Đường cong elliptic trên trường hữu hạn Xét trường hữu hạn qF của q = p r phần tử trên trường hữu hạn . Giả sử E là đường cong elliptic được định nghĩa trên qF . Nếu đặc số của trường 2p  hoặc 3p  thì E được cho bởi phương trình ở (1.13) và (1.14) . Định lý: Gọi N là số các điểm trên đường cong elliptic được định nghĩa trên qF . Khi đó  N q 1 2 q   1.2.3 Các phép toán trên đường cong Elliptic 1.2.3.1 Phép cộng Giả sử P = (x1, y1) và Q (x2, y2) là hai điểm của E. Nếu x1 = x2 và y1 = - y2 thì ta định nghĩa P + Q = O. Ngược lại thì P + Q = (x3, y3) E trong đó:  23 1 2 3 1 3 1x x – x , y x – x – y    , Với:       2 1 2 1 2 1 y – y x – x 3x a 2 y          Khi P ≠ Q( nếu x1 = x2 th ì  là hệ số góc đường thẳng qua P và Q) (1.17) Khi P = Q ( là đạo hàm của đường cong tại P) (1.18) 9 Hình 2: Phép cộng trên đường cong Elliptic Tính chất  Dễ thấy rằng tập E với phép toán cộng đó tạo thành một nhóm Abelian:  Tính đóng: Nếu P, Q E thì P + Q E.  Tính kết hợp: Nếu P, Q, R E thì P + ( Q + R ) = R + ( Q + P ).  Tồn tại phần tử trung hoà O: với mọi P  E thì P + O = O + P = P (theo định nghĩa).  Tồn tại phần tử nghịch đảo: với mỗi  P , x y E thì luôn tồn tại phần tử  P , -x y E  để P + (-P) = O.  Tính chất giao hoán: Nếu P, Q E thì P + Q = Q + P. 1.2.3.2 Phép nhân Phép nhân một số nguyên k với một điểm P thuộc đường cong elliptic E là điểm Q được xác định bằng cách cộng k lần điểm P và dĩ nhiên : P P P P PQ E k      ( k phép cộng điểm P). P Q P+ Q R P 2P R -1 -2 2 1 10 Hình 3: Ví dụ phép nhân đôi trên đường cong Elliptic 1.2.4 Đếm số điểm trên đường cong Elliptic trên trường qF 1.2.4.1 Định lý Hasse N là số điểm của E trên trường Fq (trường hữu hạn q phần tử). Khi đó:  N – q 1 2 q  . Từ định lý Hasse suy ra  #E – q q 1 t  trong đó t 2 q . 1.2.4.2 Định nghĩa Bậc của điểm G thuộc E là số k dương bé nhất sao cho kG = O; khi k = #E(Fq) thì G là điểm cơ sở của E. 1.2.5 Phương pháp chọn đường cong Elliptic phù hợp và điểm cơ sở 1.2.5.1 Trường Một đường cong elliptic trên một trường hữu hạn tạo thành nhóm Abelian được sử dụng trong mật mã học. Một ví dụ là việc chọn trường r 2F giúp thực hiện các phép tính nhanh và dễ dàng triển khai được trên các thiết bị cứng. Tuy nhiên, các đường cong trên trường r 2F có thể bị tấn công bởi MOV, trong khi các đường cong trên trường pF (p là số nguyên tố lớn) lại chống lại được kiểu tấn công này. Một chú ý nữa là việc tính số điểm trên # ( )E . Tốc độ của thuật toán Shoof phụ thuộc vào kích thước và đặc số của trường K. 1.2.5.2 Dạng của đường cong elliptic Trên trường Fq có hai lớp đường cong elliptic được dùng trong các hệ mã hoá là supersingular. Xét Fq có đặc số là  m2 g 2 . Khi đó: 11  Tập tất cả các cặp nghiệm (x, y) của phương trình 2 3y ax x bx c    với a, b, c Fq và a = 0 (mod q) cùng với điểm trung hoà O tạo thành một đường cong elliptic dạng supersin gular.  Tập tất cả các cặp nghiệm (x, y) của phương trình 2 3y ax x bx c    với a, b, c  Fq và b = 0 (mod q) cùng với điểm trung hoà O tạo thành một đường cong elliptic dạng non-supersingular. 1.2.5.3 Phương pháp lựa chọn Phương pháp- Phương pháp chọn ngẫu nhiên Kobliz: (1) .Chọn ngẫu nhiên 3 phần tử từ Fq là x, y, a (2) .Tính b = y2 – (x3 + ax) (3) .Kiểm tra 4a3 + 27b2 ≠ 0 để đảm bảo phương trình x3 + ax + b =0 không có nghiệm kép. (4) .Nếu điều kiện trên không thoả mãn quay lại bước 1. (5) .Còn lại, đặt P = (x, y) và đường cong y2 = x3 + ax +b là đường cong cần chọn. 1.2.6 Đánh giá các tấn công hệ mật đường cong Elliptic 1.2.6.1 Phương pháp Pohlig - Hellman Cho ,P Q là các phần tử trong nhóm hữu hạn G bậc N. Ta muốn tìm một số nguyên k với kP Q . Giả sử biết phân tích ra thừa số nguyên tố của N là: ie ii N n Phương pháp Pohlig – Hellman thực hiện tốt nếu tất cả các ước nguyên tố của N là nhỏ. Nếu ước nguyên tố lớn nhất xấp xỉ lớn của N thì phương pháp Pohlig – Hellman rất khó áp dụng. Vì lý do này, các hệ mật dựa trên logarith rời rạc, nói chung thường chọn bậc của nhóm có chứa một thừa số nguyên tố lớn. 1.2.6.2 Tấn công MOV Thuật toán 1: Tấn công MOV Input: , ( )pP Q E , ( )ord P N , gcd( , )N p 1 , Q kP Output: (mod )k N (1). Chọn một điểm ngẫu nhiên ( )mpT E (2). Tính bậc M của T 12 (3). Đặt gcd( , )d M N , đặt ( / )1T M d T . Khi đó 1T có bậc d chia hết cho N , vậy  1T E N (4). Tính ( , )1 N 1e P T  và ( , )2 N 2e P T  . Khi đó cả 1 , 2 đều thuộc vào * md p   (5). Giải bài toán log rời rạc k 2 1  trong * mp . Kết quả cho ta (mod )k d . (6). Lặp lại với các điểm ngẫu nhiên T đến khi bội chung nhỏ nhất của các số d khác nhau thu được là N. Khi đó ta xác định được (mod )k N 1.2.6.3 Phương pháp Xedni Thuật toán tính chỉ số ngược đầu tiên là nâng các điểm , ,...,1 2 nP P P , sau đó chọn một đường cong Elliptic  E Q chứa các điểm đã nâng và hy vọng rằng chúng phụ thuộc tuyến tính. Nghĩa là thỏa mãn quan hệ r i i i 1 n P 0   . Tuy nhiên, xác suất để chúng phụ thuộc tuyến tính là nhỏ. 1.2.6.4 Các tấn công dựa trên giả thuyết Diffie – Hellman Cho G là một nhóm Abel bậc nguyên tố p và g là phần tử sinh của G. Bài toán logarith rời rạc DLP trong G là bài toán tìm số pa khi biết g và ag trong G. Nhiều hệ mật được thiết kế dựa trên bài toán DLP, tuy nhiên hầu hết chúng có độ an toàn tương đương với một biến thể yếu hơn của bài toán DLP. Hai biến thể yếu hơn quan trọng nhất là bài toán DH – Tính toán CDH và bài toán DH – Quyết định DDH. CDH: Cho  , ,a bg g g . Tính abg ? DDH: Cho  , , ,a b cg g g g . Xác định xem c ab trong p hay không? 1.2.6.5 Các tấn công cài đặt Kiểu tấn công cài đặt thứ nhất là dựa trên điểm không hợp lệ của đường cong Elliptic. Nếu trong quá trình nhận và xử lý một điểm trên đường cong mà không thực hiện việc kiểm tra xem nó có thực sự nằm trên đường cong đã cho hay không thì lược đồ có thể bị tấn công. Dạng tấn công thứ hai là kiểu tấn công phân tích năng lượng để khám phá khóa bí mật.. Hiệu quả của các kiểu tấn công này phụ thuộc vào cách cài đặt cụ thể. 1.2.6.6 Nhận xét Tổng hợp các phương pháp trên ta có bảng như sau: 13 Bảng 1: So sánh các phương pháp tấn công hệ mật Elliptic STT Phương pháp Độ phức tạp của thuật toán trong nhóm có bậc là N Yêu cầu bộ nhớ Ghi chú 1 Pohlig - Hellman O K với K là ước nguyên tố lớn nhất của N Nhỏ Hiệu quả nếu N chỉ có các ước nguyên tố nhỏ. 2 MOV ~  *DLP mp Nhỏ Hiệu quả nếu m nhỏ 3 Xedni ( )O N - Không áp dụng được trong thực tế 4 Tấn công dựa vào một số giả thuyết DH ( .log )O d p với d là ước của 3 p d p  p O d       Yêu cầu giả thuyết mạnh, cần bộ nhớ lớn 5 Tấn công cài đặt Phụ thuộc vào cách cài đặt cụ thể Nhỏ Thời gian đa thức theo Conron. Kết luận chương Các kết quả mà chương 1 đạt được bao gồm: (1) Đã nghiên cứu tổng quan về hệ mật Elliptic trên trường hữu hạn, nghiên cứu về các vấn đề như đa thức chia, nhóm con xoắn, các tự đồng cấu, Weil pairing. (2) Nghiên cứu, xem xét và đánh giá về độ phức tạp tính toán, yêu cầu bộ nhớ và khả năng áp dụng trong thực tế của các tấn công đối với hệ mật Elliptic. CHƯƠNG 2 – MẬT MÃ ĐƯỜNG CONG ELLIPTIC 2.1 Mật mã đường cong Elliptic 2.1.1 Thiết lập cơ sở Alice muốn gửi một văn bản, thường được gọi là bản rõ (Plaintext), tới Bob. Cô ấy mã hóa văn bản để thu được bản mã (Ciphertext). Để mã hóa văn bản, Alice sử dụng một khóa mã hóa (Encryption key). Bob sử dụng một khóa giải mã (Decryption key) để giải mã bản mã nhận được. Có hai cách mã hóa cơ bản. Trong mật mã đối xứng (Symmetric Encryption), khóa mã hóa và khóa giải mã là như nhau, Một dạng khác của mã hóa là mật mã khóa công khai (Public Key Encryption), hoặc mật mã không đối xứng (Asymmetric Encryption). 14 Hình 4: Mô phỏng mã hóa công khai 2.1.2 Nhúng bản rõ lên đường cong Nhúng bản rõ lên E là biểu diễn lại bản rõ đó như là các điểm trên E, nhờ đó có thể thực hiện được các tính toán trên E. Có một số phương pháp để thực hiện việc này. Trong đó có 2 phương pháp chính là “nhúng” (Imbeding) và “mặt nạ” (Mask). 2.1.3. Logarith rời rạc trên đường cong Elliptic Định nghĩa: E là đường cong Elliptic trên trường Fq và B là một điểm trên E. Khi đó bài toán logarit rời rạc trên E (theo cơ số B) là một bài toán, cho trước một điểm P E , tìm số nguyên x Z sao cho xB = P (nếu số x như vậy tồn tại) 2.1.4 Trao đổi khóa Diffie – Hellman Alice và Bob muốn thống nhất một khóa chung mà họ có thể sử dụng cho việc trao đổi dữ liệu thông qua một sơ đồ mã đối xứng. Alice và Bob thống nhất một đường cong elliptic E trên trường hữu hạn Fq sao cho bài toán logarithm rời rạc là khó trong E(Fq). Thông tin duy nhất mà kẻ trộm Eve thấy chỉ là đường cong E, trường hữu hạn Fq, và các điểm P, aP và bP. Do đó cô ta cần phải giải quyết các bài toán sau: 2.1.4.1 Bài toán Diffie – Hellman Cho trước P, aP và bP trong E(Fq), tính abP? Nếu Eve có thể giải bài toán log rời rạc trong E(Fq), khi đó cô ta có thể sử dụng P và aP để tìm a. Khi đó cô ta có thể tính a(bP) để nhận được abP. Tuy nhiên, liệu có thể có cách nào để tính abP mà không phải giải bài toán log rời rạc đầu tiên. 2.1.4.2 Bài toán quyết định Diffie – Hellman Cho trước P, aP và bP trong E(Fq) và cho trước một điểm Q ∈ E(Fq). Khi đấy có xác định được Q = abP hay không? 15 Cho E là đường cong 12 3y x  trên Fq, với q ≡ 2 (mod 3). Theo mệnh đề, E là siêu kì dị. Cho 2qF là một căn nguyên thủy bậc ba của đơn vị. Định nghĩa ánh xạ    : E( ) E( ), x, y x,y , ( ) q qF F      . Bằng tính toán trực tiếp ta chỉ ra được β là một đẳng cấu. 2.1.5 Mã hóa Massey – Omura Alice muốn gửi một văn bản tới Bob qua một kênh công khai. Họ chưa thiết lập được một khóa riêng. Một cách để thực hiện điều này như sau. Alice đặt văn bản của cô vào một hộp và lắp khóa của cô ta vào đấy. Cô gửi chiếc hộp cho Bob, Bob lắp khóa của anh vào sau đó gửi trả chiếc hộp lại cho Alice. Alice tháo khóa của mình ra và gửi chiếc hộp lại cho Bob. Khi đó Bob bỏ khóa của anh ta ra, mở chiếc hộp và đọc văn bản trong ấy. Ta sẽ chỉ ra M4 chính là văn bản M, một cách hình thức ta có: 4M 1 1 A Bm m   mB mAM = M Nhưng ta cần giải thích thực tế rằng 1 Am  , số nguyên biểu diễn nghịch đảo của mA, và mA là khử nhau. Ta có 1 Am  mA (mod N), vậy 1 Am  mA = 1 + kN với số nguyên k. Nhóm E(Fq) có cấp N, vậy định lý Lagrange kéo theo NR  với mọi  qR E F . Do đó, 1 Am  mAR = (1+kN)R = R + k ∞ = R. Áp dụng điều này với R = mBM, ta thấy M3 = 1 Am  mB mAM = mBM. Tương tự, 1 Bm  và mB khử nhau, vậy M4 = 1 Bm  mBM = M. Tên trộm Eve biết E(Fq) và các điểm mAM, mBmAM và mBM. Đặt a = 1 Am  , b = 1 Bm  , P = mAmBM. 2.1.6 Mã hóa công khai Elgamal Alice muốn gửi một văn bản cho Bob, Anh chọn một đường cong Elliptic E trên một trường hữu hạn Fq sao cho bài toán log rời rạc là khó với E(Fq). Anh cũng chọn một điểm P trên E (thông thường được thỏa thuận để cấp của P là một số nguyên tố lớn). Anh chọn một số nguyên bí mật s và tính B = sP. Để gửi văn bản cho Bob, Alice thực hiện như sau: (1) Tải về khóa công khai của Bob (2) Biểu diễn văn bản của cô như một điểm M ∈ E(Fq). (3) Chọn một số bí mật ngẫu nhiên k và tính M1 = kP. (4) Tính M2 = M + kB (5) Gửi M1, M2 cho Bob. Bob giải mã bằng việc tính: M = M2 – sM1. Việc giải mã thực hiện được vì M2 – s M1 = (M+kB) – s(kP) = M + k(sP) – skP = M. 16 2.2 Sinh tham số cho hệ mật Elliptic 2.2.1 Tham số miền của đường cong Elliptic Các tham số cho hệ mật đường cong Elliptic trên p là một bộ  , , , , , , EEp A B G N h S D , trong đó:  p>3 là số nguyên tố, xác định trường hữu hạn cơ sở p .  2 3: AE y x x B   với , pA B  Phần tử sinh  ,G GG x y có bậc nguyên tố là N trên E , , ( )G G px y E và # ( )pN E .  Đồng thừa số h=1  Một xâu bít SEED dùng để sinh ngẫu nhiên đường cong 2.2.2 Sinh và kiểm tra cặp khóa đường cong Elliptic Thuật toán 2: Sinh cặp khóa cho hệ mật Elliptic Input: Bộ tham số miền  , , , , , , EEp A B G N h S D Output: (Q – điểm công khai, d – khóa bí mật) (1) Sinh  0, 1d R N  . Số nguyên d phải được giữ bí mật và phải không dự đoán được (2) Tính điểm  ,Q QQ x y dG  (3) Trả về cặp khóa là ( , )Q d trong đó Q là khóa công khai, d là khóa bí mật. Với một bộ tham số miền  , , , , , , EEp A B G N h S D và một khóa công khai Q có thể được kiểm tra tính hợp lệ theo thuật toán dưới đây. Thuật toán 3: Kiểm tra tính hợp lệ của khóa công khai Input: Tham số miền  , , , , , , EEp A B G N h S D , khóa công khai Q Output: “Khóa công khai hợp lệ” hoặc “Khóa công khai không hợp lệ” (1) Kiểm tra Q không phải là điểm  trên E (2) Kiểm tra ,Q Q p x y  (3) Kiểm tra rằng 2 3 AQ Q Qy x x B   trong p . (4) Kiếm tra NQ  (5) Nếu bất kỳ một trong các phép kiểm tra trên thất bại trả về “khóa công khai không hợp lệ” còn không thì trả về “khóa công khai hợp lệ”. 17 2.2.3 Thuật toán kiểm tra điều kiện MOV Thuật toán 4: Kiểm tra điều kiện MOV Input: Giá trị B là cận của MOV theo tiêu chuẩn EC5 Output: 0: Không thỏa mãn điều kiện MOV; 1: Thỏa mãn MOV (1) t = 1, ok= 1; (2) for i = 1 to B do T = t.p (modN) If (t==1){ok=0; return ok;} (3) return ok; 2.2.4 Thuật toán sinh đường cong ngẫu nhiên Thuật toán 5: Sinh đường cong ngẫu nhiên Input: Số nguyên tố p Output: Chuỗi SEED và , pA B xác định E trên p . Tính trước 2logt p    ,  1 / 256s t     , 256.h t s  (1) Chọn một chuỗi bít SEED có độ dài ít nhất là 256 bít. Gọi g là độ dài theo bít của SEED. (2) Tính H=SHA256(SEED), gọi 0 c là h bít bên phải của H (3) 0W là h bít nhận được bởi việc thiết lập bít ngoài cùng bên trái của 0 c thành 0 (nhằm đảm bảo r < p) (4) Với i= 1 đến s tính   W 256 mod 2gi SHA SEED i  (5) 0 1W W W ..... Ws (6) Với 1 2.... tw w w là các bít của W từ trái qua phải. Tính số nguyên 1 1 2 t i i i r w    . (7) Chọn , pA B sao cho 2 3(mod )rB A p (A, B không nhất thiết phải chọn ngẫu nhiên). (8) Nếu 3 24 27 0 (mod ),A B p  chuyển sang bước 1. (9) Đường cong được chọn trên p là E: 2 3y x Ax B   . (10) Return (SEED, A, B). 2.2.5 Thuật toán kiểm tra đường cong được sinh ngẫu nhiên Thuật toán 6: Kiểm tra đường cong được sinh ngẫu nhiên Input: Chuỗi bít SEED có độ dài là g-bít và , pA B . Output: Chấp nhận hoặc không chấp nhận tham số đầu vào. 18 Tính trước  2 , t l / 256 , 256.t log p s h t s           (1) Tính H= SHA256(SEED), gọi 0c là h bít bên phải của H (2) 0 W là h bít nhận được bởi việc thiêt lập bít ngoài cùng bên trái của 0c thành 0. (3) Với i= 1 đến s thực hiện: Tính   g SHA256 SEED mod 2iW i  (4) ' 0 1 ... sW W W W (5) Với 1 2.... tw w w là các bít của 'W từ trái qua phải. Tính số nguyên 1 1 ' 2 t i i i r w    (6) Nếu 2 3( d )r B A mo p  thì chấp nhận, ngược lại không chấp nhận tham số đầu vào. 2.2.6 Thuật toán tính số điểm của đường cong elliptic Định lý Hasse: Cho E là một đường cong elliptic trên trường hữu hạn p . Khi đó bậc của E( p ) thỏa mãn:   1 # 2pp E p   (2.1) Đặt t =   1 # pp E  . Khi đấy mối quan hệ giữa tự đồng cấu Frobenius với số điểm của đường cong elliptic E trên trường hữu hạn p . Thuật toán 7: Tỉnh số điểm của đường cong _ Input: A,Bvà p xác định (E ) 2 3y x Ax B   trên p . Output: E( p ) = p+ 1- t . (1) Chọn tập các sổ nguyên tố  2,3, 5,...,S L sao cho: 4 l S l p   (2) Với l= 2 , Nếu gcd 3( , ) 1px Ax B x x    thì ta có  t 0 mod 2 . Ngược lại thì   1 mod 2t  . (3) Với mỗi số nguyên tố lẻ l S , thực hiện các bước sau đây: a) Tính  modlp p l với / 2lp l . b) Tính hoành độ x' của điểm:     2 2' ' p, , ( , )mod p l lx y x y P x y   19 Chú ý, trong thực tế đa thức chia l được thay bởi lf với công thức truy hồi sau đây: 4 2 0 2 3 2 10; 1; 1; 3 6 12 .f f f f xAxx B A       4 3 2 2 2 36 4 4( 5 20 5 4 8 )f x x Bx A x ABx B AA       3 2 3 2 1 1 2 1 2 3 3 1 1 1 ; 3, 2 1 ; 2, 2 m m m m m m m m m f f F f f m m i f F f f f f m m i                  (2.7)  2 22 1 2 1 . ; 2m m m m mf f f f f f m      Trong đó 3F x Ax B   . c) Với   1,2, ..., 1 / 2j l  thực hiện các bước sau: (i) Tính hoành độ jx của điểm    , , j jx y j x y (ii) Nếu 'x 0(mod )pj lx   thì chuyển sang bước iii. Còn không thì tiếp tục thử với giá trị tiếp theo của j. Nếu mọi giá trị của j trong đoạn  1, 1 /2 l    đã được thử thì sang bước d. (iii) Tính ' à y jy v . Nếu ' ) / 0(mod )j ly y y   thì (mod )t j l , còn không thì (mod ).t j l  d) Tính w sao cho 2 (mod )w p l nếu w không tồn tại thì 0(mod )t l . e) Nếu gcd(tử_số_của   ,p w lx x  ) = 1 thì 0(mod )t l . Còn không thì tính gcd(tử_số_của   / ,p w ly y y  ). Nếu gcd này là 1 thì t 2w (mod )l . Còn không thì 2 (mod )t w l  . (4) Sử dụng các giá trị (mod )t l đã tính ở bước 3 với mỗi l S và Định lý Phần dư Trung hoa để tính (mod )t l . Chọn giá trị t duy nhất thoả mãn 2t p (5) Trả về   1pE p t   . Đánh giá độ phức tạp của thuật toán Schoof: Các phép tính phức tạp nhất phải thực hiện trong mỗi bước tính (mod )t l là tính 2 (mod ), (mod ), (mod )p pl l lx w x w y w và 2 (mod )p ly w . Như vậy, với mỗi một số nguyên tố l, để tính (mod )t l yêu cầu cỡ 4 2 7(log ). (log ). (log ) (log )O p O p O p O p phép toán bít. Số lượng các số nguyên tố l xuất hiện là cỡ (log )O p , như vậy độ phức tạp tổng thể của thuật toán Schoof là cỡ 7 8(log ). (log ) (log )O p O p O p phép toán bít. 20 2.2.7 Thuật toán sinh tham số miền Hình 5: Lưu đồ thuật toán sinh tham số miền Xác định độ dài của N và p theo EC2, EC3 Sinh ngẫu nhiên điểm cơ sở OUTPUT: (p, A, B, G, N, h =1, SEED) Tính số điểm của đường cong: Sinh đường cong ngẫu nhiên Sinh số nguyên tố tất định p N is prime EC6 INPUT: EC4 2011 2020;y atm   : EE , ,pE S D A B  # pN E EC5 - + - + - + - + ( , )G GG x y   EC7 - + Thuật toán 8: Sinh tham số miền cho hệ mật đường cong elliptic Input: Số năm y trong khoảng 2011 -2020 và biến atm (bằng 1 xác định mức an toàn là ATM1, bằng 2 xác định ATM2). Output: Bộ tham số miền ( , , , , , , ).p A B G N h SEED (1) Dựa vào y và biến xác định mức an toàn atm để tính các giá trị cụ thể của độ dài khóa N và modulo p theo tiêu chuẩn EC2 và EC3. (2) Sử dụng một thuật toán tất định để sinh số nguyên tố p có thể chứng minh được theo độ dài đã xác định trong bước (1). Lưu lại p. (3) Sử dụng Thuật toán 5 để sinh đường cong ngẫu nhiên có thể kiểm tra được trong p . Lưu lại SEED, A, B. (4) Sử dụng Thuật toán 7 để tính số điểm của đường cong được sinh ngẫu nhiên: N=#E( p ). (5) Nếu N là hợp số thì quay lại bước (3). (6) [1]. Kiểm tra tiêu chuẩn EC6 về ước nguyên tố của N± 1, nếu không thỏa mãn thì quay về bước (3). 21 [2]. Kiểm tra tiêu chuẩn EC4 về đường cong bất quy tắc: Nếu N = p thì quay về bước (3). [3]. Kiểm tra tiêu chuẩn EC5 về điều kiện MOV, nếu không thỏa mãn thì quay về bước (3). (7) h =1 . (8) Sinh ngẫu nhiên một điểm cơ sở G( , )GG x y  . (9) Kiểm tra điểm cơ sở theo tiêu chuẩn EC7 ( 2 4 2 20,3 0(mod ),5 2 4 0(mod )G G G G Gx x p x Ax Bx A p    . Nếu không thỏa mãn thì quay về bước (8). (10) Trả về (p, A, B, G, N, h, SEED). 2.2.8 Thuật toán kiểm tra tính hợp lệ của tham số miền Thuật toán 9: Kiểm tra tính hợp lệ của tham số miền Input: Bộ tham sô miền (p, A, B, G, N, h, SEED). Output: "tham số miền hợp lệ" hoặc "tham số miền không hợp lệ" Kiểm tra độ dài theo bít của N theo tiêu chuẩn EC2. (1) Kiểm tra p là nguyên tố (dựa theo các bằng chứng nguyên tố đã được tạo ra trong quá trình sinh p từ Thuật toán 8). Kiểm tra độ dài của p theo tiêu chuẩn EC3. (2) Kiểm tra , , ,G G pA B x y  (3) Kiểm tra A, B có được dẫn xuất từ SEED không (theo Thuật toán 6 về việc kiểm tra đường cong được sinh ngẫu nhiên). (4) Kiểm tra 3 2(4 27 ) 0 (mod ).A B p (5) Kiểm tra tiêu chuẩn EC7  2 3 A modG G Gy x x B p   ; 20;3 0(mod )G Gx x A p  ;  4 2 25 2 4 0 modG G Gx Ax Bx A p   . (6) Kiểm tra N là nguyên tố và h = 1 theo tiêu chuẩn EC4. (7) Kiểm tra tiêu chuẩn EC6 về ước nguyên tố của N ± 1. (8) Kiểm tra NG   , (9) Kiểm tra điều kiện MOV theo tiêu chuẩn EC5. (10) Kiểm tra điều kiện đường cong bất quy tắc theo tiêu chuẩn EC4: N p . (11) Nếu một trong các bước kiểm tra trên cho kết quả sai thì trả về “tham số miền không hợp lệ” còn không thì trả về “tham số miền hợp lệ”. Kết luận chương Các kết quả cụ thể của chương 2: (1) Đã đưa ra các thuật toán phục vụ cho bài toán sinh tham số. 22 (2) Nghiên cứu bài toán sinh tham số an toàn cho hệ mật Elliptic theo các tiêu chuẩn ISO và IEEE. Các kết quả của chương này thu được khẳng định việc xây dựng bài toán tham số an toàn cho hệ mật có tính khả thi áp dụng vào bài toán thực tế được trình bài ở chương 3. CHƯƠNG 3 - ỨNG DỤNG TRONG BÀI TOÁN BẢO MẬT MẠNG RIÊNG ẢO 3.1. Phần mềm bảo mật mạng riêng ảo OpenVPN OpenVPN là một bộ chương trình tạo mạng riêng ảo (VPN) mã nguồn mở dựa trên giao thức bảo mật SSL/TLS. OpenVPN bao gồm 03 thành phần: thiết lập khóa, mã hóa/ giải mã bởi một thuật toán đối xứng, đảm bảo tính toàn vẹn dữ liệu bằng HMAC (dựa trên hàm băm mật mã). 3.2. Tích hợp giao thức trao đổi khóa EC-HMQV trong SSL Hugo Krawczyk đã đề xuất một biến thể đơn giản nhưng mạnh mẽ của MQV (tương ứng EC-MQV), và gọi là giao thức HMQV (tương ứng là EC-HMQV). Cũng giống như MQV, giao thức HMQV dựa trên giao thức Diffie-Hellman cơ bản. Điểm khác nhau giữa HMQV và MQV nằm trong việc tính toán khoá phiên có sử dụng hàm Hash. Thuật toán 10: Tính khóa chung của giao thức EC-HMQV Input: Tập các tham số hệ thống ( p, E, N, h, G) và các thông tin đã nhận được từ Bước 2 của A là , . , , . , . .A A Bs s G x x G y G và s G (tương tự của B là , . , , . , . .B B As s G y y G x G và s G ) Output: Khóa bí mật k và k’ cho thực thể A (và B) Thực thể A Thực thể B Bước 1: 2 log 2 p l        Bước 1: 2 log 2 p l        Bước 2: d (x.G, )A H B Bước 2: d ( . , )B H y G A Bước 3:   c . mod A A Ax d s N  Bước 3:   c . mod B B By d s N  Bước 4: A e ( . , )H y G A Bước 4: e ( . , )B H x G B Bước 5:     . .A A BQ c y G e s G     Bước 5:     . .B B AQ c x G e s G     Bước 6:    , ’ k k H Q Bước 6:    , ’ k k H Q 3.3. Tích hợp tham số an toàn hệ mật Elliptic Để sử dụng tham số do ta tự sinh ra trong bộ phần mềm OpenVPN. Ta phải chuyển đổi sang định dạng PEM và X.509 cho khóa bí mật và công khai. Tham số khóa bí mật sẽ 23 được sử dụng trong lược đồ chữ ký số ECDSA (cho việc kiểm tra chứng chỉ số của đối tác) và trong lược đồ trao đổi khóa EC- HMQV. Để làm được điều này, ta cần chỉnh sửa code của thư viện SSL như sau: (1). Do bộ thư viện SSL sử dụng các tham số hệ mật Elliptic theo các chuẩn của NIST, FIPS và SEClv2-2009 nên các số nguyên tố modulo ở dạng đặc biệt. Các phép tính liên quan đến modulo được cài đặt mặc định để sử dụng cho các số nguyên tố đó. Ta cần phải chỉnh sửa code trong file ec_cvt.c để bộ thư viện có thể tính toán được với các số nguyên tố modulo ngẫu nhiên do ta sinh ra. (2). Khai báo các tham số hệ mật Elliptic cần sử dụng trong file ec_curve.c. Sử dụng tiện ích ecparam.c để chuyển đổi tham số sang dạng PEM và chứng chỉ sổ X.509 hoặc PKCS12. 3.4 Mô hình thử nghiệm bảo mật VPN 3.4.1 Mô hình mạng Hình 6: Mô hình bảo mật VPN 3. 4.2. Thiết lập cấu hình cho VPN Server # VPN Server Port 1194 Proto udp Dev tap0 # RootCA sử dụng tham số hệ mật Elliptic ca /etc/openvpn/key/ec_ca.crt # Khóa công khai/ bí mật sử dụng tham số Elliptic cert /etc/openvpn/key/server1.crt 24 key / etc/openvpn/key/server1.key # Tham số Diffie-Hellman cho trao đổi khóa EC-HMQV ecdh /etc/openvpn/key/ecdh.pem # Mã hóa và xác thực dùng AES và SHA2 cipher AES-256-CBC auth SHA256 ………… 3.4.3. Thiết lập cấu hình cho VPN Client # VPN Client: Linux – User02 Client Proto udp Dev tap0 # RootCA sử dụng tham số hệ mật Elliptic ca /etc/openvpn/key/ec_ca.crt # Khóa công khai/ bí mật sử dụng tham số Elliptic cert /etc/openvpn/key/user2.crt key / etc/openvpn/key/user2.key # Kết nối đến địa chỉ thật của VPN Server Remote 192.168.1.18 1194 # Mã hóa và xác thực dùng AES và SHA2 cipher AES-256-CBC auth SHA256 ………… 3.4.4. Kết quả và nhận xét Việc thay thế giao thức trao đổi khóa ECDH bởi EC-HMQV trong bộ thư viện OpenSSL là công việc phức tạp và khó khăn. Quá trình hoạt động của bộ chương trình bảo mật VPN sau khi đã tích hợp giao thức trao đổi khóa EC-HMQV và sử dụng tham số hệ mật Elliptic do Luận văn tạo ra. Kết luận Chương Các kết quả cụ thể trong Chương 3 bao gồm: (1). Nghiên cứu và áp dụng các thuật toán phục vụ cho bài toán sinh tham số theo các tiêu chuẩn ISO và IEEE. (2). Nghiên cứu chương trình sinh tham số an toàn hệ mật Elliptic theo các tiêu chuẩn đã đề xuất. (3). Ứng dụng phần mềm bảo mật mạng riêng ảo và áp dụng các tham số an toàn hệ mật Elliptic. Các kết quả thu được trong chương này khẳng định tham số sinh ra với giá trị p là số nguyên tố ngẫu nhiên có tính bảo mật hơn so với giá trị p là số nguyên tố đặc biệt và khả thi trong thực tế. 25 KẾT LUẬN A. Các kết quả đạt đưọc của Luận văn 1. Đã nghiên cứu cơ sở toán học hệ mật dựa trên đường cong elliptic và các tấn công đối với hệ mật Elliptic. 2. Đã nghiên cứu, đánh giá một số chuẩn về tham số. 3. Nghiên cứu được giá trị tham số p là số nguyên tố ngẫu nhiên là an toàn cho các tham số hệ mật Elliptic. 4. Đã nghiên cứu, đánh giá thuật toán tính số điểm của đường cong elliptic phục vụ cho bài toán sinh tham số an toàn. 5. Đã nghiên cứu về cấu trúc, nguyên lý hoạt động của một ứng dụng bảo mật mạng riêng ảo (trao đổi khóa, tham số an toàn ...). B. Hướng nghiên cứu tiếp theo 1. Nghiên cứu phương pháp tính số điểm của đường cong theo phương pháp nhân phức CM để tăng tính hiệu quả của thuật toán sinh tham số. 2. Cập nhật phương pháp tính độ dài khóa dựa trên điện toán đám mây.

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

  • pdfttlv_hoang_thi_xuan_8445.pdf
Luận văn liên quan