..
1
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TT&TT
NGUYỄN TIẾN DŨNG
AN TOÀN VÀ BẢO MẬT DỮ LIỆU
BẰNG MÃ HOÁ ỨNG DỤNG TRONG HỆ THỐNG
TRAO ĐỔI VĂN BẢN ĐIỆN TỬ
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên, 2014
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
2
MỞ ĐẦU
Ngày nay, sự phát triển mạnh mẽ của Công nghệ Thông tin, Internet, các
dịch vụ phong phú của nó đã tạo ra và cung cấp cho con người những công cụ,
phương tiện hết sức thuận tiện để trao đổi, tổ chức, tìm kiếm và cung cấp thông
tin. Tuy nhiên, cũng như trong các phương thức truyền thống, việc trao đổi,
cung cấp thông tin điện tử (văn bản điện tử) trong nhiều công việc, nhiều lĩnh
vực đòi hỏi tính an toàn, tính bảo mật của thông tin là hết sức quan trọng trong
việc trao đổi thông tin. Khi nhu cầu trao đổi thông tin, dữ liệu ngày càng lớn và
đa dạng thì các tiến bộ về Điện tử-Viễn thông, Công nghệ Thông tin không
ngừng được phát triển, các ứng dụng để nâng cao chất lượng và lưu lượng
truyền tin thì các quan niệm ý tưởng và biện pháp bảo vệ thông tin, dữ liệu cần
được đổi mới vì lo ngại nguy cơ mất an toàn, an ninh thông tin đang là một
trong những nguyên nhân chính khiến cho nhiều cơ quan, đơn vị chưa triển khai
rộng việc trao đổi văn bản điện tử và sử dụng thư điện tử. Vậy đòi hỏi chúng ta
phải nghiên cứu không ngừng các vấn đề an toàn và bảo mật thông tin, dữ liệu
để bảo đảm cho các hệ thống thông tin hoạt động an toàn, hiệu quả. Sự phát triển
của công nghệ mã hóa đã nghiên cứu và đưa ra nhiều mô hình kỹ thuật cho phép
áp dụng xây dựng các ứng dụng và đòi hỏi tính an toàn, tính bảo mật thông tin,
dữ liệu cao. Hiện nay các văn bản như Chỉ thị số 34/2008/CT-TTg về tăng
cường sử dụng hệ thống thư điện tử trong hoạt động của các cơ quan Nhà nước
và Chỉ thị số 15/CT-TTg của Thủ tướng Chính phủ về tăng cường sử dụng văn
bản điện tử trong hoạt động của các cơ quan Nhà nước.
Tại Hội nghị trực tuyến Tổng kết 05 năm triển khai thực hiện Chỉ thị số
34/2008/CT-TTg và 01 năm thực hiện Chị thị số 15/CT-TTg của Thủ tướng
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
3
Chính phủ do Bộ Thông tin và Truyền thông tổ chức ngày 24/9/2013, nhiều Bộ,
ngành, địa phương cùng chung mối lo ngại về việc mất an toàn, an ninh thông
tin, dữ liệu khi triển khai ứng dụng thư điện tử và trao đổi văn bản điện tử. Tuy
nhiên, công tác đảm bảo an toàn, bảo mật dữ liệu còn nhiều khó khăn, các hệ
thống an toàn, bảo mật và an ninh thông tin, dữ liệu chủ yếu được cài đặt riêng
lẻ, chưa được triển khai đồng bộ, khả năng phòng chống virus, bảo mật chưa
cao.
Để đảm bảo an toàn và bảo mật dữ liệu, thông tin dữ liệu trên đường
truyền tin và trên mạng máy tính có hiệu quả thì điều trước tiên là phải lường
trước hoặc dự đoán trước các khả năng không an toàn, khả năng xâm phạm, các
sự cố rủi ro có thể xảy ra, các lỗ hổng về an toàn, bảo mật mà chưa được phát
hiện ra đối với thông tin, dữ liệu được lưu trữ và trao đổi trên đường truyền tin
cũng như trên mạng, việc xác định càng chính xác các nguy cơ nói trên thì càng
quyết định được tốt các giải pháp để giảm thiểu độ thiệt hại. Vấn đề đảm bảo An
toàn và bảo mật dữ liệu trong hệ thống trao đổi văn bản điện tử là vấn đề nóng
hổi, cần quan tân hàng đầu trong hoạt động thực tiễn của quá trình trao đổi văn
bản điện tử giữa các cá nhân, các tổ chức, các cơ quan Nhà nước vv… Xuất phát
từ thực tiễn đó, với mong muốn tìm hiểu sâu và vận dụng những kiến thức đã
học về An toàn và bảo mật thông tin để ứng dụng và giải quyết một số vấn đề
thực tiễn, lo lắng của các cơ quan, đơn vị trên địa bàn tỉnh Ninh Bình và đặc biệt
là Sở Thông tin và Truyền thông tỉnh Ninh Bình, tôi chọn đề tài: "An toàn và
bảo mật dữ liệu bằng mã hóa ứng dụng trong hệ thống trao đổi văn bản
điện tử" làm đề tài luận văn của mình.
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
4
CHƢƠNG I: TỔNG QUAN VỀ AN TOÀN VÀ BẢO MẬT DỮ LIỆU.
MÃ HOÁ VÀ CHỨ KÝ SỐ TRONG AN TOÀN VÀ BẢO MẬT THÔNG TIN
1.1 Nội dung của an toàn và bảo mật dữ liệu
Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến
bộ về Điện tử - Viễn thông và Công nghệ Thông tin không ngừng được phát
triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm
ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới. Bảo vệ an tàn
thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong
thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông
tin dữ liệu. Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể đươc quy tụ
vào ba nhóm sau:
- Bảo vệ an toàn thông tin bằng các biện pháp hành chính.
- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng).
- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm).
Ba nhóm trên có thể được ứng dụng riêng lẻ hoặc phối kết hợp. Môi
trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ
xâm nhập nhất đó là môi trường mạng và truyền tin. Biện pháp hiệu quả nhất và
kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật
toán.
An toàn thông tin bao gồm các nội dung sau:
-
Tính bí mật: Tính kín đáo riêng tư của thông tin.
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
5
-
Tính xác thực của thông tin, bao gồm xác thực đối tác (bài toán nhận
danh), xác thực thông tin trao đổi.
-
Tính trách nhiệm: Đảm bảo người gửi thông tin không thể thoái thác
trách nhiệm về thông tin mà mình đã gửi.
Để đảm bảo an toàn thông tin dữ liệu trên đường truyền tin và trên mạng
máy tính có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoán trước
các khả năng không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xẩy ra
đối với thông tin dự liệu được lưu trữ và trao đổi trên đường truyền tin cũng như
trên mạng. Xác định càng chính xác các nguy cơ nói trên thì càng quyết định
được các giải pháp để giảm thiểu thiệt hại.
Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: Vi phạm chủ động
và vi phạm thụ động. Vi phạm thụ động chỉ nhằm mục đích cuối cùng là nắm
bắt được thông tin (đánh cắp thông tin). Việc làm đó có khi không biết được nội
dung cụ thể nhưng có thể dò ra được người gửi, người nhận nhờ thông tin điều
khiển giao thức chứa trong phần đầu các gói tin. Kẻ xâm nhập có thể kiểm tra
được số lượng, độ dài và tần số trao đổi. Vì vậy vi phạm thụ động không làm sai
lệch hoặc huỷ hoại nội dung thông tin dữ liệu được trao đổi. Vi phạm thụ đông
thường khó phát hiện nhưng có thể có những biện phát ngăn chặn hiệu quả. Vi
phạm chủ động là dạng vi phạm có thể làm thay đổi nội dung, xoá bỏ, làm trễ,
xắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc sau một thời
gian. Vi phạm chủ động có thể thêm vào một số thông tin ngoại lai để làm sai
lệch nội dung thông tin trao đổi. Vi phạm chủ động dễ phát hiện nhưng để ngăn
chặn hiệu quả thì khó khăn hơn nhiều.
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
6
Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu
nào là an toàn tuyệt đối. Một hệ thống dù được bảo vệ chắc chắn đến đâu cũng
không thể đảm bảo an toàn tuyệt đối.
1.2 Các loại tấn công trên hệ thống
Trong những năm gần đây, với sự phát triển mạnh mẽ của Công nghệ
Thông tin, truyền thông cùng với nhiều ngành công nghệ cao khác đã và đang
làm biến đổi sâu sắc đời sống kinh tế, chính trị, văn hoá, xã hội của đất nước.
Việc ứng dụng các công nghệ mới và nâng cao công tác bảo mật cho hệ thống
mạng nhằm nâng cao năng xuất làm việc để đạt được những chỉ tiêu đề ra là
hết sức quan trọng, hiện nay các loại tội phạm về an ninh mạng có xu hướng
gia tăng và tinh vi hơn thì việc bảo mật, an toàn cho hệ thống thông tin là rất
cần thiết. Trong thực tế có trất nhiều loại, tấn công hệ thống như:
- Social Engineering (xã hội): Loại tấn công này với hai mục đích chính
là đùa cợt và trục lợi. Kỹ thuật này phụ thuộc nhiều vào sơ hở của nhân viên,
hacker có thể gọi điện thoại hoặc gửi e-mail giả danh người quản trị hệ thống từ
đó lấy mật khẩu của nhân viên và tiến hành tấn công hệ thống. Cách tấn công
này rất khó ngăn chặn. Cách duy nhất để ngăn chặn nó là giáo dục khả năng
nhận thức của nhân viên về cách đề phòng.
- Impersonation (mạo danh): Là ăn cắp quyền truy cập của người sử
dụng có thẩm quyền. Có nhiều cách kẻ tấn công như một hacker có thể mạo
danh một người dùng hợp pháp. Ví dụ, hacker có thể nghe lén một phiên telnet
sử dụng các công cụ nghe lén như Tcpdump hoặc Nitsniff. Dĩ nhiên sau khi lấy
được Password, hacker có thể đăng nhập hệ thống như là người dùng hợp pháp.
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
7
- Exploits (khai thác lỗ hổng): Là hình thức tấn công này liên quan đến
việc khai thác lỗi hổng trong phần mềm hoặc hệ điều hành. Do gấp rút hoàn
thành để đáp ứng nhu cầu của thị trường, các phần mềm thường chưa được kiểm
tra lỗi kỹ ngay cả trong dự án phần mềm lớn như hệ điều hành lỗi này cũng rất
phổ biến. Các hacker thường xuyên quét các host trong mạng để tìm các lỗi này
và tiến hành thâm nhập.
- Data Attacks (tấn công dữ liệu): Lập trình Script đã mang lại sự linh
động cho sự phát triển của Web và bên cạnh đó cũng mang lại sự nguy hiểm cho
các hệ thống do các đoạn mã độc. Những script hiện hành có thể chạy trên cả
server (thường xuyên) và client. Bằng cách đó, các script có thể gửi mã độc vào
hệ thống như trojan, worm, virus…
- Infrastructure Weaknesses (Điểm yếu cơ sở hạ tầng): Một số điểm
yếu lớn nhất của cơ sở hạ tầng mạng được tìm thấy trong các giao thức truyền
thông. Đa số hacker nhờ kiến thức về cơ sở hạ tầng sẵn có đã tận dụng những lỗ
hổng và sử dụng chúng như là nơi tập trung để tấn công. Có nhiều lỗ hổng của
các giao thức truyền thông và đã có bản vá những lỗi này tuy nhiên do sự mất
cảnh giác không cập nhật bản vá kịp thời của những người quản trị hệ thống mà
các hacker có thể tận dụng những lỗ hổng này để tấn công. Dĩ nhiên hacker sẽ
phải liên tục quét hệ thống để tìm những lỗ hổng chưa được vá lỗi.
- Denial of Service (tấn công Từ chối dịch vụ): Đây là kỹ thuật tấn công
rất được ưa chuộng của hacker. Loại tấn công này chủ yếu tập trung lưu lượng
để làm ngưng trệ các dịch vụ của hệ thống mạng. Hệ thống được chọn sẽ bị tấn
công dồn dập bằng các gói tin với các địa chỉ IP giả mạo. Để thực hiện được
điều này hacker phải nắm quyền kiểm soát một số lượng lớn các host trên mạng
(thực tế các host này không hề biết mình đã bị nắm quyền kiểm soát bởi hacker)
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
8
từ đó tập trung yêu cầu đến dịch vụ của hệ thống đích cho đến khi dịch vụ bị
ngưng trệ hoàn toàn.
- Active Wiretap: Trong kiểu tấn công này, dữ liệu sẽ bị chặn lại trong
quá trình truyền. Khi bị chặn lại có hai hành động chủ yếu đối với dữ liệu: một
là gói tin sẽ bị thay đổi địa chỉ IP nguồn hoặc đích hoặc số thứ tự của gói tin, hai
là dữ liệu không bị thay đổi nhưng sẽ bị sao chép để sử dụng cho những mục
đích khác.
1.3 Yêu cầu an toàn bảo mật của một hệ thông tin
Trong những năm gần đây, vấn đề an toàn bảo mật hệ thống thông tin
đang trở thành một vấn đề nóng, đặc biệt với hệ thống thông tin trao đổi văn bản
điện tử phục vụ công tác chỉ đạo, điều hành của các cơ quan nhà nước. Có thể
nói vấn đề bảo mật và an toàn của hệ thống thông tin mang tính sống còn, do đó
cần có các chiến lược an toàn hệ thống:
- Giới hạn quyền hạn tối thiểu (Last Privilege): Đây là chiến lược cơ bản
nhất theo nguyên tắc này bất kỳ một đối tượng nào cùng chỉ có những quyền hạn
nhất định đối với tài nguyên mạng, khi thâm nhập vào mạng đối tượng đó chỉ
được sử dụng một số tài nguyên nhất định.
- Bảo vệ theo chiều sâu (Defence In Depth): Nguyên tắc này nhắc nhở
chúng ta không nên dựa vào một chế độ an toàn nào dù cho chúng rất mạnh, mà
nên tạo nhiều cơ chế an toàn để tương hỗ lẫn nhau.
- Nút thắt (Choke Point): tạo ra một “cửa khẩu” hẹp, và chỉ cho phép
thông tin đi vào hệ thống của mình bằng con đường duy nhất chính là “cửa
khẩu” này. Vì vậy phải tổ chức một cơ cấu kiểm soát và điều khiển thông tin đi
qua cửa này.
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
9
- Điểm nối yếu nhất (Weakest Link): Chiến lược này dựa trên nguyên tắc
“một dây xích chỉ chắc tại mắt duy nhất, một bức tường chỉ cứng tại một điểm
yếu nhất”. Kẻ phá hoại thường tìm những chỗ yếu nhất của hệ thống để tấn
công, do đó ta cần phải gia cố các yếu điểm của hệ thống, thông thường chúng ta
chỉ quan tâm đến kẻ tấn công hơn là kẻ tiếp cận hệ thống, do đó an toàn vật lý
được coi là yếu điểm nhất trong hệ thống của chúng ta.
- Tính toàn cục: Các hệ thống an toàn đòi hỏi phải có tính toàn cục của
các hệ thống cục bộ, nếu có một kẻ nào đó có thể bẻ gãy một cơ chế an toàn thì
chúng có thể thành công bằng cách tấn công hệ thống tự do của ai đó và sau đó
tấn công hệ thống từ nội bộ bên trong.
- Tính đa dạng bảo vệ: Cần phải sử dụng nhiều biện pháp bảo vệ khác
nhau cho hệ thống khác nhau, nếu không có kẻ tấn công vào được một hệ thống
thì chúng cũng dễ dàng tấn công vào các hệ thống khác.
1.4 Khái niệm mật mã, mật mã khóa công khai
Năm 1976, Whitfield Diffie và Martin Hellman công bố một phát kiến
mang tên “các phương hướng mới trong mật mã”. Công trình đề xuất một dạng
mới của hệ thống mật mã, trong đó người gửi và người nhận sử dụng các khoá
mã khác nhau nhưng có mối liên hệ với nhau, một trong hai khoá đó được giữ bí
mật.
Các thuật toán với mật mã khoá công khai (mật mã bất đối xứng) dựa
trên một lớp các bài toán gọi là hàm một chiều. Các hàm này có đặc tính là rất
dễ dàng thực hiện theo chiều xuôi nhưng lại rất khó (về khối lượng tính toán) để
thực hiện theo chiều ngược lại. Do những đặc tính của hàm một chiều, hầu hết
các khoá có thể lại là những khoá yếu và chỉ còn lại một phần nhỏ có thể dùng
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
10
để làm khoá. Vì thế, các thuật toán khoá bất đối xứng đòi hỏi độ dài khoá lớn
hơn rất nhiều so với các thuật toán khoá đối xứng để đạt được độ an toàn tương
đương.
Ngoài ra, việc thực hiện thuật toán khoá bất đối xứng đòi hỏi khối lượng
tính toán lớn hơn nhiều lần so với thuật toán khoá đối xứng. Bên cạnh đó, đối
với các hệ thống khoá đối xứng, việc tạo ra một khoá ngẫu nhiên để làm khoá
phiên chỉ dùng trong một phiên giao dịch là khá dễ dàng. Vì thế, trong thực tế
người ta thường kết hợp: Hệ thống mật mã khoá bất đối xứng được dùng để trao
đổi khoá phiên còn hệ thống mật mã khoá đối xứng dùng khoá phiên có được để
trao đổi các bản tin thực sự.
Trong một hệ mã khoá công khai (mã không đối xứng), khoá mã hoá sử
dụng khoá công khai khắc phục điểm yếu của mã hoá khoá đối xứng với những
đặc điểm, giải thuật khoá công khai sử dụng 2 khoá khác nhau:
+ Một khoá công khai: Ai cũng có thể biết, dùng để mã hoá thông báo và
thẩm tra chữ ký.
+ Một khoá riêng: Chỉ người giữ được biết, dùng để giải mã thông báo
và ký chữ ký.
+ Có tính chất bất đối xững.
+ Bên mã hoá không thể giải mã thông báo (nếu dùng để mã hoá thông
báo).
+ Bên thẩm tra không thể tạo chữ ký (nếu dùng để ký).
Bản rõ
Mã hoá
Số hóa bởi Trung tâm Học liệu
Giải mã
Bản rõ
http://www.lrc-tnu.edu.vn/
11
Khoá
Khoá bí
công khai
mật
Hình 1.1: Mô hình hoạt động của mật mã khoá công khai
Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau:
Người B muốn gửi cho người A một thông tin mật mà B muốn duy nhất A có
thể đọc được. Để làm được điều này, A gửi cho B một chiếc hộp có khoá đã mở
sẵn và giữ lại chìa khoá. B nhận chiếc hộp, cho vào đó một bức thư và khoá lại
(sau khi khoá lại ngay cả B cũng không thể mở được, không đọc lại hay sửa
thông tin trong thư được nữa). Sau đó, B gửi chiếc hộp lại cho A. A mở hộp với
chìa khoá của mình và đọc thông tin trong thư. Trong ví dụ này, chiếc hộp với
khoá mở đóng vai trò khoá công khai, chiếc chìa khoá chính là khoá bí mật.
* Nguyên tắc chung của mã hóa với khoá công khai
Giả sử trong hệ thống có n cá thể cùng trao đổi các thông tin mật. Mỗi
cá thể chọn cho mình một khoá công khai k và một công thức mã hoá Ek được
thông báo công khai cho mọi người biết. Như vậy, có n khoá công khai
n1,n2,…,nk. Khi các cá thể thứ i muốn gửi thông báo cho cá thể j, mỗi chữ trong
thông báo được chuyển thành số, nhóm thành từng “khối” với độ dài nào đó.
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
12
Sau đó, mỗi khối P trong văn bản được mã hoá theo công thức mã hoá Ekj của cá
thể thứ j (đã thông báo công khai), và gửi đi dưới dạng:
C = Ekj (P)
Để giải mã thông báo này, cá thể thứ j chỉ cần dùng khoá giải mã (khoá
bí mật của riêng mình) Dkj
Dkj (C) = Dkj Ekj (P) = P
Các cá thế khác trong hệ thống nếu nhận được văn bản mật cũng không
thể nào giải mã được, vì việc lập mã Ekj không cho phép tìm ra khoá Dkj trong
thời gian chấp nhận được [2].
1.5. Một số hệ mã khóa công khai thông dụng
1.5.1. Hệ mật mã RSA
RSA là tên viết tắt của ba tác giả Ronald Rivest, Adi Shamir, Leonard
Adleman. SRA là một thuật toán mật mã hoá khoá công khai.Đây là thuật toán
đầu tiên phù hợp với việc tạo ra chữ ký số đồng thời với việc mã hoá. 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 khoá
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 khoá đủ lớn.
Thuật toán RSA có hai kháo: khoá công khai (hay khoá công cộng) và
khoá bí mật (hay khoá cá nhân). Mỗi khoá là những số cố định sử dụng trong
quá trình mã hoá và giải mã. Khoá công khai được công bố rộng rãi cho mọi
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
13
người và được dùng để mã hoá. Những thông tin được mã hoá bằng khoá công
khai chỉ có thể được giải mã bằng khoá bí mật tương ứng. Nói cách khác, mọi
người đều có thể mã hoá nhưng chỉ có người biết khoá cá nhân (bí mật) có thể
giải mã được.
* Quá trình tạo khoá, mã hóa và giải mã
+ Định nghĩa:
- Tập các bản rõ: P = ZN = { 0,1,…,n-1 }
- Tập các bản mã: C = ZN = { 0,1,…,n-1}
- Tập các khoá: K = { n, p, q, e, d } : N = p * q, e * d ≡ 1 (mod φ (N))
Quá trình tạo khoá:
Giả sử A và B cần trao đổi thông tin bí mật thông qua một kênh không
an toàn (như intenet). Với thuật toán RSA, A đầu tiên cần tạo ra cho mình cặp
khoá gồm khoá công khai và khoá bí mật theo các bước sau:
Bước 1: Tạo hai số nguyên tố phân biệt p và q, sao cho bài toán phân
tích ra thừa số nguyên tố là khó giải (kích thước mỗi số khoản 512 bits đến 1024
bits).
Bước 2: Tính N = p * q và φ(N) = (p-1)(q-1)
Bước 3: Chọn một số tự nhiên e sao cho 1 < e < φ(N) và (e,φ(N)) = 1
Bước 4: Sử dụng thuật toán Euclid mở rộng, để tính số nguyên d duy
nhất sao cho 0 < d < φ(n) và d * e ≡ 1(mod φ(N))
(d là nghịch đảo của e modulo N)
Khi đó ta có:
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
14
- Khoá công khai: (e, N)
- Khoá bí mật: (d, N)
Người A gửi khoá công khai cho người B, và giữ bí mật khoá cá nhân
của mình. Ở đây, p và q giữ vai trò rất quan trọng. Chúng là các phân số của n
và cho phép tính d khi biết e. Hai số nguyên tố p, q sẽ bị xoá khi kết thúc quá
trình tạo khoá.
Quá trình mã hoá
Giả sử người B muốn gửi đoạn thông tin M cho người A. Người B làm
như sau:
Bước 1: Lấy khoá công khai của người nhận A : (e, N).
Bước 2: Biến đổi thông điệp M thành những số nguyên Mi tương ứng
sao cho Mi < N, (i = 1, 2,…,k) theo phép biến đổi sau:
- Biến đổi các ký tự trong thông điệp M thành các số nguyên tương ứng
theo một quy tắc nào đó.
- Chia thông điệp vừa biến đổi thành k nhóm có chiều dài bằng nhau,
mỗi nhóm biểu diến một số nguyên Mi Є { 0,…, N-1} (với 1 ≤ I ≤ k)
Bước 3: Thực hiện mã hóa lần lượt cho từng số Mi → Ci bằng cách;
Ci = Eke (Mi) = Mei (mod N)
Tập hợp các số nguyên {C1,C2,…,Ck} là bản mã để gửi đến người nhận
A
Quá trình giải mã
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
15
Người nhận A dùng khoá bí mật d của mình để thực hiện giải mã theo
các bước sau:
Bước 1: Chọn khoá bí mật của người nhận
Bước 2: Thực hiện giải mã lần lượt từng số nguyên Ci → Mi bằng cách
Mi = D (Ci) = Cid (mod N) với 0 ≤ Mi ≤ N
Bước 3: Thực hiện phép biến đổi ngược lại từ các số Mi thành chuối các
ký tự tương ứng để khôi phục lại nội dung thông điệp M ban đầu
* Độ an toàn của hệ RSA
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: Bài toán
phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài
toán trên là khó (không tìm được thuật toán hiệu quả để giải chúng) thì không
thể thực hiện được việc phá mã toàn bộ đối với RSA. Phá mã một phần phải
được ngăn chặn bằng các phương pháp chuyển đổi bản rõ an toàn.
Bài toán RSA: Cho số nguyên dương N là tích của hai số nguyên tố
phân biệt p vad q (N = p * q), số nguyên e sao cho thoả mãn:
USLN (e, (p-1) * (q-1)) = 1và số nguyên c.
Tìm số nguyên m sao cho me ≡ c (mod N).
Hiện nay phương pháp triển vọng nhất giải bài toán này là phân tích n ra
thừa số nguyên tố. Khi thực hiện được điều này, kẻ tấn công sẽ tìm ra số mũ bí
mật d từ khoá cồng khai và có thể giải mã theo đúng quy trình thuật toán. Nếu
kẻ tấn công tìm được 2 số nguyên tố p và q sao cho: N = p * q thì có thể dễ dàng
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
16
tìm được giá trị (p-1) (q-1) và qua đó xác định d từ e. Chưa có phương pháp nào
được tìm ra trên máy tính để giải bài toán này trong thời gian đa thức. Tuy nhiên
người ta cũng chưa chứng minh được điều ngược lai (sự không tồn tại thuật
toán).
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à 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ã hoá chậm, vì thế để mã hoá khối dữ
liệu lớn là khồn khả thi. 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ã hoá: Tạo vỏ bọc an toàn cho văn bản mật và vấn
đề xác nhận chủ thể [2].
1.5.2. Hệ mật mã ELgamal
Hệ mật mã khoá công khai Elgamal được giới thiệu bởi T.Elgamal vào
năm 1985. Độ an toàn của hệ này phụ thuộc vào độ khó giải bài toán lograrithm
rời rạc trong trường số hữu hạn Zp. Vì vậy, số nguyên tố p cần phải được chọn
sao cho bài toán lograrithm là khó tính toán. Trường hợp đặc biệt để ngăn ngừa
sự tấn công, thì số nguyên tố p cần phải được lựa chọn sao cho số (p-1) có ít
nhất một thừa số nguyên tố lớn q.
* Quá trình tạo khoá, mã hóa và giải mã
+ Định nghĩa:
- Tập các bản rõ: M = Zp* = { 1,2,…,p-1 }
- Tập các bản mã: C = Zp* x Zp*
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
17
- Tập các khoá công khai: Ke = {p} x P x Zp* (với p là tập các phần tử
sinh)
- Tập các khoá riêng: Kd = Zp-1 = { 1,2,…,p-2 }
Quá trình tạo khoá:
Bước 1: Tạo số nguyên tố p lớn sao cho bài toán lograrithm rời rạc trong
Zp là khó giải và số p-1 có ít nhất một thừa số nguyên tố q lớn.
Bước 2: Chọn số g Є Zp* là phần tử sinh. Các giá trị p và g thường được
sử dụng như những tham số chung trong nhón.
Bước 3: Người sử dụng chọn ngẫu nhiên số x sao cho 0 < x < p-2, và
định nghĩa K = { (p,g,x,y) : y = gx (mod p)}
Khi đó ta có:
- Khoá công khai: (p, g, y)
- Khoá bí mật: x
Quy trình mã hoá:
Để mã hoá thông điệp M gửi cho A, thì người B phải thực hiện các bước
sau:
Bước 1: Dùng thuật toán để chia thông điệp M ra nhiều khối có chiều dài
cố định và mỗi khối được biến đổi thành một số nguyên tương ứng Mi < p,
(i = 1,…, k).
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
18
- Biến đổi các ký tự của thông điệp thành các số tương ứng, theo một
quy tắc nào đó.
- Chia thông điệp vừa biến đổi thành r nhóm số có chiều dài bằng nhau,
mỗi nhóm biểu diễn một số nguyên Mi < p với (1 ≤ i ≤ r).
Bước 2: Lấy khoá công khai của người nhận (p, g, y).
Bước 3: Chọn ngẫu nhiên một số nguyên k sao cho 0 ≤ k ≤ (p-2).
Bước 4: Mã hoá lần lượt từng số Mi với khoá công khai của người nhận,
bằng cách tính Ci = Eke (Mi) = (Ci1, Ci2) với Ci1 = gk mod p và
Ci2 = Mi * yk mod p.
Tập số {C1,C2,…,Cr} với Ci = (Ci1, Ci2), i = 1,…,r là bản mã gửi cho B
Quá trình giải mã:
Người nhận A giải mã bản mã {C1,C2,…,Cr} bằng cách sau:
Bước 1: Giải mã lần lượt cặp số Ci = (Ci1, Ci2) với 1 ≤ i ≤ r
Tính Mi = Dkd (Ci1, Ci2) = Ci2 * (Ci1)-1 mod p. Kết quả thu được là tập các
số nguyên tố lớn {M1,M2,…,Mr}
Bước 2: Biến đổi các số nguyên Mi trở lại các chuối ký tự tương ứng và
khôi phục lại thông điệp M.
Độ an toàn của mật mã Elgamal:
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
19
Hệ mã hoá Elgamal là không tất định tức là với một bản rõ M và một
khoá bí mật x, thì có thể có nhiều hơn một bản mã y, vì trong công thức lập mã
có thành phần ngẫu nhiên k.
Độ an toàn của hệ mật mã Elgamal dựa vào khả năng giải bài toán logarit
rời rạc trong Zp. Theo giải thuyết trong sơ đồ, thì bài toán này là khó giải. Từ
bản mã C = (C1, C2), trong đó C1 = ak mod p, C2 = k * M mod p.
Như vậy muốn xác định bản rõ M từ công thức C2 thám mã phải biết
được k. Giá trị này có thể tính được từ công thức C1 nhưng lại gặp bài toán
logarit rời rạc.
Phương pháp tính toán của hệ Elgamal rất phức tạp vì đòi hỏi nhiều phép
tính lũy thừa modulo trong quá trình mã hoá và giải mã, nên có hiệu suất thực
hiện kém. Do đó thường không được ứng dụng trong những trường hợp mã hoá
khối lượng lớn dữ liệu. Hệ mã Elgamal được ứng dụng trong việc xây dựng lược
đồ chữ ký số (phiên bản sửa đổi của lược đồ chữ ký Elgamal là chữ ký DSA
được dùng trong chuẩn chữ ký điện tử của NIST ở Mỹ và cả thế giới).
1.6. Hàm băm và chữ ký số
1.6.1. Hàm băm.
* Khái niệm về hàm băm:
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
20
Thông thường chữ ký số có độ dài lớn hơn văn bản ký. Như vậy, thời
gian ký khá lâu, mặt khác tốn bộ nhớ để lưu giữ chũ ký, hay tốn thời gian và
băng thông để truyền chữ ký trên mạng máy tính. Hiện nay sơ đồ ký “số” chỉ
cho phép ký trên các văn bản nhỏ. Nhưng thực tế ta cần ký trên các văn bản rất
dài, chẳng hạn một tài liệu có thể dài nhiều Megabyte.
Một cách đơn giản để giải bài toán trên là chia văn bản thành nhiều đoạn
sau đó ký lên từng đoạn. Với cách “ký” này, một văn bản dài vẫn phải có một
chữ ký rất lớn. Nhược điểm khác là tốc độ “ký” chậm vì các sơ đồ ký hiện nay
phải tính các số mũ modolo rất lớn. Nhưng khó khăn hơn là văn bản có thể bị
sắp xếp lại các đoạn khác nhau. Ta cần bảo vệ sự nguyên vẹn của văn bản, điều
này không thể thực hiện được bằng cách ký độc lập từng đoạn nhỏ của chúng.
Giải pháp cho vấn đề này là dùng hàm băm (Hash). Từ văn bản với độ dài tuỳ ý,
hàm băm tạo ra một tóm lược thông báo có kích thước quy định (ví dụ 256 bit).
Sau đó “ký” trên tóm lược thông báo, thay vì ký trực tiếp trên tài liệu gốc.
Cần ký văn bản dài x, trước tiên ta tạo lập bản tóm lược thông điệp
(message digest) z = h(x), sau đó ký trên z, tức là tính y = sigk (z).
Kiểm tra chữ ký: Đầu tiên tạo lập tóm lược thông điệp z = h(x) nhờ hàm
băm h công khai, sau đó kiểm tra điều kiện Verk (x,y) = true hay không ?.
* Hàm băm MD5 (Message-Digest algorithm 5):
Hàm băm MD5 là một hàm băm mật mã được sử dụng phổ biến, được
thiết kế bởi Giáo sư Ronald L.Rivest tại trường MIT vào năm 1991 để thay thế
cho hàm băm trước đó là MD4 (1990). Là một chuẩn intenet, MD5 đã được
dùng nhiều ứng dụng bảo mật và cũng được dùng phổ biến để kiểm tra tính toàn
Số hóa bởi Trung tâm Học liệu
http://www.lrc-tnu.edu.vn/
- Xem thêm -