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. 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
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
đầ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 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.
2.3. Lƣợc đồ mã hóa dựa trên đinh danh ibe
IBE lần đầu tiên được Adi Shamir nói tới vào năm 1984, khi ông mô tả một cách khái lược về các tính chất và cách thức sử dụng một hệ thống như vậy. Mặc dù ông chưa thực hiện được một công nghệ an toàn và khả thi hoạt động như đã mô tả, song các ưu thế về khả năng sử dụng của IBE so với các công nghệ khác đã được ông mô tả như sau: (hình 2.3)
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
Hình 2.3. Mã hoá bằng hệ thống IBE
Một hệ thống IBE có các điểm tương tự với các hệ thống khoá công khai truyền thống, nhưng cũng có nhiều điểm khác biệt. Trong khi các khoá công khai truyền thống chứa tất cả các tham số cần thiết để sử dụng khoá, thì để sử dụng một hệ thống IBE, người sử dụng thông thường cần nhận được một tập các tham số công khai từ một bên thứ ba tin cậy. Cùng với những tham số này, người sử dụng có thể tính khoá công khai IBE của người sử dụng bất kỳ khác và dùng nó để mã hóa thông tin gửi tới người đó
Người nhận thông tin đã được mã hoá bởi IBE sau đó xác thực theo một cách nào đó với bộ tạo khoá bí mật (PKG- private key generator). Một bên thứ ba tin cậy tính được khoá bí mật IBE tương ứng với một khoá công khai IBE cụ thể. Bộ tạo khoá bí mật thường sử dụng thông tin bí mật, được gọi là bí mật chủ (master secret) cộng với định danh của người sử dụng để tính ra khoá bí mật. Sau khi khoá bí mật đó được tính ra, nó được phân phối một cách an toàn tới người sử dụng có thẩm quyền (Hình 2.4).
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
Hình 2.4 . Giải mã bằng hệ thống IBE 2.4. Cài đặt (THE IMPLEMENTATION)
2.4.1. Các thuật toán sử dụng trong IBE
Trong một lược đồ khoá công khai truyền thống, chúng ta có thể tổng hợp các thuật toán tham gia vào việc sinh và sử dụng của một cặp khoá bí mật – khóa công khai gồm thuật toán sinh khoá, thuật toán mã hoá và thuật toán giải mã. Hai thuật toán phụ thêm, chứng thực khoá và kiểm tra tính hợp lệ của khoá, thường được sử dụng trong một số trường hợp áp dụng các lược đồ này. Để định ra một cách đầy đủ hoạt động của một lược đồ như vậy, chúng ta cần xác định hoạt động của mỗi thuật toán trong số các thuật toán này. Trong bước sinh khoá, một khoá của cặp khoá bí mật – khóa công khai được sinh ra một cách ngẫu nhiên và khoá kia trong cặp được tính ra từ nó. Sau đó, khoá công khai và định danh của người chủ sở hữu nó được ký số bởi Cơ quan chứng thực để tạo ra một chứng thư số. Phép mã hoá được thực hiện nhờ khoá công khai được chứa trong chứng thư này. Phép giải mã được thực hiện nhờ khoá bí mật tương ứng với khoá công khai.
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
Thuật toán Tóm tắt
Thiết lập Khởi tạo tất cả các tham số hệ thống
Trích Tính khóa bí mật IBE từ bí mật chủ của bộ tạo khóa bí mật và định danh nhờ sử dụng các tham số hệ thống
Mã hóa Mã hóa thông tin nhờ sử dụng khóa công khai IBE đã tính được từ các tham số hệ thống và định danh
Giải mã Giải mã thông tin nhờ sử dụng khóa bí mật IBE đã tính được từ bí mật chủ của bộ tạo khóa bí mật PKG và định danh
Bảng 2.1: Bốn thuật toán tạo nên lƣợc đồ IBE
Trong một lược đồ IBE cũng có 4 thuật toán được dùng để tạo và sử dụng cặp khoá bí mật – khóa công khai (Bảng 2.1). Theo truyền thống, chúng được gọi là thuật toán thiết lập (setup), thuật toán trích (extraction), thuật toán mã hoá (encryption) và thuật toán giải mã (decryption). “Thiết lập” là thuật toán để khởi tạo các tham số được cần tới cho các tính toán IBE, bao gồm bí mật chủ mà bộ tạo khoá bí mật PKG sử dụng để tính ra các khoá bí mật IBE. “Trích” là thuật toán để tính một khoá bí mật IBE từ các tham số đã được tạo ra trong bước thiết lập, cùng với định danh của người sử dụng và sử dụng bí mật chủ của bộ tạo khoá bí mật PKG để làm việc này. “Mã hoá” được thực hiện bằng khoá công khai IBE đã được tính ra từ các tham số ở bước thiết lập và định danh của người sử dụng. “Giải mã” được thực hiện bằng khoá bí mật IBE đã được tính ra từ định danh của người sử dụng và khoá bí mật của bộ tạo khoá bí mật PKG.
2.4.2. Cài đặt
Để thực hiện ý tưởng mô tả trong phần trước, chúng ta cần một chương trình mã khóa công khai với hai thuộc tính bổ sung:
(A) Khi seed k được biết đến, các khóa bí mật có thể dễ dàng được tính toán cho một phần nhỏ của khóa công khai.
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
(B) Các vấn đề của việc tính toán seed k từ các cặp khóa công khai – bí mật được tạo ra với k là không dễ dàng.
Lược đồ RSA sử dụng không thỏa mãn những điều kiện cùng lúc:
(a) Nếu n là một hàm giả ngẫu nhiên dựa trên danh tính của người sử dụng thì ngay cả trung tâm khởi tạo mã cũng không thể phân tích số n này ra thừa số nguyên tố, đồng thời không thể tính được số mũ giải mã d từ số mũ mã hóa e.
(b) Nếu n là phổ biến và seed của nó là 1 thừa số bí mật, thì bất kì ai biết đọc số mũ mã hóa e và số mũ giải mã d tương ứng đều có thể tính toán ra giá trị của seed.
Ở giai đoạn này, chúng tôi đã đề xuất thực hiện cụ thể chỉ cho các chương trình chữ ký dựa trên cơ sở nhận dạng, tuy nhiên chúng tôi cũng ước đoán rằng có sự tồn tại của các hệ bảo mật dựa trên nhận dạng tồn tại và chúng tôi khuyến khích người đọc để tìm kiếm những hệ thống như vậy. Tình huống này gợi lại thời kỳ năm 1976, khi các hệ mật khóa công khai đã xác định thì các ứng dụng tiềm năng của chúng phải trải qua 50 cuộc điều tra cho dù việc triển khai cụ thể lần đầu tiên được công bố ngay trong năm 1978.
Đề án chữ ký dựa trên điều kiện xác minh: se = i.t f(tfm) (mod n) trong đó - m là thông điệp - s,t là chữ ký - i danh tính người sử dụng - n sản phẩm của 2 số nguyên tố lớn - e là số nguyên tố cùng nhau với (n) - f là hàm 1 chiều.
Các thông số n, e và hàm f được lựa chọn bởi các trung tâm tạo khóa, và tất cả những người sử dụng có cùng n,e và f thì đều được lưu trữ trong thẻ
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
thông minh của họ. Những giá trị này có thể được thực hiện công khai, nhưng thừa số của n chỉ được biết đến trung tâm tạo khóa. Sự khác biệt duy nhất giữa người sử dụng là giá trị của i, và khóa bí mật tương ứng với i là g sao cho:
ge = i (mod n).
G có thể dễ dàng được tính ra bởi trung tâm tạo mã, nhưng nếu chương trình RSA an toàn thì không ai có thể trích xuất nguồn gốc điện tử thứ mod n Mỗi thông điệp m chứa rất nhiều cặp chữ ký (s, t), tuy nhiên mật độ phân bổ của chúng thấp đến nỗi mà phương thức tìm kiếm ngẫu nhiên hầu như không thể phát hiện ra bất kỳ chữ ký nào. Việc tính toán những biến khác dựa trên (s,t) cũng là bất khả thi, vì để làm được điều đó cần phải tính được góc mô-đun, bài toán đó đươc xem là vô cùng khó. Song, nếu phát hiện được g, có thể rất dễ dàng tạo ra chữ ký cho bất kì tin nào, kể cả khi không biết phân tích nguyên tố của n. Để ký 1 tin m, người dùng chọn 1 số ngẫu nhiên r và tính:
t = re (mod n).
Hoặc có thể viết lại như sau: Se = ge.ref(t,m) mod n
Vì e là số nguyên tố cùng nhau với (n), chúng ta có thể loại bỏ các yếu tố điện tử phổ biến từ các số mũ và do đó s có thể được tính mà không cần bất kỳ khai thác gốc nào.
s = g-r f(trm) (mod n)
Để ngăn chặn các cuộc tấn công dựa trên mối quan hệ tỉ lệ giữa các danh tính (giá trị g) của những người dùng khác nhau, chúng ta nên mở rộng chuỗi miêu tả danh tính của người dùng trở thành 1 chuỗi ngẫu nhiên giả thông qua 1 hàm 1 chiều chung, và sử dụng dạng mở rộng cho giá trị của _i_ trong điều kiện xác thực. Bởi vì mọi người trong mạng lưới đều biết cách áp dụng hàm này, phương thức mã hóa vẫn giữ được đặc tính dựa trên danh tính của nó
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
ngay cả khi khóa chữ ký xác minh chu kỳ không đúng bằng với danh tính người dùng.
Tính bảo mật của phương thức này phụ thuộc vào việc người giải mã không thể nào tìm ra g qua việc phân tích 1 lượng lớn những chu kì hợp lệ của tin nhắn của anh ta. Nếu ước số chung của f và e là c, chúng ta có thể tìm ra căn bâc c của i dựa trên việc dựng lên điều kiện xác thực, vì vậy một việc tối quan trọng là e phải là một số nguyên tố đủ lớn, và phải là một hàm một chiều đủ mạnh sao cho việc tìm ra c là không thể khi thực hành. Giá trị của r không bao giờ được sử dụng lại hay được tiết lộ, bởi vì g được bảo vệ trong mỗi chu kì dựa vào sự ngẫu nhiên và bí mật của nó.
Những biến thể của điều kiện xác thực mà một trong 2 sự xuất hiện của t bị xóa mất (như là bị thay thế bởi một hằng số) thì không bảo mật. Do đó, việc có tập giá trị lớn và sử dụng một hàm một chiều có thể trộn lẫn hoàn toàn t và m (cách tốt nhất là thông qua những phép toán không thể đảo nghịch hoặc không có quy luật) là điều vô cùng quan trọng. Chúng tôi tin rằng với cách chọ thông số hợp lý, phương thức này có thể trở nên vô cùng bảo mật, dù vậy, cũng chưa thể chứng minh việc bẻ khóa hàm này giống như giải 1 bài toán khó. Mục tiêu chính của hàm này là để dẫn giải bước đầu, như minh chứng đầu tiên cho những phương thức dựa trên danh tính. Phương thức OSS signature cũng có thể sử dụng như 1 phương thức dựa trên danh tính, nhưng sự bảo của nó vẫn còn là 1 vấn đề mở, khi mà những phiên bản trước đã bị bẻ khóa thành công bởi Pollard. Do vậy, chúng tôi không khuyến khích dùng phương thức này ngay trực tiếp trước khi cộng đồng bảo mật chứng minh được tính bảo mật của nó.
2.5. So sánh ibe và hệ thống khóa công khai truyền thống
2.5.1. Thuật toán trao đổi khóa Diffie - Hellman
Năm 1976, Whitfield Diffie và Martin Hellman công bố một hệ thống mật mã hóa khóa bất đối xứng trong đó nêu ra phương pháp trao đổi khóa
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
công khai. Công trình này chịu sự ảnh hưởng từ xuất bản trước đó của Ralp Merkle về phân phối khóa công khai. Trao đổi khóa Diffie-Hellman là phương pháp có thể áp dụng trên thực tế đầu tiên để phân phối khóa bí mật thông qua một kênh thông tin không an toàn. Kỹ thuật thỏa thuận khóa của Merkle có tên là hệ thống câu đố Merkle.
Giả sử A và B muốn liên lạc sử dụng hệ mật khoá bí mật. Để thoả thuận mật khoá K chung cho cả hai bên qua một kênh không an toàn mà không ai khác có thể biết được, A và B có thể dùng thủ tục thoả thuận khoá Diffie - Hellman sau:
- Chọn trước một số nguyên tố p thích hợp và một phần tử sinh α của - Z*p (2 ≤ α ≤ p-2 ) Các giá trị p và α được công khai.
- A gửi cho B giá trị α^x mod p (2.1) - B gửi cho A giá trị α^y mod p. (2.2)
- Thực hiện các bước sau mỗi khi cần có khoá chung:
- A chọn một số nguyên bí mật x: 1≤x≤p-2 và gửi cho B thông báo (2.1) - B chọn một số nguyên bí mật y: 1≤y≤p-2 và gửi cho A thông báo (2.2). - B thu được αx và tính khoá chung k:k = (α^x)^y mod p
- A thu được αy và tính khoá chung k: k = (α^y)^x mod p Ví dụ: Giả sử A và B chọn p = 11 và α = 2
Nhóm nhân xyclic sinh bởi α: