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

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ử

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 (2.6 MB, 70 trang )

1

Số hóa bởi Trung tâm Học liệu


ĐẠ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
2

Số hóa bởi Trung tâm Học liệu


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
3

Số hóa bởi Trung tâm Học liệu


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.


4

Số hóa bởi Trung tâm Học liệu





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.
5

Số hóa bởi Trung tâm Học liệu


- 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.
6

Số hóa bởi Trung tâm Học liệu


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.
7

Số hóa bởi Trung tâm Học liệu


- 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)
8

Số hóa bởi Trung tâm Học liệu


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.
9

Số hóa bởi Trung tâm Học liệu


- Đ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
10

Số hóa bởi Trung tâm Học liệu


để 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á
Giải mã
Bản rõ
11

Số hóa bởi Trung tâm Học liệu








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 đó.
Khoá
công khai
Khoá bí
mật
12

Số hóa bởi Trung tâm Học liệu


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
13

Số hóa bởi Trung tâm Học liệu


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ó:
14

Số hóa bởi Trung tâm Học liệu


- 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) = M
e
i (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ã
15

Số hóa bởi Trung tâm Học liệu


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) = Ci
d
(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 m
e
≡ 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
16

Số hóa bởi Trung tâm Học liệu


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
*

17

Số hóa bởi Trung tâm Học liệu


- 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 = g
x
(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).
18

Số hóa bởi Trung tâm Học liệu


- 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 = g
k
mod p và
Ci2 = Mi * y

k
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:
19

Số hóa bởi Trung tâm Học liệu


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 = a
k
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:
20

Số hóa bởi Trung tâm Học liệu


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
21

Số hóa bởi Trung tâm Học liệu


vẹn của tập tin. Cũng như các hàm băm khác như MD4 và SHS (Secure Hash
Standard), MD5 là phương pháp có ưu điểm tốc độ xử lý rất nhanh, thích hợp
với các thông điệp dài và cho ra giá trị băm dài 128 bit.
Thuật toán số hoá thông điệp MD5 nhận vào 1 thông điệp với độ dài tuỳ
ý và tạo ra một số 128 bit, là một dạng “vân tay” hay “mã số thông điệp”
(message digest) của đầu vào. Người ta cho rằng sẽ không khả thi về mặt tính
toán để tạo ra 2 thông điệp có cùng mã số thông điệp, hoặc tạo ra một thông điệp
với mã số cho trước. Thuật toán MD5 được dự tính áp dụng cho những ứng
dụng chữ ký điện tử, ở đó một file lớn phải được “nén” một cách an toàn trước
khi mã hoá với một khoá cá nhân (private key) dưới một hệ thống mã hoá công
khai như RSA.
Giả sử chúng ta có thông điệp b bit ở đầu vào, và ta muốn tìm mã số của
thông điệp. Ở đây b là số không âm bất kỳ; b có thể bằng 0 và không cần chia
hết cho 8, đổ lớn có thể bất kỳ. Tưởng tượng rằng các bit của thông điệp được
viết như sau: m_1_m_2 m_3…m_ (b-1)

Mã số thông điệp được tính qua 5 bước sau:
Bước 1: Các bit gắn thêm
Thông điệp được mở rộng, thêm bit vào phía sau sao cho độ dài của nó
(tính theo bit) đồng dư với 448 theo môđun 512. Nghĩa là thông điệp được mở
rộng sao cho nó còn thiếu 64 bit nứa thì sẽ có độ dài chia hết cho 512. Việc này
luôn được thực hiện ngay cả khi bản thân độ dài thông điệp đã đồng dư với 448
theo môđun 512.
22

Số hóa bởi Trung tâm Học liệu


Việc thêm bit này thực hiện như sau: một bit “1” được thêm vào sau
thông điệp, sau đó các bit “0” được thêm vào để có một độ dài đồng dư với 448
theo môđun 512. Trong tất cả các trường hợp, có ít nhất 1 và nhiều nhất 512 bit
được thêm vào.
Bước 2: Gắn thêm độ dài
Dạng biểu diễn 64 bit độ dài b của mỗi chuỗi ban đầu được thêm vào
phía sau kết quả của Bước 1. Trong trương hợp b lớn hơn 264 thì chỉ có 64 bit
thấp của b được sử dụng (các bit này được thêm vào phía sau dưới dạng 2 “từ”
32 bit, gắn word thấp trước theo quy ước trên).
Bước 3: Khởi tạo bộ đệm MD
Một bộ đệm 4 từ (A,B,C,D) được dùng để tính mã số thông điệp. Ở đây
mỗi A,B,C,D là một thanh ghi 32 bit. Những thanh ghi này được khởi tạo theo
những giá trị hecxa sau (các byte thấp trước):
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10
Bước 4: Xử lý thông điệp theo từng khối 16 word

Trước hết ta định nghĩa các hàm phụ, các hàm này nhận đầu vào là 3
“từ” 32 bit và tạo ra một từ 32 bit.
23

Số hóa bởi Trung tâm Học liệu


F(X,Y,Z) = (X ^ Y) v (not (X) ^ Z)
G(X,Y,Z) = (X ^ Z) v (Y ^ not (Z))
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X v not(Z))
Với mỗi bit, F hoạt động như một điều kiện: Nếu X thì Y nếu không thì
Z, hàm F có thể định nghĩa bằng phép + thay vì v bởi vì XY và not(X)Z không
bao giờ có “1” ở cùng 1 vị trí bit. Các hàm G, H và I tương tự như F, ở chố
chúng tác động theo từng bit tương ứng để tạo ra kết quả từ các bit của X, Y và
Z [3] [9].
Dưới đây là các ví dụ mô tả kết quả sau khi sử dụng hàm băm MD5:
- MD5(“Thái Nguyen”) = ae739c493fed4459022b08a612bdbee
- MD5(“thái Nguyen”) = f5fd3c3t720e1f0c9be9cb7130923fdce
Nếu thay đổi ký tự “T” thành “t” thì cho kết quả hoàn toàn khác. Thuật
toán cũng cho kết quả đối với chuối rống:
- MD5(“ ”) = d41d8cd98f00b204e98009988efc842 [6]
1.6.2 Chữ ký số
* Khái niệm về chữ ký số:
Chữ ký số (một dạng chữ ký điện tử) là thông tin được mã hoá bằng
khoá riêng (tương ứng với một khoá công khai) của người gửi, được đính kèm
24

Số hóa bởi Trung tâm Học liệu



theo văn bản nhằm đảm bảo cho người nhận định danh và xác thực đúng nguồn
gốc, tính toàn vẹn của dữ liệu nhận được.
Chữ ký số ra đời để khắc phục các thiếu sót của những hệ thống xác thực
ra đời trước đó. Cùng với sự phát triển của thương mại điện tử, ngoài nhu cầu
xác thực, các nhu cầu khác về bảo mật như toàn vẹn dữ liệu và chống từ chối
cũng đều hết sức cấp thiết.
Chữ ký số đóng một vai trò rất quan trọng trong trường hợp xảy ra tranh
chấp vì chữ ký số được cung cấp bởi hệ thống CA (Certificate authority – Nhà
cung cấp chứng thực số), CA là một tổ chức chuyên đưa ra và quản lý các nội
dung xác thực, bảo mật trên mạng máy tính, cùng các khoá công khai để mã hoá
thông tin công cộng có giá trị pháp lý tương đương như chữ ký tay trong các
giao dịch điện tử.
Chữ ký số là tập con của chữ ký điện tử. Khái niệm chữ ký điện tử mặc
dù thường được sử dụng cùng nghĩa với chữ ký số nhưng thực sự có nghĩa rộng
hơn. Chữ ký điện tử chỉ đến bất kỳ phương pháp nào (không nhất thiết là mật
mã) để xác định người chủ của văn bản điện tử. Chữ ký điện tử bao gồm cả địa
chỉ telex và chữ ký trên giấy được truyền bằng fax. [7] [11]
* Các ưu điểm của chữ ký số:
- Khả năng xác định nguồn gốc: Các hệ thống mật mã hoá công khai cho
phép mã hoá văn bản với khoá bí mật mà chỉ người chủ của khoá biết. Để sử
dụng Chữ ký số thì văn bản cần phải được mã hoá qua hàm băm (là giải thuật
nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu; có thể là một chuỗi
ký tự, một đối tượng trong lập trình hướng đối tượng. Giá trị băm đóng vai gần
25

Số hóa bởi Trung tâm Học liệu


như một khoá để phân biệt các khối dữ liệu). Sau đó dùng khoá bí mật của người

chủ khoá để mã hoá, khi đó ta được Chữ ký số. Khi cần kiểm tra, bên nhận giải
mã với khoá công khai để lấy lại hàm băm và kiểm tra với hàm băm của văn
bản nhận được. Nếu hai giá trị 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 khoá bí mật.
- Tính toàn vẹn: Cả hai bên tham gia vào quá trình trao đổi 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. Quy trình mã hoá
sẽ ẩn nội dung đối với bên thứ ba.
- Tính không thể phủ nhận: Trong giao dịch, một bên có thể từ chối nhận
nộ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. Với công
nghệ hạ tầng mã hoá công khai sẽ đảm bảo chữ ký số khi được người dùng nào
đó tạo ra là duy nhất, không thể giả mạo được và chỉ có người sở hữu khoá bí
mật mới có thể tạo ra được chữ ký số đó (đã được chứng minh về mặt kỹ thuật
mã hoá).
* Điểm khác biệt giữa chữ ký thông thường (chữ ký viết tay) và chữ ký
số:
- Vấn đề ký một tài liệu: Với chữ ký thông thường, nó là một phần vật lý
của văn bản. Tuy nhiên, một chữ ký số không gắn theo kiểu vật lý vào văn bản
nên thuật toán được dùng phải “không nhìn thấy” theo cách nào đó trên văn bản.

×