1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu hệ mật đường cong elliptic và ứng dụng (tt)

25 76 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 1,17 MB

Nội dung

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 Luận văn 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 bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thơng Vào lúc: ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện Học viện Cơng nghệ Bưu Viễn thơng MỞ ĐẦU Lý chọn đề tài Sự phát triển cơng nghệ thơng tin, truyền thơng nói chung Internet nói riêng giúp cho việc trao đổi thơng tin nhanh chóng, dễ dàng Do số vấn đề phát sinh thơng tin bị trộm cắp, sai lệch, giả mạo Điều ảnh hưởng đến tốc chức, công ty hay quốc gia Để giải tình hình an tồn thơng tin đặt cấp thiết Kỹ thuật mật mã giải pháp an tồn truyền thơng Các nhà khoa học phát minh hệ mật ma nhằm che dấu thong tin làm rõ chúng để tránh kẻ cố tình phá hoạt hệ mật: RSA, Elgamal … Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu Luận văn: - Cơ sở toán học hệ mật dựa đường cong Elliptic - Các công độ phức tạp công 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 Luận văn: - Luận văn tập trung tìm hiểu đánh giá công hệ mật đường cong Elliptic, tìm hiểu số hệ mật đường cong Elliptic - Dựa sở lý thuyết 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õ phương pháp công hệ mật đường cong Elliptic - Ứng dụng toán bảo mật mạng cụ thể Bố cục luận văn: Luân văn gồm 03 chương với phần mở đầu, kết luận danh mục: Chương 1: Tổng quan hệ mật đường cong Elliptic Chương 2: Mật mã đường cong Elliptic Chương 3:Ứng dụng 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 4 Một đường cong Elliptic dạng Weierstrass đầy đủ tập tất điểm với tọa độ x, y, z thỏa mãn phương trình: (1.1) y z  a1 xyz  a1 yz3  x3  a2 x z  a4 xz  a6 z Với a1, a2, a3, a4, a6  Phương trình đường cong Elliptic dạng Weierstrass rút gọn biểu diễn phương trình: (1.2) E : y  x3  Ax  B; với A, B p Định nghĩa 2: Biệt thức đường cong E xác định công thức:    16  A3  27 B2  (1.3) Định nghĩa 3: Gọi f ( x, y)  x3  Ax  B  y Một điểm P( x, y)E gọi điểm khơng kì dị có hai đạo hàm df df khác Điều có nghĩa hai đạo dx dy hàm điểm P coi điểm kì dị Định nghĩa 4: Đường cong Elliptic E coi đường cong khơng kì dị tất điểm khơng kì dị Ngược lại, có điểm kì dị đường cong coi đường cong kì dị Định nghĩa 5: Đại lượng j – bất biến đường cong E   là: (1.4) A3 j  j ( E )  1728 A  27 B Định nghĩa 6: Hai đường cong E E’ xác định phương trình Weierstrass rút gọn với biến số tương ứng (x, y) (x’, y’) gọi đẳng cấu trường tồn số r , s, t u * cho thực đổi biến x  u x '  r; y  u3 y '  su x '  t E biến thành E’ Có hai giá trị đặc biệt j – bất biến là:  j = 0: Khi đường cong Elliptic có dạng y  x3  B  j = 1728: Đường cong Elliptic có dạng y  x3  Ax Định nghĩa 7: Nếu hai đường cong Elliptic khác xác định trường j – bất biến ta gọi chúng “xoắn đơi” (twist) Đường cong xoắn đôi với đường cong với j – bất biến j có dạng: y  x3  (1.5) 3j 2j x ; j  0,1728 1728  j 1728  j Định nghĩa 8: Một đường cong Elliptic E định nghĩa khơng có điểm bậc p có p gọi đường cong siêu kì dị Định nghĩa 9: Đường cong Elliptic E định nghĩa p thỏa mãn # E  p   p gọi đường cong bất quy tắc 1.1.2 Hệ mật dựa đường cong Elliptic Tập hợp tất điểm  x, y  với x, y p thỏa mãn phương trình đường cong E với điểm  vơ cực với phép tốn cộng tạo thành nhóm, gọi nhóm điểm đường cong Elliptic p , ký hiệu E  p   Phép cộng điểm: Cho hai điểm P1 P2 phân biệt đường cong Elliptic E Tổng P1 P2 , ký hiệu P3 , định nghĩa sau: Kẻ đường thẳng qua P1 P2 Đường thẳng cắt E điểm thứ 3, ký hiệu P3' Tiếp tục kẻ đường thẳng qua P3' vng góc với trục x , đường thẳng cắt E điểm thứ hai điểm P3  Phép nhân đơi điểm: Cho P1 điểm E Nhân đôi điểm P1 , ký hiệu P1  P1  2P1 , định nghĩa sau: Kẻ qua P1 tiếp tuyến E , tiếp tuyến cắt E điểm thứ hai, ký hiệu R Kẻ đường thẳng qua R vng góc với trục x , đường thẳng cắt E điểm thứ hai 2P1 Cho E đường cong Elliptic xác định phương trình y  x3  x  B Gọi P1  ( x1 , y ) P2  ( x2 , y2 ) điểm E với P1 , P2   Khi P1  P2  P3  ( x3 , y3 ) với x3 , y3 tính sau: (1) (Cơng thức cộng điểm) Nếu x1  x2 , x3  m2  x1  x2 , y3  m  x1  x3   y1 , với m  y2  y1 x2  x1 (2) Nếu x1  x2 y1  y2 , P1  P2   (3) (Công thức nhân đôi điểm) Nếu P1  P2 y1  , x3  m2  x1  x2 , y3  m  x1  x3   y1 với m  (4) Nếu P1  P2 y1  , P1  P2   (5) P1    P1; P1  E 3x12  A y1 Phép cộng điểm đường cong Elliptic E thỏa mãn tính chất sau: (1) Tính giao hoán: P1  P2  P2  P1 với P1 , P2 E (2) Tồn phần tử đơn vị: P    P với P E ' (3) Tồn phần tử nghịch đảo: Với điểm P cho trước E , tồn điểm P E cho P  P'   Điểm P ' thường kí hiệu  P (4) Tính kết hợp: ( P1  P2 )  P3  P1   P2  P3  P1 , P2 , P3  E 1.1.2.1 Các tự đồng cấu Một tự đồng cấu E nghĩa đồng cấu  : E ( )  E ( ) cho hàm hữu tỉ Nói cách khác,   P1  P2     P1     P2  , có hàm hữu tỉ (thương đa chức) R1  x, y  , R2  x, y  với hệ số cho   x, y    R1  x, y  , R2  x, y     x, y   E   Một tự đồng cấu   x, y   gọi tự đồng cấu tách đạo hàm R1'  x, y  không đồng không 1.1.2.2 Các điểm n – xoắn Các điểm xoắn, điểm có bậc hữu hạn, đóng vai trị quan trọng nghiên cứu đường cong Elliptic Cho E đường cong Ellip xác định trường Giả sử n số nguyên dương Theo [6] tập điểm n-xoắn định nghĩa bởi: (1.7) E  n  P  E | nP       1.1.2.3 Đa thức chia Đa thức chia thứ - m đường cong Elliptic E ,  m  [x, y, A, B] , xác định dãy cơng thức tốn học truy hồi sau đây:   0,1  1,  2y   3x  Ax  12 Bx  A2   y( x  Ax  20 Bx3  A2 x  ABx  8B  A3 )  m1   m 2 m3  m1 m3 1 Với m   2m   y   m   m2 m2 1  m2 m2 1  Với m  1 Cho P   x, y  điểm đường cong Elliptic y  x3  Ax  B (trên trường có đặc số khác 2), n số nguyên dương Khi đó:    x  n  x, y   nP   n2 ,    n  x    x, y 3  n   (1.8) 1.1.3 Cặp Weil Cho E đường cong Elliptic trường chia hết cho đặc số Khi E  n n  n Đặt:  n  x   | xn  cho n số ngun khơng (1.9) Là nhóm bậc n phần tử đơn vị Vì đặc số không chia n hết cho n , nên phương trình x  khơng có nghiệm bội, có n nghiệm Do vậy, n nhóm cyclic bậc n Một phần tử sinh  n gọi nguyên thủy bậc n Điều tương đương với việc nói  k  n chia hết cho k Định lý [6 – Theorem 3.9]: Cho E đường cong Elliptic xác định trường cho n số nguyên dương Giả sử đặc số trường khơng chia hết cho n Khi phép ghép cặp: (1.10) en : E  n  E  n  n 1.2 Đường cong Elliptic 1.2.1 Đặt vấn đề toán Đường cong elliptic tập hợp điểm có toạ độ  x, y  thoả mãn phương trình có dạng sau đây: y  a1 xy  a3 y  x3  a2 x  a4 x  a6 Trên trường F biểu diễn phương trình Weiretrass: y  a1 xy  a3 y  x3  a2 x  a4 x  a6 (1.11) Xét đường cong E 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 sau:   3  a  b (1.12) Hình 1: Một ví dụ đường cong Elliptic Định nghĩa: Giả sử  trường có đặc số khác khác xét đa thức 3  a  b (với a, b   ) Khi đường cong elliptic trường :   3  a  b tập hợp tất điểm (x, y) với x, y   cho (1.12) khơng có nghiệm bội tức 4a3  27b2  0mod p với phần tử O - điểm O gọi điểm vô hạn Tính chất đường cong elliptic: Nếu hai điểm 1 (x1  y1 ) 2 (x  y2 ) với x1  x nằm đường đường cong elliptic  , đường thẳng qua hai điểm 1  cắt điểm 3  x , y3  xác định thơng qua 1  nằm đường cong  Tiếp tuyến đường cong điểm P  x, y  đường cong  cắt đường cong elliptic  điểm nằm đường  , điểm xác định thơng qua P 1.2.2 Đường cong elliptic trường hữu hạn Xét trường hữu hạn Fq q = p r phần tử trường hữu hạn Giả sử E đường cong elliptic định nghĩa Fq Nếu đặc số trường p  p  E cho phương trình (1.13) (1.14) Định lý: Gọi N số điểm đường cong elliptic định nghĩa Fq Khi N   q  1  q 1.2.3 Các phép toán đường cong Elliptic 1.2.3.1 Phép cộng Giả sử P = (x1, y1) Q (x2, y2) hai điểm E Nếu x1 = x2 y1 = - y2 ta định nghĩa P + Q = O Ngược lại P + Q = (x3, y3)  E đó: x    x1 – x , y3    x1 – x  – y1 , Với:  y – y1   x – x1       3x  a  y  Khi P ≠ Q( x1 = x2 th ì  hệ số góc đường thẳng qua P Q) (1.17) Khi P = Q (  đạo hàm đường cong P) (1.18) R Q P R 2P P -1 P+ Q -2 Hình 2: Phép cộng đường cong Elliptic Tính chất  Dễ thấy tập E với phép tốn cộng tạo thành nhóm Abelian:  Tính đóng: Nếu P, Q  E P + Q  E  Tính kết hợp: Nếu P, Q, R  E P + ( Q + R ) = R + ( Q + P )  Tồn phần tử trung hồ O: với P  E P + O = O + P = P (theo định nghĩa)  Tồn phần tử nghịch đảo: với P  x, y  E ln tồn phần tử P  x, - y   E để P + (-P) = O  Tính chất giao hốn: Nếu P, Q  E P + Q = Q + P 1.2.3.2 Phép nhân Phép nhân số nguyên k với điểm P thuộc đường cong elliptic E điểm Q xác định cách cộng k lần điểm P dĩ nhiên Q E : k P  P  P  P P ( k phép cộng điểm P) 10 Hình 3: Ví dụ phép nhân đôi đường cong Elliptic 1.2.4 Đếm số điểm đường cong Elliptic trường Fq 1.2.4.1 Định lý Hasse N số điểm E trường Fq (trường hữu hạn q phần tử) Khi đó: N –  q  1  q Từ định lý Hasse suy #E  q   q  – t t  q 1.2.4.2 Định nghĩa Bậc điểm G thuộc E số k dương bé cho kG = O; k = #E(Fq) G điểm sở E 1.2.5 Phương pháp chọn đường cong Elliptic phù hợp điểm sở 1.2.5.1 Trường Một đường cong elliptic trường hữu hạn tạo thành nhóm Abelian sử dụng mật mã học Một ví dụ việc chọn trường F2r giúp thực phép tính nhanh dễ dàng triển khai thiết bị cứng Tuy nhiên, đường cong trường F2r bị cơng MOV, đường cong trường Fp (p số nguyên tố lớn) lại chống lại kiểu cơng Một ý việc tính số điểm # E ( ) Tốc độ thuật tốn Shoof phụ thuộc vào kích thước đặc số trường K 1.2.5.2 Dạng đường cong elliptic Trên trường Fq có hai lớp đường cong elliptic dùng hệ mã hoá   supersingular Xét Fq có đặc số g  2m Khi đó: 11  Tập tất cặp nghiệm (x, y) phương trình y2  ax  x  bx  c với a, b, c  Fq a = (mod q) với điểm trung hoà O tạo thành đường cong elliptic dạng supersin gular  Tập tất cặp nghiệm (x, y) phương trình y2  ax  x  bx  c với a, b, c  Fq b = (mod q) với điểm trung hoà O tạo thành đườ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 phần tử từ Fq x, y, a (2) Tính b = y2 – (x3 + ax) (3) Kiểm tra 4a3 + 27b2 ≠ để đả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 không thoả mãn quay lại bước (5) Còn lại, đặt P = (x, y) đường cong y2 = x3 + ax +b đường cong cần chọn 1.2.6 Đánh giá công hệ mật đường cong Elliptic 1.2.6.1 Phương pháp Pohlig - Hellman Cho P, Q phần tử nhóm hữu hạn G bậc N Ta muốn tìm số nguyên k với kP  Q Giả sử biết phân tích thừa số nguyên tố N là: N   i niei Phương pháp Pohlig – Hellman thực tốt tất ước nguyên tố N nhỏ Nếu ước nguyên tố lớn xấp xỉ lớn N phương pháp Pohlig – Hellman khó áp dụng Vì lý này, hệ mật dựa logarith rời rạc, nói chung thường chọn bậc nhóm có chứa thừa số nguyên tố lớn 1.2.6.2 Tấn cơng MOV Thuật tốn 1: Tấn cơng MOV Input: P, Q  E ( p ) , ord ( P)  N , gcd( N , p)  , Q  kP Output: k (mod N ) (1) Chọn điểm ngẫu nhiên T  E( (2) Tính bậc M T pm ) 12 (3) Đặt d  gcd( M , N ) , đặt T1  ( M / d )T Khi T1 có bậc d chia hết cho N , T1  E  N  (4) Tính   eN ( P, T1 )   eN ( P, T2 ) Khi  ,  thuộc vào d  * pm (5) Giải toán log rời rạc    1k * pm Kết cho ta k (mod d ) (6) Lặp lại với điểm ngẫu nhiên T đến bội chung nhỏ số d khác thu N Khi ta xác định k (mod N ) 1.2.6.3 Phương pháp Xedni Thuật tốn tính số ngược nâng điểm P1 , P2 , , Pn , sau chọn đường cong Elliptic E  Q  chứa điểm nâng hy vọng chúng phụ thuộc tuyến r tính Nghĩa thỏa mãn quan hệ  n P  Tuy nhiên, xác suất để chúng phụ thuộc tuyến i 1 i i tính nhỏ 1.2.6.4 Các công dựa giả thuyết Diffie – Hellman Cho G nhóm Abel bậc nguyên tố p g phần tử sinh G Bài toán logarith rời rạc DLP G tốn tìm số a  p biết g g a G Nhiều hệ mật thiết kế dựa tốn DLP, nhiên hầu hết chúng có độ an toàn tương đương với biến thể yếu toán DLP Hai biến thể yếu quan trọng tốn DH – Tính tốn CDH 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 p hay không? 1.2.6.5 Các công cài đặt Kiểu công cài đặt thứ dựa điểm không hợp lệ đường cong Elliptic Nếu trình nhận xử lý điểm đường cong mà không thực việc kiểm tra xem có thực nằm đường cong cho hay khơng lược đồ bị công Dạng công thứ hai kiểu cơng phân tích lượng để khám phá khóa bí mật Hiệu kiểu cơng phụ thuộc vào cách cài đặt cụ thể 1.2.6.6 Nhận xét Tổng hợp phương pháp ta có bảng sau: 13 Bảng 1: So sánh phương pháp công hệ mật Elliptic Phương Độ phức tạp thuật tốn u cầu pháp nhóm có bậc N nhớ Pohlig - O K với K ước nguyên tố Nhỏ Hellman lớn N Ghi MOV ~ DLP Nhỏ Hiệu m nhỏ Xedni O( N ) - Không áp dụng thực tế Tấn công O(d log p ) với d ước  p  Yêu cầu giả thuyết O  mạnh, cần nhớ lớn dựa vào p d  p d  số giả thuyết DH 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 STT   * pm Hiệu N có ước nguyên tố nhỏ Kết luận chương Các kết mà chương đạt bao gồm: (1) Đã nghiên cứu tổng quan hệ mật Elliptic trường hữu hạn, nghiên cứu vấn đề đa thức chia, nhóm xoắn, tự đồng cấu, Weil pairing (2) Nghiên cứu, xem xét đánh giá độ phức tạp tính toán, yêu cầu nhớ khả áp dụng thực tế công hệ mật Elliptic CHƯƠNG – MẬT MÃ ĐƯỜNG CONG ELLIPTIC 2.1 Mật mã đường cong Elliptic 2.1.1 Thiết lập sở Alice muốn gửi văn bản, thường gọi rõ (Plaintext), tới Bob Cơ mã hóa văn để thu mã (Ciphertext) Để mã hóa văn bản, Alice sử dụng khóa mã hóa (Encryption key) Bob sử dụng khóa giải mã (Decryption key) để giải mã mã nhận Có hai cách mã hóa Trong mật mã đối xứng (Symmetric Encryption), khóa mã hóa khóa giải mã nhau, Một dạng khác mã hóa mật mã khóa cơng khai (Public Key Encryption), mật mã khơng đối xứng (Asymmetric Encryption) 14 Hình 4: Mơ mã hóa cơng khai 2.1.2 Nhúng rõ lên đường cong Nhúng rõ lên E biểu diễn lại rõ điểm E, nhờ thực tính tốn E Có số phương pháp để thực việc Trong có phương pháp “nhúng” (Imbeding) “mặt nạ” (Mask) 2.1.3 Logarith rời rạc đường cong Elliptic Định nghĩa: E đường cong Elliptic trường Fq B điểm E Khi tốn logarit rời rạc E (theo số B) toán, cho trước điểm P E , tìm số nguyên x  Z cho xB = P (nếu số x tồn tại) 2.1.4 Trao đổi khóa Diffie – Hellman Alice Bob muốn thống khóa chung mà họ sử dụng cho việc trao đổi liệu thông qua sơ đồ mã đối xứng Alice Bob thống đường cong elliptic E trường hữu hạn Fq cho toán logarithm rời rạc khó E(Fq) Thơng tin mà kẻ trộm Eve thấy đường cong E, trường hữu hạn Fq, điểm P, aP bP Do ta cần phải giải tốn sau: 2.1.4.1 Bài toán Diffie – Hellman Cho trước P, aP bP E(Fq), tính abP? Nếu Eve giải toán log rời rạc E(Fq), ta sử dụng P aP để tìm a Khi ta tính a(bP) để nhận abP Tuy nhiên, liệu có cách để tính abP mà khơng phải giải toán log rời rạc 2.1.4.2 Bài toán định Diffie – Hellman Cho trước P, aP bP E(Fq) cho trước điểm Q ∈ E(Fq) Khi có xác định Q = abP hay không? 15 Cho E đường cong y  x3  Fq, với q ≡ (mod 3) Theo mệnh đề, E siêu kì dị Cho   Fq2 nguyên thủy bậc ba đơn vị Định nghĩa ánh xạ  : E( Fq )  E( Fq ),  x, y   x, y  ,  ()   Bằng tính tốn trực tiếp ta β đẳng cấu 2.1.5 Mã hóa Massey – Omura Alice muốn gửi văn tới Bob qua kênh công khai Họ chưa thiết lập khóa riêng Một cách để thực điều sau Alice đặt văn cô vào hộp lắp khóa ta vào Cơ gửi hộp cho Bob, Bob lắp khóa anh vào sau gửi trả hộp lại cho Alice Alice tháo khóa gửi hộp lại cho Bob Khi Bob bỏ khóa ra, mở hộp đọc văn Ta M4 văn M, cách hình thức ta có: M4  mA1mB1 mB mAM = M Nhưng ta cần giải thích thực tế mA1 , số nguyên biểu diễn nghịch đảo mA, mA khử Ta có mA1 mA (mod N), mA1 mA = + kN với số nguyên k   Nhóm E(Fq) có cấp N, định lý Lagrange kéo theo NR  với R  E Fq Do đó, mA1 mAR = (1+kN)R = R + k ∞ = R Áp dụng điều với R = mBM, ta thấy M3 = mA1 mB mAM = mBM Tương tự, mB1 mB khử nhau, M4 = mB1 mBM = M Tên trộm Eve biết E(Fq) điểm mAM, mBmAM mBM Đặt a = mA1 , b = mB1 , P = mAmBM 2.1.6 Mã hóa cơng khai Elgamal Alice muốn gửi văn cho Bob, Anh chọn đường cong Elliptic E trường hữu hạn Fq cho tốn log rời rạc khó với E(Fq) Anh chọn điểm P E (thông thường thỏa thuận để cấp P số nguyên tố lớn) Anh chọn số nguyên bí mật s tính B = sP Để gửi văn cho Bob, Alice thực sau: (1) Tải khóa cơng khai Bob (2) Biểu diễn văn cô điểm M ∈ E(Fq) (3) Chọn số bí mật ngẫu nhiên k tính M1 = kP (4) Tính M2 = M + kB (5) Gửi M1, M2 cho Bob Bob giải mã việc tính: M = M2 – sM1 Việc giải mã thực 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 đường cong Elliptic Các tham số cho hệ mật đường cong Elliptic p , đó:  p>3 số nguyên tố, xác định trường hữu hạn sở p  p , A, B, G, N , h, SEED   E : y  x3  Ax  B với A, B   Phần tử sinh G   xG , yG  có bậc nguyên tố N E , xG , yG  E ( N  # E(   p p 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 kiểm tra cặp khóa đường cong Elliptic Thuật tố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 giữ bí mật phải khơng dự đốn (2) Tính điểm Q   xQ , yQ   dG (3) Trả cặp khóa (Q, d ) Q khóa cơng khai, d khóa bí mật Với tham số miền  p , A, B, G, N , h, SEED  khóa cơng khai Q kiểm tra tính hợp lệ theo thuật tốn Thuật tốn 3: Kiểm tra tính hợp lệ 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ệ” “Khóa cơng khai không hợp lệ” (1) Kiểm tra Q điểm  E xQ , yQ  p (2) Kiểm tra (3) y  x3Q AxQ  B Kiểm tra Q Kiếm tra NQ   p (4) (5) Nếu phép kiểm tra thất bại trả “khóa cơng khai khơng hợp lệ” cịn khơng trả “khóa cơng khai hợp lệ” 17 2.2.3 Thuật tố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 cận 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) (2) (3) t = 1, ok= 1; for i = to B T = t.p (modN) If (t==1){ok=0; return ok;} 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 A, B p xác định E p Tính trước t  log p  , s   t  1 / 256 , h  t  256.s (1) Chọn chuỗi bít SEED có độ dài 256 bít Gọi g độ dài theo bít SEED (2) Tính H=SHA256(SEED), gọi c0 h bít bên phải H W0 h bít nhận việc thiết lập bít ngồi bên trái c0 thành (3) (nhằm đảm bảo r < p)  (4) Với i= đến s tính Wi  SHA256  SEED  i  mod g (5) W  W0 W1 Ws  t (6) Với w1w2 wt bít W từ trái qua phải Tính số nguyên r   wi 2i 1 i 1 A, B  p (7) Chọn cho rB  A (mod p) (A, B không thiết phải chọn ngẫu nhiên) (8) Nếu A3  27B  (mod p), chuyển sang bước (9) Đường cong chọn (10) Return (SEED, A, B) p E: y  x3  Ax  B 2.2.5 Thuật toán kiểm tra đường cong sinh ngẫu nhiên Thuật toán 6: Kiểm tra đường cong sinh ngẫu nhiên Input: Chuỗi bít SEED có độ dài g-bít v A, B  Output: p Chấp nhận không chấp nhận tham số đầu vào 18 (1) Tính trước t  log2 p  , s   t  l  / 256 , h  t  256.s Tính H = SHA256(SEED), gọi c0 h bít bên phải H (2) W0 h bít nhận việc thiêt lập bít ngồi bên trái c thành 0 (3) Với i= đến s thực hiện:  Tính Wi  SHA256  SEED  i  mod 2g  W '  W0 W1 Ws (4) t r '   wi 2i 1 i 1 Với w1w2 wt bít W từ trái qua phải Tính số nguyên Nếu r B  A3 (mod p) chấp nhận, ngược lại khơng chấp nhận tham số đầu ' (5) (6) vào 2.2.6 Thuật tốn tính số điểm đường cong elliptic Định lý Hasse: Cho E đường cong elliptic trường hữu hạn mãn: p 1 # E  p  2 p Khi bậc E ( p  Khi mối quan hệ tự đồng cấu Frobenius với số điểm đường cong elliptic E trường hữu hạn p Thuật toán 7: Tỉnh số điểm đường cong _ Input: A , B v p xác định ( E ) y  x3  Ax  B E( p p ) = p+1-t (1) Chọn tập sổ nguyên tố S  2,3, 5, , L cho:  lS l 4 p (2) Với l= , Nếu gcd ( x3  Ax  B, x p  x)  ta có t   mod  Ngược lại t   mod  (3) Với số nguyên tố lẻ l  S , thực bước sau đây: p  p  mod l  p l/2 a) Tính l với l b) Tính hồnh độ x' điểm: x , y   x ' ' p2 ) thỏa (2.1) p Đặt t = p   # E  Output: p  , y p  Pl ( x, y)mod  l 19 Chú ý, thực tế đa thức chia  l thay f l với công thức truy hồi sau đây: f  0; f1  1; f  1; f3  3x  Ax  12 Bx  A2 f  4( x6  Ax  20Bx3  A2 x  ABx  8B  A3 )  f m f m3  F f m1 f m31; m  3, m  2i  f m1   3  F f m1 f m  f m1 f m1; m  2, m  2i (2.7) f   f m f m21  f m2 f m21  f m ; m  Trong F  x3  Ax  B c) Với j  1, 2, ,  l  1 / thực bước sau: (i) Tính hồnh độ x j điểm  x j , y j   j  x, y  (ii) Nếu x '  x jp  0(mod l ) chuyển sang bước iii Cịn khơng tiếp tục thử với giá trị j Nếu giá trị j đoạn 1,  l  1 /2  thử sang bước d (iii) Tính y 'và y j Nếu y '  y j ) / y  0(mod l ) t  j (mod l ) , cịn khơng t   j (mod l ) d) Tính w cho w2  p(mod l ) w khơng tồn t  0(mod l )   e) Nếu gcd(tử_số_của x p  xw , l ) = t  0(mod l ) Cịn khơng tính gcd(tử_số_của  y p   yw  / y , l ) Nếu gcd t  2w (mod l ) Cịn khơng t  2w(mod l ) (4) Sử dụng giá trị t (mod l ) tính bước với l  S Định lý Phần dư Trung hoa để tính t (mod  l ) Chọn giá trị t thoả mãn t  p (5) Trả E  p   p 1 t Đánh giá độ phức tạp thuật toán Schoof: Các phép tính phức tạp phải thực bước tính t (mod l ) tính 2 x p (mod wl ), x p (mod wl ), y(mod wl ) y p (mod wl ) Như vậy, với số nguyên tố l, để tính t (mod l ) yêu cầu cỡ O(log p).O(log p).O(log p)  O(log p) phép tốn bít Số lượng số ngun tố l xuất cỡ O(log p) , độ phức tạp tổng thể thuật toán Schoof cỡ O(log p).O(log p)  O(log8 p) phép tốn bít 20 2.2.7 Thuật tố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 N 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 N  #E Tính số điểm đường cong: p  N is prime - + EC6 - + EC4 + EC5 + Sinh ngẫu nhiên điểm 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 khoảng 2011 -2020 biến atm (bằng xác định mức an toàn ATM1, xác định ATM2) Output: Bộ tham số miền ( p , A, B, G, N , h, SEED) (1) (2) (3) Dựa vào y biến xác định mức an toàn atm để tính giá trị cụ thể độ dài khóa N modulo p theo tiêu chuẩn EC2 EC3 Sử dụng thuật toán tất định để sinh số nguyên tố p chứng minh theo độ dài xác định bước (1) Lưu lại p Sử dụng Thuật toán để sinh đường cong ngẫu nhiên kiểm tra p Lưu lại SEED, A, B (4) Sử dụng Thuật toán để tính số điểm đường cong sinh ngẫu nhiên: N=#E( p ) (5) (6) Nếu N hợp số quay lại bước (3) [1] Kiểm tra tiêu chuẩn EC6 ước nguyên tố N± 1, khơng thỏa mãn quay bước (3) 21 [2] Kiểm tra tiêu chuẩn EC4 đường cong bất quy tắc: Nếu N = p quay bước (3) [3] Kiểm tra tiêu chuẩn EC5 điều kiện MOV, khơng thỏa mãn quay bước (3) (7) h =1 (8) Sinh ngẫu nhiên điểm sở G( xG , yG )   (9) (10) Kiểm tra điểm sở theo tiêu chuẩn EC7 ( xG  0,3xG2  0(mod p),5 xG4  AxG2  4BxG  A2  0(mod p) Nếu không thỏa mãn quay bước (8) Trả (p, A, B, G, N, h, SEED) 2.2.8 Thuật toán kiểm tra tính hợp lệ tham số miền Thuật tốn 9: Kiểm tra tính hợp lệ 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ệ" "tham số miền không hợp lệ" Kiểm tra độ dài theo bít N theo tiêu chuẩn EC2 (1) Kiểm tra p nguyên tố (dựa theo chứng nguyên tố tạo trình sinh p từ Thuật toán 8) Kiểm tra độ dài p theo tiêu chuẩn EC3 A, B, xG , yG  p (2) Kiểm tra (3) Kiểm tra A, B có dẫn xuất từ SEED khơng (theo Thuật tốn việc kiểm tra đường cong sinh ngẫu nhiên) (4) Kiểm tra (4A  27B )  (modp) (5) Kiểm tra xG  0;3x G tiêu chuẩn EC7 yG2  xG3  AxG  B  mod p   A  0(mod p) 5x  Ax  4BxG  A   mod p  ; G G ; (6) (7) (8) (9) Kiểm tra N nguyên tố h = theo tiêu chuẩn EC4 Kiểm tra tiêu chuẩn EC6 ước nguyên tố N ± Kiểm tra NG   , Kiểm tra điều kiện MOV theo tiêu chuẩn EC5 (10) (11) Kiểm tra điều kiện đường cong bất quy tắc theo tiêu chuẩn EC4: N  p Nếu bước kiểm tra cho kết sai trả “tham số miền khơng hợp lệ” cịn khơng trả “tham số miền hợp lệ” Kết luận chương Các kết cụ thể chương 2: (1) Đã đưa thuật toán phục vụ cho toán sinh tham số 22 (2) Nghiên cứu toán sinh tham số an toàn cho hệ mật Elliptic theo tiêu chuẩn ISO IEEE Các kết chương thu khẳng định việc xây dựng toán tham số an tồn cho hệ mật có tính khả thi áp dụng vào tốn thực tế trình chương CHƯƠNG - Ứ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 chương trình tạo mạng riêng ảo (VPN) mã nguồn mở dựa 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ã thuật tốn đối xứng, đảm bảo tính tồn vẹn liệu HMAC (dựa hàm băm mật mã) 3.2 Tích hợp giao thức trao đổi khóa EC-HMQV SSL Hugo Krawczyk đề xuất biến thể đơn giản mạnh mẽ MQV (tương ứng EC-MQV), gọi giao thức HMQV (tương ứng EC-HMQV) Cũng giống MQV, giao thức HMQV dựa giao thức Diffie-Hellman Điểm khác HMQV MQV nằm việc tính tốn khố phiên có sử dụng hàm Hash Thuật tốn 10: Tính khóa chung giao thức EC-HMQV Input: Tập tham số hệ thống ( p, E, N, h, G) thông tin nhận từ Bước A s A , s A G, x, x.G, y.G sB G (tương tự B sB , sB G, y, y.G, x.G s A.G ) Output: Khóa bí mật k k’ cho thực thể A (và B) Thực thể A Bước 1:  log l  Bước 2: p  Thực thể B Bước 1:  log l  d A  H (x.G, B) Bước 2: d B  H ( y.G, A) Bước 3: c A  x  d A s A  mod N  Bước 3: c B  y  d B sB  mod N  Bước 4: eA  H ( y.G, A) Bước 4: eB  H ( x.G, B) Bước 5: Q  cA  y.G   eA  sB G  Bước 5: Q  cB  x.G   eB  s A G  Bước 6:  k , k’  k , k’  H Q Bước 6: p   H Q 3.3 Tích hợp tham số an toàn hệ mật Elliptic Để sử dụng tham số ta tự sinh phần mềm OpenVPN Ta phải chuyển đổi sang định dạng PEM X.509 cho khóa bí mật cơng khai Tham số khóa bí mật 23 sử dụng lược đồ chữ ký số ECDSA (cho việc kiểm tra chứng số đối tác) lược đồ trao đổi khóa EC- HMQV Để làm điều này, ta cần chỉnh sửa code thư viện SSL sau: (1) Do thư viện SSL sử dụng tham số hệ mật Elliptic theo chuẩn NIST, FIPS SEClv2-2009 nên số nguyên tố modulo dạng đặc biệt Các phép tính liên quan đến modulo cài đặt mặc định để sử dụng cho số nguyên tố Ta cần phải chỉnh sửa code file ec_cvt.c để thư viện tính tốn với số nguyên tố modulo ngẫu nhiên ta sinh (2) Khai báo tham số hệ mật Elliptic cần sử dụng file ec_curve.c Sử dụng tiện ích ecparam.c để chuyển đổi tham số sang dạng PEM chứng sổ X.509 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 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 xác thực dùng AES 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 thật VPN Server Remote 192.168.1.18 1194 # Mã hóa xác thực dùng AES SHA2 cipher AES-256-CBC auth SHA256 ………… 3.4.4 Kết nhận xét Việc thay giao thức trao đổi khóa ECDH EC-HMQV thư viện OpenSSL công việc phức tạp khó khăn Q trình hoạt động chương trình bảo mật VPN sau tích hợp giao thức trao đổi khóa EC-HMQV sử dụng tham số hệ mật Elliptic Luận văn tạo Kết luận Chương Các kết cụ thể Chương bao gồm: (1) Nghiên cứu áp dụng thuật toán phục vụ cho toán sinh tham số theo tiêu chuẩn ISO IEEE (2) Nghiên cứu chương trình sinh tham số an toàn hệ mật Elliptic theo tiêu chuẩn đề xuất (3) Ứng dụng phần mềm bảo mật mạng riêng ảo áp dụng tham số an toàn hệ mật Elliptic Các kết thu chương khẳng định tham số sinh với giá trị p số nguyên tố ngẫu nhiên có tính bảo mật so với giá trị p số nguyên tố đặc biệt khả thi thực tế 25 KẾT LUẬN Các kết đạt đưọc Luận văn Đã nghiên cứu sở toán học hệ mật dựa đường cong elliptic công hệ mật Elliptic Đã nghiên cứu, đánh giá số chuẩn tham số Nghiên cứu giá trị tham số p số nguyên tố ngẫu nhiên an toàn cho tham số hệ mật Elliptic Đã nghiên cứu, đánh giá thuật tốn tính số điểm đường cong elliptic phục vụ cho tốn sinh tham số an tồn Đã nghiên cứu cấu trúc, nguyên lý hoạt động ứng dụng bảo mật mạng riêng ảo (trao đổi khóa, tham số an tồn ) B Hướng nghiên cứu Nghiên cứu phương pháp tính số điểm đường cong theo phương pháp nhân phức CM để tăng tính hiệu thuật tốn sinh tham số Cập nhật phương pháp tính độ dài khóa dựa điện toán đám mây A ... giá công hệ mật đường cong Elliptic, tìm hiểu số hệ mật đường cong Elliptic - Dựa sở lý thuyết 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... Đối tượng nghiên cứu Luận văn: - Cơ sở toán học hệ mật dựa đường cong Elliptic - Các công độ phức tạp công 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 Luận... Elliptic Chương 2: Mật mã đường cong Elliptic Chương 3 :Ứng dụng 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

Ngày đăng: 19/03/2021, 17:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w