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 |
Chia sẻ: lvcdongnoi | Lượt xem: 3282 | 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