Đăng ký Đăng nhập
Trang chủ 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 ...

Tài liệu 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ử

.PDF
70
4
80

Mô tả:

.. 1 ĐẠ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 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 2 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 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 3 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. Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 4 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. Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 5 - 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. Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 6 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. Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 7 - 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) Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 8 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. Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 9 - Đ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 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 10 để 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á Số hóa bởi Trung tâm Học liệu Giải mã Bản rõ http://www.lrc-tnu.edu.vn/ 11 Khoá Khoá bí công khai mật 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 đó. Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 12 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 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 13 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ó: Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 14 - 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) = Mei (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ã Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 15 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) = Cid (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 me ≡ 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 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 16 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* Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 17 - 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 = gx (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). Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 18 - 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 = gk mod p và Ci2 = Mi * yk 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: Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 19 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 = ak 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: Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 20 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 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Xem thêm -

Tài liệu liên quan