Xử lý song song quá trình sinh khóa để tăng cường bảo mật hệ thống cấp phát chứng thực số

MỤC LỤC

Chứng thực số

Như vậy, thông tin trên chứng thực số không chỉ cho biết một chìa khóa công khai nào đó thuộc về ai, ta còn có thể biết được các thông tin liên quan khác, mà đôi khi cũng rất quan trọng trong một hệ thống cụ thể, như là danh phận, chức vụ,… của người sở hữu [3]. Tiêu chuẩn về chứng thực số trên cơ sở hạ tầng khóa công khai phổ biến nhất hiện nay là X.509 được ban hành bởi ITU-T (International Telegraph Union – Telecom, tổ chức viễn thông quốc tế (về lĩnh vực viễn thông), thuộc liên hợp quốc).

Vai trò của CA và vấn đề then chốt trong thiết lập CA 1. Vai trò của CA

Sử dụng chứng thực số

Trong tiêu chuẩn X.509 về hệ thống hạ tầng khóa công khai, mạng lưới CA tạo thành cây từ trên xuống với gốc là một CA trung tâm mà không cần được chứng thực bởi một bên thứ 3 nào khác. Một chứng thực số có thể bị thu hồi nếu như chìa khóa bí mật (cùng cặp với chìa khóa công khai của nó) đã bị lộ, hoặc mối liên hệ giữa khóa công khai và chủ thể sở hữu đã thay đổi.

Các chức năng cơ bản của CA

Trong các hệ thống không lớn lắm, các yêu cầu này được trực tiếp gửi cho CA để trực tiếp xử lý, còn với các hệ thống lớn thường có thêm một khâu trung gian (đăng ký – registration) nhận yêu cầu từ phía người dùng chuyển cho CA và nhận chứng thực từ CA trả về cho người dùng. Để tạo ra một chứng thực số, CA phải sinh được một cặp chìa khóa phi đối xứng có độ an toàn cao để gán cho chủ thể (người yêu cầu) và tuân thủ một số quy định nghiêm ngặt trong việc cấp phát (ví dụ tránh để xảy ra nhầm lẫn cấp một chứng thực cho hai chủ thể khác nhau, hoặc tránh dùng hai định danh quá giống nhau có thể dẫn đến khả năng mạo danh).

Vấn đề then chốt trong thiết lập CA

Để kiểm tra một chứng thực của người dùng, người ta cần phải có được thông tin chính xác về chìa khoá công khai của CA. Người ta dùng chìa khoá này để giải mã phần chữ ký số có trong chứng thực của người dùng rồi lấy kết quả tìm được đem so với mã băm của phần thông tin công khai trong chứng thực số (tức là phần còn lại từ chứng thực số sau khi đã bỏ đi phần chữ ký số). Nước ta đã đưa ra chuẩn chữ ký số, trong đó RSA được sử dụng như một hệ mã chuẩn trong một thời gian dài sắp tới.

Việc sinh khóa trong hệ mã RSA về thực chất là tạo ra một cặp số lớn p,q là các số nguyên tố mạnh. Để sinh được một cặp số nguyên tố như vậy, chúng ta phải tìm hiểu các lý thuyết toán học có liên quan đến số nguyên tố, số giả nguyên tố như: các định lý của số nguyên tố, kiểm tra số nguyên tố và số giả nguyên tố, và cách kiểm tra số giả nguyên tố mạnh sẽ được đề cập ở chương tiếp theo.

Một số công cụ toán học liên quan

Việc tính toán số nguyên tố và khái niệm số giả nguyên tố. Kiểm tra số giả nguyên tố mạnh

    Số nguyên a≤ p được gọi là thặng dư bình phương (modp) nếu như tồn tại số nguyên x thỏa mãn phương trình x2 ≡a(modp). Có thể mở rộng khái niệm ký hiệu trên ra cho trường hợp p không phải là nguyên tố, nhưng chỉ xét những số a trong tập thặng dư rút gọn của p (tức là những thặng dư nguyên tố cùng nhau với p). Như vậy trong trường hợp riêng khi n là số nguyên tố thì ký hiệu Jacobi trùng với ký hiệu Legendre. Việc tính toán số nguyên tố và khái niệm số giả nguyên tố. Kiểm tra số. Thuật toán kiểm tra số nguyên tố thông thường và khái niệm số giả nguyên tố. Thuật toán: Sàng Eratosthenes [2]. Để kiểm tra n có phải là số nguyên tố hay không, ta thực hiện phép chia cho tất cả các số nguyên tố không vượt quá n. Độ phức tạp: Theo định lý số nguyên tố của Gauss, số các số nguyên tố không vượt quá n là vào khoảng. Với những máy tính thực hiện một triệu phép tính một giây, thời gian cần thiết sẽ vào khoảng 3,1.1036 năm! Điều này dẫn đến một phương án khác thay thế:. số giả nguyên tố. Theo định lý Fermat, nếu n là số nguyên tố và b là số nguyên tùy ý, thì ). Như vậy, nếu một số nguyên thỏa mãn các giả thiết của định lý Fermat bé thì “có nhiều khả năng” nó là một số nguyên tố! Ta có định nghĩa sau:. Giả sử b là một số nguyên dương. Nếu n là hợp số nguyên dương và ). Thuật toán Miller-Rabin nâng cao [9]: cung cấp thêm thông tin chi tiết khi gặp một lỗi, có thể hữu dụng khi sinh và xác thực số nguyên tố trong mã hóa khóa công khai RSA.

    Ngoài ra còn có thuật toán Lucas để kiểm tra xác suất tính nguyên tố (trong FIPS 186-3) có liên quan đến ký hiệu Jacobi được trình bày ở trên. Một số giả nguyên tố sau khi qua được 2 kiểm tra là thuật toán Miller-Rabin và Lucas thì có thể tin tưởng là mạnh [11], đồng nghĩa với việc xác suất để nó không phải số nguyên tố là rất thấp.

    Bảng 2.1: Số vòng lặp tối thiểu trong thuật toán Miller-Rabin khi sinh số nguyên  tố sử dụng trong hệ mã RSA [9]
    Bảng 2.1: Số vòng lặp tối thiểu trong thuật toán Miller-Rabin khi sinh số nguyên tố sử dụng trong hệ mã RSA [9]

    Tính toán song song

    Xử lý song song, cơ hội và thách thức [8]

      Viết chương trình thể hiện và khai thác “fine-grained concurrency” vốn khó khăn hơn so với viết chương trình tuần tự bởi các khái niệm, tư tưởng mới mà lập trình viên phải nắm được và những đặc tính của xử lý song song được thể hiện trên chương trình. Đứng đầu trong số những vấn đề này là không lường trước được nguy cơ gây ra lỗi khi tương tác giữa các đối tượng mà bộ nhớ được chia sẻ và những khó khăn khi chứng minh rằng không có lỗi như thế tồn tại trong một chương trình. Lập trình viên cần có sự trừu tượng hóa tốt hơn so với những gì hiện có để phối hợp truy cập ứng dụng song song tới trạng thái chung; họ cũng cần có cách làm tốt hơn để xây dựng tài liệu và hạn chế những ảnh hưởng xấu của các hàm chức năng tới trạng thái của ứng dụng.

      Ngoài một số thao tác đơn giản, một chương trình được lập trình song song bây giờ phải quan tâm về số lượng xử lý đồng thời, các chí phí liên quan đến xử lý ấy, và khả năng xung đột khi các hoạt động đồng thời cùng lúc truy cập vào dữ liệu được chia sẻ. Microsoft Visual Studio 2010 đã đối mặt với những vấn đề khó khăn trong tính toán song song, hỗ trợ lập trình ở mức cao hơn với các cấu trúc trừu tượng giúp các nhà phát triển tạo ra các cách song song hợp lý và ánh xạ nó đến phần cứng.

      Lập trình song song với Visual Studio 2010 [8]

        Visual Studio 2010 cũng bao gồm các công cụ phát triển tiên tiến hỗ trợ các kiến trúc lập trình, sửa lỗi ứng với cách xử ly song song được thể hiện trong mã. Một mô hình cho cả nhiệm vụ và dữ liệu song song dựa trờn mụ hỡnh song song rừ ràng, chẳng hạn như nhiệm vụ và tương lai, và cấu trúc song song, như Parallel.For. Paralle Extensions khiến mọi việc trở nên dễ dàng khi tự động song song hóa các truy vấn từ LINQ đến đối tượng, đạt được độ tăng tốc đáng kể với những thay đổi rất ít đến cơ sở mã hiện có của các nhà phát triển.

        Task Parallel Library đơn giản hóa việc giới thiệu dữ liệu và song song các nhiệm vụ (task) vào một ứng dụng, thông qua các cấu trúc song song của vòng lặp hoặc thông qua song song của thuật toán phức tạp hơn sử dụng fine-grained. Những công nghệ này cho phép phát triển các ứng dụng và thư viện với khả năng xử lý song song trờn quy mụ rộng với bộ xử lý đa lừi và tốc độ xử lý sẽ vẫn tiếp tục phỏt triển đi đụi với tốc độ phỏt triển của lừi xử lý theo cấp số nhõn trong tương lai.

        Hình 3.2: Kiến trúc lập trình song song trong .Net Frame Work 4.0 [8].
        Hình 3.2: Kiến trúc lập trình song song trong .Net Frame Work 4.0 [8].

        Kết quả triển khai và tính thử nghiệm

        • Giới thiệu về chương trình ứng dụng 1. Mục đích và hoạt động của chương trình

           Đầu ra của chương trình là N cặp số p,q thỏa mãn các điều kiện là số giả nguyên tố có xác suất lỗi rất thấp (giả nguyên tố mạnh) và đồng thời có tính chất mạnh theo nghĩa số p−1,q−1 khó bị hacker phân tích ra các thừa số nguyên tố vụn khi p,q được dùng làm khóa. Ngoài ra, chương trình còn thông báo thời gian chạy của chương trình có sai số (trong điều kiện không lý tưởng là vì trong quá trình chương trình chạy còn có các tiến trình khác của hệ điều hành cũng đang chạy). Khóa luận có chương trình xử lý song song khi sinh cặp số nguyên tố p,q và kiểm tra tính nguyên tố mạnh của chúng đi kèm – một giai đoạn quan trọng, chủ chốt của hệ thống CA.

          Với sự tìm hiểu không ngừng của giới thám mã (một cộng đồng có mục đích phát hiện lỗi của hệ mã RSA nhằm đóng góp xây dựng hệ mã ngày càng an toàn hơn), các lý thuyết về khóa mạnh đã được ra đời và chương trình này dựa trên những lý thuyết ấy để thực hiện. Kết quả này có thể được sử dụng để phát triển cho tương lai như: xây dựng hệ thống CA hoàn chỉnh; xây dựng công cụ dùng để mã hóa, giải mã văn bản theo thuật toán của hệ mã RSA, tạo chữ ký số.

          Hình 4.1: Giao diện của chương trình
          Hình 4.1: Giao diện của chương trình