ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
MỤC LỤC MỤC LỤC...................................................................................................................................1 DANH MỤC HÌNH VẼ VÀ BẢNG...........................................................................................5 DANH SÁCH CÁC TỪ VIẾT TẮT...........................................................................................5 Chương I : GIỚI THIỆU VỀ MAPLE........................................................................................8 Giới thiệu chung..........................................................................................................................8 1.1. Giới thiệu chung...................................................................................................................8 Hình 1.1: Giới thiệu về phần mềm Maple...................................................................................8 1.1.1. Lịch sử phát triển..............................................................................................................9 1.1.2. Các tính năng cơ bản của Maple.....................................................................................10 1.1.3. Cấu trúc và giao diện......................................................................................................11 Hình 1.2: Giao diện của maple..................................................................................................11 1.2. Lập trình tính toán với Maple............................................................................................11 1.3. Lưu giữ và trích xuất dữ liệu..............................................................................................12 1.4. Các môi trường làm việc trong Maple...............................................................................12 1.5. Lệnh của Maple..................................................................................................................12 1.6. Các dấu phép toán, hàm và hằng số cơ bản.......................................................................13 Hình 1.3: Vẽ đồ thị bằng phần mềm Maple..............................................................................21 Chương II : HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC......................................................22 2.1. Đường cong Elliptic...........................................................................................................22 2.1.1. Mở đầu và đặt bài toán....................................................................................................22 2.1.2. Định nghĩa.......................................................................................................................22 2.1.3. Tính chất của đường cong elliptic...................................................................................23 2.1.4. Đường cong elliptic trên trường hữu hạn........................................................................24 2.1.5. Các phép toán trên đường cong Elliptic..........................................................................24 2.1.5.1. Phép cộng.....................................................................................................................25 Hình 2.1: phép cộng trên đường cong Elliptic.........................................................................26 2.1.5.2. Phép nhân.....................................................................................................................27 2.1.6. Đếm số điểm trên đường cong elliptic trên trường Fq....................................................27 2.1.7. Trường K.........................................................................................................................28 2.1.8. Dạng của đường cong elliptic.........................................................................................28 2.1.9. Phương pháp lựa chọn....................................................................................................29 Hình 2.2: Đường cong Elliptic..................................................................................................30 2.1.10. Các đường cong elliptic................................................................................................30 Hình 2.3:Đồ thị phương trình y2 = x3 – 6x..............................................................................31 Hình 2.4:phần tử nghịch đảo của P...........................................................................................32 Hình 2.5: PQ cắt đồ thị tại một điểm duy nhất R......................................................................32
HỌC VIỆN KỸ THUẬT MẬT MÃ
-1-
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Hình 2.6: Trường hợp PQ là tiếp tuyến của đồ thị tại P...........................................................33 Hình 2.7:Đồ thị minh họa P+P=-R............................................................................................33 Hình 2.8: Đồ thị minh họa P+P=-P...........................................................................................34 2.2. Hệ mật trên đường cong elliptic.........................................................................................34 2.2.1. Mở đầu và đặt bài toán....................................................................................................34 2.2.2. Nhúng bản rõ lên đường cong.........................................................................................35 2.2.3. Logarit rời rạc trên đường cong Elliptic( Discrete logarithm on Elliptic)......................37 2.2.4. Vấn đề trao đổi khoá Diffie- Hellman(D- H) trên Elliptic..............................................37 2.2.5. Hệ mật Elgamal trên đường cong Elliptic.......................................................................38 2.2.6. Hệ mật mã dựa trên đường cong elliptic.........................................................................39 2.2.7. Giao thức SSL (Secure Sockets Layer)...........................................................................39 2.2.7.1. Quá trình bắt tay đầy đủ dựa vào mã hoá RSA............................................................40 Hình 2.9 : Quá trình bắt tay dựa vào RSA................................................................................40 2.2.7.2. Quá trình bắt tay đầy đủ dựa vào mã hoá ECC............................................................41 Hình 2.10: Quá trình bắt tay dựa vào EEC...............................................................................41 2.2.7.3. Mã hóa công khai trong SSL trong hai chế độ.............................................................42 2.2.7.4. So sánh.........................................................................................................................42 Bảng 1: So sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL..................................43 Chương III. MỘT VÀI ỨNG DỤNG HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC............44 3.1. Lược đồ chữ ký số trên đường cong elliptic (Elliptic Curve Signature Algorithm ) ECDSA 44 3.1.1. Lược đồ ký ECDSA........................................................................................................44 3.1.2. Độ an toàn của sơ đồ chữ ký ECDSA.............................................................................45 3.2. Một số chuẩn sử dụng hệ mật ECC....................................................................................46 Chương IV : DEMO TRÊN MAPLE........................................................................................49 4.1. Ví dụ 1: Mã hóa và giải mã Elgamal trên Elliptic.............................................................49 4.1.1. Mô tả...............................................................................................................................49 Hình4.1: đồ thị y2 = x3 + x + 6................................................................................................49 4.1.2. Mã hóa và giải mã...........................................................................................................49 4.1.2.1. Mã hóa thông tin..........................................................................................................49 4.1.2.2. Giải mã.........................................................................................................................53 4.2. Ví dụ về ký và kiểm tra chữ ký Elgamal............................................................................55 4.2.1. Ký lên thông báo.............................................................................................................55 Hình4.1: đồ thị y2 = x3 + x + 6................................................................................................58 4.2.2. Kiểm tra chữ ký...............................................................................................................59 KẾT LUẬN...............................................................................................................................60 TÀI LIỆU THAM KHẢO.........................................................................................................62
HỌC VIỆN KỸ THUẬT MẬT MÃ
-2-
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
DANH MỤC HÌNH VẼ VÀ BẢNG MỤC LỤC...................................................................................................................................1 DANH MỤC HÌNH VẼ VÀ BẢNG...........................................................................................5 DANH SÁCH CÁC TỪ VIẾT TẮT...........................................................................................5 Chương I : GIỚI THIỆU VỀ MAPLE........................................................................................8 Giới thiệu chung..........................................................................................................................8 1.1. Giới thiệu chung...................................................................................................................8 Hình 1.1: Giới thiệu về phần mềm Maple...................................................................................8 1.1.1. Lịch sử phát triển..............................................................................................................9 1.1.2. Các tính năng cơ bản của Maple.....................................................................................10 1.1.3. Cấu trúc và giao diện......................................................................................................11 Hình 1.2: Giao diện của maple..................................................................................................11 1.2. Lập trình tính toán với Maple............................................................................................11 1.3. Lưu giữ và trích xuất dữ liệu..............................................................................................12 1.4. Các môi trường làm việc trong Maple...............................................................................12 1.5. Lệnh của Maple..................................................................................................................12 1.6. Các dấu phép toán, hàm và hằng số cơ bản.......................................................................13 Hình 1.3: Vẽ đồ thị bằng phần mềm Maple..............................................................................21 Chương II : HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC......................................................22 2.1. Đường cong Elliptic...........................................................................................................22 2.1.1. Mở đầu và đặt bài toán....................................................................................................22 2.1.2. Định nghĩa.......................................................................................................................22 2.1.3. Tính chất của đường cong elliptic...................................................................................23 2.1.4. Đường cong elliptic trên trường hữu hạn........................................................................24 2.1.5. Các phép toán trên đường cong Elliptic..........................................................................24 2.1.5.1. Phép cộng.....................................................................................................................25 Hình 2.1: phép cộng trên đường cong Elliptic.........................................................................26 2.1.5.2. Phép nhân.....................................................................................................................27 2.1.6. Đếm số điểm trên đường cong elliptic trên trường Fq....................................................27 2.1.7. Trường K.........................................................................................................................28 2.1.8. Dạng của đường cong elliptic.........................................................................................28 2.1.9. Phương pháp lựa chọn....................................................................................................29 Hình 2.2: Đường cong Elliptic..................................................................................................30 2.1.10. Các đường cong elliptic................................................................................................30 Hình 2.3:Đồ thị phương trình y2 = x3 – 6x..............................................................................31 Hình 2.4:phần tử nghịch đảo của P...........................................................................................32 Hình 2.5: PQ cắt đồ thị tại một điểm duy nhất R......................................................................32
HỌC VIỆN KỸ THUẬT MẬT MÃ
-3-
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Hình 2.6: Trường hợp PQ là tiếp tuyến của đồ thị tại P...........................................................33 Hình 2.7:Đồ thị minh họa P+P=-R............................................................................................33 Hình 2.8: Đồ thị minh họa P+P=-P...........................................................................................34 2.2. Hệ mật trên đường cong elliptic.........................................................................................34 2.2.1. Mở đầu và đặt bài toán....................................................................................................34 2.2.2. Nhúng bản rõ lên đường cong.........................................................................................35 2.2.3. Logarit rời rạc trên đường cong Elliptic( Discrete logarithm on Elliptic)......................37 2.2.4. Vấn đề trao đổi khoá Diffie- Hellman(D- H) trên Elliptic..............................................37 2.2.5. Hệ mật Elgamal trên đường cong Elliptic.......................................................................38 2.2.6. Hệ mật mã dựa trên đường cong elliptic.........................................................................39 2.2.7. Giao thức SSL (Secure Sockets Layer)...........................................................................39 2.2.7.1. Quá trình bắt tay đầy đủ dựa vào mã hoá RSA............................................................40 Hình 2.9 : Quá trình bắt tay dựa vào RSA................................................................................40 2.2.7.2. Quá trình bắt tay đầy đủ dựa vào mã hoá ECC............................................................41 Hình 2.10: Quá trình bắt tay dựa vào EEC...............................................................................41 2.2.7.3. Mã hóa công khai trong SSL trong hai chế độ.............................................................42 2.2.7.4. So sánh.........................................................................................................................42 Bảng 1: So sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL..................................43 Chương III. MỘT VÀI ỨNG DỤNG HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC............44 3.1. Lược đồ chữ ký số trên đường cong elliptic (Elliptic Curve Signature Algorithm ) ECDSA 44 3.1.1. Lược đồ ký ECDSA........................................................................................................44 3.1.2. Độ an toàn của sơ đồ chữ ký ECDSA.............................................................................45 3.2. Một số chuẩn sử dụng hệ mật ECC....................................................................................46 Chương IV : DEMO TRÊN MAPLE........................................................................................49 4.1. Ví dụ 1: Mã hóa và giải mã Elgamal trên Elliptic.............................................................49 4.1.1. Mô tả...............................................................................................................................49 Hình4.1: đồ thị y2 = x3 + x + 6................................................................................................49 4.1.2. Mã hóa và giải mã...........................................................................................................49 4.1.2.1. Mã hóa thông tin..........................................................................................................49 4.1.2.2. Giải mã.........................................................................................................................53 4.2. Ví dụ về ký và kiểm tra chữ ký Elgamal............................................................................55 4.2.1. Ký lên thông báo.............................................................................................................55 Hình4.1: đồ thị y2 = x3 + x + 6................................................................................................58 4.2.2. Kiểm tra chữ ký...............................................................................................................59 KẾT LUẬN...............................................................................................................................60 TÀI LIỆU THAM KHẢO.........................................................................................................62
HỌC VIỆN KỸ THUẬT MẬT MÃ
-4-
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
DANH SÁCH CÁC TỪ VIẾT TẮT TT
TỪ VIẾT TẮT
TIẾNG ANH
THUẬT NGỮ MẬT MÃ
1
DHP
Diffie-Helman Problem
Bài toán Diffie-Hellman
2
DLP
Discrete Logarithm Problem
Bài toán logarithm rời rạc trên trường hữu hạn
3
EC
Elliptic Curve
Đường cong elliptic
4
ECC
Elliptic Curve Cryptosystem
Hệ mật Elliptic
5
ECDLP
Elliptic Curver Discrete Logarithm Problem
Bài toán logarithm rời rạc trên đường cong elliptic
6
MOV
Menezes-OkamotoVanstone attack
Tấn công MOV
7
SSL
8
SSLHP
SSL Handshake protocol Giao thức bắt tay
9
SSLRP
SSL Record Layer protocol
HỌC VIỆN KỸ THUẬT MẬT MÃ
-5-
Giao thức lớp ghi
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
LỜI NÓI ĐẦU Ngày nay với sự phát triển mạnh mẽ 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, E-mail cho phép người ta nhận hay gửi thư ngay trên máy tính của mình, E-business cho phép thực hiện các giao dịch trên mạng. Do vậy một vấn đề phát sinh là thông tin có thể bị trộm cắp, có thể bị sai lệch, hoặc bị giả mạo. Điều đó có thể ảnh hưởng tới các tổ chức, các công ty hay an ninh của một quốc gia. Những bí mật kinh doanh, tài chính là mục tiêu của các đối thủ cạnh tranh. Những tin tức về an ninh quốc gia là mục tiêu của các tổ chức tình báo trong và ngoài nước. Để giải quyết tình hình trên an toàn thông tin được đặt ra cấp thiết và 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. Kỹ thuật này có từ ngàn xưa nhưng nó đơn giản, ngày nay khi có mạng máy tính người ta dùng mật mã hiện đại. Các nhà khoa học đã phát minh ra những hệ mật mã như các hệ mật: RSA, Elgamal…, nhằm che dấu thông tin cũng như là làm rõ chúng để tránh sự nhòm ngó của những kẻ cố tình phá hoại. Mặc dù rất an toàn nhưng có độ dài khoá lớn nên trong một số lĩnh vực không thể ứng dụng được. Chính vì vậy người ta đã phát minh một hệ mật đó là hệ mật trên đường cong elliptic, hệ mật này được đánh giá là hệ mật có độ bảo mật an toàn cao và hiệu quả hơn nhiều so với hệ mật công khai khác, nó đã được ứng dụng trên nhiều lĩnh vực và được sử dụng nhiều nơi trên thế giới tuy nhiên còn mới mẻ ở Việt Nam. Trong tương lai gần Hệ mật trên đường cong Elliptic sẽ được sử dụng một cách phổ biến và thay thế những hệ mật trước nó. Vì lý do đó, em đã chọn đề tài “Tìm hiểu Hệ mật trên đường cong elliptic và khả năng ứng dụng” để nghiên cứu. Đồ án của em gồm 4 chương: Chương I: Giới thiệu về Maple Chương này giới thiệu tổng quan về phần mềm Maple, lịch sử phát triển, các tính năng cơ bản, giao diện của Maple…,môi trường làm việc,các hàm số, hằng số và các câu lệnh cơ bản trong Maple
HỌC VIỆN KỸ THUẬT MẬT MÃ
-6-
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Chương II: Hệ mật trên đường cong Elliptic Trong chương 2 trình bày một cách tổng quan về đường cong Elliptic và hệ mật trên đường cong Elliptic Chương III: Một vài ứng dụng hệ mật trên đường cong Elliptic Trong chương 3 nêu ra một vài ứng dụng hệ mật trên đường cong Elliptic như lược đồ chữ ký số trên đường cong Elliptic và một số chuẩn sử dụng hệ mật ECC Chương IV: Demo trên Maple Chương cuối cùng trình bày một số ví dụ về hệ mật trên đường cong Elliptic bằng phần mềm Maple Sau một thời gian tìm hiểu và nghiên cứu cùng với sự giúp đỡ của các thầy cô trong khoa An toàn thông tin và đặc biệt là Cô giáo Trần Thị Lượng – Giảng viên Khoa An toàn thông tin – Học viện Kỹ thuật Mật Mã, cuối cùng em đã hoàn thành đồ án của mình. Em xin chân thành cảm ơn các thầy cô ! Hà Nội, ngày 08 tháng 06 năm 2011 Sinh viên Phạm Thị Yên
HỌC VIỆN KỸ THUẬT MẬT MÃ
-7-
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Chương I : GIỚI THIỆU VỀ MAPLE 1.1. Giới thiệu chung
Hình 1.1: Giới thiệu về phần mềm Maple Maple là một hệ thống tính toán trên các biểu thức đại số và minh họa toán học mạnh mẽ của công ty Warterloo Maple, ra đời khoảng năm 1991, đến nay đã phát triển đến phiên bản 14. Maple có cách cài đặt đơn giản, chạy trên tất cả các hệ điều hành, có cấu trúc linh hoạt để sử dụng tối ưu cấu hình máy và đặc biệt có trình trợ giúp (Help) rất dễ sử dụng. Từ phiên bản 7, Maple cung cấp ngày càng nhiều các công cụ trực quan, các gói lệnh tự học gắn liền với toán phổ thông và đại học. Ưu điểm đó làm cho nhiều nước trên thế giới lựa chọn sử dụng Maple cùng các phần mềm toán học khác trong dạy học toán trước đòi hỏi của thực tiễn và sự phát triển của ngành giáo dục.
HỌC VIỆN KỸ THUẬT MẬT MÃ
-8-
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
1.1.1. Lịch sử phát triển Maple là gói phần mềm toán học thương mại phục vụ cho nhiều mục đích. Tên “Maple” đơn giản là để chỉ hình tượng “Lá Phong “ (trong tiếng anh gọi là Maple) trên quốc kì Canada. Tháng 11/1980, khái niệm đầu tiên về Maple xuất phát từ một cuộc họp tại Đại học Waterloo. Những nhà nghiên cứu tại đại học muốn mua một máy tính đủ mạnh để chạy Macsyma nhưng chi phí tốn kém. Thay vào đó, người ta quyết định họ sẽ phát triển hệ thống đại số máy tính riêng để có thể chạy được những máy tính có giá thành hợp lý hơn. Do đó, dự án bắt đầu với mục tiêu là tạo ra một hệ thống đại số hình thức mà các nhà nghiên cứu và sinh viên có thể truy cập được. Những nhà nghiên cứu đã thử nghiệm và loại bỏ nhiều ý tưởng khác nhau để tạo ra một hệ thống liên tục cải tiến. Maple được trình diễn đầu tiên tại những hội nghị bắt đầu vào năm 1982. Đến cuối năm 1983, trên 50 trường đại học đã cài Maple trên máy của họ. Do số lượng hỗ trợ và yêu cầu giấy phép lớn, vào năm 1984, nhóm nghiên cứu đã sắp xếp với WATCOM Products Inc để cấp phép và phân phối Maple. Vào năm 1988, do số lượng hỗ trợ ngày càng tăng, Waterloo Maple Inc. được thành lập. Mục tiêu đầu tiên của công ty là quản lý những bản phân phối phần mềm. Cuối cùng, công ty cũng phải mở ra phòng R&D ở đó khá nhiều sự phát triển cho Maple được thực hiện đến ngày nay. Sự phát triển đáng kể của Maple tiếp tục diễn ra tại những phòng thí nghiệm trường đại học, bao gồm: Phòng thí nghiệm Tính toán hình thức tại Đại học Waterloo; Trung tâm nghiên cứu Tính toán hình thức Ontario tại Đại học Tây Ontario; và những phòng thí nghiệm khắp nơi trên thế giới. Vào năm 1989, giao diện đồ họa người dùng đầu tiên của Maple được phát triển và bao gồm trong bản 4.3 dành cho Macintosh. Những phiên bản trước của Maple chỉ gồm giao diện dòng lệnh với ngõ ra hai chiều. Bản X11 và Windows với giao diện mới tiếp bước vào năm 1980 với Maple 5. Vào năm 1999, với việc phát hành Maple 6, Maple đã đưa vào một số Thư viện Số học NAG, được mở rộng độ chính xác ngẫu nhiên.
HỌC VIỆN KỸ THUẬT MẬT MÃ
-9-
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Vào năm 2003, giao diện "chuẩn" hiện nay được giới thiệu trong Maple 9. Giao diện này được viết chủ yếu bằng Java (mặc dù có nhiều phần, nhưng luật cho việc gõ công thức toán học, được viết bằng ngôn ngữ Maple). Giao diện Java bị phê phán là chậm; những sự phát triển được thực hiện trong các bản sau, mặc dù tài liệu Maple 11 documentation khuyến cáo giao diện (“cổ điển”) trước đây dành cho người với bộ nhớ vật lý ít hơn 500 MB. Giao diện cổ điển này không còn được bảo trì. Giữa 1995 và 2005 Maple đã mất khá nhiều thị phần vào tay đối thủ do có giao diện người dùng yếu hơn. Nhưng vào năm 2005, Maple 10 giới thiệu một “chế độ văn bản” mới, như một phần của giao diện chuẩn. Tính năng chính của chế độ này là phép toán được đưa vào bằng ngõ nhập hai chiều, do đó nó xuất hiện tương tự như công thức trong sách. Vào năm 2008, Maple 12 đã thêm những tính năng giao diện người dùng giống như Mathematica, gồm có những kiểu trình bày theo mục đích đặc biệt, quản lý phần đầu và cuối trang, số trùng mở đóng ngoặc, vùng thực hiện tự động, mẫu hoàn thành lệnh, kiểm tra cú pháp và vùng tự động khởi tạo. Những tính năng khác được thêm để làm cho Maple dễ dùng hơn như một hộp công cụ Maple. Phiên bản hiện tại là Maple 14 được phát hành năm 2010 .Đối thủ cạnh tranh chính của nó là Mathematica. Maple 14 là một phần mềm tính toán kỹ thuật cần thiết cho các kỹ sư và các nhà khoa học ngày nay. Khi cần thực hiện tính toán thật nhanh,trình bày bảng tính và cho ra những kết quả có tính chuyên môn với độ chính xác cao thì Maple 14 có đầy đủ những công cụ cần thiết để thực hiện được điều đó và giúp giảm bớt những lỗi sai cho những người không chuyên về tính toán thông qua những mẫu cấu trúc được Maple thiết kế sẵn.
1.1.2. Các tính năng cơ bản của Maple. Có thể nêu vắn tắt các chức năng cơ bản của Maple như sau: Là một hệ thống tính toán trên các biểu thức đại số: Có thể thực hiệc được hầu hết các phép toán cơ bản trong chương trình toán đại học và phổ thông.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 10 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Cung cấp các công cụ minh họa hình học thuận tiện gồm: vẽ đồ thị tĩnh và động của các đường và mặt được cho bởi các hàm tùy ý trong nhiều hệ tọa độ khác nhau. Là một ngôn ngữ lập trình đơn giản và mạnh mẽ có khả năng tương tác với các ngôn ngữ lập trình khác. Cho phép trích xuất ra các định dạng khác nhau như LaTex,Word, HTML,... Một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với các lớp học tương tác trực tiếp.
1.1.3. Cấu trúc và giao diện Khi khởi động Maple, chương trình chỉ tự động kích hoạt nhân của Maple bao gồm các phép toán và chức năng cơ bản nhất. Phần nhân chiếm khoảng 10% dung lượng của toàn chương trình. Các dữ liệu và chương trình còn lại của Maple được lưu giữ trong thư viện Maple và được chia ra 2 nhóm: nhóm các lệnh cơ bản và nhóm các gói lệnh.
Hình 1.2: Giao diện của maple
1.2. Lập trình tính toán với Maple
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 11 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Maple là một ngôn ngữ lập trình hướng chu trình (procedure). Chúng ta có thể làm việc với Maple bằng hai chế độ khác nhau: Chế độ tương tác trực tiếp thông qua việc nhập từng lệnh đơn lẻ ngay tại dấu nhắc lệnh của Maple và nhận được ngay kết quả của lệnh đó. Chế độ chu trình được thực hiện bằng cách đóng gói một dãy các lệnh xử lý cùng một công việc vào trong một chu trình (procedure) duy nhất, sau đó ta chỉ cần gọi chu trình này và Maple tự động thực hiện các lệnh có trong chu trình đó một cách tuần tự và sau đó trả lại kết quả cuối cùng. Maple chứa một lượng rất lớn các hàm tạo sẵn đáp ứng cho những yêu cầu tính toán khác nhau trong nhiều lĩnh vực. Các hàm này được lưu trữ trong các gói chu trình (package) và người sử dụng có thể dễ dàng gọi đến mỗi khi cần thiết. Tuy nhiên, người dùng Maple có thể tự tạo cho riêng mình những gói chu trình cũng như có thể trao đổi dùng chung những gói chu trình nào đấy, phục vụ cho công việc mang tính đặc thù riêng của mình.
1.3. Lưu giữ và trích xuất dữ liệu Trang làm việc của Maple sẽ được lưu giữ bằng file có đuôi ".mws". File được lưu giữ bằng trình File|Save. Một file đã có được mở bằng File|Open. Ngoài việc lưu giữ bằng định dạng của Maple như trên, dữ liệu có thể được trích xuất thành các định dạng khác như Word,LaTex hay HTML. Trích xuất bằng File|Export.
1.4. Các môi trường làm việc trong Maple Maple có 2 môi trường: làm việc là toán và văn bản. Sau khi khởi động, Maple tự động bật môi trường toán. Muốn chuyển sang môi trường văn bản, kích chuột vào biểu tượng T trên thanh công cụ hay vào trình Insert->Text. Ngược lại, từ môi trường văn bản, kích chuột vào dấu "[>" trên thanh công cụ hay vào Insert để chuyển sang môi trường toán.
1.5. Lệnh của Maple Lệnh được gõ vào trang làm việc (worksheet) tại dấu nhắc lệnh ">" và theo ngầm định được hiển thị bằng font Courier màu đỏ. Một lệnh đựợc kết
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 12 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
thúc bởi dấu ":" hoặc dấu ";" và được ra lệnh thực hiện bằng việc nhấn Enter khi con trỏ đang ở trên dòng lệnh. > factor(2*x^102+x^100-2*x^3-x+60*x^2+30); Kết quả của lệnh được hiển thị ngay bên dưới dòng lệnh nếu dùng dấu ";". Có thể dễ dàng dùng chuột và bàn phím để thực hiện các chức năng bôi đen, copy, paste, cut, delete...đối với dữ liệu trên dòng lệnh hay kết quả thực hiện. Sử dụng dịch vụ trợ giúp (Help) trong Maple: Maple có dịch vụ trợ giúp khá đầy đủ và thuận lợi, bao gồm cú pháp, giải thích cách dùng và các ví dụ đi kèm. Để nhận được trợ giúp, có thể ấn F1 hoặc bôi đen vào câu lệnh ấn SHIFT+F2 Nếu đã biết tên lệnh thì từ dấu nhắc gõ vào > ?factor Nếu dùng một gói lệnh thì khi nạp gói lệnh, Maple sẽ hiển thị toàn bộ lệnh trong gói đó. Một cách thông dụng nữa là dùng trình Help|Topic Search rồi gõ vào từ khóa cần tìm.
1.6. Các dấu phép toán, hàm và hằng số cơ bản Các phép toán và dấu phép toán Cú pháp !
Giải thích Giai thừa
^
Lũy thừa
a^2
+
Cộng
a+b
-
Trừ hoặc số âm
x-y
*
Nhân
2*x
/
Chia
10/5
>
Lớn hơn
a>10
<
Nhỏ hơn
b<10
>=
Lớn hơn hoặc bằng
x>=10
<=
Nhỏ hơn hoặc bằng
x<=10
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 13 -
Ví dụ 10!
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
=
Bằng
a=b
:=
Phép gán
x:=10
Cú pháp
Giải thích
Ví dụ
sin, cos, tan,…
Các hàm lượng giác
sin(x)
arcsin, arccos, arctan
Các hàm lượng giác ngược
arcsin
abs
Hàm trị tuyệt đối
abs(x)
exp
Hàm mũ cở số e
exp(x) hay e^x
log hay ln
Hàm logarit cơ số e
log(x) hay ln(x)
log[10]
Hàm logarit cơ số 10
log[10](x)
sqrt
Khai căn bậc 2
sqrt(3)
Các hàm thông dụng:
Các hằng số thông dụng:∞ Cú pháp
Hằng số
Pi
π
exp
e
infinity
∞
Các tính toán số học Maple có thế làm việc như một máy tính bỏ túi hiện đại >5*3 Khả năng tính toán số học của Maple là rất lớn, có thể làm việc với những con số có đến 228 = 268435456 chữ số
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 14 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Các toán tử logic: and, or, not
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 15 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Kết quả của các phép toán quan hệ là: True
đúng
False
sai
FAIL
không so sánh được
Chú ý: Các thành phần trên có thể được xếp vào những mục (section) cho dễ tìm hoặc mục con (subsection) trong worksheet Cấu trúc dữ liệu: Tập hợp (Set) Tập hợp là dãy được bao trong cặp dấu ngoặc nhọn {...}. Trong tập hợp thứ tự các phần tử không quan trọng. Các phép toán trên tập hợp như union (hợp), intersect (giao), minus (trừ). > s:=sin,cos,tan;
> a:= {exp,sin,cos};
> b:= {s};
> a union b;
> a intersect b;
Kiểm tra phần tử có trong tập hợp hay không? > member (sin,b);
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 16 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Danh sách (List) Danh sách là dãy được bao trong cặp dấu ngoặc vuông [..]. Các phần tử của danh sách có thể là bất cứ gì. > c := [1, 2, 3, 2, 1];
Tìm số phần tử của list bằng nops(L); > nops (c);
Truy cập các phần tử của list > op (2,c);
Tính toán với các số thập phân Ta có thể thực hiện các phép tính số học trên các số thập phân với dấu chấm động hoặc với độ chính xác theo ý muốn. Trong thực tế, Maple có thể xử lý các số với độ chính xác hàng trăm nghìn chữ số thập phân bằng hàm evalf (f, m) Ví dụ: Ta tính giá trị của số Π với độ chính xác 20 chữ số thập phân > evalf(Pi,20);
Tính toán theo Modul Tính modul m trên tập số nguyên Cú pháp: e mod m với các dạng riêng:
modp (e, m): Lấy biểu diễn dương của e theo modul m (trong tập giá trị từ 0 đến 1 - m ). mods (e, m): Lấy biểu diễn đối xứng của e theo modul m (trong tập (|m-1|)/2..(|m|/2))
Với e là biểu thức đại số, m là một số nguyên khác 0. HỌC VIỆN KỸ THUẬT MẬT MÃ
- 17 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Toán tử mod tính giá trị biểu thức e trên tập số nguyên modul m. Nó hợp nhất việc tính toán trên trường số hữu hạn và các phép toán số học đối với đa thức, ma trận trên trường hữu hạn, kể cả phép phân tích ra thừa số. Việc ấn định mod p hay mod s được thực hiện thông qua biến môi trường mod (giá trị modp được xem là mặc định). Khi ta cần tính q mod m với q là một số nguyên thì không nên sử dụng cú pháp hiển nhiên như q^n mod m, bởi vì phép lũy thừa sẽ chuyển số thứ nhất thành số nguyên (có thể là rất lớn) trước khi rút gọn theo modul m. Thay vào đó nên dùng toán tử trơ &^ nghĩa là q&^n mod m. Trong dạng đó lũy thừa sẽ được biến đổi khéo léo theo phép lấy mod. Tương tự, Powmod (a,n,b,x) mod m tính Rem (a^n,b,x) mod m (a và b là những đa thức của x) không cần tính a^n mod m. Những phép toán modul số học khác được biểu diễn dưới dạng tự nhiên của chúng: j + i mod m; j - i mod m; j * i mod m; i / j mod m; j^(-1) mod m; Ví dụ: Tính > 12 mod 7; modp(12,7);
> mods(12,7);
> 5*3 mod 7;
> 11+5*3 mod 7;
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 18 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
> (11+5*3)^(-1) mod 7;
> 5 &^1000 mod 31;
Tính modul khi e không là số Khi biểu thức e không là một số mà là một đa thức thì phép lấy modul của nó được hiểu là phép lấy modul của tất cả các hệ số của đa thức. Ví dụ: Tính > a:=15*x^2+4*x-3 mod 11;
Vì phép lấy modul mặc định sử dụng biểu diễn dương (modp). Muốn chuyển sang dạng đối xứng thì ta dùng lệnh: > mod`:=mods: b:=3*x^2+8*x+9 mod 11;
Đối với các phép toán khác như tìm ước chung lớn nhất, phân tích ra thừa số nguyên tố (với cả số và đa thức),… cũng được thực hiện theo phương thức thông thường ngoại trừ một khác biệt nhỏ là các lệnh trong phép tính modul được bắt đầu bằng chữ hoa. Ví dụ: > Gcd(a,b) mod 11;
Giải phương trình với modul Cú pháp: msolve (eqns, vars, q) hoặc msolve (eqns, q)
Trong đó:
eqns: Tập các phương trình.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 19 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
vars: Tập các biến.
q: Số nguyên.
Lệnh msolve thực hiện việc giải phương trình trong Z theo m. Lệnh msolve giải các phương trình eqns trên các số nguyên (theo mod q). Nó giải theo mọi ẩn bất định có trong các phương trình. Nếu là nghiệm vụ định, thì họ các nghiệm được biểu diễn thông qua các biến có tên được cho trong tập biến vars, nếu như vars được bỏ qua thì được thay thế bằng các tên mặc định toàn cục _Z1~, _Z2~, _Z3~,…Những tên này không trùng với các ẩn vô định và được phép lấy mọi giá trị nguyên. Ví dụ: > restart: > msolve({3*x-4*y=1, 7*x+y=2},19);
> msolve(8^i=2,17);
> msolve(3*x=6,12);
Nếu phương trình không có nghiệm trên các số nguyên (mod m) thì Maple sẽ không cho kết quả nào. Vẽ đồ thị Cú pháp: plot(biểu thức) Ví dụ: vẽ đồ thị hàm số y2=x3+2x+5 > p1:= plot > p2:= plot(-
x 2 + 2x + 5 ;
x 2 + 2x + 5
);
> plots[display](p1,p2);
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 20 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Hình 1.3: Vẽ đồ thị bằng phần mềm Maple Maple là một phần mền tính toán khá phong phú, hỗ trợ hầu hết các lĩnh vực của toán học. Do đó, ứng dụng Maple vào tự học , tự nghiên cứu có thể kiểm tra được kiến thức toán học của mình và tạo ra những tư duy mới về toán học
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 21 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Chương II : HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC 2.1. Đường cong Elliptic 2.1.1. Mở đầu và đặt bài toán Lý thuyết đường cong Elliptic được xác định trên trường số hữu hạn đã có ứng dụng đáng lưu ý trong lĩnh vực mật mã. Lý do cơ bản là đường cong Elliptic trên trường hữu hạn đã cung cấp cho chúng ta một cơ sở xây dựng thuật toán mà không thể dùng thuật toán vét cạn để thám mã của nhóm Abelian ngay cả khi nhóm đó có cấp không lớn lắm. Đườ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: Y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 Trên trường số phức C, phương trình đầy đủ của đường cong Elliptic gọi là phương trình Weiretrass có dạng Y2 + a1xy + a3y =x3 + a2x2 + a4x + ai (*)
với ai ∈ C
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: X→X −
a2 b
, Y→ Y −
a1x + a3 2
Khi đó phương trình Weierstrass có dạng: X3 + aX + b Vậy trong trường Fp (*) trở thành: Y2 = X3 + aX + b
2.1.2. Định nghĩa Giả sử K là một trường có đặc số khác 2 và khác 3 ta xét đa thức X3 + aX + b (với a, b ∈ K) Khi đó đường cong elliptic trên trường K: Y 2 = X3 + aX +b (1) là tập hợp tất cả các điểm (x, y) với x, y ∈ K sao cho (1) không có các nghiệm bội tức là 4a3 + 27b2≠ 0 mod p cùng với phần tử O - điểm O này được gọi là điểm vô hạn. HỌC VIỆN KỸ THUẬT MẬT MÃ
- 22 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Tức là đường cong Elliptic là tập hợp S: S = { (x, y) : y2 = x3 + ax + b, x, y ∈ K } ∈ {O} . Với a, b Є K cho trước sao cho 4a3 + 27b2≠ 0 theo mod p. Nếu K là trường đặc số 2 thì ta định nghĩa: S = { (x, y) : y-2 + y = x3 + ax +b} ∪ {O} (2) Nếu K là trường đặc số 3 thì ta định nghĩa: S = { (x, y) : y-2 + y = x3 + ax +bx + c } ∪ {O} (3)
2.1.3. Tính chất của đường cong elliptic Nếu hai điểm P1(x1, y1 ) và P2(x2, y2) với x1 ≠ x2 nằm trên cùng một đường cong elliptic E, thì đường thẳng qua hai điểm P1 và P2 sẽ cắt một điểm duy nhất P3(x3, y3) có thể xác định thông qua P1 và P2 nằm trên đường cong E. Tiếp tuyến của đường cong tại điểm bất kỳ P(x, y) trên đường cong E cắt đường cong elliptic E tại một điểm duy nhất nằm trên đường E, điểm này cũng có thể xác định được thông qua P. Dựa vào những tính chất đó người ta đã nghiên cứu và phát hiện ra một khả năng mới cho kỹ thuật mã hoá nói chung và chứng thực nói riêng, kỹ thuật mã hoá dựa trên đường cong elliptic. Người ta đã chỉ ra rằng các hệ mã hoá bằng đường cong elliptic có độ bảo mật cao hơn nhiều so với các hệ mã hoá công khai khác như RSA, Elgamal… Độ bảo mật dựa trên độ khó phân tích số nguyên thành các thừa số nguyên tố cũng như bài toán logarit rời rạc, độ dài khoá giảm đi nhiều lần và do đó tốc độ thực hiện cũng sẽ nhanh hơn rất nhiều. Chính vì vậy người ta đã áp dụng kỹ thuật mã hoá bằng đường cong elliptic vào nhiều lĩnh vực khác nhau. Các kỹ thuật mã hoá bằng phương pháp đường cong elliptic được sử dụng hiệu quả nhất trong việc xây dựng các giải pháp bảo mật thông tin cho các thẻ thông minh(Smart Card), các thiết bị điện tử có khả năng tính toán và không gian bộ nhớ hạn chế.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 23 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
2.1.4. Đường cong elliptic trên trường hữu hạn Xét trường hữu hạn Fq của q = pr phần tử trên trường hữu hạn K. 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 ở (2) và (3) . Dễ dàng thấy rằng một đường cong như vậy có thể có nhiều nhất là 2p+1 điểm trong Fq, nghĩa là điểm vô cùng với 2q cặp (x, y) trong đó x, y ∈ Fq thoả mãn (1) (2) (3) (nếu p=2 hoặc 3), tức là với mỗi q giá trị x có thể có tồn tại nhiều nhất 2 giá trị y thoả mãn (1). Nhưng vì chỉ có một nửa các phần của Fq có căn bậc 2 người ta kỳ vọng (nếu x 3 + ax + b là các phần tử ngẫu nhiên của trường ) chỉ có khoảng một nửa số các điểm của F q. Chính xác hơn, giả sử λ đặc trưng toàn phương của Fq (lấy λ (0) = 0). Ví dụ: Nếu q = p là 1 số nguyên tố thì λ (x) =(x/p ) là ký hiệu Legedre Symbol). Do đó trong tất cả mọi trường hợp số các nghiệm y ∈ Fq thoả mãn phương trình y2 = u là bằng 1 + λ (u). Vì vậy số các nghiệm ở phương trình 1 và điểm vô hạn là: 1 + x∑ (1+ λ(x3 + ax + b)) = q + 1 + x∑ (1 + λ(x3 + ax + b)) ∈Fq ∈Fq
(6)
Ta hy vọng rằng λ( x3 + ax + b) bằng +1 và -1. Lấy tổng ngẫu nhiên: tung đồng xu q lần. Người ta thấy rằng x∑ (x3+ax+b) bị ∈Fq chặn bởi 2
q
đó chính là định lý Hasses được phát triển như sau:
Đị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
2.1.5. Các phép toán trên đường cong Elliptic Giả sử p là một số nguyên tố >3. Người ta chứng minh được rằng bằng phép biến đổi tuyến tính, ta có thể quy phương trình đường cong elliptic về dạng Weierstrass như sau: Y2 = X3 + aX + b Đường cong elliptic Y2 = X3 + aX + b trên Zp được định nghĩa là tập hợp tất cả các điểm (x, y) ∈ Zp×Zp thoả mãn phương trình:
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 24 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Y2 = X3 + aX + b mod p Cùng với một phần tử đặc biệt ký hiệu là O là phần tử trung hoà. Tập hợp đó được ký hiệu là E. 2.1.5.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 đó x3= λ2 - x1 – x2 ; y3 = λ(x1 – x3 ) –y1 Với λ= (y2 - y1) / (x2 – x1), khi P # Q (nếu x1 = x2 thì λ là hệ số góc đường thẳng qua P và Q (*) (3x2 + a) / 2y1, , khi P = Q (λ là đạo hàm của đường cong tại P)
(**)
Vậy nếu P ≠ Q tức là x1 ≠ x2 x3 = λ2 – x1 – x2
(*)
y3 = λ (x1 – x3) – y1
Nếu P =Q X3 = λ2 – 2x1
(**)
Y3 = λ(x1 – x3) – y1
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 25 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Hình 2.1: phép cộng trên đường cong Elliptic Chú ý rằng các điểm (x3, y3), (x3, -y3) cũng nằm trên đường cong E và xét về mặt hình học, thì các điểm (x1, y1), (x2, y2), (x3, -y3) cũng nằm trên một đường thẳng. Ngoài ra ta định nghĩa thêm: P + O = O + P = P. 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ạ phần tử
-P(x, -y) ∈ E để P + (-P) = O. Tính chất giao hoán Nếu P, Q
HỌC VIỆN KỸ THUẬT MẬT MÃ
∈ E thì P + Q = Q + P. - 26 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
2.1.5.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). Vì vậy nếu G là một điểm thuộc đường cong elliptic E thì với mỗi số nguyên dương k luôn dễ dàng xác định được điểm Q = k ×G MỆNH ĐỀ : Cho E là một đường cong elliptic xác định bởi phương trình y2 = x3 + Ax + B. Gọi P1(x1,y1) và P2(x2,y2) là các điểm trên E với P1,P2 # 0. Khi đó P1 + P2 = P3 = (x3,y3) với x3,y3 được tính như sau : 1) (Công thức cộng điểm) Nếu x1 # x2 thì x3 = λ 2 – x1 – x2 y3 = λ (x1 - x3) – y1 Với λ = (y2-y1)/(x2-x1) 2) Nếu x1 = x2 nhưng y1 # y2, thì P1 + P2 = 0 3) (Công thức nhân đôi điểm) Nếu P1 = P2 và y1 # 0, thì x3 = λ 2 – 2x1 y3 = λ (x1 - x3) – y1 Với λ = (3x12 + A)/2y1 4) Nếu P1 = P2 và y1 = 0, P1 + P2 = 0
2.1.6. Đếm số điểm trên đường cong elliptic trên trường Fq Việc xây dựng các hệ mật mã trên đường cong elliptic bao gồm việc lựa chọn đường cong E thích hợp và một điểm G trên E gọi là điểm cơ sở. Xét trường K là Fq . Ước lượng thô số điểm của E (kí hiệu là #E) là p
Đị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(Fq) = q +1 – t trong đó |t| ≤ 2
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 27 -
q
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Đị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. Phương pháp chọn đường cong Elliptic phù hợp và điểm cơ sở : Việc chọn một đường cong elliptic thế nào ảnh hưởng đến tốc độ, tính hiệu quả, độ dài khoá và tính an toàn của hệ mật mã trên đường cong này. Dù E, K và điểm cơ sở B ∈ E cố định và công khai nhưng việc chọn các tham số này phù hợp là bước quan trọng nhất.
2.1.7. Trường K Trước hết chúng ta xem xét sự ảnh hưởng của trường K đến cấu trúc nhóm của E(K) và các hệ mật mã trên E(K). 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 F 2T 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. Các đường cong elliptic trên trường số nguyên tố Fp và trên trường Fqn có các tính chất giúp chúng có thể thực thi được trên các thiết bị mà vẫn đảm bảo an toàn. Một chú ý nữa là việc tính số điểm trên #E(K). Với #E(K) thích hợp có thể là điều kiện cho phép thực hiện tấn công Pohlig – Hellman. Có thể dùng thuật toán đơn định thời gian đa thức Shoof để tính trên trường hữu hạn F q với đặc số khác 2 hoặc 3. 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. Ví dụ với r nhỏ, tính # E(F2T) có thể nhanh hơn một chút so với tính # E(Fp), trong đó p lớn hơn đáng kể so với 2r, nhưng khi r tăng thì tính # E(F2T) mất nhiều thời gian hơn tính # E(Fp).
2.1.8. Dạng của đường cong elliptic Trước hết, chúng ta cần xem các dạng đường cong elliptic. Trên trường F q có hai lớp đường cong elliptic được dùng trong các hệ mã hoá là supersinggular. Xét Fq có đặc số là 2 (g = 2m). Khi đó: Tập tất cả các cặp nghiệm (x, y) của phương trình y 2 + ax = x3 + 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 supersingular.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 28 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Tập tất cả các cặp nghiệm (x, y) của phương trình y 2 + ax = x3 + 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.
Supersingular Curve: Menezes và Vanstone đã tìm ra các ưu điểm của các đường cong elliptic supersingular cho các hệ mật mã, đặc biệt trên trường F 2T. Nonsupersingular Curve: Ưu điểm của các đường cong nonsupersingular là nó cung cấp độ bảo mật tương đương như các đường cong supersingular nhưng với các trường nhỏ hơn. Độ dài khoá ngắn giúp chúng có thể triển khai trên các thiết bị như smart card. Hơn nữa, các đường cong nonsupersingular có thể chống lại tấn công MOV
2.1.9. Phương pháp lựa chọn Có nhiều cách chọn các đường cong elliptic và điểm cơ sở B thuộc đường cong đó. Một cách chọn điển hình là: 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 x 3+ 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. Tuy nhiên phương pháp này có thể tạo ra các đường cong không đảm bảo một số yêu cầu định trước. Một kỹ thuật cải tiến là xây dựng các đường cong với các tính chất cho trước. Cũng có thể chọn những đường cong để tạo các hệ mã hoá không phụ thuộc vào bài toán EDLP, chẳng hạn các hệ elliptic dựa trên RSA. Các hệ mật mã elliptic làm việc với các nhóm con cylic của E với phần tử sinh là điểm P. Vì vậy, việc lựa chọn P phù hợp là rất quan trọng. Để đảm bảo việc chọn điểm thích hợp ta hãy chọn đường cong elliptic của chúng ta và trường hữu hạn sao cho số N các điểm của đường cong là một số nguyên tố. Nếu chọn được như vậy thì mọi điểm B ≠ 0 đều là phần tử sinh.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 29 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Tóm lại: Một đường cong elliptic là một vật thể với một tính chất kép:
Một mặt, nó là một đường cong, một vật thể hình học.
Mặt khác, chúng ta có thể "thêm vào" các điểm trên đường cong như thể nếu chúng là những con số, do đó, nó là một đối tượng đại số. Ngoài ra theo luật trên một đường cong elliptic có thể được mô tả:
Về mặt hình học bằng cách sử dụng nút giao nhau của đường cong
Về mặt đại số bằng cách sử dụng các phương trình đa thức
Về mặt phân tích bằng cách sử dụng các chức năng với các biến số phức
tạp
Hình 2.2: Đường cong Elliptic Đường cong elliptic xuất hiện trong các lĩnh vực đa dạng của toán học, từ lý thuyết số đến phân tích phức tạp, và từ mật mã học đến vật lý toán học. Một đường cong Elliptic là một đường cong tạo ra bởi một phương trình dạng mẫu E : y2 = x3 + Ax + B
2.1.10. Các đường cong elliptic Dễ thấy rằng các đường cong elliptic được miêu tả trong nhiều loại bài toán khác nhau. Ta có thể đưa ra một ví dụ đó là việc chứng minh lý thuyết Ferma của An-drew đã sử dụng các đường cong elliptic. Các đường cong elliptic có một vai trò quan trọng trong việc tìm các thừa số nguyên, kiểm tra tính nguyên thủy, và gần đây nhất chúng được sử dụng trong hệ mã hóa công khai. Ý tưởng
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 30 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
sử dụng các đường cong elliptic trong mã hóa công khai do N. Koblitz và V. Miller đề xuất đầu tiên năm 1985. Ta định nghĩa một đường cong elliptic như sau: đó là một đường cong trên trường F - một trường không có đặc tính 2 hoặc 3, và giả sử a, b ∈ F để x3+ax+b không có các nghiệm bội điều này cũng tương đương với điều kiện 4a 3+27b2 # 0 Đồng thời, mọi cặp điểm (x, y) ∈ F × F đều thỏa mãn phương trình sau: y2 = x3+ax+b mod p (1) cùng với một phần tử đặc biệt O được gọi là điểm vô cực. Chú ý rằng, một đường cong elliptic nếu kết hợp với một phép toán được định nghĩa đặc biệt sẽ trở thành một nhóm Abel. Ban đầu, có thể quan sát phép toán này một cách tốt nhất về phương diện hình học khi áp dụng nó với đường cong elliptic trên tập các số thực. Ví dụ ta có thể quan sát đồ thị sau với các cặp được sắp (x, y) thoả mãn phương trình y2 = x3 – 6x trên tập số thực. Chú ý rằng đồ thị này đối xứng qua trục x.
Hình 2.3:Đồ thị phương trình y2 = x3 – 6x Bây giờ ta sẽ xây dựng phép toán để khi áp dụng với những điểm thuộc đồ thị trên và điểm vô cực O ta sẽ thu được đường cong elliptic E có cấu trúc của một nhóm Abel. Phép toán đó là một phép cộng với các đặc điểm sau: 1. Điểm vô cực là phần tử trung hoà của nhóm. Vì vậy ta định nghĩa:
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 31 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
P+ O = O +P = P với mọi điểm P ∈ E 2. Với mọi điểm P = (x, y) trong đồ thị y 2 = x3 – 6x, chúng ta định nghĩa phần tử phủ định (hay phần tử nghịch đảo) của P là –P = (x, -y). Điều này được minh hoạ ở hình sau:
Hình 2.4 : Phần tử nghịch đảo của P 3. Giả sử P và Q là hai điểm trong đồ thị y2 = x3 – 6x với P # Q, và đường nối PQ không phải là đường tiếp tuyến của đồ thị tại P hoặc Q. Tuy nhiên, sẽ khó khăn để chỉ ra rằng PQ cắt đồ thị tại một điểm duy nhât R. Ta định nghĩa P+Q = -R. Minh hoạ trên hình sau:
Hình 2.5: PQ cắt đồ thị tại một điểm duy nhất R 3. Giả sử rằng P và Q nằm trên đồ thị y2 = x3 – 6x với P # Q, và PQ là tiếp tuyến của đồ thị tại điểm P. Ta định nghĩa P+Q = - P. HỌC VIỆN KỸ THUẬT MẬT MÃ
- 32 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Hình 2.6: Trường hợp PQ là tiếp tuyến của đồ thị tại P 4. Giả sử P nằm trên đồ thị y2 = x3 – 6x với x # 0 và P không phải là điểm trong phần cong bên phải của đồ thị. Tuy nhiên sẽ khó khăn để chỉ ra đường tiếp tuyến của đồ thị tại P cắt đồ thị tại một điểm R duy nhất. Ta định nghĩa P + P = -R
Hình 2.7:Đồ thị minh họa P+P=-R 5. Giả sử điểm P nằm trên đồ thị y2 = x3 – 6x và P là một điểm trong phần cong bên phải của đồ thị. Ta định nghĩa P + P = - P.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 33 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Hình 2.8: Đồ thị minh họa P+P=-P Phép toán này rõ ràng là có tính giao hoán. Và ta giả sử rằng nó có tính kết hợp.
2.2. Hệ mật trên đường cong elliptic Hiện nay, hệ mật RSA là giải thuật khoá công khai được sử dụng nhiều nhất, nhưng hệ mật dựa trên đường cong Elliptic (ECC) có thể thay thế cho RSA bởi mức an toàn và tốc độ xử lý cao hơn. Ưu điểm của ECC là hệ mật mã này sử dụng khoá có độ dài nhỏ hơn so với RSA. Từ đó làm tăng tốc độ xử lý một cách đáng kể, do số phép toán dùng để mã hoá và giải mã ít hơn và yêu cầu các thiết bị có khả năng tính toán thấp hơn, nên giúp tăng tốc độ và làm giảm năng lượng cần sử dụng trong quá trình mã hoá và giải mã. Với cùng một độ dài khoá thì ECC có nhiều ưu điểm hơn so với các giải thuật khác, nên trong một vài năm tới có thể ECC sẽ là giải thuật trao đổi khoá công khai được sử dụng phổ biến nhất.
2.2.1. Mở đầu và đặt bài toán Năm 1976, Diffie và Hellman giới thiệu hệ mã hoá khoá công khai đầu tiên mà sự an toàn của nó dựa trên độ khó của bài toán DLP. Năm 1985, Lenstra thành công trong việc sử dụng các đường cong elliptic cho các số nguyên. Kết quả này mang lại khả năng áp dụng các đường cong elliptic trong các hệ mật mã khoá công khai. Miller và Kobliz giới thiệu những hệ mật mã elliptic. Họ không phát minh ra các thuật toán mới nhưng đã có đóng góp lớn là chỉ ra việc áp dụng
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 34 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
elliptic cho các hệ khoá công khai. Miller đề xuất một giao thức trao đổi khoá tựa như Diffie – Hellman vào năm 1985 (nhanh hơn 20% so với giao thức Diffie - Hellman). Kobliz đưa ra thuật toán mã hoá tương tự như hệ Elgamal và Massey – Omura vào năm 1987. Sơ đồ đầu tiên tương tự như sơ đồ RSA và 3 hàm một chiều (có cửa sập) mới dựa trên đường cong Elliptic được đưa ra năm 1991 bởi Koyama, Maurer, Okamoto và Vanstone (thuật toán này tốc độ thực hiện nhanh gấp 6 lần so với RSA). Cùng thời điểm đó, Kaliski chứng minh rằng các hàm cửa sập một chiều đòi hỏi thời gian là hàm mũ để thực hiện phép tính nghịch đảo. Menezes, Okamoto và Vanstone đã đưa ra một phương pháp tấn công MOV để giải bài toán EDLP trong một số trường hợp riêng. Ngay sau đó, Miyaji đã đề xuất một ứng dụng thực tế của các đường cong elliptic cho các sơ đồ chữ ký và định danh trên Smart Card. Năm 1993, Demytko đưa ra một thuật toán mới tương tự như RSA cho các đường cong Elliptic trên vành Z vượt qua các hạn chế của các phiên bản trước, và Menezes và Vanstone đã đưa ra phương pháp thực thi trên các thiết bị cứng có thể cài thiện các tính toán trên elliptic trên một trường hữu hạn. Những năm 1997, 1998 việc tìm ra các hệ mật mã trên các đường cong Elliptic ngày càng thu hút nhiều sự chú ý và một số thuật toán đã được đưa thành các chuẩn
2.2.2. Nhúng bản rõ lên đường cong Nhúng một 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 mà nhờ đó chúng ta 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à imbedding và mask. Muốn mã hoá bản rõ m trên một đường cong elliptic cho trước được định nghĩa trên trường Fq trước hết ta phải tìm cách nhúng nó lên E. Giả sử m được coi là một số nguyên dương nào đó. Bản rõ m được ứng với điểm Pm trên E. Trước khi thực hiện “nhúng” điểm m lên E ta cần lưu ý: Sau khi nhận được bản mã, người ta nhận đích thực phải có thể giải được bản mã một cách dễ dàng.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 35 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Không có một thuật toán tất định với thời gian đa thức (trong log q) để biết được một số lớn các điểm trên đường cong elliptic tuỳ ý trên E cả trường Fq. Tuy nhiên lại tồn tại một thuật toán xác suất mà đối với nó xác suất sai là rất bé. Việc tạo ra các điểm ngẫu nhiên của E là không đủ để mã hoá một số lượng lớn tuỳ ý các bản rõ m. Trong lúc đó bản rõ mà ta cần nhúng lại có thể rất lớn. Do đó, một phương pháp xác suất có thể cho phép nhúng (imbed) các bản rõ m được coi là một điểm trên đường cong elliptic E được định nghĩa trên trường Fq với q = pn được giả thiết là đủ lớn. Gọi k là một số nguyên dương đủ lớn sao cho thoả mãn xác suất sai xấp xỉ 1/2k. Giả sử khi chúng ta muốn nhúng một bản rõ m, giả sử k là một số nào đó(k =20, 30 hoặc k = 50 là đủ). Với m kà một số nguyên sao cho 0≤ m ≤M (M là số nguyên dương lớn hơn mọi khối rõ m cần nhúng ) Trường hữu hạn đã chọn sao cho q > Mk .Biểu diễn các số nguyên từ 1 đến Mk dưới dạng: {mk + j}
1≤ j ≤ k
Ta lập một ánh xạ 1- 1 tương ứng giữa các số nguyên trên với tập hợp các phần tử của Fp. Ví dụ có thể viết một số nguyên như là một số nguyên cơ số p có độ dài r và coi r như là một phần tử của Z/pZ , là hệ số của một đa thức cấp r – 1 tương ứng với một phần tử của Fq. Nghĩa là số nguyên (ar-1, ar-2,…….a1, a0 )p đặt tương ứng với đa thức
mà nó được xem như modulo đa thức bất
khả quy cấp r cố định trên Fp, cho một phần tử của Fq. Do đó cho trước m với j = 1, 2,3…..k sẽ nhận được một phần tử của Fq tương ứng với mk + j Đối với số x đó ta tính: Y 2 = f(x) = x3 + ax + b và tìm căn bậc 2 của giá trị f(x) Nếu tìm được một số y sao cho y 2 = f(x) thì lấy Pm = (x, y). Nếu kết quả f(x) là không bình phương thì tăng x thêm 1 và tiếp tục tính toán từ đầu cho đến khi tìm được một số x sao cho f(x) là một bình phương cho đến khi j nhận giá trị lớn k
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 36 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
2.2.3. Logarit rời rạc trên đường cong Elliptic( Discrete logarithm on Elliptic) Định nghĩa: Nếu E là đường cong Elliptic trên trường F q 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) Hầu như bài toán tính logarit rời rạc trên đường cong elliptic sẽ khó hơn bài toán logarit rời rạc trên trường hữu hạn. Các kỹ thuật mạnh nhất đã được phát triển để sử dụng trong các trường hữu hạn dường như không có giá trị đối với đường cong elliptic. Kết quả này đặc biệt đúng trong trường hợp trường có đặc số 2. Như đã được chứng tỏ bởi Odlzko rằng có một số phương pháp đặc biệt để giải bài toán logarit rời rạc trong G*2r với chúng dễ dàng tính được logarit rời rạc và do đó phá vỡ được hệ mật mã, trừ ra trường hợp số r được chon đủ lớn. Dường như các hệ thống tương tự sử dụng đường cong elliptic được định nghĩa trên trường F2r sẽ đảm bảo an toàn kể cả trong trường hợp giá trị r khá bé.
2.2.4. Vấn đề trao đổi khoá Diffie- Hellman(D- H) trên Elliptic Giả sử A và B muốn thống nhất một khoá chung để liên lạc có bảo mật giữa hai người bằng mật mã truyền thống. Trước hết hai bên thống nhất công khai chọn một trường hữu hạn Fq và một đường cong elliptic trên nó khoá chung của họ sẽ được xây dựng từ một điểm ngẫu nhiên P của đường cong vừa cho, họ làm cách này bằng cách chọn toạ độ x của P là ngẫu nhiên trong F q. Sau đó nó được chuyển đổi thành số nguyên cơ số P có r số( q = pr) được coi là khoá đối với hệ mã truyền thống của họ. Cụ thể như sau: Trước hết A, B chọn công khai một điểm B ∈ E. B đóng vai trò như là phần tử sinh g trong trường hữu hạn của hệ thống Diifie-Hellman. Chúng ta muốn có một nhóm con được sinh ra bởi B là lớn, tốt nhất là có cùng cấp như E. Bây giờ giả sử B là công khai và cố định trên E mà cấp của nó là đủ lớn (chẳng hạn hoặc là N hoặc là một nhân tử lớn của N). Để tạo ra khoá, trước hết A chọn ngẫu nhiên một số nguyên a có cấp q (nó xấp xỉ như số N). Số a được giữ bí mật. Trên cơ sở đó, A tính aB ∈ E, aB là công khai. Đến lượt B cũng làm như vậy, anh ta chọn ngẫu nhiên số b và tính
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 37 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
bB ∈ E, bB cũng được công khai. Khoá bí mật mà chỉ có hai người A, B mới có đó là: P =abB ∈ E. Người thứ ba bất kỳ không thể suy ra abB từ aB và bB nếu không giải bài toán logarit rời rạc trên E của trường Fpr
2.2.5. Hệ mật Elgamal trên đường cong Elliptic Hệ mật Elgamal làm việc với nhóm Cyclic hữu hạn. Năm 1978, Kobliz đã đưa một hệ trên ECC dựa trên hệ Elgamal. Để xây dựng hệ mã hoá dựa trên đường cong elliptic ta chọn đường cong E(a,b) và một điểm G trên đường cong làm điểm cơ sở. Mỗi người dùng A một khoá bí mật nA là một số nguyên, và sinh khoá công khai PA = nA * G. Khi đó hệ mã hoá đường cong elliptic được xây dựng tương tự hệ mã hoá ElGamal, trong đó thuật toán mã hoá và giải mã được xác định như sau:
Thuật toán mã hoá
Giả sử người dùng A muốn gửi thông điệp cần mã hoá Pm tới người dùng B, chọn một số ngẫu nhiên k và gửi thông điệp mã hoá Cm được tính như sau: Cm = {k * G, Pm + k * PB } (PB là khoá công khai của B)
Thuật toán giải mã
Để giải mã thông điệp Cm = { k * G, Pm + k * PB }, người dùng B thực hiện tính như sau: Pm + k * PB – nB * k * G = Pm + k * PB – k * nB * G = Pm + k * PB - k * PB = Pm Chỉ có B mới có thể giải mã vì B có n B (là khoá bí mật). Chú ý rằng ở đây P m là một điểm thuộc đường cong elliptic, quá trình mã hoá giải mã được thực hiện trên các điểm thuộc đường cong E. Trong thực tế, để sử dụng được người ta phải tương ứng một số với một điểm thuộc đường cong elliptic. Khi đó mỗi thông điệp cần mã hoá sẽ tương ứng với một dãy số. Mỗi số sẽ tương ứng với một điểm trên đường cong elliptic. Tính bảo mật : Nếu kẻ tấn công giữa đường, Oscar, có thể giải bài toán EDLP thì anh ta có thể biết được khoá bí mật từ n B của B từ các thông tin công
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 38 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
khai G và nBG, và có thể giải mã thông điệp mà A gửi. Như vậy độ an toàn (bảo mật) của thuật toán trên dựa vào độ khó của bài toán EDLP.
2.2.6. Hệ mật dựa trên đường cong elliptic ECC thực hiện việc mã hoá và giải mã dựa trên toạ độ của các điểm dựa trên đường cong Elliptic. Xét đẳng thức Q=kP, với Q,P là các điểm nằm trên đường cong Elliptic. Có thể khá dễ dàng tính Q nếu biết k và P, nhưng rất khó xác định k nếu biết Q và P. (Phép nhân được xác định bằng cách cộng liên tiếp cùng điểm P. Ví dụ: 4P = P+P+P+P ; 9P = 2(2(2P)) + P). Hệ mật dựa trên đường cong Elliptic dựa trên độ khó khi biết được điểm P và Q và phải tìm ra giá trị k. Bên cạnh công thức của đường cong Elliptic, thì một thông số quan trọng khác của đường cong Elliptic là điểm G (còn gọi là điểm cơ sở), điểm G đối với mỗi đường cong elliptic là cố định, trong hệ mật mã ECC thì một số nguyên lớn k đóng vai trò như một khoá riêng, trong khi đó kết quả của phép nhân giữa k với điểm G được coi như là khoá công khai tương ứng. Việc trao đổi khoá theo Diffie Hellman dựa trên đường cong Elliptic (ECDH – Elliptic Curve Diffie Hellman) và thuật toán chữ ký số dựa trên đường cong Elliptic (ECDSA - Elliptic Curve Digital Signature Algorithm) là những ứng dụng cụ thể của đường cong Elliptic trong lĩnh vực mật mã. Trong trao đổi khoá ECDH, hai bên A và B sử dụng các tham số đường cong Elliptic giống nhau. Mỗi bên tạo ra khoá riêng kA và kB và tạo ra các khoá công khai QA=kAG và QB=kBG. hai bên trao đổi khoá công khai và nhân khoá riêng của nó với khoá công khai của bên kia, điều này dẫn đến thông tin mật được chia sẻ kAQB = kBQA = kAkBG. Còn ECDSA hoàn toàn tương tự như DSA.
2.2.7. Giao thức SSL (Secure Sockets Layer) Giao thức SSL (Secure Sockets Layer) là giao thức an toàn được sử dụng rộng rãi nhất trên Internet hiện nay. SSL là giao thức dùng để thiết lập bảo mật giữa server và client. SSL mã hoá tất cả dữ liệu truyền qua lại giữa chủ và khách ở mức IP sockets. SSL thực hiện mã hoá, xác định quyền và bảo vệ thông tin toàn vẹn khi trao đổi dữ liệu trong một môi trường mạng vốn có nhiều người dùng và không an toàn.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 39 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Hai thành phần chính của ECC là giao thức bắt tay SSLHP (SSL Handshake protocol) và giao thức lớp ghi SSLRP (SSL Record Layer protocol). SSLHP cho phép server và client thực hiện thoả thuận về bộ mã sử dụng, xác nhận lẫn nhau và thiết lập một khoá chính chia sẻ (thường sử dụng các thuật toán mã hoá công khai). SSLRP được xuất phát từ khoá chính chia sẻ và sử dụng chúng cùng với các thuật toán công khai để mã hoá các dữ liệu.
2.2.7.1. Quá trình bắt tay đầy đủ dựa vào mã hoá RSA
Hình 2.9 : Quá trình bắt tay dựa vào RSA Quá trình bắt tay dựa vào RSA của nó được mô tả qua Hình 2.3 Đầu tiên, client gửi một bản tin ngẫu nhiên tới server để thoả thuận bộ mật mã hoá thông qua việc trao đổi các bản tin ClientHello và ServerHello.Sau đó, server sẽ gửi lại khoá công khai RSA cho client trong bản tin ServerCertificate. Do client cũng có khoá công khai của server; nó sẽ kiểm tra khoá công khai này. Nếu phù hợp, client sẽ dùng chính khoá công khai này để
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 40 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
mã hoá một số ngẫu nhiên 48 byte (còn được gọi là premaster). Số sau khi được mã hoá sẽ được gửi kèm bản tin ClientKeyExchange tới server. Server sẽ dùng khoá mật RSA để giải mã bản tin premaster này. Cả hai phía sẽ sử dụng bản tin premaster để tạo ra bản tin master đồng thời với việc trao đổi bản tin lúc đầu trước đó sẽ được dùng để trao đổi khoá mã hoá; vector khởi đầu và khoá MAC (Message Authentication Code) nhằm phục vụ cho mã hoá và chứng thực bởi SSLRP.
2.2.7.2. Quá trình bắt tay đầy đủ dựa vào mã hoá ECC
Hình 2.10: Quá trình bắt tay dựa vào EEC Quá trình bắt tay dựa vào ECC được thể hiện thông qua Hình 2. Thông qua hai bản tin đầu (được xử lí giống như RSA); client và server thoả thuận bộ khoá mật ECC. Bản tin ServerCertificate chứa khoá ECDH công khai của server được xác nhận bởi một nhà cấp quyền ECDSA. Sau khi đã chứng thực chữ kí ECDSA, client sẽ chuyển khoá chung ECDH của nó tới server thông qua bản tin ClientKeyExchange. Tiếp theo, mỗi bên lại sử dụng
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 41 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
khoá riêng ECDH của chính nó và khoá chung của bên kia để thực hiện mã hoá và giải mã ECDH và đạt đến việc chia sẻ một khoá mật premaster secret. Việc kế thừa khoá mật chính và khoá đối xứng không thay đổi so với RSA.
2.2.7.3. Mã hóa công khai trong SSL trong hai chế độ Hoạt động mã hoá công khai trong SSL được thực hiện bởi một client và server trong các chế độ khác nhau của quá trình bắt tay SSL như sau: Bắt tay dựa vào RSA: client thực hiện hai hoạt động mã hoá công khai: một để kiểm chứng việc chứng thực của server và một để mã hoá các khoá mật premaster với khoá công khai của server. Server thực hiện một hoạt động với khoá mật RSA để giải mã bản tin ClientKeyExchange và khôi phục lại premaster. Bắt tay dựa vào ECDH-ECDSA: client thực hiện chứng thực ECDSA để kiểm chứng lại chứng thực của server và sau đó thực hiện ECDH bằng việc sử dụng khoá riêng ECDH và khoá chung ECDH của server để tính ra premaster chia sẻ. Tất cả các server cần thực hiện cùng một hoạt động ECDH để thu được mã mật tương ứng.
2.2.7.4. So sánh tay
Để thực hiện việc so sánh việc sử dụng RSA và ECC trong quá trình bắt của SSL, người ta sử dụng hai bộ mã khác nhau
TLS_RSA_WITH_RC4_128_SHA và TLS_ECDH_ECDSA_WITH_RC4_128_SHA. Với mỗi bộ mã người ta sử dụng ba cấp độ an ninh khác nhau. Đối với RSA người ta sử dụng khoá có độ dài 1024 bit, 1536 bit và 1048 bit, Với ECC sử dụng khoá có độ dài 160 bit, 192 bit và 224 bit. Người ta sử dụng một công cụ để thực hiện nhiều phiên giao dịch đồng thời một lúc nhằm đo hai thông số trên một server. Và kết quả được thể hiện ở bảng 1.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 42 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Bảng 1: So sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL
Thời gian(ms)
ECC160
RSA1024
ECC192
RSA1536
ECC224
RSA2048
3.69
8.75
3.87
27.47
5.12
56.18
114.3
258.1
36.4
195.5
17.8
Số lệnh thực hiện / s 271.3 So sánh thời gian 2.4:1 thực hiện
7.1:1
11:1
So sánh độ dài khoá 1:6.4
1:8
1:9.1
Việc sử dụng ECC mang lại những hiệu quả sau: tăng tốc độ, yêu cầu khả năng tính toán thấp hơn, tiết kiệm dải thông đường truyền, tăng hiệu quả lưu trữ, giảm độ dài các chứng nhận…Các ưu điểm trên của hệ mật ECC có thể phát huy hiệu quả trong các ứng dụng mà đường truyền, khả năng tính toán, tốc độ và lưu trữ bị hạn chế. Và các ứng dụng đó được thể hiện rất hiệu quả trong thương mại điện tử, web servers…
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 43 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Chương III. MỘT VÀI ỨNG DỤNG HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC 3.1. Lược đồ chữ ký số trên đường cong elliptic (Elliptic Curve Signature Algorithm ) - ECDSA 3.1.1. Lược đồ ký ECDSA Sơ đồ chữ ký ECDSA được xây dựng tương tự như sơ đồ chữ ký ElGamal tuy nhiên các thuật toán ký và thuật toán kiểm thử được xây dựng dựa trên đường cong Elliptic. Để thiết lập sơ đồ chữ ký ECDSA, cần xác định các tham số: lựa chọn đường cong E trên trường hữu hạn Fq với đặc số p sao cho phù hợp và công khai cho tất cả mọi người, điểm cơ sở G ∈ E(Fq). Một số khuyến nghị khi lựa chọn các tham số: Kích thích q của trường, hoặc q = p (p>2) hoặc q= 2m. Hai phần tử a, b thuộc Fq xác định phương trình đường cong Elliptic: y 2 = x3 + ax + b (p>2) hoặc y2 +xy = x3 +ax2 + b (p = 2). Hai phần tử xG và yG thuộc Fq xác định điểm cơ sở G = (xG, yG).
Bậc n của điểm G với n> 2160 và n > 4
q
.
Sinh khoá Chọn số ngẫu nhiên d trong khoảng [2, n-1 ] làm khoá bí mật Tính Q = dG làm khoá công khai. Thuật toán ký trên bản rõ m Người dùng A ký lên thông điệp m theo các bước sau: 1. Chọn một số ngẫu nhiên k, 2≤ k ≤ n −1 2. Tính kG = (x1, y1). 3. Tính r = x1 mod n. Nếu r =0, quay lại bước 1. 4. Tính k-1 mod n. 5. Tính s = k-1 (m +dr) mod n. Nếu s = 0, quay lại bước 1.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 44 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
6. Chữ ký trên thông điệp m là ( r, s ). Thuật toán kiểm tra chữ ký Người dùng B kiểm tra chữ ký (r, s ) trên thông điệp m theo các bước sau: 1. Kiểm tra r và s có là các số tự nhiên trong khoảng [ 2, n-1 ] không. 2. Tính w = s-1 mod n. 3. Tính u1 = mw mod n và u2 = rw mod n. 4. Tính X = u1G + u2Q = (xx, yy). 5. Nếu X = O thì phủ nhận chữ ký. Ngược lại tính v = xx mod n. 6. Chữ ký chỉ được chấp nhận nếu v = r.
3.1.2. Độ an toàn của sơ đồ chữ ký ECDSA Các hệ mã hoá đường cong elliptic đầu tiên được phát minh năm 1985 bởi Neal Kobliz và Victor Miller. Tuy nhiên sơ đồ chữ ký ECDSA do Scott Vanstone đưa ra năm 1992, được chấp nhận là chuẩn ISO vào năm 1998, là chuẩn ANSI vào năm 1999, và là chuẩn IEEE vào năm 2000. Độ an toàn của sơ đồ ký ECDSA dựa trên bài toán logarit rời rạc đường cong elliptic. Cho đến nay độ an toàn của các hệ mã hoá đường cong elliptic đã được chỉ ra là rất an toàn và hiệu quả. Đối với bài toán logarit rời rạc đường cong elliptic thì có nhiều thuật toán giải nó. Tuy nhiên chưa có thuật toán nào có độ phức tạp tính toán trong thời gian đa thức. Thuật toán giải bài toán logarit rời rạc đường cong elliptic tốt nhất hiện nay là thuật toán Pollard’s Rho, phiên bản thiết kế theo hướng tính toán song song. Theo đó với nhóm đường cong elliptic cấp n và có r máy tính cùng tính toán thì phải mật π .n /2.r phép toán. Mặt khác người ta đã phân tích và chỉ ra rằng với hệ mã hoá dựa trên bài toán logarit rời rạc đường cong elliptic có cùng độ bảo mật với hệ mã hoá dựa trên bài toán phân tích số nguyên thành các thừa số nguyên tố (như RSA) thì độ dài khoá của hệ mã hoá dựa trên đường cong elliptic có chiều dài khoá ngắn hơn rất nhiều . Chẳng hạn với hệ mã hoá RSA có chiều dài khoá là 1024 bit thì hệ mã hoá bằng đường cong elliptic chỉ cần độ dài khoá 163 bit sẽ có độ bảo mật
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 45 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
tương đương. Và do đó việc tính toán các tiến trình đối với các hệ mã hoá đường cong elliptic là nhanh hơn rất nhiều.
3.2. Một số chuẩn sử dụng hệ mật ECC Việc đưa ra một số chuẩn chung cho các hệ thống mật mã, các giao thức, các giao diện là một việc quan trọng. Việc chuẩn hoá mạng lại 3 lợi ích chính: Cho phép kết hợp phần cứng và phần mềm của nhiều nhà cung cấp khác nhau. Đưa ra chuẩn cho việc đảm bảo an toàn các hệ thống dưới khía cạnh mật mã học. Cho phép có thiết kế chuẩn cho các môi trường ứng dụng khác nhau. Các đường cong Elliptic đã được xem xét và nghiên cứu kỹ lưỡng bởi các nhà toán học trong hơn 10 năm và đã được khảo sát kỹ bởi các tổ chức chuẩn hoá từ năm 1995. Điều này đảm bảo rằng tính tin cậy của nó đã được kiểm chứng. Nỗ lực để có thể chuẩn hoá các hệ mật mã khoá công khai được bắt đầu từ nhiều năm trước bởi Viện nghiên cứu điện và điện tử IEEE(Institute of the Electrical and Electronics Engineers) với phiên bản P1363. Nó đưa ra định dạng và thủ tục cho 3 hệ thống mã hoá khoá công khai khác nhau bao gồm xác thực, toàn vẹn và tin cậy. ISO/IEC SC27 cũng bắt đầu xem xét các chuẩn cho ECC. Trong ANSI X9.25 có sơ đồ chữ ký ECC là ECDSA( Elliptic Curve Digital Signature Algorithm) và trong ANSI X9.63 có các chuẩn về thoả thuận và truyền khoá. ECC cũng đã được hỗ trợ trong các chuẩn mới của Internet về bảo mật cho tầng IP(IPSEC, ISAKMP, Oakley). Trong các chuẩn liên quan đến công nghiệp có SET(Secure Electronic Transaction). ANSI X9. ECC đã được thử nghiệm trong 2 lĩnh vực bởi ANSI ASC X9(dịch vụ tài chính). ANSI X9.62, chữ ký số ECDSA, ANSI X9.63, giao thức thoả thuận khoá ECC ECKA(Elliptic Curve Key Agrement) và giao thức giao vận ECTP (Transport Protocols). ANSI TG-17 (Technical Guideline on Mathematical Background for Elliptic Curve Cryptosystems) chứa các thông tin mở rộng về mặt toán học cho ECC, bao gồm các thuật toán đếm số các điểm trên đường cong Elliptic.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 46 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
ATM Forum. Cung cấp cơ chế bảo mật cho các mạng ATM (chế độ truyền thông không đồng bộ Asynchronous Transfer Mode). Các dịch vụ bảo mật bao gồm tính tin cậy, chính xác thực, toàn vẹn dữ liệu, điều khiển truy cập. ECC là một trong các hệ thống được hỗ trợ. Certicom. Certicom đã xuất bản các tài liệu về ECC. ECC trong X.509 mô tả cơ chế sử dụng các khoá ECC trong X.509 framework. Ví dụ nó định nghĩa các định dạng chứng chỉ và định dạng danh sách thu hồi chứng chỉ. Các chuẩn cho mã hoá ECC(SEC 1 Standards for Efficient Cryptography): ECC, các sơ đồ mã hoá khoá công khai trên ECC. Đặc biệt là các sơ đồ chữ ký điện tử, các sơ đồ mã hoá và các sơ đồ thoả thuận khóa. SEC.2 bao gồm các tham số được khuyến nghị cho mã hoá ECC, danh sách các tham số ECC được yêu cầu tương ứng với các cấp độ bảo mật khác nhau. FSTC. FSTC (Financial Services Technology Consortium) liên quan đến các hệ thống thanh toán điện tử và các dịch vụ tài chính khác. Các thanh toán điện tử có thể sử dụng rất nhiều thiết bị khác nhau như máy tính cá nhân, điện thoại màn hình, máy ATM, hoặc các hệ thống kiểm toán. ECC được sử dụng để mã hoá Email truyền gửi các sec điện tử. IEEE P1363. ECC đã được đưa ra trong chuẩn phác thảo IEEE P1363(Đặc tả các chuẩn cho mật mã khoá công khai), bao gồm mã hoá, chữ ký số, các cơ chế thoả thuận khoá. Các đường cong Elliptic có thể định nghĩa theo modulo p hoặc trên trường F2m, trường có 2m phần tử. IETF.(Internet Engineering Task Force). Mô tả giao thức thoả thuận khoá là biến thể của giao thức thoả thuận khoá Diffie-Hellmal. Nó cho phép sử dụng các nhóm khác nhau, bao gồm cả nhóm đường cong Elliptic. Các nhóm trên đường cong Elliptic được khuyến nghị dùng là các trường F2m và F2210. ISO/IEC. Bản phác thảo ISO/IEC 14888, các cơ chế dựa trên chứng chỉ, các thuật toán ký tương tự như DSA. NIST. (Viện nghiên cứu chuẩn quốc tế- National Institute of Standards). NIST cũng có các đặc tả cho ECC trong MISPC. SET. Chuẩn SET(Secure Electronic Transactions) được phát triển cho các giao dịch thẻ tín dụng trên Internet. ECC được xem xét như một chuẩn SET mới
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 47 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
cho thương mại điện tử trên Internet. Những lợi ích mà ECC mang lại cho các ứng dụng quan trọng đạng được đánh giá kĩ lưỡng. WAP. Wireless Application Protocol, cung cấp cơ chế truy cập Internet an toàn cho các thiết bị không dây như điện thoại, thiết bị không dây đầu cuối. Các đặc tả giới thiệu trong kiến trúc mạng cho phép các ứng dụng sử dụng các lựa chọn giao thức truyền khác nhau và giữa các thiết bị khác nhau. ECC cũng được hỗ trợ trong tầng bảo mật WAP WTLS(Wireless Transport Layer Security).
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 48 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Chương IV : DEMO TRÊN MAPLE 4.1. Ví dụ 1: Mã hóa và giải mã Elgamal trên Elliptic 4.1.1. Mô tả Cho đường cong Elliptic E: y2 ≡ x3 +ax + b mod p. với a=1, b=6, p=11 phần tử sinh α =(2,7). Khóa bí mật của Allice là ka=5, khóa công khai của Alice là β = 5 α =5(2,7)=(3, 6). Alice muốn gửi thông báo x=(10,9) đến Bob. Alice sẽ phải mã hóa thông báo trên rồi mới tiến hành gửi đi cho Bob. Khi Bob nhận được thông báo của Alice, Bob muốn đọc được thông báo Bob phải tiến hành giải mã. Ta sẽ thực hiện các bước mà Alice và Bob phải làm trên phần mềm Maple Vẽ đồ thị y2 = x3 + x + 6 mod 11 bằng phần mềm Maple
Hình 4.1: đồ thị y2 = x3 + x + 6
4.1.2. Mã hóa và giải mã 4.1.2.1. Mã hóa thông tin Alice thực hiện mã hóa thông tin Phương trình đường cong Elliptic >
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 49 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Gán các giá trị a=1, b=6, p=11 >
>
>
Phương trình Elliptic sau khi đã gán các giá trị >
Gán phần tử sinh α = (2,7), và khóa bí mật Ka = 5 >
>
Bây giờ ta kiểm tra xem phương trình Eliptic có suy biến không > 4a3 + 27b2 mod 11= 8 ≠ 0 --> phương trình Eliptic không suy biến Alice chọn r = 3 Thuận toán mã hóa : Ek(x,r) = (y1, y2) Với Y1= rα = 3α, Y2= x + r β =(10,9) + 3(3,6) * Tính Y1 Tính 2α = α + α = (2,7) + (2,7)
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 50 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
>
>
>
>
>
Ta có :2α = α + α = (2,7) + (2,7) = (5,2) Và 3α = 2α + α = (5,2) + (2,7) >>
>
>
--> Y1 = 3α = (8,3) * Tính Y2 Trước tiên ta tính 3β = 3(3,6) 2β = β + β = (3,6) + (3,6) >
>
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 51 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
>
>
>
2β = (3,6) + (3,6) = (8,8) 3β = 2β + β = (8,8)+ (3,6) >
>
>
--> 3β = 2β + β = (8,8) + (3,6) = (5,2) Y2 = x + r β = (10,9) + 3(3,6) = (10,9) + (5,2) > > >
>
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 52 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
>
>
>
--> Y2 = x + r β = (10,9) + 3(3,6) = (10,9) + (5,2) = (5,9) --->Bản mã mà Alice muốn gửi cho Bob là :X = (Y1,Y2) = ((8,3),(5,9))
4.1.2.2. Giải mã Bob nhận được bản mã Alice gửi, Bob tiến hành giải mã như sau X=Y2-Ka*Y1=(5,9)-5(8,3) Ta tính 5γ=5(8,3) 2γ=(8,3)+(8,3) >
>
>
>
>
2γ = (8,3) + (8,3) = (7,9)
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 53 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
3γ = 2γ + γ = (7,9) + (8,3) >
>
>
3γ = 2γ + γ = (7,9) + (8,3) = (10,9) 4γ = 3γ + γ = (10,9) + (8,3) >
>
>
4γ = 3γ + γ = (10,9) + (8,3) = (2,4) 5γ = 4γ + γ = (2,4) + (8,3) >
>
>
-->5γ = 4γ + γ = (2,4) + (8,3) = (5,2)
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 54 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
X = Y2 – Ka * Y1 = (5,9) - 5(8,3) = (5,9) - (5,2) Vì : -(x,y) = (x,-y) --> -(5,2) = (5,-2) = (5,9) X = Y2 – Ka * Y1= (5,9) - 5(8,3) = (5,9) - (5,2) = (5,9) + (5,9) > >
>
>
>
--->X = (10,9) Như vậy phép giải mã cho bản rõ đúng
4.2. Ví dụ về ký và kiểm tra chữ ký Elgamal Tiếp tục ví dụ trên : Cho đường cong Elliptic E: y2
≡
x3 +ax + b mod p.
với a=1, b=6, p=11 phần tử sinh α =(2,7). Khóa bí mật của Allice là ka=5, khóa công khai của Alice là β = 5 α =5(2,7)=(3, 6). Bây giờ Alice muốn ký lên thông báo m=9 và gửi cho Bob. Khi Bob nhận được thông báo đã được ký của Alice, Bob tiến hành kiểm tra chữ ký. Ta sẽ thực hiện các bước mà Alice và Bob phải làm trên phần mềm Maple
4.2.1. Ký lên thông báo Ta tiến hành gán các giá trị a=1, b=6, p=11, α=(2,7), ka=5 >
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 55 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
>
>
>
> > Bây giờ ta kiểm tra xem phương trình Eliptic có suy biến không? > 4a3 + 27b2 mod 11 = 8 ≠ 0 --> phương trình Eliptic không suy biến Tiếp theo, ta sẽ lưu vế phải của phương trình trên vào eqn: >
Bây giờ chúng ta sinh ra các phần tử trong E là các cặp (x, y) ∈ Zp × Zp thỏa mãn phương trình (1). Để sinh ra các cặp (x, y) thỏa mãn phương trình đó, ta phải cung cấp cho người sử dụng một thủ tục epoints. Nếu thủ tục này được lưu trong một file text epoints trong thư mục ta chạy Maple, khi đó ta có thể chạy thủ tục này bằng cách gõ câu lệnh: >read epoints;
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 56 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Tuy nhiên, ở đây ta thể hiện thủ tục epoints:
* Giải thích thủ tục sinh đường cong elliptic: Hàm Sub(x =a, bieu_thuc): thay x= a vào bieu_thuc. pct: là biến đếm số phần tử của E. Đầu tiên, với các giá trị k thuộc Zp, k = 0,1,2,...,18 ta tính z = x3+ax+b. 1. Ta thay k vào z để tính z tương ứng 2. Kiểm tra:
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 57 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Nếu z =0, tìm nghiệm của pt: x3+ax+b = 0, khi đó E:=E ∪ (xi, 0), với xi là nghiệm của phương trình đó. Mỗi lần tìm thấy nghiệm xi là tăng biến đếm pct. Nếu z là thặng dư bình phương (z(p-1)/2 mod p =0) khi đó E:= E ∪ (k, z(p+1)/4mod p) & (k, -z(p+1)/4 mod p), sau đó tăng pct lên 2 đơn vị. 3. Hàm seq(f(i), i = 1..n), là hàm xây dựng một chuỗi số f(1), f(2), ...f(n), và hiển thị chúng. Như vậy seq(ecurve[i], i = 1..pct), sẽ tạo ra một chuỗi phần tử [a1,b1], [a2, b2]... [an, bn], các điểm này thuộc vào E. Các điểm trên đường cong Elliptic có phương trình y2 = x3 + x + 6 là: >
Chú ý rằng các cặp được sắp (x, y) thoả mãn (1) là tất cả các phần tử trong E trừ điểm vô cực
O.
Bằng cách gõ câu lệnh sau, ta có thể biểu diễn số 0
cho điểm vô cực, và tập các điểm của ecurve nằm trong E. >
Đếm số phần tử trong E >
Alice chọn k=2 và tính r=kα=2(2,7) >
>
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 58 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
>
>
>
r=kα=2(2,7)=(5,2) Alice muốn ký lên thông báo m=9, ta gán m=9 >
Tính f(r): theo bài ra f(x,y)=x-->f(r)=f(5,2)=5= δ >
s:=k-1(m-a* δ) mod N >
-->Bản mã đã được ký mà Alice gửi cho Bob là:M(m,r,s)=(9,(5,2),5)
4.2.2. Kiểm tra chữ ký Khi Bob nhận được bản mã cua Alice gửi Bob tiến hành kiểm tra chữ ký V1=(f(r)* β +s*r)mod N = (δ* β +s*r)mod 13 V2=mα >
>
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 59 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
V1= V2 --->M đúng là bản mã mà Alice muốn gửi cho Bob
KẾT LUẬN Công nghệ thông tin đã và đang là một trong những lĩnh vực đem lại nhiều lợi ích cho xã hội, và không thể thiếu trong nền kinh tế hội nhập và toàn cầu hoá. An toàn và bảo mật thông tin là một trong những yếu tố quan trọng có nhiều ứng dụng trong thực tiễn. Trong quát trình nghiên cứu các giải pháp bảo mật người ta đã phát minh hệ mã hoá công khai trên đường cong elliptic. Cho đến nay hệ mã hóa đường cong elliptic được xem là hệ mã hoá an toàn và hiệu quả nhất. So với các hệ mã hoá công khai khác, ECC được xem là ưu việt hơn bởi ở cùng độ bảo mật như nhau thì độ dài khoá trong ECC nhỏ hơn nhiều so với các hệ mã hoá khác. Điều này dẫn tới các hệ mã hoá ECC có khả năng thực thi nhanh hơn, hiệu quả hơn các hệ mã hóa công khai khác. Theo yêu cầu đặt ra của đề tài “Tìm hiểu về hệ mật trên đường cong Elliptic và khả năng ứng dụng” cho đến thời điểm hiện tại, đồ án đã đạt được các nội dung sau đây : • Giới thiệu về phần mềm toán học Maple • Hiểu về đường cong Elliptic và các phép toán trên đường cong Elliptic • Hiểu về hệ mật trên đường cong Elliptic • Một vài ứng dụng hệ mật trên đường cong Elliptic • Demo một số ví dụ về hệ mật trên đường cong Elliptic sử dụng phần mềm Maple. Trong phạm vi của một đồ án tốt nghiệp, đồ án cơ bản đã đạt được những yêu cầu đặt ra ban đầu. Hạn chế: Tuy nhiên, các kết quả trong đồ án của em còn khá khiêm tốn do hạn chế về tài liệu, thời gian kiến thức cũng như kinh nghiệm thực tế. Đồ án chưa đi sâu nghiên cứu kỹ về một hệ mật cụ thể.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 60 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
Hướng phát triển: Hy vọng rằng trong tương lai, nếu có điều kiện em sẽ đi sâu nghiên cứu về vấn đề này để có thể áp dụng vào thực tế giúp ích cho người sử dụng cũng như công ty, tổ chức... Cuối cùng, em xin gửi lời cảm ơn sâu sắc tới các thầy, các cô trong khoa An toàn thông tin – Học viện Kỹ thuật Mật Mã đã tận tình giảng dạy và cung cấp những kiến thức quý báu cho em trong suốt năm năm học qua. Đặc biệt em xin chân thành cảm ơn Cô giáo Trần Thị Lượng – Giảng viên khoa An toàn thông tin – Học viện Kỹ thuật Mật Mã đã giành nhiều thời gian quý báu tận tình hướng dẫn và tạo mọi điều kiện thuận lợi để em có thể hoàn thành tốt đồ án của mình. Do còn hạn chế về kiến thức và kinh nghiệm nên đồ án còn nhiều thiếu sót, em rất mong được sự nhận xét, đánh giá và góp ý của các thầy cô và các bạn. Em xin chân thành cảm ơn !
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 61 -
Phạm Thị Yên – Lớp AT3C
ĐỒ ÁN TỐT NGHIỆP
Hệ mật trên đường cong Elliptic
TÀI LIỆU THAM KHẢO Tài liệu tiếng việt [1] TS. Trần Văn Trường và ThS. Trần Quang Kỳ, Giáo trình : Mật mã học nâng cao. Học viện Kỹ Thuật Mật Mã. [2] Nguyễn Hữu Điển, Giáo trình Maple –Trung tâm khoa học tự nhiên và công nghệ quốc gia [3] GS. TS Nguyễn Bình và TS. Trần Đức Sự. Giáo trình: Cơ sở lý thuyết mật mã. Học Viện Kỹ Thuật Mật Mã. [4] Trần Quốc Chiến, Giáo trình phần mềm toán học, Đại học Đà nẵng (năm 2008) [5] Phạm Huy Điển, Hà Duy Khoái (2003), Mã hoá thông tin: Cơ sở toán học và ứng dụng. NXB Đại Học Quốc Gia. Tài liệu tiếng anh [1] Neal Kobliz: A Corse in Number Theory and Cryptography. SprirgerVerlag: Network, Berlin Heidelberg London, Paris, Tokyo 1987 [2] Stphen B. Wicker: Error Control Systems for Digital communication and storage. Shool of electrical computer- Engineering. Georgra institute of Technology, Prentice Hall – NewJersey- 2003. [3] A.j. Menzes: Elliptic curse public key crypto system, Klwer Academic publishers, Massachusetts, USA -1993.
HỌC VIỆN KỸ THUẬT MẬT MÃ
- 62 -
Phạm Thị Yên – Lớp AT3C