1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng chữ ký số trong hệ thống quản lý văn bản chính phủ điện tử

87 217 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 87
Dung lượng 2,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các phương pháp mã hóa, chữ ký số, chứng chỉ số, cơ sở hạ tầng khóa công khai và các ứng dụng của chữ ký số, chứng chỉ số trong các giao dịch điện tử là một trong những giải pháp giải qu

Trang 1



Phạm Anh Thắng

LUẬN VĂN THẠC SỸ KỸ THUẬT

Đề tài: Ứng dụng chữ ký số trong hệ thống quản lý văn bản chính phủ điện tử Chuyên ngành: Kỹ thuật phần mềm

Người hướng dẫn: TS Nguyễn Hữu Đức

Trang 2

MỤC LỤC

MỤC LỤC 1

LỜI CAM ĐOAN 3

LỜI CẢM ƠN 4

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 5

DANH MỤC CÁC BẢNG 6

DANH MỤC CÁC HÌNH 7

MỞ ĐẦU 8

CHƯƠNG I: ĐẶT VẤN ĐỀ 10

1.1 Bài toán Quản lý văn bản tại Bộ Tài nguyên và môi trường 10

1.2 Các vấn đề tồn tại 10

1.3 Giải pháp chữ ký số cho hệ thống Quản lý văn bản tại Bộ Tài nguyên môi trường 11

1.4 Mục tiêu của luận văn 12

CHƯƠNG II: TỔNG QUAN VỀ CHỮ KÝ SỐ 13

2.1 Hệ thống chứng thực điện tử 13

2.1.1 Các dịch vụ của hệ thống chứng thực điện tử 13

2.1.2 Các thành phần của hệ thống chứng thực điện tử 14

2.1.3 Một số ứng dụng của hệ thống chứng thực 15

2.1.4 Hệ thống chứng thực tại Việt Nam 16

2.2 Chứng thư số 18

2.3 Chữ ký số 19

2.3.1 Phân loại Chữ ký số 20

2.3.2 Ứng dụng, vai trò của CKS 22

2.4 Các phương pháp tạo và kiểm tra Chữ ký số 23

2.4.1 Phương pháp RSA 23

2.4.2 Phương pháp ElGamal 32

2.4.3 Phương pháp DSA 39

CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÝ VĂN BẢN ỨNG DỤNG CHỮ KÝ SỐ 46

3.1 Quy trình nghiệp vụ 46

3.1.1 Phân tích hiện trạng, mô hình nghiệp vụ hiện tại 46

Trang 3

3.1.2 Phân tích yêu cầu nghiệp vụ hệ thống mới 47

3.2 Các chức năng cụ thể cho hệ thống mới 50

3.2.1 Chức năng phân quyền 50

3.2.2 Chức năng quản lý trạng thái ký số văn bản 50

3.2.3 Chức năng Upload và quản lý các file văn bản ký số 51

3.3 Thiết kế hệ thống 52

3.3.1 Các tác nhân của hệ thống 52

3.3.2 Biểu đồ Use Case 53

3.3.3 Thiết kế dữ liệu 60

3.3.4 Mô hình hệ thống 60

3.4 Phân tích lựa chọn công nghệ 63

CHƯƠNG IV: XÂY DỰNG VÀ THỬ NGHIỆM 64

4.1 Môi trường xây dựng và thử nghiệm 64

4.2 Các thành phần phần mềm được cài đặt trên từng nút 65

4.3 Cài đặt phần mềm phục vụ ký số tại máy client 66

4.3.1 Cài đặt Phần mềm Quản lý thiết bị Token 66

4.3.2 Cài đặt Plugin ký số của Ban cơ yếu cung cấp tại máy client 67

4.3.3 Cấu hình thiết lập tham số tại máy client 68

4.4 Kịch bản thử nghiệm 70

4.4.1 Chuyên viên tạo dự thảo trình lãnh đạo 70

4.4.2 Lãnh đạo duyệt dự thảo và chuyển văn thư cấp số 71

4.4.3 Văn thư cấp số cho văn bản dự thảo 71

4.4.4 Người trình ký nháy văn bản 73

4.4.5 Lãnh đạo ký ban hành văn bản 77

4.4.6 Văn thư ký số con dấu tổ chức 78

4.4.7 Kiểm tra các dịch vụ cơ bản của dịch vụ ký số văn bản 80

4.5 Đánh giá kết quả thử nghiệm 81

KẾT LUẬN VÀ KIẾN NGHỊ 82

A Kết luận 82

B Hướng phát triển của luận văn 82

TÀI LIỆU THAM KHẢO 83

PHỤ LỤC 84

Trang 4

LỜI CAM ĐOAN

Tác giả luận văn xin cam đoan đây là công trình nghiên cứu của riêng tác giả luận văn đúc kết từ quá trình nghiên cứu từ việc tập hợp các nguồn tài liệu, các kiến thức đã học đến việc tự thu thập các thông tin liên quan và liên hệ thực tế tại đơn vị công tác Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Tác giả luận văn xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc

Tác giả luận văn xin chi ̣u trách nhiê ̣m về nghiên cứu của mình

Ho ̣c viên thực hiê ̣n luâ ̣n văn

Phạm Anh Thắng

Trang 5

LỜI CẢM ƠN

Trước tiên, tác giả luận văn xin được gửi lời cảm ơn đến tất cả quý thầy cô

đã giảng dạy trong chương trình đào ta ̣o tha ̣c sỹ, Viện Công Nghê ̣ Thông Tin và Truyền Thông, Đa ̣i ho ̣c Bách Khoa Hà Nô ̣i, những người đã truyền đạt cho tác giả những kiến thức hữu ích để làm cơ sở cho tác giả thực hiện tốt luận văn này

Với lòng kính trọng và biết ơn, tác giả luận văn xin được bày tỏ lời cảm ơn tới TS Nguyễn Hữu Đức đã khuyến khích, tận tình hướng dẫn trong thời gian thực hiện luận văn Mặc dù trong quá trình thực hiện luận văn có giai đoạn không được thuận lợi nhưng những gì thầy đã hướng dẫn, chỉ bảo đã cho tác giả luận văn nhiều kinh nghiệm trong thời gian thực hiện đề tài

Tác giả luận văn cũng xin gửi lời cảm ơn đến Phòng phát triển dịch vụ, Trung tâm Cơ sở hạ tầng Công nghê ̣ thông tin, Cục Công nghệ thông tin, Bộ Tài nguyên và môi trường, nơi tác giả công tác đã giúp đỡ trong quá trình thu thập dữ liệu và thông tin của luận văn

Sau cùng tác giả luận văn xin gửi lời biết ơn sâu sắc đến gia đình đã luôn tạo điều kiện tốt nhất cho tác giả luận văn trong suốt quá trình học cũng như thực hiện luận văn Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận văn còn nhiều thiếu, rất mong nhận được ý kiến góp ý của Thầy/Cô và các ba ̣n học viên

Ho ̣c viên thực hiê ̣n luâ ̣n văn

Phạm Anh Thắng

Trang 6

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

QLVB Quản lý văn bản

TNMT Tài nguyên môi trường

DSAP Digital Signature Authentication Program - Là chương trình xử lý

chứng từ chứa chữ ký số nhận từ khách hàng

TTCNTT Trung tâm Công nghệ Thông tin

CA Certificate Authority – Nhà cung cấp chứng thực số

PKI Public Key Infrastructure – Hệ thống mật mã khóa công khai hay

phi đối xứng PKC Public Key Cryptosystem – xem PKI

GCD Greatest Common Divisor – Ước chung lớn nhất

Trang 7

DANH MỤC CÁC BẢNG

Bả ng 1: Ví dụ RSA 24

Bả ng 2: So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký giữa DSA và RSA 43

Trang 8

DANH MỤC CÁC HÌNH

Hình 1: Hạ tầng khóa công khai 13

Hình 2: Mô hình CA chung 15

Hình 3: Mô hình hệ thống PKI quốc gia 17

Hình 4: Hệ thống PKI chuyên dùng Chính phủ 18

Hình 5: Ví dụ RSA 25

Hình 6: Mô tả mã hóa RSA 26

Hình 7: Mô tả thuật toán DSA 41

Hình 8: Thời gian tạo khóa của RSA và DSA 44

Hình 9: Thời gian tạo chữ ký của RSA và DSA 44

Hình 10: Thời gian xác nhận chữ ký của RSA và DSA 45

Hình 11: Quy trình xử lý của nghiệp vụ hiện tại 46

Hình 12: Quy trình xử lý của nghiệp vụ mới 47

Hình 13: Quy trình xác thực công văn 49

Hình 14: Quy trình xác thực Module mật mã (thiết kế) 49

Hình 15: Sơ đồ các Tác nhân của Hệ thống 53

Hình 16: Lược đồ quan hệ hệ thống ký số văn bản 60

Hình 17: Mô hình Logic hệ thống ký số văn bản điện tử 61

Hình 18: Mô hình vật lý hệ thống ký số văn bản điện tử 62

Hình 19: Mô hình máy chủ triển khai hệ thống Quản lý văn bản 65

Hình 20: Các thành phần phần mềm trên máy chủ Domino 66

Trang 9

MỞ ĐẦU

Cùng với sự phát triển của công nghệ thông tin và truyền thông, giao dịch điện

tử đã và đang phát triển mạnh mẽ trên thế giới thay thế dần các giao dịch truyền thống Rất nhiều nước có chủ trương vừa phát triển các hoạt động cung ứng dịch vụ điện tử, vừa xây dựng hệ thống pháp luật đầy đủ, minh bạch để đảm bảo giá trị pháp

lý của các thông điệp điện tử và giao dịch điện tử Tại Việt Nam, giao dịch điện tử

đã được áp dụng tại các lĩnh vực thuế, hải quan, thương mại điện tử,

Giao dịch điện tử là một lĩnh vực tương đối mới tại Việt Nam, xuất hiện cùng với sự phổ cập mạng Internet và máy tính từ cuối những năm 1990 đầu những năm

2000 Qua quá trình hình thành và phát triển, lĩnh vực giao dịch điện tử tại Việt Nam đã được đặc biệt quan tâm phát triển Khung pháp lý cho lĩnh vực này đã từng bước được hoàn thiện, Quốc hội đã thông qua Luật thương mại, Luật giao dịch điện

tử, Luật công nghệ thông tin Thủ tướng chính phủ đã ban hành Quyết định số 1073/QĐ-TTg ngày 12/7/2010 Phê duyệt kế hoạch tổng thể phát triển thương mại điện tử giai đoạn 2011 – 2015 Việc ban hành các văn bản pháp lý này đã thể hiện

rõ sự quyết tâm của Nhà nước trong việc thúc đẩy nhanh, mạnh các giao dịch điện

tử, tạo động lực cho sự phát triển của nền kinh tế

Trong các hoạt động của giao dịch điện tử thì việc đảm bảo an toàn, an ninh thông tin, dữ liệu cho người dùng là rất cần thiết và là ưu tiên hàng đầu Theo kết quả khảo sát thương mại điện tử Việt Nam 2010 của Bộ Công thương, trong 7 trở ngại khiến thương mại điện tử chưa phát triển thì vấn đề an ninh, an toàn thông tin chiếm vị trí gần cao nhất Các phương pháp mã hóa, chữ ký số, chứng chỉ số, cơ sở

hạ tầng khóa công khai và các ứng dụng của chữ ký số, chứng chỉ số trong các giao dịch điện tử là một trong những giải pháp giải quyết vấn đề này Từ thực tế này, tôi chọn đề tài: “Ứng dụng chữ ký số trong hệ thống quản lý văn bản chính phủ điện

tử”

Đây sẽ là đề tài có ý nghĩa thực tế rất lớn bởi vì sau khi hành lang pháp lý cho giao dịch điện tử được xây dựng, hạ tầng kỹ thuật và nhân lực hình thành thì mục tiêu tiếp theo sẽ là triển khai giao dịch điện tử sâu rộng đến toàn bộ các hoạt

Trang 10

động của nền kinh tế mà song hành cùng đó là vấn đề bảo đảm an toàn, an ninh thông tin trong các hoạt động Trong hoàn cảnh Việt Nam hiện nay, việc phát triển các giao dịch điện tử chậm trễ một phần là do vấn đề an toàn, an ninh thông tin trong giao dịch chưa tạo được sự quan tâm đúng mức Luận văn sẽ tập trung phân tích áp dụng các giải pháp kỹ thuật như mã hóa, chữ ký số, chứng chỉ số nhằm đảm bảo an toàn, an ninh cho các giao dịch điện tử, thúc đẩy giao dịch điện tử tại Việt Nam tiếp tục phát triển

Với mục tiêu đặt ra như vậy, những nội dung, kết quả nghiên cứu chính của luận văn được trình bày trong bốn chương như sau:

 Chương 1 Đặt vấn đề: Trình bày những hạn chế và bất cập của hệ thống Quản lý văn bản hiện có và giải pháp xử lý

 Chương 2 Tổng quan về Chữ ký số: Trình bày cơ sở lý thuyết một số phương pháp phổ biến hiện nay trong việc sử dụng Chữ ký số

 Chương 3 Phân tích thiết kế hệ thống Quản lý văn bản ứng dụng chữ ký số: Trình bày về việc phân tích yêu cầu nghiệp vụ hệ thống mới và thực hiện xây dựng áp dụng các kiến thức về xử lý CKS

 Chương 4: Xây dựng và thử nghiệm

Trang 11

CHƯƠNG I: ĐẶT VẤN ĐỀ

1.1 Bài toán Quản lý văn bản tại Bộ Tài nguyên và môi trường

Hệ thống Quản lý văn bản và điều hành (VB&ĐH) tại Bộ Tài nguyên và môi trường được xây dựng nhằm mục tiêu tin học hóa công tác điều hành và các hoạt động tác nghiệp hàng ngày của lãnh đạo, cán bộ quản lý, cán bộ chuyên môn

Hệ thống Quản lý VB&ĐH bao gồm các chương trình ứng dụng, các giao diện cung cấp các chức năng cập nhật, xử lý, trao đổi và khai thác thông tin, hoạt động trên mạng LAN tại từng đơn vị và nối mạng WAN liên kết các cơ quan với nhau trong một tổng thể thống nhất

Hệ thống Quản lý VB&ĐH được xây dựng nhằm mục đích phục vụ và quản lý với chất lượng và hiệu quả cao các nội dung:

 Tiếp nhận và phân phối VB đến;

 Quản lý, giải quyết VB đến;

 Soạn thảo, tạo lập VB đi;

 Ban hành VB đi;

 Giải quyết công việc thông qua HSCV;

 Hỗ trợ công tác lưu trữ;

 Lập và quản lý chương trình, lịch công tác;

 Cung cấp thông tin phục vụ điều hành tác nghiệp;

 Thực hiện trao đổi thông tin trong nội bộ cơ quan và với bên ngoài

1.2 Các vấn đề tồn tại

Hiện tại, khi có văn bản đến Bộ Tài nguyên và môi trường, văn thư Bộ sẽ tiến hành quét file văn bản và nhập thông tin về công văn vào hệ thống, sau đó trình lãnh đạo Bộ phân công chỉ đạo Khi lãnh đạo Bộ phân công cho các đơn vị trực thuộc xử lý công văn, văn bản được lãnh đạo đơn vị phân công cho các chuyên viên

xử lý Chuyên viên sẽ tạo dự thảo, hồ sơ công việc sau đó trình lãnh đạo phê duyệt

Trang 12

Nếu dự thảo được phê duyệt, chuyên viên sẽ phải tiến hành in dự thảo sau đó trình lãnh đạo xin chữ ký Dự thảo sau khi được lãnh đạo ký sẽ được chuyển sang văn thư

để lấy số và đóng dấu Cuối cùng văn thư sẽ tiến hành quét file văn bản đã có chữ

ký và con dấu rồi gửi đi

Hạn chế của hệ thống hiện tại:

- Thời gian để đi xin chữ ký lãnh đạo và con dấu văn thư đơn vị mất khá nhiều thời gian

- Chưa có công cụ để xác thực tính hợp lệ của chữ ký trên file văn bản

- Chưa có công cụ để xác thực tính toàn vẹn của công văn, văn bản sau khi đã được lãnh đạo ký có bị chỉnh sửa hay không

- Xảy ra nhiều trường hợp xin trước số, không xác định được ngày gửi văn bản

- Tốn kém về mặt tiền bạc khi phải in công văn giấy để xin chữ ký và con dấu

1.3 Giải pháp chữ ký số cho hệ thống Quản lý văn bản tại Bộ Tài nguyên

môi trường

Để chữ ký số trên các văn bản điện tử tại Bộ Tài nguyên và môi trường nhằm đảm bảo văn bản có giá trị pháp lý, mức an toàn cao, cần thiết phải triển khai các dịch vụ chứng thực chữ ký số Các dịch vụ chứng thực chữ ký số bao gồm:

- Dịch vụ công bố thông tin: dịch vụ công bố thông tin là một kho chứng thư

số trực tuyến cho phép người sử dụng có thể tra cứu thông tin và tải chứng thư số về để sử dụng

- Hệ thống kiểm tra chứng thư số trực tuyến: kiểm tra hiệu lực của các chứng thư số trước khi ký tài liệu, nếu chứng thư số còn hiệu lực mới được phép ký tài liệu

- Hệ thống cấp dấu thời gian: hệ thống cấp dấu thời gian của hệ thống PKI chuyên dùng chính phủ được lấy thời gian chuẩn từ vệ tinh đồng bộ xuống

Hệ thống cấp dấu thời gian làm tăng khả năng chối bỏ thời điểm ký số của

Trang 13

chữ ký số, cho phép người kiểm tra xác định chính xác thời gian ký số của chữ ký

Các dịch vụ này được triển khai tại Bộ TNMT và các dữ liệu về thời gian và chứng thư số… sẽ được đồng bộ từ hệ thống PKI chuyên dùng Chính phủ - Ban Cơ yếu Chính phủ

1.4 Mục tiêu của luận văn

Nghiên cứu các giải pháp mã hoá để bảo mật thông tin và những

phương pháp, kỹ thuật tạo chữ kí số trên các tài liệu, văn bản điện tử để xác thực nguồn gốc tài liệu hay văn bản của người gửi

 Nâng cấp khả năng bảo mật nội dung thông tin dưới dạng văn bản điện tử

 Xây dựng một chương trình ứng dụng mới (có sử dụng Plugin do Ban

cơ yếu chính phủ cung cấp), tích hợp ký số, hỗ trợ tạo chữ ký trên văn bản điện tử cần thiết và chứng thực chữ ký số trên văn bản điện tử; góp phần phục vụ những người quản lý đơn vị trao đổi thông tin mật với các đối tác, điều hành công việc từ xa

 Luận văn sẽ tập trung nghiên cứu và làm rõ hơn về ý tưởng, cơ sở toán học, thuật toán và độ phức tạp của mã hoá nói chung và của mã hoá khoá công khai nói riêng

Trang 14

CHƯƠNG II: TỔNG QUAN VỀ CHỮ KÝ SỐ

Trong chương này tác giả sẽ giới thiệu tổng quan về chữ ký số và các ứng dụng thực tiễn của chữ ký số để từ đó nêu ra mục đích của luận văn và đưa ra hướng giải pháp,

ứng dụng

2.1 Hệ thống chứng thực điện tử

Hệ thống chứng thực là một hạ tầng an ninh mạng được xây dựng trên một

hạ tầng cơ sở khóa công khai (PKI) cung cấp các giải pháp đảm bảo an toàn cho các hoạt động (gọi chung là giao dịch) thông qua mạng

Hi ̀nh 1: Hạ tầng khóa công khai 2.1.1 Các dịch vụ của hệ thống chứng thực điện tử

Hệ thống chứng thực cung cấp các dịch vụ đảm bảo an toàn cho các giao dịch thông qua mạng Các dịch vụ cơ bản mà một hệ thống chứng thực cung cấp bao gồm:

- Xác thực (Authentication): nhằm xác định xem ai đang giao dịch với mình;

- Bí mật (Confidentiality): đảm bảo tính bí mật của thông tin, người không có thẩm quyền không thể đọc được nội dung của thông tin;

Trang 15

- Tính toàn vẹn (Integrity): khẳng định thông tin có bị thay đổi hay không;

- Chống chối bỏ (Non-repudiation): cung cấp các bằng chứng chống lại việc chối bỏ một hành động đã thực hiện, hay đã diễn ra

Như vậy sử dụng hệ thống chứng thực sẽ đảm bảo, bí mật, toàn vẹn cho thông tin được truyền qua mạng, xác thực được người dùng và chống chối bỏ các hành động hay sự kiện đã xảy ra

Cơ quan chứng thực (CA) là gì?

Cơ quan chứng thực (Certification Authority - CA) có thẩm quyền cấp phát, thu hồi, quản lý chứng thư số cho các thực thể thực hiện các giao dịch an toàn Cơ quan chứng thực là một thành phần chính của hệ thống chứng thực

Cơ quan đăng ký (RA) là gì?

Cơ quan đăng ký (Registration Authority) là một thành phần trong hệ thống chứng thực có nhiệm vụ tiếp nhận và xác minh các yêu cầu về chứng thư số của người sử dụng đồng thời gửi các yêu cầu đã xác minh cho cơ quan chứng thực (CA) thực hiện yêu cầu đó

Trang 16

Hi ̀nh 2: Mô hình CA chung 2.1.3 Một số ứng dụng của hệ thống chứng thực

Nhóm các dịch vụ chính phủ điện tử e-Government:

· Hóa đơn điện tử (E-Invoice)

· Thuế điện tử (E-Tax Filing)

· Hải quan điện tử (E-Customs)

· Bầu cử điện tử (E-Voting)

· E-Passport

· PKI-based National ID Card

· Các dịch vụ của chính phủ cho doanh nghiệp G2B (các ứng dụng đăng ký kê khai, thăm dò qua mạng đối với các doanh nghiệp)

· Các dịch vụ của chính phủ cho công dân G2C (dịch vụ y tế )

Nhóm các dịch vụ ngân hàng trực tuyến (Online Banking):

Trang 17

· Thanh toán trực tuyến (E-Payment)

· Tiền điện tử (E-Billing)

Nhóm các dịch vụ khác:

· Kinh doanh chứng khoán trực tuyến (Online security trading)

· Đấu thầu trực tuyến (E-Procurement)

· Bảo hiểm trực tuyến (E-Insurance)

· Quản lý tài liệu

sử dụng trong các hoạt động công cộng Khu vực chuyên dùng cung cấp các dịch vụ cho các cơ quan thuộc hệ thống chính trị

Trang 18

Hi ̀nh 3: Mô hình hệ thống PKI quốc gia

Hệ thống chứng thực thuộc Bộ TTTT (N-Root CA) thực hiện chức năng cấp phép cho các CA thành lập bởi các công ty như VNPT, BKIS Các CA được cấp phép này có thể kinh doanh chứng thư số, bán và duy trì kiểm tra tính hiệu lực chứng thư số cho người dân

2.1.4.2 Hệ thống chứng thực chuyên dùng cho chính phủ

Hệ thống chứng thực chuyên dùng thuộc Ban Cơ yếu CP thực hiện chức năng cấp chứng thư số cho các cơ quan thuộc hệ thống chính trị, duy trì các dịch vụ xác thực, kiểm tra tính hiệu lực chứng thư số của cán bộ, viên chức nhà nước

Kiến trúc hệ thống chứng thực chuyên dùng Chính phủ bao gồm: 01 RootCA Chính phủ và các SubCA của các cơ quan thuộc hệ thống chính trị:

Trang 19

Hi ̀nh 4: Hệ thống PKI chuyên dùng Chính phủ

Các SubCA của các cơ quan thuộc hệ thống chính trị gồm có SubCA của Ban Cơ yếu, SubCA Đảng Cộng sản, SubCA Bộ Công an, SubCA Bộ Quốc Phòng, SubCA Bộ Tài chính và SubCA Chính phủ

2.2 Chứng thư số

Để thực hiện được các giao dịch an toàn qua mạng, các bên tham gia cần phải có “chứng thư số” Chứng thư số là một cấu trúc dữ liệu chứa các thông tin cần thiết để thực hiện các giao dịch an toàn qua mạng Chứng thư số được lưu giữ trên máy tính dưới dạng một tập tin (file)

Nội dung chứng thư số bao gồm:

· Tên chủ thể chứng thư số

· Khoá công khai

· Một số thông tin khác như, tên của CA cấp chứng chỉ số đó, hạn dùng, thuật toán ký

· Chữ ký số của CA cấp chứng thư số đó

Trang 20

Mục đích của chứng thư số dùng để nhận diện một đối tượng khi tham gia giao dịch trên mạng

Ứng dụng chứng thư số:

Với chứng thư số người dùng có thể:

· Xác định danh tính người dùng khi đăng nhập vào một hệ thống (xác thực)

· Ký số các tài liệu Word, PDF hay một tệp liệu

· Mã hóa thông tin để đảm bảo bí mật khi gửi và nhận trên mạng

· Thực hiện các kênh liên lạc trao đổi thông tin bí mật với các thực thể trên mạng như thực hiện kênh liên lạc mật giữa người dùng với webserver

2.3 Chữ ký số

Chữ ký số (Digital Signature) là thông tin đi kèm theo dữ liệu nhằm mục đích xác nhận danh tính của người gửi hoặc người ký dữ liệu đó Chữ ký số được sử dụng để khẳng định dữ liệu có bị thay đổi hay không

Nói cách khác, Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là

mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa công khai - bí mật và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật Khóa công khai thường được phân phối thông qua chứng thực khóa công khai Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký

Với việc sử dụng CKS ta có thể đem lại các lợi điểm sau:

o Khả năng xác định nguồn gốc

o Tính toàn vẹn

o Tính không thể phủ nhận

Trang 21

2.3.1 Phân loại Chữ ký số

Chữ ký số có nhiều loại, nhưng nó phụ thuộc vào cách phân loại CKS Dưới đây là một số cách phân loại CKS

2.3.1.1 Phân loại CKS theo đặc trưng kiểm tra thông điệp

a CKS có thể khôi phục thông điệp gốc: là loại CKS, trong đó người gửi chỉ cần gửi CKS, người nhận dựa vào đó có thể khôi phục được thông điệp đã được ký bởi chữ ký này

Ví dụ: Chữ ký RSA [1]

b CKS không thể khôi phục thông điệp gốc: là loại CKS, trong đó người gửi phải gửi CKS dưới dạng kèm theo của thông điệp – thông điệp đã được ký bởi chữ ký này Tuy nhiên, người nhận sẽ không có được thông điệp gốc

Ví dụ: Chữ ký ElGamma [2]

2.3.1.2 Phân loại CKS theo mức an toàn

a CKS “không thể phủ nhận”: Nhằm tránh việc nhân bản chữ ký để sử dụng nhiều lần, tốt nhất là người gửi tham gia trực tiếp vào việc kiểm thử chữ ký Điều đó được thực hiện bằng một giao thức kiểm thử, dưới dạng một giao thức mời hỏi và trả lời

Ví dụ: chữ ký không phủ định (Chaum-van Antverpen) [3]

b CKS “một lần”: Để đảm bảo an toàn, “khóa ký” chỉ dùng 1 lần time) trên 1 tài liệu

(one-Ví dụ: Chữ ký một lần Lamport Chữ ký Fail-Stop (Van Heyst & Pedersen) [4] 2.3.1.3 Phân loại CKS theo ứng dụng đặc trưng

a Chữ ký mù (Blind Signature): là một dạng CKS trong đó nội dung của thông điệp được che giấu (làm mù) trước khi được ký Kết quả là chữ

ký mù có thể công khai xác nhận lại thông điệp gốc, thông điệp không

Trang 22

bị làm mù theo cách thức của một chữ ký thông thường Chữ ký mù thường được sử dụng trong các giao thức bảo mật, trong đó người ký

và tác giả thông điệp ở các bên khác nhau

b Chữ ký nhóm (Group Signature): là một phương pháp cho phép một thành viên của một nhóm nặc danh ký vào thông điệp thay cho cả nhóm Ví dụ, một chữ ký nhóm có thể được sử dụng bởi một nhân viên trong một công ty lớn, nơi mà nó có đủ hiệu lực cho người xác minh biết được thông điệp được ký bởi một nhân viên chứ không phải một ai khác ký nó Cần thiết cho một chữ ký nhóm là một người quản

lý nhóm, người chịu trách nhiệm về việc thêm thành viên trong nhóm

và có khả năng tiết lộ người ký ban đầu trong trường hợp tranh chấp Chữ ký nhóm cần phải tuân thủ theo các yêu cầu cơ bản:

 Tính hợp lý và đầy đủ

 Không thể làm giả

 Có thể ẩn danh

 Truy xuất nguồn gốc

c Đồng ký (Multisignature): ở đây, chữ ký không phải là của một người

mà của một nhóm người Muốn tạo được chữ ký, tất cả những người này cùng phải tham gia vào protocol Tuy nhiên chữ ký này có thể được kiểm định bởi bất kỳ ai Đây là trường hợp dành cho thực tế của việc đưa ra những quyết định bởi nhiều người

d Chữ ký không thể phủ nhận (Undeniable Signature): là chữ ký mà thuật toán kiểm định đòi hỏi phải có sự tham gia của người ký Thực chất đây là chữ ký có tính chất không thể chuyển giao được (untransferable), tức là chỉ có ý nghĩa đối với người nhận là người có trao đổi trực tiếp với người ký, khi chuyển nó cho một người khác thì không thể kiểm định được chữ ký nữa

Trang 23

e Chữ ký ủy nhiệm (Proxy Signature): dành cho các trường hợp mà người chủ chữ ký không có khả năng làm việc hay đi vắng, không có khả năng ký Vì vậy chữ ký ủy nhiệm được tạo ra để người chủ có thể

ủy nhiệm cho một người nào đó ký thay

f Chữ ký mù nhóm (Blind Group Signature)

g Chữ ký mù bội (Blind Multy Signature)

2.3.2 Ứng dụng, vai trò của CKS

- Việc giao dịch bằng chữ ký số cũng đã được luật pháp thừa nhận qua các văn bản như: Luật giao dịch điện tử, Nghị định của Chính phủ số 57/2006/ND-CP ngày 09/06/2006 về thương mại điện tử, Nghị định số 26/2007/ND-CP về Chữ ký số, Nghị định số 27/2007/NĐ-CP về Giao dịch điện tử trọng hoạt động tài chính

- Dựa trên các tính năng cơ bản của chữ ký số là: Tính xác thực, tính bảo mật, tính toàn vẹn dữ liệu, tính chống chối bỏ trong việc thực hiện các giao dịch điện tử qua mạng, cũng như các thủ tục hành chính với cơ quan pháp quyền, nên chữ ký số được sử dụng trong các công việc như: ký vào văn bản, tài liệu điện tử; bảo mật thư điện tử; bảo đảm an toàn cho Web Server (thiết lập kênh trao đổi bảo mật giữa Web client và Web server trên Internet)

- Không chỉ nằm trong lĩnh vực thương mại điện tử, chứng thư số hiện còn được sử dụng như một dạng chứng minh thư cá nhân Tại các nước công nghệ phát triển, chứng thư số CA được tích hợp vào các chíp nhớ nằm trong thẻ căn cước, thẻ tín dụng để tăng cường khả năng bảo mật, chống giả mạo, cho phép chủ thẻ xác thực danh tính của mình trên nhiều hệ thống khác nhau, chằng hạn như xe bus, thẻ rút tiền ATM, kiểm soát hải quan, hộ chiếu điện tử tại các cửa khẩu …

Trang 24

2.4 Các phương pháp tạo và kiểm tra Chữ ký số

2.4.1 Phương pháp RSA

Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử

và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn

RSA là hệ mật mã khóa công khai phổ biến và cũng đa năng nhất trong thực tế, phát minh bởi R.Rivets, A.Shamir, và L.Adleman (1977) [5] Nó là chuẩn mật mã bất thành văn đối với PKC, cung cấp đảm bảo tính mật, xác thực và chữ ký điện tử

Kỹ thuật RSA bây giờ là một phần trong những tiêu chuẩn của Internet và Web, ITU (International Telecommunication Union – Hiệp hội Viễn thông Quốc tế), ISO (International Organization for Standardization - Tổ chức Tiêu chuẩn Quốc tế), ANSI (American National Standards Institute - Viện tiêu chuẩn quốc gia của Mỹ) cũng như các mạng máy tính dùng trong kinh doanh, tài chính, thương mại điện tử trên thế giới Năm 1996, RSA được Security Dynamics mua và sau đó phát triển nhằm mục đích thương mại hóa cho người sử dụng độc lập với hệ thống va đồng thời cung cấp dịch vụ cố vấn toàn diện về hệ thống mã hóa

2.4.1.1 Cơ sở hình thành – Ý tưởng

Trong phương pháp RSA, việc mã hóa và giải mã dựa vào một số kiến thức toán học Các nhà phát minh đã xây dựng thuật toán sinh/giải mã dựa trên cơ sở phép toán lấy lũy thừa đồng dư trên Zn = {0, 1, 2, … n – 1} Chẳng hạn, với e là khóa sinh mã, d là khóa giải mã, việc sinh mã cho tin X sẽ được thực hiện qua công thức sau:

Y = Xe ± n

Ở đây ta dùng ký hiệu a = b ± n nghĩa là a = b ± k*n với a ∈ Zn , k = 1, 2 , 3 (ví

dụ 7 = 33 ± 10), còn việc giả mã sẽ được thực hiện qua:

X = Yd ± n

Trang 25

Như vậy, để hai hàm sinh mã và giải mã này là hàm ngược của nhau, e và d phải được chọn sao cho thỏa mãn:

Xed = X ± n Người ta đã tìm được các xây dựng cặp số (e, d) này dựa trên cơ sở công thức như sau:

XØ(n) = 1 ± n (định lý Euler/Ơ-le) Trong đó Ø(n) là hàm số cho biết số lượng các số thuộc Zn mà nguyên tố cùng nhau với n Người ta cần chọn e*d sao cho nó chia Ø(n) dư 1, hay d = e-1 ± Ø(n), khi đó ta sẽ có điều cần thiết:

Xed = Xk* Ø(n) + 1 = (X Ø(n))d * X = 1 * X = X Ø(n) có thể tính được khi đã biết công thức phân tích thừa số nguyên tố của n,

cụ thể là nếu đã biết n = p*q (p, q là số nguyên tố) thì Ø(n) = (p – 1)*(q - 1)

Nói các khác, nếu như cho trước một số e thì nếu đã biết công thức phân tích thừa số nguyên tố của n, ta có thể dễ dàng tìm được d sao cho d = e-1 ± Ø(n) hay là

Xed = X ± n, còn nếu không biết thì rất khó

Chọn e là nguyên tố cùng nhau với Ø(n) Chọn e = 7

TÍnh d sao cho (e * d) mod Ø(n) = 1 và

d cũng là nguyên tố cùng nhau với Ø(n)

Ta có (7 * d) mod 160 = 1

 d = 23

Trang 26

Cặp khóa sinh/giải mã (e, d) Cặp khóa (7, 23)

Bản tin rõ X có thể là một số bất kỳ Giả sử, X = 88

Bản tin được mã hóa Y = Xe mod n Y = 887 mod 187 = 11

Giải mã bản tin Yd mod n Yd mod n = 1123 mod 187 = 88 = X

đã biết φ(n) = (p-1) * (q-1) và n = p*q Vậy để tìm φ(n) thì ta phải tìm được p và q

từ n Đây chính là bài toán phân tích thừa số nguyên tố của số nguyên lớn

2.4.1.2 Mô tả thuật toán

Dựa trên những ý tưởng hình thành thuật toán, chúng ta cùng tìm hiểu thêm về thuật toán RSA

Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã Khóa công khai được công bố rộng rãi cho mọi người và được dùng

Trang 27

để mã hóa Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải

mã bằng khóa bí mật tương ứng Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được

Việc do thám mã RSA dựa chủ yếu trên phân tích thừa số nguyên tố p, q từ n nên việc chọn các số nguyên tố p, q như thế nào để việc phân tích gặp khó khăn cũng rất quan trọng Vấn đề này đòi hỏi p, q phải là những số nguyên tố mạnh

Hi ̀nh 6: Mô tả mã hóa RSA

Quy trình thực hiện xây dựng thuật toán RSA bao gồm ba bước: xây dựng các khóa, sinh mã và giải mã

a Xây dựng khóa Cặp khóa công khai (Public key), khóa dùng riêng (Private key) được thực hiện theo các bước sau:

- Chọn hai số nguyên tố lớn (nguyên tố mạnh) p và q

Trang 28

- Tính n = p * q

- Tính m = φ(n) = (p-1) * (q-1)

- Chọn ngẫu nhiên khóa sinh mã e sao cho 1 ≤ e ≤ m – 1, và GCD(e, m) = 1

- Tìm khóa giải mã d sao cho e * d = 1 mod m, tức là tính d = e-1 mod m

- Từ đó công bố khóa công khai là (e, n)

- Khóa dùng riêng giữ bí mật là (d, n) hay (d, p, q)

b Sinh mã Giả sử X là một khối tin gốc (plaintext), Y là một khối mã tương ứng của X và (zA, ZA) là các thành phần công khai và riêng của khóa của một người A

Nếu một người B muốn gửi một thông báo mã hóa đến cho A thì người đó chỉ việc dùng khóa công khai của A để thực hiện:

Y = EZA(X) = Xe mod n

c Giải mã Sau khi nhận được thông điệp đã được mã hóa Y từ B, để giải mã Y, A phải dùng khóa riêng zA = d để thực hiện:

DzA(Y) = Yd mod n

2.4.1.3 Một số vấn đề về phương pháp RSA

- Việc sinh mã và giải mã trong phương pháp RSA được thực hiện một cách chặt chẽ, chính vì vậy nó đảm bảo được các tính chất cần thiết để ứng dụng trong CKS:

o Bảo mật trong truyền tin (Confidentiality)

o Tính chứng thực

o Kết hợp được tính bảo mật và tin cậy

- Đối với việc chọn p và q, như đã trình bày ở trên, p và q phải là những số nguyên tố mạnh, tức là chúng phải là những số nguyên tố lớn, ít nhất là cỡ

Trang 29

100 chữ số và chúng phải lớn cỡ xấp xỉ nhau (chẳng hạn như độ dài cùng 100 chữ số)

- Một thuật toán để tạo ra tất cả các số nguyên tố là không tồn tại, tuy nhiên có những thuật toán khá hiệu quả để kiểm tra xem một số cho trước có phải là nguyên tố hay không Thực tế, việc tìm các số nguyên tố lớn cho RSA là một vòng lặp như sau:

o Chọn số ngẫu nhiên p nằm trong một khoảng có độ lớn yêu cầu (tính theo bit)

o Kiểm tra tính nguyên tố của p, nếu nguyên tố thì dừng lại, nếu không thì lại quay lại bước trước

- Những thuật toán để kiểm tra tính nguyên tố là khá tốn thời gian, nếu muốn thực hiện thì phải được thực hiện trên một máy tính có tốc độ xử lý cao Tuy nhiên người ta cũng có thể sử dụng các thuật toán xác suất, có khả năng

“đoán” rất nhanh xem một số có phải nguyên tố không Các thuật toán này không đưa ra kết quả chính xác tuyệt đói, nhưng nó cũng có thể tiến gần đến mức tuyệt đối, tức là xác suất sai có thể làm nhỏ đến mức tối đa phụ thuộc vào thời gian bỏ ra

- Về bài toán phân tích ra thừa số nguyên tố, đó là một việc làm rất tốn nhiều thời gian Giải thuật thực hiện tốt nhất vẫn là phương pháp sàng số một ước lượng về thời gian thực hiện giải thuật này là:

L(n) ≈ 109.7 + 1/50*log2n

Trong dó log2n cho biết số bit cần để biểu diễn n, số cần phân tích ra thừa số nguyên tố Từ đó rút ra, nếu tăng n lên thêm 50 bit (quãng 15 chữ số thập phân) thì thời gian làm phân tích ra thừa số nguyên tố tăng lên 10 lần Người

ta ước lượng được đối với n = 200 thì L(n) ≈ 55 ngàn năm

- Thêm vào đó, không phải RSA là không có điểm yếu Bở lẽ, trong hệ RSA, không phải tất cả các thông tin đều được che giấu tốt, tức là mọi khóa đều tốt

và đề làm bản rõ thay đổi hoàn toàn Đối với bất kỳ khóa nào tồn tại ít nhất 9

Trang 30

bản rõ bị “phơi mặt”, tuy nhiên đối với n ≥ 200 điều đó không còn quan trọng Mặc dù vậy phải chú ý là nếu e không được chọn cẩn thận thì có thể gần đến 50% bản rõ bị lộ Người ta cho răng có thể tránh được tính huống này nếu số nguyên tố được chọn là AN TOÀN Một số nguyên tố được coi là AN TOÀN nếu p = 2p’ + 1 trong đó p’ cũng là một số nguyên tố

2.4.1.4 Đánh giá độ an toàn của phương pháp RSA

- Một nhận định chung là tất cả các cuộc tấn công giải mã đều mang mục đích không tốt Tính bảo mật của RSA chủ yếu dựa vào việc bảo vệ khóa bí mật d

và giữ bí mật các số nguyên tố p và q “Sự an toàn của thành phần khóa mật (private key) phụ thuộc vào tính khó của việc phân tích thừa số (PTTSNT) nguyên tố các số lớn”

- Tuy nhiên, độ an toàn của RSA chưa chắc đã hoàn toàn tương đương với tính khó của bài toán PTTSNT, tức là có thể tồn tại các phép tấn công phá vớ được RSA mà không cần phải biết PTTSNT của n Với người thám mã, có thể tấn công vào hệ RSA theo các cách thức:

o Vét cạn: không gian khóa RSA rất lớn vì vậy tấn công theo hướng này

là không thể thực hiện được

o Dùng toán học để tìm cách phân tích modulo n thành các thừa số nguyên tố

- Đối với một số hệ RSA, khi rơi vào một số điều kiện đặc biệt có thể sẽ trở nên kém an toàn với người sử dụng:

o Tấn công modul đồng dư (Common modulus attack): Khi một nhóm user sử dụng các khóa công khai Z = (e, n) khác nhau ở thành phần e nhưng lại giống nhau ở module đồng dư n Khi đó nếu người thám mã lấy được hai đoạn bản mã của cùng một bản rõ được mã hóa bởi khóa

PK khác nhau từ hai user khác nhau, và hai thành phần e tương ứng là nguyên tố cùng nhau thì sẽ có cách để giải được bản mã Tóm lại nên

Trang 31

tránh việc sử dụng chung module đồng dư giữa những user cùng một nhóm làm việc nào đó

o Tấn công số mũ nhỏ (Low exponent attack): Khi e được chọn nhỏ (e nhỏ thì thuật toán mã hóa trong truyền tin cũng như kiểm định chữ ký nhanh hơn), nếu người thám mã có thể tìm được e(e + 1)/2 bản mã mà được mã hóa từ những bản rõ phụ thuộc tuyến tính thì hệ thống sẽ bị nguy hiểm Tuy nhiên nếu các bản rõ này độc lập và không có quan hệ với nhau thì không sao Vì vậy nên ghép thêm vào các bản rõ những xâu nhị phân ngẫu nhiên để đảm bảo cho chúng là không bị phụ thuộc

o Tấn công khóa mật nhỏ (Low decryption attack): Nếu thành phần khóa mật d mà đủ nhỏ thì có khả năng người thám mã sẽ tìm thấy được

- Do tính đơn giản trong thiết kế nên RSA được ứng dụng rộng rãi và dùng nhiều nhất trong số các thuật toán với khoá công khai Và cũng chính vì thế

nó đã trải qua nhiều thử thách, xem xét, kiểm chứng của cộng đồng về độ an toàn của nó Tuy nhiên khi dùng RSA thì tốc độ mã hóa khá chậm (nhất là so với các hệ mã đối xứng có cùng độ an toàn), vì thế để mã hoá khối dữ liệu lớn

là không khả thi mà chỉ được sử dụng với các văn bản ngắn , thêm nữa người

ta đã tìm ra ứng dụng quan trọng độc đáo khác của RSA hơn là dùng nó để

mã hóa:

o Tạo vỏ bọc an toàn cho văn bản: Dùng RSA để mã hoá khoá bí mật (của các hệ mật mã có tốc độ mã hoá cao như DES, IDEA, …) và dùng khoá bí mật đó để mã hoá dữ liệu, bên gửi chỉ gửi đến cho bên nhận một bộ khoá bí mật được mã hoá bằng RSA, dữ liệu được mã hoá bằng khoá bí mật Như vậy các hệ mã đối xứng khắc phục tốc độ mã hoá của RSA, còn RSA khắc phục khâu yếu nhất của mã hoá đối xứng là bảo đảm chuyển giao an toàn chìa khoá mã cho người nhận

o Xác thực chủ thể: là việc đảm bảo khi người nhận có được mật thư thì biết chắc chắn ai là tác giả bức thư đó Và cũng đảm bảo việc không ai

Trang 32

có thể mạo danh người khác để gửi thư Hai chìa khoá công khai và bí mật trong hệ RSA là có vai trò “đối xứng” nhau theo nghĩa nếu cái này được dùng để mã hoá thì cái kia được dùng để giải mã và ngược lại Vậy nếu A dùng khoá bí mật để mã hoá văn bản gửi đi thì B dùng khoá công khai của A để giải mã văn bản, điều đó chứng tỏ A đã xác nhận ký vào văn bản

2.4.1.5 Đánh giá chung về phương pháp RSA

- Đơn giản, dễ hiểu, dễ cài đặt

- Hiệu suất hoạt động: RSA chạy chậm do việc phát sinh khóa công khai - khóa

bí mật hay quá trình mã hóa-giải mã tốn nhiều thời gian vì phải tính toán trên các số nguyên dương cực lớn, có chiều dài vượt quá khả năng chứa của thanh ghi nên phải giả lập, thực hiện lại nhiều lần và sử dụng nhiều đến bộ xử lý

Do đó, RSA không được sử dụng vào mục đích mã hóa các khối lượng dữ liệu lớn mà chỉ ứng dụng trong chữ ký điện tử để mã hóa thông điệp ngắn đã qua hàm băm, giả thuật trao đổi khóa bí mật (khóa dùng cho các hệ thống mã hóa đối xứng - hay khóa riêng), hay chỉ mã hóa một lượng dữ liệu nhỏ

- Tính bảo mật: Như đã trình bày ở trên, độ an toàn của RSA dựa trên bài toán phân tích ra thừa số nguyên tố Do đó, chiều dài số càng lớn thì càng khó phân tích ra thừa số nguyên tố

- Dù là hệ mã công khai xuất hiện đầu tiên, nhưng cho đến nay hệ mã RSA vẫn cho thấy là một hệ mã rất an toàn Tính an toàn của nó dựa trên bài toán Phân tích thừa số nguyên tố

- Thuật toán RSA chỉ bị phá vỡ khi tìm được một cách nào đó cho ta trực tiếp các thừa số nguyên tố của một số Cho đến bây giờ việc đó chưa được chứng minh là bất khả Nhưng nếu chúng ta biết rằng các số nguyên tố đã được nghiên cứu từ cả ngàn năm nay, và trong vòng vài thập niên qua được nghiên cứu rầm rộ trở lại thì câu trả lời có vẻ còn rất xa vời Nhưng nếu tìm ra được một phương pháp như thế, thì thuật toán mã hoá sẽ bị thay đổi toàn diện

Trang 33

- Sau khi hệ mã RSA xuất hiện, đã có rất nhiều hệ mã công khai khác được ra đời với rất nhiều cải tiến Và với sự phát triển của mật mã khóa công khai, có

lẽ sẽ có lúc việc mã hóa không còn là việc xa lạ với mọi người nữa, mà có thể

mã hóa sẽ được áp dụng rộng rãi trong đời sống chúng ta Có thể lúc đó, trong danh thiếp của mỗi người, ngoài số điện thoại và địa chỉ, còn có thêm khóa lập mã của họ

2.4.2.1 Mô tả thuật toán

Elgamal được xây dựng trên “tính khó” của bài toán logarithm rời rạc trên không gian Zp khi p là số nguyên tố Tính an toàn của nó tùy thuộc vào độ phức tạp của bài toán logarit

Quy trình thực hiện xây dựng thuật toán Elgamal cũng bao gồm ba bước chính: xây dựng các khóa, ký số và kiểm tra chữ ký:

a Tạo cặp khóa bí mật, công khai

- Ban đầu người ta sẽ chọn số nguyên tố p sao cho bài toán logarit rời rạc trong

Zp là “khó giải”, ở đây à việc chọn p sao cho p – 1 có một ước số nguyên tố lớn

- Chọn phần tử cấu trúc (primitive element) a  Zp* với:

{ai, I = 0, p – 1) ≡ Zp*

- Chọn khóa bí mật là x  Zp*

Trang 34

- Tính khóa công khai y = ax mod p

- Các giá trị p, a, y được công khai, còn x phải giữ bí mật

b Ký số

Việc ký vào một bản rõ X  Zp ta làm như sau:

- Dùng 2 khóa ký: khóa x và khóa ngẫu nhiên bí mật k  Zp-1*, sao cho GCD(k, p – 1) = 1

- Do k  Zp-1*, nên k nguyên tố cùng p -1, do đó tồn tại k-1 mod (p -1)

- Chữ ký trên X là y = Siga(X, k) = (, ), trong đó:

o   Zp*,   Zp-1

o  = ak mod p

o  = (X – x *  ) * k -1 mod (p -1)

c Kiểm tra chữ ký

- Để kiểm tra chữ ký, ta cần tính lại khóa mã của thông điệp, tức là:

Ver k (X, , ) = true  y  *    aX mod p

- Nếu chữ ký được tính đúng, kiểm thử sẽ thành công vì:

y  *    a x *  * a k *  mod p  g (x *  + k * ) mod p  aX mod p

Do  = (X – x *  ) * k -1 mod (p -1) nên (x *  + k *)  X mod (p-1)

Trang 35

2.4.2.2 Đánh giá phương pháp Elgamal

a Ưu, nhược điểm của Elgamal

- Ưu điểm:

o Độ phức tạp của bài toán logarit lớn nên độ an toàn cao

o Bản mã phụ thuộc vào bản rõ x và giá trị ngẫu nhiên nên từ 1 bản rõ ta

có thể có nhiều bản mã khác nhau

- Nhược điểm:

o Tốc độ chậm(do phải xử lý số nguyên lớn)

o Dung lượng bộ nhớ dành cho việc lưu trữ khóa cũng lớn

b Về bài toán Logarit rời rạc

- Logarit rời rạc là sự tiếp nối của phép tính lôgarit trên trường số thực vào các nhóm hữu hạn Ta nhắc lại rằng với hai số thực x, y và cơ số a > 0, a ≠ 1, nếu a*x=y thì x được gọi là lôgarit cơ số a của y, ký hiệu x= logay

- Logarit rời rạc là bài toán khó (chưa biết một thuật toán hiệu quả nào), trong khi bài toán ngược luỹ thừa rời rạc lại không khó (có thể sử dụng thuật toán bình phương và nhân)

c Về độ an toàn

Trang 36

- Hệ elgamal dựa trên bài toán logarit rời rạc Tính an toàn của nó tùy thuộc vào độ phức tạp của bài toán logarit

- Trong bài toán về hệ Elgamal:

o p là số nguyên tố, a là phần tử cấu trúc của Zp* p và a là cố định

o Bài toán logarit rời rạc có thể được phát biểu như sau: Tìm 1 số mũ x duy nhất, 0 ≤ x ≤ p-2 sao cho ax = y (mod p), với y thuộc Zp* cho trước

- Bài toán có thể giải được bởi phương pháp vét cạn (tức là duyệt tất cả phần từ x) để tìm x thỏa mãn Tuy nhiên, bài toán này có độ phức tạp là: O(p) (bỏ qua thừa số logarit) Vấn đề đặt ra là nếu p lớn, rất lớn thì để thực hiện phương pháp này cần thời gian rất lớn Vì vậy điều này không khả thi

- Tuy nhiên cũng tồn tại một số phương pháp để thám mã thuật toán Elgamal

Ví dụ như: thuật toán Shank hay thuật toán Pohlig – Hellman Tác giả xin phép được trình bày sơ qua về thuật toán Shank ở phần tiếp theo

2.4.2.3 Thám mã hệ Elgamal

a Phá khóa theo sơ đồ Elgamal

Khoá bí mật a có thể bị phát hiện, nếu khóa ngẫu nhiên r bị lộ, hoặc dùng r cho hai lần ký khác nhau

 (1) Trường hợp 1: Số ngẫu nhiên r bị lộ:

Nếu r bị lộ, thám mã sẽ tính được khoá mật a = (x - r )  -1 mod (p-1)

 (2)Trường hợp 2: Dùng r cho hai lần ký khác nhau:

Giả sử dùng r cho 2 lần ký trên x1 và x2 (, 1) là chữ ký trên x1, (, 2) là chữ ký trên x2

Khi đó thám mã có thể tính được a như sau:

) (mod

1

1 x p

      2 x2 (modp)

Trang 37

p

d d p d

'''

Khi đó đồng dư thức (1) trở thành: x'  r * ' (mod p')

Vì (', p') = 1 nên tính  = (')-1 mod p' và tính r = x'* mod p'

 r = x'* + i*p' mod (p-1), với i là giá trị nào đó, 0 i  d-1 Thử với giá trị đó, ta tìm được r (điều kiện thử để xác định r là  = r mod p) Tiếp theo sẽ tính được a như trường hợp (1)

b Thuật toán Shank

Thuật toán này có tên gọi khác là thuật toán thời gian – bộ nhớ Tư tưởng của thuật toán là nếu ta có đủ bộ nhớ thì có thể sử dụng bộ nhớ đó để giảm thời gian thực hiện của thuật toán

Input: Số nguyên tố p, phầ n tử nguyên thủ y a củ a Z*, số nguyên y

Output: cầ n tìm x sao cho ax mod p = y

Thuật toán:

Gọi m = [(p-1)1/2] (lấ y phần nguyên)

Bước 1: Tính amj mod p vớ i 0 ≤ j ≤ m-1

Bước 2: Sắp xếp các cặp (j, amj mod p) theo amj mod p và lưu và o danh sá ch L1

Trang 38

Bước 3: Tính yai mod p vớ i 0 ≤ i ≤ m-1

Bước 4: Sắp xếp các cặp (i, ya-i mod p) theo amj mod p và lưu và o danh sá ch L2

Bước 5: Tìm trong hai danh sách L 1 và L2 xem có tồn tại cặp (j, amj mod p) và (i, ya-i mod p) nào mà amj mod p = yai mod p (to ̣a đô ̣ thứ hai của hai că ̣p bằng nhau)

Lưu ý: Vì amj = yai => amj-i = y nên bước 5 luôn thành công

Bước 6: x = (mj + i) mod (p-1) Kế t quả nà y có thể kiể m chứng từ công thức amj mod p = yai mod p => amj- i mod p = y mod p => x = (mj - i) mod (p-1)

Ví dụ:

Với bài toán trên người thám mã chỉ có khóa công khai

KP = (p, a, y) = (97, 5, 44)

m = [(p-1)1/2]= [(97-1)1/2]= 10

Bước 1: Tính amj mod p vớ i 0 ≤ j ≤ m-1

Bước 2: Sắp xếp các cặp (j, amj mod p) theo amj mod p và lưu vào danh sách L1

j(0 ≤ j ≤ m-1) 510.j mod 97(amj mod p)

Trang 39

6 33

Bước 3: Tính yai mod p vớ i 0 ≤ i ≤ m-1

Bước 4: Sắp xếp các cặp (i, ya-i mod p) theo amj mod p và lưu vào danh sách L2

i(0 ≤ i ≤ m-1) 44.5i mod 97(yai mod p)

Trang 40

Bước 5: Tìm trong hai danh sách L1 và L2 xem có tồn tại cặp (j, amj mod p) và (i, ya-i mod p) nào mà amj mod p = yai mod p (to ̣a đô ̣ thứ hai của hai că ̣p bằng nhau)

Dựa vào 2 bảng danh sách L1 và thì có khi j = 6 và i=2 thì amj mod p= yai mod p= 33

Bước 6: x = (mj + i) mod (p-1) Kế t quả nà y có thể kiể m chứng từ công thức amj mod p = yai mod p => amj- i mod p = y mod p => x = (mj - i) mod (p-1)

Vậy ta có x= (10 x 6 - 2) mod (97-1)= 58.(So sánh với kết quả bài toán giải mã thì x cũng bằng 58)

2.4.3 Phương pháp DSA

Lược đồ chữ ký DSA (Digital Signature Algorithm) [6] của NIST đưa ra tháng

12 năm 1994, là sự cải tiến từ lược đồ chữ ký ElGamal, và đã trở thành một trong những chuẩn chữ ký điện số DSS (Digital Signature Standard) ở Mỹ và thế giới Hệ thống chữ ký này có độ an toàn cao và thực hiện hiệu quả trên các thiết bị có tốc độ

xử lý chậm và bộ nhớ ít như thẻ thông minh (smart cards)

2.4.3.1 Mô tả thuật toán

Thuật toán DSA tính toán trên một tập các tham số, một khóa riêng x, một số bí mật trên từng thông điệp k, dữ liệu cần được ký, và một hàm băm Đối với quá trình xác minh cũng sử dụng các tham số, một khóa công khai y có mối quan hệ toán học với x, dữ liệu cần được xác minh, hàm băm sử dụng trong lúc ký

Thuật toán DSA đòi hỏi cặp khóa chung và riêng sử dụng cho quá trình sinh và xác minh chữ ký số được sinh ra từ một tập các tham số riêng Những tham số này

có thể đại diện cho một nhóm người sử dụng và có thể là công khai Một người sử dụng của một tập tham số sẽ phải có sự đảm bảo khi muốn sử dụng chúng Tập tham số này có thể được sử dụng trong khoảng thời gian cố định

Cũng như các thuật toán CKS khác, quy trình thực hiện xây dựng thuật toán DSA cũng bao gồm ba bước chính: sinh khóa, ký số và kiểm tra chữ ký

Ngày đăng: 09/11/2018, 22:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w