Mã hóa dựa trên định danh

14:34 | 04/10/2009 | GP MẬT MÃ
Mã hoá dựa trên định danh đang nổi lên như một công nghệ mật mã mới. Vậy mã hoá dựa trên định danh là gì, nó có gì khác với các công nghệ khoá công khai truyền thống và tại sao nó đang thu hút được nhiều sự quan tâm? Bài báo này giới thiệu khái quát về mã hóa dựa trên định danh và ứng dụng của nó, bao gồm 2 phần là Khái quát về Mã hóa dựa trên định danh và Các ưu thế của mã hóa dựa trên định danh.


Hình 1. Tạo các khoá trong hệ thống khoá công khai truyền thống


Khái quát về Mã hoá dựa trên định danh (Indetity-based encryption - IBE)
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ợ.
Hệ thống khóa công khai truyền thống
Trong các cài đặt hệ thống khoá công khai truyền thống có sử dụng chứng thư số để quản lý các khoá công khai, một cặp khoá bí mật – khóa công khai được sinh ra một cách ngẫu nhiên hoặc bởi người sử dụng, hoặc bởi một đại lý uỷ quyền đại diện cho người sử dụng. Trong đó, khoá công khai chứa tất cả các tham số được cần đến để sử dụng trong các tính toán mật mã. Sau khi được tạo ra, khoá công khai cùng với định danh người chủ của khoá được ký số bởi Cơ quan thẩm quyền chứng thực (certificate authority- CA) để tạo ra một chữ ký số (chứng thư số) mà sau đó được sử dụng để vận chuyển và quản lý khoá. Người chủ của khoá bí mật sau đó nhận được bản sao của chứng thư còn một bản sao khác của chứng thư được lưu trong kho chứng thư công khai mà nhiều người có thể truy cập được. Trong các ứng dụng cần phải khôi phục các khoá bí mật đã bị thất lạc hoặc không sẵn sàng theo cách nào đó, thì các khoá bí mật cũng cần được lưu trữ một cách an toàn bởi một Đại lý uỷ quyền khôi phục khoá. Nếu Đại lý uỷ quyền đã tạo ra khoá bí mật thay cho người sử dụng, giống như thường xảy ra khi các khoá được sinh ra một cách tập trung, thì các bản sao khóa cần phải được lưu trữ để cho phép khôi phục các khoá bị thất lạc hoặc không sẵn sàng. Người chủ của khoá cũng nhận được khoá bí mật từ CA. Quá trình này được thực hiện như Hình 1.
Trong một hệ thống khoá công khai truyền thống, định danh của người sử dụng thông thường được kiểm tra cẩn thận trước khi chứng thư số được phát hành cho họ, đây là một quá trình khá tốn kém. Quá trình sinh cặp khoá bí mật – khóa công khai cũng đòi hỏi chi phí nhiều về mặt tính toán. Việc sinh 2 số nguyên tố 512 bit thích hợp để sử dụng trong việc sinh ra khoá bí mật RSA 1024 bit là khả thi, nhưng việc sinh ra các số nguyên tố lớn hơn tốn kém hơn rất nhiều. Việc sinh ra 2 số nguyên tố 7680 bit thích hợp sử dụng để sinh ra một khoá RSA 15360 bit không thể dễ dàng thực hiện đối với các máy tính thông thường, mặc dù các khoá như vậy là cần thiết để vận chuyển một cách an toàn các khoá AES 256 bit được sử dụng hiện nay. Vì việc sinh khoá và kiểm tra định danh của những người sử dụng tốn nhiều chi phí nên các chứng thư số thường được phát hành với các thời hạn hợp lệ khá dài, từ 1 đến 3 năm. Vì thời hạn hợp lệ của các khoá công khai được quản lý bằng các chứng thư số, nên  cần phải kiểm tra tính hợp lệ của khoá trong một chứng thư trước khi sử dụng nó (Hình 2). Có nhiều giải pháp đã được đề xuất để kiểm tra tính hợp lệ của các khoá công khai, nhưng các công nghệ đang tồn tại khó đáp ứng khi áp dụng cho một số lượng lớn người sử dụng.



Hình 2. Xác nhận và sử dụng khoá công khai  trong hệ thống khoá công khai truyền thống


Để sử dụng một khoá công khai được chứa trong một chứng thư số, người sử dụng truy vấn kho chứng thực công khai, tìm, lấy chứng thư về và phải kiểm tra xem khoá công khai đó có còn hợp lệ hay không trước khi sử dụng. Điều đó có thể thực hiện bằng cách kiểm tra một danh sách của các chứng thư không hợp lệ hoặc yêu cầu một dịch vụ trực tuyến trả lời về tình trạng hợp lệ của chứng thư. Sau khi việc kiểm tra tính hợp lệ được thực hiện, người sử dụng dùng khoá công khai mã hoá thông tin để gửi tới người chủ của khoá công khai. Vì người nhận có khoá bí mật tương ứng với khoá công khai nên có khả năng giải mã thông tin này (Hình 2).
Lược đồ mã hóa dựa trên định danh
IBE lần đầu tiên được Adi Shamir nói tới vào năm 1984 [1], 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 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ã hoá thông tin gửi tới người đó (Hình 3).
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 4).



Hình 4. Giải mã bằng hệ thống IBE


Sự khác nhau giữa IBE và hệ thống khóa công khai truyền thống như sau (Bảng 1).


Bảng 1. So sánh các tính chất của hệ thống IBE và hệ thống khoá công khai truyền thống


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.


Bảng 2. 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). 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.
Các mục tiêu an toàn
Có 5 mục tiêu chính mà một giải pháp an toàn thông tin có thể đáp ứng: cung cấp tính bí mật, tính toàn vẹn, tính sẵn sàng, tính xác thực và tính không chối bỏ. Tính bí mật giữ thông tin bí mật đối với những ai không có thẩm quyền được biết. Tính toàn vẹn đảm bảo rằng thông tin không bị thay đổi bởi những cách thức không được biết hoặc không có thẩm quyền. Tính sẵn sàng đảm bảo rằng thông tin nằm ở nơi được yêu cầu bởi người sử dụng tại thời điểm mà thông tin được yêu cầu và ở dạng mà người sử dụng cần đến. Xác thực là khả năng kiểm tra định danh của người sử dụng. Không chối bỏ ngăn chặn việc từ chối các hành động hoặc cam kết trước đó. Việc sử dụng mật mã khóa công khai truyền thống có thể hỗ trợ phần lớn trong số các mục tiêu này; còn việc sử dụng IBE chỉ có thể hỗ trợ một trong những những mục tiêu đó (Bảng 3).
Mã hoá dữ liệu nhằm bảo đảm tính bí mật. Trong một hệ thống được thiết kế tốt, việc giải mã dữ liệu đã được mã hoá là không thể đối với bất cứ ai không nắm giữ khoá giải mã đúng. Còn các chữ ký số cung cấp các giải pháp cho các mục đích an toàn thông tin khác. Chúng cung cấp cách để đảm bảo tính toàn vẹn, bởi vì việc sửa đổi dữ liệu đã được ký số trong khi giữ cho chữ ký vẫn hợp lệ là không thể thực thi về mặt tính toán và tương đương với việc khám phá mật mã cơ sở đã được sử dụng để tạo ra chữ ký. Chúng cũng có thể cung cấp một cơ sở kỹ thuật bảo đảm cho tính không chối bỏ, mặc dù việc định nghĩa một cách chính xác về tính không chối bỏ là tương đối khó. Đối với tất cả các mục tiêu thực hành, tính không chối bỏ dường như là một mục tiêu không thể đạt được đối với các công nghệ an toàn thông tin đang tồn tại. Các chữ ký số cũng cung cấp cách thức để xác thực những người sử dụng. Một người sử dụng khi tạo ra một chữ ký số hợp lệ hoặc cần phải nắm giữ khoá bí mật đã được sử dụng để tạo chữ ký hoặc phải đánh bại hệ mật mã đã được sử dụng để tạo chữ ký. Cho nên bằng cách sử dụng các chữ ký số để xác thực những người sử dụng cũng có thể giúp ngăn chặn các tấn công từ chối dịch vụ, nó làm tăng tính sẵn sàng của dữ liệu.
IBE cung cấp một giải pháp dễ thực thi mà vẫn đảm bảo tính bí mật của dữ liệu. Nó không bảo đảm tính toàn vẹn, tính sẵn sàng, tính xác thực và không chối bỏ. Chúng được cung cấp dễ hơn bởi các chữ ký số nhờ các khoá đã được tạo ra và quản lý bởi hệ thống khoá công khai truyền thống. Các ưu thế mà IBE cung cấp làm cho nó là một giải pháp rất tốt cho một số trường hợp ứng dụng. Một giải pháp pha trộn sử dụng IBE cho mã hoá và hệ thống khoá công khai truyền thống để cung cấp các chữ ký số có thể là một giải pháp kết hợp được những đặc tính tốt nhất của mỗi công nghệ .

Tin cùng chuyên mục

Tin mới