Tải bản đầy đủ (.pdf) (73 trang)

tìm hiểu về hệ thống cấp phát chứng thư mã nguồn mở EJBCA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.82 MB, 73 trang )

Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 1

Chương 1 3
Tổng quan về mật mã 3
1.1 Giới thiệu tổng quan 3
1.2 Tình hình triển khai 5
1.2.1 Trên thế giới 5
1.2.2 Việt Nam 8
1.3 Nhu cầu thực tế 10
1.4 Tổng quan mật mã, khái niệm hệ mã 11
1.4.1 Tổng quan mật mã 11
1.4.2 Khái niệm hệ mã 12
Chương 2 15
Hệ thống mật mã khóa công khai, chứng thư số 15
2.1 Hệ thống mật mã khóa công khai 15
2.1.1 Giới thiệu 15
2.2 Hệ thống khóa công khai RSA 20
2.2.1 Ý tưởng 21
2.2.2 Thuật toán RSA 22
2.2.3 Một số ứng dụng cơ bản của hệ thống mật mã khóa công khai 24
2.2.4 Một số vấn đề xung quanh thuật toán RSA 25
2.2.5 Điểm yếu của giải thuật RSA 28
2.2.6 Đánh giá về an toàn của thuật toán RSA 29
2.3 Ưu điểm và nhược điểm của hệ mật mã khóa công khai 29
2.4 Chứng thư số 31
2.4.1 Tổng quan về chứng thư số 31
2.4.2 Quy trình cấp chứng thư số 33
2.4.3 Lợi ích sử dụng chứng thư số 33
Chương 3 34


Quản lý chứng thư 34
3.1 Các kiến trúc PKI 34
3.1.1 Kiến trúc CA đơn 36
3.1.2 Kiến trúc phân cấp 39
3.1.3 Kiến trúc CA lưới 43
3.1.4 Kiến trúc CA lai……………………………… ……………………………………46
3.1.5 Kết luận 49
3.2 Khảo sát tiêu chuẩn chứng thư 50
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 2

3.2.1 Các tổ chức tiêu chuẩn trên thế giới 50
3.2.2 Các phiên bản chứng thư được ban hành 51
3.2.3 Khảo sát khuôn dạng chứng thư được ban hành tại Mỹ 52
3.2.4 Khảo sát khuôn dạng chứng thư được tại các nước ASIA 54
3.2.4 Nhận xét 54
3.3.1 Chứng thư tự kí (Root CA) 55
3.3.2 Chứng thư tự ban hành (Self-issued) 56
3.3.3 Chứng thư chéo 57
Chương 4 58
Triển khai hệ thống chứng thực khóa công khai sử dụng gói phần mềm mã nguồn mở EJBCA 58
4.1 Gói phần mềm mã nguồn mở EJBCA 58
4.1.2 Kiến trúc 60
4.1.3 Chức năng 61
4.2 Lý do chọn gói phần mềm mã nguồn mở EJBCA 62
4.3 Triển khai hệ thống 63
4.3.1 Mục tiêu 63
4.3.2 Mô hình triển khai 63
4.4 Kết quả triển khai và thử nghiệm 66

4.5 Kết luận 71
4.6 Hướng phát triển 71
Kết Luận 72
Tài liệu tham khảo 73

Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 3

Chương 1
Tổng quan về mật mã

Nội dung của chương này trình bày tổng quan về hệ tầng khóa
công khai (PKI), giới thiệu khái quát về tình hình triển khai và nhu cầu sử dụng
PKI trong thực tế, đồng thời nêu lên mục tiêu và nội dung của đề tài. Trình bày
tổng quan về mật mã, khái niệm hệ mã.
1.1 Giới thiệu tổng quan
Ngày nay, với sự phát triển của hạ tầng truyền thông công nghệ thông tin,
việc giao tiếp qua mạng Internet đang trở thành một nhu cầu cần thiết. Hầu hết
mọi hoạt động như giao tiếp, giải trí, kinh doanh, đều chuyển từ cách thức
truyền thống sang môi trường điện tử. Môi trường làm việc này mang đến nhiều
cơ hội nhưng cũng nảy sinh rất nhiều vấn đề về an toàn thông tin nghiêm trọng.
Hầu hết các thông tin kinh doanh nhạy cảm và quan trọng đều được lưu trữ và
trao đổi dưới hình thức điện tử như mã số tài khoản, thông tin mật, Nhưng
với các thủ đoạn tinh vi, nguy cơ những thông tin này bị đánh cắp qua mạng
thật sự là vấn đề đáng quan tâm.
Việc giao dịch điện tử như trao đổi thư tín, thương mại điện tử, dịch vụ
web, mạng riêng ảo…đã trở thành một phần tất yếu của cuộc sống hiện đại. Nhu
cầu thực tế được đặt ra, đó là phải có một cơ quan đảm bảo chứng thực điện tử
cho các giao dịch điện tử đảm bảo yêu cầu xác thực, bí mật, toàn vẹn, chống

chối bỏ. Thực tế là hiện nay có rất nhiều công nghệ và phương pháp để xác thực
danh tính trong giao dịch điện tử. Những phương pháp đó sử dụng mật khẩu, số
định danh cá nhân, chứng chỉ số sử dụng PKI, các thiết bị bảo mật vật lý như
Smart Card,…
Đứng trước nhu cầu đó, rất nhiều công ty bảo mật đã phối hợp cùng các
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 4

ngân hàng, tổ chức tài chính để phát triển những giải pháp, sản phẩm để bảo vệ
thông tin có liên quan tới các hoạt động giao dịch trực tuyến. Hiện nay, trên thế
giới có rất nhiều cách xây dựng , triển khai một hệ thống PKI . Có thể đơn cử ra
một vài ví dụ cụ thể như: CA – Microshoft, OpenCA – Opensourc, Entrus.
Trong đề tài đồ án tốt nghiệp, em lựa chọn giải pháp sử dụng EJBCA của
Primekey trên nền tảng hệ điều hành CentOS. EJBCA là một CA đầy đủ chức
năng được xây dựng trên nền tảng Java. Do được dựa trên công nghệ J2EE,
EJBCA tạo thành một CA mạnh, hiệu suất cao. Với sự mềm dẻo, chạy độc lập
không phụ thuộc vào hệ điều hành và phần cứng, EJBCA có thể được sử dụng
độc lập hoặc được tích hợp trong các ứng dụng J2EE.
Qua tìm hiểu và nghiên cứu em chọn đề tài “Tìm hiểu về hệ thống cấp
phát chứng thư mã nguồn mở EJBCA”. cho đồ án tốt nghiệp của mình.
Em xin chân thành cám ơn thầy giáo TS.Vũ Thành Nam đã luôn tận tình
hướng dẫn và chỉ bảo em hoàn thành đề tài này.

Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 5

1.2 Tình hình triển khai
1.2.1 Trên thế giới

Rất nhiều quốc gia trong khu vực cũng như trên toàn thế giới đã và đang
đẩy mạnh ứng dụng công nghệ thông tin nhằm phục vụ cho các hoạt động kinh
doanh và đời sống xã hội bằng việc ban hành các bộ luật liên quan đến thương
mại điện tử, chữ ký điện tử. Dưới đây là thời điểm ban hành các bộ luật của một
số quốc gia trên thế giới.
Luật thương mại quốc tế của ủy ban Liên hợp quốc
• UNCITRAL: luật mẫu về Chữ ký điện tử (2001), có ảnh hưởng
lớn đến các bộ luật của các quốc gia trên thế giới.
Châu Mỹ
• Canada: luật Thương mại điện tử thống nhất (1999).
• Mexico: luật Thương mại điện tử (2000).
• Mỹ: luật Giao dịch điện tử thống nhất (1999), luật Chữ ký điện tử
trong thương mại quốc gia và quốc tế (2000).
Châu Âu
• Khối EU: hướng dẫn số 1999/93/EC của Quốc hội châu Âu
(13/12/1999) về khung pháp lý của chữ ký điện tử, Quyết định 2003/511/EC sử
dụng 3 thỏa thuận tại hội thảo CEN làm tiêu chuẩn kỹ thuật.
• Anh, Scotland và Wales: luật Thông tin điện tử (2000), Chữ ký
điện tử (2002).
• Áo: luật Chữ ký điện tử (2000).
• Cộng hòa Czech: luật Chữ ký điện tử (2000).
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 6

• Cộng hòa Litva: luật Chữ ký điện tử (2002).
• Đức: luật Chữ ký điện tử (2001, chỉnh sửa vào năm 2005).
• Ireland: luật Thương mại điện tử (2000).
• Liên bang Nga: luật Liên bang về chữ ký số điện tử (10/01/2002)
• Nauy: luật Chữ ký điện tử (2001).

• Rumani: luật Chữ ký điện tử (2001).
• Tây Ban Nha: luật Chữ ký điện tử (2003).
• Thụy Điển: luật Chữ ký điện tử (2000).
• Thụy Sĩ: luật Liên bang về chứng thực liên quan đến chữ ký điện
tử (2003). Châu Đại Dương
• New Zealand: luật Giao dịch điện tử (2002).
• Úc: luật Giao dịch điện tử (1999).
Châu Á
• Ấn Độ: luật Công nghệ thông tin (6/2000).
• Đài Loan: luật Chữ ký điện tử (4/2002).
• Hàn Quốc: luật Chữ ký điện tử (2/1999).
• Hong Kong: quy định Giao dịch điện tử (2000, chỉnh sửa vào năm
2004).
• Nhật Bản: luật Chữ ký số (4/2001).
• Singapore: luật Giao dịch điện tử (1998).
• Thái Lan: luật Giao dịch điện tử (2001).
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 7

• Trung Quốc: luật Chữ ký số (8/2004).
Châu Phi
• Nam Phi: luật Giao dịch và Thông tin điện tử (2003).
Bên cạnh việc ban hành các bộ luật, các nước cũng đã triển khai thành
công các hạ tầng PKI cho toàn quốc gia chứ không phải đơn lẻ cho từng tổ
chức. Các số liệu sau đây được ghi nhận cho đến tháng 5/2005 tại một số quốc
gia Châu Á:
• Hàn Quốc: có 2 mô hình song song, PKI công cộng (NPKI) và
PKI chính phủ (GPKI). NPKI phục vụ cho các doanh nghiệp, lĩnh vực tài chính
ngân hàng, công dân và có 6 CA được thừa nhận đã phát hành khoảng 11 triệu

chứng nhận. GPKI phục vụ cho khối chính phủ và còn cung cấp dịch vụ cho các
đơn vị hành chính khác. Các PKI được áp dụng cho nhiều lĩnh vực thương mại
điện tử như ngân hàng, mua bán trực tuyến, đấu giá điện tử, bảo mật email,
• Trung Quốc: gom hai hệ thống PKI chính phủ và PKI công cộng.
Theo mô hình này, hệ thống PKI chính phủ chỉ phục vụ giao dịch nội bộ của
chính phủ còn hệ thống PKI công cộng chỉ cung cấp dịch vụ cho các đối tượng
là công chúng. Tính đến tháng 5/2006, Trung Quốc đã có 77 CA và đã phát
hành khoảng 5 triệu chứng nhận được ứng dụng cho mua hàng, thuế, tài chính.
• Nhật Bản: gồm hai hệ thống PKI chính phủ và PKI công cộng.
Các dịch vụ chứng nhận công cộng sử dụng thẻ thông minh cho các cá nhân do
PKI công cộng bắt đầu vào tháng 4/2004. Các lĩnh vực ứng dụng của PKI là các
dịch vụ mua bán điện tử, hồ sơ điện tử và chính phủ điện tử.
• Singapore: các lĩnh vực ứng dụng của PKI có thể được phân loại
như lĩnh vực chính phủ, hậu cần và tập đoàn như thẻ dịch vụ công cộng cho
người dân, thương mại điện tử chính phủ cho việc thu mua hàng hóa, hệ thống
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 8

hồ sơ điện tử, hệ thống email và ứng dụng bảo mật,
• Đài Loan: đến tháng 9/2004, có khoảng 1,2 triệu chứng nhận được
phát hành. Lĩnh vực áp dụng là chính phủ, tài chính, doanh nghiệp như trao đổi
công văn điện tử, mua bán hàng hoá điện tử, bảo mật web, email, thẻ tín dụng.
• Thái Lan: lĩnh vực ứng dụng chính phủ và tài chính như
ThaiDigital ID trong chính phủ và chi trả điện tử trong ngân hàng trong lĩnh vực
tài chính.
• Ản Độ: hiện có 4 CA được cho phép và hơn 18.000 chứng nhận
được phát hành. Lĩnh vực ứng dụng là chính phủ, ngân hàng, chăm sóc sức
khỏe như thẻ chứng minh, ngân hàng điện tử, mua bán trực tuyến, hệ thống
quản lý sức khỏe, đơn thuốc điện tử, thông tin y khoa điện tử.

1.2.2 Việt Nam
Ở Việt Nam, các bộ luật cũng như nghị định được ban hành khá trễ so với
các quốc gia trong khu vực và trên thế giới:
• Luật Giao dịch điện tử ban hành ngày 29/11/2005 (số
51/2005/QH11), có hiệu lực từ ngày 1/3/2006.
• Luật Công nghệ thông tin ban hành ngày 26/6/2006 (số
67/2006/QH11), có hiệu lực từ ngày 1/1/2007.
• Nghị định số 26/2007/NĐ-CP quy định chi tiết thi hành luật Giao
dịch điện tử về Chữ ký số và Dịch vụ chứng thực chữ ký số.
• Nghị định số 27/2007/NĐ-CP về Giao dịch điện tử trong hoạt động
tài chính.
• Nghị định số 35/2007/NĐ-CP về Giao dịch điện tử trong hoạt động
ngân hàng.
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 9

• Nghị định số 63/2007/NĐ-CP quy định xử phạt vi phạm hành
chính trong lĩnh vực công nghệ thông tin.
• Nghị định số 64/2007/NĐ-CP về ứng dụng công nghệ thông tin
trong hoạt động của cơ quan nhà nước.
Tuy đã có hành lang pháp lý về giao dịch điện tử nhưng đến nay chỉ có
một số tổ chức, doanh nghiệp tự triển khai hệ thống CA nội bộ dùng riêng như
Ngân hàng Nhà nước, Vietcombank, ACB, công ty VDC, VASC, Sự chậm
trễ này một phần là do trình độ khoa học kỹ thuật trong lĩnh vực công nghệ
thông tin nước ta còn non kém, phần khác là do sự thiếu quyết tâm và trì trệ
trong công tác nghiên cứu và triển khai.






Hình 1.1. Thời điểm ban hành các luật liên quan PKI của các quốc gia
trên thế giới
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 10

1.3 Nhu cầu thực tế
Sự chậm trễ trong việc triển khai hạ tầng PKI, đẩy mạnh ứng dụng
CNTT, đặc biệt là chữ ký số trong các giao dịch điện tử không chỉ ảnh hưởng
đến các cá nhân, tổ chức có liên quan mà còn làm cho Việt Nam ngày càng tụt
hậu về mặt công nghệ và thiệt hại về kinh tế.
Một số ví dụ điển hình như sau:
• Một công ty do người Việt lập ra tại Singapore chuyên để mua
hàng thông qua các giao dịch điện tử rồi bán ngược lại ở Việt Nam, để ăn chênh
lệch khoảng 10 - 20% tổng giá trị hàng hoá. Mức chênh lệch lợi nhuận khá cao
này được thực hiện đơn giản bởi giao dịch điện tử và đặc biệt là chữ ký số, một
điều bình thường ở Singapore nhưng xa lạ ở Việt Nam.
• Nokia định thực hiện một hợp đồng trị giá gần 1 triệu đô-la Mỹ, để
gia công phần mềm cho điện thoại di động ở Việt Nam. Nhưng sau đó công ty
này bỏ cuộc bởi họ cho rằng không thể chỉ vì Việt Nam mà phải lập một nhóm
chuyên gia chuyên xử lý các văn bản, fax, trong khi giao dịch điện tử thông
qua hình thức chữ ký số là điều bình thường ở rất nhiều nước trên thế giới.
Sau khi ban hành các bộ luật và nghị định làm hành lang pháp lý trong
lĩnh vực thương mại điện tử, tuy chưa xây dựng hạ tầng quốc gia nhưng Việt
Nam đã thu hút khá nhiều đầu tư quan trọng:
• Ngày 24/4/2008, công ty Điện toán và Truyền số liệu VDC, NCS
Solutions và Global Sign đã phối hợp cùng tổ chức “Hội thảo về chứng nhận số
và hệ thống chứng thực điện tử” nhằm hợp tác triển khai đề án chứng thực điện

tử VDC để xây dựng một tổ chức chứng thực gốc tại Việt Nam, cung cấp chứng
nhận số cá nhân cho người dùng, cho máy chủ, mã và phần mềm. Thời điểm
cung cấp dịch vụ chứng thực điện tử của tổ chức này sẽ bắt đầu ngay sau khi
Trung tâm Chứng thực số gốc Quốc gia (Root CA) chính thức đi vào hoạt động.
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 11

• Ngày 3/6/2008, Bộ TT&TT và Cisco đã ký Biên bản ghi nhớ tăng
cường hợp tác trong lĩnh vực công nghệ mạng và truyền thông, góp phần thúc
đẩy quá trình xây dựng Chính phủ điện tử tại Việt Nam.
Một khó khăn chủ yếu trong việc triển khai hạ tầng khóa công khai ở Việt
Nam là lựa chọn mô hình PKI nào phù hợp với nước ta để triển khai. Hiện có
nhiều mô hình khác nhau được áp dụng trên thế giói, nhưng chỉ có hai mô hình
điển hình được hầu hết các quốc gia áp dụng là mô hình tập trung PKI phân cấp
(Root CA) và mô hình CA cầu nối (Bridge CA). Mỗi mô hình đều có những
điểm mạnh, điểm yếu riêng và theo phân tích thì mô hình PKI phân cấp phù hợp
với Việt Nam nhất và hiện đang được tập trung nghiên cứu và triển khai.
1.4 Tổng quan mật mã, khái niệm hệ mã
1.4.1 Tổng quan mật mã
Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ
khai đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai
Cập cổ đại. Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi
ở khắp nơi trên thế giới để giữ bí mật cho việc giao lưu thông tin trong nhiều
lĩnh vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực
quân sự, chính trị, ngoại giao. Mật mã trước hết là một loại hoạt động thực tiễn,
nội dung chính của nó là để giữ bí mật thông tin. Ví dụ muốn gửi một văn bản
từ một người gửi Alice đến một người nhận Bob, người gửi Alice phải tạo cho
văn bản đó một bản mã mật tương ứng và thay vì gửi văn bản rõ thì người gửi
Alice chỉ gửi cho người nhận Bob bản mã mật, người nhận Bob nhận được bản

mã mật và khôi phục lại văn bản rõ để hiểu được thông tin mà người gửi Alice
muốn gửi cho mình. Do văn bản gửi đi thường được chuyển qua các con đường
công khai nên người ngoài có thể “lấy trộm” được, nhưng vì đó là bản mật mã
nên không đọc hiểu được; Còn người gửi Alice có thể tạo ra bản mã mật và
người nhận Bob có thể giải bản mã mật thành bản rõ để hiểu được là do hai
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 12

người đã có một thoả thuận về một khoá chung, chỉ với khoá chung này thì
người gửi Alice mới tạo được bản mã mật từ bản rõ và người nhận Bob mới
khôi phục được bản rõ từ bản mã mật. Khoá chung đó được gọi là khoá mật mã.
Để thực hiện được một phép mật mã, ta còn cần có một thuật toán biến
bản rõ cùng với khoá mật mã thành bản mã mật và một thuật toán ngược lại
biến bản mã mật cùng với khoá mật mã thành bản rõ. Các thuật toán đó được
gọi tương ứng là thuật toán lập mã và thuật toán giải mã. Các thuật toán này
thường không nhất thiết phải giữ bí mật, mà cái luôn cần được giữ bí mật là
khoá mật mã.
1.4.2 Khái niệm hệ mã
Hệ mã (Cryptosystem) là bộ (P, C, K, E, D) thỏa mã các điều kiện sau:
(1) P là tập hữu hạn các bản rõ có thể
(2) C là tập hữu hạn các bản mã có thể
(3) K là không gian khóa mã, là tập hữu hạn các khóa mã có thể
(4) E là tập các hàm lập mã
(5) D là tập các hàm giải mã. Với mỗi k  K, có một quy tắc mã e
k
 E
và quy tắc giải mã d
k
 D.

Các hàm e
k
: P → C và d
k
: C → P thỏa d
k
(e
k
(x)) = x với mọi bản rõ x 
P.
Ta để ý tính chất cơ bản (5), nó có thể hiện rằng mỗi bản rõ x được mã
hóa bằng khóa e
k
thu được từ mã y, và đến lượt từ mã y qua hàm d
k
giải mã
được bản rõ x ban đầu.
Với một hệ mã cụ thể Alice và Bob thực hiện giao thức như sau. Đầu tiên
ta chọn ngẫu nhiên khóa mã k  K, sự lựa chọn này chỉ có Alice và Bob được
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 13

biết còn người thứ ba O không quan sát được. Bây giờ giả sử cần trao đổi thông
điệp
x = x
1
x
2
… x

n
, với các bản rõ x
i
 P (1 ≤ i ≤ n).
Mỗi bản rõ x
i
được mã hóa bằng các quy tắc e
k
được xác đinh bởi khóa
mã k định trước.
Từ đó người gửi Alice tính được y
i
= e
k
( x
i
), 1 ≤ i ≤ n, và thu được thông
điệp mã hóa y = y
1
y
2
… y
n
được gửi đến Bob qua kênh thông tin.
Khi nhận được mã y, người nhận Bob dùng hàm d
k
giải mã, thu được
thông điệp x ban đầu.
Rõ ràng các hàm mã hóa phải là đơn ánh vì nếu không thì không thể giải
mã đúng được. Ví dụ nếu tồn tại

y
1
= e
k
(x
1
) = e
k
(x
2
), với x
1
≠ x
2
thì khi đó người nhận Bob không thể nào xác định được từ mã y
1
cần
được giải mã là x
1
hay x
2
. Để ý rằng nếu P = C thì mọi hàm mã hóa đều là một
hoán vị.
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 14

Key space
Người gửi Alice
Người thứ ba

O
Encoder
Kênh an toàn
Decoder Người nhận Bob
K
X
y
X

Hình 1.2 Sơ đồ áp dụng hệ mã


Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 15

Chương 2
Hệ thống mật mã khóa công khai, chứng thư số

Nội dung của chương này trình bày nội dung về hệ thống mã khóa
công khai, quá trình mã hóa và giải mã thông điệp. Tình hình sử dụng chứng
thư số trên thế giới và Việt Nam.
2.1 Hệ thống mật mã khóa công khai
2.1.1 Giới thiệu
Như đã biết, các hệ thống mật mã đã giới thiệu cho đến giờ đều được gọi
là các hệ mật mã khóa đối xứng (Symmtric Key Cryptosystems) do vai trò hai
bên gửi và nhận tin đều như nhau vì đều sở hữu chung một khoá bí mật. Cũng
có nhiều cách gọi khác đối với các hệ mật mã này, sử dụng tùy vào các ngữ
cảnh phù hợp:
- Hệ mã với khóa sở hữu riêng (Private Key Cryptosystems)

- Hệ mã với khóa bí mật (Secret Key Cryptosystems)
- Hệ mã truyền thống (Conventional Cryptosystems)
Tuy nhiên các hệ mã đối xứng có những nhược điểm cơ bản như sau:
- Vấn đề quản lý khoá (tạo, lưu mật, trao chuyển ) là rất phức tạp khi sử
dụng trong môi trường trao đổi tin giữa rất nhiều người dùng. Với số lượng
người dùng là n thì số lượng khoá cần tạo lập là n(n-1)/2. Mỗi người dùng phải
tạo và lưu n-1 khoá bí mật để làm việc với n-1 người khác trên mạng. Như vậy
rất khó khăn và không an toàn khi n tăng lớn.
- Thứ hai là, trên cơ sở mã đối xứng, ta không thể thiết lập được khái
niệm chữ ký điện tử (mà thể hiện được các chức năng của chữ ký tay trong thực
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 16

tế) và cũng do đó không có dịch vụ non-repudiation (không thể phủ nhận được)
cho các giao dịch thương mại trên mạng.
Thông tin mật được chia sẻ chung bởi cả hai bên Alice và Bob, do đó
Alice có thể làm được bất kỳ cái gì mà Bob làm và ngược lại. Giải pháp duy
nhất cho vấn đề này là phải có thêm một thành phần thứ ba trong bất cứ giao
dịch nào giữa Alice và Bob, tức là một người có thẩm quyền (trusted authority)
mà cả Alice và Bob đều tin tưởng là trung thực. Người này sẽ làm chứng và
trọng tài trong trường hợp xảy ra tranh cãi giữa hai bên trung thực. Người này
sẽ làm chứng và trọng tài trong trường hợp xảy ra tranh cãi giữa hai bên Alice
và Bob. Tuy nhiên công việc của người trọng tài này sẽ rất nặng vì phải tham
gia vào tất cả các giao dịch của các bên, và sớm muộn cũng sẽ trở thành điểm
quá tải về giao thông truyền tin cũng như tốc độ xử lý - điểm tắc ngẽn cổ chai
(bottleneck).
Để giải quyết vấn đề này năm 1976 Diffie và Hellman đã đưa ra khái
niệm về hệ mật mã khoá công khai và một phương pháp trao đổi công khai để
tạo ra một khoá bí mật chung mà tính an toàn được bảo đảm bởi độ khó của một

bài toán toán học cụ thể (là bài toán tính “logarit rời rạc”). Hệ mật mã khoá
công khai hay còn được gọi là hệ mật mã phi đối xứng sử dụng một cặp khoá,
khoá mã hoá còn gọi là khoá công khai (public key) và khoá giải mã được gọi là
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 thì từ khoá công khai rất khó tính được khoá
riêng. Biết được khoá này không dễ dàng tìm được khoá kia. Khoá giải mã được
giữ bí mật trong khi khoá mã hoá được công bố công khai. Một người bất kỳ có
thể sử dụng khoá công khai để mã hoá tin tức, nhưng chỉ có người nào có đúng
khoá giải mã mới có khả năng xem được bản rõ.
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 17

Người gửi Alice sẽ mã hoá thông điệp bằng khóa công khai của người
nhận và người nhận Bob sẽ giải mã thông điệp với khoá riêng tương ứng của
mình.
Quá trình này được mô tả trong hình 2.1 và 2.2
Xin chào Bob
Asymmetric
Cryptography
#####dung@
Directory
của public
key
Alice
Public key P của
Bob

Hình 2.1: Mã hoá thông điệp sử dụng khoá công khai P


Xin chào Bob
Asymmetric
Cryptography
#####dung@
Bob
Private key của
Bob

Hình 2.2: Giải mã thông điệp sử dụng khoá riêng của người nhận
Có nhiều hệ thống khoá công khai được triển khai rộng rãi như hệ RSA,
hệ ElGamal sử dụng giao thức trao đổi khoá Diffie-Hellman và nổi lên trong
những năm gần đây là hệ đường cong Eliptic. Trong số các hệ mật mã trên thì
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 18

hệ RSA là hệ được cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi
trong việc thực thi mật mã khoá công khai.
Hệ mật mã RSA, do Rivest, Shamir và Adleman tìm ra, đã được công bố
lần đầu tiên vào tháng 8 năm 1977 trên tạp chí Scientific American.
Hệ mật mã RSA được sử dụng rộng rãi trong thực tiễn đặc biệt cho mục
đích bảo mật và xác thực dữ liệu số. Tính bảo mật và an toàn của chúng được
bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán phân
tích số nguyên n thành tích các thừa số nguyên tố. Các phép toán được thực
hiện trên Z
n
trong đó n là tích của 2 số nguyên tố lẻ p và q.
Để ý rằng φ(n) = (p – 1)(q – 1). Hệ mật mã RSA được mô tả như sau:
Đặt n = pq, p và q là 2 số nguyên tố, đặt P = C = Z
n


k = {(n, p, q, a, b) : n = pq; p và q nguyên tố, ab1 mod(φ(n))}
Với k  K đặt
Hàm mã hóa: e
k
(x) = x
b
mod n
Hàm giải mã: d
k
(y) = y
a
mod n (x, y  Z
n
)
n và b là khóa công khai
p, q, a là khóa bí mật
Dễ có d
k
(e
k
(x)) = x  x  Z
n
, thật vậy, vì
ab1 mod(φ(n))
nên có thể đặt ab = t φ(n) + 1
Giả sử x  Z
n
khi đó ta có
(x

b
)
a
 x
ba
 

+ 1 mod n
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 19

 (

)
t
x mod n
 1
t
x mod n  x mod n.
Việc phát minh ra phương pháp mã công khai tạo ra một cuộc “cách
mạng” trong công nghệ an toàn thông tin điện tử. Nhưng thực tiễn triễn khai cho
thấy tốc độ mã hoá khối dữ liệu lớn bằng các thuật toán mã hoá công khai chậm
hơn rất nhiều so với hệ mã hoá đối xứng. Ví dụ, để đạt được độ an toàn như các
hệ mã đối xứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc mã hoá một
văn bản lâu hơn gấp hàng ngàn lần. Do đó, thay bằng việc mã hoá văn bản có
kích thước lớn bằng lược đồ khoá công khai thì văn bản này sẽ được mã hoá
bằng một hệ mã đối xứng có tốc độ cao như DES, IDEA,…sau đó khoá được sử
dụng trong hệ mã đối xứng sẽ được mã hoá sử dụng mật mã khoá công khai.
Phương pháp này rất khả thi trong việc mã và giải mã những văn bản có

kích thước lớn như được mô tả trong hình 2.3 và 2.4.
Xin chào Bob
Asymmetric
Cryptography
#####dung@
Directory
của public
key
Alice
Public key P của
Bob
symmetric
Cryptography
Secret Key S

Hình 2.3: Mã hoá thông điệp sử dụng khoá bí mật S để mã hóa thông điệp
và khoá công khai P để mã hóa khoá bí mật S.

Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 20

Xin chào Bob
Asymmetric
Cryptography
#####dung@
Bob
Private key P
của Bob
symmetric

Cryptography
Symmetric Key S

Hình 2.4: Giải mã thông điệp sử dụng khoá bí mật S để giải mã thông
điệp và khoá riêng P để giải mã khoá bí mật S
2.2 Hệ thống khóa công khai RSA
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 Rivest, Shamir & Adleman (1977). Nó là chuẩn mật mã
bất thành văn đối với PKI, cung cấp đảm bảo tính mật, xác thực và chữ ký điện
tử.
Cơ sở thuật toán RSA dựa trên tính khó của bài toán phân tích các số lớn
ra thừa số nguyên tố: không tồn tại thuật toán thời gian đa thức (theo độ dài của
biểu diễn nhị phân của số đó) cho bài toán này. Chẳng hạn, việc phân tích một
hợp số là tích của 2 số nguyên tố lớn hàng trăm chữ số sẽ mất hàng ngàn năm
tính toán với một máy PC trung bình có CPU khoảng trên 2Ghz.




Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 21

2.2.1 Ý tưởng
Các nhà phát minh có lựa chọn khá giản dị là xây dựng thuật toán
sinh/giải mã trên cơ sở phép toán lấy luỹ thừa đồng dư trên trường Z
n
=
{0,1,2, n-1}. Chẳng hạn, việc sinh mã cho tin X sẽ được thực hiện qua:
Y =X

e
 n
Ở đây ta dùng ký hiệu a = b + n nghĩa là a = b  k* n với a  Z
n
còn
k = 1,2,3, , ví dụ 7 = 3
3
 10) còn việc giải mã:
X = Y
d
 n
(e – khóa sinh mã, d – khóa giải mã)
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: X
ed
= X  n
Người ta đã tìm được cách xây dựng cặp số (e,d) này trên cơ sở công thức như
sau:


= 1  n (định lý Ơ - le)
Trong đó  hàm số cho biết số lượng các số thuộc Z
n
mà nguyên tố cùng
nhau với n.
Người ta cần chọn e*d sao cho chia 



dư 1, hay d= e

-1
 



, khi đó ta sẽ
có điều cần thiết:
X
ed
= 





= (




)
d
* X = 1*X =X
 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ì  = (p-1) (q-1).
Nói cách 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
+  hay
là X

ed
= X  n, còn nếu không biết thì rất khó.

Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 22

2.2.2 Thuật toán RSA
Xây dựng: Chọn các tham số
1. Chọn hai số nguyên tố lớn p và q.
Tính n = p x q và m =  = (p = 1) x (q-1).
2. Chọn e, 1e  m -1, sao cho gcd (e, m) = 1.
3. Tìm d sao cho e * d = 1 (mod m), tức là tính d = e
-1
(mod m), giải theo thuật
toán gcd mở rộng đã trình bày ở phần trước.
Khóa công khai (Public key) là (e, n)
Khoá dùng riêng (Private key) là d, p, q)
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à là các thành phần công khai và riêng của khoá của Alice
Mã hoá: Nếu Bob muốn gửi một thông báo mã hoá cho Alice thì anh ta chỉ việc
dùng khoá công khai của Alice để thực hiện:
Y = 


(X) = X
e
 n
Giải mã: Khi Alice muốn giải mã Y, cô ta chỉ việc dùng khoá riêng z
A

= d để
thực hiện như sau:



(Y) = Y
d
 n
Ví dụ
Chọn p = 11 và q = 13
n=11*13=143
m= (p-1)(q-1) =10 *12=120
e=37 gcd (37,120) =1
Sử dụng thuật toán gcd để tìm sao cho e * d =1  120, ta tìm được d= 13 (e*d
=481)
Để mã hoá một xâu nhị phân, ta phải “bẻ” ra thành nhiều đoạn độ dài là u
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 23

bit, sao cho 2
u
≤ 142. Do đó u = 7. Mỗi đoạn như vậy sẽ là một con số nằm
trong khoảng 0 - 127 và ta có thể tính mã Y theo công thức:
Y = X
e
 120
Chẳng hạn với X = (0000010) =2, ta có
E
Z

(X) = X
37
= 12  143 Y= (00001100)
Giải mã như sau:
X = D
Z
(Y) = 12
13
= 2  143
Để tiện cho việc giao dịch trên mạng có sử dụng truyền tin mật, người ta
có thể thành lập các Public Directory (thư mục khoá công khai), lưu trữ các
khóa công khai của các user. Thư mục này được đặt tại một điểm công cộng
trên mạng sao cho ai cũng có thể truy nhập tới được để lấy khoá công khai của
người cần liên lạc.
User
(n, e)
Alice
Bob
Cathy
.
.
.
(85, 23)
(117, 5)
(4757, 11)
.
.
.




Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 24

2.2.3 Một số ứng dụng cơ bản của hệ thống mật mã khóa công khai
a. Bảo mật trong truyền tin
Alice sẽ gửi 


cho Bob. Bob dễ dàng giải mã bằng khóa bí mật z
B

b. Chứng thực
- Alice ký lên tin cần gửi bằng cách mã hóa với khóa bí mật của
Alice 


(X) và gửi (X, S) = (X, 


(X)) cho Bob
- Khi Bob muốn kiểm tra tính tin cậy của tập tin nhận được, Bob chỉ
việc tính X’ = 


(X) = 


(



(X)) và kiểm tra nếu X = X’ thì xác thực được
tính tin cậy (authenticity) của X.
Chú ý 1: Trong quá trình này cả việc kiểm tra (i) tính toàn vẹn của thông
báo và việc (ii) xác thực danh tính của người gửi được thực hiện cùng một lúc.
Ta có (i) là vì chỉ cần một bit của tin mà bị thay đổi thì sẽ lập tức bị phát hiện
ngay do chữ ký không khớp. Ngoài ra có (ii) vì không ai có thể tạo ra được
thông báo đó ngoài Alice, người duy nhất biết z
A
.
Chú ý 2: Alice có thể ký vào giá trị băm của X thay vì ký thẳng lên X.
Khi đó toàn bộ mã mà Alice sẽ chuyển cho Bob là (X, 


(H(X))). H là một
hàm băm công khai. Phương pháp này là hiệu quả hơn do tiết kiệm (hàm băm
luôn cho ra một xâu độ dài cố định và thông thường ngắn hơn rất nhiều so với
xâu đầu vào).
c. Kết hợp tính mật và tin cậy
Chúng ta có thể làm như sau để kết hợp cả hai khả năng a và b như trên.
A gửi Y = 


(


(X)) cho B
B phục hồi X như sau: X = 



(


(Y))= 


(


(


(


(X))))
Nguyễn Văn Dũng - Đồ Án Tốt Nghiệp

Page 25

Để có bằng chứng nhằm đối phó với việc Alice có thể sau này phủ nhận
đã gửi thông báo thì Bob phải lưu giữ 


(X)
2.2.4 Một số vấn đề xung quanh thuật toán RSA
Vấn đề chọn p và q
- p và q phải là những số nguyên tố lớn, ít nhất là cỡ 100 chữ số.
- p và q phải lớn cỡ xấp xỉ nhau (về độ dài cùng 100 chữ số chẳng

hạn).
Một vài con số về tốc độ thuật toán trong cài đặt
So sánh với DES thì RSA:
- Có tốc độ chậm hơn rất nhiều. Thường thì, RSA chậm ít nhất là 100 lần
khi cài đặt bằng phần mềm, và có thể chậm hơn từ 1000 đến 10,000 lần khi cài
đặt bằng phần cứng (còn tùy cách cài đặt).
- Kích thước của khoá mật lớn hơn rất nhiều.
Nếu như p và q cần biểu diễn cỡ 300 bits thì n cần 600 bits. Phép nâng lên luỹ
thừa là khá chậm so với n lớn, đặc biệt là nếu sử dụng phần mềm (chương
trình).
Về bài toán phân tích ra thừa số nguyên tố
Giải thuật 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 của giải thuật là:
L(n)  







Trong đó log
2
n 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.

×