MỤC LỤC Nội dung Trang LỜI CAM ĐOAN…………………………………………………………. LỜI CẢM ƠN……………………………………………………………... MỤC LỤC………………………………………………………………… DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT……………… DANH MỤC CÁC BẢNG ……………………………………………….. DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ………………………………….. LỜI MỞ ĐẦU……………………………………………………………... CHƯƠNG I - HỆ MẬT MÃ KHÓA CÔNG KHAI………………………. 1.1. Tổng quan về mật mã ……………………………………………... 1.1.1. Giới thiệu chung về hệ mật mã…………………………………... 1.1.2. Các thành phần của một hệ thống mã hoá……………………… 1.2. Hệ mật mã khóa công khai………………………………………... 1.2.1. Cấu trúc hệ thống mật mã khóa công khai……………………... 1.2.2. Thuật toán mật mã RSA…………………………………………… 1.2.3. Thuật toán trao đổi khoá Diffie-Hellman………………………. 1.2.4. Đánh giá kỹ thuật mật mã bất đối xứng………………………… 1.3. Xác thực thông tin…………………………………………………. 1.3.1. Phương pháp xác thực thông tin bằng mật mã khóa công khai….. 1.3.2. Phương pháp xác thực thông tin bằng mã xác thực………….. 1.3.3. Phương pháp xác thực thông tin bằng hàm băm………………. 1.4. Hướng phát triển mật mã khóa công khai…………………………. 1.4.1. Bảo mật trong điện toán đám mây (cloud computing)………... 1.4.2. Mở rộng mô hình mã hóa…………………………………………. 1.4.3. An toàn trước các tấn công vật lý……………………………….. 1.4.4. An toàn trước sự tấn công của máy tính lượng tử…………….. CHƯƠNG II - HỆ MẬT MÃ DỰA TRÊN ĐỊNH DANH …………………… 2.1. Tổng quan mật mã dựa trên định danh……………………………. 2.1.1. Khái niệm mật mã dựa trên định danh………………………….. 2.1.2. Ưu thế IBE trong các ứng dụng thực tế………………………… 2.1.3. Hệ thống nhận dạng IBE…………………………………………. 2.2. Lược đồ mã hóa dựa trên định danh IBE………………………….. 2.3. Mã hóa dựa trên thuộc tính………………………………………... 2.3.1. Khái quát về mã hóa dựa trên thuộc tính………………………. 2.3.2. Mã hóa dựa trên thuộc tính chính sách bản mã (CP-ABE)….. 2.3.3. Mã hóa dựa trên thuộc tính chính sách khóa (KP-ABE)…….. 2.4. Cài đặt (The Implementation)........................................................... 2.4.1. Các thuật toán sử dụng trong IBE……………………………… 2.4.2. Cài đặt………………………………………………………………. 2.5. So sánh IBE và khóa công khai truyền thống …………………….. 2.5.1. Đánh giá kỹ thuật mật mã khóa công khai……………………... 2.5.2. Sự khác nhau giữa IBE và hệ thống khóa công khai truyền thống….. 2.5.3. Lợi ích IBE trong các ứng dụng…………………………………. CHƯƠNG III - ỨNG DỤNG HỆ MÃ HÓA ĐỊNH DANH BẢO MẬT THÔNG TIN……………………………………………………………… 3.1. Bài toán kiểm soát quyền truy cập trong hệ thống bảo mật quản lý đề thi… 3.1.1. Xây dựng hệ thống bảo mật dựa trên IBE…………………….. 3.1.2. Các bước thực hiện xây dựng hệ thống bảo mật………………. 3.2. Ứng dụng IBE kiểm soát quyền truy cập trong hệ thống bảo mật quản lý đề thi trong trường Đại học Văn hóa Thể thao và Du lịch Thanh Hóa .................. 3.2.1. Mô tả bài toán........................................................................... 3.2.2. Mô hình hệ thống...................................................................... 3.2.3. Chương trình thử nghiệm................................................. KẾT LUẬN................................................................................................... TÀI LIỆU THAM KHẢO..................................................................................... PHỤ LỤC..................................................................................................... i ii iii v vii viii 1 3 3 3 3 5 5 7 11 14 14 14 15 16 17 17 17 19 19 21 21 21 21 23 26 28 28 29 32 33 33 34 37 37 38 39 42 42 42 46 49 49 50 53 55 56 57 DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT AES Advanced Encryption Standard Chuẩn mã hoá tiên tiến ANSI American National Standards Institude Viện tiêu chuẩn quốc gia Mỹ CA Certification Authority Nhà cung cấp chứng thực CRL Certificate Revocation List Danh sách các chứng thực thu hồi DES Data Ecryption Standard Chuẩn mã dữ liệu DNS Domain Name System Hệ thống tên miền DSA Digital Signature Algorithm Thuật toán chữ ký điện tử DSS Digital Signature Standard Chuẩn chữ ký điện tử EDI Electronic Data Interchange Trao đổi dữ liệu điện tử FIPS Federal Information Processing Standard Chuẩn xử lý thông tin liên bang FTP File Transfer Protocol Giao thức truyền file HTTP Hyper Text Transport Protocol Giao thức truyền siêu văn bản IDEA International Data Encryption Algorithm Thuật toán mã hoá dữ liệu quốc tế ISO International Organization for Standardization Tổ chức tiêu chuẩn hoá quốc tế ISP Internet Service Provider Nhà cung cấp dịch vụ Internet ITU International Telecommunication Union Liên minh viễn thông quốc tế MD5 Message Digest 5 NIST National Institute of Standards and Technology Viện quốc gia về chuẩn và công nghệ OSI Open System Interconnection Kết nối giữa các hệ thống mở PGP Pretty Good Private PKI Public Key Infrastructure Cơ sở hạ tầng khoá công khai RA Registration Authority Nhà quản lý đăng ký RSA Rivest-Shamir-Aldeman SET Secure Electronic Transaction Giao dịch điện tử an toàn SHA Secure Hash Algorithm Thuật toán băm an toàn TCP/IP Transmission Control Protocol/ Internet protocol Giao thức điều khiển truyền dẫn/ giao thức Internet URL Uniform Resource Locator Bộ định vị tài nguyên AES Advanced Encryption Standard Chuẩn mã hoá tiên tiến ANSI American National Standards Institude Viện tiêu chuẩn quốc gia Mỹ CA Certification Authority Nhà cung cấp chứng thực CRL Certificate Revocation List Danh sách các chứng thực thu hồi DES Data Ecryption Standard Chuẩn mã dữ liệu DNS Domain Name System Hệ thống tên miền DSA Digital Signature Algorithm Thuật toán chữ ký điện tử DSS Digital Signature Standard Chuẩn chữ ký điện tử EDI Electronic Data Interchange Trao đổi dữ liệu điện tử FIPS Federal Information Processing Standard Chuẩn xử lý thông tin liên bang FTP File Transfer Protocol Giao thức truyền file HTTP Hyper Text Transport Protocol Giao thức truyền siêu văn bản IDEA International Data Encryption Algorithm Thuật toán mã hoá dữ liệu quốc tế ISO International Organization for Standardization Tổ chức tiêu chuẩn hoá quốc tế ISP Internet Service Provider Nhà cung cấp dịch vụ Internet DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Trang 1 Bốn thuật toán tạo thành lược đồ IBE 33 2 So sánh hệ thống IBE và hệ thống khóa công khai truyền thống 39 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Số hiệu hình Tên hình vẽ Trang 1.1 Cấu trúc một hệ thống mật mã quy ước 4 1.2 Cấu trúc hệ thống mật mã bất đối xứng 6 1.3 Sơ đồ mã hóa công khai 11 1.4 Thuật toán trao đổi khoá Diffie-Hellman 12 1.5 Xác thực thông tin bằng mật mã khóa công khai 15 1.6 Xác thực thông tin dùng MAC 16 1.7 Xác thực thông tin dùng hàm băm 17 2.1 “Mã khóa riêng”, “mã khóa công khai”, “hệ thống bảo mật nhận dạng” 25 2.2 Phương thức “mã khóa công khai” và “chữ ký nhận dạng” 26 2.3 Mã hoá bằng hệ thống IBE 27 2.4 Giải mã bằng hệ thống IBE 28 3.1 Mô hình hệ thống nhận dạng IBE 45 3.2 Hệ thống mã hoá mô hình bảo mật 46 3.3 Sơ đồ phân tích hệ thống 51 LỜI MỞ ĐẦU Mã hóa dựa trên định danh (Indetity based encryption -IBE) hiện nay đang được xem là một công nghệ mật mã mới có nhiều thuận tiện trong thực thi ứng dụng so với các thuật toán khóa công khai khác. Đối với các hệ mật mã khóa công khai truyền thống, việc cài đặt là khó khăn và tốn kém, ứng dụng thành công nhất của công nghệ khóa công khai là việc sử dụng rộng rãi của SSL, nó yêu cầu tương tác tối thiểu với người sử dụng khi được dùng để xác thực máy chủ và mã hóa các truyền thông với máy chủ đó. Các ứng dụng mà yêu cầu người sử dụng quản lý hoặc sử dụng các khóa công khai thì không thành công được như vậy. IBE là một công nghệ mã hoá khoá công khai, cho phép một người sử dụng tính khoá công khai từ một chuỗi bất kỳ. Chuỗi này như là biểu diễn định danh của dạng nào đó và được sử dụng không chỉ như là một định danh để tính khoá công khai, mà còn có thể chứa thông tin về thời hạn hợp lệ của khoá để tránh cho một người sử dụng dùng mãi một khoá IBE hoặc để đảm bảo rằng người sử dụng sẽ nhận được các khoá khác nhau từ các hệ thống IBE khác nhau. Trong chuỗi này có chứa thông tin là duy nhất đối với mỗi cài đặt IBE cụ thể, chẳng hạn như URL mà định danh máy chủ được sử dụng trong cài đặt của các hệ thống IBE khác nhau. Khả năng tính được các khoá như mong muốn làm cho các hệ thống IBE có các tính chất khác với các tính chất của các hệ thống khoá công khai truyền thống, những tính chất này tạo ra các ưu thế thực hành đáng kể trong nhiều tình huống. Bởi vậy, có một số ít tình huống không thể giải quyết bài toán bất kỳ với các công nghệ khoá công khai truyền thống, nhưng lại có thể giải quyết được với IBE và sử dụng IBE có thể đơn giản hơn nhiều về cài đặt và ít tốn kém hơn về nguồn lực để hỗ trợ. IBE không đề xuất bất kỳ khả năng mới nào mà các công nghệ khóa công khai truyền thống không thể cung cấp nhưng nó cho phép tạo ra các giải pháp để giải quyết vấn đề khó khăn và tốn kém nếu triển khai bằng các công nghệ trước đây. Đây là lý do để tôi chọn đề tài có tên: Nghiên cứu mã hóa dựa trên IBE và ứng dụng bảo mật quản lý đề thi trong Trường Đại học Văn Hóa Thể Thao và Du Lịch Thanh Hóa. Nội dung nghiên cứu: - Nghiên cứu về hệ mật mã khóa công khai truyền thống - Nghiên cứu hệ mã hóa dựa trên định danh và các ưu điểm của hệ mã hóa này so với hệ mã hóa công khai truyền thống. - Ứng dụng mã hóa định danh trong bảo vệ thông tin. Nội dung luận văn gồm 3 chương: Chương 1: Tổng quan về hệ mật mã khóa công khai. Chương 2: Hệ mật mã dưa trên định danh (IBE) Chương 3: Ứng dụng hệ mã hóa định danh trong bảo vệ thông tin
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHẠM THẾ QUẾ
HÀ NỘI - NĂM 2013
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được aicông bố trong bất kỳ công trình nào khác
Tác giả luận văn
Trịnh Văn Anh
Trang 4LỜI CẢM ƠN
Trên thực tế không có thành công nào mà không gắn liền với những sự
hỗ trợ, giúp đỡ Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay,
em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô Khoa sau
đại học trường Học viện Công nghệ Bưu chính Viễn thông Hà Nội đ ã cùng
với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho
chúng em trong suốt thời gian học tập tại trường, và luôn luôn tạo mọi điều
kiện tốt nhất cho chúng em trong suốt quá trình theo học tại Em xin chân
thành cảm ơn Thầy, Cô và Ban lãnh đạo nhà trường!
Với lòng biết ơn sâu sắc nhất em xin gửi lời cảm ơn tới TS Phạm Thế
Quế, Khoa Công nghệ Thông tin - Học viện Bưu Chính Viễn Thông, là cán
bộ trực tiếp hướng dẫn khoa học cho em Thầy đã dành nhiều thời gian cho
việc hướng dẫn em cách nghiên cứu, đọc tài liệu, cài đặt các thuật toán và
giúp đỡ em trong việc xây dựng chương trình, em xin chân thành cảm ơn
Thầy!
Và cuối cùng em xin bày tỏ lòng chân thành và biết ơn tới lãnh đạo
khoa Công nghệ Thông tin – Học viện Bưu chính Viễn thông Hà Nội cùng
bạn bè đồng nghiệp đã luôn ở bên cạnh những lúc em khó khăn và tạo điều
kiện thuận lợi giúp em hoàn thành luận văn.
Học viên
Trịnh Văn Anh
Trang 5MỤC LỤC
LỜI CAM ĐOAN………
LỜI CẢM ƠN………
MỤC LỤC………
DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT………
DANH MỤC CÁC BẢNG ………
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ………
LỜI MỞ ĐẦU………
CHƯƠNG I - HỆ MẬT MÃ KHÓA CÔNG KHAI………
1.1 Tổng quan về mật mã ………
1.1.1 Giới thiệu chung về hệ mật mã………
1.1.2 Các thành phần của một hệ thống mã hoá………
1.2 Hệ mật mã khóa công khai………
1.2.1 Cấu trúc hệ thống mật mã khóa công khai………
1.2.2 Thuật toán mật mã RSA………
1.2.3 Thuật toán trao đổi khoá Diffie-Hellman……….
1.2.4 Đánh giá kỹ thuật mật mã bất đối xứng………
1.3 Xác thực thông tin………
1.3.1 Phương pháp xác thực thông tin bằng mật mã khóa công khai…
1.3.2 Phương pháp xác thực thông tin bằng mã xác thực…………
1.3.3 Phương pháp xác thực thông tin bằng hàm băm………
1.4 Hướng phát triển mật mã khóa công khai………
1.4.1 Bảo mật trong điện toán đám mây (cloud computing) ………
1.4.2 Mở rộng mô hình mã hóa……….
i ii iii v vii viii 1 3 3 3 3 5 5 7 11 14 14 14 15 16 17 17 17 19 19
Trang 6
1.4.3 An toàn trước các tấn công vật lý………
1.4.4 An toàn trước sự tấn công của máy tính lượng tử………
CHƯƠNG II - HỆ MẬT MÃ DỰA TRÊN ĐỊNH DANH ………
2.1 Tổng quan mật mã dựa trên định danh………
2.1.1 Khái niệm mật mã dựa trên định danh………
2.1.2 Ưu thế IBE trong các ứng dụng thực tế………
2.1.3 Hệ thống nhận dạng IBE……….
2.2 Lược đồ mã hóa dựa trên định danh IBE………
2.3 Mã hóa dựa trên thuộc tính………
2.3.1 Khái quát về mã hóa dựa trên thuộc tính……….
2.3.2 Mã hóa dựa trên thuộc tính chính sách bản mã (CP-ABE)…
2.3.3 Mã hóa dựa trên thuộc tính chính sách khóa (KP-ABE)……
2.4 Cài đặt (The Implementation)
2.4.1 Các thuật toán sử dụng trong IBE………
2.4.2 Cài đặt……….
2.5 So sánh IBE và khóa công khai truyền thống ………
2.5.1 Đánh giá kỹ thuật mật mã khóa công khai………
2.5.2 Sự khác nhau giữa IBE và hệ thống khóa công khai truyền thống…
2.5.3 Lợi ích IBE trong các ứng dụng……….
CHƯƠNG III - ỨNG DỤNG HỆ MÃ HÓA ĐỊNH DANH BẢO MẬT THÔNG TIN………
3.1 Bài toán kiểm soát quyền truy cập trong hệ thống bảo mật quản lý đề thi… 3.1.1 Xây dựng hệ thống bảo mật dựa trên IBE………
3.1.2 Các bước thực hiện xây dựng hệ thống bảo mật……….
3.2 Ứng dụng IBE kiểm soát quyền truy cập trong hệ thống bảo mật quản lý
21 21 21 21 23 26 28 28 29 32 33 33 34 37 37 38 39
42 42 42 46
49 49 50 53 55 56 57
Trang 7đề thi trong trường Đại học Văn hóa Thể thao và Du lịch Thanh Hóa
3.2.1 Mô tả bài toán
3.2.2 Mô hình hệ thống
3.2.3 Chương trình thử nghiệm
KẾT LUẬN
TÀI LIỆU THAM KHẢO
PHỤ LỤC
DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT
AES Advanced Encryption Standard Chuẩn mã hoá tiên tiến
ANSI American National Standards
Institude
Viện tiêu chuẩn quốc gia Mỹ
CA Certification Authority Nhà cung cấp chứng thực
CRL Certificate Revocation List Danh sách các chứng thực thu hồi DES Data Ecryption Standard Chuẩn mã dữ liệu
DSA Digital Signature Algorithm Thuật toán chữ ký điện tử
DSS Digital Signature Standard Chuẩn chữ ký điện tử
EDI Electronic Data Interchange Trao đổi dữ liệu điện tử
FIPS Federal Information Processing
Standard
Chuẩn xử lý thông tin liên bang
FTP File Transfer Protocol Giao thức truyền file
HTTP Hyper Text Transport Protocol Giao thức truyền siêu văn bản
IDEA International Data Encryption
Algorithm
Thuật toán mã hoá dữ liệu quốc tế
ISO International Organization for
Standardization
Tổ chức tiêu chuẩn hoá quốc tế
ISP Internet Service Provider Nhà cung cấp dịch vụ Internet
ITU International Telecommunication
Union
Liên minh viễn thông quốc tế
MD5 Message Digest 5
NIST National Institute of Standards and
Technology
Viện quốc gia về chuẩn và công nghệ OSI Open System Interconnection Kết nối giữa các hệ thống mở
PGP Pretty Good Private
Trang 8PKI Public Key Infrastructure Cơ sở hạ tầng khoá công khai
RA Registration Authority Nhà quản lý đăng ký
RSA Rivest-Shamir-Aldeman
SET Secure Electronic Transaction Giao dịch điện tử an toàn
SHA Secure Hash Algorithm Thuật toán băm an toàn
TCP/IP Transmission Control Protocol/
Internet protocol
Giao thức điều khiển truyền dẫn/ giaothức Internet
URL Uniform Resource Locator Bộ định vị tài nguyên
AES Advanced Encryption Standard Chuẩn mã hoá tiên tiến
ANSI American National Standards
Institude
Viện tiêu chuẩn quốc gia Mỹ
CA Certification Authority Nhà cung cấp chứng thực
CRL Certificate Revocation List Danh sách các chứng thực thu hồiDES Data Ecryption Standard Chuẩn mã dữ liệu
DSA Digital Signature Algorithm Thuật toán chữ ký điện tử
DSS Digital Signature Standard Chuẩn chữ ký điện tử
EDI Electronic Data Interchange Trao đổi dữ liệu điện tử
FIPS Federal Information Processing
Standard
Chuẩn xử lý thông tin liên bang
FTP File Transfer Protocol Giao thức truyền file
HTTP Hyper Text Transport Protocol Giao thức truyền siêu văn bản
IDEA International Data Encryption
Algorithm
Thuật toán mã hoá dữ liệu quốc tế
ISO International Organization for
2 So sánh hệ thống IBE và hệ thống khóa công
Trang 9DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
1.5 Xác thực thông tin bằng mật mã khóa công khai 15
2.1 “Mã khóa riêng”, “mã khóa công khai”,
Trang 10LỜI MỞ ĐẦU
Mã hóa dựa trên định danh (Indetity based encryption -IBE) hiện nay đang đượcxem là một công nghệ mật mã mới có nhiều thuận tiện trong thực thi ứng dụng so vớicác thuật toán khóa công khai khác Đối với các hệ mật mã khóa công khai truyềnthống, việc cài đặt là khó khăn và tốn kém, ứng dụng thành công nhất của công nghệkhóa công khai là việc sử dụng rộng rãi của SSL, nó yêu cầu tương tác tối thiểu vớingười sử dụng khi được dùng để xác thực máy chủ và mã hóa các truyền thông vớimáy chủ đó Các ứng dụng mà yêu cầu người sử dụng quản lý hoặc sử dụng các khóacông khai thì không thành công được như vậy
IBE là một công nghệ mã hoá khoá công khai, cho phép một người sử dụngtính khoá công khai từ một chuỗi bất kỳ Chuỗi này như là biểu diễn định danh củadạng nào đó và được sử dụng không chỉ như là một định danh để tính khoá công khai, mà còn có thể chứa thông tin về thời hạn hợp lệ của khoá để tránh cho mộtngười sử dụng dùng mãi một khoá IBE hoặc để đảm bảo rằng người sử dụng sẽ nhậnđược các khoá khác nhau từ các hệ thống IBE khác nhau Trong chuỗi này có chứathông tin là duy nhất đối với mỗi cài đặt IBE cụ thể, chẳng hạn như URL mà địnhdanh máy chủ được sử dụng trong cài đặt của các hệ thống IBE khác nhau Khả năng tính được các khoá như mong muốn làm cho các hệ thống IBE có các tính chất khácvới các tính chất của các hệ thống khoá công khai truyền thống, những tính chất này tạo ra các ưu thế thực hành đáng kể trong nhiều tình huống Bởi vậy, có một số íttình huống không thể giải quyết bài toán bất kỳ với các công nghệ khoá công khaitruyền thống, nhưng lại có thể giải quyết được với IBE và sử dụng IBE có thể đơn giản hơn nhiều về cài đặt và ít tốn kém hơn về nguồn lực để hỗ trợ
IBE không đề xuất bất kỳ khả năng mới nào mà các công nghệ khóa công khaitruyền thống không thể cung cấp nhưng nó cho phép tạo ra các giải pháp để giải quyếtvấn đề khó khăn và tốn kém nếu triển khai bằng các công nghệ trước đây
Trang 11Đây là lý do để tôi chọn đề tài có tên: Nghiên cứu mã hóa dựa trên IBE và
ứng dụng bảo mật quản lý đề thi trong Trường Đại học Văn Hóa Thể Thao và Du Lịch Thanh Hóa.
Nội dung nghiên cứu:
- Nghiên cứu về hệ mật mã khóa công khai truyền thống
- Nghiên cứu hệ mã hóa dựa trên định danh và các ưu điểm của hệ mã hóa này so với
hệ mã hóa công khai truyền thống
- Ứng dụng mã hóa định danh trong bảo vệ thông tin
Nội dung luận văn gồm 3 chương:
Chương 1: Tổng quan về hệ mật mã khóa công khai
Chương 2: Hệ mật mã dưa trên định danh (IBE)
Chương 3: Ứng dụng hệ mã hóa định danh trong bảo vệ thông tin
Trang 12CHƯƠNG I - HỆ MẬT MÃ KHÓA CÔNG KHAI
1.1 Tổng quan về mật mã
1.1.1 Giới thiệu chung về hệ mật mã
Mật mã (Encryption) là một kỹ thuật cơ sở quan trọng trong bảo mật thông tin.Nguyên tắc của mật mã gia xử lý thông tin một cách hợp lệ mới hiểu được
Một thực là biến đổi thông tin gốc thành dạng thông tin bí mật mà chỉ có nhữngthực thể tham thể hợp lệ có thể là một người, một máy tính hay một phần mềm nào đóđược phép nhận thông tin Để có thể giải mã được thông tin mật, thực thể đó cần phảibiết cách giải mã (tức là biết được thuật tóan giải mã) và các thông tin cộng thêm (khóabí mật)
Quá trình chuyển thông tin gốc thành thông tin mật theo một thuật toán nào đóđược gọi là quá trình mã hoá (encryption) Quá trình biến đổi thông tin mật về dạngthông tin gốc ban đầu gọi là quá trình giải mã (decryption) Đây là hai quá trình khôngthể tách rời của một kỹ thuật mật mã bởi vì mật mã (giấu thông tin) chỉ có ý nghĩa khi
ta có thể giải mã (phục hồi lại) được thông tin đó Do vậy, khi chỉ dùng thuật ngữ mật
mã thì nó có nghĩa bao hàm cả mã hóa và giải mã
Kỹ thuật mã hoá được chia thành hai loại: mã hoá dùng khoá đối xứng(symmetric key encryption) và mã hoá dùng khoá bất đối xứng (asymmetric keyencryption) như sẽ trình bày trong các phần tiếp theo
1.1.2 Các thành phần của một hệ thống mã hoá
Hình 1.1 mô tả nguyên tắc chung của một hệ thống mật mã quy ước Các thànhphần trong một hệ thống mật mã điển hình bao gồm:
- Plaintext: là thông tin gốc cần truyền đi giữa các hệ thống thông tin
- Encryption algorithm: thuật tóan mã hóa, đây là cách thức tạo ra thông tin mật
từ thông tin gốc
Trang 13- Key: khóa mật mã, gọi tắt là khóa Đây là thông tin cộng thêm mà thuật tóan
mã hóa sử dụng để trộn với thông tin gốc tạo thành thông tin mật
- Ciphertext: thông tin đã mã hóa (thông tin mật) Đây là kết quả của thuật toán
mã hóa
- Decryption algorithm: Thuật tóan giải mã Đầu vào của thuật tóan này là thôngtin đã mã hóa (ciphertext) cùng với khóa mật mã Đầu ra của thuật tóan là thông tin gốc(plaintext) ban đầu
Ký hiệu:
P là một tập hữu hạn các bản rõ (plaintext)
C là một tập hữu hạn các bản mã (ciphertext)
K là một tập hữu hạn các khóa Với mỗi một kK
Có một luật mã hóa ek E sao cho ek : P C
Và một luật giải mã tương ứng dk D, sao cho dk; C P
sao cho : dk(ek(x)) = x với mọi xP
Bản tin gốc P được mã hóa bởi khóa KE tạo nên bản tin mã hóa C Bản tin
Mã hóa được truyền đi trên một kênh không an toàn hay kênh công khai Ngườinhận hợp pháp sử dụng khóa KD để giải mã và thu được bản tin gốc
Khoá mật mã
Thông tin đã được mã hoá (ciphertext)
Thông tin gốc
(Plaintext)
Thông tin gốc (Plaintext) Thuật toán giải
mã (Decryption algorithm)
Thuật toán mã hoá (Encryption algorithm)
Hình 1.1: Cấu trúc một hệ thống mật mã quy ước
Trang 14Nếu mã hóa và giải mã sử dụng chung khóa thì hệ mật mã được gọi là hệ mật
mã đối xứng (hay hệ mật mã khóa bí mật) Nếu việc mã hóa và giải mã sử dụngnhững khóa khác nhau thì được gọi là hệ mật mã khóa công khai (hay là không đốixứng) Khóa mã hóa là công khai, khóa giải mã được giữ bí mật Hệ mật mã khóacông khai có nhiều ưu điểm hơn so với hệ mật mã đối xứng, có thể ứng dụng cho việcxác thực, chữ ký điện tử vv … Tuy nhiên nhược điểm của nó là tốc độ chậm nên khôngthể sử dụng cho kênh thông tin có dung lượng lớn Thực tế hiện nay người ta phối hợp
cả hai phương pháp để tận dụng những ưu điểm của từng phương pháp
1.2 Hệ mật mã khóa công khai
1.2.1 Cấu trúc hệ thống mật mã khóa công khai
Đặc trưng của kỹ thuật mật mã khóa công khai, hay còn gọi là hệ mật mã khóabất đối xứng là dùng 2 khóa riêng biệt cho hai quá trình mã hóa và giải mã, trong đó cómột khóa được phổ biến công khai (public key hay PU) và khóa còn lại được giữ bímật (private key hay PR) Cả hai khoá đều có thể được dùng để mã hoá hoặc giải mã.Việc chọn khoá công khai hay khoá bí mật cho quá trình mã hoá sẽ tạo ra hai ứng dụngkhác nhau của kỹ thuật mật mã bất đối xứng:
- Sử dụng khoá công khai để mã hoá và khoá bí mật để giải mã trong các ứngdụng bảo mật thông tin (Confidentiality)
- Nếu dùng khoá bí mật để mã hoá và khoá công khai để giải mã, có các ứngdụng xác thực nội dung và nguồn gốc thông tin (Authentication)
Thuật toán mật mã bất đối xứng dựa chủ yếu trên các hàm toán học hơn là dựavào các thao tác trên chuỗi bit Mật mã hóa bất đối xứng còn được gọi bằng một tênthông dụng hơn là mật mã hóa dùng khóa công khai (Public key Encryption)
Nói chung, mật mã hóa bất đối xứng không phải là một kỹ thuật mật mã an toànhơn so với mật mã đối xứng, mà độ an tòan của một thuật toán mã nói chung phụ thuộcvào 2 yếu tố: Độ dài của khóa và mức độ phức tạp khi thực hiện thuật toán Hơn nữa,mặc dù được ra đời sau nhưng không có nghĩa rằng mật mã bất đối xứng hoàn toàn ưu
Trang 15điểm hơn và sẽ được sử dụng thay thế cho mật mã đối xứng Mỗi kỹ thuật mã có mộtthế mạnh riêng và mật mã đối xứng vẫn rất thích hợp cho các hệ thống nhỏ và đơngiản Ngoài ra, vấn đề phân phối khóa trong mật mã bất đối xứng cũng được đánh giá
là một trong những vấn đề phức tạp khi triển khai kỹ thuật mật mã này trong thực tế
Hình 1.2 Cấu trúc của hệ thống mật mã bất đối xứng
Các bước cơ bản của một hệ thống mật mã dùng khóa công khai bao gồm:
Tập
khoá
công khai
Tập
khoá
công khai
Trang 16- Mỗi thực thể thông tin (user) tạo ra một cặp khóa (public/private) để dùng choviệc mã hóa và giải mã.
- Mỗi user thông báo một trong hai khoá của mình cho các user khác biết, khóanày được gọi là khóa công khai (public key) Khóa còn lại được giữ bí mật, và gọi làkhóa riêng (private key)
- Nếu một user A muốn gửi thông tin cho user B, user A sẽ thực hiện mã hóathông tin cần gửi bằng khóa công khai của user B
- Khi nhận được thông tin đã mã hóa từ user A, user B thực hiện giải mã thôngtin đó bằng khóa riêng của mình Do khóa riêng không phổ biến công khai nên chỉ cómột mình user B có khả năng giải mã được
Mật mã hóa bất đối xứng được sử dụng trong các ứng dụng: che giấu thông tin,tạo chữ ký số (digital signature) và trao đổi khóa trong các thuật toán mật mã đối xứng(key exchange)
1.2.2 Thuật toán mật mã RSA
RSA là thuật toán mật mã bất đối xứng được xây dựng bởi Ron Rivest, AdiShamir và Len Adleman tại viện công nghệ Massachusetts (MIT), do đó được đặt tên
là Rivest - Shamir - Adleman hay RSA Thuật toán này ra đời năm 1977 và cho đếnnay đã được ứng dụng trong nhiều lĩnh vực Cũng như các thuật toán mật mã bất đốixứng khác, nguyên lý của RSA dựa chủ yếu trên lý thuyết số, không dựa trên các thaotác xử lý bit
RSA là một thuật toán mật mã khối có kích thước 1024 hoặc 2048 bit Thông tingốc của RSA được xử lý như các số nguyên Ví dụ, khi chọn kích thước khối của thuậttoán là 1024 bit thì số nguyên này có giá trị từ 0 đến 21024 - 1, tương đương với sốthập phân có 309 chữ số Chú ý rằng đây là những số nguyên cực lớn, không thể xử lýđược bằng cách sử dụng các cấu trúc dữ liệu có sẵn của các ngôn ngữ lập trình phổbiến
Thuật toán RSA được mô tả như sau:
Trang 171 Để tạo ra một cặp khóa RSA, trước hết, chọn hai số nguyên tố đủ lớn p và q.Gọi N là tích của p và q (N = pq).
2 Chọn một số e sao cho e và (p-1)(q-1) là hai số nguyên tố cùng nhau Tìm số
d sao cho ed = 1 mod (p-1)(q-1)
3 Với 3 thành phần còn lại là N, e và d, ta đó:
Khóa công khai (public key) là tổ hợp (N, e)
Khóa bí mật (private) là tổ hợp (N, d)
4 Mã hóa một khối thông tin gốc M được thực hiện theo công thức:
C = Me mod N (với M là số nguyên nhỏ hơn N)
5 Quá trình giải mã C được thực hiện theo công thức:
Với e = 3, khi đó để cho đơn giản, chọn d = 7 vì ed = 3*7 = 1 mod 20, là giá trịnhỏ nhất
Khi đó, xác định được cặp khóa như sau:
Khóa công khai: (N, e) = (33, 3)
Khóa bí mật: (N, d) = (33, 7)
Giả sử, user B muốn gửi thông tin M = 15 cho user A, dựa trên khóa công khaicủa A, B thực hiện như sau:
C = Me mod N = 153 mod 33 = 3375 mod 33 = 9 mod 33
Khi đó, thông tin mật gửi cho A là C = 9 Và khi nhận được thông tin này, A
giải mã bằng khóa riêng (d = 7) như sau:
M = Cd mob N = 97 mod 33 = 4.782.969 mod 33 = 15 mod 33
Trang 18Như vậy, thông tin giải mã là M = 15, đúng với thông tin gốc ban đầu.
Tóm lại, thuật toán mật mã RSA được thực hiện gồm 3 quá trình tách rời: tạokhoá, mã hoá và giải mã được tóm tắt như sau:
Trong thực tế, để đạt được độ an toàn cao, cặp khóa phải được chọn trên các số
p và q đủ lớn (N nhỏ nhất phải là 1024 bit), do vậy, vấn đề thực thi RSA bao gồm cácphép toán lũy thừa trên các số rất lớn Vấn đề giảm chi phí tính toán và tăng tốc độthực hiện thuật toán RSA là một trong những vấn đề quan trọng cần phải giải quyết.Trên các hệ thống máy tính hiện nay, hiệu suất thực hiện giải thuật RSA là chấp nhậnđược
Độ 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ả) 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 đổibản rõ an toàn Bài toán RSA là bài toán tính căn bậc e mod n (với n là hợp số): tìm số
1 Tạo khoá:
Chọn p, q (p và q là số nguyên tố, p q)
Tính N = p.q
Tính (N) = (p – 1) (q – 1)
Chọn e sao ước số chung lớn nhất của e và (N) là 1
Chọn d sao cho e.d mod (N) = 1
Cặp khoá RSA được tạo ra là PU = (N, e), PR = (N, d)
2 Mã hoá:
C = Me mod N (M là số nguyên nhỏ hơn N)
3 Giải mã:
M = Cd mod N
Trang 19m sao cho m e =c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã 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)(q-1) và qua
đó xác định d từ e Trong chương số học chúng ta đã biết chưa có một phương pháp nào được tìm ra trên máy tính để giải bài toán này trong thời gian đa thức (polynomial- time) Tuy nhiên người ta cũng chưa chứng minh được điều ngược lại (sự không tồn tại
của thuật toán)
RSA có tốc độ thực hiện chậm hơn đáng kể so với các thuật toán mã hóa đốixứng Trên thực tế, Bob sử dụng một thuật toán mã hóa đối xứng nào đó để mã hóa vănbản cần gửi và chỉ sử dụng RSA để mã hóa khóa để giải mã (thông thường khóa ngắnhơn nhiều so với văn bản) Phương thức này cũng tạo ra những vấn đề an ninh mới.Một ví dụ là cần phải tạo ra khóa đối xứng thật sự ngẫu nhiên Nếu không, kẻ tấn công(thường ký hiệu là Eve) sẽ bỏ qua RSA và tập trung vào việc đoán khóa đối xứng
Số n cần phải có kích thước không nhỏ hơn 512 bít Năm 2006 hệ mật RSAđược cho là hiệu quả với kích thước n phải từ 1024, khuyến cáo tương lai thì chiều dài
n phải từ 2024 bít
Để nâng cao tốc độ mã hóa, nên chọn e với giá trị không lớn, thường là 3,7 hay
65537 Các số này khi biểu diễn ở dạng nhị phân chỉ có 2 chữ số 1, nên khi thực hiệnlệnh lũy thừa sẽ giảm đi lệnh nhân
p và q cần được chọn không quá gần nhau để phòng trường hợp phân tích n
bằng phương pháp phân tích Fermat Ngoài ra, nếu p-1 hoặc q-1 có thừa số nguyên tố nhỏ thì n cũng có thể dễ dàng bị phân tích theo phương pháp p-1 Pollaid và vì thế p và
q cũng cần được thử để tránh khả năng này Có thể chọn như sau: trước tiên tìm số
nguyên tố p1 sao cho p=2p1+1 cũng là nguyên tố, tương tự chọn q1 số nguyên tố saocho q=2q1+1 cũng là nguyên tố
Trang 20Giá trị d cần phải đủ lớn Năm 1990 Michael J Wiener đã chứng minh rằng nếunhư qp 2q và d n1 / 4 / 3, thì có phương pháp hiệu quả để tính d theo n và e
Hình 1.3 : Sơ đồ mã hóa công khai
1.2.3 Thuật toán trao đổi khoá Diffie-Hellman
Diffie-Hellman là một thuật toán dùng để trao đổi khóa (key exchange), không
sử dụng để mật mã hóa dữ liệu Tuy nhiên, Deffie-Hellman lại có ích trong giai đọantrao đổi khóa bí mật của các thuật toán mật mã đối xứng Một vấn đề quan trọng liênquan đến tính an toàn của các thuật toán mật mã đối xứng là vấn đề thống nhất khoá bímật giữa các thực thể thông tin
Thuật toán trao đổi khoá Diffie-Hellman dựa trên phép logarit rời rạc (discretelog) Cho trước một số g và x = gk , để tìm k, ta đơn giản thực hiện phép logarit: k =logg(x) Tuy nhiên, nếu cho trước g, p và (gk mod p), thì quá trình xác định k được thựchiện theo cách khác với cách ở trên và được gọi là logarit rời rạc Việc tính logarit rờirạc nói chung rất phức tạp nhưng vẫn có thể thực hiện được
Thuật toán Diffie-Hellman khá đơn giản như sau:
Trang 21- Gọi p là một số nguyên tố và g là một cơ số sinh (generator) thoả điều kiện vớimọi x {1, 2, …, p-1}, ta luôn tìm được số n sao cho x = gn mod p.
- Giá trị p và g được phổ biến công khai giữa các thực thể trao đổi khoá Sau đóuser A tạo ra một số bí mật Xa < p, tính giá trị Ya = (gXa mod p) và gửi cho B Tương
tự, user B cũng tạo ra một số bí mật Xb < p, tính giá trị Yb = (gb mod p) và gửi lại cho
Tính K = (Ya) Xb mod p
Hình 1.4: Thuật toán trao đổi khoá Diffie-Hellman
Trang 22Ví dụ:
Giả sử p = 353 và g = 3 Có thể kiểm chứng rằng với một số nguyên n bất kỳ 0
< n < 353, luôn xác định được một số nguyên i thoả mãn 3i = n
Giả sử, user A chọn giá trị bí mật Xa = 97 và user B chọn giá trị bí mật Xb =
233 Khi đó:
User A tính được Ya = (397 mod 353) = 40 và gửi cho B
User B tính được Yb = (3233 mod 353) = 248 và gửi cho A
User A tính được khoá bí mật K = (Yb)Xa mod 353=24897mod 353= 160
User B tính được khoá bí mật K =(Ya)Xb mod 353= 4097 mod 353 = 160
Tính an toàn của Diffie-Hellman dựa trên độ phức tạp của phép toán logarit rờirạc Nói chung, việc xác định các giá trị Xa, Xb từ các giá trị p, g, Ya và Yb là không thểthực hiện được trên các số nguyên đủ lớn Tuy nhiên, thuật toán này không ngăn chặnđược các tấn công theo phương thức xen giữa Man-In-The-Middle (MITM) như sau:
- Để thực hiện tấn công MITM trên kết nối giữa user A và user B, user C cũngchọn cho mình hai số nguyên XC1 và XC2 thoả điều kiện XC1 < p và XC2 < p, sau đó cũngtính hai giá trị tương ứng YC1 = (gXc1 mod p) và YC2 = (gXc2 mod p)
- Khi user A gửi Ya cho user B, user C sẽ chặn lấy thông tin này, đồng thời mạodanh A để gửi cho B giá trị YC1 User B xác định khoá K1 dựa trên YC1, và gửi lại cho
A giá trị Yb User C lại chặn lấy giá trị này và mạo danh B để gửi cho A giá trị YC2
- User A xác định khoá K2 dựa trên YC2 Bắt đầu từ đây, các thông tin trao đổigiữa A và B đều được C chặn bắt và thay đổi bằng cách sử dụng cặp khoá K1 và K2
Như vậy, thuật toán Diffie-Hellman không giải quyết được vấn đề này do không
có cơ chế xác thực giữa các thực thể trao đổi khoá Điểm yếu này được khắc phục bằngcách sử dụng kết hợp với các thuật toán xác thực như sẽ trình bày ở phần kế tiếp
Trang 23Ngoài hai thuật toán RSA và Diffie-Hellman, một số thuật toán khác cũng đượcphát triển dựa trên nguyên lý sử dụng một cặp khoá công khai và bí mật Elliptic-CurveCryptography (ECC) là một giải thuật mới đang được thử nghiệm và hứa hẹn nhiều ưuđiểm so với RSA như độ phức tạp tính toán giảm trong khi tính an toàn vẫn được đảmbảo ECC thích hợp với các ứng dụng chạy trên các thiết bị có năng lực xử lý hạn chếchẳn hạn như các thiết bị nhúng (embded devices).
1.2.4 Đánh giá kỹ thuật mật mã bất đối xứng
Kỹ thuật mật mã bất đối xứng hòan toàn có thể đáp ứng được những yêu cầu vềbảo mật hệ thống như trong kỹ thuật mật mã đối xứng, mặc dù tốc độ thực hiện của mãbất đối xứng thường thấp hơn do bản chất thuật toán dựa trên các thao tác số học chứkhông dựa trên các thao tác xử lý bit Hơn nữa, mã bất đối xứng chỉ phù hợp với việcthực thi bằng phần mềm Mật mã bất đối xứng đảm bảo được 2 yêu cầu cơ bản củathông tin là tính bí mật và tính toàn vẹn Kỹ thuật mật mã bất đối xứng có 2 ưu điểm sovới mã đối xứng:
1 Hai thực thể thông tin không cần thực hiện thủ tục trao đổi khóa trước khi bắtđầu làm việc
2 Bên cạnh công dụng đảm bảo tính tòan vẹn của dữ liệu, mật mã bất đối xứng(khi được sử dụng cho mục đích xác thực) còn đảm bảo được tính không thể phủ nhận(non-repudiation) của thông tin
1.3 Xác thực thông tin
Xác thực thông tin (message authentication) là một cơ chế được ứng dụng trong
xử lý thông tin với mục đích:
- Đảm bảo nội dung thông tin trao đổi giữa các thực thể là chính xác, đảm bảotính toàn vẹn về nội dung
Trang 24- Đảm bảo đối tượng tạo ra thông tin (nguồn gốc thông tin) đúng là đối tượnghợp lệ đã được khai báo (đảm bảo tính toàn vẹn về nguồn gốc thông tin).
1.3.1 Phương pháp xác thực thông tin bằng mật mã khóa công khai
Nguyên tắc của mật mã là chỉ có những đối tượng hợp lệ mới khôi phục đượcthông tin gốc từ thông tin mật Có thể sử dụng nguyên tắc này để xác thực thông tinnhư sau:
Thực thể gửi thông tin thực hiện mã hóa dùng khóa bí mật (PR) thay vì dùngkhóa công khai Khối thông tin mật tạo ra có thể được giải mã bởi bất kỳ đối tượng nàobiết khóa công khai của thực thể gửi Tuy nhiên, nếu quá trình giải mã thành công, đốitượng nhận thông tin có thể chắc chắn rằng thông tin nhận được là đúng và chính đốitượng gửi hợp lệ đã gửi thông tin này, bởi vì chỉ có đối tượng đó mới có khóa riêng
PR Phương pháp xác thực bằng mật mã dựa hoàn toàn vào độ tin cậy của khóa bí mật
1.3.2 Phương pháp xác thực thông tin bằng mã xác thực
Mã xác thực MAC (Message Authentication Code) được sinh ra từ một khốithông tin gốc có độ dài bất kỳ và một khóa bí mật Kích thước của MAC là cố định,không phụ thuộc vào kích thước của khối dữ liệu gốc và thường nhỏ hơn dữ liệu gốc
Hình 1.5: Xác thực thông tin bằng mật mã khóa công khai
C
PUa: Khóa công khai của bên gửi
Trang 25Đối tượng gửi sẽ gửi kèm giá trị MAC đi cùng với thông tin gốc Phía nhận sau khinhận được thông tin gốc cùng với giá trị MAC gửi kèm sẽ thực hiện thao tác tạo ra giátrị
MAC mới từ thông tin gốc cùng với khóa bí mật đã thống nhất giữa hai bên.Nếu giá trị MAC vừa tạo ra giống với giá trị MAC nhận được từ phía gửi, phía nhận cóthể chắc chắn rằng thông tin gốc không bị thay đổi trong quá trình truyền
Việc dùng MAC để xác thực thông tin dựa vào hai cơ sở:
- Ứng với một khối thông tin gốc M và một khóa bí mật K, hàm C chỉ tạo ra duynhất một mã xác thực MAC
- Chỉ có phía gửi và phía nhận hợp lệ mới được biết khóa K
Có hai kỹ thuật tạo ra mã xác thực MAC: kỹ thuật thứ nhất dùng cơ chế mật mãkhối (Cipher Block Chaining) và được gọi là CMAC hay CBC-MAC Kỹ thuật thứ haidựa trên các hàm băm bảo mật và được gọi là HMAC
Mã xác thực (MAC)
M: thông tin gốc C: Hàm tạo mã xác thực
K: Khóa bí mật dùng chung giữa bên gởi và bên nhận
| |: Nối mã xác thực vào thông tin gốc
Hình 1.6: Xác thực thông tin dùng MAC
Trang 26Mã xác thực MAC được ứng dụng trong các trường hợp thông tin chỉ yêu cầuđảm bảo tính xác thực mà không cần đảm bảo tính bí mật.
1.3.3 Phương pháp xác thực thông tin bằng hàm băm
Như mã xác thực MAC, hàm băm bảo mật (secure hash function) cũng tạo ramột khối thông tin ngắn có độ dài xác định gọi là mã băm (hash code) từ một khốithông tin gốc có độ dài bất kỳ Tuy nhiên, khác với MAC, hàm băm chỉ dựa vào thôngtin gốc để tạo ra mã băm mà không dùng thêm bất kỳ khóa bí mật nào Do vậy, để cóthể sử dụng như một cơ chế xác thực thông tin, hàm băm phải được dùng kèm với mộtthuật tóan mật mã nào đó (đối xứng hoặc bất đối xứng) Hình 1.7 trình bày một ứngdụng điển hình của hàm băm trong xác thực thông tin Theo cơ chế này, mã băm saukhi được tạo ra sẽ được mã hóa bằng một thuật tóan mật mã đối xứng với khóa bí mật
K chỉ có bên gửi và bên nhận biết Đọan mã băm đã được mật mã hóa được gửi đi kèmvới thông tin gốc và quá trình kiểm tra ở phía nhận cũng được tiến hành theo trình tựngược lại, tức là giải mã đọan mã băm bằng khóa bí mật, sau đó tạo ra mã băm mới từthông tin gốc và so sánh hai đọan mã băm
Mã băm đã được mã hóa
So sánh
M: thông tin gốc H: hàm băm E: thuật tóan mã hóa
D: thuật tóan giải mã K: khóa bí mật dùng chung giữa phía gởi và phía nhận
| |: nối mã băm đã được mã hóa vào thông tin gốc
Hình 1.7: Xác thực thông tin dùng hàm băm
Trang 27Có nhiều cách áp dụng các thuật toán mật mã vào hàm băm để xác thực thông tin: dùng
mã đối xứng hoặc bất đối xứng, chỉ mã hóa mã băm hoặc mã hóa cả thông tin gốc và
mã băm, có thể tổ hợp nhiều cách trên lại với nhau
Ngoài ứng dụng xác thực thông tin, hàm băm còn được dùng trong nhiều ứngdụng khác
1.4 Hướng phát triển mật mã khóa công khai
1.4.1 Bảo mật trong điện toán đám mây (cloud computing)
Điện toán đám mây cho phép lưu trữ những khối lượng thông tin khổng lồ trênmạng và thực hiện các thao tác trên nó một cách dễ dàng Nó có thể giúp giải quyếtnhững bài toán mà trước đây khó có thể giải quyết trên mạng máy tính mang tính chấtcục bộ Tuy nhiên, điều đó mang tới một thách thức vô cùng lớn về tính bảo mật Cóhai điều có vẻ như mâu thuẫn nhau: lưu trữ dữ liệu lớn trên các hệ thống xa lạ rõ ràngrất dễ bị đánh cắp thông tin, nhưng nếu ta hóa toàn bộ dữ liệu thì sẽ khó có thể tậndụng sức mạnh của tính toán đám mây để thao tác dữ liệu đó
Nhưng gần đây, vấn đề tưởng khó có thể giải quyết này đã có hy vọng, với côngtrình của Gentry năm 2009 về mật mã đẳng cấu theo cả phép nhân và phép cộng (fullyhomomorphic encryption) Hệ mã này cho phép, từ hai bản mã của hai bản rõ m và m’,
có thể tính được bản mã nhân của mm’ và bản mã cộng của m+m’ Vấn đề với bềngoài đơn giản nhưng chứa đựng không ít nghịch lý trong đó: hệ mã vừa phải đảm bảo
an toàn cho dữ liệu (không thể biết thông tin về bản rõ m, m’), mà lại vẫn thao tác đượctrên dữ liệu đó Và cũng với bề ngoài giản đơn như vậy, nó lại mang đến một ý nghĩarất bao quát: do mọi tính toán đều có thể qui về các phép toán cơ bản là cộng và nhân,một hệ mã như thế sẽ cho khả năng làm mọi tính toán trên dữ liệu được mã hóa Điều
đó có nghĩa là có thể để tất cả dữ liệu bảo mật trên những máy mạng không an toàn màvẫn có thể tận dụng được sức tính toán lớn của điện toán đám mây để thao tác trên dữliệu được mã hóa Tuy nhiên, hiện tại, hệ mã Gentry và một số hệ mã cải tiến còn có
Trang 28hiệu quả vô cùng thấp, hầu như chỉ mang tính lý thuyết Một hệ mã hiệu quả sẽ là lờigiải tuyệt vời cho bài toán an toàn thông tin trong điện toán đám mây.
1.4.2 Mở rộng mô hình mã hóa
Mã hóa thường cho ta thiết lập kênh trao đổi thông tin giữa một người với mộtngười Tuy nhiên, những ứng dụng thực tế đòi hỏi khả năng ta mã một lần sao chonhiều người cùng có thể giải mã Một ví dụ điển hình là việc phát chương trình cơ sở
dữ liệu đề thi mã hóa sao cho hàng triệu thuê bao đều giải được mã Nhưng một ứng
dụng như vậy sẽ đặt ra hai vấn đề: mã một lần cho nhiều người (broadcast encryption)
và ngăn chặn một người hay một nhóm người thuê bao cấu kết nhau để làm một bộ giải
mã giả (tracing traitor) Hiện tại các thuật toán được sử dụng trong cơ sở dữ liệu đề thi
thuê bao hầu hết đang còn ở thời nguyên thủy: độ an toàn buộc phải dựa trên tính bímật của thuật toán Nhưng cũng bởi vậy nên khi một nhóm phá mã có thể phá được
nguyên lý bằng kỹ nghệ đảo ngược (reverse engineering) thì thị trường chợ đen có thể
bán tràn lan các bộ giải mã giả mà không có cách gì truy lại được ai là thủ phạm
Hai năm trở lại đây, một hướng nghiên cứu khá mới là về một kiểu mã tổng quát
có thể bao quát hết các khái niệm về mã hóa công khai, mã hóa dựa trên danh tính, hay
mã hóa một lần cho nhiều người Đó là loại mã hàm (functional encryption) ở đó nó
cho phép người lập mã định nghĩa một cơ chế giải mã để đối với mỗi người nhận, tùyvào thuộc tính được gán có mà có thể truy cập sâu vào bản rõ tới đâu Cho tới nay, đốivới những cơ chế mã với các cấu trúc tương đối phức tạp, các phương án lập mã cònrất hạn chế về hiệu quả Những kết quả trong tương lai chắc chắn sẽ mang tới nhữngứng dụng rất hiệu quả, đặc biệt là cho việc truy cập các cơ sở dữ liệu mã hóa lớn
1.4.3 An toàn trước các tấn công vật lý
Mật mã thường phân tích tính an toàn dựa trên giả thuyết là khóa bí mật đượcbảo vệ tốt Tuy nhiên, những tấn công vật lý đôi khi lại có thể tìm ra những thông tin
về khóa (chẳng hạn bằng cách đo năng lượng tiêu thụ của máy giải mã trên các bản mãkhác nhau) Do vậy, một trong các mục đích của mật mã là tìm cách hình thức hóa các
Trang 29khái niệm tấn công vật lý và tiếp sau đó là thiết kế các sơ đồ mã hóa mà tính an toàn cóthể đảm bảo chỉ duy nhất dựa trên các giả thiết toán học Hướng nghiên cứu an toàn
trong mô hình khóa bị lộ (key leakage resilient cryptography) đang khá được quan tâm
trong cộng đồng mật mã
1.4.4 An toàn trước sự tấn công của máy tính lượng tử
Cuối cùng, chúng ta không thể bỏ qua sự hiện diện tiềm tàng của máy tính lượng
tử, dù rằng cho tới nay các máy tính lượng tử mới chỉ phân tích được số 21 ra thừa sốnguyên tố Nhưng về mặt lý thuyết, nó có tiềm năng to lớn không thể không kể tới.Công trình của Shor năm 94 đã chỉ ra rằng bài toán phân tích số có thể giải được trongthời gian đa thức bởi máy tính lượng tử Bài toán logarít rời rạc trong trường hữu hạnhay trên đường cong elliptic cũng có thể giải được trong thời gian đa thức bởi máy tínhlượng tử Điều đó có nghĩa là các hệ mã thông dụng hiện nay sẽ bị phá vỡ một khi máytính lượng tử được thiết kế chạy được trên dữ liệu lớn Để phòng ngừa trước điều đó(dù khả năng sớm xảy ra được đánh giá là rất nhỏ), nhiều nghiên cứu nhằm xây dựngcác hệ mã có thể an toàn trước máy tính lượng tử được đề nghị Hai hướng chính đangđược quan tâm là các hệ mã dựa trên mã sửa sai (error correcting codes) và dựa trên lýthuyết lưới Euclid (lattice based cryptography), nơi sự hiện diện của máy tính lượng tử
có vẻ như không đem lại hiệu quả đặc biệt
Trang 31CHƯƠNG II - HỆ MẬT MÃ DỰA TRÊN ĐỊNH DANH
2.1.1 Khái niệm mật mã dựa trên định danh
IBE (Indetity Base Encryption) là một công nghệ mã hoá khoá công khai, chophép một người sử dụng tính khoá công khai từ một chuỗi bất kỳ Chuỗi này như làbiểu diễn định danh của dạng nào đó và được sử dụng không chỉ như là một định danh
để tính khoá công khai, mà còn có thể chứa thông tin về thời hạn hợp lệ của khoá đểtránh cho một người sử dụng dùng mãi một khoá IBE hoặc để đảm bảo rằng người sửdụng sẽ nhận được các khóa khác nhau từ các hệ thống IBE khác nhau Trong chuỗinày có chứa thông tin là duy nhất đối với mỗi cài đặt IBE cụ thể, chẳng hạn như URL
mà định danh máy chủ được sử dụng trong cài đặt của các hệ thống IBE khác nhau.Khả năng tính được các khoá như mong muốn làm cho các hệ thống IBE có các tínhchất khác với các tính chất của các hệ thống khoá công khai truyền thống, những tínhchất này tạo ra các ưu thế thực hành đáng kể trong nhiều tình huống Bởi vậy, có một
số ít tình huống không thể giải quyết bài toán bất kỳ với các công nghệ khoá công khaitruyền thống, nhưng lại có thể giải quyết được với IBE và sử dụng IBE có thể đơn giảnhơn nhiều về cài đặt và ít tốn kém hơn về nguồn lực để hỗ trợ
2.1.2 Ưu thế IBE trong các ứng dụng thực tế
IBE cho phép người sử dụng giao tiếp an toàn, có thể xác minh chữ ký dễ dàng
mà không cần trao đổi các mã khóa công khai hoặc khóa riêng Không cần lưu giữ bímật các thư mục quan trọng, cũng như không cần sử dụng dịch vụ của bên thứ ba.Lược đồ đặt giả thiết về sự tồn tại đáng tin cậy của các trung tâm tạo mã nhằm cungcấp cho mỗi người dùng một thẻ thông minh cá nhân khi lần đầu tiên tham gia hệthống Các thông tin nhúng trong thẻ này cho phép người dùng đăng ký và mã hóa cáctin nhắn gửi đi, giải mã và xác minh các thông báo nhận được trong điều kiện hoàntoàn riêng tư, không lệ thuộc vào phía đối tác bên kia Thẻ phát hành trước đó không
Trang 32cần cập nhật khi người dùng mới tham gia mạng lưới, bên cạnh đó, các trung tâm khácnhau cũng không nhất thiết phải các công đoạn sau đó, hay thậm chí thiết lập thêm mộtdanh sách người dùng Họ hoàn toàn có thể xong nhiệm vụ ngay khi tất cả các thẻ đãđược phát hành, còn người sử dụng cứ tiếp tục hoạt động bình thường trong phạm vithời gian không xác định.
IBE là giải pháp lý tưởng cho nhóm khách hàng cao cấp bí mật như giám đốcđiều hành ở các công ty đa quốc gia hoặc các chi nhánh của một ngân hàng lớn IBEcũng duy trì tính thiết thực trên phạm vi toàn quốc với hàng trăm hệ thống tạo khóacùng với hàng triệu người dùng Đây sẽ là một tiền đề cho sản phẩm thẻ nhận dạng tiệndụng mới mà mọi người có thể sử dụng trong việc ký séc, quẹt thẻ tín dụng, văn bảnpháp luật, và thư điện tử
IBE dựa trên một hệ thống mã khóa công khai Thay vì tạo ra một cặp khóacông khai/bí mật ngẫu nhiên rồi công bố một trong hai, người dùng bây giờ chỉ cầnchọn tên và địa chỉ mạng như một mã khóa công khai của mình Hệ thống chấp nhậnbất kỳ sự kết hợp sử dụng nào như tên, số an sinh xã hội, địa chỉ đường phố, số vănphòng hoặc số điện thoại (tùy thuộc vào ngữ cảnh) với điều kiện là chỉ được phép xácđịnh cho duy nhất một người, đề phòng có sự phủ nhận hay tranh chấp sau này Trongkhi đó, mã khóa bí mật tương ứng được định hình bởi trung tâm tạo mã và sẽ cấp chongười sử dụng các hình thức thẻ thông minh khi lần đầu tiên tham gia mạng lưới Thẻ
có chứa một bộ vi xử lý, một cổng 1/0, một bộ nhớ RAM, ROM với khóa bí mật, cácchương trình để mã hóa/giải mã tin nhắn và hệ chữ ký xác minh
Lược đồ cũng dựa trên nhận dạng của hệ thống thư điện tử: nếu bạn biết tên vàđịa chỉ của ai đó, bạn có thể gửi tin nhắn mà chỉ người đó mới có thể đọc, hoặc bạn cóthể xác minh chữ ký mà chỉ người đó mới có thể làm ra Điều này khiến cho việc thôngtin liên lạc trở nên rõ ràng và dễ sử dụng, ngay cả đối với người không có kiến thức vềmật khẩu mã hóa Cụ thể: khi người dùng A muốn gửi một thông điệp tới người B, anh
ta đặt thông điệp cùng với từ khóa bí mật vào trong thẻ thông minh của mình, mã hóa
Trang 33kết quả bằng cách sử dụng tên và địa chỉ của người B, cho biết thêm tên riêng và địachỉ của mình vào tin nhắn, rồi gửi nó đến B Khi B nhận được thông báo, anh ta sẽ giải
mã nó bằng cách sử dụng từ khóa bí mật trong thẻ thông minh của mình, sau đó xácminh chữ ký bằng cách sử dụng tên và địa chỉ của người gửi
Lược đồ kết hợp hiệu quả tin nhắn với thông tin nhận diện cá nhân và hiệu quả
sở hữu của người sử dụng với thẻ của mình Giống như bất kì cơ quan nào liên quanđến Chứng minh thư hoặc ID Cards, trung tâm phải rà soát và sàng lọc cẩn thận toànbộ các thẻ để tránh những sai lệch, thất lạc và phải bảo vệ cẩn thận con dấu của mìnhtránh những hình thức giả mạo, làm nhái Người sử dụng có thể tự bảo vệ bản thânmình không bị sử dụng thẻ trái phép thông qua một hệ thống mật khẩu hoặc ghi nhớ từkhóa
từ khóa bí mật tương ứng với khóa công khai "B", "C", v v, và do đó, chương trìnhnày sẽ không còn an toàn như vốn thế nữa
Một cách tổng quan, hệ thống bảo mật IBE phụ thuộc vào những vấn đề sauđây:
A Bảo mật của chức năng mã hóa cơ bản
B Lưu trữ và giữ bí mật tuyệt đối các thông tin cá nhân tại trung tâm tạo mã
C Kiểm tra triệt để danh tính khách hàng trước khi cấp phát hành thẻ chongười dùng
D Các biện pháp phòng ngừa được thực hiện bởi người sử dụng để ngăn chặn
sự mất mát, sao chép, hoặc sử dụng trái phép thẻ của họ