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

pdf5 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3112 | Lượt tải: 1download
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:

  • pdfCà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
Luận văn liên quan