Luận Văn Thạc Sĩ: Nghiên Cứu và Phát Triển Ứng Dụng Java Card

Luận văn thạc sĩ: Nghiên cứu & phát triển ứng dụng Java Card. Chuyên ngành Công nghệ Thông tin (604802). Tải luận văn thạc sĩ IT chất lượng cao.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sĩ

2017

64
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

MỤC LỤC

1. TỔNG QUAN THẺ THÔNG MINH

1.1. Lịch sử phát triển thẻ thông minh

1.2. Cấu tạo và phân loại thẻ thông minh

1.3. Ưu nhược điểm của thẻ thông minh

1.4. Thách thức trong việc phát triển ứng dụng thẻ thông minh

1.5. Các hình thức tấn công trên thẻ thông minh

2. Giới thiệu JavaCard

2.1. Giới thiệu JavaCard

2.2. Kiến trúc JavaCard

2.3. Tập ngôn ngữ JavaCard

2.4. Máy ảo để chạy Java Card

2.5. Cài đặt Java Card và chương trình cài đặt trên thiết bị (Off-Card)

2.6. Môi trường chạy JavaCard

2.7. API Java Card

2.8. Package và quy ước đặt tên Applet

2.9. Java Card Applet

2.9.1. Tiến trình phát triển Applet

2.9.2. Cài đặt applet

2.10. Phương thức truyền nhận, trao đổi dữ liệu

3. So sánh RSA và ECC

3.2. Những chú ý để lựa chọn đường cong Elliptic phù hợp

3.2. Dạng của đường cong elliptic

3.3. Phương pháp lựa chọn

3.3. So sánh RSA và ECC

3.4. Mật mã trên đường cong elliptic

3.5. Chữ ký số trên hệ mật đường cong Elliptic

3.5.2. Sơ đồ chữ ký Nyberg – Rueppel

3.5.3. Sơ đồ chữ ký mù Harn trên ECC

3.5.4. Sơ đồ chữ ký mù bội Harn trên ECC

3.6. Đánh giá các tấn công hệ mật trên đường cong Elliptic

3.6.1. Phương pháp Baby step - Giant step

3.6.2. Phương pháp Pohlig – Hellman

3.6.3. Tấn công MOV

3.6.4. Phương pháp Index và Xedni

3.6.5. Các tấn công dựa trên giả thuyết Diffie – Hellman

3.6.6. Các tấn công cài đặt

3.7. Chuẩn tham số cho hệ mật Elliptic

3.8. Sinh tham số cho hệ mật Elliptic

3.8.1. Tham số miền của đường cong Elliptic

3.8.2. Sinh và kiểm tra cặp khóa đường cong Elliptic

3.8.3. Thuật toán kiểm tra điều kiện MOV

3.8.4. Thuật toán sinh đường cong ngẫu nhiên

4. Ứng dụng hệ mật đường cong elliptic trong bảo mật thẻ thông minh

4.2. Giải pháp kết hợp chữ ký ECDSA trong đăng ký thẻ trực tuyến

4.2.1. Quy trình đăng ký thẻ trực tuyến

4.2.2. Chữ ký ECDSA dùng trong đăng ký thẻ trực tuyến

4.3. Thiết kế chương trình

DANH MỤC HÌNH VẼ

DANH MỤC BẢNG

DANH SÁCH CÁC TỪ VIẾT TẮT

1. MỞ ĐẦU

Tóm tắt

I. Luận văn Java Card Tổng quan và tính cấp thiết hiện nay

Ngày nay, sự hội nhập kinh tế sâu rộng đã mang đến cho người tiêu dùng Việt Nam cơ hội tiếp cận với những xu hướng hiện đại của thế giới. Con người dần chuyển sang sử dụng các dịch vụ thông minh hơn, tiện lợi hơn để đáp ứng các nhu cầu cuộc sống một cách hiện đại, tối ưu. Giờ đây người tiêu dùng có thể dễ dàng mua sắm, thanh toán các dịch vụ sinh hoạt, giao thông, y tế mà không cần phải mất thời gian và công sức tới các điểm giao dịch như trước thay vào đó là việc sử dụng một thiết bị đơn giản nhỏ gọn là thẻ thông minh. Sự phát triển nhanh chóng của công nghệ bán dẫn cho phép các nhà sản xuất chip tạo ra những con chip hay thẻ thông minh ngày càng nhỏ gọn cùng với sức mạnh tính toán cao. Tuy nhiên việc có quá 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 về sự tương thích. Do đó nhu cầu về một nền tảng chung bên trong chip được đặt ra, công nghệ Java Card được phát triển để phục vụ mục đích này. Với việc tạo ra một môi trường ảo chung trên tất cả các hệ điều hành hỗ trợ JavaCard, công nghệ này đã 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 đang ngày càng phổ biến và người tiêu dùng sẽ dễ dàng chọn lựa, sở hữu những món hàng yêu thích hay săn tìm các chương trình giảm giá, khuyến mãi hấp dẫn khi sở hữu thẻ tín dụng. Thẻ tín dụng là phương tiện thanh toán phù hợp với lối sống hiện đại. Tuy nhiên, quy trình đăng ký thẻ tín dụng mất khá nhiều thời gian, người tiêu dùng sau khi 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ế trong giờ hành chính gây bất tiện cho người đăng ký thẻ mới. Ngoài ra thời gian chờ đợi thẻ cũng mất từ năm đến bẩy ngày và phải lên đúng chi nhánh nơi mình đã đăng ký để nhận thẻ. Đi đôi với việc phổ dụng các giao dịch thông qua mạng Internet dẫn đến nguy cơ mất an toàn thông tin khi sử dụng thẻ tín dụng. Do đó, vấn đề đặt ra là làm thế nào đảm bảo an toàn thông tin trong giao dịch trực tuyến và đăng ký thẻ. Chúng ta cần có các giải pháp đảm bảo an toàn thông tin sử dụng được xây dựng dựa trên 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 ra những hệ mật mã như 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 hệ mật trên đường cong elliptic ra đời. Đây là hệ mật đượ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. Ở phạm vi đề tài này tôi đặt ra vấn đề nghiên cứu ứng dụng hệ mật trên đường cong Elliptic vào bảo mật thẻ thông minh nhằm đảm bảo an toàn thông tin trong việc đăng ký thẻ trực tuyến cũng như giao dịch trực tuyến trên Internet.

1.1. Mục tiêu nghiên cứu luận văn Ứng dụng Java Card thực tiễn

Luận văn đề cập đến công việc thực tiễn hiện nay là việc phát triển ứng dụng cho các loại thẻ thông minh hỗ trợ công nghệ Java Card. Phần lý thuyết trình bày các kiến thức liên quan về thẻ thông minh, công nghệ Java Card, cung cấp nền tảng cơ sở cho lập trình viên trước khi xây dựng ứng dụng hay thiết kế hệ thống sử dụng công nghệ Java Card. Phần thực nghiệm sử dụng cơ sở lý thuyết ở trên để cải tiến quy trình đăng ký thẻ tín dụng bằng cách áp dụng chữ ký số trên hệ mật đường cong Elliptic vào việc đăng ký thẻ tín dụng trực tuyến nhằm bảo đảm an toàn thông tin trong thẻ tín dụng. Nội dung của đề tài, các vấn đề cần giải quyết là hướng nghiên cứu: Công nghệ Java card, Ứng dụng mật mã đường cong Elliptic trong bảo mật thẻ thông minh. Ngoài phần mở đầu, kết luận, nội dung luận văn gồm những chương sau: Chương 1: Tổng quan thẻ thông minh. Chương 2: Công nghệ Java Card. Chương 3: Mật mã đường cong Elliptic. Chương 4: Ứng dụng hệ mật đường cong elliptic trong bảo mật thẻ thông minh.

1.2. Tổng quan các chương luận văn nghiên cứu Java Card Applet

Luận văn này đi sâu vào việc nghiên cứu và phát triển ứng dụng Java Card, cụ thể là tìm hiểu về Java Card Applet. Nội dung sẽ bao gồm các chương như Tổng quan về thẻ thông minh, Công nghệ Java Card, Mật mã đường cong Elliptic và Ứng dụng hệ mật đường cong elliptic trong bảo mật thẻ thông minh. Mỗi chương sẽ cung cấp kiến thức nền tảng, lý thuyết và các ví dụ thực tiễn liên quan đến chủ đề, giúp người đọc hiểu rõ hơn về công nghệ thẻ thông minh và khả năng ứng dụng của nó trong bảo mật thông tin.

II. Thẻ thông minh Tổng quan cấu trúc và phân loại thẻ thông minh

Thẻ thông minh đang được ứng dụng rộng rãi tại Việt Nam trong nhiều lĩnh vực như viễn thông, ngân hàng, thương mại điện tử, điều khiển tự động, kiểm soát người và phương tiện… Các ứng dụng của thẻ thông minh rất thiết thực và tích hợp phần mềm điều khiển bởi ưu điểm vượt trội về khả năng lưu trữ, xử lý thông tin và bảo mật dữ liệu. Chương I trình bày cái nhìn tổng quan về thẻ thông minh.Có hai ý tưởng chính đã dẫn đến sự phát triển của thẻ thông minh. Ý tưởng đầu tiên xuất hiện bởi Tiến sĩ Kunitaka Arimura đến từ Nhật Bản, ông có thiết kế tích hợp dữ liệu lưu trữ và logic số học vào một miếng silicon, ông đã nộp bản quyền cho ý tưởng vào năm 1970. Ý tưởng thứ hai là kỹ sư người Đức Helmut Grӧttrup và đồng nghiệp là Jϋrgen Dethloff, họ đã nộp bản quyền năm 1968[6]. Bằng sáng chế thẻ chip tự động này được công bố vào cuối năm 1982[6]. Năm 1974, Roland Moreno – một nhà phát minh của Pháp, đã gắn chip lên một tấm nhựa và cấp bằng sáng chế về thẻ nhớ và thiết bị đọc nó, được đặt tên là thẻ thông minh. Moreno đã thành lập công ty Innovatron để bán ý tưởng, Moreno được biết như là cha đẻ của mạch vi xử lý (Microchip).

2.1. Lịch sử phát triển thẻ thông minh và các ứng dụng hiện nay

Năm 1977, ba nhà sản xuất thương mại, Bull CP8, SGS Thomson và Schlumberger đã bắt đầu phát triển các sản phẩm của thẻ thông minh[6]. Năm 1978, Bull đăng ký bằng sáng chế về bộ vi xử lý một chip tự lập trình được (SPOM-self Programmable One-chip Microcomputer)[6]. Tháng 3 năm 1979, Michel Ugon của tập đoàn Bull là người đầu tiên thiết kế bộ vi xử lý hoạt động, được biết đến như là CP8 của Bull. Nó chứa bộ nhớ lập trình 1KB, bộ vi xử lý 6805 do Motorola sản xuất. Đây có thể coi là thẻ thông minh đầu tiên kết hợp sức mạnh của bộ vi xử lý và bộ nhớ có khả năng đưa ra quyết định dựa trên nhu cầu của người dùng để sửa đổi, thêm, truy xuất hoặc xóa dữ liệu được lưu trữ. Thẻ này là một thiết kế hai chip, trong đó bộ nhớ và bộ vi xử lý là hai đơn vị riêng biệt, được chứng minh là một giải pháp không an toàn. Năm 1980 cho phép tích hợp tất cả các mạch vào trong một con chip. Hiện nay, thẻ thông minh đã và đang sử dụng cho rất nhiều lĩnh vực như làm thẻ chứng minh nhân dân, hộ chiếu điện tử, thẻ thanh toán. Tại Việt Nam thẻ thông minh hiện đang sử dụng nhiều nhất là thẻ tín dụng và sim điện thoại.

2.2. Cấu tạo chi tiết và phân loại thẻ thông minh tiếp xúc không tiếp xúc

Thẻ thông minh được ví như một máy tính di động lưu trữ chương trình dữ liệu. Ngày nay, thẻ thông minh đang được ứng dụng rộng rãi tại Việt Nam trong nhiều lĩnh vực khác nhau như giao thông công cộng, viễn thông, ngân hàng, thương mại điện tử, điều khiển tự động, điều khiển người và phương tiện, y tế giáo dục,v.v…Các ứng dụng của thẻ thông minh rất thực tế, dễ triển khai và tích hợp phần mềm điều khiển bởi ưu thế nổi bật về khả năng lưu trữ, xử lý thông tin, bảo mật dữ liệu tốt, khả năng tích hợp linh hoạt, việc sử dụng thẻ thông minh đem lại nhiều lợi ích cho người sử dụng. Thẻ thông minh thông thường có kích thước cỡ một thẻ tín dụng và được làm bằng nhựa, thường là PVC (Polyvinyl chloride – là thẻ nhựa cứng và không có mùi) đôi khi là ABS (Acrylonnitrile, Butadiene, Styrene – là một thẻ nhựa chịu được sự va đập mạnh), thẻ có thể chứa một ảnh 3 chiều tránh lừa đảo.

2.3. Ưu nhược điểm và thách thức phát triển ứng dụng thẻ thông minh

Thẻ thông minh được ứng dụng được trong nhiều lĩnh vực Thẻ thông minh ứng dụng tiện lợi trong nhiều lĩnh vực như thẻ công dân, hộ chiếu điện tử, thẻ y tế - lưu trữ thông tin cần thiết như nhóm máu, sinh trắc học của người chủ thẻ, thanh toán lương - thẻ tín dụng (ATM), sinh hoạt phí hàng tháng như thẻ đổ xăng, SIM cho điện thoại di động, thẻ truyền hình cho các kênh phải trả tiền, các thẻ dùng cho thu phí giao thông tự động, thanh toán tiền xe bus, tàu, chi phí du lịch, nhà hàng quán ăn, cửa hàng buôn bán, trung tâm chăm sóc spa, bãi đỗ xe, siêu thị. Thẻ thông minh cũng dùng như ví điện tử dùng để trả tiền tại các trạm đỗ xe và các máy bán hàng tự động. Ngoài ra còn ứng dụng trong lĩnh vực an ninh cho máy tính, hệ thống mã hóa dữ liệu trên đĩa cứng có thể dùng thẻ thông minh để giữ các khóa mã bảo mật. Phát triển ứng dụng thẻ thông minh theo truyền thống là một quá trình dài và khó. Mặc dù các thẻ được chuẩn hóa về kích thước, hình dạng, và giao thức giao tiếp, các hoạt động bên trong khác nhau giữa các nhà sản xuất.

III. Công nghệ Java Card Giới thiệu kiến trúc và tập ngôn ngữ

Thẻ thông minh có nhiều ưu điểm nhưng cũng có thách thức để phát triển thẻ thông minh. Các ứng dụng thẻ thông minh được phát triển để chạy trên nền tảng độc quyền, các ứng dụng từ các nhà cung cấp dịch vụ khác nhau không thể cùng tồn tại và cung cấp trên một thẻ duy nhất. Đó là trở ngại cản trở việc phát triển ứng dụng trên thẻ thông minh. Công nghệ JavaCard được hình thành nhằm giải quyết vấn đề trên. Chương 2 đi sâu vào nền tảng công nghệ JavaCard. JavaCard là một công nghệ cho phép mang đến cho các trình ứng dụng Java applet có thể hoạt động một cách an toàn và bảo mật trên thẻ thông minh tương tự với các bộ nhớ nhỏ của các thiết bị lưu vết. Nó là nền tảng Java nhỏ nhất hướng tới các thiết bị nhúng. JavaCard là một phần nhỏ của Java được phát triển bởi Sun, được tích hợp bên trong các thiết bị, nó đơn giản hoá việc lập trình thẻ thông minh vì các tính năng hướng đối tượng của nó.

3.1. Giới thiệu tổng quan về Java Card và các đặc tính quan trọng

JavaCard mang đến cho người dùng khả năng lập trình cho các thiết bị mà tạo các trình ứng dụng chuyên biệt. Nó được sử dụng rộng rãi trong SIM card (trong GSM của điện thoại di động) và thẻ ATM. Ngôn ngữ lập trình Java có nhiều ưu điểm như tính đơn giản, tính di động, mô hình bảo mật và tính hướng đối tượng. Đó cũng chính là đặc tính mà JavaCard hướng tới là khả năng tương thích và bảo mật. Tính tương thích được thể hiện ở việc JavaCard nhắm tới mục tiêu tạo ra một môi trường chuẩn cho thẻ thông minh, cho phép các ứng dụng Java có thể chạy trên các loại thẻ thông minh khác nhau. Tương tự như với môi trường Java, JavaCard thực hiện bằng việc kết hợp một máy ảo JavaCard với một bộ thư viện chung. Tuy nhiên tính tương thích bị ảnh hưởng lớn bởi sự khác nhau về kích thước bộ nhớ, khả năng xử lý và hỗ trợ của các loại thẻ khác nhau.

3.2. Chi tiết kiến trúc Java Card các thành phần và chức năng

Về mặt ngôn ngữ lập trình thì JavaCard là một phần thu gọn của Java, công nghệ JavaCard cung cấp kiến trúc để phát triển ứng dụng mở cho thẻ thông minh và nó cũng được sử dụng để phát triển các ứng dụng cho các thiết bị có bộ nhớ rất nhỏ như SIM cho điện thoại di động, thẻ ATM gắn chip. Máy ảo JavaCard được xây dựng trên một mạch tích hợp cụ thể. Lớp JVM (JavaCard virtual machine) giấu công nghệ độc quyền của nhà sản xuất bằng ngôn ngữ chung và giao diện hệ thống. Khung JavaCard xác định một tập các lớp API (Application Programming Interface) để phát triển các ứng dụng JavaCard và cung cấp các dịch vụ hệ thống cho các ứng dụng đó. Một ngành công nghiệp cụ thể hoặc kinh doanh có thể cung cấp các thư viện bổ sung để cung cấp dịch vụ hoặc tinh chỉnh mô hình bảo mật cho hệ thống.

3.3. Tập ngôn ngữ Java Card và sự khác biệt so với Java chuẩn

Do JavaCard được tích hợp vào các bộ nhớ nhỏ của thiết bị lưu vết nên nền tảng của ngôn ngữ JavaCard hỗ trợ sự chọn lựa kỹ lưỡng từ tập ngôn ngữ của Java. Java hỗ trợ các tính năng như Kiểu dữ liệu nhỏ: boolean, byte, short, Mảng một chiều, Kí tự và chuỗi, Gói java, lớp, giao diện, các ngoại lệ, Các đặc tính hướng đối tượng trong Java: kế thừa, phương thức ảo, quá tải và tạo đối tượng động, chấp nhận phạm vi và quy tắc ràng buộc. Tuy nhiên Java không hỗ trợ các tính năng như Kiểu dữ liệu lớn: long, double, float, Class loading động, Quản lý security, Khởi tạo và hủy (bộ nhớ), Luồng (Threads), Object cloning.

IV. Mật mã đường cong Elliptic Cơ sở lý thuyết ứng dụng thực tiễn

Vấn đề đảm bảo An toàn thông tin đang được đặt lên hàng đầu trong bài toán giao dịch không an toàn trên Internet. Chúng ta cần có các giải pháp đảm bảo an toàn thông tin điều đó được xây dựng dựa trên 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 ra những hệ mật mã như 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 hệ mật trên đường cong elliptic ra đời, 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. Chương 3 trình bày những kiến thức về mật mã trên đường cong Elliptic.

4.1. Khái niệm và định nghĩa đường cong Elliptic theo công thức Weierstrass

Đường cong elliptic E trên trường K là tập hợp các điểm (x,y) ∈ KxK thỏa mãn phương trình: y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (ai ∈ K và 4a43 + 27a62 ≠ 0)[4].Trên trường số thực R, đường cong Elliptic xác định bởi tập hợp các điểm (x,y) € R2 thỏa mãn: y2 = x3 + ax + b, thỏa mãn điều kiện 4a3 + 27b2 ≠ 0. Các đa thức dạng x3 + ax + b có rất nhiều, do đó chúng ta phải chọn thêm một điểm O (điểm vô cực.

4.2. Các phép toán trên đường cong Elliptic Cộng nhân và tính chất

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 − 𝑥1 − 𝑥2 , 𝑦3 = λ(𝑥1 − 𝑥3 ) − 𝑦1 . Điểm (x, -y) được ký hiệu là -P và –P ∈ E(Fp) Cho hai điểm P =(𝑥1 , 𝑦1 ) và Q = (𝑥2 , 𝑦2 ) ∈ E(Fp), nếu 𝑃 ≠ ±𝑄 thì P+Q=(x3,y3) được xác định như sau: 𝑦 −𝑦1 Đặt λ = ( 2 ) 𝑥2 −𝑥1 𝑥3 = λ2 − 𝑥1 − 𝑥2 Phép nhân Kp nhận được bằng cách thực hiện lặp k lần phép cộng[4].

4.3. So sánh hệ mật RSA và ECC về độ an toàn và hiệu quả

Sự khác nhau của RSA và ECC đã được so sánh bởi Robshaw và Yin đã chỉ ra rằng thời gian mã hóa của ECC nhanh gấp 8 lần so với RSA, còn giải mã và ký nhanh gấp 6 đến 7 lần. Certicom Corporation đã chứng minh rằng, nếu có các lựa chọn đuờng cong elliptic phù hợp thì tốc độ thực hiện của các hệ mật trên ECC nhanh gấp 10 lần so với RSA. Certicom đưa ra kết luận này khi thực thi các thuật toán trên đường cong elliptic trên trường hữu hạn nhị phân. Các so sánh tập trung vào 3 đặc điểm: Độ an toàn (Security), Tính hiệu quả (Efficiency), Không gian lưu trữ (Space requirements).

V. Ứng dụng hệ mật Elliptic trong bảo mật thẻ thông minh Java

Hệ mật dựa trên đường cong Elliptic (ECDSA/ECC) là một giải thuật khoá công khai. 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ã.

5.1. Sơ đồ hệ mã hóa dựa trên đường cong Elliptic ECC

Giả sử Alice và Bob muốn trao đổi thông tin mật cho nhau trên cơ sở đường cong Elliptic, thì Alice và Bob chọn đường cong Elliptic E với các hệ số a, b, modulo p và điểm khởi tạo G, G có bậc là n (nG=0). Alice hình thành khóa mật và khóa công cộng qua các bước sau: Chọn d là số ngẫu nhiên làm khóa mật thỏa mãn. Công bố khóa công cộng Q=dG. Quá trình mã hóa: Bob muốn gửi thông tin mật m cho Alice, Bob thực hiện: Chọn số ngẫu nhiên k. Và tính điểm Gk(x1,y1)=kG. Tính giá trị Qk(x,y)=k*Q. Để mã hóa, Bob chọn tọa độ của điểm Qk để mã hóa. Ví dụ như chọn tọa độ x, và mã hóa thông điệp m: c=m. Gửi cặp (Gk(x1,y1), c) cho Alice.

5.2. Chữ ký số trên hệ mật đường cong Elliptic ECDSA

Chọn số ngẫu nhiên d trong khoảng [2, n-1] làm khóa bí mật. Tính Q=dG làm khóa công khai. Chọn một số ngẫu nhiên k, 2 ≤ k ≤ n -1. Nếu r=0, quay lại bước 1. Nếu s = 0, quay lại 1. Chữ ký trên thông điệp m là (r,s) c. Kiểm tra chữ ký 1. Kiểm tra r và s có là các số tự nhiên trong khoảng [2, n-1] không. Tính u1 = mw mod n và u2 = rw mod n. Nếu X = O thì phủ nhận chữ ký. Ngược lại tính v = xx mod n. Chữ ký chỉ được chấp nhận nếu v = 4.

5.3. Ứng dụng thực tiễn và các sơ đồ chữ ký khác Nyberg Harn

Giả sử E là một đường cong Elliptic trên trường Zp (p>3 và nguyên tố) sao cho E chứa một nhóm con cyclic H trong đó bài toán logarith rời rạc là “khó”. Với P=ZpxZp, C = ExZpxZp ta định nghĩa K={(E,Q,a,R):R=aQ} với Q ∈ E. Các giá trị α và R là công khai, a là bí mật. Với K=(E,Q,a,R) chọn số ngẫu nhiên k ∈ Z|H|. Khi đó, với x = (x1,x2) ∈ ZpxZp ta định nghĩa sigk (x,k) = (c,d), trong đó: Harn đã công bố một sơ đồ chữ ký mù tựa như sơ đồ ECDSA năm 1994. Chữ ký mù là chữ ký thực hiện trên một văn bản mà người ký hoàn toàn không biết nội dung. Điều này thực hiện được vì người trình ký đã sử dụng một phương pháp nào đó để che dấu nội dung của văn bản gốc để người ký không biết.

VI. Kết luận Tương lai ứng dụng Java Card và bảo mật thông tin

Luận văn đã trình bày tổng quan về công nghệ Java Card, các ứng dụng của nó trong đời sống, đặc biệt là trong lĩnh vực thanh toán và bảo mật thông tin. Đồng thời, luận văn cũng đi sâu vào nghiên cứu và phân tích hệ mật đường cong Elliptic (ECC), một trong những giải pháp bảo mật hiệu quả nhất hiện nay. Kết quả nghiên cứu cho thấy, việc kết hợp Java CardECC có thể mang lại những giải pháp bảo mật mạnh mẽ cho các ứng dụng thẻ thông minh, giúp bảo vệ thông tin cá nhân và tài sản của người dùng.

6.1. Tổng kết các kết quả đạt được và những hạn chế của luận văn

Luận văn đã thành công trong việc trình bày kiến thức cơ bản về thẻ thông minh, công nghệ Java Card và mật mã đường cong Elliptic. Tuy nhiên, do thời gian và nguồn lực có hạn, luận văn vẫn còn một số hạn chế, chẳng hạn như chưa đi sâu vào phân tích các tấn công vào hệ mật ECC và các biện pháp phòng chống.

6.2. Hướng phát triển tiếp theo trong nghiên cứu bảo mật thẻ thông minh

Trong tương lai, cần tiếp tục nghiên cứu và phát triển các giải pháp bảo mật mới cho thẻ thông minh, đặc biệt là các giải pháp dựa trên công nghệ trí tuệ nhân tạo (AI)học máy (Machine Learning). Ngoài ra, cần tăng cường hợp tác giữa các nhà nghiên cứu, các nhà sản xuất thẻ và các tổ chức tài chính để xây dựng một hệ sinh thái bảo mật thẻ thông minh toàn diện và bền vững.

24/09/2025