Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
804,52 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN ————————— Đặng Thị Liên NGHIÊNCỨUPHÁTTRIỂNMÃHÓATRÊNĐƯỜNGCONGELLIPTICDỰATRÊNCHUỖICƠSỐKÉPTỐIƯU LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN ————————— Đặng Thị Liên NGHIÊNCỨUPHÁTTRIỂNMÃHÓATRÊNĐƯỜNGCONGELLIPTICDỰATRÊNCHUỖICƠSỐKÉPTỐIƯU Chuyên ngành: Cơsở toán cho tin học Mãsố : 60460110 LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Nguyễn Hải Vinh Hà Nội - 2016 LỜI CẢM ƠN Được phân công khoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên, Đại Học Quốc Gia Hà Nội, đồng ý Thầy giáo hướng dẫn TS Nguyễn Hải Vinh, thực đề tài "Nghiên cứupháttriểnmãhóađườngcongEllipticdựachuỗisốképtối ưu" Để hoàn thành luận văn này, xin bày tỏ lòng biết ơn sâu sắc tới TS Nguyễn Hải Vinh - người Thầy trực tiếp hướng dẫn bảo giúp hoàn thành luận văn thạc sĩ Tôi xin chân thành cảm ơn Thầy, Cô giáo tận tình hướng dẫn, giảng dạy suốt trình học tập rèn luyện trường Qua đây, xin gửi lời cảm ơn tới gia đình, bạn bè, đồng nghiệp - người bên cạnh cổ vũ, động viên, giúp đỡ suốt trình học tập thực luận văn Mặc dù cố gắng thực luận văn song kiến thức nhiều hạn chế nên luận văn không tránh khỏi thiết sót định Do đó, mong góp ý quý Thầy, Cô giáo bạn để luận văn hoàn thiện Tôi xin chân thành cảm ơn! Hưng Yên, ngày tháng năm 2016 Học viên Đặng Thị Liên BẢNG KÍ HIỆU, CHỮ VIẾT TẮT STT Kí hiệu DBC DBNS EC ECC NAF I S M RSA 10 Ds Dạng đầy đủ Double Base Chains Double Base Number System Elliptic Curve Elliptic Curve Cryptography Non Adjacent Form Field Inversions Field Squarings Field Multiplications Cryptosystem proposed by Rivest, Shamir, Adleman Digit set Ý nghĩa Chuỗisốkép Hệ biểu diễn sốképĐườngcongElliptic Hệ mật mãđườngcongElliptic Dạng hình thức không liền kề Phép nghịch đảo trường Phép bình phương trường Phép nhân trường Hệ mật mã khóa công khai RSA Tập số Mục lục Lời mở đầu Chương Cơsở lý thuyết 1.1 Sơ lược mật mã học 1.2 ĐườngcongElliptic trường nguyên tố hữu hạn 10 1.2.1 Định nghĩa 10 1.2.2 Tính chất đườngcongElliptic 12 1.2.3 Các phép toán đườngcongElliptic 13 1.2.4 Chi phí số phép toán điểm 16 Hệ mật mãdựađườngcongElliptic 20 1.3.1 Quá trình mãhóa 22 1.3.2 Quá trình giải mã 22 1.3 Chương Một số phương pháp chi phí tính phép nhân vô hướng đườngcongelliptic 24 2.1 Đặt toán 24 2.2 Một số phương pháp chi phí tính phép nhân vô hướng đườngcongelliptic 24 2.2.1 Phương pháp Double-and-Add 24 2.2.2 Phương pháp sử dụng chuỗi hình thức không liền kề (NAF) 27 2.2.3 Phương pháp sử dụng chuỗisốképtốiưu 30 Chương Áp dụng tính toán thực tế 3.1 50 Tính toán sở lý thuyết 50 3.1.1 Chi phí phương pháp Double-and-Add 50 3.1.2 Chi phí phương pháp NAF 51 3.1.3 Chi phí phương pháp sử dụng DBC miền Ds = {0, 1} 53 3.1.4 Chi phí phương pháp sử dụng DBC miền Ds = {0, 1, −1} 54 3.2 Kết dựasở chạy chương trình 58 3.3 Ứng dụng mãhóa giải mãđườngcongElliptic 59 3.3.1 Hệ mật mã khóa công khai ElGamal 60 3.3.2 Cài đặt chương trình sử dụng phương pháp ElGamal 60 Kết luận 64 Phụ lục 65 Tài liệu tham khảo 68 LỜI MỞ ĐẦU Ngày nay, pháttriểncông nghệ thông tin, truyền thông nói chung đặc biệt bùng nổ internet nói riêng giúp cho việc trao đổi thông tin trở nên nhanh chóng, dễ dàng Song song với lợi ích tồn số vấn đề trình lưu trữ truyền tải thông tin, thông tin bị đánh cắp, bị sai lệch bị giả mạo Điều ảnh hưởng đến tổ chức, công ty hay quốc gia Để giải vấn đề trên, an toàn thông tin đặt cấp thiết Kỹ thuật mật mã giải pháp an toàn truyền thông Các nhà khoa học phát minh hệ mật mã nhằm che dấu thông tin làm rõ chúng để tránh kẻ cố tình phá hoạt hệ mật: RSA, ElGamal an toàn, nhiên độ dài khóa lớn nên số lĩnh vực ứng dụng Chính vậy, người ta phát minh hệ mật hệ mật mãdựađườngcongelliptic Hệ mật đánh giá có độ bảo mật an toàn cao hiệu số hệ mật công khai khác khả bảo mật ECC cao với kích thước khóa nhỏ nên làm giảm thời gian tạo khóa, thu gọn kích thước chứng nhận giao dịch mạng giảm kích thước tham số hệ thống mãhóa Mục đích luận văn nghiêncứu phương pháp giảm thời gian tạo khóa cách tập trung vào hệ thắt nút cổ chai ECC - "phép nhân với đại lượng vô hướng" (gọi tắt nhân vô hướng) Q = rS , với S, Q điểm EC, r số nguyên dương Thời gian tính toán hệ phụ thuộc mạnh mẽ vào biểu diễn vô hướng r, biểu diễn thường gặp chuỗi nhị phân, chuỗi hình thức không liền kề, chuỗisố kép, Yêu cầu đặt hệ mật mãdựađườngcongelliptic giảm bớt khó khăn phép tính Q = rS với vô hướng r có nhiều cách để biểu diễn r nên ta có phương pháp tính nhân vô hướng đặc trưng cho biểu diễn Để làm rõ vai trò biểu diễn vô hướng r hệ ECC pháttriển phương pháp thực phép nhân vô hướng nhằm giảm chi phí, thời gian tính toán trình mã hóa, định chọn đề tài: "Nghiên cứupháttriểnmãhóađườngcongEllipticdựachuỗisốképtối ưu" Đối tượng nghiêncứu luận văn bao gồm sở toán học hệ mật dựađườngcong elliptic; phương pháp chi phí tính nhân vô hướng, tập trung vào phương pháp sử dụng chuỗisốképtốiưu miền Ds khác Phạm vi nghiêncứu luận văn: Dựa sách báo khoa học liên quan đến hệ mật đườngcong Elliptic, mà trọng tâm báo "Fast Elliptic curve cryptography using optimal double - Base Chains" nhóm tác giả Vorapong Suppakitpalsarn, Masato Edahiro, Hiroshi Imai Bài báo đề xuất phương án sử dụng chuỗisốképtốiưu để tính nhân vô hướng miền miền Ds = {0, 1} Ds = {0, 1, −1} Kết luận văn nghiêncứu trình hoàn thiện mãhóađườngcongElliptic qua phương pháp nhân vô hướng khác So sánh, đối chiếu phương pháp từ rút phương pháp hiệu tốiưu Ứng với phương pháp xây dựng chương trình minh họa cho Dựa vào mục đích, phạm vi, đối tượng nghiên cứu, luận văn trình bày bao gồm chương với phần mở đầu, kết luận phụ lục: • Chương 1: Cơsở lý thuyết • Chương 2: Một số phương pháp chi phí tính phép nhân vô hướng đườngcongElliptic • Chương 3: Áp dụng tính toán thực tế Chương 1.1 Cơsở lý thuyết Sơ lược mật mã học Mật mã người sử dụng từ lâu đời Các hình thức mật mãsơ khai tìm thấy từ khoảng bốn nghìn năm trước văn minh Ai Cập cổ đại Trải qua hàng nghìn năm lịch sử, mật mã sử dụng rộng rãi khắp nơi giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin nhiều lĩnh vực hoạt động người quốc gia, đặc biệt lĩnh vực quân sự, trị, ngoại giao Mật mã trước hết loại hoạt động thực tiễn, nội dung để giữ bí mật thông tin Ví dụ muốn gửi văn từ người gửi A đến người nhận B, A phải tạo cho văn mã mật tương ứng thay gửi văn rõ A gửi cho B mã mật, B nhận mã mật khôi phục lại văn rõ để hiểu thông tin mà A muốn gửi cho Do văn gửi thường chuyển qua đườngcông khai nên người “lấy trộm” được, mật mã nên không đọc hiểu được; Còn A tạo mã mật B giải mã mật thành rõ để hiểu hai người có thoả thuận chìa khoá chung, với khoá chung A tạo mã mật từ rõ B khôi phục rõ từ mã mật Khoá chung gọi khoá mật mã Để thực phép mật mã, ta cần có thuật toán biến rõ với khoá mật mã thành mã mật thuật toán ngược lại biến mật với khoá mật mã thành rõ Các thuật toán gọi tương ứng thuật toán lập mã thuật toán giải mã Các thuật toán thường không thiết phải giữ bí mật, mà cần giữ bí mật khoá mật mã Trong thực tiễn, có hoạt động ngược lại với hoạt động bảo mật khám phá bí mật từ mã “lấy trộm” được, hoạt động thường gọi mã thám hay phá khoá [2] Hiện nay, người ta chia hệ mật mã thành hai loại chính: • Mật mã khóa đối xứng, hay gọi mật mã khóa bí mật [3] • Mật mã khóa bất đối xứng, hay gọi mật mã khóa công khai [3] Nhắc đến hệ mật mã khóa bí mật, ta thấy ưu điểm trội việc dùng chung khóa để lập mã giải mã thực nhanh chóng đơn giản Mặc dù mãhóa đối xứng pháttriển từ cổ điển đến đại tồn hai điểm yếu sau: • Vấn đề trao đổi khóa người gửi người nhận: Cần có thêm kênh an toàn để trao đổi khóa cho khóa giữ bí mật có người gửi người nhận biết Điều trở nên khó khăn khối lượng thông tin truyền tải khắp giới lớn Việc thiết lập kênh an toàn tốn mặt chi phí chậm trễ mặt thời gian • Tính bảo mật khóa: Vì khóa dùng chung cho người gửi người nhận nên khóa bị lộ sở quy trách nhiệm cho người Để giải vấn đề phân phối thoả thuận khoá mật mã khoá đối xứng, năm 1976 Diffie Hellman đưa khái niệm hệ mật mã khoá công khai phương pháp trao đổi công khai để tạo khoá bí mật chung mà tính an toàn bảo đảm độ khó toán toán học, cụ thể toán tính logarit rời rạc [1] Hệ mật mã khoá công khai hay gọi hệ mật mã phi đối xứng sử dụng cặp khoá, khoá mãhoá gọi khoá công khai (public key) khoá giải mã gọi khoá bí mật hay khóa riêng (private key) Trong hệ mật này, khoá mãhoá khác với khoá giải mã Về mặt toán học từ khoá công khai khó tính khoá riêng Biết khoá không dễ dàng tìm khoá Khoá giải mã giữ bí mật khoá mãhoácông bố công khai Một người sử dụng khoá công khai để mãhoá tin tức, có người có khoá giải mãcó khả xem rõ Người gửi A mãhoá thông điệp khóa công người nhận người nhận B giải mã thông điệp với khoá riêng tương ứng Có nhiều hệ thống khoá công khai triển khai rộng rãi hệ RSA, hệ ElGamal sử dụng giao thức trao đổi khoá Diffie-Hellman lên năm gần hệ mật mãdựađườngcongElliptic Trong số hệ mật mã trên, hệ mãhóacông khai RSA hệ cộng đồng chuẩn quốc tế công nghiệp chấp nhận rộng rãi việc thực thi mật mã khoá công khai Hệ mật mã RSA, Rivest, Shamir Adleman [3] tìm ra, công bố lần vào tháng năm 1977 tạp chí Scientific American Hệ mật mã RSA sử dụng rộng rãi thực tiễn đặc biệt cho mục đích bảo mật xác thực liệu số Tính bảo mật an toàn chúng bảo đảm độ phức tạp toán số học tiếng toán phân tích số thành thừa số nguyên tố [1] Để thực mãhóa giải mã phương pháp RSA [2], RSA dùng phép lũy thừa modulo lý thuyết số thực theo bước sau: Từ đó, trọng số Hamming r : W (C[r]) = Khi đó: Q = 1717P = 20 30 − 22 31 + 26 33 P = 20 30 P − 22 31 P + 26 33 P Dựa vào khai triển, số phép toán cần tính là: • W (C[r]) − = − = phép cộng điểm • xm−1 = phép nhân điểm • ym−1 = phép nhân ba điểm Vậy chi phí tính số phép toán từ (2.2.3) là: 2Padd + 6Pdou + 3Ptri = (1[i] + 1[s] + 2[m]) + (1[i] + 2[s] + 2[m]) + (1[i] + 4[s] + 7[m]) = 11[i] + 26[s] + 37[m] Để tính nhân vô hướng Q = rP với r = 314159 Từ thuật toán 11, ta có phân tích r là: r = 215 32 + 211 32 + 28 31 + 24 31 − 20 30 Chuỗisố kép: C[314159] = R, X, Y , đó: R = −1, 1, 1, 1, X = 0, 4, 8, 11, 15 Y = 0, 1, 1, 2, Từ đó, trọng số Hamming r : W (C[r]) = Khi đó: Q = 314159P = 215 32 + 211 32 + 28 31 + 24 31 − 20 30 P = 215 32 P + 211 32 P + 28 31 P + 24 31 P − 20 30 P = 3(2(2(2(2(2(2(2(2(3(2(2(2(2(2(2(2P )))) + P )))) + P )))) + P )))) − P Dựa vào khai triển, số phép toán cần tính là: • W (C[r]) − = − = phép cộng điểm 54 • xm−1 = 15 phép nhân điểm • ym−1 = phép nhân ba điểm Vậy chi phí tính số phép toán từ (2.2.3) là: 4Padd + 15Pdou + 2Ptri = (1[i] + 1[s] + 2[m]) + 15 (1[i] + 2[s] + 2[m]) + (1[i] + 4[s] + 7[m]) = 21[i] + 42[s] + 52[m] Kết so sánh Trong phần này, ta kí hiệu sau: • Phương pháp sử dụng chuỗisốképtốiưu miền Ds = {0, 1} viết gọn lại phương pháp DBC-1 • Phương pháp sử dụng chuỗisốképtốiưu miền Ds = {0, 1, −1} viết gọn lại phương pháp DBC-2 Với r = 314159 r = 1717 ta có bảng tổng hợp chi phí phương pháp nhân vô hướng sau: Phương pháp Chi phí [i]/[m] = 30 1717 Cộng thông thường 1716 (1[i] + 1[s] + 2[m]) 56284.8[m] Double-and-Add 16[i] + 26[s] + 32[m] 532.8[m] NAF 16[i] + 27[s] + 32[m] 533.6[m] Phương pháp DBC - 15[i] + 27[s] + 35[m] 506.6[m] Phương pháp DBC - 11[i] + 26[s] + 37[m] 387.8[m] 314159 Cộng thông thường 314158 (1[i] + 1[s] + 2[m]) 10304384.2[m] Double-and-Add 28[i] + 46[s] + 56[m] 932.8[m] NAF 26[i] + 44[s] + 52[m] 867.2[m] Phương pháp DBC -1 24[i] + 45[s] + 58[m] 814[m] Phương pháp DBC -2 21[i] + 42[s] + 52[m] 715.6[m] r Bảng 2: Chi phí tính nhân vô hướng phương pháp Dựa vào kết phân tích bảng chi phí trên, ta đưa đánh giá sau: 55 • Mỗi phương pháp cho ta chi phí tính nhân vô hướng khác Qua phân tích cụ thể với r = 1717 r = 314159, ta thấy phương pháp DBC-1 DBC-2 sử dụng ba phép toán điểm lại có chi phí tính toán thấp so với phương pháp lại sử dụng hai phép toán điểm • Phương pháp DBC-2 có chi phí thực thấp Khi r lớn chênh lêch chi phí tính với phương pháp lại nhiều Với r = 1717, chi phí giảm 118.8[m] so với phương pháp DBC-1, giảm khoảng 145[m] so với phương pháp Double and Add phương pháp NAF giảm hẳn 55897[m] so với phương pháp cộng thông thường Khi r lớn hơn, độ chênh lệch chi phí phương pháp trở nên rõ ràng hơn, cụ thể với r = 314159, chi phí giảm khoảng 243.6[m] so với phương pháp DBC-1, giảm khoảng 297[m] so với phương pháp NAF, giảm khoảng 363[m] so với phương pháp Double and Add giảm hẳn 10303812[m] so với phương pháp cộng thông thường Như vậy, chi phí nhân vô hướng bốn phương pháp lại r bé có chênh lệch không nhiều, r lớn chênh lệch thể rõ ràng • Biểu diễn vô hướng r góp phần quan trọng việc tính nhân vô hướng, từ bảng thấy phương pháp dùng chuỗisốkép cho chi phí nhỏ so với chuỗi nhị phân chuỗi hình thức không liền kề Do sử dụng DBC phép toán điểm dùng tăng lên, nên làm giảm số lượng phép toán dẫn đến chi phí tính nhân vô hướng giảm Ví dụ, vài đườngcong phép nhân ba điểm tính tương đối nhanh tức chuỗisốkép nhanh khai triển nhị phân • Đối với vài số r mà khai triển nhị phân có chi phí tốt áp dụng vào hệ tính nhân vô hướng, chẳng hạn r = 1717 phương pháp Double and Add có chi phí tính thấp phương pháp NAF, nhiên chênh lệch không đáng kể Ta có biểu đồ so sánh chi phí phương pháp tính nhân vô hướng sau: 56 Hình 10: Biểu đồ so sánh chi phí phương pháp 3.2 Kết dựasở chạy chương trình Với liệu đầu vào, dựa thời gian chạy chương trình tính phép nhân vô hướng, ta có bảng kết sau: Phương pháp Thời gian (mili giây) 751 Double-and-Add 0.015 NAF 0.031 Phương pháp DBC - 0.015 19991 Double-and-Add 0.437 NAF 0.359 Phương pháp DBC - 0.326 99131 Double-and-Add 7.44 NAF 7.408 Phương pháp DBC-1 7.225 374321 Double-and-Add 156.488 NAF 155.87 Phương pháp DBC-1 112.4 p Bảng 3: Thời gian chạy chương trình tính nhân vô hướng phương pháp 57 Tóm lại, dựa kết tính chi phí phép nhân vô hướng kết chạy chương trình phương pháp nhân vô hướng, ta rút kết luận: • Phương pháp tính nhân vô hướng đóng vai trò quan trọng trình mãhóa giải mã • Phương pháp tính nhân vô hướng sử dụng chuỗisốképtốiưu cho chi phí thấp tốc độ mãhóa nhanh phương pháp lại • Chi phí phép nhân vô hướng phụ thuộc chủ yếu vào số lượng phép toán điểm không phụ thuộc nhiều vào việc sử dụng nhiều hay phép toán điểm Số lượng phép toán điểm nhiều chi phí tính toán cao ngược lại • Chi phí phép nhân vô hướng phụ thuộc vào miền giá trị số Ds Mở rộng miền Ds đồng nghĩa với việc giảm trọng số Hamming Từ làm số phép cộng điểm kết chi phí tính nhân vô hướng giảm • Chi phí phép nhân vô hướng phụ thuộc vào biểu diễn vô hướng r miền số khác Như vậy, việc giảm chi phí tính toán tăng tốc độ xử lý phép tính nhân vô hướng giúp cho hệ mật đườngcongellipticcóưu trội phương pháp mãhóacông khai khác ECC ứng viên phù hợp để thay RSA việc tạo khóa mã ngắn mà đảm bảo an toàn, từ triển khai nhiều tảng thiết bị từ mạch điện tử đơn giản đến máy tính lớn, dễ dàng tạo hệ thống mạng đáng tin cậy phục vụ tốt cho xã hội 3.3 Ứng dụng mãhóa giải mãđườngcongElliptic Phần giới thiệu hệ mật mãcông khai ElGamal sử dụng phương pháp ElGamal để mãhóa giải mã văn 58 3.3.1 Hệ mật mã khóa công khai ElGamal Hệ mật mã ElGamal đề xuất T.ElGamal năm 1985, dựa vào độ phức tạp toán logarit rời rạc Sơ đồ hệ mật mã khóa công khai ElGamal (tài liệu [1]) cho bởi: δ = (P, C, K, E, D) Trong đó: • P = Zp∗ tập kí tự rõ C = Zp∗ Zp∗ tập kí tự mã với p số nguyên tố • K = (K , K ” ) tập khóa, K = (p, α, β) khóa công khai dùng để lập mã, K ” = a khóa bí mật dùng để giải mã với α phần tử nguyên thủy theo mod p, tức Zp∗ β ≡ αa mod p • E thuật toán lập mã • D thuật toán giải mã 3.3.2 Cài đặt chương trình sử dụng phương pháp ElGamal Phương pháp mãhóa khóa công khai ElGamal A muốn gửi thông báo cho B Trước hết B sinh khóa công khai sau: • B chọn đườngcongelliptic E trường nguyên tố hữu hạn Zp cho toán logarit rời rạc khó (E(Zp )) • B chọn điểm P ∈ (E) (thông thường ta chọn điểm P cho bậc số nguyên tố lớn) • B chọn số nguyên bí mật s tính B = sP Như vậy: (E, Zp , P, B) khóa công khai B Để gửi thông báo cho B, A làm sau: • Tải khóa công khai • Biểu diễn thông báo cẩu A điểm thuộc đườngcong E • Chọn số nguyên ngẫu nhiên bí mật k tính M1 = kP 59 • Tính M2 = M + kB • Gửi M1 , M2 cho B B giải mã cách tính: M = M2 − sM1 Cách giải mã vì: M2 − sM1 = (M + kB) − skP = M + ksP − skP = M Cài đặt chương trình Sử dụng phương pháp Elgamal để mãhóa giải mã văn với tham số sau: • Văn cần mãhóa lưu file test.txt sau: Hình 11: Văn cần mãhóa • Chọn đườngcong E với hệ số a = 1, b = 188, p = 751 Khi đườngcong y = (x3 + x + 188) mod 751 cósố điểm 769 số nguyên tố, thỏa mãn điểm đườngcong phần tử sinh nhóm điểm đườngcong E • Chọn số nguyên bí mật s = 754 • Điểm sở P = (0; 375) • Chọn số nguyên ngẫu nhiên bí mật k = 136 Khi đó, ta cómã sau: Do có khác biệt kiểu int kiểu char C dẫn đến chênh lệch giá trị 60 Hình 12: Bản mã ghi tệp đọc lại tệp Do đó, ta cần trì đối chiếu đảm bảo trả lại giá trị số kí tự trước ghi vào tệp Với tham số trên, ta có đối chiếu tương ứng là: Hình 13: Bản đối chiếu Trong đó, đối chiếu xây dựng sau: x = m1 ∗ Q.x mod p y = m2 ∗ Q.y mod p Với m1 , m2 kí tự rõ có kiểu char; Q.x, Q.y tọa độ điểm bí mật kP , có kiểu int p số nguyên tố xác định đường cong; x, y có kiểu int Khi đó, x, y lưu vào mã kiểu kí tự char với giá trị x mod 127 y mod 127, đối chiếu tương ứng x div 127 y div 127 Việc lấy lại giá trị x ban đầu thực sau: • Gọi x1 , a kí tự mã giá trị đối chiếu tương ứng • Ép kiểu x1 từ ký tự char kiểu số nguyên int • Thực lấy lại giá trị x theo công thức: x = a ∗ 127 + x1 61 Sau thực trình trên, ta thu x1 = x ban đầu để tiếp tục thực thao tác giải mã Cuối cùng, việc giải mã thu văn rõ: Áp dụng phương pháp Hình 14: Bản kết giải mã ElGamal để mãhóa giải mã, ta thay đổi phương pháp tính nhân vô hướng từ sử dụng chuỗisốképtốiưu phương pháp khác Double and add hay NAF, thu kết 62 KẾT LUẬN Các kết đạt luận văn Sau trình tìm hiểu nghiêncứu đề tài: "Nghiên cứupháttriểnmãhóađườngcongEllipticdựachuỗisốképtối ưu", thu hoạch kết sau: • Nghiêncứusở lý thuyết đườngcongellipticelliptic trường nguyên tố hữu hạn: định nghĩa, tính chất, phép toán chi phí phép toán điểm đườngcongElliptic • Phân tích tìm hiểu vài phép toán điểm đườngcongElliptic trường nguyên tố hữu hạn để áp dụng vào tính nhân vô hướng hệ mật mãđườngcongElliptic • Nghiêncứu phương pháp sử dụng đại diện vô hướng r để tính nhân vô hướng - sở để xây dựng đườngcong elliptic: phương pháp nhân đôi cộng; phương pháp sử dụng chuỗi hình thức không liền kề (NAF), phương pháp sử dụng chuỗisốképtốiưu miền Ds = {0, 1} Ds = {0, 1, −1} • Đưa kết tính toán sở lý thuyết, kết chạy chương trình tính nhân vô hướng cho phương pháp để chứng minh việc sử dụng chuỗisốképtốiưu cho chi phí tính toán thấp, tốc độ, thời gian nhanh phương pháp lại, đặc biệt với số nguyên tố p lớn • Ứng dụng thuật toán tính nhân vô hướng vào việc mãhóa giải mã văn phương pháp ElGamal Hướng nghiêncứu Tiếp tục pháttriển đề tài theo hướng giảm thời gian, chi phí tính toán phép tính nhân vô hướng hệ mật mãdựađườngcongelliptic theo hướng sau: • Hoàn thiện chương trình tính nhân vô hướng sử dụng chuỗisốképtốiưu miền Ds = {0; 1; −1}, • Thực nghiệm mãhóa giải mã với độ dài khóa độ an toàn thực tế, • Mở rộng thuật toán tìm chuỗisởképtốiưu cho d-số nguyên miền Ds bất kì, • Nghiêncứu phương pháp sử dụng chuỗisốképtốiưu để tính nhân đa vô hướng miền Ds 63 PHỤ LỤC Thuật toán 9: Tính wNAF(r) Input: số w, số nguyên dương r Output: wN AF (r) 1: i ← 2: while r ≥ 3: if k is odd then 4: ri ← r mod w 5: r ← r − ri 6: else 7: ri ← 8: r ← 2r 9: i←i+1 10: return (ri−1 , ri−2 , , r1 , r0 ) Thuật toán 10: Phương pháp wNAF Input: P ∈ (E), số nguyên dương r với khai triển N AF (r) = (rn−1 , rn−2 , , r1 , r0 ) Output: Q = rP 1: Tính giá trị: Pi = iP for i ∈ 1, 3, 5, , 2w−1 − 2: Q ← 3: for i = n − downto 4: Q ← 2Q 5: if(ri = 0) then 6: if ri > then Q ← Q + Pri 7: else Q ← Q − Pri 8: return Q Thuật toán 13 : Tìm tốiưu FindOptimal (v, C[v2 ], C[v3 ]) Input: Số nguyên dương v , C[v2 ] chuỗisốképtốiưusốképtốiưu v Output: C[v] chuỗisốképtốiưu v 1: c2 ← P (C[v2 ]) + Pdou 64 v , C[v3 ] chuỗi 2: if v ≡ mod then 3: c2 ← c2 + Padd 4: end if 5: c3 ← P (C[v3 ]) + Ptri 6: if v ≡ mod then 7: c3 ← c3 + Padd 8: if v ≡ mod then 9: c3 ← ∞ 10: end if 11: if c2 ≤ c3 and v ≡ mod then 12: C[v] ≡ R[v], X[v], Y [v] where R[v] = R[v2 ] X[v] = x[v]0 , ., x[v]m−1 where x[v]t ← x[v2 ]t + Y [v] = Y [v2 ] 13: else if c2 ≤ c3 and v ≡ mod then 14: C[v] ≡ R[v], X[v], Y [v] where R[v] = 1, R[v2 ] X[v] = 0, x[v]1 , ., x[v]m−1 where x[v]t ← x[v2 ]t−1 + Y [v] = 0, Y [v2 ] 15: else if v ≡ mod then 16: C[v] ≡ R[v], X[v], Y [v] where R[v] = R[v3 ] X[v] = X[v3 ] Y [v] = y[v]0 , ., y[v]m−1 where y[v]t ← y[v2 ]t + 17: else if v ≡ mod then 18: C[v] ≡ R[v], X[v], Y [v] where R[v] = 1, R[v3 ] X[v] = 0, X[v3 ] Y [v] = 0, y[v]1 , ., y[v]m−1 where y[v]t ← y[v3 ]t−1 + 19: end if Thuật toán 14: Tìm tập mang tập số cho trước Input: Cho tập số Ds 65 Output: Tập mang G 1: Ct ←− 0, G ←− ∅ 2: while Ct = ∅ 3: let x ∈ Ct 4: Ct ←− Ct ∪ ( x+d ∈ Z |d ∈ Ds − G − x) x+d+1 5: Ct ←− Ct ∪ ( ∈ Z |d ∈ Ds − G − x) 6: Ct ←− Ct ∪ ( x+d ∈ Z |d ∈ Ds − G − x) x+d+1 7: Ct ←− Ct ∪ ( ∈ Z |d ∈ Ds − G − x) 8: G ←− G ∪ x 9: Ct ←− Ct − x 10: end while Thuật toán 16: Thuật toán FindOptimal(va, C[v2 + G], C[v3 + G]) Input: Cho số nguyên dương va va va va Chuỗisốképtốiưu [ ] + g[[ ]] với g[[ ]] ∈ G, C[va2 + G] 2 va va va ] + g[[ ]] với g[[ ]] ∈ G, C[va3 + G] 3 Output: Chuỗisốképtốiưu va, C[va] Chuỗisốképtốiưu [ 1: for all u ∈ Ds 2: if va − u ≡ mod then 3: c2,u ←− P (C[ va − u ]) + Pdou 4: if u = then 5: c2,u ←− c2,u + Padd 6: else 7: c2,u ←− ∞ 8: end if 9: end if 10: end for 11: c2 ←− minu∈Ds ,C2,u ; u2 ←− minargu∈Ds ,C2,u , vc2 ←− 12: for all u ∈ Ds 13: if va − u ≡ mod then 14: c3,u ←− P (C[ 15: if u = then va − u ]) + Ptri 66 va − u2 16: c3,u ←− c3,u + Padd 17: else 18: c3,u ←− ∞ 19: end if 20: end if 21: end for 22: c3 ←− minu∈Ds ,C3,u ; u3 ←− minargu∈Ds ,C3,u , vc3 ←− va − u3 23: if c2 ≤ c3 and u2 = then 24: C[v] ←− R[v], X[v], Y [v] where R[v] = R[vc2 ] X[v] = x[v]0 , , x[v]m−1 where x[v]t ←− x[vc2 ]t + Y [v] = Y [vc2 ] 25: else if c2 ≤ c3 then 26: C[v] ←− R[v], X[v], Y [v] where R[v] = u2 , R[vc2 ] X[v] = 0, x[v]0 , , x[v]m−1 where x[v]t ←− x[vc2 ]t−1 + Y [v] = 0, Y [vc2 ] 27: else if u3 = then 28: C[v] ←− R[v], X[v], Y [v] where R[v] = R[vc3 ] X[v] = X[vc3 ] Y [v] = y[v]0 , , y[v]m−1 where y[v]t ←− y[vc3 ]t + 29: else 30: C[v] ←− R[v], X[v], Y [v] where R[v] = u3 , R[vc3 ] X[v] = 0, X[vc3 ] Y [v] = 0, y[v]1 , , y[v]m−1 where y[v]t ←− y[vc3 ]t−1 + 31: end if 67 Tài liệu [1] Phan Đình Diệu (2002), Lý thuyết mật mã an toàn thông tin, NXB Đại Học Quốc Gia Hà Nội [2] Dương Anh Đức Trần Minh Triết (2005), Mãhóa ứng dụng, NXB Đại học Quốc gia thành phố Hồ Chí Minh [3] Trần Minh Văn (2008), Bài giảng An Toàn bảo mật thông tin, Trường ĐH Nha Trang [4] D Hankerson, A Menezes, and S Vanstone,"Guide to Elliptic Curve Cryptography",Springer, New York, Secaucus, NJ, 2003, isbn: 038795273X [5] Jayaprakash Kar( 2015), "Low Cost Elliptic Curve Scalar Multiplication For Constrained Devices", International Journal Of Pure And Apllied Mathematics, Vol.102 [6] Mathieu Cietl, Marc Joye, Kristin Lauter, Peter L.Montgomery( 2003), "Trading Inversions for Multipications in Elliptic Curve Cryptography", Cryptology ePrint Archive, Report (2003/25) [7] Nicolas Meloni and M Anwar Hasan (2009), "Elliptic Curve Scalar Multiplication Combining Yao’s Algorithm and Double Bases", Department of Electrical and Computer Engineering University of Waterloo [8] V S Dimitrov, L Imbert, and P K Mishra(2005), "Fast Elliptic Curve Point Multiplication using Double-Base Chains", IACR Cryptology ePrint Archive [9] V S Dimitrov, G A Jullien, and W C Miller (May1998), "An algorithm for modular exponentitation", Information Processing Letters, 66(3),155–159 [10] V S Dimitrov, L Imbert, and P K Mishra (2012), "Optimal Elliptic Curve scalar mutiplication using Double-Base Chains", The Society of Digital Information and Wireless Communications, International Journal of Digital Information and Wireless Communications (IJDIWC) 2(1), pp 115-134 [11] Vorapong Suppakitpalsarn, Masato Edahiro, Hiroshi Imai (2012), "Fast Elliptic curve cryptography using optimal double - Base Chains", International Journal of Digital Information and Wireless Communications, Vol.2(No.1), pp.923-942 68 ... TỰ NHIÊN ————————— Đặng Thị Liên NGHIÊN CỨU PHÁT TRIỂN MÃ HÓA TRÊN ĐƯỜNG CONG ELLIPTIC DỰA TRÊN CHUỖI CƠ SỐ KÉP TỐI ƯU Chuyên ngành: Cơ sở toán cho tin học Mã số : 60460110 LUẬN VĂN THẠC SĨ KHOA... ECC phát triển phương pháp thực phép nhân vô hướng nhằm giảm chi phí, thời gian tính toán trình mã hóa, định chọn đề tài: "Nghiên cứu phát triển mã hóa đường cong Elliptic dựa chuỗi số kép tối ưu" ... thuyết toán học đường cong elliptic (elliptic curve) trường hữu hạn [3] để xây dựng mã hóa dựa đường cong Elliptic Mã hóa đường cong elliptic giải vấn đề mã hóa RSA dùng tham số có kích thước