Attribute-based Encryption (рус. Шифрование на основе атрибутов, ABE-шифрование) — разновидность алгоритмов шифрования с открытым ключом, в которых закрытый ключ, применяемый пользователем для расшифрования данных, зависит от некоторых атрибутов пользователя (например, должность, место жительства, тип учётной записи). Идея ABE была впервые опубликована Amit Sahai и Brent Waters[1] и была в дальнейшем развита в работах Vipul Goyal, Omkant Pandey, Amit Sahai и Brent Waters[2].

Общая схема Attribute-based Encryption

править

Схема была предложена Sahai и Waters в 2005 году. В ней участвуют владелец данных (передающий данные), пользователь (принимающий данные) и третья сторона (доверенный центр), чья роль заключается в том, чтобы генерировать ключи для шифрования и расшифрования данных владельцами данных и пользователями.

Ключи (в частности, открытый ключ и универсальный ключ) генерируются по установленному полному набору атрибутов. Если к системе присоединится пользователь с новым атрибутом, атрибут будет добавлен к набору, а открытый и универсальный ключи будут сгенерированы заново.

Владелец данных шифрует данные при помощи открытого ключа и некоторого набора атрибутов.

Пользователь может расшифровать данные при помощи собственного закрытого ключа, который он получает от доверенного центра. Проверяется соответствие между атрибутами, которые составляют закрытый ключ пользователя, и атрибутами зашифрованных данных. Если число совпадающих атрибутов превышает установленный порог  , закрытый ключ пользователя сможет расшифровать данные. (Пусть, например, атрибуты шифрованных данных {«Кафедра радиотехники», «Преподаватель», «Студент»},  . Чтобы пользователь смог расшифровать данные и получить к ним доступ, в наборе атрибутов, составляющих его закрытый ключ, должны присутствовать по крайней мере два из трёх атрибутов шифрованных данных).

Структуры доступа

править

Пусть   — множество атрибутов. Набор   называется монотонным, если:

 .

Структура доступа (монотонная структура доступа) — набор (монотонный набор)   непустых подмножеств  , то есть  . Наборы атрибутов, которые входят в   — авторизованные наборы, пользователям с ними разрешён доступ к данным; наборы, которые не принадлежат   — неавторизованные наборы атрибутов.

Применение схемы шифрования на основе атрибутов в её первоначальном виде ограничено монотонными структурами доступа. В 2007 году было предложено обобщение[3] схемы на случай немонотонных структур, однако оно не является эффективным[4].

Структура доступа может быть представлена в виде дерева, в котором узлы-листья представляют собой атрибуты, а остальные узлы характеризуются своими дочерними вершинами и пороговыми значениями. Пусть, например, узел   имеет   дочерних вершин; его пороговое значение  ,  . Если пороговое значение этого узла  , то он представляет собой логический элемент «ИЛИ», поскольку для достижения порогового значения достаточно присутствия у пользователя одного из дочерних атрибутов. Если же пороговое значение  , то он, очевидно, реализует элемент «И».

Описание алгоритма

править

Пусть  ,   — билинейные группы порядка   (  — простое),   — генератор группы  ;

  — билинейное отображение;

  — пороговое значение.

Общая схема состоит из четырёх этапов, для каждого из которых существует соответствующий алгоритм.

Генерация открытого ключа и универсального ключа

править

Доверенный центр случайным образом выбирает   из конечного поля   и вычисляет открытый ключ  , где   — генератор некоторой билинейной группы   порядка   (  — простое). На этом этапе также генерируется универсальный ключ  .

Генерация закрытых ключей

править

Доверенный центр генерирует закрытый ключ для каждого пользователя  ;   — набор атрибутов пользователя. Случайным образом выбирается полином   степени   такой, что выполняется  . Закрытый ключ пользователя  .

Шифрование

править

Владелец данных шифрует сообщение   с использованием набора атрибутов   и случайно выбранного числа  :  

Расшифрование

править

Если  , из   выбирается   атрибутов для вычисления значений  ,  .

Исходное сообщение  .

Закрытые ключи в такой схеме генерируются по принципу разделения секрета: части секрета y включаются в компоненты   закрытого ключа пользователя; закрытому ключу соответствует случайный полином  . В результате соединения нескольких закрытых ключей нельзя получить новый закрытый ключ, что предотвращает возможность атаки в результате сговора пользователей.

Key-policy Attribute-based Encryption (ABE-шифрование с правилом доступа на основе закрытого ключа)

править

В 2006 году в работе Goyal[2] была предложена схема ABE-шифрования с правилом доступа на основе закрытого ключа (Key-policy Attribute-based Encryption). В ней шифрованные данные описываются набором атрибутов, а правило доступа к данным содержится в закрытом ключе пользователя. Если набор атрибутов данных соответствует структуре доступа в закрытом ключе пользователя, данные могут быть расшифрованы. Например, данные зашифрованы с атрибутами {«Кафедра радиотехники»   «Студент»}, а закрытый ключ пользователя соответствует структуре доступа {«Кафедра радиотехники»   («Преподаватель»   «Студент»)}. Атрибуты зашифрованных данных соответствуют структуре доступа закрытого ключа пользователя, поэтому пользователь сможет расшифровать данные.

Алгоритм шифрования отличается от первоначальной версии ABE на этапах генерации закрытых ключей и, соответственно, расшифрования: закрытый ключ пользователя генерируется соответственно необходимой структуре доступа. При разделении секрета для вершин от корня до каждой конечной вершины x выбирается полином   такой, что  , где   — узел-родитель по отношению к  , а   — номер вершины   среди вершин, принадлежащих тому же родителю. Таким образом,   соответствует универсальному ключу  , который распределяется по листьям дерева, соответствующим компонентам закрытого ключа.

Ciphertext-policy Attribute-based Encryption (ABE-шифрование с правилом доступа на основе шифротекста)

править

В 2007 году Bethencourt и др. предложили в своей работе[5] схему ABE-шифрования с правилом доступа на основе шифротекста. Контроль доступа производится схожим с CK-ABE образом, однако правило доступа к данным содержится не в закрытом ключе пользователя, а в самих шифрованных данных (шифротексте); закрытый ключ пользователя в то же время соответствует набору атрибутов. Если атрибуты, которые содержатся в закрытом ключе пользователя, соответствуют структуре доступа шифротекста, пользователь может расшифровать данные. Если, например, структура доступа, содержащаяся в данных: {«Кафедра радиотехники»   («Преподаватель»   «Студент»)}, а набор атрибутов в закрытом ключе пользователя: {«Кафедра радиотехники»   «Преподаватель»}, пользователь сможет получить доступ к данным.

Схема ABE c немонотонными структурами доступа

править

Изначально в схемах шифрования на основе атрибутов на структуры доступа накладывалось ограничения, а именно подразумевалась монотонность этих структур. Дерево, соответствующее структуре, могло содержать логические элементы «И», «ИЛИ», но не логический элемент «НЕ», что накладывало некоторые ограничения на возможные правила доступа.

Например, если преподаватель кафедры радиотехники хочет разделить некоторые данные со студентами, но не выпускниками, структура доступа должна выглядеть как {«Кафедра радиотехники»  «Студент»  «НЕ_Выпускник»}.

Способ расширения алгоритма на случай немонотонных структур доступа было предложено в 2007 году в работе Ostrovsky и др.[3]. В пространство атрибутов вместе с каждым элементом добавляется его отрицание; таким образом, общее количество возможных атрибутов увеличивается вдвое по сравнению с классической схемой. В остальном принцип работы алгоритма остается прежним.

Такая схема имеет значительные недостатки. Если в структуре доступа предполагается явным образом указать отрицание всех атрибутов, по которым не предполагается открывать доступ к данным, то в результате в шифротексте может содержаться большое количество отрицаний атрибутов, которые не имеют практического значения для расшифрования данных; в результате размер шифротекста сильно увеличивается. Кроме того, после шифрования данных в системе могут появиться новые атрибуты, и шифрование придётся производить заново.

См. также

править

Примечания

править
  1. Amit Sahai and Brent Waters, Fuzzy Identity-Based Encryption Cryptology ePrint Archive, Report 2004/086 Архивная копия от 15 октября 2013 на Wayback Machine (2004)
  2. 1 2 Vipul Goyal, Omkant Pandey, Amit Sahai and Brent Waters, Attribute-Based Encryption for Fine-Grained Access Control of Encrypted Data ACM CCS (2006) Архивная копия от 5 декабря 2014 на Wayback Machine
  3. 1 2 R. Ostrovsky, A. Sahai, and B. Waters, Attribute-based encryption with non-monotonic access structures, in Proceedings of the 14th ACM conference on Computer and communications security, pp. 195—203, 2007.
  4. Cheng-Chi Lee, Pei-Shan Chung, and Min-Shiang Hwang, A Survey on Attribute-based Encryption Schemes of Access Control in Cloud Environments, International Journal of Network Security, Vol.15, No.4, PP.231-240, July 2013
  5. J. Bethencourt, A. Sahai, and B. Waters, Ciphertext-policy attribute-based encryption, in Proceedings of IEEE Symposium on Security and Privacy, pp. 321V334, 2007