luận văn về 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 công khai
Trang 1NGHIÊ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
Trang 2- 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
Trang 3Bả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
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
Trang 4Hì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.3 – Sơ đồ quá trình xác thực điện tử dùng Public Key
Trang 55 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