Nghiên cứu các thuật toán mã hóa khóa công khai và ứng dụng trong chữ ký điện tử

65 1.7K 10
Nghiên cứu các thuật toán mã hóa khóa công khai và ứng dụng trong chữ ký điện tử

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CNTT & TT THÁI NGUYÊN Trƣơng Mạnh Cƣờng LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH NGHIÊN CỨU CÁC THUẬT TOÁN HÓA KHÓA CÔNG KHAI ỨNG DỤNG TRONG CHỮ ĐIỆN TỬ Chuyên ngành: KHOA HỌC MÁY TÍNH số: 60 48 01 THÁI NGUYÊN - 2014 Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CNTT & TT THÁI NGUYÊN Trƣơng Mạnh Cƣờng LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH NGHIÊN CỨU CÁC THUẬT TOÁN HÓA KHÓA CÔNG KHAI ỨNG DỤNG TRONG CHỮ ĐIỆN TỬ GIÁO VIÊN HƢỚNG DẪN PGS.TS BÙI THẾ HỒNG THÁI NGUYÊN - 2014 Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ MỤC LỤC DANH MỤC CÁC CHỮ TIẾNG ANH VIẾT TẮT 5 DANH MỤC CÁC HÌNH 6 MỞ ĐẦU 7 1. Lý do nghiên cứu đề tài 7 7 8 8 8 CHƢƠNG 1. TỔNG QUAN VỀ CÁC THUẬT TOÁN HÓA KHÓA CÔNG KHAI 9 1.1 Khái niệm hóa khóa công khai 9 1.1.1 Mật hóa khóa đối xứng 9 1.1.2 Mật hóa khóa công khai 9 1.2 Các thuật toán mật hóa khóa công khai 13 1.2.1 Thuật toán RSA 13 1.2.2 Trao đổi thỏa thuận khóa Diffie-Hellman 17 1.2.3 Hệ ElGammal 19 1.3 So sánh ƣu nhƣợc điểm của các thuật toán 21 1.3.1 Ưu điểm 21 1.3.2 Hạn chế 22 CHƢƠNG 2: HÀM BĂM CHỮ ĐIỆN TỬ 24 2.1 Hàm băm 24 2.1.1 Tổng quan về hàm băm 24 2.1.2 Một số hàm băm được sử dụng phổ biến 29 2.1.2.1 Họ hàm băm SHA (Secure Hash Algorithm) 29 2.1.2.2 Họ hàm băm MD (Message-Digest algorithm) 32 2.2 Chữ điện tử 39 2.2.1 Tổng quan về chữ điện tử 39 2.2.2 Định nghĩa chữ điện tử 42 Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ 2.2.3 Một số qui ước trong chữ điện tử 43 2.3 Những vấn đề trao đổi cặp khóa đặt ra trong thực tế 44 2.3.1 Sự tương tự với bưu chính 44 2.3.2 Mối quan hệ giữa khóa công khai với thực thể sở hữu khóa . 47 2.3.3 Các vấn đề liên quan tới thời gian thực 47 CHƢƠNG 3: XÂY DỰNG ỨNG DỤNG 52 3.1 Phát triển ứng dụng 52 3.1.1 Sơ đồ hệ thống chức năng của ứng dụng 52 3.1.1.1 Sơ đồ hệ thống 52 3.1.1.2 Chức năng của ứng dụng 53 3.1.2 Phân tích ứng dụng 54 3.1.2.1 Tạo khóa công khai bí mật bằng thuật toán RSA 54 3.1.2.2 Băm dữ liệu bằng hàm băm MD5 54 3.1.3.3 hóa giá trị băm bằng khóa bí mật 54 3.1.4.4 Giải bằng khóa công khai kiểm tra tính toàn vẹn của văn bản 54 3.2. Cài đặt ứng dụng 55 3.2.1. Giới thiệu chương trình 55 3.2.2. Một số giao diện chính trong chương trình 55 3.2.2.1 Giao diện chương trình 55 3.2.2.2 Tạo file khóa công khai bí mật, lưu file khóa 56 3.2.2.3 Lựa chọn văn bản 56 3.2.2.4 văn bản 57 3.2.2.5 Giải chữ 57 58 GIẢI THÍCH MỘT SỐ THUẬT NGỮ 59 TÀI LIỆU THAM KHẢO 60 Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC CHỮ TIẾNG ANH VIẾT TẮT NIST National Institute of Standards and Technology RSA R. Rivest, A. Shamir, L. Adleman MITM Man-In-The-Middle attack MD Message-Digest algorithm SHA Secure Hash Algorithm MAC Message Authentication Code PKCS Public Key Cryptography Standards Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC HÌNH STT TÊN HÌNH TRANG 1 Hình 1.1: Kênh liên lạc 9 2 Hình 2.1: Hoạt động của một hàm băm tiêu biểu 21 3 Hình 2.2: Mô hình gửi thông điệp sử dụng hàm băm 25 4 Hình 2.3: Mô hình xác minh chữ ký, kiểm tra tính toàn vẹn của thông điệp 26 5 Hình 2.4: Mô hình chữ điện tử 40 6 Hình 3.1: Sơ đồ hệ thống ứng dụng 53 7 Hình 3.2: Giao diện chương trình 55 8 Hình 3.3: Giao diện tao cặp khóa 56 9 Hình 3.4: Giao diện lựa chọn văn bản cần 56 10 Hình 3.5: Giao diện văn bản đã lựa chọn bằng khóa bí mật 57 11 Hình 3.6: Giao diện giải văn bản đã bằng khóa công khai 57 Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ MỞ ĐẦU 1. Lý do nghiên cứu đề tài Bảo mật thông tin luôn là nhu cầu cần thiết trong các lĩnh vực tình báo, quân sự, ngoại giao, thông tin thương mại. Bảo mật thông tin cũng là một vấn đề đã được nghiên cứu từ xưa đến nay. Bảo mật thông tin là duy trì tính bảo mật, tính toàn vẹn, tính sẵn sàng. Tính bảo mật là đảm bảo thông tin chỉ được tiếp cận bởi những người được cấp quyền trao đổi thông tin. Tính toàn vẹn của thông tin là bảo vệ sự chính xác, hoàn chỉnh của thông tin thông tin chỉ được thay đổi bởi những người được cấp quyền. Tính sẵn sàng của thông tin là những người được quyền sử dụng có thể truy xuất thông tin khi họ cần. Để đảm bảo được các yêu cầu về thông tin trên thì rất nhiều người trong nước thế giới đang tập trung nghiên cứu tìm mọi giải pháp để đảm bảo an toàn, an ninh cho các giao dịch điện tử trên máy tính. Giao dịch điện tử ở Việt Nam hiện nay đã đang được quan tâm. Những giao dịch điện tử xuất hiện cùng với sự phổ dụng của máy tính mạng Internet. Đã có những luật, văn bản dưới luật cho lĩnh vực an toàn thông tin trong giao dịch điện tử như: Quốc hội thông qua luật thương mại, luật giao dịch điện tử Thủ tướng Chính phủ đã ban hành Quyết định số 1073/QĐ-TTg ngày 12/7/2010 phê duyệt kế hoạch tổng thể phát triển thương mại điện tử giai đoạn 2010 – 2015 Cùng với xu thế chung của đất nước, cũng là yêu cầu đặt ra với chính công việc của mình, học viên đã chọn đề tài về an toàn thông tin, ở đây cụ thể là áp dụng các thuật toán hóa khóa công khai, hàm băm, chữ điện tử, làm mục tiêu nghiên cứu. Mong muốn những tìm tòi của mình có thể xây dựng được ứng dụng phục vụ cho cơ quan, đơn vị nơi học viên công tác. 2. Nghiên cứu các giải thuật hóa khóa công khai. Nghiên cứu về chữ điện tử, tìm hiểu về hàm băm các giải thuật về hàm băm. Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ Cài đặt thử nghiệm một giải thuật sinh chữ điện tử. Một số thuật toán sinh khóa công khai, khóa bí mật; Một số hàm băm thường sử dụng hiện nay; Chữ điện tử. 4. Ph Tìm hiểu dựa trên cơ sở lý thuyết, các thuật toán hay về sinh khóa công khai, khóa bí mật đã có từ trước. So sánh để thấy những ưu điểm, những hạn chế của từng thuật toán. Từ cơ sở đó có thể cải tiến, hoặc triển khai ứng dụng cài đặt một giải thuật tối ưu nhất vào thực tiễn. Trong quá trình triển khai ứng dụng nêu lên những hạn chế của đề tài những khó khăn trong thực hiện đề tài. Đề xuất hướng phát triển của đề tài trong thời gian tới. ăn Ngoài phần mở đầu kết luận đề tài có cơ cấu gồm 3 chương: Chương 1 : Tổng quan về các thuật toán hóa khóa công khai Chương 2: Hàm băm chữ điện tử Chương 3: Xây dựng ứng dụng. Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ CHƢƠNG 1. TỔNG QUAN VỀ CÁC THUẬT TOÁN HÓA KHÓA CÔNG KHAI 1.1 Khái niệm hóa khóa công khai 1.1.1 Mật hóa khóa đối xứng Trong mật học, các thuật toán khóa đối xứng (symmetric key algorithms) là một lớp các thuật toán mật hóa trong đó các khóa dùng cho việc mật hóa giải có quan hệ rõ ràng với nhau (có thể dễ dàng tìm được một khóa nếu biết khóa kia). Khóa dùng để hóa có liên hệ một cách rõ ràng với khóa dùng để giải có nghĩa chúng có thể hoàn toàn giống nhau, hoặc chỉ khác nhau nhờ một biến đổi đơn giản giữa hai khóa. Trên thực tế, các khóa này đại diện cho một bí mật được phân hưởng bởi hai bên hoặc nhiều hơn được sử dụng để giữ gìn sự bí mật trong kênh truyền thông tin Thuật toán đối xứng có thể được chia ra làm hai thể loại, mật luồng (stream ciphers) mật khối (block ciphers). Mật luồng hóa từng bit của thông điệp trong khi mật khối gộp một số bit lại mật hóa chúng như một đơn vị. Cỡ khối được dùng thường là các khối 64 bit. Những thuật toán hóa khóa đối xứng nổi tiếng là DES AES. Các thuật toán đối xứng thường không được sử dụng độc lập. Trong thiết kế của các hệ thống mật hiện đại, cả hai kiểu mật hóa khóa đối xứng khóa bất đối xứng thường được sử dụng phối hợp để tận dụng các ưu điểm của chúng. 1.1.2 Mật hóa khóa công khai Là một dạng mật hóa cho phép người sử dụng trao đổi các thông tin mật không cần phải trao đổi các khóa chung bí mật trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai khóa cá nhân (hay khóa bí mật). Thuật ngữ "mật hóa khóa bất đối xứng" thường được dùng đồng nghĩa với "mật hóa khóa công khai" mặc dù hai khái niệm không hoàn toàn tương đương. Có những thuật toán mật khóa bất đối xứng không có Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ tính chất khóa công khai bí mật như đề cập ở trên cả hai khóa (cho hóa giải mã) đều cần phải giữ bí mật. Trong mật hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để hóa khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai. Hệ thống mật hóa khóa công khai có thể sử dụng với các mục đích: hóa: giữ bí mật thông tin chỉ có người có khóa bí mật mới giải được. Tạo chữ số: cho phép kiểm tra một văn bản có phải đã được tạo với một khóa bí mật nào đó hay không. Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật giữa 2 bên. Thông thường, các kỹ thuật mật hóa khóa công khai đòi hỏi khối lượng tính toán nhiều hơn các kỹ thuật hóa khóa đối xứng nhưng những lợi điểm chúng mang lại khiến cho chúng được áp dụng trong nhiều ứng dụng. Có thể hình dung hệ mật này tương tự như sau. A đặt một vật vào một hộp kim loại rồi khoá nó lại bằng một khoá số do B để lại. Chỉ có B là người duy nhất có thể mở được hộp vì chỉ có người đó mới biết tổ hợp của khoá số của mình. Thuật toán hóa công khaithuật toán được thiết kế sao cho khóa hóa là khác so với khóa giải mã. khóa giải hóa không thể tính toán được từ khóa hóa. Khóa hóa gọi là khóa công khai (public key), khóa giải được gọi là khóa riêng (private key). [...]... thuật toán mật nói chung, các thuật toán hóa khóa công khai cần phải được sử dụng một cách thận trọng 1.2 Các thuật toán mật hóa khóa công khai 1.2.1 Thuật toán RSA Thuật toán được Ron Rivest, Adi Shamir Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT) Tên của thuật toán lấy từ 3 chữ cái đầu của tên 3 tác giả Thuật toán RSA có hai khóa: khóa công khai. .. (hay khóa công cộng) khóa bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trong quá trình hóa giải Khóa công khai được công bố rộng rãi cho mọi người được dùng để hóa Những thông tin được hóa bằng khóa công khai chỉ có thể được giải bằng khóa bí mật tương ứng Nói cách khác, mọi người đều có thể hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã. .. http://www.lrc-tnu.edu.vn/ Vấn đề về độ an toàn của thuật toán mật hóa khóa công khai Về khía cạnh an toàn, các thuật toán mật hóa khóa bất đối xứng cũng không khác nhiều với các thuật toán hóa khóa đối xứng Có những thuật toán được dùng rộng rãi, có thuật toán chủ yếu trên lý thuyết; có thuật toán vẫn được xem là an toàn, có thuật toán đã bị phá vỡ Cũng cần lưu ý là những thuật toán được dùng rộng rãi không phải... việc lưu trữ các khóa cũng lớn Với hệ ElGammal chúng ta cần gấp đôi bộ nhớ để chứa bản so với các hệ khác Ngoài ra do việc sử dụng các số nguyên tố nên việc sinh khóa quản lý khóa cũng khó khăn hơn so với các hệ khối Trên thực tế các hệ khóa công khai thường được sử dụng kết hợp với các hệ khối (mã hóa khóa của hệ mã) hoặc để hóa các thông tin có dung lượng nhỏ là một phần... Oscar Bộ hóa Bộ giải Khóa hóa A Khóa giải B Đặc trưng nổi bật của hệ hóa công khai là cả khóa công khai (public key) bản tin hóa (ciphertext) đều có thể gửi đi trên một kênh thông tin không an toàn Trong hầu hết lịch sử mật học, khóa dùng trong các quá trình hóa giải phải được giữ bí mật cần được trao đổi bằng một phương pháp an toàn khác (không dùng mật mã) như gặp... Diffie-Hellman Thuật toán thỏa thuận khóa Diffie-Hellman là một thuật toán dùng để trao đổi khóa chứ không dùng để mật hóa dữ liệu Tuy nhiên DiffieHellman lại có ích trong giai đoạn trao đổi khóa bí mật của các thuật toán mật đối xứng Thuật toán thỏa thuận khóa Diffie-Hellman thúc đẩy việc nghiên cứu đề xuất các khoá công khai, một trong những vấn đề quan Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/... 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 khóa của mình đọc thông tin trong thư Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìa khóa chính là khóa bí mật Tạo khóa Giả sử A B cần trao đổi thông tin bí mật thông qua một kênh không an toàn (ví dụ như Internet) Với thuật toán RSA, A đầu tiên cần tạo ra cho mình cặp khóa gồm khóa công. .. dàng nhân các số tự nhiên nhưng Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ phân tích kết quả ra thừa số nguyên tố thì không hề đơn giản Đây chính là nguyên tắc cơ bản của thuật toán mật hóa khóa công khai RSA mặc dù tác giả không phải là người phát minh ra mật hóa khóa công khai Thuật toán mật hóa khóa công khai được thiết kế đầu tiên bởi James H Ellis, Clifford Cocks, Malcolm... phối khóa công khai Trao đổi khóa Diffie-Hellman là phương pháp có thể áp dụng trên thực tế đầu tiên để phân phối khóa bí mật thông qua một kênh thông tin không an toàn Kỹ thuật thỏa thuận khóa của Merkle có tên là hệ thống câu đố Merkle Thuật toán đầu tiên cũng được Rivest, Shamir Adleman tìm ra vào năm 1977 tại MIT Công trình này được công bố vào năm 1978 thuật toán được đặt tên là RSA RSA sử dụng. .. phép toán tính hàm mũ môđun (môđun được tính bằng tích số của 2 số nguyên tố lớn) để hóa giải cũng như tạo chữ số An toàn của thuật toán được đảm bảo với điều kiện là không tồn tại kỹ thuật hiệu quả để phân tích một số rất lớn thành thừa số nguyên tố Kể từ thập kỷ 1970, đã có rất nhiều thuật toán hóa, tạo chữ số, thỏa thuận khóa được phát triển Các thuật toán như ElGamal (mật mã) do . khóa công khai 9 1.1.1 Mật mã hóa khóa đối xứng 9 1.1.2 Mật mã hóa khóa công khai 9 1.2 Các thuật toán mật mã hóa khóa công khai 13 1.2.1 Thuật toán RSA 13 1.2.2 Trao đổi và thỏa thuận khóa. CHƢƠNG 1. TỔNG QUAN VỀ CÁC THUẬT TOÁN MÃ HÓA KHÓA CÔNG KHAI 1.1 Khái niệm mã hóa khóa công khai 1.1.1 Mật mã hóa khóa đối xứng Trong mật mã học, các thuật toán khóa đối xứng (symmetric key algorithms). mật. Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã. Điều

Ngày đăng: 15/06/2014, 20:47

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan