Đăng ký Đăng nhập
Trang chủ Đề tài: Tìm hiểu về chữ ký điện tử ...

Tài liệu Đề tài: Tìm hiểu về chữ ký điện tử

.PDF
32
168
102

Mô tả:

Đề tài: Tìm hiểu về chữ ký điện tử
Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 LỜI CẢM ƠN Trang 1 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 MỤC LỤC LỜI CẢM ƠN .............................................................................................................1 DANH MỤC TỪ VIẾT TẮT......................................................................................4 DANH MỤC HÌNH VẼ ..............................................................................................5 TÓM TẮT ĐỒ ÁN......................................................................................................6 PHẦN 1: MỞ ĐẦU .....................................................................................................7 1. Lý do chọn đề tài: ............................................................................................7 2. Mục đích: ........................................................................................................7 3. Phạm vi nghiên cứu:........................................................................................7 PHẦN 2: TỔNG QUAN .............................................................................................8 PHẦN 3: NỘI DUNG ĐỀ TÀI ...................................................................................9 1. Lịch sử chữ ký điện tử: ...................................................................................9 2. Chữ ký điện tử: ..............................................................................................11 2.1. Sơ lược chữ ký điện tử: .........................................................................11 2.2. Cách thức hoạt động của chữ ký điện tử: .............................................12 2.2.1. Nguyên tắc mã hóa công khai: .......................................................12 2.2.2. Ký chữ ký điện tử vào dữ liệu: ......................................................13 2.3. 3. Chữ ký số: .............................................................................................16 Thuật toán mã hóa công khai RSA: ..............................................................17 3.1. 3.2. Tạo khóa: ..............................................................................................17 3.3. 4. Mô tả sơ lược: .......................................................................................17 Độ an toàn của RSA: ............................................................................18 Sơ lược về hàm băm MD5: ...........................................................................19 4.1. Sơ lược: .................................................................................................19 Trang 2 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 4.2. 4.3. 5. Tóm tắt giải thuật: .................................................................................20 Khả năng bị tấn công: ...........................................................................20 Demo đơn giản tạo và gửi chữ ký điện tử: ....................................................21 PHẦN 4: KẾT LUẬN ...............................................................................................31 DANH MỤC TÀI LIỆU THAM KHẢO ..................................................................32 Trang 3 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 DANH MỤC TỪ VIẾT TẮT - MD5: Message-Digest algorithm 5. - RSA: Tên thuật toán được lấy từ ba chữ cái đầu của ba nhà toán học lần đầu tiên mô tả thuật toán trên vào năm 1977 Ron Rivest, Adi Shamir và Len Adleman. - CA: Certificate Authority - ủy quyền chứng chỉ. - Demo: Demonstration Trang 4 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 DANH MỤC HÌNH VẼ Hình 1: Nhận tài liệu có sử dụng chữ ký điện tử ......................................................13 Hình 2: Gửi tài liệu có sử dụng chữ ký điện tử .........................................................13 Hình 3: Tóm tắt sơ đồ tạo, kiểm tra và xác thực chữ ký điện tử ...............................14 Hình 4: Giao diện demo. ...........................................................................................21 Hình 5: File bên B muốn gửi cho bên A. ..................................................................22 Hình 6: Tạo khóa bằng demo ....................................................................................22 Hình 7: Lưu public key .............................................................................................23 Hình 8: Lưu private key ............................................................................................23 Hình 9: Tải file cần mã hóa. ......................................................................................24 Hình 10: Chọn khóa public key do bên B nắm giữ ...................................................25 Hình 11: Bắt đầu mã hóa tài liệu...............................................................................26 Hình 12: Lưu file đã mã hóa .....................................................................................26 Hình 13: Tải file cần giải mã. ...................................................................................27 Hình 14: Tải khóa private key...................................................................................28 Hình 15: Giải mã tài liệu ...........................................................................................28 Hình 16: Kết quả .......................................................................................................29 Hình 17: Lỗi không đúng khóa hoặc dữ liệu bị thay đổi. .........................................30 Trang 5 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 TÓM TẮT ĐỒ ÁN Qua quá trình tìm hiểu đề tài. Nhóm chúng em đã dẫn đến quyết định nội dung chính cần làm nổi bật tại đề tài được giao. Tại đây chúng em sẽ làm rõ hai vấn đề chính đặt ra cho đề tài “Tìm hiểu về chữ ký điện tử” là: Chữ ký điện tử là cái gì và nó hoạt động như thế nào. Ngoài ra nhóm chúng em còn nêu ra thêm một vấn đề nhỏ mang tính tham khảo là thuật toán mã hóa công khai RSA và hàm băm MD5. Đồ án sẽ có bốn phần lớn là Mở đầu, Tổng quan, Nội dung đề tài và Kết luận. Trong đó phần Nội dung đề tài sẽ chứa tất cả nội dung nhóm chúng em đã tìm hiểu được về chữ ký điện tử. Phần Nội dung đề tài sẽ được chia làm năm tiểu mục gồm có Lịch sử chữ ký điện tử, Chữ ký điện tử, Thuật toán mã hóa công khai RSA, Sơ lược về hàm băm MD5 và Demo đơn giản tạo và gửi chữ ký điện tử. Về phần RSA và MD5 nhóm chúng em chỉ nêu một cách khái quát. Trọng tâm vẫn là Chữ ký điện tử và Demo đơn giản tạo và gửi chữ ký điện tử. Phần chữ ký điện tử: Nêu rõ ràng và chi tiết chữ ký điện tử là gì, cách thức hoạt động, nguyên tắc mã hóa công khai, quá trình ký chữ ký điện tử vào văn bản. Ngoài ra còn có hình minh họa trực quan về cách thức hoạt động. Phần Demo đơn giản tạo và gửi chữ ký điện tử: Tại đây, nhóm chúng em chạy demo minh họa cách tạo chữ ký điện tử, ký chữ ký điện tử lên văn bản, thực hiện các công đoạn mã hóa và giải mã, hình ảnh minh họa một cách trực quan, chi tiết, dễ hiểu. Trang 6 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 PHẦN 1: MỞ ĐẦU 1. Lý do chọn đề tài: Ngày nay, ứng dụng của công nghệ thông tin vào đời sống là rất phổ biến. Công nghệ thông tin được ứng dụng ở khắp các lĩnh vực như kinh tế, chính trị, khoa học, quân sự, giải trí,… Trong đó, yếu tố cực kỳ quan trong khi làm việc là truyền thông. Để có thể gửi và nhận tài liệu, báo cáo, thư tín hay trao đổi bất kỳ hoạt động gì, chúng ta đều cần đến truyền thông, cùng với việc gửi và nhận dữ liệu, để biết dữ liệu mà chúng ta nhận được do ai gửi, và chứng thực được điều đó là vấn đề khá khó khăn. Đề tài “tìm hiểu về chữ ký điện tử ” mà nhóm chúng em thực hiện sẽ làm rõ điều này. Nhận thấy được tầm ảnh hưởng và ứng dụng ngày càng lớn về công nghệ thông tin vào đời sống thực tiễn, trong vài năm trở lại đây, chữ ký điện tử được biết đến ở Việt Nam. Đối với nước ta, chữ ký điện tử vẫn còn khá mới mẻ, chưa có nhiều tài liệu công nghệ thông tin nói về lĩnh vực này, cùng với đó là tiềm năng của chữ ký điện tử có thể được ứng dụng rất phổ biến tại các doanh nghiệp, nhà nước hay cá nhân, tập thể. Vì vậy nhóm chúng em chọn đề tài này để viết đồ án môn học. Đồ án nhóm chúng em viết ra vừa là báo cáo nghiên cứu của nhóm, cũng là một tài liệu công nghệ thông tin hữu ích để mọi người tham khảo. 2. Mục đích: Tìm hiểu về chữ ký điện tử, sự ra đời, cách hoạt động và bảo mật. 3. Phạm vi nghiên cứu: Nghiên cứu về chữ ký điện tử, hệ mã hóa để tạo ra chữ ký điện tử, điển hình là hệ mã hóa RSA, hàm băm. Trang 7 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 PHẦN 2: TỔNG QUAN Đối với nước ta, chữ ký điện tử vẫn còn khá mới mẻ, nhưng trên thế giới (các nước phát triển) thì chữ ký điện tử đã ra đời và đưa vào sử dụng từ lâu. Vậy nên, các tác giả nước ngoài cũng đã có nhiều bài viết nghiên cứu đầy đủ về chữ ký điện tử, một số tác giả trong nước, chủ yếu là những sinh viên làm luận án tốt nghiệp cũng đã có những bài viết nghiên cứu khá kỹ càng về lĩnh vực này. Tuy vậy để tìm được tài liệu trong nước nói về vấn đề chữ ký điện tử cũng khá khó khăn. Cũng do chữ ký điện tử chưa phổ biến tại nước ta, nên mọi người chưa hiểu rõ về nó. Vì vậy bài viết này nhóm chúng em sẽ làm rõ hơn về chữ ký điện tử là gì, chữ ký điện tử hoạt động như thế nào, bảo mật và xác minh như thế nào và làm sao để tạo ra chữ ký điện tử. Trang 8 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 PHẦN 3: NỘI DUNG ĐỀ TÀI 1. Lịch sử 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ừ. Trải qua thời gian, con người đã biết dung mật mã để giữ bí mật thông tin khi trao đổi với nhau trong nhiều lĩnh vực, đặc biệt là quân sự, chính trị, ngoại giao. Từ đầu thế kỷ 20, những thập niên đầu của thế kỷ. Nền công nghệ thông tin bắt đầu phát triển, kéo theo đó là việc xử lý mật mã từ thủ công dần dần được công nghệ hóa. Thay vì soạn thảo các văn bản bằng tay, con người bắt đầu sử dụng ngôn ngữ ảo để viết. Ngôn ngữ được chuyển thành các tín hiệu nhị phân (các bit), và việc biến đổi để giải mã trở thành biến đổi trên các bit bằng các hàm số toán học. Và từ đó các thuật toán tham gia vào quá trình tạo và giải mật mã. Nền công nghệ thông tin ngày càng phát triển mạnh, nhu cầu trao đổi thông tin nói chung, các thông tin quan trong cần được bảo mật nói riêng trở thành tất yếu. Vậy nên việc xác nhận và chứng thực người gửi thông tin là rất quan trọng. Khái niệm chữ ký điện tử ra đời. 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ố. Hệ mã hóa này được gọi là RSA. RSA ra đời đánh dấu một bước ngoặt lớn về bảo mật và chứng thực thông tin. Từ đó, mật mã và an toàn thông tin trở thành một lĩnh vực khoa học phát triển nhanh chóng. 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. Trang 9 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 Vào thập niên 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 khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online… Trang 10 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 2. Chữ ký điện tử: 2.1. Sơ lược chữ ký điện tử: Chữ ký là khái niệm chắc hẳn ai cũng biết. Trong đời sống, chúng ta thường xuyên phải sử dụng chữ ký để xác nhận những văn bản, tài liệu. Trong các doanh nghiệp hay nhà nước thì có thể dùng thêm con dấu. Tuy được sử dụng rộng rãi nhưng chữ ký vẫn có một số mặt hạn chế: - Mất nhiều thời gian nếu sử dụng cho hang loạt những văn bản, tài liệu cùng một lúc. - Việc xác minh chữ ký khó khăn và tốn nhiều thời gian. - Có thể dễ bị làm giả Chữ ký thông thường có rất nhiều mặt hạn chế, mức độ bảo mật không không cao. Vì vậy cần có phương pháp để khắc phục những mặt hạn chế nêu trên, giúp nâng cao tính bảo mật và an toàn. Chữ ký điện tử ra đời trong thời buổi công nghệ thông tin đang phát triển chóng mặt. Người ta có thể sử dụng chữ ký điện tử để ký vào các văn bản, tài liệu số hoàn toàn bằng thiết bị điện tử, giúp việc xác minh nhanh chóng hơn và đặc biệt là tính xác thực cao hơn, an toàn hơn vì rất khó làm giả. Chữ ký điện tử có các ưu điểm vượt trội so với chữ ký thông thường: - Bảo mật: chữ ký điện tử có khả năng bảo mật cao, chìa khóa được bảo mật với tất cả mọi người trừ những người được phép biết. - Toàn vẹn thông tin: các tài liệu, thông tin được ký bằng chữ ký điện tử được bảo vệ một cách toàn vẹn, không thể thay đổi thông tin khi đã được ký, nếu thông tin đã bị thay đổi thì thông tin đó lập tức bị loại bỏ. - Xác nhận thực thể: chữ ký điện tử sẽ xác nhận thực thể đã ký vào thông tin một cách chính xác và tin cậy. Chữ ký điện tử là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video...) nhằm mục đích xác định người chủ của dữ liệu đó. Chữ ký điện tử đi kèm với các thông tin chủ sở hữu và một số thông tin cần thiết khác sẽ trở thành Chứng chỉ điện tử. Trang 11 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 Chữ ký điện tử được sử dụng trong các giao dịch điện tử. Xuất phát từ thực tế, chữ ký điện tử cũng cần đảm bảo các chức năng: Xác định được người chủ của một dữ liệu nào đó ví dụ văn bản, ảnh, video, ... dữ liệu đó có bị thay đổi hay không. 2.2. Cách thức hoạt động của chữ ký điện tử: 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à Pass Card (Thẻ thông hành) 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 việc đăng nhập xác thực thông tin. Thứ ba, dùng Digital Signature (chữ ký điện tử). 2.2.1. Nguyên tắc mã hóa công khai: Chữ ký điện tử hoạt động trên nguyên tắc mã hóa công khai. Hệ thống này bao gồm hai khóa là khóa bí mật (Private Key) và khóa công khai (Public Key). Mỗi chủ thể khi tạo chữ ký điện tử đều có một cặp khóa như vậy. Chủ thể giữ khóa bí mật, công bố cho mọi người khóa công khai. Nguyên tắc của hệ thống mã hóa này là: nếu mã hóa bằng khóa bí mật thì chỉ có khóa công khai mới giải mã đúng được và ngược lại. Ví dụ: Bản thân chúng ta là người được cấp cho hai khóa điện tử Public Key và Private Key như đã nêu ở trên. Chúng ta phải giữ gìn Private Key cẩn thận như giữ chiếc chìa khóa nhà của mình. Khi có một người dùng Public Key để mã hóa một bức thư rồi gửi cho chúng ta, chúng ta phải dùng Private Key để giải mã thì mới đọc được bức thư này. Đồng nghiệp hay người thân của chúng ta dù có biết bức thư này cũng chịu vì không tài nào giải mã được. Dùng Private Key, cùng với một phần mềm phù hợp, chúng ta có thể ký tên lên một văn bản hay tập tin dữ liệu nào đó. Chữ ký điện tử này tương tự như một con tem độc nhất vô nhị dán lên văn bản, khó có thể giả mạo được. Khi nhận dữ liệu: sử dụng chữ ký điện tử để khách thể đảm bảo đúng chủ thể nhận và chỉ duy nhất chủ thể có thể xem được tài liệu do cá thể gửi do chỉ có Private Key của chủ thể mới có thể giải mã được dữ liệu này. Trang 12 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 Hình 1: Nhận tài liệu có sử dụng chữ ký điện tử Khi gửi dữ liệu: sử dụng chữ ký điện tử để khách thể có thể xác minh dữ liệu đó do ai gửi, vì dữ liệu mà Public Key giải mã được chỉ có thể do chủ thể gửi mà thôi. Hình 2: Gửi tài liệu có sử dụng chữ ký điện tử 2.2.2. Ký chữ ký điện tử vào dữ liệu: Các bước để thực hiện việc ký chữ ký điện tử vào thông tin để gửi : - B1: Băm dữ liệu (dữ liệu được xử lý bởi hàm băm trở thành một bản tóm lược). Trang 13 Đề tài: Tìm hiểu về chữ ký điện tử - B2: Mã hóa (bản tóm lược được mã hóa bởi khóa bí mật). - Nhóm 11 B3: Gắn chữ ký số với thông điệp dữ liệu. Hình 3: Tóm tắt sơ đồ tạo, kiểm tra và xác thực chữ ký điện tử Một ví dụ để làm rõ cách thức để sử dụng chữ ký điện tử: Bên A sử dụng chữ ký điện tử với khóa bí mật là Apv, khóa công khai là Apl (Apb được đưa cho bên B biết). Bên B sử dụng chữ ký điện tử với khóa bí mật là Bpv, khóa công khai là Bpl (Bpl được đưa cho bên A biết). Giả sử bên A có tài liệu cần bên B ký, trước tiên, bên A sẽ thực hiện băm tài liệu thành một bản tóm lược X (chúng ta không thể đọc được X) sau đó dùng Apv ký lên X được tài liệu M, tài liệu M được gửi cho bên B. Để bên B xác minh được tài liệu M do chính bên A gửi, bên B dùng Apl giải mã M và thu được tài liệu bên A gửi. Tiếp theo đó, bên B cũng thực hiện băm tài liệu thành một bản tóm lược Y, sau đó Trang 14 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 dùng Bpv ký lên Y để được tài liệu N và gửi N cho bên A. Để bên A xác minh được tài liệu N do chính bên B gửi, bên A sử dụng Bpl để giải mã tài liệu N và thu được tài liệu đã được bên B ký. Một số trường hợp xảy ra với chữ ký điện tử, cũng giống như các trường hợp xảy ra với chữ ký truyền thống. Ví dụ: Khi tài liệu TL của A bị thay đổi (dù chỉ một ký tự, một dấu chấm, hay một ký hiệu bất kỳ), khi B xác nhận, anh ta sẽ thấy bản giải mã khác với tài liệu TL của anh A. B sẽ kết luận rằng tài liệu đó đã bị thay đổi, không phải là tài liệu anh A đã ký. Trường hợp khác, nếu A để lộ khóa bí mật, nghĩa là văn bản tài liệu của A có thể ký bởi người khác có khóa bí mật của A. Khi một ai đó xác nhận tài liệu được cho là của A ký, chữ ký vẫn là hợp lệ, mặc dù không phải chính A ký. Như vậy, chữ ký của A sẽ không còn giá trị pháp lý nữa. Do đó, việc giữ khóa bí mật là tuyệt đối quan trọng trong hệ thống chữ ký điện tử. Như vừa nêu trên, khi bên A để lộ mã khóa bí mật, thì bất kỳ ai có được mã khóa bí mật của A cũng có thể ký vào những thông tin mà thông tin đó không phải do A ký. Vậy làm thế nào để hạn chế việc giả dạng người ký khi khóa bí mật bị lộ (nhằm hạn chế rủi ro khi chưa kịp thời thay chữ ký điện tử mới). Có một giải pháp hữu hiệu giúp khắc phục vấn đề này. Đó là thông tin giữa A và B sẽ được xác nhận bằng một bên trung gian mà A và B tin tưởng. Bên trung gian đó là nhà cung cấp chứng chỉ số CA. CA có một chứng chỉ số của riêng mình, CA sẽ cấp chứng chỉ số cho A và B cũng như những đối tượng khác. Chứng chỉ số sẽ giúp xác minh đối tượng đang thực hiện giao dịch. Chứng chỉ số là hoàn toàn tin cậy. Đây là giải pháp có thể dùng để khắc phục vấn đề mã khóa bí mật của bên A bị lộ. Tức là khi gửi tài liệu đã được ký, bên A sẽ gửi cả chứng chỉ CA của mình để bên B xác minh. Người khác tuy đã có được mã khóa bí mật của A nhưng sẽ không thể thực hiện giao dịch nếu không có chứng chỉ số CA của bên A. Tuy vậy, việc cất giữ Trang 15 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 vào bảo vệ khóa bí mật vẫn phải được đặt lên hang đầu để tránh những rủi ro khống đáng có. Cơ chế chữ ký điện tử và chứng chỉ số sử dụng các thuật toán mã hóa đảm bảo không thể giả mạo CA để cấp chứng chỉ không hợp pháp, mọi chứng chỉ giả mạo đều có thể dễ dàng bị phát hiện. 2.3. Chữ ký số: Chữ ký số cũng chính là chữ ký điện tử, chữ ký số là tập con của chữ ký điện tử. Do vậy, chúng ta có thể dùng định nghĩa chữ ký điện tử để định nghĩa chữ ký số. Chữ ký số là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video...) nhằm mục đích xác định người chủ của dữ liệu đó. Chữ ký số và chữ ký điện thử thường được dùng thay thế cho nhau tuy không chính xác tuyệt đối. Nói chung, chữ ký số là khái niệm dùng mật mã để mã hóa xác định chủ của văn bản. Còn chữ ký điện tử là một khái niệm chung chỉ tất cả các phương pháp mã hóa mà không nhất thiết phải là mật mã và mục đích chung vẫn là xác định người chủ của văn bản. Trang 16 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 3. Thuật toán mã hóa công khai RSA: Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai. Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. 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 khóa 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 khóa đủ lớn. 3.1. Mô tả sơ lược: Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và 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 mã hóa và giải mã. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng. Nói cách khác, mọi người đều có thể mã 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ã được. Nhìn vào mô tả khái quát về thuật toán RSA, chúng ta thấy cách thức mã hóa tương tự như chữ ký điện tử. Vậy nên đây là thuật toán điển hình để tạo ra chữ ký điện tử. 3.2. Tạo khóa: Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực hiện bằng cách thử xác suất các số ngẫu nhiên có độ lớn phù hợp (dùng phép kiểm tra nguyên tố cho phép loại bỏ hầu hết các hợp số). Bên cạnh đó, cần tránh sử dụng các phương pháp tìm số ngẫu nhiên mà kẻ tấn công có thể lợi dụng để biết thêm thông tin về việc lựa chọn (cần dùng các bộ tạo số ngẫu nhiên tốt). Yêu cầu ở đây là các số được lựa chọn cần đồng thời ngẫu nhiên và không dự đoán được. Đây là các yêu cầu khác nhau: một số có thể được lựa chọn ngẫu nhiên (không có kiểu mẫu trong kết quả) nhưng nếu có thể dự đoán được dù chỉ một phần thì an ninh của thuật toán cũng không được đảm bảo. Nếu kẻ tấn công đoán được một nửa chữ số của p hay q thì chúng có thể dễ dàng tìm ra nửa còn lại. Trang 17 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 Một điểm nữa cần nhấn mạnh là khóa bí mật d phải đủ lớn. Mặc dù e đã từng có giá trị là 3 nhưng hiện nay các số mũ nhỏ không còn được sử dụng do có thể tạo nên những lỗ hổng. Giá trị thường dùng hiện nay là 65537 vì được xem là đủ lớn và cũng không quá lớn ảnh hưởng tới việc thực hiện hàm mũ. Chúng ta cần tạo ra một cặp khóa Ký và Xác nhận theo các bước sau: - Bước 1: Chọn 2 số nguyên tố lớn p và q với (p # q), lựa chọn ngẫu nhiên và độc lập. - Bước2: Tính số hàm modulo của hệ thống: n= p*q. - Bước3: Tính: Giá trị hàm số Ơle: Φ(n)= (p-1)(q-1). - Bước4: Chọn một số tự nhiên khóa mã e sao cho (1 <= e <= Φ(n)) và là số nguyên tố cùng nhau với Φ(n). - Bước5: Tính khóa giải mã d sao cho: d*e ≡ 1 (mod Φ(n)). Với 0<=d<= Φ(n) Khi đó ta phân phát khóa công khai: KU= {e,n}. Và giữ khóa bí mật: KR= {d,n}. * Khóa công khai bao gồm: - n, môđun. - e, số mũ công khai. * Khóa bí mật bao gồm: - n, môđun (xuất hiện cả trong khóa bí mật và khóa công khai). - d, số mũ bí mật. 3.3. Độ an toàn của 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. Trang 18 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 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ừ khóa công khai và có thể giải mã theo đúng quy trình của 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 = pq thì có thể dễ dàng tìm được giá trị (p-1)(q1) và qua đó xác định d từ e. Hiện nay chưa có một phương pháp nào trên máy tính được tìm ra để giải bài toán này trong thời gian đa thức, nhưng điều đó không có nghĩa là thuật toán giải bài toán này không có. Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên tố có độ dài 663 bít với phương pháp phân tán trong khi khóa của RSA có độ dài từ 1024 tới 2048 bít. Một số chuyên gia cho rằng khóa 1024 bít có thể sớm bị phá vỡ (cũng có nhiều người phản đối việc này). Với khóa 4096 bít thì hầu như không có khả năng bị phá vỡ trong tương lai gần. Do đó, người ta thường cho rằng RSA đảm bảo an toàn với điều kiện n được chọn đủ lớn. Nếu n có độ dài 256 bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ với máy tính cá nhân dùng các phần mềm có sẵn. Nói chung, chúng ta không thể đảm bảo chắc chắn có một phương pháp mã hóa nào không có thuật toán để giải, đặc biệt là thời kỳ công nghệ thông tin ngày càng phát triển như hiện nay. Tuy nhiên trong tương lại gần, RSA đang và sẽ là thuật toán mã hóa an toàn. 4. Sơ lược về hàm băm MD5: 4.1. Sơ lược: Hàm băm là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đối tượng trong lập trình hướng đối tượng, v.v...) Băm văn bản là một bước rất quan trọng khi ký chữ ký điện tử lên văn bản. Để có thể băm văn bản chúng ta cần một hàm băm. Hiện nay, hàm băm phổ biến nhất là MD5. MD5 (1991) là hàm băm được cải tiến từ MD4 (1990) do Ronald Rivest phát minh ra. Trước đó ông cũng đã đưa ra sử dụng hàm băm MD2. Trang 19 Đề tài: Tìm hiểu về chữ ký điện tử Nhóm 11 4.2. Tóm tắt giải thuật: MD5 chuyển một đoạn thông tin chiều dài thay đổi thành một kết quả chiều dài không đổi 128 bit. Mẩu tin đầu vào được chia thành từng đoạn 512 bit; mẩu tin sau đó được độn sao cho chiều dài của nó chia chẵn cho 512. Công việc độn vào như sau: đầu tiên một bit đơn, 1, được gắn vào cuối mẩu tin. Tiếp theo là một dãy các số 0 sao cho chiều dài của mẩu tin lên tới 64 bit ít hơn so với bội số của 512. Những bit còn lại được lấp đầy bằng một số nguyên 64-bit đại diện cho chiều dài của mẩu tin gốc. Giải thuật MD5 chính hoạt động trên trạng thái 128-bit, được chia thành 4 từ 32bit, với ký hiệu A, B, C và D. Chúng được khởi tạo với những hằng số cố định. Giải thuật chính sau đó sẽ xử lý các khối tin 512-bit, mỗi khối xác định một trạng thái. Quá trình xử lý khối tin bao gômg bốn giai đoạn giống nhau, gọi là vòng; mỗi vòng gồm có 16 tác vụ giống nhau dựa trên hàm phi tuyến F, cộng mô đun, và dịch trái. 4.3. Khả năng bị tấn công: Vì MD5 chỉ dò qua dữ liệu một lần, nếu hai tiền tố với cùng bảng băm được xây nên, thì cùng một hậu tố có thể cùng được thêm vào để khiến cho đụng độ dễ xảy ra. Tức là hai dữ liệu vào X và Y hoàn toàn khác nhau nhưng có thể ra được một kết quả băm giống nhau. Tuy nhiên xác suất để xảy ra điều này là khá nhỏ. Vì những kỹ thuật tìm đụng độ hiện nay cho phép các trạng thái băm trước đó được xác định một cách ngẫu nhiên, có thể tìm thấy xung đột đối với bất kỳ tiền tố mong muốn nào; có nghĩa là, đối bất kỳ một chuỗi các ký tự X cho trước, hai tập tin đụng độ có thể được xác định mà đều bắt đầu với X. Tất cả những gì cần để tạo ra hai tập tin đụng độ là một tập tin mẫu, với một khối dữ liệu 128 byte được xếp trên giới hạn 64 byte, có thể thay đổi tự do bằng giải thuật tìm va chạm. Vừa rồi, một số dự án đã tạo ra "bảng cầu vồng" MD5 có thể dễ dàng tiếp cận trực tuyến, và có thể được dùng để dịch ngược nhiều bảng băm MD5 thành chuỗi mà có thể đụng độ với đầu nhập gốc, thường dùng với mục đích bẻ mật khẩu. Trang 20
- Xem thêm -

Tài liệu liên quan