Đề tài " Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa "
lượt xem 101
download
Ngày nay, các ứng dụng của công nghệ thông tin ngày càng không thể thiếu được đối với các thành phần như xã hội, kinh tế, chính trị, quân sự... Một lĩnh vực quan trọng mà công nghệ thông tin được ứng dụng rất mạnh mẽ và không thể thiếu đó là lĩnh vực truyền thông. Rất nhiều thông tin liên quan đến những công việc hàng ngày đều do máy vi tính quản lý và truyền gửi đi trên hệ thống mạng, kéo theo đó là vấn đề về xác thực nguồn thông tin nhận được. Và vấn đề...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Đề tài " Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa "
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. Luận văn Đề tài " Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa " 1 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. Mục lục khóa luận Phần 1: Tìm hiểu lịch sử về an toàn thông tin, chứng thực thông tin và chữ ký điện tử. .......... 8 Phần 2: Nội dung. ................................................................................................................ 11 I. Tổng quan về chứng thực và an toàn thông tin. ................................................................. 11 II. Mã hóa dữ liệu và giải mã .............................................................................................12 a. Tổng quan về mã hóa dữ liệu và giải mã: ...................................................................12 b. Mã hóa bất đối xứng (asymmetric). ...........................................................................14 c. Mã hóa đối xứng (symmetric). ....................................................................................16 d. Hàm băm (Hashing) ...................................................................................................18 - Tính chất của hàm băm ............................................................................................19 - Một số hàm băm nổi tiếng .......................................................................................20 + MD5 (Message Digest) .......................................................................................20 + SHA (Secure Hash Algorithm) ............................................................................26 III. Chữ ký điện tử .............................................................................................................29 1. Tổng quan..................................................................................................................29 2. Quy trình sử dụng chữ ký điện tử ...............................................................................31 3. Một số sơ đồ CKĐT phổ biến ....................................................................................33 a. Rivest Shamir Adleman (RSA) ...............................................................................33 - Sơ lược về các khái niệm toán học dùng trong RSA. ............................................33 - Cách tạo khóa: .....................................................................................................35 - Quy trình thực hiện ký và xác nhận văn bản. ........................................................36 - Tính bảo mật........................................................................................................38 - Các dạng tấn công................................................................................................39 b. Hệ chữ ký ElGammal .............................................................................................41 c. Chuẩn chữ kí số (DSS) ...........................................................................................45 4. Hàm băm và kết hợp hàm băm vào chữ ký điện tử. ....................................................48 IV. Cài đặt minh họa sơ đồ ký số RSA kết hợp băm SHA. .................................................48 + Các bước thực hiện của chương trình. .........................................................................48 a. Phát sinh khóa: .......................................................................................................48 b. Ký chữ ký điện tử: .................................................................................................48 c. Xác thực chứ ký điện tử. .......................................... Error! Bookmark not defined. + Cài đặt chương trình minh họa bằng ngôn ngữ C#. ....... Error! Bookmark not defined. - Một số vấn đề chú ý khi thực hiện Ký và Xác nhận: .. Error! Bookmark not defined. - Một số hàm sử dụng trong chương trình...................................................................48 - Giao diện của chương trình: .....................................................................................50 Phần 3. Kết luận: .................................................................................................................. 51 + Những phần đã làm được. ...............................................................................................51 + Những phần chưa làm được ............................................................................................51 + Hướng phát triển của đề tài. ............................................................................................51 + Tài liệu tham khảo ..........................................................................................................52 + Phụ lục ...........................................................................................................................52 2 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. Danh mục từ viết tắt: - RSA: Rivest Shamir Adleman - SHA: Secure Hash Algorithm - MD5: Message Digest CKĐT: Chữ ký điện tử - CA: Certificate Authority - ủy quyền chứng chỉ - UCLN: Ước chung lớn nhất - Liên hệ mail: Hainhat007@gmail.com or đt: 0982.070.520 để lấy bài + Code đầy đủ và chi tiết hơn! 3 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. A. PHẦN MỞ ĐẦU 1. Lí do chọn đề tài Ngày nay, các ứng dụng của công nghệ thông tin ngày càng không thể thiếu được đối với các thành phần như xã hội, kinh tế, chính trị, quân sự... Một lĩnh vực quan trọng mà công nghệ thông tin được ứng dụng rất mạnh mẽ và không thể thiếu đó là lĩnh vực truyền thông. Rất nhiều thông tin liên quan đến những công việc hàng ngày đều do máy vi tính quản lý và truyền gửi đi trên hệ thống mạng, kéo theo đó là vấn đề về xác thực nguồn thông tin nhận được. Và vấn đề được đặt ra là làm thế nào để xác thực được một cách chính xác nguồn thông tin nhận là của một người, một máy chủ hay của một thực thể nào đó gửi tin trên hệ thống mạng? A D INTERNET B Hình 1.1 – Mô hình trao đổi thông tin qua mạng INTERNET. Ví dụ: khi A gửi một thông tin điện tử cho D, và giả sử B “giả mạo” A cũng gửi một thông tin cho D, hoặc một người C trên môi trường truyền bắt được và sửa đổi thông tin A gửi sau đó các thông tin này được gửi lại cho D. Vậy thông tin D nhận 4 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. được không chính xác và người nhận D cũng không thể xác thực được thông tin đó là do người A gửi, hay B gửi, hay một người nào khác gửi. Vấn đề đặt ra là người D sau khi nhận được bản tin phải xác thực được rằng thông tin là của chính một đối tượng cụ thể gửi và thông tin không bị tiết lộ cũng như bị không thay đổi trên môi trường truyền thông. Đề tài “TÌM HIỂU VỀ CHỮ KÝ ĐIỆN TỬ VÀ CÀI ĐẶT CHƯƠNG TRÌNH MINH HỌA” sẽ tìm hiểu vấn đề nêu trên và cài đặt chương trình ký số minh họa. 2. Mục đích nghiên cứu Tìm hiểu cơ sở lý luận về chứng thực thông tin, chữ ký điện tử, cài đặt chương trình ký số kết hợp RSA và hàm Băm. 3. Nhiệm vụ nghiên cứu - Nghiên cứu cơ sở lý luận về chứng thực thông tin. - Tìm hiểu về chữ ký điện tử. - Tìm hiểu về các phương thức mã hóa dữ liệu cơ bản. - Tìm hiểu phương thức mã hóa bất đối xứng sử dụng cho chữ ký điển tử. - Tìm hiểu về hàm băm. - Cài đặt chương trình minh họa. 4. Đối tượng nghiên cứu - Cơ sở lý luận về chứng thực thông tin. - Hệ mã hóa công khai RSA. - Hàm băm kết hợp cho chữ ký điện tử. 5. Phạm vi nghiên cứu 5 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. Nghiên cứu lý thuyết về chứng thực thông tin, hệ mã hóa công khai RSA, hàm băm SHA và cài đặt chương trình minh họa. 6. Phương pháp nghiên cứu - Hoạt động nghiên cứu cá nhân - Hoạt động nghiên cứu tài liệu - Trao đổi với giảng viên hướng dẫn 7. Cấu trúc khóa luận Gồm 5 phần chính: 1. Phần mở đầu 2. Phần nội dung 3. Phần kết luận 4. Phần tài liệu tham khảo 5. Phần phụ lục A. Phần mở đầu: Lý do chọn đề tài Mục đích nghiên cứu Nhiệm vụ nghiên cứu Đối tượng nghiên cứu Phạm vi nghiên cứu Phương pháp nghiên c ứu Cấu trúc khóa luận B. Phần nội dung: Gồm 2 Phần: Phần 1: Tìm hiểu lịch sử về an toàn thông tin, chứng thực thông tin, chữ ký điện tử. 6 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. Phần 2: Nội dung. I. Tổng quan về chứng thực và an toàn thông tin. II. Mã hóa dữ liệu và giải mã a. Tổng quan về mã hóa dữ liệu. b. Mã hóa bất đối xứng (asymmetric). c. Mã hóa đối xứng (symmetric). d. Hàm băm (Hashing) III. Chữ ký điện tử 1. Tổng quan a. Tổng quan về chữ ký điện tử b. Quy trình sử dụng chữ ký điện tử 2. Một số sơ đồ CKĐT phổ biến a. Rivest Shamir Adleman (RSA). b. Sơ đồ ký số El Gamal. c. Chuẩn chữ kí số (DSS) 3. Hàm băm và kết hợp hàm băm vào chữ ký điện tử. IV. Cài đặt minh họa sơ đồ ký số RSA kết hợp băm SHA. + Các bước thực hiện của chương trình. + Cài đặt chương trình minh họa bằng ngôn ngữ C#. C. Phần kết luận: + Những phần đã làm được 7 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. + Những phần chưa làm được + Hướng phát triển của đề tài. - Tài liệu tham khảo - Phụ lục Phần 1: Tìm hiểu lịch sử về an toàn thông tin, chứng thực thông tin và chữ ký điện tử. Nhu cầu về bảo đảm an toàn thông tin đã xuất hiện từ rất sớm, khi con người biết trao đổi và truyền đưa thông tin cho nhau, đặc biệt khi các thông tin đó đã được thể hiện dưới hình thức ngôn ngữ, thư từ. Lịch sử cho ta biết, các hình thức mật mã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại. Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi trên khắp thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao. Mật mã trước hết là một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông tin (chẳng hạn dưới dạng một văn bản). Suốt mấy nghìn năm lịch sử, các thông báo, thư từ được truyền đưa và trao đổi với nhau thường là các văn bản, tức là có dạng các dãy ký tự trong một ngôn ngữ nào đó. Vì vậy, các thuật toán lập mật mã thường cũng đơn giản là thuật toán xáo trộn, thay đổi các ký tự được xác định bởi các phép chuyển dịch, thay thế hay hoán vị các ký tự trong bảng ký tự của ngôn ngữ tương ứng, khóa mật mã là thông tin dùng để thực hiện phép lập mật mã và giải mật mã cụ thể, thí dụ như số vị trí đối với phép chuyển dịch, bảng xác định các cặp ký tự tương ứng đối với phép thay thế hay hoán vị,... Mật mã chưa phải là một khoa học, do đó chưa có nhiều kiến thức sách vở để lại, tuy nhiên hoạt động bảo mật và thám mã trong lịch sử các cuộc đấu tranh chính trị, ngoại giao và quân sự thì hết sức phong phú, và mật mã đã có nhiều tác động rất quan trọng đưa đến những kết quả lắm khi có ý nghĩa quyết định trong 8 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. các cuộc đấu tranh đó. Do trong một thời gian dài, bản thân hoạt động mật mã cũng được xem là một bí mật, nên các tài liệu kỹ thuật về mật mã được phổ biến đến nay thường chỉ ghi lại các kiến thức kinh nghiệm, thỉnh thoảng mới có một vài "phát minh" như các hệ mật mã Vigenère vào thế kỷ 16 hoặc hệ mật mã Hill ra đời năm 1929 là các hệ mã thực hiện phép chuyển dịch (đối với mã Vigenère) hay phép thay thế (mã Hill) đồng thời trên một nhóm ký tự chứ không phải trên từng ký tự riêng rẽ. [2 - tr12,13] Bước sang thế kỷ 20, vào những thập niên đầu của thế kỷ. Sự phát triển của các kỹ thuật biểu diễn, truyền và xử lý tín hiệu đã có tác động giúp cho các hoạt động lập và giải mật mã từ thủ công chuyển sang cơ giới hóa rồi điện tử hóa. Các văn bản, các bản mật mã trước đây được viết bằng ngôn ngữ thông thường nay được chuyển bằng kỹ thuật số thành các dãy tín hiệu nhị phân, tức các dãy bit, và các phép biến đổi trên các dãy ký tự được chuyển thành các phép biến đổi trên các dãy bit, hay các dãy số, việc thực hiện các phép lập mã, giải mã trở thành việc thực hiện các hàm số số học. Toán học và kỹ thuật tính toán bắt đầu trở thành công cụ cho việc phát triển khoa học về mật mã. Khái niệm trung tâm của khoa học mật mã là khái niệm bí mật. Đó là một khái niệm phổ biến trong đời sống, khái niệm bí mật thoạt đầu được gắn với khái niệm ngẫu nhiên, rồi về sau trong những thập niên gần đây, với khái niệm phức tạp, cụ thể hơn là khái niệm độ phức tạp tính toán. [2 – tr13] Năm 1978, Rivest, Shamir và Adleman tìm ra một hệ mật mã khóa công khai và một sơ đồ chữ ký điện tử hoàn toàn có thể ứng dụng trong thực tiễn, tính bảo mật và an toàn của chúng được bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán phân tích số nguyên thành các thừa số nguyên tố. Sau phát minh ra hệ mật mã đó (mà nay ta thường gọi là hệ RSA), việc nghiên cứu để phát minh ra các hệ mật mã khóa công khai khác, và ứng dụng các hệ mật mã khóa công khai vào các bài toán khác nhau của an toàn thông tin đã được tiến hành rộng rãi, lý thuyết mật mã và an toàn thông tin trở thành một lĩnh vực khoa học được phát triển nhanh 9 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. trong vài ba thập niên cuối của thế kỷ 20, lôi cuốn theo sự phát triển của một số bộ môn của toán học và tin học [2 – tr96]. Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với việc sử dụng mã Morse và điện tín. Vào năm 1889, tòa án tối cao bang New Hampshire (Hoa kỳ) đã phê chuẩn tính hiệu lực của chữ ký điện tử. Tuy nhiên, chỉ với những phát triển của khoa học kỹ thuật gần đây thì chữ ký điện tử mới đi vào cuộc sống một cách rộng rãi. Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi các tài liệu quan trọng. Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên giấy nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử. Hiện nay, chữ ký điện tử có thể bao hàm các cam kết gửi bằng email, nhập các số định dạng cá nhân ( PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn hình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online...[7] 10 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. Phần 2: Nội dung. I. Tổng quan về chứng thực và an toàn thông tin. Chúng ta đang sống trong một thời đại bùng nổ thông tin. Nhu cầu trao đổi thông tin và các phương tiện truyền đưa thông tin phát triển một cách nhanh chóng. Và cùng với sự phát triển đó, đòi hỏi bảo vệ tính bí mật và chứng thực nguồn thông tin cũng càng ngày càng to lớn và có tính phổ biến. Có nhiều bài toán khác nhau về yêu cầu an toàn thông tin tùy theo những tình huống khác nhau. Ví dụ trong thực tế, một số bài toán chung nhất mà ta thường gặp là những bài toán sau đây: - Bảo mật: Giữ thông tin được bí mật đối với tất cả mọi người, trừ một ít người có thẩm quyền được đọc, biết thông tin đó. - Toàn vẹn thông tin: Bảo đảm thông tin không bị thay đổi hay xuyên tạc bởi những kẻ không có thẩm quyền hoặc bằng những ph ương tiện không được phép. - Nhận thực một thực thể: Xác nhận danh tính của một thực thể, chẳng hạn một người, một máy tính cuối trong mạng, một thẻ tín dụng,... - Nhận thực một thông báo: Xác nhận nguồn gốc của một thông báo được gửi đến. - Chữ ký: Một cách để gắn kết một thông tin với một thực thể, thường dùng trong bài toán nhận thực một thông báo cũng như trong nhiều bài toán nhận thực khác. 11 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. - Ủy quyền: Chuyển cho một thực thể khác quyền đ ược đại diện hoặc được làm một việc gì đó. - Cấp chứng chỉ: Cấp một sự xác nhận thông tin bởi một thực thể được tín nhiệm. - Báo nhận: Xác nhận một thông báo đã được nhận hay một dịch vụ đã được thực hiện. - Làm chứng: Kiểm thử việc tồn tại một thông tin ở một thực thể khác với người chủ sở hữu thông tin đó. - Không chối bỏ được: Ngăn ngừa việc chối bỏ trách nhiệm đối với một cam kết đã có (thí dụ đã ký vào một văn bản). - Ẩn danh: che giấu danh tính của một thực thể tham gia trong một tiến trình nào đó (thường dùng trong giao dịch tiền điện tử). - Thu hồi: Rút lại một giấy chứng chỉ hay ủy quyền đã cấp. Cơ sở của các giải pháp cho các bài toán kể trên là các phương pháp mật mã, đặc biệt là mật mã khóa công khai. Trong thế giới số, có 3 cách để xác thực một người hoặc mức độ tin cậy của một thông tin trên máy tính. Một là Thẻ thông hành (Pass Card) mà ở nước ta hiện nay chưa phổ biến. Hai là Password, cách này sử dụng tên truy nhập (User Name) và mật khẩu (Password) cung cấp cho các giao diện đăng nhập để xác thực thông tin. Thứ ba, dùng chữ ký điện tử (Digital Signature). [2 – tr19] II. Mã hóa dữ liệu và giải mã a. Tổng quan về mã hóa dữ liệu và giải mã: Sự phát triển chóng mặt của Internet đã tác động đến cả công việc kinh doanh và người tiêu dùng với sự hứa hẹn về việc thay đổi cách mà con người sống và làm 12 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. việc. Nhưng mối lo ngại lớn nhất được đề cập đến là việc bảo mật trên Internet, đặc biệt khi các thông tin mang tính nhạy cảm và riêng tư được gửi đi trên mạng. Mã hóa là ngành nghiên cứu các thuật toán và phương thức để đảm bảo tính bí mật và (thường là dưới dạng các văn bản lưu trữ trên máy tính). Các sản phẩm của lĩnh vực này là các hệ mã mật, các hàm băm, các hệ chữ ký điện tử, các cơ chế phân phối, quản lý khóa và các giao thức mật mã . Có rất nhiều thông tin mà chúng ta không muốn người khác biết khi gửi đi như: thông tin về Credit-Card, thông tin về kinh doanh của công ty, thông tin về tài khoản cá nhân, thông tin về cá nhân nh ư số chứng minh thư, số thẻ... Quá trình mã hoá trong máy tính dựa vào khoa học về mật mã (Cryptography) đã được con người sử dụng từ lâu đời. Trước thời đại số hoá, người sử dụng mật mã nhiều nhất vẫn là chính phủ, chủ yếu trong mục đích quân sự. Hầu hết các ph ương pháp mã hoá được dùng hiện nay dựa vào các máy tính, đơn giản là do các mã do con người sinh ra rất dễ bị phá bởi công cụ máy tính. Các hệ thống mã hoá trong máy tính phổ biến nhất thuộc một trong hai loại sau: * Mã hoá với khoá đối xứng (Symmetric-key Encryption) * Mã hoá với khoá công khai (Public-key Encryption) Gần đây nhất là các sự kiện liên quan tới các hàm băm MD5 (một hàm băm thuộc họ MD do Ron Rivest phát triển) và SHA. Một nhóm các nhà khoa học người Trung Quốc (Xiaoyun Wang, Yiqun Lisa Yin, Hongbo Yu ) đã phát triển các phương pháp cho phép phát hiện ra các đụng độ của các hàm băm được sử dụng rộng rãi nhất trong số các hàm băm này. Đây là một sự kiện lớn đối với ngành mật mã học do sự ứng dụng rộng rãi và có thể xem là còn quan trọng hơn bản thân các hệ mã mật của các hàm băm. Do sự kiện này các hãng viết phần mềm lớn (như Microsoft) và các nhà mật mã học đã khuyến cáo các lập trình viên sử dụng các hàm băm mạnh hơn (như SHA-256, SHA-512) trong các ứng dụng. 13 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. Ngày nay khó có thể tìm thấy các ứng dụng trên máy tính lại không sử dụng tới các thuật toán và các giao thức mật mã học. Tới các ứng dụng cho máy tính cá nhân (Desktop Applications) cho tới các chương trình hệ thống như hệ điều hành (Operating Systems) hoặc các ứng dụng mạng như Yahoo Messenger hoặc hệ cơ sở dữ liệu đều có sử dụng các thuật toán mã hóa mật khẩu người dùng bằng một hệ mã hoặc một hàm băm nào đó. Đặc biệt với sự phát triển mạnh mẽ của thương mại điện tử các mô hình chữ ký điện tử ngày càng đóng vai trò tích cực cho một môi trường an toàn cho người dùng [1 – tr17]. b. Mã hóa bất đối xứng (asymmetric). Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử dụng trao đổi các thông tin mật mà 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 và khóa cá nhân (hay khóa bí mật). Thuật ngữ mật mã hóa khóa bất đối xứng thường được dùng đồng nghĩa với mật mã 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 mã khóa bất đối xứng không có tính chất khóa công khai và bí mật như đề cập ở trên mà cả hai khóa (cho mã hóa và giải mã) đều cần phải giữ bí mật. [1 – tr77] 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 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 mã hóa khóa công khai có thể sử dụng với các mục đích: - Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã được. - Tạo chữ ký 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. 14 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. - 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 mã 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 mã hóa khóa đối xứng nhưng những lợi điểm mà chúng mang lại khiến cho chúng được áp dụng trong nhiều ứng dụng. Sự ra đời của khái niệm hệ mật mã khoá công khai là một tiến bộ có tính chất bước ngoặt trong lịch sử mật mã nói chung, gắn liền với sự phát triển của khoa học tính toán hiện đại. Người ta có thể xem thời điểm khởi đầu của bước ngoặt đó là sự xuất hiện ý tưởng của W. Diffie và M.E. Hellman được trình bày vào tháng sáu năm 1976 tại Hội nghị quốc gia hàng năm của AFIPS (Hoa kỳ) trong bài Multiuser cryptographic techniques. [1 – tr78] Một năm sau, năm 1977, R.L. Rivest, A. Shamir và L.M. Adleman đề xuất một hệ cụ thể về mật mã khoá công khai mà độ an toàn của hệ dựa vào bài toán khó “phân tích số nguyên thành thừa số nguyên tố”, hệ này về sau trở thành một hệ nổi tiếng và mang tên là hệ RSA, được sử dụng rộng rãi trong thực tiễn bảo mật và an toàn thông tin. Cũng vào thời gian đó, M.O. Rabin cũng đề xuất một hệ mật mã khoá công khai dựa vào cùng bài toán số học khó nói trên. Liên tiếp sau đó, nhiều hệ mật mã khóa công khai được đề xuất, mà khá nổi tiếng và được quan tâm nhiều là các hệ: hệ McEliece được đưa ra năm 1978 dựa trên độ NP(khó) của bài toán giải mã đối với các hệ mã cyclic tuyến tính, hệ Merkle- Hellman dựa trên tính NP- đầy đủ của bài toán xếp ba lô (knapsack problem), hệ mật mã nổi tiếng ElGamal dựa trên độ khó của bài toán lôgarit rời rạc, hệ này về sau được mở rộng để phát triển nhiều hệ tương tự dựa trên độ khó của các bài toán tương tự lôgarit rời rạc trên các cấu trúc nhóm cyclic hữu hạn, nhóm các điểm nguyên trên đường cong eliptic, v.v... Để tăng độ bảo mật, hệ mật mã ElGamal còn dùng với tư cách đầu vào cho thuật toán lập mật mã của mình, ngoài khoá công khai và bản rõ, một yếu tố ngẫu nhiên được chọn tuỳ ý, điều đó làm cho hệ mật mã trở thành một hệ mật mã xác suất khoá công 15 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. khai. Một số hệ mật mã xác suất khoá công khai cũng đ ược phát triển sau đó bởi Goldwasser-Micali và Blum-Goldwasser. [1 – tr79] Không phải tất cả các thuật toán mật mã hóa khóa bất đối xứng đều hoạt động giống nhau nhưng phần lớn đều gồm 2 khóa có quan hệ toán học với nhau: một cho mã hóa và một để giải mã. Để thuật toán đảm bảo an toàn thì không thể tìm được khóa giải mã nếu chỉ biết khóa đã dùng mã hóa. Điều này còn được gọi là mã hóa công khai vì khóa dùng để mã hóa có thể công bố công khai mà không ảnh hưởng đến bí mật của văn bản mã hóa. Các thông tin để mở khóa thì chỉ có người sở hữu mới biết. Tồn tại khả năng một người nào đó có thể tìm ra được khóa bí mật. Không giống với hệ thống mật mã sử dụng một lần (one-time pad) hoặc tương đương, chưa có thuật toán mã hóa khóa bất đối xứng nào được chứng minh là an toàn trước các tấn công dựa trên bản chất toán học của thuật toán. Khả năng một mối quan hệ nào đó giữa 2 khóa hay điểm yếu của thuật toán dẫn tới cho phép giải mã không cần tới khóa hay chỉ cần khóa mã hóa vẫn chưa được loại trừ. An toàn của các thuật toán này đều dựa trên các ước lượng về khối lượng tính toán để giải các b ài toán gắn với chúng. Các ước lượng này lại luôn thay đổi tùy thuộc khả năng của máy tính và các phát hiện toán học mới.[2- tr18] Mặc dù vậy, độ an toàn của các thuật toán mật mã hóa khóa công khai cũng tương đối đảm bảo. Nếu thời gian để phá một mã (bằng phương pháp duyệt toàn bộ) được ước lượng là 1000 năm thì thuật toán này hoàn toàn có thể dùng để mã hóa các thông tin về thẻ tín dụng - Rõ ràng là thời gian phá mã lớn hơn nhiều lần thời gian tồn tại của thẻ (vài năm). [2 – tr21] c. Mã hóa đối xứng (symmetric). Trong mật mã học, các thuật toán khóa đối xứng (tiếng Anh: symmetric-key algorithms) là một lớp các thuật toán mật mã hóa trong đó các khóa dùng cho việc 16 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. mật mã hóa và giải mã 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). [8] Khóa dùng để mã hóa có liên hệ một cách rõ ràng với khóa dùng để giải mã 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 và đượ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 mã luồng (stream ciphers) và mật mã khối (block ciphers). Mật mã luồng mã hóa từng bit của thông điệp trong khi mật mã khối gộp một số bit lại và mật mã hóa chúng như một đơn vị. Cỡ khối được dùng thường là các khối 64 bit. Thuật toán tiêu chuẩn mã hóa tân tiến (Advanced Encryption Standard), được NIST công nhận tháng 12 năm 2001, sử dụng các khối gồm 128 bit. [8] 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 mã hiện đại, cả hai thuật toán bất đối xứng và thuật toán đối xứng được sử dụng phối hợp để tận dụng các ưu điểm của cả hai. Những hệ thống sử dụng cả hai thuật toán bao gồm SSL (Secure Sockets Layer), PGP (Pretty Good Privacy) và GPG (GNU Privacy Guard)... Các thuật toán chìa khóa bất đối xứng được sử dụng để phân phối chìa khóa mật cho thuật toán đối xứng có tốc độ cao hơn. Một số ví dụ các thuật toán đối xứng nổi tiếng bao gồm Twofish, Serpent, AES (còn được gọi là Rijndael), Blowfish, CAST5, RC4, Tam phần DES (Triple DES), và IDEA (International Data Encryption Algorithm - Thuật toán mật mã hóa dữ liệu quốc tế). [8] Các thuật toán đối xứng nói chung đòi hỏi công suất tính toán ít hơn các thuật toán khóa bất đối xứng. Trên thực tế, một thuật toán khóa bất đối xứng có khối lượng 17 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. tính toán nhiều hơn gấp hằng trăm, hằng ngàn lần một thuật toán khóa đối xứng có chất lượng tương đương. Hạn chế của các thuật toán khóa đối xứng bắt nguồn từ yêu cầu về sự phân hưởng chìa khóa bí mật, mỗi bên phải có một bản sao của chìa. Do khả năng các chìa khóa có thể bị phát hiện bởi đối thủ mật mã, chúng thường phải được bảo an trong khi phân phối và trong khi dùng. Hậu quả của yêu cầu về việc lựa chọn, phân phối và lưu trữ các chìa khóa một cách không có lỗi, không bị mất mát là một việc làm khó khăn, khó có thể đạt được một cách đáng tin cậy. Để đảm bảo giao thông liên lạc an toàn cho tất cả mọi người trong một nhóm gồm n người, tổng số lượng chìa khóa cần phải có là n(n-1)/2. Các thuật toán khóa đối xứng không thể dùng cho mục đích xác thực hay mục đích chống thoái thác. d. Hàm băm (Hashing) - Tổng quan về hàm băm Trong ngành mật mã học, một hàm băm mật mã học (tiếng Anh: Cryptographic hash function) là một hàm băm với một số tính chất bảo mật nhất định để phù hợp việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chẳng hạn nh ư chứng thực và kiểm tra tính nguyên vẹn của thông điệp. Một hàm băm nhận đầu vào là một xâu ký tự dài (hay thông điệp) có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, đôi khi được gọi là tóm tắt thông điệp (message digest) hoặc chữ ký số (digital fingerprint) [1 – tr109]. Hàm băm là các thuật toán không sử dụng khóa để mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) thông điệp được đưa vào theo một thuật toán h một chiều nào đó, rồi đưa ra một bản băm gọi là văn bản đại diện có kích thước cố định. Do đó người nhận không biết được nội dung hay độ dài ban đầu của thông điệp đã được băm bằng hàm băm. 18 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. Giá trị của hàm băm là duy nhất, và không thể suy ngược lại được nội dung thông điệp từ giá trị băm này. [1 – tr109] - Tính chất của hàm băm Tính đụng độ: Theo nguyên lý Diricle: nếu có (n+1) con thỏ được bỏ vào n cái chuồng thì phải tồn tại ít nhất một cái chuồng mà trong đó có ít nhất là hai con thỏ ở chung. Rõ ràng với không gian giá trị Băm nhỏ hơn rất nhiều so với không gian tin về mặt kích thước thì chắc chắn sẽ tồn tại đụng độ , nghĩa là có hai tin x # x’ mà giá trị Băm của chúng là giống nhau, tức h(x) = h(x’) [1 - 109]. Sau đây chúng ta sẽ xét các dạng tấn công có thể có, từ đó rút ra các tính chất của hàm Băm: Tính chất 1: Hàm băm không va chạm yếu. Hàm băm h là không va chạm yếu nếu khi cho trước một bức điện x, không thể tiến hành về mặt tính toán để tìm ra một bức điện x’ x mà h(x’) = h(x). [1 - tr110] Ví dụ: Người A gửi cho B (x, y) với y = SigA(h(x)). Nhưng trên đường truyền, tin bị lấy trộm. Tên trộm, bằng cách nào đó tìm được một bản thông điệp x’ có h(x’) = h(x) mà x’ x. Sau đó, tên trộm đưa x’ thay thế x rồi truyền tiếp cho người B. Người B nhận được và vẫn xác thực được thông tin đúng đắn. Để tránh tấn công trên, hàm băm phải không va chạm yếu. Tính chất 2: Hàm băm không va chạm mạnh Hàm băm h là không va chạm mạnh nếu không có khả năng tính toán để tìm ra hai bức thông điệp x và x’ mà x x’ và h(x) = h(x’). [1 – tr110] Ví dụ: Đầu tiên, tên giả mạo tìm ra được hai bức thông điệp x’ và x (x’ x) mà có h(x’) = h(x) (ta coi bức thông điệp x là hợp lệ, còn x’ là giả mạo). Tiếp theo, tên 19 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
- Khóa luận tốt nghiệp – 2011 Tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa. trộm đưa cho ông A và thuyết phục ông này kí vào bản tóm lược h(x) để nhận được y. Khi đó (x’, y) là bức điện giả mạo nhưng hợp lệ. Để tránh kiểu tấn công này, hàm h phải thỏa mãn tính không va chạm mạnh Tính chất 3: Hàm băm một chiều. Hàm băm h là một chiều nếu khi cho trước một bản tóm lược thông báo z, không thể thực hiện về mặt tính toán để tìm bức điện x sao cho h(x) = z. [1 – tr110] Việc giả mạo các chữ kí trên bản tóm lược thông báo z ngẫu nhiên thường xảy ra với sơ đồ chữ kí. Giả sử tên giả mạo tính chữ kí trên bản tóm lược thông báo z ngẫu nhiên như vậy. Sau đó anh ta tìm x sao cho z = h(x). Nếu làm được như vậy thì (x,y) là bức điện giả mạo hợp lệ. Để tránh được tấn công này, h cần thoả mãn tính chất một chiều: - Một số hàm băm nổi tiếng + MD5 (Message Digest) Ronald Rivest là người đã phát minh ra các hàm Băm MD2, MD4 (1990) và MD5 (1991). Do tính chất tương tự của các hàm Băm này, sau đây chúng ta sẽ xem xét hàm Băm MD5, đây là một cải tiến của MD4 và là hàm Băm được sử dung rộng rãi nhất, nguyên tắc thiết kế của hàm băm này cũng là nguyên tắc chung cho rất nhiều các hàm băm khác [1 – tr111]. a. Miêu tả MD5: Đầu vào là những khối 512 bit, được chia cho 16 khối con 32 bit. Đầu ra của thuật toán là một thiết lập của 4 khối 32 bit để tạo thành một hàm Băm 128 bit duy nhất. Đầu tiên, ta chia bức điện thành các khối 512 bit, với khối cuối cùng (đặt là x và x < 512bit) của bức điện, chúng ta cộng thêm một bit 1 vào cuối của x, theo sau đó là các bit 0 để được độ dài cần thiết (512 bit). Kết quả là bức điện vào là một chuỗi M 20 Liên hệ. Mail: Hainhat007@gmail.com or đt: 0982.070.520
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Đề tài: Tìm hiểu về thiết bị cyclone lắng bụi
67 p | 1470 | 389
-
Đề tài: Tìm hiểu về hiện tượng phú dưỡng trong các hồ ở thủ đô Hà Nội và các giải pháp chính để kiểm soát hiện tượng này - GVHD TS. Văn Diệu Anh
36 p | 915 | 213
-
Đề tài: Tìm hiểu về chuỗi cung ứng sản phẩm sữa của Vinamilk
25 p | 1767 | 153
-
Tiểu luận An ninh mạng: Tìm hiểu về tường lửa
21 p | 767 | 110
-
Đề tài: Tìm hiểu về bảo mật mạng LAN và sử dụng công cụ Nessus quét lỗ hổng bảo mật trong mạng LAN
54 p | 368 | 95
-
Đề tài: Tìm hiểu về các chuẩn nén video ITU và ứng dụng thử nghiệm
29 p | 232 | 54
-
Đề tài: Tìm hiểu về quỹ đầu tư chứng khoán tại Việt Nam
15 p | 206 | 42
-
Đề tài: Tìm hiểu về tường lửa
20 p | 185 | 39
-
Đề tài: Tìm hiểu về thủ tục hải quan điện tử ở Việt Nam
47 p | 163 | 35
-
Đề tài: Tìm hiểu về PLC Simens
42 p | 173 | 35
-
Đề tài: Tìm hiểu về Game và cách xây dựng Game đa nền tảng với UnityEngine
62 p | 231 | 33
-
Đề tài: Tìm hiểu về tường lửa và Netfilter
19 p | 176 | 32
-
Đề tài: Tìm hiểu về ngân hàng thế giới
79 p | 138 | 18
-
Đề tài: Tìm hiểu về cellulose, hemicellulose, lignin và ứng dụng thực tiễn của chúng
44 p | 103 | 18
-
Tiểu luận đề tài: Tìm hiểu về chất màu nhân tạo sử dụng trong thực phẩm, cách tổng hợp chúng, ứng dụng trong một số thực phẩm
41 p | 195 | 17
-
Đề tài: Tìm hiểu về bao bì của sản phẩm Coca-Cola
33 p | 168 | 16
-
Đề tài: Tìm hiểu về ISO
20 p | 130 | 16
-
Đề tài: Tìm hiểu về Monadic Operations
9 p | 80 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn