CHƯƠNG 1. TỔNG QUAN VỀ MÃ HÓA QUẢNG BÁ VÀ MÃ HÓA DỰA TRÊN THUỘC TÍNH Phần đầu chương, nghiên cứu sinh giới thiệu chung về ba loại mã hóa cụ thể hiện nay: Thứ nhất là mã hóa quảng bá, thứ hai là mã hóa quảng bá đa kênh và thứ ba là mã hóa dựa trên thuộc tính. Trong phần nội dung, tác giả trình bày chi tiết một số mã hóa quảng bá hiện nay mà luận án nghiên cứu, sau đó trình bày sơ lược kết quả nghiên cứu mới và các vấn đề tồn đọng cần khắc phục đối với ba loại mã này. Khái quát chung về mã hóa Một hệ thống bao gồm thuật toán tạo khóa bí mật, thuật toán mã hóa, thuật toán giải mã được gọi chung là một hệ mã hóa.
Trong đó, một hệ mã hóa mà khóa dùng để mã hóa và khóa dùng để giải mã là như nhau, được gọi là một hệ mã hóa khóa bí mật. Hệ mã hóa khóa bí mật đang được dùng phổ biến nhất hiện nay là AES với các biến thể cho khóa bí mật là 128, 192 và 256 bits. Ưu điểm của mã hóa khóa bí mật là tốc độ mã hóa và giải mã nhanh. Nhược điểm của các hệ này là giữa người gửi và người nhận phải tiếp xúc trước với nhau để thống nhất một khóa bí mật chung, điều này rất khó thực hiện trong môi trường thực tế hiện nay.
Để giải quyết vấn đề trên, hệ mã hóa khóa công khai đã được giới thiệu, trong đó khóa dùng để mã hóa gọi là khóa công khai và khóa dùng để giải mã là khóa bí mật. Khóa công khai của người nhận được công bố trước, mỗi người gửi khi muốn gửi thông tin cho người nhận sẽ dùng khóa công khai này để mã hóa thông tin (không cần tiếp xúc trước với người nhận để thỏa thuận khóa bí mật chung), người nhận sẽ có một khóa bí mật tương ứng với khóa công khai này dùng để giải mã. Như vậy, trong một hệ mã hóa khóa công khai mỗi người dùng (người gửi hoặc người nhận) tham gia hệ thống sẽ có một cặp khóa công khai và bí mật, khóa công khai được công bố công khai trước, trong khi khóa bí mật được giữ bí mật riêng mình. Whitfield Diffie and Martin Hellman có thể được xem là những người đầu tiên đề xuất cụ thể một hệ mã hóa khóa công khai, một số hệ mã hóa khóa công khai hiện được dùng phổ biến hiện nay như hệ RSA hay Elgamal.
luan an 7 Ngày nay, để tận dụng cả hai ưu điểm của mã hóa khóa bí mật và mã hóa khóa công khai, khi gửi thông tin người ta thường dùng hệ mã hóa lai. Với hệ mã hóa lai, trước mỗi lần gửi thông tin người gửi sẽ chọn một giá trị gọi là khóa phiên, tiếp theo họ sẽ dùng khóa công khai của người nhận để mã hóa khóa phiên này, sau đó dùng khóa phiên này như là khóa bí mật trong hệ mã hóa khóa bí mật để mã hóa thông tin. Như vậy, người gửi đã đồng thời dùng cả hai giải thuật mã hóa của hai loại, hệ mã hóa công khai và hệ mã hóa bí mật. Bản mã sẽ bao gồm bản mã của khóa phiên và bản mã của thông tin.
Người nhận, trước tiên dùng giải thuật giải mã của hệ mã hóa khóa công khai để giải mã bản mã của khóa phiên thu về giá trị khóa phiên, sau đó dùng giải thuật giải mã của hệ mã hóa khóa bí mật với khóa phiên chính là khóa bí mật đã biết để giải mã, thu về thông tin. Thông thường, thông tin cần gửi thì rất lớn nhưng giá trị khóa phiên chỉ cần rất bé, do đó với mã hóa lai ta tận dụng được ưu thế của cả hai loại hệ mã hóa bí mật và công khai. Người gửi không cần thống nhất khóa bí mật chung trước với người nhận, thông tin vẫn được mã hóa và giải mã dùng giải thuật của hệ mã hóa khóa bí mật. Các hệ mã đã trình bày ở trên như AES, RSA, Elgamal đều là các mã hóa ở dạng 1-1, tức là với mỗi bản mã chỉ có duy nhất một người có khả năng giải mã.
Hay là quyền giải mã của người dùng bị giới hạn rằng chỉ giải mã được nếu biết khóa bí mật tương ứng với bản mã. Các ứng dụng hiện đại ngày nay như truyền hình trả tiền, mạng xã hội,…Yêu cầu rằng quyền giải mã phải ở dạng linh động hơn. Cụ thể, một hệ mã hóa có quyền giải mã linh động thì với một bản mã, người lập mã có thể tùy ý quy định một nhóm người khác nhau với các khóa bí mật khác nhau đều có thể giải mã được, mã hóa như vậy phải ở dạng 1-n với n > 1. Một trong những hệ mã hóa 1-n hiện nay là hệ mã hóa quảng bá.
Định nghĩa và mô hình an toàn của hệ mã hóa quảng bá Mã hóa quảng bá được giới thiệu bởi Fiat and Naor [28] với mục tiêu tạo ra một hệ mã hóa mà ở mỗi lần mã hóa người mã hóa có thể chọn một tập người dùng tùy ý có thể giải mã được. Trong khi đó, cả độ dài bản mã, độ dài khóa bí mật và tốc độ giải mã khắc phục được nhược điểm về độ dài khóa và độ dài bản mã. luan an 8 “Với hệ mã hóa quảng bá quyền cơ bản nhất của kẻ tấn công là biết bản mã và khóa công khai. Ngoài ra, kẻ tấn công còn có thể có thêm các quyền khác như quyền biết khóa bí mật của các người dùng không có khả năng giải mã (những người dùng này nằm bên ngoài tập S), quyền tùy ý chọn một bản mã và biết bản rõ tương ứng,…”.
Định nghĩa Mã hóa quảng bá được định nghĩa như sau: Khởi tạo (⋋): Đầu vào của giải thuật khởi tạo là tham số an toàn ⋋. Trong đó tham số an toàn ⋋ có nghĩa là để phá được hệ mã này kẻ tấn công cần thực hiện ít nhất 2⋋ phép toán cơ bản nhị phân của máy tính. Đầu ra của giải thuật là khóa công khai và khóa bí mật của hệ thống. Tạo khóa (msk, id, list, param): Đầu vào của giải thuật là khóa bí mật của hệ thống, định danh của người dùng, danh sách các người dùng hiện thời đã được cấp khóa của hệ thống, cuối cùng là khóa công khai của hệ thống.
Nếu định danh của người dùng id là hợp lệ và id ∉ list thì giải thuật sẽ trả về khóa bí mật SKid cho người dùng id, sau đó id sẽ được đưa vào danh sách các người dùng hiện thời đã được cấp khóa của hệ thống. Ngược lại giải thuật sẽ trả về ⊥ (giải thuật ngừng và kết quả đầu ra là null). Mã hóa (S, param): Đầu vào của giải thuật là tập người dùng có khả năng giải mã S và khóa công khai của hệ thống. Đầu ra của giải thuật là khóa phiên làm việc K và bản mã của nó chứa cả S, ký hiệu là Hdr.
Lưu ý rằng, trong thực tế thì khóa phiên làm việc K sau đó sẽ được dùng như khóa bí mật trong hệ mã hóa khóa bí mật (ví dụ AES) để mã hóa dữ liệu. Như vậy, bản mã đầy đủ trong thực tế gọi là sẽ bao gồm cả Hdr và là bản mã của dữ liệu thực tế được mã hóa dưới khóa bí mật. Giải mã (Hdr, SKid, param): Đầu vào của giải thuật là bản mã Hdr của khóa phiên làm việc K, khóa bí mật của người dùng SKid, khóa công khai của hệ thống. Đầu ra của giải thuật là khóa phiên làm việc K nếu như id ∈ S, ngược lại đầu ra của giải thuật là ⊥.
Lưu ý rằng, trong luan an 9 thực tế thì sau khi giải mã tìm được khóa phiên K, người dùng sẽ dùng K như khóa bí mật để giải mã tìm lại dữ liệu thực tế đã được mã hóa. Mã hóa được mã hóa với cơ chế như trên được gọi là hệ mã hóa lai. Lý do hệ mã hóa lai được dùng trong thực tế là do nó tận dụng được cả hai ưu thế của hệ mã hóa khóa công khai truyền thống và hệ mã hóa khóa bí mật. Cụ thể, nhược điểm của mã hóa khóa công khai là có tốc độ mã hóa chậm, trong khi ưu điểm là không cần thống nhất khóa bí mật chung giữa người gửi và người nhận.
Còn nhược điểm của mã hóa khóa bí mật là phải thống nhất trước khóa bí mật chung giữa người gửi và người nhận, trong khi ưu điểm là tốc độ mã hóa nhanh. Hệ mã hóa lai là tận dụng lợi thế của cả hai hệ mã hóa này, cụ thể khóa phiên làm việc K ngắn sẽ được mã hóa bằng hệ mã hóa khóa công khai có tốc độ chậm, còn dữ liệu dài sẽ được mã hóa bằng hệ mã hóa khóa bí mật có tốc độ nhanh dưới khóa phiên K. Như vậy, với đối với mã hóa lai giữa người gửi và người nhận không cần thống nhất trước khóa bí mật chung, dữ liệu được mã hóa bằng hệ mã hóa khóa bí mật. Ở các tài liệu về mã hóa quảng bá [9, 10, 25, 26, 44, 46, 49, 55], để cho đơn giản người ta chỉ xét việc mã hóa và giải mã của khóa phiên làm việc K, do việc mã hóa và giải mã dữ liệu thực tế dùng K như là khóa bí mật là giống nhau ở tất cả các hệ mã hóa quảng bá.
Mô hình an toàn Khi ta nói một hệ mã hóa là an toàn là ta nói một cách chung chung. Còn cụ thể, một hệ mã hóa được chứng minh là an toàn nếu ta cho kẻ tấn công có các quyền A, B, C,.Ví dụ: Với hệ mã RSA thì kẻ tấn công có thể có quyền biết các tham số công khai như tích của hai số nguyên tố p và q, thậm chí biết một số cặp khóa bí mật và công khai,.Và ta chứng minh về mặt toán học rằng để phá được hệ mã thì kẻ tấn công với các quyền A, B, C,. phải giải được một bài toán khó nào đó, ví dụ như bài toán phân tích ra thừa số nguyên tố hay bài toán logarit rời rạc. Với mã hóa quảng bá, quyền cơ bản nhất của kẻ tấn công là biết bản mã và khóa công khai.
Ngoài ra, kẻ tấn công còn có thể có thêm các quyền khác như quyền biết khóa bí mật của các người luan an 10 dùng không có khả năng giải mã (những người dùng nằm bên ngoài tập S), quyền tùy ý chọn một bản mã và biết bản rõ tương ứng,… Khi mô hình hóa quyền của kẻ tấn công, ta gọi đó là mô hình an toàn, còn bài toán khó thì ta gọi là giả thuyết.