Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
2,02 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐINH THỊ THÚY NGHIÊN CỨU VÀ PHÁT TRIỂN ỨNG DỤNG JAVACARD LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội - 2017 Hà Nội - 2017 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐINH THỊ THÚY NGHIÊN CỨU VÀ PHÁT TRIỂN ỨNG DỤNG JAVACARD Ngành: Công nghệ thông tin Chuyên ngành: Quản lý Hệ thống thông tin Mã số: Chuyên ngành đào tạo thí điểm LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHÙNG VĂN ỔN TS LÊ PHÊ ĐÔ Hà Nội - 2017 i LỜI CẢM ƠN Lời xin gửi lời cảm ơn sâu sắc đến thầy TS Lê Phê Đô thầy TS Phùng Văn Ổn, tận tâm, tận lực hướng dẫn, định hướng cho tôi, đồng thời, cung cấp nhiều tài liệu tạo điều kiện thuận lợi suốt trình học tập nghiên cứu để hoàn thành luận văn Tôi xin chân thành cảm ơn đến thầy, cô Bộ môn Quản lý hệ thống thông tin Khoa Công nghệ thông tin, Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội với ban lãnh đạo nhà trường nhiệt tình giảng dạy truyền đạt kiến thức, kinh nghiệm qúy giá suốt trình học tập rèn luyện trường Tôi xin gửi lời cảm ơn đến bạn học viên lớp K22-QLHTTT, nhóm bảo mật UET đồng hành suốt trình học tập Cảm ơn gia đình, bạn bè quan tâm động viên giúp có nghị lực phấn đấu để hoàn thành tốt luận văn Do kiến thức thời gian có hạn nên luận văn không tránh khỏi thiếu sót định Tôi mong nhận góp ý quý báu thầy cô, đồng nghiệp bạn bè Một lần xin gửi lời cảm ơn chân thành sâu sắc Hà Nội, tháng 07 năm 2017 Học viên thực Đinh Thị Thúy ii LỜI CAM ĐOAN Tôi xin cam kết đạt luận văn “Nghiên cứu phát triển ứng dụng JavaCard” thực hướng dẫn TS Lê Phê Đô TS.Phùng Văn Ổn Trong toàn nội dung nghiên cứu luận văn, vấn đề trình bày tìm hiểu nghiên cứu cá nhân trích dẫn nguồn tài liệu số trang web đưa phần Tài liệu tham khảo Tôi xin cam đoan lời thật chịu trách nhiệm trước thầy cô hội đồng bảo vệ luận văn thạc sĩ Hà Nội, tháng 07 năm 2017 Đinh Thị Thúy iii MỤC LỤC 1.1 Lịch sử phát triển thẻ thông minh 1.2 Cấu tạo phân loại thẻ thông minh 1.3 Ưu nhược điểm thẻ thông minh 1.4 Thách thức việc phát triển ứng dụng thẻ thông minh 12 1.5 Các hình thức công thẻ thông minh 12 2.1 Giới thiệu JavaCard 15 2.2 Kiến trúc JavaCard 17 2.3 Tập ngôn ngữ JavaCard 18 2.4 Máy ảo để chạy Java Card 18 2.5 Cài đặt Java Card chương trình cài đặt thiết bị (Off-Card) 20 2.6 Môi trường chạy JavaCard 22 2.7 API Java Card 23 2.8 Package quy ước đặt tên Applet 25 2.9 Java Card Applet 26 2.9.1 Tiến trình phát triển Applet 26 2.9.2 Cài đặt applet 27 2.10 Phương thức truyền nhận, trao đổi liệu 29 3.1 Cơ sở lý thuyết 32 3.2 Những ý để lựa chọn đường cong Elliptic phù hợp 34 3.2.1 Trường K 35 3.2.2 Dạng đường cong elliptic 35 3.2.3 Phương pháp lựa chọn 35 iv 3.3 So sánh RSA ECC 36 3.4 Mật mã đường cong elliptic 38 3.5 Chữ ký số hệ mật đường cong Elliptic 39 3.5.1 Sơ đồ chữ ký ECDSA 39 3.5.2 Sơ đồ chữ ký Nyberg – Rueppel 40 3.5.3 Sơ đồ chữ ký mù Harn ECC 40 3.5.4 Sơ đồ chữ ký mù bội Harn ECC 41 3.6 Đánh giá công hệ mật đường cong Elliptic 42 3.6.1 Phương pháp Baby step - Giant step 42 3.6.2 Phương pháp Pohlig – Hellman 42 3.6.3 Tấn công MOV 43 3.6.4 Phương pháp Index Xedni 43 3.6.5 Các công dựa giả thuyết Diffie – Hellman 43 3.6.6 Các công cài đặt 44 3.7 Chuẩn tham số cho hệ mật Elliptic 44 3.8 Sinh tham số cho hệ mật Elliptic 45 3.8.1 Tham số miền đường cong Elliptic 45 3.8.2 Sinh kiểm tra cặp khóa đường cong Elliptic 46 3.8.3 Thuật toán kiểm tra điều kiện MOV 47 3.8.4 Thuật toán sinh đường cong ngẫu nhiên 47 4.1 Bài toán……….… 48 4.2 Giải pháp kết hợp chữ ký ECDSA đăng ký thẻ trực tuyến 48 4.2.1 Quy trình đăng ký thẻ trực tuyến 48 4.2.2 Chữ ký ECDSA dùng đăng ký thẻ trực tuyến 49 4.2.3 Thiết kế chương trình 52 v DANH MỤC HÌNH VẼ Hình 1.1 Chip tự động Hình 1.2 Thẻ CP8 Hình 1.3 Sơ đồ lịch sử phát triển thẻ thông minh Hình 1.4 Thẻ thông minh tiếp xúc đầu đọc thẻ Hình 1.5 Thẻ không tiếp xúc Hình 1.6 Thẻ thu phí giao thông thẻ dùng cho việc giao thông công cộng Hình 2.1 Các tính chung Java Card chuẩn Java 16 Hình 2.2 Kiến trúc tổng quát công nghệ JavaCard 17 Hình 2.3 Máy ảo JavaCard 18 Hình 2.4 Trình cài đặt JavaCard chương trình cài đặt thẻ 21 Hình 2.5 Kiến trúc hệ thống thẻ 22 Hình 2.6 Tiến trình phát triển Applet 27 Hình 2.7 Trao đổi thông tin ứng dụng thẻ ứng dụng thiết bị đầu cuối 30 Hình 2.8 Mã trạng thái phản hồi 31 Hình 3.1 Một số ví dụ đường cong Elliptic 32 Hình 3.2 Phép cộng đường cong elliptic 34 Hình 3.3 Thuật toán sinh tham số miền đường cong elliptic 45 Hình 4.1 Quy trình đăng ký thẻ trực tuyến 49 Hình 4.2 Sơ đồ thuật toán chữ ký số ECDSA 50 Hình 4.3 Quy trình đăng ký thẻ trực tuyến sử dụng chữ ký điện tử 51 Hình 4.4 Mẫu tờ khai đăng ký thẻ trực tuyến 52 Hình 4.5 Demo ký văn 53 vi DANH MỤC BẢNG Bảng 2.1: Các thuộc tính mà thư viện hỗ trợ .18 Bảng 2.2: Các ngoại lệ 24 Bảng 2.3 Cấu trúc ADI 26 Bảng 2.4 Cấu trúc câu lệnh APDU 30 Bảng 2.5 Cấu trúc APDU phản hồi .30 Bảng 3.1 Độ dài khóa RSA ECC mức an toàn .36 Bảng 3.2 So sánh thời gian thực RSA ECC 37 Báng 3.3 So sánh độ dài khóa RSA ECC 37 vii DANH SÁCH CÁC TỪ VIẾT TẮT TT TỪ VIẾT TẮT DHP DLP EC ECC ECDLP MOV TIẾNG ANH Diffie-Helman Problem Discrete Logarithm Problem Elliptic Curve Elliptic Curve Cryptosystem Elliptic Curver Discrete Logarithm Problem Menezes-Okamoto-Vanstone attack THUẬT NGỮ MẬT MÃ Bài toán Diffie-Hellman Bài toán logarithm rời rạc trường hữu hạn Đường cong elliptic Hệ mật Elliptic Bài toán logarithm rời rạc đường cong elliptic Tấn công MOV Secure Sockets Layer Là tiêu chuẩn công nghệ bảo mật, truyền thông mã hoá máy chủ Web server trình duyệt (browser) SSLHP SSL Handshake protocol Giao thức bắt tay 10 SSLRP JC 11 PVC SSL Record Layer protocol Java Card Polyvinyl chloride Giao thức lớp ghi JavaCard Loại nhựa cứng mùi Một loại nhựa nhiệt dẻo dai, chịu va đập mạnh Hệ thống thông tin di động toàn cầu hệ thứ hai (2G) Môi trường thát triển máy trạm JavaCard EMV chuẩn thẻ toán thông minh SSL 12 ABS 13 GSM 14 JCWDE 15 EMV Acrylonnitrile, Butadiene, Styrene Global System for Mobile Communication Java Card Workstation Development Environment Europay, MasterCard, Visa MỞ ĐẦU Tính cấp thiết đề tài luận văn Ngày nay, hội nhập kinh tế sâu rộng mang đến cho người tiêu dùng Việt Nam hội tiếp cận với xu hướng đại giới Con người dần chuyển sang sử dụng dịch vụ thông minh hơn, tiện lợi để đáp ứng nhu cầu sống cách đại, tối ưu Giờ người tiêu dùng dễ dàng mua sắm, toán dịch vụ sinh hoạt, giao thông, y tế mà không cần phải thời gian công sức tới điểm giao dịch trước thay vào việc sử dụng thiết bị đơn giản nhỏ gọn thẻ thông minh Sự phát triển nhanh chóng công nghệ bán dẫn cho phép nhà sản xuất chip tạo chip hay thẻ thông minh ngày nhỏ gọn với sức mạnh tính toán cao Tuy nhiên việc có nhiều nhà sản xuất chip, công việc phát triển ứng dụng cho thẻ thông minh gặp khó khăn tương thích Do nhu cầu tảng chung bên chip đặt ra, công nghệ Java Card phát triển để phục vụ mục đích Với việc tạo môi trường ảo chung tất hệ điều hành hỗ trợ JavaCard, công nghệ giúp cho việc phát triển ứng dụng chip trở nên dễ dàng giúp tiết kiệm thời gian nghiên cứu phát triển Hình thức mua sắm trực tuyến ngày phổ biến người tiêu dùng dễ dàng chọn lựa, sở hữu hàng yêu thích hay săn tìm chương trình giảm giá, khuyến hấp dẫn sở hữu thẻ tín dụng Thẻ tín dụng phương tiện toán phù hợp với lối sống đại Tuy nhiên, quy trình đăng ký thẻ tín dụng nhiều thời gian, người tiêu dùng sau chuẩn bị giấy tờ, tới chi nhánh ngân hàng để đăng ký, thời gian đăng ký hạn chế hành gây bất tiện cho người đăng ký thẻ Ngoài thời gian chờ đợi thẻ từ năm đến bẩy ngày phải lên chi nhánh nơi đăng ký để nhận thẻ Đi đôi với việc phổ dụng giao dịch thông qua mạng Internet dẫn đến nguy an toàn thông tin sử dụng thẻ tín dụng Do đó, vấn đề đặt làm đảm bảo an toàn thông tin giao dịch trực tuyến đăng ký thẻ Chúng ta cần có giải pháp đảm bảo an toàn thông tin sử dụng xây dựng dựa lý thuyết mật mã, an toàn bảo mật thông tin Các nhà khoa học phát minh hệ mật mã RSA, Elgamal,…nhằm che dấu thông tin làm rõ chúng để tránh nhòm ngó kẻ cố tình phá hoại Mặc dù an toàn có độ dài khoá lớn nên số lĩnh vực ứng dụng Chính hệ mật đường cong elliptic đời Đây hệ mật đánh giá hệ mật có độ bảo mật an toàn cao hiệu nhiều so với hệ mật công khai khác Ở phạm vi đề tài đặt vấn đề nghiên cứu ứng dụng hệ mật đường cong Elliptic vào bảo mật thẻ thông minh nhằm đảm bảo an toàn thông tin việc đăng ký thẻ trực tuyến giao dịch trực tuyến Internet 41 Với phần tử xG yG GF(pn) xác định điểm G=(xG,yG) E(GF(pn)) ( G ≠ O với O điểm gốc) Giả sử điểm G có bậc q Việc sinh khóa bao gồm: (1) Chọn khóa bí mật d số nguyên ngẫu nhiên [2, q – 1] (2) Tính khóa công khai Q, điểm E cho Q = dG b Ký mù Giả sử Bob yêu cầu Alice ký lên văn mo mà m đại diện văn (m = H(mo) với H hàm băm đó) Giao thức ký thực sau: Alice sinh cặp khóa (𝑘, 𝑅̅) theo cách sau: chọn ngẫu nhiên 𝑘̅ ∈ [2, 𝑞 − 1] tính 𝑅̅=𝑘̅ G = (𝑥𝑘̅ , 𝑦𝑘̅ ) Đặt 𝑟̅ = 𝑥𝑘̅ gửi 𝑟̅ 𝑅̅ cho Bob Bob chọn tham số làm mù a,b ∈ [1, q-1], tính R E cho R = a 𝑅̅ + bG = (xk,yk) tính r = c(xk) 𝑚 ̅ = (m+r)a-1 - 𝑟̅ Sau gửi 𝑚 ̅ cho Alice (𝑚 ̅ m sau bị làm mù) Alice tính 𝑠̅ = d(𝑚 ̅ + 𝑟̅ ) + 𝑘 (𝑚𝑜𝑑 𝑞), gửi 𝑠̅ cho Bob Bob nhận 𝑠̅, xóa mù để có chữ ký s m cách tính s =a𝑠̅ +b cặp (r,s) chữ ký m 3.5.4 Sơ đồ chữ ký mù bội Harn ECC [2] Đa chữ ký hiểu chữ ký tạo thành nhiều người ký Có văn cần ký số người thay người nhằm bảo đảm tính an toàn Những người ký nội dung văn ký a Sinh khóa: Việc chọn tham số cho đường cong elliptic tương tự sơ đồ chữ ký Harn Giả sử có t người ký Ui với i=1,….,t Việc sinh khóa thực qua bước: Mỗi người ký Ui chọn ngẫu nhiên khóa bí mật di số nguyên thuộc [2, q – 1] Khóa công khai người ký Ui điểm: Qi = diG = (xdi, ydi), i=1,….,t Khóa công khai cho tất người ký là: Q = Q1 + ….+ Qt = dG = (xd,yd) với d= d1+ ….+ dt (mod q) b Ký mù m: Người ký Ui sinh lần cặp (𝑘𝑖 , 𝑅̅𝑖 ) cách chọn ngẫu nhiên 𝑘𝑖 ∈ [2,q-1] tính 𝑅̅𝑖 =𝑘𝑖 G =(xki,yki ) Ui đặt 𝑟̅𝑖 = 𝑥𝑘𝑖 ̅𝑖 𝑅̅𝑖 cho ban thư ký ̅̅̅ , i=1,…,t gửi 𝑟 Ban thư ký chọn tham số làm mù a,b ∈ [1,q-1], tìm điểm R E cho R=a𝑅̅ + bQ = (xk,yk) 𝑅̅ = ̅̅̅ 𝑅1 + … + ̅̅̅ 𝑅𝑡 Q= Q1 + … + Qt Ban thư -1 ký tính r=c(xk) (modq) 𝑚 ̅ =(m+r+b)a -𝑟̅ Sau gửi 𝑚 ̅ 𝑣à 𝑟̅ đến cho người ký Ui Ui tính chữ ký 𝑠̅𝑖 = di (𝑚 ̅ + 𝑟̅ ) + 𝑘̅𝑖 (mod q), i=1,…,t, gửi 𝑠̅𝑖 tới ban thư ký Ban thư ký tính 𝑠̅G ̅ + 𝑟̅ )Qi =(xei,yei) kiểm tra 𝑟̅ I có xei (mod q) 𝑖 - (𝑚 42 i=1,….,t Chữ ký mù nhóm ECC cặp (r,s) s =𝑟̅ a(mod q) 𝑠̅ =𝑠̅i +….+ 𝑠̅t (mod q) 3.6 Đánh giá công hệ mật đường cong Elliptic 3.6.1 Phương pháp Baby step - Giant step Phương pháp Babystep – GiantStep phương pháp công lên hệ mật mã ECC, thực với thời gian hàm mũ Nó giải toán DLP trường nguyên tố Zp mở rộng cho toán EDLP Bài toán Tìm k cho kG = Q E(Fq) với #E(Fq) = N, giả sử k tồn thực Thuật toán: Chọn số nguyên m > √N Tính mG Với i = đến i = m-1 tính (và lưu lại) iG Với j = đến j = m-1 tính (và lưu lại) Q – jmG Sắp xếp danh sách bước theo thứ tự định So sánh danh sách bước tìm cặp i, j thỏa mãn iG = Q – jmG Kết trả lại k i + jm (mod N) Đánh giá: nhóm điểm đường cong elliptic cấp N, phương pháp cần khoảng √𝑁 bước tính √𝑁 nhớ 3.6.2 Phương pháp Pohlig – Hellman Định nghĩa: Giả sử 𝑝 − = ∏𝑘𝑖−1 𝑝𝑖𝐶𝑖 , pi số nguyên tố đặc biệt Giá trị a = log xác định cách theo modulo p-1 Trước hết nhận xét rằng, tính a mod piCi với i, i k, thì: p-1 (mod qc) p-1 ≠ (mod qc+1) tính a mod (p-1) theo định lý phần dư Để thực diều ta giả sử q số nguyên tố Thuật toán Pohlig - Hellman để tính log mod qc: Tính = (p-1)/q mod p với i q-1 Đặt j = j = While j c-1 Tính = j(p-1)/q j+1 mod p Tìm i cho = i aj = i j+1 = j -aj qj mod p j = j +1 43 Phương pháp Pohig – Hellman thực tốt tất ước nguyên tố N nhỏ Nếu ước nguyên tố lớn xấp xỉ độ lớn N phương pháp khó áp dụng Do hệ mật dựa logrith rời rạc thường chọn bậc nhóm có chứa thừa số nguyên tố lớn 3.6.3 Tấn công MOV Phương pháp công MOV ( đưa Menezes, Okamoto, Vanstone) làm yếu toán logarit rời rạc đường cong elliptic E(Fq) thành toán logarith rời rạc trường Fqm với m Khi công công số, m nhỏ Vì toán logarithm rời rạc trường hữu hạn bị công phương pháp tính số giải nhanh toán logarithm rời rạc đường cong elliptic với điều kiện trường Fqm không lớn nhiều so với trường Fq Tấn công MOV loại đường cong elliptic sử dụng, cách đưa việc giải toán logarit rời rạc đường cong elliptic trở thành toán logarit rời rạc trường hữu hạn mở rộng với độ mở rộng tùy thuộc vào loại đường cong Do đó, đường cong siêu lạ ưa dùng giai đoạn đầu lại trở nên yếu độ mở rộng cao Nét đặc biệt công MOV việc sử dụng phép ghép cặp (pairings) đường cong elliptic, với kết mẻ lý thuyết số Không phục vụ cho việc phá mã, việc sử dụng phép ghép cặp sau trở nên hữu hiệu việc xây dựng mã 3.6.4 Phương pháp Index Xedni Thuật toán tính số ngược nâng điểm P1 , P2 , , Pn , sau chọn đường cong Elliptic E (Q) chứa điểm nâng hy vọng chúng phụ thuộc tuyến tính Nghĩa thỏa mãn quan hệ ∑𝑟𝑖=1 𝑛𝑖 𝑃𝑖 =0 Tuy nhiên, xác suất để chúng phụ thuộc tuyến tính nhỏ Thuật toán Index Xedni có thời gian chạy hàm mũ không hiệu thực tế Do thuật toán Index Xedmi vướng phải hai toán khó vì: - Bài toán tìm phép nâng theo nghĩa tạo điểm nâng phụ thuộc tuyến tính toán khó xác suất điểm nâng phụ thuộc tuyến tính nhỏ - Giải phương trình quan hệ tuyến tính khó độ cao điểm nâng lớn 3.6.5 Các công dựa giả thuyết Diffie – Hellman Tấn công p-1 có ước d thỏa mãn ≈ √𝑝 khóa bí mật tính với O( 4√𝑝) nhớ Nếu p+1 có ước d thỏa mãn d≈ 3√𝑝 khóa bí mật tính O(log p 3√𝑝) phép toán sử dụng O(∛𝑝) nhớ 44 3.6.6 Các công cài đặt Kiểu công cài đặt thứ dựa điểm không hợp lệ đường cong Elliptic Nó áp dụng số giao thức cụ thể mã hóa tích hợp đường cong Elliptic giao thức trao đổi khóa ECDH pha Nếu trình nhận xử lý điểm đường cong mà không thực việc kiểm tra xem có thực nằm đường cong cho hay không lược đồ bị công Dạng công thứ hai kiểu công phân tích lượng để khám phá khóa bí mật Hiệu kiểu công phụ thuộc vào cách cài đặt cụ thể 3.7 Chuẩn tham số cho hệ mật Elliptic Trên giới chuẩn tham số cho hệ mật Elliptic đưa chuẩn: - ISO 15496-5 - ANSI X9.62 - FIPS PUB 186-3 - Certicom SEC1 version 2.0 Tất chuẩn đưa có đặc điểm chung tiêu chuẩn sau: - Về ngưỡng an toàn: tiêu chuẩn đánh giá khả thám mã thời điểm đưa chuẩn - Modulo P: P số nguyên tố sinh theo phương pháp tất định xác suất, dạng đặc biệt nhằm tăng tốc độ tính toán, có độ dài theo bit chọn 2*bit với bit ngưỡng an toàn - Độ dài khóa: Tiêu chuẩn phải đảm bảo độ dài khóa phải có ước nguyên tố lớn N Độ lớn N phải đảm bảo cho độ phức tạp toán ECDLP lớn ngưỡng an toàn - Tiêu chuẩn tránh đường cong yếu: tuyệt đối không sử dụng đường cong siêu kỳ dị bất quy tắc - Tiêu chuẩn MOV: Sử dụng toán ECDLP toán DLP trường hữu hạn mở rộng - Giả thuyết Diffie-Hellman: Tiêu chuẩn nói kiểu công phụ thuộc vào phân rã N±1 Các điểm khác nhau: điểm chung có điểm khác định sau: Định lượng giá trị cận MOV Chuẩn ISO SEC1 v2-2009 đưa điều kiện giả thuyết Diffie-Hellman sau: + ISO: Độ dài khóa đường cong có ước nguyên tố N cho ước d e N±1 thỏa mãn điều kiện d,e ∉ [(logN)2 ,√𝑁)] + SEC1: Độ dài khóa đường cong có ước nguyên tố N thỏa mãn điều kiện số N±1 phải có ước nguyên tố lớn r cho Log N (r) > 19/20 45 3.8 Sinh tham số cho hệ mật Elliptic 3.8.1 Tham số miền đường cong Elliptic Thuật toán sinh tham số miền đường cong Elliptic[4]: Hình 3.3 Thuật toán sinh tham số miền đường cong elliptic Mô tả thuật toán: - Input: Số năm y khoảng 2011 -2020 biến atm (bằng xác định mức an toàn ATM1, xác định ATM2) 46 - Output: Bộ tham số miền ( Fp, A,B,G,N,h, SEED) Dựa vào y biến xác định mức an toàn atm để tính giá trị cụ thể độ dài khóa N modulo p theo tiêu chuẩn EC2 EC3 Sử dụng thuật toán tất định để sinh số nguyên tố p chứng minh theo độ dài xác định bước (1) Lưu lại p 3.Sử dụng Thuật toán để sinh đường cong ngẫu nhiên kiểm tra Fp Lưu lại SEED, A, B 4.Sử dụng Thuật toán để tính số điểm đường cong sinh ngẫu nhiên: N=#E(p) 5.Nếu N hợp số quay lại bước (3) B1: Kiểm tra tiêu chuẩn EC6 ước nguyên tố N± 1, không thỏa mãn quay bước (3) B2: Kiểm tra tiêu chuẩn EC4 đường cong bất quy tắc: Nếu N = p quay bước (3) B3: Kiểm tra tiêu chuẩn EC5 điều kiện MOV, không thỏa mãn quay bước (3) h = Sinh ngẫu nhiên điểm sở G( xG , yG ) ≠ ∞ Kiểm tra điểm sở theo tiêu chuẩn EC7(xG ≠ 0,3 𝑥𝐺2 ≠ 0(mod p),5𝑥𝐺4 + 2 3 A 𝑥𝐺2 - BxG + A2 ≠ 0(mod p) Nếu không thỏa mãn quay bước (8) 10 Trả (p, A, B, G, N, h, SEED)[4] 3.8.2 Sinh kiểm tra cặp khóa đường cong Elliptic Thuật toán : Sinh cặp khóa cho hệ mật Elliptic + Input: Bộ tham số miền( Fp, A,B,G,N,h, SEED) + Output: Output: (Q – điểm công khai, d – khóa bí mật) Sinh d ∈ R [0, N -1] Số nguyên d phải giữ bí mật phải không dự đoán Tính điểm Q =( xQ , yQ )= dG Trả cặp khóa (Q,d) Q khóa công khai, d khóa bí mật, Với tham số miền ( Fp , A, B , G , N , h, SEED) khóa công khai Q kiểm tra tính hợp lệ theo thuật toán đây: Thuật toán: Kiểm tra tính hợp lệ khóa công khai + Input: Tham số miền (Fp , A, B , G , N , h, SEED), khóa công khai Q + Output: “Khóa công khai hợp lệ” “Khóa công khai không hợp lệ” Kiểm tra Q điểm E Kiểm tra xq,yq ∈ Fp Kiểm tra yq2 = xq3 + Axq + B Fp Kiểm tra Nq=∞ Nếu phép kiểm tra thất bại trả “khóa công khai không hợp lệ” không trả “khóa công khai hợp lệ”[4] 47 3.8.3 Thuật toán kiểm tra điều kiện MOV Thuật toán: + Input: Giá trị B cận MOV theo tiêu chuẩn EC5 + Output: 0: Không thỏa mãn điều kiện MOV; 1: Thỏa mãn MOV t = 1, ok= 1; for i = to B T = t.p (modN) If (t==1){ok=0; return ok;} Return ok; 3.8.4 Thuật toán sinh đường cong ngẫu nhiên Thuật toán : Sinh đường cong ngẫu nhiên + Input: Số nguyên tố p + Output: Chuỗi SEED A,B∈ Fp Xác định E Fp Tính trước t = [log 𝑝 ], s= [(t-1)/256], h= t -256s 1) Chọn chuỗi bit SEED có độ dài 256 bit Gọi G độ dài theo bit SEED 2) Tính H=SHA256(SEED), gọi co h bit bên phải H 3) Wo h bit nhận việc thiết lập bit bên trái co thành ( nhằm đảm bảo r