intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tóm tắt luận văn Thạc sỹ kỹ thuật: Nghiên cứu hệ mật đường cong elliptic và ứng dụng

Chia sẻ: Nguyễn Thị Ngọc Lựu | Ngày: | Loại File: PDF | Số trang:25

226
lượt xem
45
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tóm tắt luận văn Thạc sỹ kỹ thuật: Nghiên cứu hệ mật đường cong elliptic và ứng dụng 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.

Chủ đề:
Lưu

Nội dung Text: Tóm tắt luận văn Thạc sỹ kỹ thuật: Nghiên cứu hệ mật đường cong elliptic và ứng dụng

  1. 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. 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. 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. 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: y 2 z  a1 xyz  a1 yz3  x3  a2 x 2 z  a4 xz 2  a6 z 3 Với a1, a2, a3, a4, a6  (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: E : y 2  x3  Ax  B; với A, B p (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:    16  4 A3  27 B2  (1.3) Định nghĩa 3: Gọi f ( x, y)  x3  Ax  B  y 2 . Một điểm P( x, y)E được gọi là điểm không kì dị nếu df df có ít nhất một trong hai đạo hàm hoặc khác 0. Điều này có nghĩa là nếu cả hai đạo dx dy 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à: 4 A3 (1.4) j  j ( E )  1728 3 4 A  27 B 2 Đị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 x  u 2 x '  r; y  u3 y '  su 2 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 y 2  x3  B .  j = 1728: Đường cong Elliptic có dạng y 2  x3  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: 3j 2j (1.5) y 2  x3  x ; j  0,1728 1728  j 1728  j Đị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. 5 Định nghĩa 9: Đường cong Elliptic E định nghĩa trên p thỏa mãn # E  p   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 x, y p 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à E  p  .  Phép cộng điểm: Cho hai điểm P và P2 phân biệt trên đường cong Elliptic 1 E. Tổng của P và P2 , ký hiệu là P3 , được định nghĩa như sau: 1 Kẻ một đường thẳng đi qua P và P2 . Đường thẳng này sẽ cắt E tại một điểm thứ 3, 1 được ký hiệu là P3' . Tiếp tục kẻ đường thẳng đi qua P3' 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 P3 .  Phép nhân đôi một điểm: Cho P là một điểm trên E . Nhân đôi điểm P , ký 1 1 hiệu là P  P  2P , được định nghĩa như sau: Kẻ qua P một tiếp tuyến của E , tiếp 1 1 1 1 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à 2P . 1 Cho E là một đường cong Elliptic xác định bởi phương trình y 2  x3  x  B . Gọi P  ( x1 , y ) và P2  ( x2 , y2 ) là các điểm trên E với P , P2   . Khi đó P  P2  P  ( x3 , y3 ) với 1 1 1 1 3 x3 , y3 được tính như sau: (1) (Công thức cộng điểm) Nếu x1  x2 , thì y2  y1 x3  m2  x1  x2 , y3  m  x1  x3   y1 , với m  . x2  x1 (2) Nếu x1  x2 nhưng y1  y2 , thì P  P2   . 1 (3) (Công thức nhân đôi điểm) Nếu P  P2 và y1  0 , thì 1 3x12  A x3  m2  x1  x2 , y3  m  x1  x3   y1 với m  2 y1 (4) Nếu P  P2 và y1  0 , thì P  P2   . 1 1 (5) P    P ; P  E . 1 1 1 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: P  P2  P2  P với mọi P , P2 trên E . 1 1 1 (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: ( P  P2 )  P3  P   P2  P3  P , P2 , P3  E . 1 1 1
  6. 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,   P  P2     P     P2  , và có các hàm hữu tỉ (thương của các đa chức) 1 1 R1  x, y  , R2  x, y  với các hệ số trong sao cho   x, y    R1  x, y  , R2  x, y     x, y   E   Một tự đồng cấu   x, y   0 được gọi là tự đồng cấu tách được nếu đạo hàm R1'  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  0,1  1, 2  2y  3  3x 4  6 Ax 2  12 Bx  A2  4  4 y( x 6  5 Ax 4  20 Bx3  5 A2 x 2  4 ABx  8B 2  A3 )  2 m1   m 2 m  m1 m1 3 3 Với m  2  2m   2 y   m   m2 m1  m2 m1  1 2 2 Với m  2 . Cho P   x, y  là một điểm trên đường cong Elliptic y  x3  Ax  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 đó:    x  n  x, y   (1.8) nP   n2 ,    n  x    x, y 3   n  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 đó E  n n  n . Đặt: n  x   | xn  1 (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 x  1 không có nghiệm bội, do đó nó có n nghiệm trong . Do n
  7. 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  k  1 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: en : E  n  E  n  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: y 2  a1 xy  a3 y  x3  a2 x 2  a4 x  a6 Trên trường F biểu diễn bằng phương trình Weiretrass: y  a1 xy  a3 y  x3  a2 x 2  a4 x  a6 (1.11) Xét đường cong E trên trường nguyên tố hữu hạn Fp ( 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à 4a3  27b2  0mod 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. 8 Nếu hai điểm 1 (x1  y1 ) và 2 (x 2  y2 ) với x1  x 2 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  x 3 , y3  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 Fq 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 Fq . Nếu đặc số của trường p  2 hoặc p  3 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 Fq . 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 đó: x 3   2  x1 – x 2 , y3    x1 – x 3  – y1 , Với:  y 2 – y1   x 2 – x1  Khi P ≠ Q( nếu x1 = x2 th ì  là hệ số góc đường  thẳng qua P và Q) (1.17)     3x 2  a  2 y Khi P = Q (  là đạo hàm của đường cong tại P) (1.18)  1
  9. 9 2 1 R Q P R 2P P P+ Q -1 -2 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 Q E : k P  P  P  P P ( k phép cộng điểm P).
  10. 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 Fq 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 F2r 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 F2r có thể bị tấn công bởi MOV, trong khi các đường cong trên trường Fp (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à 2 g  2m . Khi đó:
  11. 11  Tập tất cả các cặp nghiệm (x, y) của phương trình y2  ax  x 3  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 y2  ax  x 3  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à: N   i niei 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: P, Q  E ( p ) , ord ( P)  N , gcd( N , p)  1 , Q  kP Output: k (mod N ) (1). Chọn một điểm ngẫu nhiên T  E( pm ) (2). Tính bậc M của T
  12. 12 (3). Đặt d  gcd( M , N ) , đặt T1  ( M / d )T . Khi đó T1 có bậc d chia hết cho N , vậy T1  E  N  (4). Tính  1  eN ( P, T1 ) và  2  eN ( P, T2 ) . Khi đó cả  1 ,  2 đều thuộc vào d  * pm (5). Giải bài toán log rời rạc  2   1k trong * pm . Kết quả cho ta k (mod 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 k (mod 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 P , P2 ,..., Pn , sau đó chọn một 1 đườ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 r tính. Nghĩa là thỏa mãn quan hệ  n P  0 . Tuy nhiên, xác suất để chúng phụ thuộc tuyến i 1 i i 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ố a  p khi biết g và g a 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 g , g a , g b . Tính g ab ?   DDH: Cho g , g a , g b , g c . 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. 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ức tạp của thuật toán Yêu cầu Ghi chú pháp trong nhóm có bậc là N bộ nhớ 1 Pohlig - O K với K là ước nguyên tố Nhỏ Hiệu quả nếu N chỉ có Hellman lớn nhất của N các ước nguyên tố nhỏ. 2 MOV ~ DLP   * pm 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 O(d .log p ) với d là ước của  p  Yêu cầu giả thuyết dựa vào 3 O  mạnh, cần bộ nhớ lớn p d  p  d một số giả thuyết DH 5 Tấn công Phụ thuộc vào cách cài đặt cụ Nhỏ Thời gian đa thức theo cài đặt thể 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. 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. 15 Cho E là đường cong y 2  x3  1 trên Fq, với q ≡ 2 (mod 3). Theo mệnh đề, E là siêu kì dị. Cho   Fq2 là một căn nguyên thủy bậc ba của đơn vị. Định nghĩa ánh xạ  : E( Fq )  E( Fq ),  x, y   x, y  ,  ()   . 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ó:   M4  mA1mB1 mB mAM = M  Nhưng ta cần giải thích thực tế rằng mA1 , số nguyên biểu diễn nghịch đảo của mA, và   mA là khử nhau. Ta có mA1 mA (mod N), vậy mA1 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 R  E Fq .    Do đó, mA1 mAR = (1+kN)R = R + k ∞ = R.  Áp dụng điều này với R = mBM, ta thấy M3 = mA1 mB mAM = mBM.   Tương tự, mB1 và mB khử nhau, vậy M4 = mB1 mBM = M.   Tên trộm Eve biết E(Fq) và các điểm mAM, mBmAM và mBM. Đặt a = mA1 , b = mB1 , 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. 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ộ  p , A, B, G, N , h, SEED  , trong đó:  p>3 là số nguyên tố, xác định trường hữu hạn cơ sở p .  E : y 2  x3  Ax  B với A, B  p  Phần tử sinh G   xG , yG  có bậc nguyên tố là N trên E , xG , yG  E ( p ) và N  # E( p ).  Đồ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  p , A, B, G, N , h, SEED  Output: (Q – điểm công khai, d – khóa bí mật) (1) Sinh d  R 0, N  1 . 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   xQ , yQ   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  p , A, B, G, N , h, SEED  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  p , A, B, G, N , h, SEED  , 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 xQ , yQ  p (2) Kiểm tra y 2  x3Q AxQ  B p (3) Kiểm tra rằng Q trong . (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. 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à A, B p xác định E trên p . Tính trước t  log 2 p  , s   t  1 / 256 , h  t  256.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 c0 là h bít bên phải của H (3) W0 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 c0 thành 0 (nhằm đảm bảo r < p) (4)  Với i= 1 đến s tính Wi  SHA256  SEED  i  mod 2 g  (5) W  W0 W1 ..... Ws t (6) Với w1w2 ....wt là các bít của W từ trái qua phải. Tính số nguyên r   wi 2i 1 . i 1 A, B  p sao cho rB  A (mod p) (A, B không nhất thiết phải chọn 2 3 (7) Chọn ngẫu nhiên). (8) Nếu 4 A3  27B 2  0 (mod p), chuyển sang bước 1. (9) Đường cong được chọn trên p là E: y 2  x3  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 à A, B  p . Output: Chấp nhận hoặc không chấp nhận tham số đầu vào.
  18. 18 Tính trước t  log2 p  , s   t  l  / 256 , h  t  256.s     (1) Tính H = SHA256(SEED), gọi c0 là h bít bên phải của H (2) W0 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 c thành 0. 0 (3) Với i= 1 đến s thực hiện: Tính Wi  SHA256  SEED  i  mod 2g  (4) W '  W0 W1 ... Ws t r '   wi 2i 1 Với w1w2 ....wt là các bít của W từ trái qua phải. Tính số nguyên ' (5) i 1 (6) Nếu r B 2  A3 (mod 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: p 1 # E  p  2 p (2.1) Đặt t = p  1  # E  p  . 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 , B v à p xác định ( E ) y 2  x3  Ax  B trên p . Output: E( p ) = p+1-t. (1) Chọn tập các sổ nguyên tố S  2,3, 5,..., L sao cho:  lS l 4 p (2) Với l= 2 , Nếu gcd ( x3  Ax  B, x p  x)  1 thì ta có t  0  mod 2  . Ngược lại thì t  1  mod 2  . (3) Với mỗi số nguyên tố lẻ l  S , thực hiện các bước sau đây: p  p  mod l  p l/2 a) Tính l với l . b) Tính hoành độ x' của điểm: x , y   x p2  , y p  Pl ( x, y)mod  l 2 ' '
  19. 19 Chú ý, trong thực tế đa thức chia  l được thay bởi f l với công thức truy hồi sau đây: f 0  0; f1  1; f 2  1; f3  3x 4  6 Ax 2  12 Bx  A2 . f 4  4( x6  5 Ax 4  20Bx3  5 A2 x 2  4 ABx  8B 2  A3 )  f m 2 f m  F 2 f m1 f m1; m  3, m  2i  1 3 3 f 2 m1   2  F f m1 f m  f m1 f m1; m  2, m  2i 3 3 (2.7) f   f m 2 f m1  f m2 f m1  . f m ; m  2 2 2 Trong đó F  x3  Ax  B . c) Với j  1, 2, ...,  l  1 / 2 thực hiện các bước sau: (i) Tính hoành độ x j của điểm  x j , y j   j  x, y  (ii) Nếu x '  x jp  0(mod l ) 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,  l  1 /2  đã được thử thì sang bước d.   (iii) Tính y 'và y j . Nếu y '  y j ) / y  0(mod l ) thì t  j (mod l ) , còn không thì t   j (mod l ). d) Tính w sao cho w2  p(mod l ) nếu w không tồn tại thì t  0(mod l ) .   e) Nếu gcd(tử_số_của x p  xw , l ) = 1 thì t  0(mod l ) . Còn không thì tính gcd(tử_số_của  y p   yw  / y , l ). Nếu gcd này là 1 thì t  2w (mod l ) . Còn không thì t  2w(mod l ) . (4) Sử dụng các giá trị t (mod l ) đã tính ở bước 3 với mỗi l  S và Định lý Phần dư Trung hoa để tính t (mod  l ) . Chọn giá trị t duy nhất thoả mãn t  2 p (5) Trả về E  p   p 1 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 t (mod l ) là tính 2 2 x p (mod wl ), x p (mod wl ), y(mod wl ) và y p (mod wl ) . Như vậy, với mỗi một số nguyên tố l, để tính t (mod l ) yêu cầu cỡ O(log p).O(log 4 p).O(log 2 p)  O(log 7 p) phép toán bít. Số lượng các số nguyên tố l xuất hiện là cỡ O(log p) , như vậy độ phức tạp tổng thể của thuật toán Schoof là cỡ O(log p).O(log 7 p)  O(log8 p) phép toán bít.
  20. 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 INPUT: 2011  y  2020; atm Xác định độ dài của N và p theo EC2, EC3 Sinh số nguyên tố tất định p Sinh đường cong ngẫu nhiên E p : SEED, A, B Tính số điểm của đường cong: N  #E p  N is prime - + EC6 - + EC4 - + EC5 - + Sinh ngẫu nhiên điểm cơ sở G ( xG , yG )   EC7 - + OUTPUT: (p, A, B, G, N, h =1, SEED) 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).
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2