viii DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT CA Certificate Authority Nhà cung cấp chứng thực số FIPS Federal Information Processing Standard Tiêu chuẩn xử lý thông tin liên bang ITU Inter
Trang 1i
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng cá nhân tôi, không sao chép của ai do tôi tự nghiên cứu, đọc, dịch tài liệu, tổng hợp và thực hiện dưới sự hướng dẫn của PGS.TS Đoàn Văn Ban Nội dung lý thuyết trong trong luận văn tôi có sử dụng một số tài liệu tham khảo như đã trình bày trong phần tài liệu tham khảo Các số liệu, chương trình phần mềm và những kết quả trong luận văn là trung thực và chưa được công bố trong bất kỳ một công trình nào khác
Hà Nội, ngày 15 tháng 11 năm 2016
Tác giả luận văn
Nguyễn Tiến Độ
Trang 2ii
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời biết ơn sâu sắc đến PGS.TS Đoàn Văn Ban người đã tận tình hướng dẫn, chỉ bảo, giúp đỡ em trong suốt quá trình làm luận văn
Em cũng xin gửi lời cảm ơn đến các thầy cô giáo khoa Sau Đại học, Viện Đại học Mở Hà Nội, đã truyền đạt những kiến thức và giúp đỡ em trong suốt quá trình học của mình
Tôi cũng xin gửi lời cảm ơn tới các lãnh đạo phòng Văn hóa và Thông tin, UBND thị xã Từ Sơn đã tạo điều kiện thuận lợi cho tôi tham gia khóa học và trong suốt quá trình hoàn thành luận văn
Và cuối cùng tôi xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn bè những người đã ủng hộ, động viên tạo mọi điều kiện giúp đỡ để tôi có được kết quả như ngày hôm nay
Hà Nội,ngày 15 tháng 11 năm 2016
Tác giả luận văn
Nguyễn Tiến Độ
Trang 3iii
MỤC LỤC
Trang Trang phụ bìa
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH SÁCH BẢNG vi
DANH SÁCH HÌNH VẼ vii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT viii
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Tổng quan vấn đề nghiên cứu 2
3 Mục đích và nghiên cứu 2
4 Đối tượng và phạm vi nghiên cứu 2
5 Phương pháp nghiên cứu 3
6 Nội dung của luận văn 3
Chương 1 AN TOÀN THÔNG TIN VÀ CÁC HỆ MÃ HÓA THÔNG DỤNG 4
1.1 Tổng quan về bảo mật an toàn thông tin 4
1.1.1 Tại sao cần bảo đảm an toàn thông tin 4
1.1.2 Mục tiêu của An toàn thông tin 5
1.1.3 Các chiến lược bảo đảm An toàn thông tin 5
1.1.4 Các giải pháp bảo đảm An toàn thông tin 5
1.1.5 Các công cụ bảo đảm An toàn thông tin 6
1.2 Một số khái niệm toán học 8
1.2.1 Không gian Zp 8
1.2.2 Hàm Phi Euler và Quan hệ đồng dư 9
1.3 Hệ mã khóa bí mật 9
1.3.1 Khái quát hệ mã hóa khóa bí mật 9
1.3.2 Hệ mã hóa cổ điển 10
1.4 Hệ mã khóa công khai 13
Trang 4iv
1.4.1 Hệ mã hóa RSA 13
1.4.2 Hệ mã hóa Elgamal 15
1.5 Kết luận chương 18
Chương 2 CHỮ KÝ SỐ 19
2.1 Giới thiệu 19
2.1.1 Khái niệm 19
2.1.2 Sơ đồ chữ ký số 19
2.1.3 Quy trình tạo và kiểm tra chữ ký số 20
2.2 Hàm băm 21
2.2.1 Khái niệm hàm băm 21
2.2.2 Phân loại hàm băm 22
2.2.3 Các hàm băm thông dụng 22
2.2.4 Kết hợp hàm băm vào chữ ký số 26
2.3 Thuật toán chữ ký số 26
2.3.1 Thuật toán RSA 26
2.3.2 Thuật toán DSA 30
2.3.3 Chuẩn chữ ký số DSS 33
2.4 Chứng thực khóa công khai 35
2.4.1 Khái niệm 35
2.4.2 Ứng dụng 36
2.4.3 Phân loại 37
2.5 Tính pháp lý và mô hình chữ ký số trong và ngoài nước 37
2.5.1 Tính pháp lý của chữ ký số 37
2.5.2 Mô hình chữ ký số 40
2.6 Kết luận chương 44
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG CHỮ KÝ SỐ TRONG QUẢN LÝ VĂN BẢN 45
3.1 Bài toán quản lý văn bản của tỉnh Bắc Ninh 45
3.1.1 Những hạn chế của các giải pháp quản lý công văn theo phương pháp truyền thống 45
Trang 5v
3.1.2 Yêu cầu giải pháp quản lý công văn theo phương pháp hiện đại vào
quản lý của tỉnh Bắc Ninh 46
3.2 Mô hình phần mềm quản lý văn bản và điều hành tỉnh Bắc Ninh 47
3.2.1 Giới thiệu chung 47
3.2.2 Mô hình quản lý văn bản liên thông giữa các cơ quan trên địa bàn tỉnh Bắc Ninh 48
3.3 Các chức năng của chương trình 49
3.3.1 Các tính năng hệ thống 49
3.3.2 Các yêu cầu phi chức năng 55
3.4 Cài đặt chương trình chữ ký số để bảo mật và xác thực tài liệu gốc 55
3.4.1 Các bước thực hiện của chương trình 55
3.4.2 Giao diện chương trình 58
3.4.3 Thử nghiệm và đánh giá 59
3.5 Kết luận chương 60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61
TÀI LIỆU THAM KHẢO 63
Trang 6vi
DANH SÁCH BẢNG
Bảng 1.1: So sánh hai hệ mã hóa công khai điển hình 17Bảng 2.1: Mức độ an toàn của RSA [3, tr.219] 30
Trang 7vii
DANH SÁCH HÌNH VẼ
Hình 1.1: Giải thuật mã hóa và giải mã RSA [16] 14
Hình 2.1: Sơ đồ quy trình tạo và kiểm tra chữ ký số [8, tr.97] 20
Hình 2.2: Hoạt động của một hàm băm [8, tr.104] 22
Hình 2.3: Sơ đồ chữ ký số RSA [7] 27
Hình 2.4: Sơ đồ mã hóa công khai 28
Hình 2.5: Hệ thống CA Chính phủ Hàn Quốc [13] 41
Hình 2.6: Mô hình hệ thống CA của Việt Nam [13] 42
Hình 3.1: Mô hình trao đổi liên thông văn bản điện tử của các cơ quan trên phần mềm quản lý văn bản và điều hành tỉnh Bắc Ninh 49
Hình 3.2: Tiếp nhận công văn đến 49
Hình 3.3: Cập nhật công văn đi 50
Hình 3.4: Tạo cặp khóa bí mật và công khai 52
Hình 3.5: Văn bản đã mã hóa 52
Hình 3.6: Văn bản được giải mã 53
Hình 3.7: Ký văn bản 53
Hình 3.8: Xác thực chữ ký đúng 54
Hình 3.9: Chữ ký hoặc văn bản không toàn vẹn 54
Hình 3.10: Tạo cặp khóa bí mật, công khai 55
Hình 3.11: Sơ đồ quá trình ký vào tài liệu điện tử dùng khóa bí mật 56
Hình 3.12: Sơ đồ quá trình xác thực chữ ký điện tử dùng khóa công khai 57
Hình 3.13: Đăng nhập hệ thống 58
Hình 3.14: Quản lý văn bản 58
Hình 3.15: Chương trình ký văn bản điện tử 59
Trang 8viii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
CA Certificate Authority Nhà cung cấp chứng thực số FIPS Federal Information Processing Standard Tiêu chuẩn xử lý thông tin liên
bang ITU International Telecommunication Union Tổ chức viễn thông quốc tế thuộc
Liên hiệp quốc MD5 Message Digest 5 Giải thuật Tiêu hóa tin 5
NIST National Institute Of Standards And
RSA Rivest, Shamir, Adleman Một thuật toán mật mã hóa khóa
công khai SHA Secure Hash Algorithm Giải thuật băm an toàn
URL Uniform Resource Locator Định vị Tài nguyên xác định DSS Digital Signature Standard Chuẩn chữ ký số
DSA Digital Signature Algorithm Giải thuật ký số
XKMS XML Key Management Specification Quản lý khóa cho các thực thể
theo cú pháp XML GnuPG GNU Privacy Guard Một chương trình mã hóa dữ liệu
và tạo chữ ký số PGP Pretty Good Privacy Bảo mật rất mạnh
S/MIME Security/Multipurpose Internet Mail
Trang 91
MỞ ĐẦU
1 Tính cấp thiết của đề tài
Thực hiện ứng dụng công nghệ thông tin vào hoạt động, năm 2014, các cơ quan nhà nước tỉnh Bắc Ninh đã xây dựng và phát triển phần mềm Quản lý văn bản
và điều hành nhằm thực hiện việc quản lý, điều hành văn bản nội bộ trong cơ quan Qua từng năm, phần mềm này đã được nâng cấp giúp cho các cơ quan điều hành công việc và giao dịch văn bản trong nội bộ các đơn vị có hiệu quả thiết thực, giúp cải cách hành chính và tạo phong cách làm việc hiện đại cho cán bộ, công chức Phần mềm chạy trên nền web, các cán bộ, công chức, viên chức của các cơ quan, đơn vị được cấp tài khoản truy nhập để sử dụng Phần mềm có 2 chức năng
cơ bản đó là: Chức năng quản lý văn bản đến và chức năng quản lý văn bản đi Ban đầu, mỗi cơ quan có một phần mềm riêng, chỉ tiếp nhận và chuyển văn bản trong nội bộ cơ quan mình Sau một thời gian hầu hết các cơ quan tại Bắc Ninh
đã sử dụng phần mềm này, lúc này nảy sinh nhu cầu liên thông văn bản từ cơ quan này sang cơ quan khác, liên thông văn bản vừa nhanh lại vừa không phải scan, văn bản đi của cơ quan này là văn bản đến của cơ quan kia và ngược lại Vì vậy, Bắc Ninh đã nâng cấp phần mềm và liên thông văn bản giữa các cơ quan lại với nhau Tuy nhiên, trong quá trình liên thông văn bản lại phát sinh những khó khăn
đó là: các văn bản giao dịch, trao đổi trên phần mềm tính bảo mật chưa cao, mặc dù
đã dùng biện pháp các văn bản đi văn thư lấy chữ ký, con dấu và scan gắn vào phần mềm và gửi đi nhưng độ tin tưởng không cao Chính vì vậy, đòi hỏi văn bản phải được ký số và lưu chuyển trên phần mềm đáp ứng yêu cầu xác định tính đúng đắn
và toàn vẹn của văn bản khi nhận
Xuất phát từ lý do đó, đề tài đặt vấn đề nghiên cứu về Chữ ký số và ứng dụng trong quản lý văn bản điện tử tại tỉnh Bắc Ninh để xác thực nguồn gốc,
tính toàn vẹn của dữ liệu nhận được trên phần mềm quản lý, điều hành của các cơ quan tỉnh Bắc Ninh
Trang 102
2 Tổng quan vấn đề nghiên cứu
Hiện nay, các giao dịch điện tử ngày càng trở nên phổ biến Để bảo đảm an toàn cho các giao dịch này, trong quản lý các văn bản, chứng từ, … cần phải sử dụng đến giải pháp chữ ký số Chữ ký số được sử dụng để bảo đảm tính bảo mật, tính toàn vẹn, tính chống chối bỏ của các thông tin giao dịch trên mạng Internet Chữ ký số tương đương với chữ ký tay nên có giá trị sử dụng trong các ứng dụng giao dịch điện tử với máy tính và mạng Internet cần tính pháp lý cao
Hơn nữa, ngoài việc là một phương tiện điện tử được pháp luật thừa nhận về tính pháp lý, chữ ký số còn là một công nghệ mã hóa và xác thực rất mạnh Nó có thể giúp bảo đảm an toàn, bảo mật cao cho các giao dịch trực tuyến, nhất là các giao dịch chứa các thông tin liên quan đến tài chính
Việc ứng dụng chữ ký số sẽ đem lại cho doanh nghiệp, tổ chức rất nhiều lợi ích như: Tiết kiệm chi phí giấy tờ, thời gian luân chuyển trong hoạt động quản lý công văn, giấy tờ, thư điện tử và đảm bảo độ an toàn và bảo mật thông tin, …
- Xây dựng phần mềm ký số các tài liệu văn bản
4 Đối tượng và phạm vi nghiên cứu
* Đối tượng nghiên cứu:
- Tìm hiểu về các giải pháp mã hoá để bảo mật thông tin
- Nghiên cứu những phương pháp, kỹ thuật tạo chữ ký số trên các tài liệu, văn bản điện tử
Trang 113
5 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Tìm hiểu tài liệu, đọc hiểu các kiến thức cơ bản, đề xuất các phương pháp tích hợp chữ ký số trên phần mềm
- Phương pháp nghiên cứu thực nghiệm: Cài đặt thử nghiệm ký số tại UBND thị xã Từ Sơn tỉnh Bắc Ninh
- Phương pháp trao đổi khoa học: Trao đổi hướng nghiên cứu với người hướng dẫn, các đồng nghiệp để đề xuất và giải quyết các nội dung luận văn đề ra
6 Nội dung của luận văn
Luận văn được trình bày trong 3 chương, phần kết luận và hướng phát triển
Chương 1 AN TOÀN THÔNG TIN VÀ CÁC HỆ MÃ HÓA THÔNG DỤNG
Chương này trình bày những vấn đề mang tính cơ sở khoa học, nền tảng cho việc sử dụng chữ ký số vào việc bảo mật và xác thực thông tin
Chương 2 CHỮ KÝ SỐ
Chương này tìm hiểu tổng quan về chữ ký số và một số thuật toán chữ ký số thông dụng hiện nay: RSA, DSA, DSS Giới thiệu một số hàm băm phổ biến dùng trong thuật toán chữ ký số như MD5, SHA - 1
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG CHỮ KÝ SỐ TRONG QUẢN LÝ VĂN BẢN
Chương này giới thiệu mô hình phần mềm quản lý văn bản và điều hành tỉnh Bắc Ninh và xây dựng chương trình ứng dụng chữ ký số để bảo vệ và xác thực tài liệu gốc
Trang 124
Chương 1 AN TOÀN THÔNG TIN VÀ CÁC HỆ MÃ HÓA
THÔNG DỤNG 1.1 Tổng quan về bảo mật an toàn thông tin
1.1.1 Tại sao cần bảo đảm an toàn thông tin
Ngày nay, cùng với sự phát triển của mạng máy tính, các ứng dụng của Công nghệ thông tin ngày càng trở nên phổ biến góp phần không nhỏ vào sự nghiệp công nghiệp hóa, hiện đại hóa đất nước, đáp ứng nhu cầu về vật chất và tinh thần của nhân dân Song song với những lợi ích do Công nghệ thông tin đem lại, chúng ta cũng phải đối mặt với nhiều nguy cơ, rủi ro tiềm ẩn khi điểm yếu của các hệ thống thông tin bị khai thác, lợi dụng Trong khi đó các trang thông tin điện tử ngày càng phát triển mạnh mẽ với thông tin đăng tải phong phú, đa dạng về mọi chủ đề của đời sống xã hội Cũng chính vì vậy, môi trường mạng cũng bị lợi dụng để đưa thông tin sai lệch, quảng cáo không trung thực, lừa đảo qua mạng,
Thời gian gần đây các tấn công trên môi trường mạng xuất hiện ngày càng nhiều, từ hình thức làm lây lan virus, cho đến làm ngừng trệ hoạt động của mạng, lấy cắp dữ liệu nhạy cảm như: Thông tin cá nhân, tài khoản ngân hàng, mật khẩu truy cập của người dùng Thực tế, tại Việt Nam, những vụ việc tương tự cũng đã bắt đầu diễn ra Trong năm 2013, hệ thống giám sát vi rút của Bkav đã phát hiện hàng loạt email đính kèm file văn bản chứa phần mềm gián điệp được gửi tới các cơ quan, doanh nghiệp Do từ trước tới nay các file văn bản vẫn được cho là an toàn, hầu hết người nhận được email đã mở file đính kèm và bị nhiễm vi rút dạng spyware (phát tán phần mềm gián điệp) khai thác lỗ hổng của phần mềm Microsoft Office (bao gồm cả Word, Excel và PowerPoint) Khi xâm nhập vào máy tính, vi rút này âm thầm kiểm soát toàn bộ máy tính nạn nhân, mở cổng hậu (backdoor), cho phép hacker điều khiển máy tính nạn nhân từ xa Chúng cũng nhận lệnh hacker tải các vi rút khác về máy tính để ghi lại thao tác bàn phím, chụp màn hình, lấy cắp tài liệu Trước tình hình mất an toàn thông tin ở nước ta diễn biến phức tạp, xuất hiện nhiều nguy cơ đe dọa nghiêm trọng đến việc ứng dụng công nghệ thông tin phục vụ phát triển kinh tế – xã hội và đảm bảo quốc phòng, an ninh Vì vậy, vấn đề đảm bảo
Trang 135
an toàn thông tin ngày càng trở nên cấp thiết đối với mọi cá nhân, tổ chức trong xã hội [5].
1.1.2 Mục tiêu của An toàn thông tin
• Bảo đảm bí mật: Thông tin không bị lộ đối với người không được phép
• Bảo đảm toàn vẹn: Ngăn chặn hay hạn chế việc bổ sung, loại bỏ và sửa dữ liệu không được phép
• Bảo đảm xác thực: Xác thực đúng thực thể cần kết nối, giao dịch, đúng thực thể có trách nhiệm về nội dung thông tin
• Bảo đảm sẵn sàng: Thông tin sẵn sàng cho người dùng hợp pháp
1.1.3 Các chiến lược bảo đảm An toàn thông tin
a/ Cấp quyền hạn tối thiểu
Nguyên tắc này tức là “Hạn chế sự ưu tiên”: Mỗi đối tượng sử dụng hệ thống chỉ được cấp phát một số quyền hạn nhất định đủ dùng cho công việc của mình b/ Phòng thủ theo chiều sâu
Nguyên tắc này là tạo nhiều lớp bảo vệ khác nhau cho hệ thống
1.1.4 Các giải pháp bảo đảm An toàn thông tin
a/ Phương pháp che giấu, bảo đảm toàn vẹn và xác thực thông tin
- “Che” dữ liệu (Mã hóa): thay đổi hình dạng dữ liệu gốc
- “Giấu” dữ liệu: cất giấu dữ liệu này trong môi trường dữ liệu khác
- Bảo đảm toàn vẹn và xác thực thông tin
Để thực hiện được phương pháp này người ta thường sử dụng các kỹ thuật:
Mã hóa, hàm băm, giấu tin, ký số,…
b/ Phương pháp kiểm soát lối vào ra của thông tin
- Kiểm soát, ngăn chặn các thông tin vào ra hệ thống máy tính
- Kiểm soát, cấp quyền sử dụng các thông tin trong hệ thống máy tính
- Kiểm soát, tìm diệt “sâu bọ” (virus) vào ra hệ thống máy tính
Để thực hiện được phương pháp này người ta thường sử dụng các kỹ thuật sau: Mật khẩu, Mạng riêng ảo, tường lửa, nhận dạng, xác thực thực thể, cấp quyền hạn c/ Phát hiện và xử lý các lỗ hổng trong an toàn thông tin
- Các lỗ hổng trong các Thuật toán hay giao thức mật mã, giấu tin
Trang 14Mật mã là kỹ thuật được dùng lâu đời trong việc bảo đảm An toàn thông tin
cụ thể là trong thông tin liên lạc Về phương diện lịch sử, mật mã học gắn liền với quá trình mã hóa; điều này có nghĩa là nó gắn với các cách thức để chuyển đổi thông tin từ dạng này sang dạng khác nhưng ở đây là từ dạng thông thường có thể nhận thức được thành dạng không thể nhận thức được, làm cho thông tin trở thành dạng không thể đọc được nếu như không có các kiến thức bí mật Quá trình mã hóa được sử dụng chủ yếu để đảm bảo tính bí mật của các thông tin quan trọng, chẳng hạn trong công tác tình báo, quân sự hay ngoại giao cũng như các bí mật về kinh tế, thương mại
Trong những năm gần đây, lĩnh vực hoạt động của mật mã học đã được mở rộng: Trong khi mật mã học cổ điển chủ yếu dùng để che giấu dữ liệu thì mật mã học hiện đại cung cấp cơ chế cho nhiều hoạt động hơn và có một loạt các ứng dụng như: chứng thực khóa công khai, chữ ký số, bầu cử điện tử hay tiền điện tử Ngoài
ra, những người không có nhu cầu thiết yếu đặc biệt về tính bí mật cũng sử dụng các công nghệ mật mã hóa, thông thường được thiết kế và tạo lập sẵn trong các cơ
sở hạ tầng của công nghệ tính toán và liên lạc viễn thông
Mật mã học là khoa học nghiên cứu cơ sở lý thuyết và công nghệ để thực hiện việc xây dựng và sử dụng các hệ thống mật mã Mật mã học là một lĩnh vực liên quan đến các kỹ thuật ngôn ngữ và toán học để đảm bảo an toàn thông tin Các dạng cổ nhất của mật mã hóa chủ yếu liên quan với các kiểu mẫu trong ngôn ngữ Gần đây thì tầm quan trọng đã thay đổi và mật mã hóa sử dụng và gắn liền nhiều hơn với toán học, cụ thể là toán học rời rạc, bao gồm các vấn đề liên quan đến lý thuyết số, lý thuyết thông tin, độ phức tạp tính toán, thống kê và tổ hợp Mật mã học
là khoa học nghiên cứu mật mã: tạo mã và thám mã
Thám mã là lĩnh vực khoa học nghiên cứu, tìm kiếm yếu điểm của các hệ mật từ đó đưa ra phương pháp tấn công các hệ mật đó Mật mã và thám mã là hai
Trang 157
lĩnh vực đối lập nhau nhưng gắn bó mật thiết với nhau Không thể xây dựng một hệ mật tốt nếu không hiểu sâu về thám mã Thám mã chỉ ra yếu điểm của hệ mật Yếu điểm này có thể được sử dụng để tấn công hệ mật này nhưng cũng có thể được sử dụng để cải tiến hệ mật cho tốt hơn
* Khái niệm mã hóa (Encryption) [8, tr.17]
Mã hóa là phương pháp để biến thông tin (phim ảnh, văn bản, hình ảnh ) từ định dạng thông tin ban đầu (dạng tường minh) sang dạng thông tin ẩn tàng, với mục đích giữ bí mật thông tin đó và không thể hiểu được nếu không có phương tiện giải mã
Giải mã là phương pháp để đưa từ dạng thông tin đã được mã hóa về dạng thông tin ban đầu, quá trình ngược của mã hóa
* Khái niệm chữ ký số (Digital Signature) [3, tr.191]
Chữ ký số được biết đến như một công nghệ xác thực, đảm bảo an ninh, an toàn cho giao dịch trên môi trường Internet Chữ ký số sẽ giải quyết vấn đề toàn vẹn
dữ liệu và là bằng chứng chống sự chối bỏ trách nhiệm trên nội dung đã ký, giúp cho các doanh nghiệp, tổ chức, cá nhân yên tâm với các giao dịch điện tử của mình trong môi trường Internet Chữ ký số là một dạng chữ ký điện tử, nó dựa trên công nghệ mã hóa công khai (RSA): mỗi người dùng phải có 1 cặp khóa (keypair) gồm khóa công khai (public key) và khóa bí mật (private key)
Khi gửi một tài liệu số có chữ ký trên đó, người ta phải gửi cả hai file: một file tài liệu và một file chữ ký Nhờ đó mới kiểm tra được có đúng chữ ký đó ký trên tài liệu đi kèm hay không
b/ Giấu tin (Steganography) [6, tr.161]
* Khái niệm Giấu tin
Giấu tin là giấu thông tin này vào trong một thông tin khác Thông tin được giấu vào bên trong một thông tin khác sẽ khó bị phát hiện vì người ta khó nhận biết được là đã có một thông tin được giấu vào bên trong Theo nghĩa rộng, giấu tin cũng là hệ mật mã nhằm đảm bảo tính bí mật của thông tin
* Khái niệm Thủy vân (WaterMaking) [13]
Trang 16Ví dụ: Giấu một thông tin sở hữu của người chủ vào trong tác phẩm (tài liệu số) của họ, nếu ai sử dụng trái phép tác phẩm đó, thì tin được giấu sẽ là vật chứng
để chứng minh quyền hợp pháp của người chủ Đó là ứng dụng để bảo vệ bản quyền tác phẩm số
1.2 Một số khái niệm toán học
1.2.1 Không gian Z p
Zp được định nghĩa là tập hợp các số tự nhiên nhỏ hơn n Zp = {1,2, ,p-1}
Zp* được định nghĩa là tập hợp các số tự nhiên nhỏ hơn n và nguyên tố cùng nhau với n Zp* = {x/x N, x< p, gcd (x,p)=1}
Trong không gian Zp, các phép toán đều được thực hiện theo modulo n Phép cộng phép trừ và phép nhân được thực hiện bình thường như trong không gian Z, tuy nhiên kết quả cuối cùng phải được tính theo modulo n
Phép chia trong không gian Zp liên quan tới khái niệm phần tử nghịch đảo Phần tử nghịch đảo của a ∈ Zp định nghĩa là b ∈ Zp thỏa mãn
a.b = 1(mod n), ký hiệu b = (mod n)/a
Trang 1717 ≡ 5 (mod 3) vì chia 17 và 5 cho 3, được cùng số dư là 2
Nhận xét: Các mệnh đề sau đây là tương đương:
- Nếu a ≡ b(mod n) thì b ≡ a(mod n)
- Nếu a ≡ b(mod n) và b ≡ c(mod n) thì a ≡ c(mod n)
- Nếu a ≡ b(mod n), c ≡ d(mod n) thì a ± c ≡ b ± d(mod n)*a*c ≡ b*d(mod n)
1.3 Hệ mã khóa bí mật
1.3.1 Khái quát hệ mã hóa khóa bí mật
Trang 181.3.2 Hệ mã hóa cổ điển
Trong hệ mã hóa này cả bản mã và bản rõ là dãy các ký tự thuộc bảng chữ cái tiếng Anh, bảng ký tự này gồm có 26 ký tự, được đánh số từ 0 đến 25, ta có thể đồng nhất nó với tập Z26
a/ Hệ mã hóa dịch chuyển
Sơ đồ các hệ mật mã dịch chuyển được định nghĩa như sau:
S = (P, C, K, E, D ) trong đó P = C = K = Z26
Với mọi x, y ∈ Z26, k∈K các hàm E và D được cho bởi [3]:
Hàm mã hóa: y= ek(x) = (x+k) mod 26 (1.1) Hàm giải mã: x= dk(y) = (y – k) mod 26 (1.2) Các hệ mật mã được xác định như vậy là đúng vì với mọi x, y ∈ Z26 ta đều có:
dk(ek(x)) = (x+k) - k mod 26 = x (1.3) Các hệ mã chuyển dịch được sử dụng từ rất sớm, theo truyền thuyết, hệ mã
đó với k=3 đã được dùng bởi J Caesar từ đế quốc La Mã và được gọi là hệ mã Caesar [1]
Trang 1911
krpqdbwurlqdnjghs
Để giải bản mật mã đó ta chỉ cần chuyển nó lại dưới dạng số được dãy y, rồi thực hiện thuật toán giải mã, tức là trừ từng số hạng với 3 (theo modul 26), được lại dãy x, chuyển thành dãy ký tự là được bản rõ ban đầu
Các hệ mật mã chuyển dịch tuy dễ sử dụng, nhưng việc thám mã cũng khá dễ dàng, số các khóa có thể có là 26; nhận được một bản mã, người thám mã chỉ cần thử dùng lần lượt tối đa là 26 khóa đó để giải mã sẽ tìm ra khóa đã dùng và cả bản rõ
b/ Hệ mã hóa thay thế
Hệ mã hóa thay thế là hệ mã hóa trong đó mỗi ký tự của bản rõ được thay thế bằng ký tự khác trong bản mã (có thể là một chữ cái, một số hoặc một ký hiệu)
Sơ đồ các hệ mã hóa thay thế được định nghĩa như sau:
S = (P, C, K, E, D ), trong đó P = C = Z26, K là tập mọi hoán vị trên Z26 Với mọi x, y ∈ Z26, khóa k = π ∈ K các hàm E và D được cho bởi [3]:
Sơ đồ hệ mã hóa có số khóa bằng số phép hoán vị trên tập Z26, tức là 26! (26!>4.1026) khóa Do đó việc duyệt lần lượt các khóa để thám mã là không thực tế, ngay cả khi dùng máy tính Tuy vậy, có những phương pháp thám mã khác hiệu quả hơn, làm cho các hệ mật mã thay thế không thể được xem là an toàn
c/ Hệ mã hóa Hill
Trang 2012
Cũng giống như sơ đồ mã Vigenere [5, tr.30], các hệ mã này được thực hiện trên từng bộ m ký tự liên tiếp, điều khác là mỗi ký tự của bản mã được xác định bởi một tổ hợp tuyến tính (trên vành Z26) của m ký tự trong bản rõ Như vậy, khóa sẽ được cho bởi một ma trận cấp m, tức là một phần tử của K∈Zmxm Để phép biến đổi tuyến tính xác định bởi ma trận K có phép nghịch đảo, bản thân ma trận K cũng phải có ma trận nghịch đảo K-1 theo mod 26; mà điều kiện cần và đủ để K có nghịch đảo là định thức của nó, ký hiệu detK, nguyên tố với 26 Vậy, sơ đồ mật mã Hill được định nghĩa theo sơ đồ sau:
S = (P, C, K, E, D ) Trong đó P = C = m
83
số và tách thành từng đoạn 2 số liên tiếp:
Trang 211.4 Hệ mã khóa công khai
1.4.1 Hệ mã hóa RSA
Hệ mã hóa khóa công khai RSA được đề xuất bởi Ron Rivest, Adi Shamir
và Len Adleman (MIT) vào năm 1977
Hệ mã hóa sử dụng phương pháp mã hóa khối với mỗi khối là một số
nguyên < n: Thông thường kích cỡ n là 1024 bit ≈ 309 chữ số thập phân
Quá trình tạo khóa cho hệ mật RSA
Giả sử An và Ba 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, An đầu tiên cần tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo 6 bước sau:
- Chọn 2 số nguyên tố lớn khác nhau p, q thỏa mãn điều kiện p ≈ q
- Tính tích của nó n= p q*
- Tính giá trị hàm Phi Euler của n: ϕ( )n =(p− 1)(q− 1)
- Chọn số nguyên e, sao cho 1 < e < ϕ(n)và gcd(e,ϕ(n))=1
- Tính giá trị d, 1 < d < ϕ(n) thỏa mãn điều kiện:e d* ≡1mod ( )ϕ n , ta dùng phương pháp thử dần các số nguyên x sao cho có được d = (x*ϕ(n)+1)/e là số nguyên
- Khóa công khai bao gồm: n và e Khóa mật: d còn p,q và ϕ(n)thường là xóa sau khi tính toán khóa
Trang 2315
Ví dụ 1.3: Mã hóa bản rõ NA
1/ Sinh khóa (e, d):
Chọn bí mật số nguyên tố lớn p = 53, q = 61, n = p*q = 3233, công khai n Tính ( ) (ϕ n = p−1).(q−1) 52*60 3120= =
Chọn khóa công khai e là số nguyên tố cùng nhau với ϕ( )n , tức là:
Độ an toàn của hệ mã hóa RSA [5]:
1/ Hệ mã hóa RSA là tất định, tức là với một bản rõ x và một khóa bí mật a, thì chỉ có một bản mã y
2/ Hệ mật RSA an toàn khi giữ bí mật khóa giải mã a, p, q, ϕ( )n
Nếu biết được p và q thì thám mã dễ dàng vì khi đó sẽ tính được
( ) (n p 1).(q 1)
Nếu biết được ϕ( )n thì thám mã sẽ tính được a theo thuật toán Euclide mở rộng Nhưng phân tích n thành tích của p và q là rất khó Như vậy độ an toàn của hệ mật RSA phụ thuộc vào khả năng giải bài toán phân tích số nguyên dương n thành tích hai số nguyên tố lớn p và q
1.4.2 Hệ mã hóa Elgamal
Hệ mật mã Elgamal được T Elgamal đề xuất năm 1985, dựa vào độ phức tạp của bài toán tính logarit rời rạc, và sau đó đã nhanh chóng được sử dụng rộng rãi
Trang 24Với bản rõ x∈P và bản mã y∈C, với khóa k∈Kđịnh nghĩa:
- Hàm mã hóa: Chọn ngẫu nhiên bí mật r∈Z p−1, bản mã là [1]:
Trang 2517
1/ Hệ mã hóa Elgamal là không tất định, tức là với một bản rõ x và một khóa bí mật a, thì có thể có nhiều bản mã y, vì trong hàm lập mã còn có thành phần ngẫu nhiên
2/ Độ an toàn của hệ mật Elgamal dựa vào khả năng giải bài toán logarit rời rạc trong Zp Theo giả thuyết trong sơ đồ, thì bài toán này phải là khó giải
Theo công thức lập mã: y = ek(x, r) = (y1, y2), trong đó y1 = gr mod p và y2 = x*hr mod p Như vậy muốn xác định được bản rõ x từ y2, thám mã phải biết được r Giá trị r có thể tìm được từ công thức y1, nhưng gặp bài toán logarit rời rạc là khó giải
Bảng 1.1: So sánh hai hệ mã hóa công khai điển hình
Giống nhau * Ưu điểm:
- Đều là các hệ mã mật khóa công khai
- Được xây dựng dựa trên các hàm 1 chiều
- Tính an toàn được nâng cao rõ rệt so với hệ mã mật khóa bí mật,việc phân phối khóa sẽ dễ dàng hơn,số lượng khóa hệ thống quản lí cũng ít hơn
-Xây dựng cho các ứng dụng thương mại điện tử,dịch vụ chữ kí điện tử
* Nhược điểm:
- Làm việc với các số nguyên lớn => hạn chế về tốc độ xử lí khóa
- Dung lượng bộ nhớ dành cho việc trữ khóa cũng lớn Khác nhau Ưu điểm:
- là hệ mã được sử dụng rông rãi nhất dùng để mã hóa các
dữ liệu có kích thước nhỏ,có yêu cầu bảo mật cao
Ưu điểm:
- so với RSA thì Elgamal không có nhiều rắc rối về bản quyền sử dụng
Nhược điểm:
- cần gấp đôi bộ nhớ để chứa bản
mã so với các hệ mã khác.Do kích
Trang 2618
thước thông tin sau khi mã hóa gửi
đi sẽ tăng gấp đôi so với thông tin gốc
1.5 Kết luận chương
Mạng Internet đã phổ cập đến từng cán bộ công chức và đến từng cơ quan và
có thể đáp ứng đầy đủ nhu cầu gửi, nhận văn bản điện tử qua hệ thống quản lý văn bản và điều hành trong công tác quản lý nhà nước Tuy nhiên trong quá trình gửi, nhận văn bản điện tử có một yêu cầu thiết yếu là thông tin phải được bảo vệ một cách an toàn, bảo mật Một số quy định về an toàn thông tin được đưa ra như sau:
- Tính bí mật
- Tính xác thực thông tin
- Tính toàn vẹn thông tin
- Tính chống chối bỏ
Sự ra đời của hệ mật mã đã phần nào giải quyết được các yêu cầu trên Hai
hệ mật mã được nghiên cứu ở phần trên là hệ mật mã đối xứng và hệ mật mã bất đối xứng (hay hệ mật mã khóa công khai)
Chương 1 trình bày những vấn đề mang tính cơ sở khoa học, nền tảng cho việc sử dụng chữ ký số vào việc bảo mật và xác thực thông tin Khái niệm chữ ký
số, cách phân loại, thuật toán chữ ký số một số sơ đồ chữ ký hiện đang được sử dụng phổ biến sẽ được trình bày trong nội dung của chương 2
Trang 2719
Chương 2 CHỮ KÝ SỐ 2.1 Giới thiệu
2.1.1 Khái niệm
Chữ ký điện tử [3],[5],[8]
- Là một định danh điện tử được tạo ra bởi máy tính được các tổ chức sử dụng nhằm đạt được tính hiệu quả và có hiệu lực như là các chữ ký tay
- Là một cơ chế xác thực hóa cho phép người tạo ra thông điệp đính kèm một
mã số vào thông điệp giống như là việc ký một chữ ký lên một văn bản bình thường
Việc tạo chữ ký điện tử qua mã hóa giá trị băm của mỗi thông điệp quả thực không dễ dàng với những cá nhân, tổ chức không được trang bị tốt về công nghệ thông tin Nếu chỉ nhằm mục đích nhận biết và không chối bỏ, người ta thường dùng một phương pháp đơn giản hơn: đó là chữ ký số
Chữ ký số là một dạng đặc biệt của chữ ký điện tử sử dụng kỹ thuật mã hóa khóa công khai, là hình thức chữ ký điện tử được sử dụng phổ biến nhất hiện nay Trong đó mỗi người tham gia ký cần một cặp khóa bao gồm một khóa công khai và một khóa bí mật Khóa bí mật dùng để tạo chữ ký số, khóa công khai dùng để thẩm định, xác thực chữ ký số
Đúng, nếu y = Sig k (x) Ver k (x, y) = (2.1)
Sai, nếu y ≠ Sig k (x)
Trang 2820
2.1.3 Quy trình tạo và kiểm tra chữ ký số
Hình 2.1: Sơ đồ quy trình tạo và kiểm tra chữ ký số [8, tr.97]
Quy trình tạo chữ ký số:
Dùng giải thuật băm để thay đổi bản tin điện tử cần truyền đi, kết quả ta được một bản tóm lược (message digest), dùng giải thuật MD5 ta được digest dài
128 bit, dùng giải thuật SHA () ta có chiều dài 160 bit
Dùng giải thuật RSA trong quy trình ký bản tin điện tử Sử dụng khóa bí mật (private key) của người gửi để mã hóa bản tóm lược thu được ở trên
Sau đó ta gán chữ ký số vào bản tin điện tử, thu được bản tin rõ đã ký và cuối cùng là gửi bản tin đó đến địa chỉ của người nhận
Quy trình thẩm định chữ ký số:
Dùng khóa công khai (public key) của người gửi để giải mã chữ ký số của bản tin điện tử
Dùng giải thuật MD5 hoặc SHA băm bản tin đính kèm
So sánh kết quả thu được ở trên, nếu thấy trùng nhau ta kết luận bản tin điện
tử này không bị thay đổi trong quá trình truyền và bản tin này là của người gửi
Trang 2921
2.2 Hàm băm
2.2.1 Khái niệm hàm băm
Hàm băm ( hàm hash): 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 ) Giá trị băm đóng vai gần như một khóa để phân biệt các khối dữ liệu, tuy nhiên, người ta chấp nhận hiện tượng trùng khóa hay còn gọi là đụng độ và
cố gắng cải thiện giải thuật để giảm thiểu sự đụng độ đó Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp Khối dữ liệu có kích cỡ rất khác nhau nên rất khó xử lý Hàm băm được sử dụng để băm các khối dữ liệu khác nhau về cùng một cỡ như 126 bit, 256 bit Một số ứng dụng của hàm hash:
• Chống và phát hiện xâm nhập: chương trình chống xâm nhập so sánh giá trị hash của một file với giá trị trước đó để kiểm tra xem file đó có bị ai đó thay đổi hay không
• Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng bằng cách kiểm tra giá trị hash của thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho
Ví dụ về hoạt động của một hàm băm:
Hai chuỗi dữ liệu gốc chỉ khác nhau một từ (runs và walks) nhưng qua hàm băm cho hai giá trị băm hoàn toàn khác nhau So sánh hai giá trị băm thấy khác nhau ta biết ngay hai chuỗi dữ liệu gốc là khác nhau
Trang 3022
Hình 2.2: Hoạt động của một hàm băm [8, tr.104]
Hàm băm được chia làm 2 loại: [2]
- Hàm băm 1 chiều (one – way hash functions) là hàm băm mà với mọi mã
băm biết trước không thể tính toán để tìm được chuỗi bit đầu vào có mã băm bằng với mã băm đã cho
- Hàm băm kháng xung đột (collision resistant hash functions) là hàm băm
không thể tính toán để tìm ra 2 chuỗi bit có cùng giá trị băm
2.2.3 Các hàm băm thông dụng
a/ Thuật toán hàm băm MD5
MD5 (Message-Digest algorithm 5) là một hàm băm để mã hóa với giá trị băm là 128bit Từng được xem là một chuẩn trên Internet, MD5 đã được sử dụng rộng rãi trong các chương trình an ninh mạng, và cũng thường được dùng để kiểm tra tính nguyên vẹn của tập tin Nó đã được sử dụng rộng rãi trong các chương trình
an ninh mạng, và cũng thường được dùng để kiểm tra tính nguyên vẹn của tập tin MD5 được thiết kế bởi Ronald Rivest vào năm 1991 để thay thế cho hàm băm trước đó MD4
MD5 biến đổi một thông điệp có chiều dài bất kì thành một khối có kích thước cố định 128 bits Thông điệp đưa vào sẻ được cắt thành các khối 512 bits Thông điệp được đưa vào bộ đệm để chiều dài của nó sẽ chia hết cho 512
Trang 3123
Mô tả thuật toán
Input: Thông điệp (văn bản) có độ dài tùy ý
Output: Bản băm, đại diện cho thông điệp gốc, độ dài cố định 128 bit
Bước 1: Khởi tạo các thanh ghi
Có 4 thanh ghi được sử dụng để tính toán nhằm đưa ra các đoạn mã: A, B, C,
D Bản tóm lược của thông điệp được xây dựng như sự kết nối của các thanh ghi Mỗi thanh ghi có độ dài 32 bit Các thanh ghi này được khởi tạo giá trị hecxa
Bước 3: Thực hiện bốn vòng băm
Các vòng 1, 2, 3 và 4 dùng tương ứng ba hàm F, G, H và I Mỗi hàm này là một hàm boolean tính theo bit Chúng được xác định như sau:
F(X, Y, Z) = (X∧Y)∨((¬X)∧ Z) G(X, Y, Z) = (X∧Z)∨ (Y∧(¬Z)) H(X, Y, Z) = X⊕Y⊕Z
I(X, Y, Z) = Y⊕(X∨(¬Z))
Bước 4: Output
Kết quả ra là đoạn mã có độ dài 128 bit, được thu gọn từ thông điệp a có độ dài b bit Đoạn mã này thu được từ 4 thanh ghi A, B, C, D: bắt đầu từ byte thấp của
thanh ghi A cho đến byte cao của thanh ghi D
Hàm băm MD5 sẽ trả về một chuỗi số thập lục phân gồm 32 số liên tiếp Dưới đây là ví dụ mô tả các kết quả thu được sau khi băm
MD5("Ủy ban nhân dân thị xã Từ Sơn")
= 4f2eb12881ec71fb7904367324a1ae76
Trang 3224
Chỉ cần một thay đổi nhỏ cũng làm thay đổi hoàn toàn kết quả trả về :
MD5(“ Ủy Ban nhân dân thị xã Từ Sơn“)
= 39777bb38946aa5eb6dba5c9de02847a
b/ Thuật toán hàm băm SHA - 1 [5],[6]
Năm 1995, tổ chức NIST cùng NSA đã thiết kế ra thuật toán hàm băm an toàn SHA sử dụng cho chuẩn chữ ký điện tử DSS SHA được thiết kế dựa trên những nguyên tắc của MD4/MD5, tạo ra 160bit giá trị băm Sau đó, vào năm 1995, khi trích dẫn điểm yếu mới được phát hiện mà nó chối từ chau chuốt lại, NSA đã làm những thay đổi đối với SHA Thuật toán mới được gọi là SHA-1 SHA-1 (Sercue Hash Algorithm) là thuật toán cũng được xây dựng trên thuật toán MD4, đang được sử dụng rộng rãi Thuật toán SHA-1 tạo ra chuỗi mã băm có chiều dài cố định 160 bit từ chuỗi bit dữ liệu đầu vào x có chiều dài tùy ý
Thuật toán: [5, tr.116-tr.117]
Input: thông điệp với độ dài tối đa 264 bits
Output: giá trị băm (message digest) có độ dài 160 bits
Giải thuật gồm 5 bước thao tác trên các khối 512 bits
Bước 1: Nhồi dữ liệu
- Thông điệp được nhồi thêm các bit sao cho độ dài L mod 512 luôn đồng dư
là 448
- Thông điệp luôn luôn được nhồi thêm các bit
- Số bit nhồi thêm phải nằm trong khoảng [1-512]
- Phần thêm vào cuối dữ liệu gồm 1 bit 1 và theo sau là các bit 0
Bước 2: Thêm độ dài
- Độ dài của khối dữ liệu ban đầu sẽ được biểu diễn dưới dạng nhị phân 64 bit và được thêm vào cuối chuỗi nhị phân mà ta thu được của bước 1
- Độ dài được biểu diễn dưới dạng nhị phân 64 bit không dấu
- Kết quả thu được từ 2 bước là 1 khối dữ liệu có độ dài là bội số của
512.(với cứ 512 bit là 1 khối dữ liệu)
Bước 3: Khởi tạo bộ đệm MD
Trang 3325
Một bộ đệm 160-bit được dùng lưu trữ các giá trị băm trung gian và kết quả
Bộ đệm được biểu diễn bằng 5 thanh ghi 32-bit với các giá trị khởi tạo ở dạng endian (byte có trọng số lớn nhất trong từ nằm ở địa chỉ thấp nhất) và có 2 bộ đệm.5 thanh ghi của bộ đệm đầu tiên được đánh đặt tên là A,B,C,D,E và tương tự cho bộ đệm thứ 2 là H0,H1,H2,H3,H4.Có giá trị như sau (theo dạng Hex):
Bước 4: Xử lý các khối dữ liệu 512 bit
- Trọng tâm của giải thuật bao gồm 4 vòng lặp thực hiện tất cả 80 bước
- Bốn vòng lặp có cấu trúc như nhau, chỉ khác nhau ở các hàm logic ft
Trang 34Bước 5: Xuất kết quả
Sau khi thao tác trên toàn bộ N khối dữ liệu (blocks) Kết quả của khối thứ N
là chuỗi băm 160-bit
H=H0 H1 H2 H3 H4
2.2.4 Kết hợp hàm băm vào chữ ký số
Từ file cần gửi ban đầu, chúng ta sẽ sử dụng hàm băm để băm (mã hóa) thành chuỗi ký tự có độ dài cố định, với hàm băm MD5 cho ta chuỗi có độ dài 128 bit, hàm băm SHA cho ta chuỗi có độ dài 160 bit gọi là bản tóm lược Sau đó dùng
ký số ký lên bản tóm lược để trở thành bản chữ ký điện tử, tiếp theo gửi cho người nhận hai file là file cần gửi và bản chữ ký điện tử Khi người nhận nhận được sẽ thực hiện Xác nhận chữ ký để xác nhận người gửi đồng thời dùng hàm băm - băm file gửi kèm sau đó so sánh với bản tóm lược để xác định thông tin có sự thay đổi hay không
2.3 Thuật toán chữ ký số
2.3.1 Thuật toán RSA
a/ Giới thiệu giải thuật
Trang 3527
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 [15] Trước hết chúng ta sẽ xem xét cách làm việc của giải thuật này khi áp dụng trong mã hoá Giả
sử rằng Ba muốn nhận được các bản tin được mã hoá như trong hình sau:
Hình 2.3: Sơ đồ chữ ký số RSA [7]
An ký bản tin rõ m để được chữ ký SA Sau đó An dùng khoá mã công khai
EB của Ba để lập bản mã M = EB(m,SA) rồi gửi đến Ba Khi nhận dược bản mã M,
Ba dùng khoá bí mật DB của mình để giải mã cho M và thu được m, SA Tiếp đó dùng thuật toán kiểm tra e A
Trang 3628
Hình 2.4: Sơ đồ mã hóa công khai
b/ Thuật toán chữ ký số RSA [7],[8]
Bước 1: Tạo khóa
Tương tự thuật toán tạo khóa đã trình bày ở mục 1.4.1
+ Việc ký số vào m tương ứng việc mã hóa tài liệu m
+ Kiểm tra chữ ký chính là việc giải mã chữ ký, để kiểm tra tài liệu đã giải
mã có đúng là tài liệu trước khi ký hay không Thuật toán và khóa kiểm tra chữ ký
là công khai, ai cũng có thể kiểm thử được chữ ký