Mã hóa dựa trên thuộc tính
Khái quát về Mã hóa dựa trên thuộc tính
Khái niệm mã hóa dựa trên thuộc tính (Attribute-based Encryption - ABE) được đề xuất bởi Sahai và Waters, trong bài báo “Mã hóa dựa trên định danh mờ Fuzzy IBE”. Trong mã hóa dựa trên thuộc tính, một bên tham gia sẽ mã hóa một tài liệu sử dụng cho tất cả những người dùng cùng sở hữu một tập hợp thuộc tính nào đó. Ví dụ, trong một khoa giảng dạy về khoa học máy tính, một văn bản được mã hóa và dùng cho tất cả hệ thống của khoa. Trong trường hợp này, người ta sẽ mã hóa cả các định danh {“khoa”, “hệ thống”}. Bất kỳ người dùng nào có định danh chứa tất cả các thuộc tính trên mới có thể giải mã được văn bản. Ưu điểm của mã hóa này là văn bản có thể lưu trữ ở một server không tin cậy (thay vì dựa vào một server đáng tin cậy) để thực hiện kiểm tra xác thực văn bản khi nhận được. Mã hóa dựa trên thuộc tính ABE được xây dựng theo hai hướng chính: mã hóa dựa trên thuộc tính chính sách bản mã (CP-ABE), mã hóa dựa trên thuộc tính chính sách khóa (KP- ABE).
Mã hóa dựa trên thuộc tính chính sách bản mã
Trong nhiều hệ thống phân tán, một người dùng chỉ có thể truy cập đến dữ liệu nếu sở hữu một tập hợp các ủy nhiệm hoặc thuộc tính. Hiện nay, phương pháp duy nhất để thi hành chính sách trên là sử dụng một server tin cậy để lưu trữ dữ liệu và làm trung gian trong việc quản lý quyền truy cập. Tuy nhiên, nếu server lưu trữ dữ liệu bị tổn hại, thì tính bí mật của dữ liệu lưu trữ ở đó cũng bị xâm phạm. Mã hóa dựa trên thuộc tính chính sách bản mã (Ciphertext-policy Attribute-Based Encryption - CP-ABE) được xây dựng với mục đích thực hiện việc quản lý quyền truy cập lên các dữ liệu đã được mã hóa. Với việc sử dụng mã hóa dựa trên thuộc tính chính sách hướng bản mã (CP- ABE) dữ liệu mã hóa có thể được giữ bí mật, thậm chí khi server dữ liệu không còn đáng tin cậy và phương pháp này cũng an toàn đối với Tấn công thông đồng (collusion attacks). Hệ thống mã hóa dựa trên định danh có thể sử dụng những thuộc tính để mô tả dữ liệu đã được mã hóa và xây dựng những chính sách sử dụng khóa của người dùng, còn trong hệ thống mã hóa CP- ABE, các thuộc tính được dùng để mô tả thông tin ủy nhiệm của người dùng và một người mã hóa dữ liệu sẽ xác định chính sách cho phép ai có thể giải mã dữ liệu này.
Trong nhiều tình huống, khi một người dùng mã hóa dữ liệu nhạy cảm đồng nghĩa với việc họ phải thiết lập một chính sách quản lý quyền truy cập nhất định đối với những người có thể giải mã dữ liệu này. Ví dụ, giả thiết rằng cơ quan phòng chống tham nhũng của FBI ở Knoxville và San Francisco đang điều tra một vụ hối lộ liên quan đến một người vận động hành lang ở San Francisco và một nghị sĩ quốc hội của Tennessee. Người đứng đầu cơ quan phòng chống tham nhũng có thể muốn mã hóa một bản tin nhạy cảm mà chỉ nhân viên thuộc quyền có đủ thông tin ủy nhiệm hoặc thuộc tính cần thiết có thể truy cập nó. Ví dụ, có thể xác định cấu trúc truy cập để truy cập thông tin đó: (“PUBLIC CORRUPTION OFFICE” AND (“KNOXVILLE” OR “SAN FRANCISCO”) OR (MANAGEMENT-LEVEL>5) OR “NAME:CHARLIE EPPES”).
Theo đó, bản tin chỉ được đọc bởi nhân viên làm ở cơ quan điều tra tham nhũng tại Knoxville hoặc San Francisco, các cán bộ FBI cấp cao, và một cố vấn tên là Charlie Eppes.
Như được mô tả trong ví dụ trên, điều cốt lõi là người sở hữu những dữ liệu bí mật có thể lựa chọn chính sách truy cập dựa trên những kiến thức nào đó của dữ liệu. Hơn nữa, người này không nhất thiết phải biết chính xác định danh của tất cả những người có quyền truy cập đến dữ liệu nhạy cảm nhưng có thể mô tả định danh của họ nhờ các thuộc tính hoặc thông tin ủy nhiệm.
Theo truyền thống, kiểu quản lý quyền truy cập nhanh thường sử dụng một server tin cậy để bảo quản dữ liệu cục bộ. Server tin cậy như một giám sát viên, kiểm tra người dùng, yêu cầu phải trình chứng chỉ đúng sau đó mới cho quyền truy cập đến bản ghi hoặc file. Việc sao lưu dữ liệu ở các địa điểm khác nhau như vậy tạo thuận lợi và hiệu quả trong công việc. Nhược điểm của xu hướng này là khó khăn trong việc đảm bảo tính an toàn của dữ liệu. Khi dữ liệu được lưu giữ ở nhiều điểm khác nhau thì cơ hội rò rỉ, mất mát thông tin sẽ tăng lên rất nhiều. Với những nguyên nhân này, các dữ liệu nhạy cảm cần phải được lưu ở dạng mã hóa, như vậy thì chúng sẽ vẫn giữ được tính bí mật, nếu server bị tổn thất.
Hầu hết các phương pháp mã hóa khóa công khai cho phép một bên tham gia mã hóa cho những người dùng riêng lẻ, nhưng không thể kiểm soát một cách hiệu quả kiểu quản lý quyền truy cập nhanh như ở trong ví dụ trên.
Trong hệ thống CP- ABE, khóa riêng của người dùng sẽ được liên kết với một số tùy ý các thuộc tính, được diễn đạt dưới dạng các xâu. Mặt khác, khi một bên mã hóa thông báo trong hệ thống này, họ xác định một cấu trúc truy cập có liên quan đến các thuộc tính. Một người dùng chỉ có thể giải mã một bản mã nếu các thuộc tính của người dùng thỏa mãn cấu trúc truy cập. Ở mức toán học, trong hệ thống CP- ABE cấu trúc truy cập được mô tả dưới dạng “cây truy cập” đơn, ở đó các nút của cấu trúc truy cập được tạo bởi cổng ngưỡng và “những chiếc lá” là những thuộc tính.
Ở mức độ cao, CP- ABE tương tự như mã hóa dựa trên thuộc tính chính sách khóa (KP-ABE) của cùng nhóm tác giả Sahai, Waters (sẽ được trình bày dưới đây), tuy nhiên các yêu cầu kỹ thuật khác biệt về căn bản. Trong KP- ABE, các bản mã sẽ liên kết với tập hợp của các thuộc tính mô tả, và khóa của người dùng liên kết với chính sách (ngược lại so với CP- ABE).
Ở mức kỹ thuật, đối tượng chính mà chúng ta phải đạt được là kháng thông đồng (collusion-resistance). Có nghĩa là nếu nhiều người dùng thông đồng, họ chỉ có thể giải một bản mã, mà ít nhất một trong những người dùng có thể giải mã được. Mục tiêu được đặt ra là những kẻ thông đồng trên không thể giải mã các bản tin bí mật bằng cách kết hợp các thuộc tính của chúng. Kiểu an ninh này là điều kiện thiết yếu của việc kiểm soát quyền truy cập.
Một sơ đồ mã hóa dựa trên thuộc tính chính sách bản mã chứa bốn thuật toán cơ bản là Setup (Thiết lập), Encrypt (Mã hóa), GenKey (Tạo khóa), Decrypt (Giải mã), trong đó:
Setup: Thuật toán thiết lập chỉ lấy đầu vào là các tham số an toàn, đầu ra là tham số công khai PK và khóa chủ MK.
Encrypt (PK,M,A). Thuật toán mã hóa lấy đầu vào là tham số công khai PK, một thông báo M, và một cấu trúc truy cập A trên tập các thuộc tính. Thuật toán sẽ mã hóa M và tạo ra bản mã CT, sao cho chỉ người dùng sở hữu một tập hợp các thuộc tính thỏa mãn cấu trúc truy cập sẽ có thể giải mã được thông báo.
GenKey (MK,S). Thuật toán tạo khóa lấy đầu vào là khóa chủ MK và tập hợp các thuộc tính S, có đầu ra là khóa riêng SK.
Decrypt (PK,CT,SK). Thuật toán giải mã lấy đầu vào là tham số công khai PK, một bản mã CT, nó chứa chính sách truy cập A và một khóa riêng SK (là một khóa riêng cho một tập hợp thuộc tính S). Nếu tập hợp thuộc tính S thỏa mãn cấu trúc truy cập A thì thuật toán sẽ giải mã thành công bản mã và đưa ra thông báo M.
Mã hóa dựa trên thuộc tính chính sách khóa (KP-ABE)
Trong hệ thống CP- ABE chính sách truy cập được xác định trong bản mã, còn trong hệ thống mã hóa dựa trên thuộc tính chính sách khóa (KP- ABE), chính sách truy cập được chỉ định trong khóa riêng thuộc tính (Hình 3).
Mã hóa dựa trên thuộc tính chính sách khóa là một nguyên thủy mật mã, nó được đề xuất để giải quyết vấn đề quản lý quyền truy cập trong trường hợp liên lạc từ một đến nhiều điểm (one- to- many). Trong hệ thống KP-ABE, một bản mã được liên kết với một tập hợp các thuộc tính và khóa bí mật của mỗi người dùng được nhúng vào một cấu trúc truy cập, cấu trúc này là một tổ hợp lôgic của tập hợp thuộc tính nào đó. Người dùng có thể giải mã khi và chỉ khi tập hợp thuộc tính liên kết với bản mã thỏa mãn cấu trúc truy cập được nhúng trong khóa bí mật của họ. Bên cạnh tính chất này, KP-ABE cũng có những tính chất tốt có thể đối phó lại Tấn công thông đồng. Các tính chất “tốt” đó cho phép KP-ABE trở thành một công cụ hoàn hảo phục vụ cho quản lý quyền truy cập và các ứng dụng đối với thông tin nhạy cảm.
Sơ đồ KP- ABE bao gồm bốn thuật toán sau:
- Setup (1l,n) Thuật toán thiết lập lấy đầu vào là tham số an toàn 1l và n- chiều dài của định danh người dùng. Đầu ra của thuật toán thiết lập là khóa chủ MK và khóa công khai PK.
- Enc (M, g, PK). Thuật toán mã hóa lấy đầu vào là thông báo M, tập hợp các thuộc tính g, và tham số công khai PK. Đầu ra là bản mã E.
- KeyGen (T, MK, PK). Thuật toán tạo khóa lấy đầu vào là cấu trúc truy cập T, khóa chủ bí mật MK, khóa công khai PK. Đầu ra là khóa riêng của một người dùng SK.
- Dec (E, SK, PK). Lấy đầu vào là bản mã E cho tập hợp thuộc tính g, một khóa riêng SK cho cấu trúc truy cập T, và khóa công khai PK. Nếu g thỏa mãn T, thuật toán trả về thông báo M. Ngược lại, nó đưa ra đầu ra giá trị z.
Ứng dụng của mã hóa dựa trên thuộc tính
Hai dạng mã hóa dựa trên thuộc tính nêu trên đều được ứng dụng trong thực tế. CP- ABE cho phép một kiểu kiểm soát truy cập mới đến bản mã, mà ở đó khóa riêng của người dùng
được xác định bởi một tập hợp các thuộc tính, và phía người mã hóa dữ liệu xác định chính sách trên các thuộc tính, nhờ đó xác định những người có thể giải mã.
KP- ABE được ứng dụng trong những hệ thống mà dữ liệu có thể được phân loại theo thuộc tính của chúng và đặc quyền truy cập của người dùng được xác định theo cách cho phép họ có quyền truy cập đến một tập hợp con nào đó của tài nguyên và cấm việc sử dụng sai đặc quyền truy cập. Một lĩnh vực ứng dụng quan trọng của KP- ABE là hệ thống truyền hình trả tiền. Trong hệ thống như vậy, mỗi chương trình có một giá tiền riêng và sử dụng sai quyền truy cập là vi phạm pháp luật. Gần đây, KP-ABE cũng được ứng dụng trong môi trường mạng không dây và kết hợp với các nguyên thủy mật mã khác để giải quyết bài toán kiểm soát quyền truy cập.
Kết luận
Mã hóa dựa trên thuộc tính là một công nghệ mã hóa tương đối mới với các ứng dụng mà công nghệ mã hóa khóa công khai truyền thống không có. Hiện nay, KP- ABE và CP-ABE là hai mô hình được ứng dụng nhiều của mã hóa ABE, nhưng chắc chắn còn tồn tại các kiểu mã hóa ABE khác. Việc tìm ra dạng mã hóa ABE mới chính là hướng nghiên cứu trong tương lai