Thực tập An toàn thông tin
NHÓM I
1 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
PHẦN I CHỨNG THỰC
I/ Tổng quan về chứng thực điện tử
Cùng với sự phát triển của các ứng dụng trên mạng, đặc biệt các ứng dụng như
Chính phủ điện tử, thương mại điện tử thì chứng thực điện tử trở thành một yếu tố
không thể thiếu được. Việc ra đời chứng thực điện tử không những đáp ứng được các
nhu cầu hiện nay của xã hội mà còn có tác dụng rất to lớn trong việc phát triển các
ứng dụng trên mạng.
Vậy chứng thực điện tử là gì? Chứng thực điện tử là hoạt động chứng thực
danh tính của những người tham gia vào việc gửi và nhận thông tin qua mạng,
đồng thời cung cấp cho họ những công cụ, những dịch vụ cần thiết để thực hiện
việc bảo mật thông tin, chứng thực nguồn gốc và nội dung thông tin.
Hạ tầng công nghệ của chứng thực điện tử là cơ sở hạ tầng khoá công khai
(PKI - Public Key Infrastructure) với nền tảng là mật mã khoá công khai và chữ ký
số.
Người sử dụng dịch vụ chứng thực điện tử sẽ được các cơ quan cung cấp dịch
vụ chứng thực điện tử (CA - Certification authority) cung cấp cho chứng chỉ số và
phải được gán một cặp khoá mã (khoá bí mật và khoá công khai) để có thể tham gia
sử dụng chứng thực điện tử trong các ứng dụng mà mình tham gia.
Chứng thực điện tử có các chức năng chính sau :
- Tính xác thực : Đảm bảo xác định được thực thể hợp pháp.
- Tính bảo mật : Mã hoá thông tin gửi đi trên mạng, đảm bảo bí mật thông tin .
- Tính toàn vẹn dữ liệu : Xác định được thông tin nhận được có đúng như
thông tin được gửi đi không hay đã bị thay đổi.
- Tính không chối bỏ : Chứng thực điện tử đảm bảo cho người sử dụng không
thể chối bỏ về các dữ liệu của mình đã gửi.
Chính vì có những tính năng như vậy chứng thực điện tử được sử dụng trong
khá nhiều các ứng dụng như :
- Ký vào tài liệu điện tử
- Thư điện tử bảo đảm
- Thương mại điện tử
- Bảo vệ mạng WLAN ( Wireless Lan Area Network)
2 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
- Bảo đảm an toàn cho các dịch vụ Web
- Bảo đảm an toàn cho Web Server
- Mạng riêng ảo
Để có thể cung cấp được dịch vụ chứng thực điện tử, cần có hệ thống luật pháp
công nhận tính pháp lý của chữ ký số, quy định hoạt động của dịch vụ chứng thực
điện tử ( thường là luật chữ ký số hoặc luật giao dịch điện tử) và các nhà cung cấp
dịch vụ chứng thực điện tử (CA). Về cấu trúc tổ chức của hệ thống CA có thể chia
làm ba loại : cấu trúc riêng lẻ, cấu trúc mắt lưới và cấu trúc hình cây.
Trong hệ thống cấu trúc riêng lẻ, CA tự cấp chứng chỉ số cho mình, cấu trúc
này thường được sử dụng trong nội bộ một đơn vị như trong một trường đại học, một
cơ quan nghiên cứu. Cấu trúc mắt lưới được ứng dụng trong một cộng đồng các CA
tin cậy lẫn nhau. Các CA trong cấu trúc mắt lưới có quan hệ ngang hàng và thường
cấp chứng chỉ cho nhau. Cấu trúc hình cây là cấu trúc phổ biến nhất, nó bao gồm các
thành phần cơ bản như sau (hình 1) :
Cơ quan chứng thực
(CA)
Cơ quan chứng thực
(CA)
Cơ quan đăng ký
(RA)
Cơ quan đăng ký
(RA)
Người dùng
Cơ quan chứng thực gốc
(root CA)
Hình 1 : Cấu trúc tổ chức hệ thống CA hình cây
- Cơ quan chứng thực gốc (root CA) : là cơ quan cấp chứng chỉ số cho các cơ
quan chứng thực. Cơ quan chứng thực gốc là duy nhất trong một hệ thống các CA.
Đây chính là điểm tin cậy của toàn bộ người dùng trong hệ thống các CA. Điều này
có nghĩa khi người dùng tin cậy vào cơ quan chứng thực gốc họ sẽ tin cậy vào dịch
vụ của các CA được cấp chứng chỉ số bởi cơ quan chứng thực gốc này.
- Cơ quan chứng thực (CA) : là cơ quan cấp chứng chỉ số cho người sử dụng.
- Cơ quan đăng ký (RA - Registration Authority) : là các đơn vị được CA uỷ
quyền việc thực hiện các nhiệm vụ liên quan đến việc cấp chứng chỉ số bao gồm các
công việc như tiếp nhận hồ sơ đăng ký, kiểm tra tính chính xác và hợp lệ về các
thông tin đăng ký của người muốn đăng ký được cấp chứng chỉ số.
3 GVHD : Nguyễn Hoàng Chiến
Người dùng
Thực tập An toàn thông tin
NHÓM I
- Người sử dụng : là người được cấp chứng chỉ số để sử dụng trong các ứng
dụng của mình.
Một khía cạnh rất quan trọng trong hoạt động chứng thực điện tử là hoạt động
chứng thực chéo. Chứng thực chéo là quá trình các CA hoặc các root CA thiết lập
quan hệ tin cậy lẫn nhau, nhờ đó cộng đồng những người sử dụng có thể thực hiện
các giao dịch điện tử đối với các đối tác không cùng một CA.
II/ Hiện trạng triển khai chứng thực điện tử tại một số nước
Trong vài năm gần đây dịch vụ chứng thực điện tử đã ra đời và ngày càng phát
triển ở nhiều nước trên thế giới. Đây là dịch vụ được cung cấp bởi các đơn vị có thẩm
quyền chứng thực. Rất nhiều quốc gia trên thế giới đã cung cấp dịch vụ chứng thực
điện tử. Một số CA nổi tiếng trên thế giới có thể kể đến như CA của các công ty
VeriSign, WISeKey, eTrust, có chi nhánh tại rất nhiều nước trên thế giới.
Để cung cấp dịch vụ chứng thực điện tử các nước đều ban hành các văn bản
pháp lý về hoạt động chứng thực điện tử, cấp phép cho các CA và tổ chức hệ thống
CA. Về cấu trúc hệ thống cung cấp dịch vụ chứng thực điện tử có nước tổ chức theo
sơ đồ hình cây trong đó mức cao nhất là root CA quốc gia, mức duới là các CA cấp
dưới. Bên cạnh đó cũng có quốc gia không thành lập root CA mà tổ chức các CA theo
dạng mắt lưới hoặc riêng rẽ.
Ở các nước trong khu vực dịch vụ chứng thực điện tử phát triển khá mạnh.
Nhật bản đã ban hành Luật về chữ ký điện tử và các dịch vụ chứng thực vào năm
2001. Hàn quốc ban hành luật chữ ký điện tử vào năm 1999 và ban hành bản sửa đổi
vào năm 2001. Hiện nay Hàn quốc có 6 CA được cấp phép hoạt động. Hồng kông
ban hành sắc lệnh về giao dịch điện tử vào năm 2000. Đài loan ban hành luật chữ ký
số vào năm 2001. Malaysia ban hành luật chữ ký số vào năm 1997, hiện nay có 3 CA
được cấp phép hoạt động. Singapore ban hành luật giao dịch điện tử vào năm 1998 và
Quy định về giao dịch điện tử cho các CA vào năm 1999. Thái lan ban hành luật giao
dịch điện tử năm 2001.
Tuy chứng thực điện tử phát triển khá nhanh và được sử dụng khá hiệu quả
trong rất nhiều ứng dụng như vậy nhưng không phải không có những yếu tố cản trở
sự phát triển của nó. Ở đây có thể nêu lên một số yếu tố chính cản trở sự phát triển
của chứng thực điện tử, đó là :
- Còn ít các phần mềm ứng dụng hỗ trợ sử dụng chứng thực điện tử
- Giá thành hệ thống CA cũng như phí cung cấp dịch vụ cao
- Thiếu hiểu biết về PKI
4 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
- Có quá nhiều công nghệ được sử dụng
- Khó sử dụng đối với người dùng
- Khả năng kết hợp làm việc giữa các hệ thống chưa tốt
- Thiếu việc hỗ trợ quản lý
- Quá nhiều yêu cầu về mặt luật pháp.
Tóm lại việc phát triển chứng thực điện tử là một xu hướng tất yếu trên thế giới
nhưng trong quá trình phát triển nó cũng gặp những rào cản nhất định. Các nước hầu
hết đã triển khai cung cấp dịch vụ chứng thực điện tử đặc biệt là những nước có các
ứng dụng trên mạng phát triển.
III/ Chứng thực điện tử tại Việt nam
Trước nhu cầu sử dụng chứng thực điện tử ngày càng tăng cao tại Việt nam,
trong thời gian qua tại Việt nam đã có một số đơn vị cung cấp dịch vụ chứng thực
điện tử như công ty VASC, công ty VDC, Trung tâm tin học Bộ Khoa học Công
nghệ, Ban Cơ yếu chính phủ, một số ngân hàng. Ngoài ra còn một số đơn vị cũng thử
nghiệm xây dựng các CA nội bộ. Trong các CA đã nêu này hầu hết là các CA riêng rẽ
nghĩa là tự cấp chứng chỉ cho mình, chỉ có CA của VDC là đại lý cho CA của công ty
VeriSign. Ngoài ra trong các CA đã nêu chỉ có CA của VASC và CA của VDC là
cung cấp dịch vụ chứng thực cho cộng đồng. Các ứng dụng sử dụng chứng thực điện
tử ở Việt nam chủ yếu là ký vào dữ liệu điện tử, E mail bảo đảm, xác thực quyền truy
nhập, thanh toán điện tử.Tuy vậy cho đến hiện nay tại Việt nam vẫn chưa có một văn
bản nào mang tính pháp lý quy định về hoạt động chứng thực điện tử. Hiện tại, chúng
ta đang xây dựng bốn văn bản pháp lý liên quan đến hoạt động chứng thực điện tử,
đó là :
- Pháp lệnh thương mại điện tử do Bộ Thương mại chủ trì
- Luật Giao dịch điện tử do Uỷ ban Khoa học Công nghệ và Môi trường của
Quốc hội chủ trì
- Nghị định của Chính phủ về quản lý, cung cấp và sử dụng dịch vụ chứng thực
điện tử do Bộ Bưu chính, Viễn thông chủ trì.
- Nghị định của Chính phủ quy định việc nghiên cứu, sản xuất và sử dụng mật
mã không thuộc phạm vi bí mật nhà nước do Ban Cơ yếu Chính phủ chủ trì
Ngoài ra còn phải kể đến Luật Công nghệ thông tin do Bộ Bưu chính, Viễn
thông chủ trì soạn thảo.
Ba trong bốn văn bản pháp lý đã nêu ở trên dù ít hay nhiều trong bản dự thảo
đều có đề cập đến tính pháp lý của chữ ký số cũng như quy định một số điều liên
5 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
quan đến việc quản lý, cung cấp, sử dụng dịch vụ chứng thực điện tử. Văn bản còn lại
liên quan đến việc sử dụng mật mã trong chứng thực điện tử.
Vấn đề đặt ra là sự phối hợp giữa các đơn vị xây dựng các văn bản pháp lý này
như thế nào để tránh được sự chồng chéo về nội dung chứng thực điện tử trong các
văn bản này.
Để có thể cung cấp dịch vụ chứng thực điện tử một cách tốt nhất, chúng ta cần
quan tâm đến các vấn đề sau trong việc xây dựng hệ thống cung cấp dịch vụ này :
- Xây dựng hành lang pháp lý
- Xây dựng hệ thống tiêu chuẩn về chứng thực điện tử
- Triển khai xây dựng hệ thống CA
- Giám sát đánh giá hoạt động của các CA
- Tuyên truyền hướng dẫn người sử dụng và đào tạo đội ngũ kỹ thuật
- Khuyến khích xây dựng các phần mềm hỗ trợ chứng thực điện tử.
- Chứng thực chéo
- Hợp tác quốc tế về chứng thực điện tử
Về xây dựng hành lang pháp lý chúng ta cần có một văn bản pháp luật quy
định rõ về hoạt động chứng thực điện tử trong đó nêu rõ về tính pháp lý của chữ ký
số, thủ tục cấp và thu hồi giấy phép của CA, nghĩa vụ và quyền hạn của CA cũng như
người sử dụng, các điều khoản liên quan đến phát hành, thu hồi, huỷ bỏ chứng chỉ số,
các điều liên quan đến mã khoá cá nhân, ngoài ra còn đưa ra các chế tài xử phạt, giải
quyết tranh chấp
Như ở trên đã nói hiện nay chúng ta đang đồng thời đang xây dựng bốn văn
bản pháp luật có liên quan đến hoạt động chứng thực điện tử, vấn đề đặt ra là làm thế
nào để tránh chồng lặp các quy định về chứng thực điện tử trong các văn bản này.
Một vấn đề nữa là việc chỉ định cơ quan quản lý nhà nước về hoạt động chứng thực
điện tử có trách nhiệm quản lý các hoạt động liên quan đến chứng thực điện tử : cấp
phép hoạt động, ban hành chuẩn, giám sát, thu hồi giấy phép cho các CA cũng như
đóng vai trò như root CA quốc gia.
Vấn đề chuẩn trong hoạt động chứng thực điện tử liên quan trực tiếp đến độ
tin cậy của các dịch vụ và sự an toàn thông tin của mỗi CA, liên quan đến hoạt động
chứng thực chéo và các hoạt động tương tác giữa các CA trong cùng một hệ thống.
Việc xây dựng, ban hành các tiêu chuẩn kỹ thuật liên quan đến chứng thực điện tử ở
đây đề cập đến là các chuẩn về chứng chỉ số và chuẩn về mật mã cũng như các yêu
cầu kỹ thuật khác mà các CA cần phải đáp ứng như vấn đề an toàn, bảo mật hệ
6 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
thống, sao lưu dữ liệu, bảo vệ vật lý, phòng chống cháy nổ, đảm bảo chất lượng dịch
vụ . . .
Chuẩn về chứng chỉ số quy định về khuôn dạng của chứng chỉ số, tổ chức thư
mục chứng chỉ, danh sách chứng chỉ thu hồi, còn chuẩn về mật mã liên quan đến
đến các thuật toán mã hoá, hàm băm, tạo khoá và phân phối khoá
Hiện nay các chuẩn này trên thế giới đã được xây dựng khá đầy đủ và tương
đối đa dạng. Vấn đề của chúng ta là lựa chọn chuẩn nào cho phù hợp và cân nhắc
giữa việc xây dựng các tiêu chuẩn riêng của chúng ta hay tuân thủ các tiêu chuẩn thế
giới. Một vấn đề nữa cần đề cập ở đây là vấn đề mật mã sử dụng trong chứng thực
điện tử, hiện nay Ban Cơ yếu Chính phủ đang chủ trì xây dựng "Nghị định của Chính
phủ quy định việc nghiên cứu, sản xuất và sử dụng mật mã không thuộc phạm vi bí
mật nhà nước" chính vì vậy việc sử dụng mật mã trong chứng thực điện tử cũng cần
cân nhắc xem có phù hợp với nghị định này không.
Triển khai xây dựng hệ thống CA : Ở đây chúng ta cũng cần phải cân nhắc lựa
chọn mô hình tổ chức hệ thống CA quốc gia, cũng như số CA sẽ được cấp phép hoạt
động. Ngoài ra việc lựa chọn hạ tầng kỹ thuật của từng CA cho phù hợp và đảm bảo
các yêu cầu về an toàn, bảo mật cũng cần phải xem xét một cách kỹ lưỡng. Bên cạnh
đó việc xây dựng quy định về thủ tục chứng thực (CPS - Certification Practice
Statment) của từng CA cũng cần được quan tâm một cách đúng mực.
Giám sát đánh giá hoạt động của các CA : Vì chứng thực điện tử là một dịch
vụ mang tính pháp lý cao nên cơ quan quản lý nhà nước cần kiểm tra chặt chẽ hoạt
động, việc đảm bảo các yêu cầu kỹ thuật và chất lượng dịch vụ của các CA. Bên
cạnh đó cần có quy định rõ ràng trong việc báo cáo định kỳ về hoạt động của các CA.
Việc kiểm tra các CA cần được tiến hành định kỳ và có thể kiểm tra đột xuất khi cần
thiết.
Tuyên truyền hướng dẫn người sử dụng và đào tạo đội ngũ kỹ thuật: Nhu cầu
sử dụng dịch vụ chứng thực ở nước ta cùng với thời gian ngày càng một phát triển.
Tuy nhiên hiện nay đây là một dịch vụ mới nên phần lớn cộng đồng không biết đến
chứng thực điện tử và đội ngũ kỹ thuật có hiểu biết một cách đầy đủ về chứng thực
điện tử vẫn còn ít. Bên cạnh đó có một thực tế là do thiếu hiểu biết về chứng thực
điện tử nên vấn đề để lộ hoặc làm mất khoá bí mật cũng là một vấn đề hay xảy ra đối
với những người sử dụng dịch vụ chứng thực điện tử. Điều này có thể gây ra những
rắc rối và hậu quả khó mà lường hết được.
Chính vì thế muốn phát triển dịch vụ chứng thực ở nước ta một cách nhanh
chóng vấn đề tuyên truyền hướng dẫn sử dụng chứng thực điện tử, nâng cao ý thức an
toàn, bảo mật trong cộng đồng xã hội và đào tạo đội ngũ kỹ thuật có đủ năng lực để
7 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
duy trì và phát triển hệ thống cung cấp dịch vụ chứng thực điện tử cần phải được đẩy
mạnh.
Khuyến khích xây dựng các phần mềm hỗ trợ chứng thực điện tử : Như đã
trình bày ở trên một trong những yếu tố cản trở việc phát triển hoạt động chứng thực
điện tử là thiếu các phần mềm hỗ trợ sử dụng chứng thực điện tử. Chính vì vậy cần
khuyến khích sử dụng và xây dựng các phần mềm ứng dụng hỗ trợ sử dụng chứng
thực điện tử.
Chứng thực chéo : Một vấn đề khi xây dựng hệ thống cung cấp dịch vụ chứng
thực điện tử là cần phải cân nhắc lựa chọn cấu trúc tổ chức hệ thống CA, cũng như
các vấn đề kỹ thuật, chính sách liên quan sao cho thuận lợi nhất cho việc chứng thực
chéo sau này. Việc chứng thực chéo là một điều bắt buộc khi chúng ta hội nhập với
thế giới. Chứng thực chéo có thể thực hiện giữa các quốc gia, các CA quốc tế hoặc
giữa các CA trong nước.
Hợp tác quốc tế về chứng thực điện tử: Các hoạt động trên mạng là không biên
giới, bên cạnh đó vấn đề chứng thực chéo giữa các tổ chức, các quốc gia là một vấn
đề rất quan trọng trong hoạt động chứng thực điện tử. Hiện nay trên thế giới và khu
vực các diễn đàn về PKI và các hoạt động liên quan đến chứng thực điện tử hoạt
động rất sôi nổi. Chính vì vậy việc hợp tác quốc tế là rất cần thiết trong hoạt động
chứng thực điện tử. Có tham gia vào hợp tác quốc tế thì hoạt động chứng thực điện tử
của chúng ta mới có thể phát triển bền vững được.
8 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
PHẦN II CHỮ KÝ SỐ
1. Chữ ký số:
• Chữ ký số là một dạng chữ ký điện tử
• Chữ ký số dựa trên công nghệ mã khóa công khai (RSA): mỗi người dùng
phải có 1 cặp khóa (keypair) gồm khóa công khai (public key) và khóa bí
mật (private key).
• "Khóa bí mật" là một khóa trong cặp khóa thuộc hệ thống mật mã không đối
xứng, được dùng để tạo chữ ký số
• “Khóa công khai" là một khóa trong cặp khóa thuộc hệ thống mật mã không
đối xứng, được sử dụng để kiểm tra chữ ký số được tạo bởi khóa bí mật
tương ứng trong cặp khóa.
• "Ký số" là việc đưa khóa bí mật vào một chương trình phần mềm để tự động
tạo và gắn chữ ký số vào thông điệp dữ liệu.
• "Người ký" là thuê bao dùng đúng khóa bí mật của mình để ký số vào một
thông điệp dữ liệu dưới tên của mình.
• "Người nhận" là tổ chức, cá nhân nhận được thông điệp dữ liệu được ký số
bởi người ký, sử dụng chứng thư số của người ký đó để kiểm tra chữ ký số
trong thông điệp dữ liệu nhận được và tiến hành các hoạt động, giao dịch có
liên quan.
Chữ ký số (Digital Signature) hay chữ ký điện tử (Electronic Signature) là thông
tin đi kèm theo dữ liệu nhằm mục đích xác nhận người chủ của dữ liệu đó.
Chữ ký số được phát triển dựa trên lý thuyết mật mã, cụ thể là kỹ thuật mật mã hoá
công khai. Trong mô hình này, một hệ mã khoá công khai sẽ có hai chìa khoá: Một
chìa khoá công khai (public key) và một chìa khoá bí mật (private key), mỗi chìa
khoá là một số cố định được sử dụng trong quá trình mã hoá và giải mã; trong đó,
khoá công khai được công bố rộng rãi cho mọi người và được sử dụng để mã hoá,
còn khoá bí mật thì được giữ kín và được sử dụng để giải mã.
2. Sơ đồ tạo và kiểm tra chữ ký số
Toàn bộ quá trình gồm 3 thuật toán:
- Thuật toán tạo khóa
- Thuật toán tạo chữ ký số
- Thuật toán kiểm tra chữ ký số
9 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
Ví dụ: Bob muốn gửi thông tin cho Alice và muốn Alice biết thông tin đó thực
sự do chính Bob gửi. Bob gửi cho Alice bản tin kèm với chữ ký số. Chữ ký này được
tạo ra với khóa bí mật của Bob. Khi nhận được bản tin, Alice kiểm tra sự thống nhất
giữa bản tin và chữ ký bằng thuật toán kiểm tra sử dụng khóa công cộng của Bob.
Bản chất của thuật toán tạo chữ ký đảm bảo nếu chỉ cho trước bản tin, rất khó (gần
như không thể) tạo ra được chữ ký của Bob nếu không biết khóa bí mật của Bob. Nếu
phép thử cho kết quả đúng thì Alice có thể tin tưởng rằng bản tin thực sự do Bob gửi.
Thông thường, Bob không mật mã hóa toàn bộ bản tin với khóa bí mật mà chỉ
thực hiện với giá trị băm của bản tin đó. Điều này khiến việc ký trở nên đơn giản hơn
và chữ ký ngắn hơn. Tuy nhiên nó cũng làm nảy sinh vấn đề khi 2 bản tin khác nhau
lại cho ra cùng một giá trị băm. Đây là điều có thể xảy ra mặc dù xác suất rất thấp.
3. Các ưu điểm của chữ ký số
Việc sử dụng chữ ký số mang lại một số lợi điểm sau:
10 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
a. Khả năng xác định nguồn gốc
Các hệ thống mật mã hóa khóa công khai cho phép mật mã hóa văn bản với khóa bí mật mà
chỉ có người chủ của khóa biết. Để sử dụng chữ ký số thì văn bản cần phải được mã hóa bằng hàm
băm (văn bản được "băm" ra thành chuỗi, thường có độ dài cố định và ngắn hơn văn bản) sau đó
dùng khóa bí mật của người chủ khóa để mã hóa, khi đó ta được chữ ký số.
Khi cần kiểm tra, bên nhận giải mã (với khóa công khai) để lấy lại chuỗi gốc (được sinh ra
qua hàm băm ban đầu) và kiểm tra với hàm băm của văn bản nhận được. Nếu 2 giá trị (chuỗi) này
khớp nhau thì bên nhận có thể tin tưởng rằng văn bản xuất phát từ người sở hữu khóa bí mật. Tất
nhiên là chúng ta không thể đảm bảo 100% là văn bản không bị giả mạo vì hệ thống vẫn có thể bị
phá vỡ.
Vấn đề nhận thực đặc biệt quan trọng đối với các giao dịch tài chính. Chẳng hạn một chi
nhánh ngân hàng gửi một gói tin về trung tâm dưới dạng (a,b), trong đó a là số tài khoản và b là số
tiền chuyển vào tài khoản đó. Một kẻ lừa đảo có thể gửi một số tiền nào đó để lấy nội dung gói tin
và truyền lại gói tin thu được nhiều lần để thu lợi ( tấn công truyền lại gói tin).
b. Tính toàn vẹn
Cả hai bên tham gia vào quá trình thông tin đều có thể tin tưởng là văn bản không bị sửa đổi
trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm cũng sẽ thay đổi và lập tức bị phát hiện.
Quá trình mã hóa sẽ ẩn nội dung của gói tin đối với bên thứ 3 nhưng không ngăn cản được việc thay
đổi nội dung của nó.
Một ví dụ cho trường hợp này là tấn công đồng hình (homomorphism attack): tiếp tục ví dụ
như ở trên, một kẻ lừa đảo gửi 1.000.000 đồng vào tài khoản của a, chặn gói tin (a,b) mà chi nhánh
gửi về trung tâm rồi gửi gói tin (a,b
3
) thay thế để lập tức trở thành triệu phú!Nhưng đó là vấn đề bảo
mật của chi nhánh đối với trung tâm ngân hàng không hẳn liên quan đến tính toàn vẹn của thông tin
gửi từ người gửi tới chi nhánh, bởi thông tin đã được băm và mã hóa để gửi đến đúng đích của nó
tức chi nhánh, vấn đề còn lại vấn đề bảo mật của chi nhánh tới trung tâm của nó
c. Tính không thể phủ nhận
Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do mình gửi. Để ngăn
ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ ký số với văn bản. Khi có
tranh chấp, bên nhận sẽ dùng chữ ký này như một chứng cứ để bên thứ ba giải quyết. Tuy nhiên,
khóa bí mật vẫn có thể bị lộ và tính không thể phủ nhận cũng không thể đạt được hoàn toàn.
d. Chữ ký số đang dần phổ dụng
Hiện nay, các giao dịch điện tử ngày càng trở nên phổ biến. Để bảo đảm an toàn cho các
giao dịch này, cần phải sử dụng đến giải pháp chữ ký số. Chữ ký số trong môi trường điện tử cũng
có giá trị như một chữ ký bình thường trong các giấy tờ, văn bản.
Chữ ký số là một dạng chữ ký điện tử dựa trên công nghệ mã khóa công khai. Mỗi người dùng
chữ ký số phải có một cặp khóa (keypair), gồm khóa công khai (public key) và khóa bí mật (private
key). Khóa bí mật dùng để tạo chữ ký số. Khóa công khai dùng để thẩm định chữ ký số hay xác
thực người tạo ra chữ ký số đó.
11 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
4. Hiện trạng
Hiện Bộ Thông tin và Truyền thông đã cấp giấy phép cung cấp dịch vụ chứng thực chữ ký số
công cộng cho Tập đoàn Bưu chính Viễn thông Việt Nam (VNPT), Bkis và Công ty Cổ phần Công
nghệ thẻ NacenComm SCT, Viettel, FPT.
Thông thường, sau khi được cấp giấy phép, các đơn vị sẽ cung cấp các loại dịch vụ chứng thực chữ
ký số cho các đối tượng như: cá nhân, tổ chức, doanh nghiệp và các trang web.
Ông Hoàng Quốc Khánh, Giám đốc NacenComm SCT, cho biết khoảng tháng Tư, tháng Năm
tới NacenComm SCT sẽ hoàn thiện hệ thống để sẵn sàng cung cấp dịch vụ chứng thực chữ ký số.
Công nghệ về chữ ký số ra đời cách đây khá lâu, tuy nhiên việc sử dụng chữ ký số ở Việt Nam
thời gian qua chỉ bó hẹp trong phạm vi nội bộ một tổ chức, doanh nghiệp hoặc thí điểm ở quy mô
nhỏ do các chữ ký số này chưa có tính pháp lý đầy đủ.
Có một số đơn vị, cơ quan nhà nước đã sử dụng chữ ký số với các hệ thống chứng thực chuyên
dùng trong các hoạt động nghiệp vụ nội bộ và trong các cơ quan nhà nước như Bộ Khoa học và
Công nghệ, Bộ Thông tin và Truyền thông, Ngân hàng Nhà nước, Kho bạc Nhà nước, Bộ Tài chính,
Bộ Công Thương, Bộ Nông nghiệp và Phát triển nông thôn, Sở Thông tin và Truyền thông
Tp.HCM…
Chữ ký số chỉ dùng được trong môi trường số, giao dịch điện tử với máy tính và mạng Internet.
Trong môi trường số không thể dùng chữ ký tay nhưng lại có rất nhiều ứng dụng phải cần đến một
cơ chế ký và xác thực người sử dụng như chữ ký tay.
Các công nghệ mã hóa và chữ ký số ra đời để giúp giải quyết vấn đề này. Như vậy, chữ ký số có
thể dùng trong tất cả các trường hợp giao dịch cần đến chữ ký tay nhưng lại phải thực hiện trong
môi trường số.
12 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
PHẦN III THUẬT TOÁN RSA VÀ CHƯƠNG TRÌNH
1. Giới thiệu tổng quan về mã hóa RSA
RSA là một thuật toán mã hóa khóa công khai. Được Ron Rivest, Adi
Shamir và Len Adleman mô tả vào năm 1977. Tên thuật toán là ghép 3 chữ cái của 3
nhà phát minh.
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 để 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.
Ví dụ minh chứng : Ta có thể mô phỏng trực quan một hệ mật mã khoá công
khai như sau : Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy nhất
Alice có thể đọc được. Để làm được điều này, Alice gửi cho Bob một chiếc hộp có
khóa đã mở sẵn(Khóa công khai) và giữ lại chìa khóa.
Bob nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khóa lại
(như loại khoá thông thường chỉ cần sập chốt lại, sau khi sập chốt khóa ngay cả Bob
cũng không thể mở lại được-không đọc lại hay sửa thông tin trong thư được nữa).
Sau đó Bob gửi chiếc hộp lại cho Alice. Alice mở hộp với chìa khóa của mình và đọc
thông tin trong thư. Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công
khai, chiếc chìa khóa chính là khóa bí mật.
2. Thuật toán mã hóa RSA
Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh không an
toàn (ví dụ như Internet). Với thuật toán RSA, Alice đầu tiên cần tạo ra cho mình cặp
khóa gồm khóa công khai và khóa bí mật theo các bước sau:
1. Chọn 2 số nguyên tố lớn và với , lựa chọn ngẫu nhiên và độc lập.
2. Tính: .
3. Tính: giá trị hàm số Ơle .
13 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
4. Chọn một số tự nhiên sao cho và là số nguyên tố cùng nhau với
.
5. Tính: sao cho .
Một số lưu ý:
• Các số nguyên tố thường được chọn bằng phương pháp thử xác suất.
• Các bước 4 và 5 có thể được thực hiện bằng giải thuật Euclid mở rộng (xem
thêm: số học môđun).
• Bước 5 có thể viết cách khác: Tìm số tự nhiên sao cho
cũng là số tự nhiên. Khi đó sử dụng giá trị
.
• Từ bước 3, PKCS#1 v2.1 sử dụng thay cho
).
Khóa công khai bao gồm:
• n, môđun, và
• e, số mũ công khai (cũng gọi là số mũ mã hóa).
Khóa bí mật bao gồm:
• n, môđun, xuất hiện cả trong khóa công khai và khóa bí mật, và
• d, số mũ bí mật (cũng gọi là số mũ giải mã).
Một dạng khác của khóa bí mật bao gồm:
• p and q, hai số nguyên tố chọn ban đầu,
• d mod (p-1) và d mod (q-1) (thường được gọi là dmp1 và dmq1),
• (1/q) mod p (thường được gọi là iqmp)
Ví dụ
• Sau đây là một ví dụ với những số cụ thể. Ở đây chúng ta sử dụng những số
nhỏ để tiện tính toán còn trong thực tế phải dùng các số có giá trị đủ lớn.
• Lấy:
p = 61 — số nguyên tố thứ nhất (giữ bí mật hoặc hủy sau khi tạo khóa)
q = 53 — số nguyên tố thứ hai (giữ bí mật hoặc hủy sau khi tạo khóa)
n = pq
=3233
— môđun (công bố công khai)
14 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
e = 17 — số mũ công khai
d = 2753 — số mũ bí mật
• Khóa công khai là cặp (e, n) = (17,3233). Khóa bí mật là (d,n) =
(2753,3233).
Hàm mã hóa là:
• encrypt(m) = m
e
mod n = m
17
mod 3233
• với m là văn bản rõ. Hàm giải mã là:
• decrypt(c) = c
d
mod n = c
2753
mod 3233
• với c là văn bản mã.
• Để mã hóa văn bản có giá trị 123, ta thực hiện phép tính:
• encrypt(123) = 123
17
mod 3233 = 855
• Để giải mã văn bản có giá trị 855, ta thực hiện phép tính:
• decrypt(855) = 855
2753
mod 3233 = 123
• Lý giải chi tiết :
p= 61 <- số nguyên tố đầu tiên
q = 53 <- số nguyêntố thứ hai
p và q phải được giữ bí mật .
m=p*q = 3233
e = 17
e và m được thông báo công khai .
ta tìm được nghịch đảo của 17 modulo Φ(3233) là
d = 2753
d phải được giữ bí mật .
Chìa khóa công cộng là (e ,m).
Chìa khóa riêng là (e,m).
Hàm số mã hóa là:
mãhoá(P) ≡ (P^e) mod m
≡ (P^17) mod 3233
Hàm số giải mã là:
giảimã(C) ≡ (C^d) mod m
≡ (C^2753) mod 3233
Để mã hoá số “123”, làm như sau:
mãhoá(123) ≡ (123^17) (mod 3233 )
≡ 337587917446653715596592958817679803 (mod 3233 )
15 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
≡ 855
Như thế “123” được mã hóa thành “855”
Để giải mã “855”, làm như sau :
giảimã(855) ≡ (855^2753) ( mod 3233 )
≡ 123
Viết kết quả ngay ra đây, thì các bạn thấy qúa dễ dàng.
Vấn đề ở chỗ là tìm ra trị số của 855 khi được nâng lên luỹ thừa 2753 .
Đây là chỗ mà ta áp dụng phương pháp bình phương liên tiếp :
ta có 2753 = 1010110000012
2753 = 1 + 2^6 + 2^7 + 2^9 + 2^11
= 1 + 64 + 128 + 512 + 2048
Xét bản luỹ thừa sau đây của 855:
855^1 ≡ 855 (mod 3233)
855^2 ≡ 367 (mod 3233)
855^4 ≡ 367^2 (mod 3233) ≡ 2136 (mod 3233)
855^8 ≡ 2136^2 (mod 3233) ≡ 733 (mod 3233)
855^16 ≡ 733^2 (mod 3233) ≡ 611 (mod 3233)
855^32 ≡ 611^2 (mod 3233) ≡ 1526 (mod 3233)
855^64 ≡1526^2 (mod 3233) ≡ 916 (mod 3233)
855^128 ≡ 916^2 (mod 3233) ≡ 1709 (mod 3233)
855^256 ≡ 1709^2 (mod 3233) ≡ 1282 (mod 3233)
855^512 ≡ 1282^2 (mod 3233) ≡ 1160 (mod 3233)
855^1024 ≡ 1160^2 (mod 3233) ≡ 672 (mod 3233)
855^2048 ≡ 672^2 (mod 3233) ≡ 2197 (mod 3233)
Vậy:
855^2753 (mod 3233)
≡ 855^(1 + 64 + 128 + 512 + 2048) (mod 3233)
≡ 855^1 * 855^64 * 855^128 * 855^512 * 855^2048 (mod 3233)
≡ 855 * 916 * 1709 * 1160 * 2197 (mod 3233)
16 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
≡ 794 * 1709 * 1160 * 2197 (mod 3233)
≡ 2319 * 1160 * 2197 (mod 3233)
≡ 184 * 2197 (mod 3233)
≡ 123 (mod 3233)
≡ 123
Đây cũng chính là cách mà các máy tính của chúng ta làm việc để tính lũy thừa các
số
nguyên .
Ưu điểm của nó là không bao giờ phải làm việc với nhũng số lớn hơn ( m – 1 )^2 .
Nếu các bạn có một chương trình điện toán như “bc” có sẵn trong Linux ,
bạn có thể tính 855^2753 mod 3233 trực tiếp như sau:
855^2753 mod 3233
Các bạn đoán xem kết quả sẽ như thế nào ?
Đây là kết quả :
855^2753 mod 3233
≡ 50432888958 80346143245697021484375 mod 3233
≡ 123
Kết quả là một số với 8072 chữ số.
Đó mới chỉ với hai số P =61 và Q =53 .
3. Ứng dụng vào chữ ký số
Thuật toán RSA còn được dùng để tạo chữ ký số cho văn bản. Giả sử Alice
muốn gửi cho Bob một văn bản có chữ ký của mình. Để làm việc này, Alice tạo ra
một giá trị băm (hash value) của văn bản cần ký và tính giá trị mũ d mod n của nó
(giống như khi Alice thực hiện giải mã). Giá trị cuối cùng chính là chữ ký điện tử của
văn bản đang xét. Khi Bob nhận được văn bản cùng với chữ ký điện tử, anh ta tính
giá trị mũ e mod n của chữ ký đồng thời với việc tính giá trị băm của văn bản. Nếu 2
giá trị này như nhau thì Bob biết rằng người tạo ra chữ ký biết khóa bí mật của Alice
và văn bản đã không bị thay đổi sau khi ký.
17 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
4. Các cách mà hacker tấn công và giải pháp
Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên
tố có độ dài 663 bít với phương pháp phân tán trong khi khóa của RSA có độ dài từ
1024 tới 2048 bít. Một số chuyên gia cho rằng khóa 1024 bít có thể sớm bị phá vỡ
(cũng có nhiều người phản đối việc này). Với khóa 4096 bít thì hầu như không có
khả năng bị phá vỡ trong tương lai gần. Do đó, người ta thường cho rằng RSA đảm
bảo an toàn với điều kiện n được chọn đủ lớn.
Nếu n có độ dài 256 bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ với
máy tính cá nhân dùng các phần mềm có sẵn. Nếu n có độ dài 512 bít, nó có thể bị
phân tích bởi vài trăm máy tính tại thời điểm năm 1999. Một thiết bị lý thuyết có tên
là TWIRL do Shamir và Tromer mô tả năm 2003 đã đặt ra câu hỏi về độ an toàn của
khóa 1024 bít. Vì vậy hiện nay người ta khuyến cáo sử dụng khóa có độ dài tối thiểu
2048 bít.
Năm 1993, Peter Shor công bố thuật toán Shor chỉ ra rằng: máy tính lượng tử (trên
lý thuyết) có thể giải bài toán phân tích ra thừa số trong thời gian đa thức. Tuy nhiên,
máy tính lượng tử vẫn chưa thể phát triển được tới mức độ này trong nhiều năm nữa.
Năm 2010, các nhà khoa học thuộc Đại học Michigan đã công bố phát hiện một
kẽ hở trong hệ thống mật mã hoá RSA. Cách phá vỡ hệ thống, lấy khoá bí mật RSA
1024 bit chỉ trong vài ngày thay vì vài năm nếu tấn công theo cách thông thường - tấn
công bằng brute force (dò tìm lần lượt). Các nhà khoa học tạo một điện thế lớn để
gây lỗi hệ thống, từ đó giúp tìm ra khoá bí mật. Việc tấn công được thực hiện trên
một FPGA. Báo cáo được trình bày tại hội nghị DATE 2010 diễn ra tại Dresden, Đức
tháng 3 năm 2010.
Quá trình tạo khóa
Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực hiện bằng cách
thử xác suất các số ngẫu nhiên có độ lớn phù hợp (dùng phép kiểm tra nguyên tố cho
phép loại bỏ hầu hết các hợp số).
18 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
p và q còn cần được chọn không quá gần nhau để phòng trường hợp phân
tích n bằng phương pháp phân tích Fermat. Ngoài ra, nếu p-1 hoặc q-1 có thừa số
nguyên tố nhỏ thì n cũng có thể dễ dàng bị phân tích và vì thế p và q cũng cần được
thử để tránh khả năng này.
Bên cạnh đó, cần tránh sử dụng các phương pháp tìm số ngẫu nhiên mà kẻ
tấn công có thể lợi dụng để biết thêm thông tin về việc lựa chọn (cần dùng các bộ tạo
số ngẫu nhiên tốt). Yêu cầu ở đây là các số được lựa chọn cần đồng thời ngẫu nhiên
và không dự đoán được. Đây là các yêu cầu khác nhau: một số có thể được lựa chọn
ngẫu nhiên (không có kiểu mẫu trong kết quả) nhưng nếu có thể dự đoán được dù chỉ
một phần thì an ninh của thuật toán cũng không được đảm bảo. Một ví dụ là bảng các
số ngẫu nhiên do tập đoàn Rand xuất bản vào những năm 1950 có thể rất thực sự
ngẫu nhiên nhưng kẻ tấn công cũng có bảng này. Nếu kẻ tấn công đoán được một nửa
chữ số của p hay q thì chúng có thể dễ dàng tìm ra nửa còn lại (theo nghiên cứu của
Donald Coppersmith vào năm 1997)
Một điểm nữa cần nhấn mạnh là khóa bí mật d phải đủ lớn. Năm 1990,
Wiener chỉ ra rằng nếu giá trị của p nằm trong khoảng q và 2q (khá phổ biến) và d <
n
1/4
/3 thì có thể tìm ra được d từ n và e.
Mặc dù e đã từng có giá trị là 3 nhưng hiện nay các số mũ nhỏ không còn
được sử dụng do có thể tạo nên những lỗ hổng (đã đề cập ở phần chuyển đổi văn bản
rõ). Giá trị thường dùng hiện nay là 65537 vì được xem là đủ lớn và cũng không quá
lớn ảnh hưởng tới việc thực hiện hàm mũ.
Phân phối khóa
Cũng giống như các thuật toán mã hóa khác, cách thức phân phối khóa
công khai là một trong những yếu tố quyết định đối với độ an toàn của RSA. Quá
trình phân phối khóa cần chống lại được tấn công đứng giữa (man-in-the-middle
attack). Giả sử Eve có thể gửi cho Bob một khóa bất kỳ và khiến Bob tin rằng đó là
khóa (công khai) của Alice. Đồng thời Eve có khả năng đọc được thông tin trao đổi
giữa Bob và Alice. Khi đó, Eve sẽ gửi cho Bob khóa công khai của chính mình (mà
Bob nghĩ rằng đó là khóa của Alice). Sau đó, Eve đọc tất cả văn bản mã hóa do Bob
gửi, giải mã với khóa bí mật của mình, giữ 1 bản copy đồng thời mã hóa bằng khóa
công khai của Alice và gửi cho Alice. Về nguyên tắc, cả Bob và Alice đều không phát
hiện ra sự can thiệp của người thứ ba. Các phương pháp chống lại dạng tấn công này
thường dựa trên các chứng thực khóa công khai (digital certificate) hoặc các thành
phần của hạ tầng khóa công khai (public key infrastructure - PKI).
Tấn công dựa trên thời gian
Vào năm 1995, Paul Kocher mô tả một dạng tấn công mới lên RSA: nếu kẻ
tấn công nắm đủ thông tin về phần cứng thực hiện mã hóa và xác định được thời gian
giải mã đối với một số bản mã lựa chọn thì có thể nhanh chóng tìm ra khóa d. Dạng
tấn công này có thể áp dụng đối với hệ thống chữ ký điện tử sử dụng RSA. Năm
19 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
2003, Dan Boneh và David Brumley chứng minh một dạng tấn công thực tế hơn:
phân tích thừa số RSA dùng mạng máy tính (Máy chủ web dùng SSL). Tấn công đã
khai thác thông tin rò rỉ của việc tối ưu hóa định lý số dư Trung quốc mà nhiều ứng
dụng đã thực hiện.
Để chống lại tấn công dựa trên thời gian là đảm bảo quá trình giải mã luôn
diễn ra trong thời gian không đổi bất kể văn bản mã. Tuy nhiên, cách này có thể làm
giảm hiệu suất tính toán. Thay vào đó, hầu hết các ứng dụng RSA sử dụng một kỹ
thuật gọi là che mắt. Kỹ thuật này dựa trên tính nhân của RSA: thay vì tính c
d
mod n,
Alice đầu tiên chọn một số ngẫu nhiên r và tính (r
e
c)
d
mod n. Kết quả của phép tính
này là rm mod n và tác động của r sẽ được loại bỏ bằng cách nhân kết quả với nghịch
đảo của r. Đỗi với mỗi văn bản mã, người ta chọn một giá trị của r. Vì vậy, thời gian
giải mã sẽ không còn phụ thuộc vào giá trị của văn bản mã.
Tấn công lựa chọn thích nghi bản mã
Năm 1981, Daniel Bleichenbacher mô tả dạng tấn công lựa chọn thích nghi
bản mã (adaptive chosen ciphertext attack) đầu tiên có thể thực hiện trên thực tế đối
với một văn bản mã hóa bằng RSA. Văn bản này được mã hóa dựa trên tiêu chuẩn
PKCS #1 v1, một tiêu chuẩn chuyển đổi bản rõ có khả năng kiểm tra tính hợp lệ của
văn bản sau khi giải mã. Do những khiếm khuyết của PKCS #1, Bleichenbacher có
thể thực hiện một tấn công lên bản RSA dùng cho giao thức SSL (tìm được khóa
phiên). Do phát hiện này, các mô hình chuyển đổi an toàn hơn như chuyển đổi mã
hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding) được khuyến cáo
sử dụng. Đồng thời phòng nghiên cứu của RSA cũng đưa ra phiên bản mới của PKCS
#1 có khả năng chống lại dạng tấn công nói trên.
5. Chương trình sử dụng hệ mật mã RSA
20 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
B1.Chọn ngẫu nhiên 2 số nguyên tố đủ lớn p#q
B2.Tính n= p*q
B3.Tính .
B4. Chọn ngẫu nhiên khóa mã hóa e
B5.Tính khóa giải mã: d
B6. Nhập văn bản rõ
B7. Mã hóa văn bản rõ
21 GVHD : Nguyễn Hoàng Chiến
Thực tập An toàn thông tin
NHÓM I
B8. Giải mã văn bản mã hóa
22 GVHD : Nguyễn Hoàng Chiến