Cài đặt thuật toán mã hóa và giải mã bằng kỹ thuật mã hóa khóa công khai
          
        
            
               
            
 
            
                
                    NGHIÊN CỨU KỸ THUẬT MÃ HÓA KHÓA CÔNG KHAI, 
CÀI ĐẶT THUẬT TOÁN MÃ HÓA VÀ GIẢI MÃ BẰNG KỸ 
THUẬT MÃ HÓA KHÓA CÔNG KHAI 
RESEARCH IN PUBLIC KEY CRYPTOGRAPHY , INSTALL ALGORITHM 
ENCRYPT AND DECRYPT BY PUBLIC KEY CRYPTOGRAPHY 
 
NGUYỄN TIẾN HOÀI NAM, NGUYỄN VĂN HUY, 
HÀ THỊ HưƠNG 
Lớp 06I, Trường Cao Đẳng Công Nghệ Thông Tin 
GVHD: THS. NGUYỄN ĐỨC HIỂN 
Bộ môn Công nghệ, Trường Cao Đẳng Công Nghệ Thông Tin 
 
TÓM TẮT 
Chúng ta phải thừa nhận rằng những rủi ro gặp phải trong quá trình giao dịch, kinh doanh trên 
mạng là hiện hữu; nguy cơ bị thay đổi, sao chép hoặc mất dữ liệu trên mạng thực sự một trở 
ngại trong giao dịch điện tử. Việc xác thực điện tử và kiểm tra tính toàn vẹn dữ liệu trong giao 
dịch điện tử là một trong các biện pháp đảm bảo an toàn thông tin; và vấn đề này là thật sự 
cần thiết và cấp bách. Đề tài “kỹ thuật mã hóa khóa công khai, cài đặt thuật toán mã hóa 
và giải mã bằng kỹ thuật mã hóa khóa công khai” của nhóm nghiên cứu sẽ tập trung vào 
hai nội dung chính: (1) Tìm hiểu về kỹ thuật mã hoá công khai, (2) Vận dụng kỹ thuật mã hoá 
công khai trong hệ thống mã hoá và xác thực điện tử. 
ABSTRACT 
We admit that risk at transaction, business on internet is real; the risk of changing, copy, or 
losing data on net is a big problem in electrical transation. Verifying in eletricity and checking 
the perfectly data in electrical exchange is one of the solutions which ensure safe information; 
This problem is necessary and immidiate. Our topic will mention 2 mains contents "Public 
Key Cryptography , install algorithm encrypt and decrypt by Public Key Cryptography ": 
(1) Researching in Public Key Cryptography, (2) Applying Public Key Cryptography into 
encrypt system and electrical verification. 
1. MỞ ĐẦU 
Ngày nay, các ứng dụng Công nghệ thông tin ngày càng phổ biến rộng rãi đã ảnh 
hưởng rất lớn đến diện mạo của đời sống, kinh tế, xã hội. Mọi công việc hàng ngày của chúng 
ta đều có thể thực hiện được từ xa với sự hổ trợ của máy vi tính và mạng internet (từ việc học 
tập, đi mua sắm, gửi thư đến việc đi chợ của một cô đầu bếp). Tất cả thông tin liên quan đến 
những công việc này đều do máy vi tính quản lý và truyền đi trên hệ thống mạng. Đối với 
những thông tin bình thường thì không có ai chú ý đến, nhưng đối với những thông tin mang 
tính chất sống còn đối với một số cá nhân (hay tổ chức) thì vấn đề bảo mật thật sự rất quan 
trọng. Nhiều tổ chức, cá nhân đã tìm kiếm và đưa ra nhiều giải pháp bảo mật; phương pháp mã 
hóa khóa công khai được xem là phương pháp có tính an toàn khá cao. 
 
Hình 1.1 – Mô hình trao đổi thông tin qua mạng theo cách thông thường. 
Thông thường việc trao đổi thông tin giữa hai người được mô tả ở hình 1.1, các bước 
thực hiện như sau: 
- Tạo ra thông tin cần gửi đi. 
- Gửi thông tin này cho các đối tác. 
Theo cách này thì chúng ta sẽ không thể quản lý được sự bí mật của thông tin và người 
thứ ba không mong muốn nào đó có thể đón được thông tin trên. Vì vậy ta có thể xây dựng 
một mô hình trao đổi thông tin bảo mật như ở hình 1.2, các bước thực hiện như sau: 
- Tạo ra thông tin cần gửi đi. 
- Mã hóa và gửi thông tin đã được mã hóa đi. 
- Đối tác giải mã thông tin nhận được. 
- Đối tác có được thông tin ban đầu của người gởi 
 
Hình 1.2 – Mô hình trao đổi thông tin theo phương pháp mã hóa khóa công khai. 
Phương pháp mã hóa khóa công khai sử dụng thuật toán RSA - thuật toán có khả năng 
giải quyết triệt để yêu cầu của mô hình trao đổi thông tin bảo mật trên. 
2. PHƯƠNG PHAP MA HOA KHOA CÔNG KHAI 
2.1. Khái niệm 
Phương pháp mã hoá công khai (Public Key Cryptography) đã giải quyết được vấn đề 
của phương pháp mã hoá khoá bí mật là sử dụng hai khoá public key và private key. Phương 
pháp này còn được gọi là mã hoá bất đối xứng (Asymmetric Cryptography) vì trong hệ sử 
dụng khoá mã hoá Ek và khoá giải mã Dk khác nhau (Ek # Dk). Trong đó , Ek được sử dụng để 
mã hoá nên có thể được công bố, nhưng khoá giải mã Dk phải được giữ bí mật. Nó sử dụng hai 
khoá khác nhau để mã hoá và giải mã dữ liệu. 
 Phương pháp này sử dụng thuật toán mã hoá RSA (tên ba nhà phát minh ra nó: Ron 
Rivest, Adi Shamir và Leonard Adleman) và thuật toán Diffie Hellman. 
2.2. Phát sinh khóa: 
 Có 2 kích cỡ khóa là: 1024 bit và 2048 
bit. 
 Khi người dùng đã chọn kích cỡ khóa 
và kích hoạt chức năng phát sinh khóa, 
chương trình sẽ phát sinh ra 1 cặp khóa 
gồm: khóa công khai sẽ được lưu ra file 
với phần mở rộng là .fpub và khóa bí mật 
sẽ được lưu ra file với phần mở rộng là 
.fpri. 
 
3. M̃ HOA V̀ GIAI M̃ THÔNG ĐIÊP BĂNG PHƯƠNG PHAP M̃ HOA KHOA 
CÔNG KHAI 
Hình 2.1 – Demo phát sinh khóa
                
              
                                            
                                
            
 
            
                 5 trang
5 trang | 
Chia sẻ: lvcdongnoi | Lượt xem: 3564 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Cài đặt thuật toán mã hóa và giải mã bằng kỹ thuật mã hóa khóa công khai, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008 
440 
NGHIÊN CỨU KỸ THUẬT MÃ HÓA KHÓA CÔNG KHAI, 
CÀI ĐẶT THUẬT TOÁN MÃ HÓA VÀ GIẢI MÃ BẰNG KỸ 
THUẬT MÃ HÓA KHÓA CÔNG KHAI 
RESEARCH IN PUBLIC KEY CRYPTOGRAPHY , INSTALL ALGORITHM 
ENCRYPT AND DECRYPT BY PUBLIC KEY CRYPTOGRAPHY 
NGUYỄN TIẾN HOÀI NAM, NGUYỄN VĂN HUY, 
HÀ THỊ HƢƠNG 
Lớp 06I, Trường Cao Đẳng Công Nghệ Thông Tin 
GVHD: THS. NGUYỄN ĐỨC HIỂN 
Bộ môn Công nghệ, Trường Cao Đẳng Công Nghệ Thông Tin 
TÓM TẮT 
Chúng ta phải thừa nhận rằng những rủi ro gặp phải trong quá trình giao dịch, kinh doanh trên 
mạng là hiện hữu; nguy cơ bị thay đổi, sao chép hoặc mất dữ liệu trên mạng thực sự một trở 
ngại trong giao dịch điện tử. Việc xác thực điện tử và kiểm tra tính toàn vẹn dữ liệu trong giao 
dịch điện tử là một trong các biện pháp đảm bảo an toàn thông tin; và vấn đề này là thật sự 
cần thiết và cấp bách. Đề tài “kỹ thuật mã hóa khóa công khai, cài đặt thuật toán mã hóa 
và giải mã bằng kỹ thuật mã hóa khóa công khai” của nhóm nghiên cứu sẽ tập trung vào 
hai nội dung chính: (1) Tìm hiểu về kỹ thuật mã hoá công khai, (2) Vận dụng kỹ thuật mã hoá 
công khai trong hệ thống mã hoá và xác thực điện tử. 
ABSTRACT 
We admit that risk at transaction, business on internet is real; the risk of changing, copy, or 
losing data on net is a big problem in electrical transation. Verifying in eletricity and checking 
the perfectly data in electrical exchange is one of the solutions which ensure safe information; 
This problem is necessary and immidiate. Our topic will mention 2 mains contents "Public 
Key Cryptography , install algorithm encrypt and decrypt by Public Key Cryptography ": 
(1) Researching in Public Key Cryptography, (2) Applying Public Key Cryptography into 
encrypt system and electrical verification. 
1. MỞ ĐẦU 
Ngày nay, các ứng dụng Công nghệ thông tin ngày càng phổ biến rộng rãi đã ảnh 
hƣởng rất lớn đến diện mạo của đời sống, kinh tế, xã hội. Mọi công việc hàng ngày của chúng 
ta đều có thể thực hiện đƣợc từ xa với sự hổ trợ của máy vi tính và mạng internet (từ việc học 
tập, đi mua sắm, gửi thƣ… đến việc đi chợ của một cô đầu bếp). Tất cả thông tin liên quan đến 
những công việc này đều do máy vi tính quản lý và truyền đi trên hệ thống mạng. Đối với 
những thông tin bình thƣờng thì không có ai chú ý đến, nhƣng đối với những thông tin mang 
tính chất sống còn đối với một số cá nhân (hay tổ chức) thì vấn đề bảo mật thật sự rất quan 
trọng. Nhiều tổ chức, cá nhân đã tìm kiếm và đƣa ra nhiều giải pháp bảo mật; phƣơng pháp mã 
hóa khóa công khai đƣợc xem là phƣơng pháp có tính an toàn khá cao. 
Hình 1.1 – Mô hình trao đổi thông tin qua mạng theo cách thông thường. 
Thông thƣờng việc trao đổi thông tin giữa hai ngƣời đƣợc mô tả ở hình 1.1, các bƣớc 
thực hiện nhƣ sau: 
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008 
441 
- Tạo ra thông tin cần gửi đi. 
- Gửi thông tin này cho các đối tác. 
Theo cách này thì chúng ta sẽ không thể quản lý đƣợc sự bí mật của thông tin và ngƣời 
thứ ba không mong muốn nào đó có thể đón đƣợc thông tin trên. Vì vậy ta có thể xây dựng 
một mô hình trao đổi thông tin bảo mật nhƣ ở hình 1.2, các bƣớc thực hiện nhƣ sau: 
- Tạo ra thông tin cần gửi đi. 
- Mã hóa và gửi thông tin đã đƣợc mã hóa đi. 
- Đối tác giải mã thông tin nhận đƣợc. 
- Đối tác có đƣợc thông tin ban đầu của ngƣời gởi 
Hình 1.2 – Mô hình trao đổi thông tin theo phương pháp mã hóa khóa công khai. 
Phƣơng pháp mã hóa khóa công khai sử dụng thuật toán RSA - thuật toán có khả năng 
giải quyết triệt để yêu cầu của mô hình trao đổi thông tin bảo mật trên. 
2. PHƯƠNG PHÁP MÃ HOÁ KHOÁ CÔNG KHAI 
2.1. Khái niệm 
Phƣơng pháp mã hoá công khai (Public Key Cryptography) đã giải quyết đƣợc vấn đề 
của phƣơng pháp mã hoá khoá bí mật là sử dụng hai khoá public key và private key. Phƣơng 
pháp này còn đƣợc gọi là mã hoá bất đối xứng (Asymmetric Cryptography) vì trong hệ sử 
dụng khoá mã hoá Ek và khoá giải mã Dk khác nhau (Ek # Dk). Trong đó , Ek đƣợc sử dụng để 
mã hoá nên có thể đƣợc công bố, nhƣng khoá giải mã Dk phải đƣợc giữ bí mật. Nó sử dụng hai 
khoá khác nhau để mã hoá và giải mã dữ liệu. 
 Phƣơng pháp này sử dụng thuật toán mã hoá RSA (tên ba nhà phát minh ra nó: Ron 
Rivest, Adi Shamir và Leonard Adleman) và thuật toán Diffie Hellman. 
2.2. Phát sinh khóa: 
 Có 2 kích cỡ khóa là: 1024 bit và 2048 
bit. 
 Khi ngƣời dùng đã chọn kích cỡ khóa 
và kích hoạt chức năng phát sinh khóa, 
chƣơng trình sẽ phát sinh ra 1 cặp khóa 
gồm: khóa công khai sẽ đƣợc lƣu ra file 
với phần mở rộng là .fpub và khóa bí mật 
sẽ đƣợc lƣu ra file với phần mở rộng là 
.fpri. 
3. MÃ HOÁ VÀ GIẢI MÃ THÔNG ĐIỆP BẰNG PHƯƠNG PHÁP MÃ HOÁ KHOÁ 
CÔNG KHAI 
Hình 2.1 – Demo phát sinh khóa 
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008 
442 
Bảo mật có vai trò quan trọng trong các giao dịch thông qua mạng máy tính có thể hiểu 
nhƣ việc ký kết vào một bức thƣ và đóng dấu lên phong bì. Nếu chữ ký chứng minh sự tin cậy 
của bức thƣ, thì phong bì đƣợc đóng dấu chứng minh cho sự bảo mật của bức thƣ. 
Khi gửi văn bản điện 
tử, nếu ngƣời gửi muốn chỉ có 
ngƣời cần gửi đọc đƣợc văn 
bản này thì văn bản phải đƣợc 
mã hoá bằng khoá công khai 
của ngƣời nhận. Khi đó văn 
bản đƣợc gửi đi là văn bản đã 
đƣợc mà hoá, ngƣời nhận 
muốn đọc đƣợc thì cần phải 
giải mã văn bản bằng khoá bí 
mật của mình. Qui trình gửi 
và nhận văn bản thể hiện ở 
hình 3.1. 
Khóa công khai và khóa 
bí mật có liên hệ toán học với nhau; về nguyên tắc, khóa này có thể đƣợc suy ra từ khóa kia và 
ngƣợc lại; tuy nhiên việc tính toán để tìm ra khóa bí mật từ một khóa công khai đối với ngƣời 
bình thƣờng đƣợc xem nhƣ không khả thi. Mỗi khóa sẽ đảm nhận những chức năng trái ngƣợc 
nhau. Khóa bí mật đƣợc sử dụng để ký và giải mã một thông điệp hay tài liệu, còn khóa công 
khai dùng để kiểm tra xác thực chữ ký và mã hóa thông tin. Khác với kỹ thuật mã hoá đối 
xứng, kỹ thuật mã hoá sử dụng cặp khóa không đối xứng có ƣu điểm hơn. Với kỹ thuật mã hoá 
này, việc mã hoá và giải mã không dùng chung một khoá, nên không cần phải chuyển khoá đi 
kèm theo văn bản; vì vậy không thể bị đánh cắp khóa trên đƣờng đi. Tuy vậy, nó có nhƣợc 
điểm là việc giải mã sẽ mất nhiều thời gian hơn. 
4. KÝ CHỮ KÝ VÀ XÁC THỰC CHỮ KÝ ĐIỆN TỬ 
4.1. Ký gửi chữ ký điện tử (Mã hóa): 
Khi một ngƣời muốn gửi cho ai 
đó một văn bản quan trọng, đòi hỏi văn 
bản phải đƣợc ký xác nhận chính danh 
ngƣời gửi văn bản; ngƣời gửi văn bản 
sẽ làm thực hiện quy trình ký chữ ký 
điện tử. 
Qui trình ký chữ ký điện tử sử 
dụng khoá công khai mô phỏng nhƣ ở 
hình 4.1, các bƣớc thực hiện nhƣ sau: 
Bước 1: Dùng giải thuật băm 
để thay đổi thông điệp cần truyền đi. 
Kết quả ta đƣợc một bản tin tóm lƣợc 
(Message Digest). Dùng giải thuật 
MD5 (Message Digest 5) ta đƣợc bản 
mã có chiều dài 128-bit. nếu dùng giải 
thuật SHA (Secure Hash Algorithm) ta có chiều dài 160-bit. 
 Bước 2: Sử dụng khóa bí mật (Private key) của ngƣời gửi để mã hóa Message Digest 
thu đƣợc ở bƣớc 1. Thông thƣờng ở bƣớc này ta dung giải thuật RSA. Kết quả thu đƣợc gọi là 
chữ ký điện tử của thông điệp ban đầu. 
Hình 3.1 – Mô hình mã hóa và giải mã bản tin điện tử. 
Hình 4.1 – Sơ đồ quá trình ký vào tài liệu điện tử dùng 
Private Key 
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008 
443 
Hình 4.2 – Demo ký chữ 
ký điện tử. 
 Bước 3: Gộp chữ ký điện tử vào bản 
tin điện tử ban đầu. Việc này gọi là “ký xác 
nhận” vào thông điệp. Sau khi đã ký xác 
nhận vào thông điệp, mọi sự thay đổi trên 
thông điệp sẽ bị phát hiện trong giai đoạn 
kiểm tra. Ngoài ra, việc ký xác nhận này 
đảm bảo ngƣời nhận tin tƣởng thông điệp 
này xuẩt phát từ ngƣời gửi. 
4.2. Xác thực chứ ký điện tử (giải mã) 
Sau khi nhận đƣợc một văn bản có 
đính kèm chữ ký của ngƣời gửi, ngƣời nhận 
văn bản phải giải mã trở lại văn bản trên và 
kiểm tra xem văn bản này đã bị thay đổi bởi 
một ngƣời thứ ba chƣa, và chữ ký đính kèm 
trên văn bản có đúng của ngƣời gửi hay 
không (kiểm tra “chính danh”). 
Quy trình giải mã và kiểm tra thể 
hiện ở hình 4.3, các bƣớc 
thực hiện nhƣ sau: 
Bước 1: Bản tin 
điện tử có đính kèm chữ 
ký của ngƣời gửi, sau khi 
nhận sẽ đƣợc tách riêng 
phần chữ ký và phần văn 
bản nguyên vẹn. Sử dụng 
khóa công khai (Public 
key) của ngƣời gửi (khóa 
này đƣợc thông báo đến 
mọi ngƣời) để giải mã chữ 
ký điện tử của thông điệp, 
kết quả là bản tin tóm 
lƣợc. 
Bước 2: Dùng giải 
thuật băm MD5 (hoặc SHA) để băm 
văn bản đã tách phần chữ ký điện tử, 
kết quả thu đƣợc là bản tin tóm lƣợc 
thứ 2. 
Bước 3: So sánh 2 bản tin tóm 
lƣợc thu đƣợc ở bƣớc 1 và 2. Nếu 
trùng nhau, ta kết luận thông điệp 
này không bị thay đổi trong quá 
trình truyền tin và xác nhận thông 
điệp này là của ngƣời gửi. 
Hình 4.4 – Demo xác thực chữ ký điện tử 
Hình 4.3 – Sơ đồ quá trình xác thực điện tử dùng Public Key. 
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008 
444 
5. KẾT LUẬN 
Việc sử dụng cặp khóa không đối xứng tuy có nhƣợc điểm là quá trình giải mã nhiều 
thời gian, nhƣng với hệ mã này, bài toán giữ bí mật không những giải quyết mà còn đƣợc ứng 
dụng rộng rãi, đảm bảo đƣợc bốn nội dung cơ bản là: tính bí mật, tính toàn vẹn, tính xác thực 
và tính trách nhiệm. 
Từ các kết quả trên cho thấy rằng khi dùng thuật toán RSA để mã hóa các thông tin và 
chứng thực trong giao dịch điện tử, với mục đích bảo mật và đảm bảo tính xác thực thì: 
- Đỡ tốn công sức đầu tƣ cho hạ tầng bảo mật 
- Độ bảo mật của thông tin tỉ lệ thuận với độ dài của khóa. 
- Chiều dài của khóa 2048 bit tỏ ra là hiệu quả cho đến lúc bấy giờ. 
- Tận dụng đƣợc tốc độ của máy tính trong việc mã hóa, giả mã và xác thực. 
Do điều kiện thời gian hạn hẹp và khả năng còn hạn chế, nên ứng dụng còn nhiều điểm 
chƣa phù hợp, chƣa đáp ứng đƣợc yêu nhu cầu sử dụng. Nhóm đề tài rất mong nhận đƣợc 
nhiều ý kiến đóng góp để có thể phát triển thành ứng dụng hoàn thiện, phục vụ cho mục đích 
mã hoá và chứng thực trong giao dịch điện tử. 
TÀI LIỆU THAM KHẢO 
[1] PGS.TS Hồ Thuần (2000), Giáo trình “Lý thuyết mật mã và an toàn dữ liệu”, Trƣờng Đại 
học Bách Khoa Hà Nội. 
[2] TG. Nguyễn Ngọc Bình Phƣơng – Thái Thanh Phong,Giáo trình điện tử “Các giải pháp 
lập trình C#”,tr. 549-582. 
            Các file đính kèm theo tài liệu này:
 Cài đặt thuật toán mã hóa và giải mã bằng kỹ thuật mã hóa khóa công khai.pdf Cài đặt thuật toán mã hóa và giải mã bằng kỹ thuật mã hóa khóa công khai.pdf