RU2804040C1 - Способ разграничения доступа к данным с помощью шифрования на основе атрибутов - Google Patents

Способ разграничения доступа к данным с помощью шифрования на основе атрибутов Download PDF

Info

Publication number
RU2804040C1
RU2804040C1 RU2022129412A RU2022129412A RU2804040C1 RU 2804040 C1 RU2804040 C1 RU 2804040C1 RU 2022129412 A RU2022129412 A RU 2022129412A RU 2022129412 A RU2022129412 A RU 2022129412A RU 2804040 C1 RU2804040 C1 RU 2804040C1
Authority
RU
Russia
Prior art keywords
participant
access
key
data
attribute
Prior art date
Application number
RU2022129412A
Other languages
English (en)
Inventor
Евгений Олегович Киктенко
Алексей Константинович Федоров
Антон Павлович Гугля
Николай Олегович Пожар
Сергей Владимирович Гребнев
Михаил Александрович Кудинов
Original Assignee
Общество с ограниченной ответственностью "Международный центр квантовой оптики и квантовых технологий" (ООО "МЦКТ")
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Международный центр квантовой оптики и квантовых технологий" (ООО "МЦКТ") filed Critical Общество с ограниченной ответственностью "Международный центр квантовой оптики и квантовых технологий" (ООО "МЦКТ")
Application granted granted Critical
Publication of RU2804040C1 publication Critical patent/RU2804040C1/ru

Links

Abstract

Изобретение относится к способу шифрования данных на основе атрибутного шифрования. Технический результат – повышение безопасности доступа к данным. Выполняют генерацию, схемой открытого распределения ключей, пар открытых и закрытых ключей для каждого участника и ставят в соответствие каждому закрытому ключу участника соответствующий атрибут. Задают структуру доступа, описывающую право участников на получение доступа к данным. Генерируют случайный секретный ключ симметричного алгоритма шифрования и пару открытого и закрытого ключа для выработки общего секретного значения. Шифруют данные ключом симметричного алгоритма шифрования. Определяют по меньшей мере одну порядковую позицию каждого участника, имеющего право на доступ, в заданной структуре доступа. Вычисляют доли участников и вспомогательные значения, для обеспечения последующего доступа к секрету, с помощью схемы разделения общего секрета между участниками, на основе сгенерированного закрытого ключа для выработки общего секретного значения, открытых ключей участников, которые состоят в заданной структуре доступа, порядковой позиции каждого участника в структуре доступа и секретного ключа симметричного алгоритма шифрования. Публикуют шифрованные данные и структуру доступа, содержащую вспомогательные значения. 2 н. и 5 з.п. ф-лы, 3 ил.

Description

ОБЛАСТЬ ТЕХНИКИ
[1] Настоящее техническое решение, в общем, относится к криптографии, а более конкретно, к способу шифрования данных на основе атрибутного шифрования и способу предоставления доступа к зашифрованным данным.
УРОВЕНЬ ТЕХНИКИ
[2] В настоящее время существует задача обработки, хранения и обеспечения доступа к большим объемам данных. Управление доступом является неотъемлемой частью информационной безопасности любого объекта. Так, несвоевременный контроль за наличием прав доступа может привести к утечки критической информации. Одним из важных направлений для таких задач являются центры обработки данных, облачные хранилища и другая инфраструктура, обеспечивающая удаленное хранение данных.
[3] Стандартным решением, известным из уровня техники, является шифрование данных на стороне сервера. Доступ к данным осуществляется путем предоставления пользователем идентифицирующей его информации, например логин/пароль. Затем происходит проверка обладает ли данный пользователь правами на доступ к запрашиваемым данным. Если пользователь обладает правами на доступ к данным, сервер расшифровывает запрашиваемые данные и отправляет пользователю.
[4] Однако, такой подход не обеспечивает защиту данных в случае компрометации хранилища/сервера.
[5] Также, из уровня техники известны решения, основанные на шифровании данных на стороне клиента и хранении их на сервере уже в зашифрованном виде.
[6] Так, из уровня техники известен подход, основанный на алгоритме шифрования на основе атрибутов, раскрытый в заявке на патент США №US 2019/0394020 A1 (LEPOINT TANCREDE [US]), опубл. 26.12.2019. Указанное решение, в частности, раскрывает способ выборочного совместного использования части контейнеров/документов неструктурированных данных на основе атрибутов безопасности или политик, используемых для шифрования/дешифрования данных в контейнерах неструктурированных данных с использованием шифрования на основе атрибутов.
[7] Недостатком указанного решения является использование доверенного центра, обеспечивающего управление доступом к данным и осуществляющего проверку легитимности доступа к данным конкретного участника, что, соответственно не исключает возможность компрометации такого центра, и, как следствие, может привести к утечке конфиденциальной информации.
[8] Общими недостатками всех существующих решений в данной области являются отсутствие эффективного и надежного способа разграничения доступа к данным с помощью шифрования на основе атрибутов, обеспечивающего возможность разграничения доступа к данным без участия доверенных центров и без привязки к конкретным физическим устройствам, выступающим в качестве доверенных устройств. Кроме того, такого рода решение должно обеспечивать возможность предоставления доступа к данным другим участникам в соответствии со структурой доступа, при однократном шифровании данных, что, соответственно сокращает вычислительную сложность всего процесса и исключает необходимость в создании защищенных каналов данных для обмена информацией между участниками доступа.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[9] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники.
[10] Заявленное решение позволяет решить техническую проблему в части создания надежного и защищенного способа разграничения доступа к данным.
[11] Основным техническим результатом является повышение безопасности доступа к данным.
[12] Дополнительным техническим результатом является повышение эффективности контроля доступа к зашифрованным данным.
[13] Заявленные технические результаты достигаются за счет способа шифрования данных на основе атрибутного шифрования, выполняющегося по меньшей мере одним вычислительным устройством, и содержащего этапы, на которых:
a) выполняют генерацию, схемой открытого распределения ключей, пар открытых и закрытых ключей для каждого участника и ставят в соответствие каждому закрытому ключу участника соответствующий атрибут;
b) задают структуру доступа, описывающую право участников на получение доступа к данным;
c) генерируют случайный секретный ключ симметричного алгоритма шифрования и пару открытого и закрытого ключа для выработки общего секретного значения;
d) шифруют данные ключом симметричного алгоритма шифрования, полученным на этапе с);
e) определяют по меньшей мере одну порядковую позицию каждого участника, имеющего право на доступ, в заданной структуре доступа;
f) вычисляют доли участников и вспомогательные значения, используемые для вычисления доли участника при владении атрибутом соответствующего участника, с помощью схемы разделения общего секрета между участниками, на основе сгенерированного закрытого ключа для выработки общего секретного значения, открытых ключей участников, которые состоят в заданной структуре доступа, порядковой позиции каждого участника в структуре доступа и секретного ключа симметричного алгоритма шифрования;
g) публикуют шифрованные данные и структуру доступа, содержащую вспомогательные значения.
[14] В другом частном варианте реализации схема открытого распределения ключей представляет собой схему обмена ключами Диффи-Хеллмана.abe
[15] В еще одном частном варианте реализации структура доступа задается по меньшей мере с помощью операций конъюнкции и/или дизъюнкции.
[16] Также, указанные технические результаты достигаются за счет реализации способа предоставления доступа к зашифрованным данным, выполняющийся по меньшей мере одним вычислительным устройством, и содержащий этапы, на которых:
a) получают запрос от по меньшей мере одного участника на предоставление доступа к данным, зашифрованным в соответствии с этапами способа по любому из п.п. 1-3, причем запрос содержит соответствующий по меньшей мере один атрибут по меньшей мере одного участника;
b) определяют, в соответствии со структурой доступа, возможность получения по меньшей мере одним участником, который отправил запрос, симметричного ключа шифрования;
c) восстанавливают симметричный ключ шифрования с помощью по меньшей мере одного атрибута участника, структуры доступа и вспомогательных значений;
d) предоставляют доступ к зашифрованным данным.
[17] В другом частном варианте реализации для восстановления симметричного ключа, участник предоставляет данные о по меньшей мере одной доле, соответствующей по меньшей мере одному атрибуту.
[18] В еще одном частном варианте реализации данные о по меньшей мере одной доле симметричного ключа, соответствующей атрибуту, вычислены на основе схемы разделения секрета.
[19] В другом частном варианте реализации схема разделения секрета осуществляется с помощью алгоритма выработки общего ключа на эллиптических кривых.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[20] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:
[21] Фиг. 1 иллюстрирует блок схему способа шифрования данных на основе атрибутного шифрования.
[22] Фиг. 2 иллюстрирует блок схему способа предоставления доступа к зашифрованным данным.
[23] Фиг. 3 иллюстрирует общий вид вычислительного устройства.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[24] В нижеследующем описании с целью пояснения изложены многочисленные конкретные детали, чтобы обеспечить полное понимание различных вариантов осуществления заявленного технического решения. Однако специалисту в данной области техники будет очевидно, что различные варианты осуществления настоящего технического решения могут быть реализованы на практике без некоторых из этих конкретных деталей. Последующее описание предоставляет только примерные варианты осуществления и не предназначено для ограничения объема или применимости раскрытия. Также, следует принять во внимание, что элементы заявленного решения могут быть реализованы на практике множеством способов помимо конкретных деталей, изложенных в данном документе.
[25] Шифрование на основе атрибутов (Attribute-based Encryption) - разновидность алгоритмов шифрования с открытым ключом, в которых закрытый ключ, применяемый пользователем для расшифрования данных, зависит от некоторых атрибутов пользователя.
[26] Симметричное шифрование способ шифрования, в котором для шифрования и дешифрования применяется один и тот же криптографический ключ.
[27] Асимметричное шифрование - это метод шифрования данных, предполагающий использование двух ключей - открытого и закрытого. Открытый (публичный) ключ применяется для шифрования информации и может передаваться по незащищенным каналам. Закрытый (приватный) ключ применяется для расшифровки данных, зашифрованных открытым ключом. Данный вид шифрования может быть так же устойчив к атакам с использованием квантового компьютера при использованиии алгоритмов постквантовой криптографии.
[28] Разделение секрета (secret sharing) - термин в криптографии, под которым понимают любой из способов распределения секрета среди группы участников, каждому из которых достается своя некая доля. Секрет может воссоздать только коалиция участников из первоначальной группы, причем входить в коалицию должно не менее некоторого изначально известного их числа.
[29] Заявленное техническое решение направлено на способ шифрования данных, обеспечивающий возможность разграничения доступа к зашифрованным данным участникам в соответствии с заданной структурой доступа и непосредственно к способу предоставления доступа к данным. Заявленное техническое решение предлагает новый, надежный и эффективный подход в решении задач хранения и предоставления доступа к данным за счет обеспечения контроля доступа на основе атрибутов доступа участников и использования криптографических алгоритмов, исключающих необходимость в создании дополнительных безопасных каналов связи между участниками, наличии доверенных устройств участников, сертифицирующих доверенных центров и других объектов, потенциально подверженных компрометации. Так, применение заявленного решения, в случае компрометации хранилища данных, способно обеспечить недоступность информации для злоумышленника за счет шифрования данных на стороне участника и хранении данных в хранилище уже в зашифрованном виде. Кроме того, эффективность решения основана на разграничении доступа к данным в соответствии со структурой доступа, которая может быть задана любым записываемым монотонным выражением, например, булевыми операциями.
[30] На Фиг. 1 представлена блок схема способа шифрования данных на основе атрибутного шифрования (100), который раскрыт поэтапно более подробно ниже. Указанный способ (100) заключается в выполнении этапов, направленных на обработку различных данных, полученных в результате взаимодействия участников компьютерной сети, например, посредством каналов сети Интернет. Обработка, как правило, выполняется с помощью вычислительного устройства (300), элементы которого более подробно раскрыты на Фиг. 3. Указанное устройство (300) может представлять собой, например, по меньшей мере компьютер, сервер и т.д.
[31] Под термином «вычислительное устройство» в данном решении следует понимать электронное устройство, способное выполнять заданную, четко определенную, изменяемую последовательность операций, оснащенное по меньшей мере процессором, оперативной памятью, внутренними шинами передачи данных и интерфейсами ввода-вывода данных с возможностью подключения внешних устройств.
[32] На этапе (110) выполняют генерацию, схемой открытого распределения ключей, пар открытых и закрытых ключей для каждого участника и ставят в соответствие каждому закрытому ключу участника соответствующий атрибут.
[33] На указанном этапе (110), каждый участник доступа осуществляет генерацию пары открытый и закрытый ключ. Генерация пары ключей может осуществляться с помощью вычислительного устройства участников. Пара открытый и закрытый ключ может быть создана, например, с помощью алгоритма RSA, ЕСС и т.д. В еще одном частном варианте осуществления схема открытого распределения ключей может представлять собой схему обмена ключами Диффи-Хеллмана. Закрытый ключ каждого участника может храниться в доверенной памяти вычислительного устройства. Открытый ключ публикуется в свободном доступе и может быть передан, например, по сети Интернет. Сеть передачи данных может представлять, например, телекоммуникационную сеть и может содержать вычислительные устройства. В частных вариантах реализации сеть может представлять локальную сеть (LAN), глобальную сеть (WAN), Интернет, одноранговую сеть, или их комбинацию. Сеть может представлять проводную сеть, беспроводную сеть и их комбинацию, предназначенную для распределенного взаимодействия вычислительных устройств такой сети. В одном частном варианте осуществления пары открытых и закрытых ключей могут быть сгенерированы заранее и просто распределены, например, по защищенному каналу связи и/или переданы физически всем участникам, которые должны иметь доступ к зашифрованным данным. Для специалиста в данной области техники очевидно, что может применяться любой из вышеуказанных способов получения или генерации пар открытый и закрытый ключ.
[34] Под атрибутом в данном решении может пониматься характеристика и/или набор характеристик, на основе которых участник может получить доступ к зашифрованным данным, например, атрибут может представлять конкретную персону, отдел, должность, местоположение и т.д. Атрибут предназначен для задания политики доступа (структуры доступа) к зашифрованному сообщению. Так, закрытый ключ, связанный с атрибутом, может храниться в памяти вычислительного устройства и быть доступен всем ролям, связанным с атрибутом. Если атрибутом является отдел в организации, то доступ к сгенерированному закрытому ключу, связанному с отделом (атрибутом), будет доступен всем сотрудникам отдела. Атрибутное шифрование обеспечивает гибкий и универсальный контроль доступа за счет возможности нечеткого задания самих атрибутов, например, когда необходимо предоставить доступ к информации большому количеству пользователей. Атрибутные схемы шифрования позволяют создать один шифротекст и управлять доступом к нему в зависимости от политики доступа. В качестве криптографических алгоритмов могут быть использованы методы, которые устойчивы от атак с квантовым компьютером.
[35] Таким образом, на указанном этапе (ПО) выполняют генерацию пар открытых и закрытых ключей участников, которым необходимо предоставить доступ к зашифрованным данным, и ставят в соответствии каждому закрытому ключу соответствующий атрибут.
[36] На этапе (120) задают структуру доступа, описывающую право участников на получение доступа к данным.
[37] На указанном этапе (120) участник, желающий зашифровать данные, определяет кто должен иметь доступ к указанным данным. Структура доступа представляет собой право участников на получение доступа к зашифрованным данным. Так, например, участником, желающим зашифровать данные, может являться совет директоров компании, а в качестве самих данных могут выступать, например, документы компании. При этом, по отдельности, каждый из директоров не должен получить доступ к указанным документам.
[38] Структура доступа может быть сформирована в виде файла данных на вычислительном устройстве участника, желающего зашифровать данные и/или являться открытой частью шифротекста, например, частью зашифрованных данных. В одном частном варианте осуществления структура доступа может быть сформирована автоматически, например, на основе перечня участников конференции для обеспечения возможности получения данных. Структура доступа может быть задана любым записываемым монотонным выражением. В одном частном варианте осуществления структура доступа может быть задана булевой функцией, где переменными выступают атрибуты. В качестве операций могут использоваться по меньшей мере операции конъюнкции, дизъюнкции, пороговой функции. Принципы формирования структуры доступа известны из уровня техники (см., например: https://viterbi-web.usc.edu/~shanghua/teaching/Fall2014-476/BenalohLeichter.pdf)
[39] Рассмотрим пример структуры доступа, задающей политику доступа к зашифрованным конфиденциальным данным. Так, например, доступ к таким данным должен иметь право получить либо директор (В), либо отдел контроля качества (С) совместно с отделом безопасности (D). В таком случае структура доступа будет иметь следующий вид: (В) V (С Λ D), где V - логическая операция дизъюнкции, а Λ - логическая операция конъюнкции.
[40] Таким образом, на этапе (120) происходит формирование структуры доступа в соответствии с политикой доступа.
[41] Далее способ (100) переходит к этапу (130).
[42] На этапе (130) выполняют генерацию случайного секретного ключа симметричного алгоритма шифрования и пару открытого и закрытого ключа для выработки общего секретного значения.
[43] На этапе (130) участник, желающий зашифровать сообщение, выполняет, например, на вычислительном устройстве, виртуальном клиенте и т.д., генерацию случайного секретного ключа симметричного алгоритма шифрования и сохраняет указанный ключ в памяти устройства. Симметричный алгоритм шифрования может представлять, например, алгоритм DES, AES, ГОСТ 28147-89, Blowfish и т.д. Для специалиста в данной области техники очевидно, что под участником может пониматься любое устройство и/или система, имеющая доступ к сети связи. Термин участник в данном описании представлен для удобства восприятия особенностей указанного технического решения.
[44] После генерации секретного ключа симметричного алгоритма шифрования участник генерирует пару открытый и закрытый ключ для выработки общего секретного значения. Указанная пара также может быть сгенерирована с помощью алгоритма RSA, ЕСС и т.д. Закрытый ключ для выработки общего секретного значения может быть сохранен в память устройства, такого как устройство (300). Открытый ключ является общедоступным.
[45] Таким образом, на этапе (130) выполняют генерацию случайного секретного ключа симметричного шифрования и пары открытый и закрытый ключ для выработки общего значения.
[46] На этапе (140) выполняют шифрование данных ключом симметричного алгоритма шифрования.
[47] На указанном этапе (140), участник, желающий зашифровать данные, выполняет шифрование сообщения в соответствии с конкретным алгоритмом, для которого был сгенерирован секретный ключ симметричного алгоритма шифрования. [48] Так, в одном частном варианте осуществления шифрование данных может происходить в соответствии с алгоритмом DES. Указанный алгоритм широко известен из уровня техники (см., например, статью, найдено в Интернет по адресу: https://ru.wikipedia.org/wiki/DES).
[49] Таким образом, на указанном этапе (140) выполняется шифрование данных.
[50] Далее способ (100) переходит к этапу (150).
[51] На этапе (150) определяют по меньшей мере одну порядковую позицию каждого участника, имеющего право на доступ, в заданной структуре доступа.
[52] На указанном этапе (150) участник, осуществивший шифрование данных, на основе сформированной структуры доступа, определяет порядковые позиции каждого атрибута в указанной структуре доступа.
[53] Рассмотрим вышеописанный пример: (В) V (С Λ D)
[54] Порядковая позиция участника В один, участника С два, участника D три. Очевидно, что порядковая позиция определяется в соответствии с положением атрибута в структуре доступа, в частности порядковой позицией в булевой функции. Стоит отметить, что в независимости от количества повторяющихся атрибутов в структуре доступа, одинаковым атрибутам будут присваиваться разные порядковые номера в соответствии с их положением в структуре доступа.
[55] Далее способ (100) переходит к этапу (160).
[56] На этапе (160) вычисляют доли вычисляют доли участников и вспомогательные значения, используемые для вычисления доли участника при владении атрибутом соответствующего участника, с помощью схемы разделения общего секрета между участниками, на основе сгенерированного закрытого ключа для выработки общего секретного значения, открытых ключей участников, которые состоят в заданной структуре доступа, порядковой позиции каждого участника в структуре доступа и секретного ключа симметричного алгоритма шифрования.
[57] На указанном этапе (160) ключ симметричного алгоритма шифрования разделяют на доли между участниками в соответствии со структурой доступа. Так, разделение ключа выполняется с помощью схемы разделения общего секрета. Указанная схема обеспечивает возможность распределения симметричного ключа шифрования, которым были зашифрованы данные, между всеми участниками доступа, каждому из которых достается своя некая доля. Соответственно секретный ключ может восстановить только коалиция участников из первоначальной группы, причем входить в коалицию должно не менее некоторого изначально известного их числа. Схема разделения общего секрета может представлять, например, алгоритм разделения секрета по монотонным булевым функциям (см. например: https://viterbi-web.usc.edu/~shanghua/teaching/Fall2014-476/BenalohLeichter.pdf).
[58] Для реализации указанной схемы, открытые ключи всех участников, сгенерированные на этапе (110), связывают с закрытым ключом для выработки общего значения. Указанный процесс может быть реализован, например, в соответствии с протоколом Диффи-Хелмана, который широко известен из уровня техники.
[59] Вычислить общее значение можно из закрытого ключа для выработки общего значения и публичного ключа участника, а также из секретного ключа участника и отрытого ключа общего значения. Выработанный общий ключ соответствует атрибуту участника для этого шифротекста (шифрованных данных).
[60] Выработанный общий ключ, соответствующий атрибуту участника, комбинируется с позицией атрибута для получения доли участника. Ключи и позиции могут быть связаны с помощью параметрической функции, например, функции , преобразующей значения (х) размерностью n-бит в значения (у) размерностью n-бит. В качестве параметрической функции может быть выбрана, например, криптографическая хэш-функция, такая как SHA-3 и т.п. Указанные значения будут являться долями участника.
[61] Затем с помощью структуры доступа, секретного значения симметричного алгоритма шифрования и долей участников генерируются вспомогательные значения. Вспомогательные значения представляют собой значения, полученные в результате применения логического исключающего ИЛИ между долями участников и симметричным ключом шифрования. Указанные значения используются для вычисления доли участника при владении атрибутом соответствующего участника. Вспомогательные значения зависят от структуры доступа.
[62] Для совершения указанного действия сначала каждый открытый ключ, связанный с атрибутом, который входит в структуру доступа, связывают с секретным ключом для выработки общего значения.
[63] Далее, на основе позиции каждого атрибута в структуре доступа и связанных значений открытого ключа участника и закрытого ключа для выработки общего значения указанные значения преобразуются параметрической функцией (fk).
[64] Рассмотрим пример, приведенный выше.
[65] Директор (В) имеет свой открытый ключ (gB), отдел контроля качества (С) свой открытый ключ (gC), отдел безопасности (D) - открытый ключ (gD). Сструктура доступа имеет следующий вид: (В) V (С Λ D), где (В) имеет первую позицию, (С) вторую, (D) третью. Пара открытый и закрытый ключ для выработки общего значения имеет вид (е, ge).
[66] На основе открытых ключей участников и закрытого ключа для выработки общего значения вычисляются значения общий ключ. Далее, на основе позиции каждого участника и вычисленных значений вычисляют параметрическую функцию характеризующую доли участников для вычисления секрета.
Для участника (В) функция будет иметь следующий вид: Для участника (С) функция будет иметь следующий вид: Для участника (D) функция будет иметь следующий вид:
[67] На основе вычисленных долей участников вычисляются вспомогательные значения. Как указывалось выше, вспомогательные значения связывают симметричный ключ шифрования с долями участников, при этом связывание происходит в соответствии со структурой доступа. Так, возвращаясь к вышеуказанному примеру, к вычисленной доле участника добавляют секретный ключ шифрования, для участника В вспомогательное значение будет иметь следующий вид: , для участников С и D указанное значение будет иметь следующий вид Т.е. указанные значения позволяют определить знание каких атрибутов необходимо для вычисления симметричного ключа, при этом, атрибуты известны только заранее определенному кругу лиц, т.к. связаны с секретными ключами ассиметричного алгоритма шифрования, полученными указанным кругом лиц на этапе (110).
[68] Таким образом, указанные доли участников для вычисления секрета представляют право на получение доли секретного симметричного ключа, в соответствии с которыми распределяется секретный ключ симметричного алгоритма шифрования. Указанные доли участников для вычисления секрета связаны с закрытыми ключами участников, полученных на этапе (110). Таким образом, зная закрытый ключ, можно вычислить указанную долю участника для вычисления общего секрета.
[69] В одном частном варианте осуществления, для обеспечения информационной безопасности, для атрибутов, выраженных группой участников (отдел, компания и т.д.), получение доступа к зашифрованным данным могут распределяться указанные доли ключей (b1, с2 и т.д.). Процесс генерации пары открытый и закрытый ключ и хранение закрытого ключа для указанных групп в таком случае будет происходить на любом надежном вычислительном устройстве.
[70] На основе указанных долей происходит публикация зашифрованных данных и структуры доступа, содержащей вспомогательные значения (этап (170)).
[71] На этапе (170), для обеспечения возможности доступа к зашифрованным данным, указанные данные и структуру доступа публикуют в общедоступном виде, например, на облачном сервере и т.д. При этом, без знания секретного ключа, связанного с атрибутом, невозможно получить доступ к доле ключа. Публикация означает предоставление доступа к зашифрованному файлу данных. Очевидно, что в данном решении под публикацией может пониматься и передача файла участникам структуры доступа, так и широковещательная рассылка и т.д.
[72] Для наглядности, представим выражение, описывающее структуру доступа с вспомогательными значениями, которые используются для вычисления доли участника при владении атрибутом соответствующего участника.
[73] Указанная структура доступа примет следующий вид: где s - секретный ключ симметричного шифрования. вспомогательное значение, соответствующее атрибуту В.
- вспомогательное значение, соответствующее атрибутам C и D.
[74] Указанная структура доступа со вспомогательными значениями описывает кому и с помощью каких атрибутов можно получить доступ к зашифрованным данным.
[75] Таким образом, каждый из участников, зная свой секретный ключ и открытый ключ для выработки общего значения может вычислить значение своей доли, распределенной по схеме разделения секрета. При этом, как видно из примера, шифрование данных и распределение доступа происходит один раз, что существенно сокращает вычислительные ресурсы, исключает необходимость в установлении и генерации секретных ключей между шифрующей стороной и каждым из участников доступа. Кроме того, поскольку информация об открытых ключах хранится в открытом доступе, также исключается необходимость в наличие доверенного центра, распределяющего ключи, что также повышает универсальность и гибкость алгоритма. Также, за счет возможности задания структуры доступа через монотонные выражения и атрибуты повышается эффективность доступа к зашифрованной информации.
[76] Теперь рассмотрим способ предоставления доступа к зашифрованным данным. На Фиг. 2 представлена блок схема способа (200) предоставления доступа к зашифрованным, в соответствии с этапами способа (100), который раскрыт поэтапно более подробно ниже. Указанный способ (200) заключается в выполнении этапов, направленных на обработку различных данных, полученных в результате взаимодействия участников компьютерной сети, например, посредством каналов сети Интернет. Обработка, как правило, выполняется с помощью вычислительного устройства (300), элементы которого более подробно раскрыты на Фиг. 3. Указанное устройство (300) может представлять собой, например, по меньшей мере компьютер, сервер и т.д.
[77] На этапе (210) получают запрос от по меньшей мере одного участника на предоставление доступа к данным, зашифрованным в соответствии с этапами способа (100), причем запрос содержит соответствующий по меньшей мере один атрибут по меньшей мере одного участника.
[78] На указанном этапе (210) выполняется попытка доступа к зашифрованным данным, например, посредством сети Интернет. Так, например, в качестве хранилища, в котором расположен зашифрованный файл данных, может выступать вычислительное устройство (300), например, представляющее собой облачное хранилище. Запрос на предоставление доступа может представлять собой попытку открытия указанного файла. Поскольку файл данных зашифрован способом (100), то доступ к указанному файлу может быть осуществлен только если участник, пытающийся открыть файл включен в структуру доступа. Т.е. расшифровка возможна только в том случае, если атрибуты удовлетворяют политике безопасности. Как указывалось выше, структура доступа задается атрибутами, которыми могут выступать как конкретно участники доступа, так и группы лиц, например, отдельные компании и т.д. Для получения доступа к файлу участнику необходимо обладать достаточным количеством атрибутов, чтобы вычислить необходимый набор долей ключа, с помощью которых можно восстановить симметричный ключ шифрования.
[79] Для этого, на этапе (220), вычислительное устройство (300) осуществляет проверку наличия по меньшей мере одного атрибута у участника и возможность предоставления указанному участнику доступа в соответствии с заданной структурой доступа.
[80] Так, устройство (300) выполнено с возможностью хранения структуры доступа и информации о распределении долей участников в соответствии со схемой разделения секрета. Проверка наличия по меньшей мере одного атрибута у участника означает знание секретного ключа ассиметричного алгоритма шифрования, полученного на этапе (110), соответствующего по меньшей мере одному атрибуту. Очевидно, что если в структуре доступа участнику требуется только один атрибут, чтобы восстановить симметричный ключ шифрования, то наличие атрибута будет соответствовать знанию секретного ключа, связанного с указанным атрибутом. При этом, как упоминалось выше, если структура доступа задана таким образом, что только группа атрибутов может совместно получить доступ к зашифрованным данным, то участнику и/или участникам требуется знание всех закрытых ключей, соответствующих атрибутам.
[81] Для проверки возможности получения участником симметричного ключа шифрования, устройство (300) получает необходимые данные от участника, например, доли участников для вычисления секрета. В одном частном варианте осуществления, для восстановления симметричного ключа, участник может предоставить свой закрытый ключ, сгенерированный на этапе (110) и открытый ключ для выработки общего значения. В этом случае необходимо выполнить вычисление функции для получения доли участника для вычисления секрета. По указанной доле, структуре доступа и вспомогательным значениям устройство (300) проводит вычисления для восстановления ключа. Процесс восстановления ключа является частью схемы разделения секрета, так, например, при разделении секрета по монотонным булевым функциям, восстановление ключа будет являться обратным процессом от указанной схемы. В одном частном варианте осуществления, восстановление ключа может происходить с помощью алгоритма выработки общего ключа на эллиптических кривых (https://csrc.nist.gov/publications/detail/sp/800-56a/rev-3/final). Если указанной доли достаточно, то ключ будет восстановлен. В одном частном варианте осуществления доля участника может передаваться как метаданные при обращении участника к хранилищу с зашифрованным файлом данных. В еще одном частном варианте осуществления, участник может иметь несколько атрибутов. В этом случае данные обо всех долях будут отправлены в устройство (300).
[82] Восстановление симметричного ключа шифрования происходит на этапе (230). Для наглядности продолжим рассмотрение примера, описанного выше.
[83] В результате шифрования данных в соответствии с этапами способа (100) получается следующий шифротекст:
[84] Предположим, что доступ пытается осуществить участник В. Для восстановления симметричного ключа шифрования участник В предоставляет свою долю b1, при этом участник В включен в структуру доступа, заданную, например, булевой функцией. Как указывалось выше, в одном частном варианте осуществления, участник может предоставить несколько атрибутов, чтобы восстановить ключ. Например, если участник С хочет получить доступ, то он должен предоставить две доли (с2 и d3). Как указывалось выше, участник В также может предоставить свой закрытый ключ ассиметричного алгоритма шифрования и вычислить свою долю.
[85] После предоставления доли способ (200) осуществляет восстановление симметричного ключа. Для этого, в шифротекст (шифрованные данные) добавляется указанная доля участника
[86] Так как в соответствии со структурой доступа атрибута участника В достаточно для восстановления ключа и участник В предоставил долю, основанную на его закрытом ключе, полученным ассиметричным алгоритмом шифрования, то указанные доли «обнуляются», тем самым восстанавливая ключ s: Под «обнулением» в данном решении понимается применение операции логическое исключающее ИЛИ (сложение по модулю 2) в процессе восстановления ключа вычислительным устройством.
[87] Соответственно, для получения доступа участнику С необходимо предоставить две доли для восстановления симметричного ключа шифрования.
[88] На этапе (240) предоставляют доступ к зашифрованным данным.
[89] На основе восстановленного симметричного ключа шифрования выполняется расшифровка данных, что обеспечивает получение доступа к данным участником. Расшифровка данных является обратным процессом шифрования данных и соответствует выбранному алгоритму симметричного шифрования.
[90] Таким образом, в приведенных материалах заявки раскрыты способы шифрования данных на основе атрибутного шифрования и предоставления доступа к зашифрованным данным, обеспечивающие безопасный доступ к данным и эффективный контроль доступа к данным.
[91] На Фиг. 3 представлен пример общего вида вычислительного устройства (300, выполняющее заявленные способы (100) и (200), указанное устройство также может являться, например, сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения.
[92] В общем случае устройство (300) содержит такие компоненты, как: один или более процессоров (301), по меньшей мере одну память (302), средство хранения данных (303), интерфейсы ввода/вывода (304), средство В/В (305), средство сетевого взаимодействия (306), которые объединяются посредством универсальной шины.
[93] Процессор (301) выполняет основные вычислительные операции, необходимые для обработки данных при выполнении способа (100) и/или способа (200). Процессор (301) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (302). Термин «инструкции» и/или «команды», используемый в этой заявке, может относиться, в общем, к командам в программе, которые написаны для осуществления конкретной функции, такой как прием ввода, извлечение и запись данных на съемную память, обмен данными с вычислительным устройствоми т.д. Инструкции могут быть осуществлены множеством способов, включающих в себя, например, объектно-ориентированные методы. Например, инструкции могут быть реализованы, посредством языка программирования С++, Java, различных библиотек (например, "MFC"; Microsoft Foundation Classes) и т.д. Инструкции, осуществляющие процессы, описанные в этом решении, могут передаваться как по проводным, например, по шине данных, так и по беспроводным линиям передачи.
[94] Память (302), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.
[95] Средство хранения данных (303) может выполняться в виде HDD, SSD дисков, рейд массива, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средства (303) позволяют выполнять долгосрочное хранение различного вида информации, например закрытые ключи ассиметричного алгоритма участников, симметричный ключ шифрования и т.п.
[96] Для организации работы компонентов устройства (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, Fire Wire, LPT, COM, SAT A, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.
[97] Выбор интерфейсов (304) зависит от конкретного исполнения устройства (700), которое может быть реализовано на базе широко класса устройств, например, персональный компьютер, мейнфрейм, ноутбук, серверный кластер, тонкий клиент, смартфон, сервер и т.п.
[98] В качестве средств В/В данных (305) может использоваться: клавиатура, джойстик, дисплей (сенсорный дисплей), монитор, сенсорный дисплей, тачпад, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[99] Средства сетевого взаимодействия (306) выбираются из устройств, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п. С помощью средств (306) обеспечивается организация обмена данными между, например, устройствами по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.
[100] Конкретный выбор элементов устройства (300) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.
[101] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.
[102] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений для целей осуществления иных частных вариантов воплощения заявленного технического решения, не выходящего за рамки испрашиваемого объема правовой охраны. Конструктивные элементы, такие как микроконтроллеры, блоки, модули и т.д., описанные выше и используемые в данном техническом решении, могут быть реализованы с помощью электронных компонентов, используемых для создания цифровых интегральных схем.

Claims (18)

1. Способ шифрования данных на основе атрибутного шифрования, выполняющийся по меньшей мере одним вычислительным устройством и содержащий этапы, на которых:
a) выполняют генерацию, схемой открытого распределения ключей, пар открытых и закрытых ключей для каждого участника и ставят в соответствие каждому закрытому ключу участника соответствующий атрибут;
b) задают структуру доступа, описывающую право участников на получение доступа к данным;
c) генерируют случайный секретный ключ симметричного алгоритма шифрования и пару открытого и закрытого ключа для выработки общего секретного значения;
d) шифруют данные ключом симметричного алгоритма шифрования, полученным на этапе с);
e) определяют по меньшей мере одну порядковую позицию каждого участника, имеющего право на доступ, в заданной структуре доступа;
f) вычисляют доли участников и вспомогательные значения, используемые для вычисления доли участника при владении атрибутом соответствующего участника, с помощью схемы разделения общего секрета между участниками, на основе сгенерированного закрытого ключа для выработки общего секретного значения, открытых ключей участников, которые состоят в заданной структуре доступа, порядковой позиции каждого участника в структуре доступа и секретного ключа симметричного алгоритма шифрования;
публикуют зашифрованные данные и структуру доступа, содержащую вспомогательные значения.
2. Способ по п. 1, характеризующийся тем, что схема открытого распределения ключей представляет собой схему обмена ключами Диффи-Хеллмана.
3. Способ по п. 1, характеризующийся тем, что структура доступа задается, по меньшей мере, с помощью операций конъюнкции и/или дизъюнкции.
4. Способ предоставления доступа к зашифрованным данным, выполняющийся по меньшей мере одним вычислительным устройством и содержащий этапы, на которых:
a) получают запрос от по меньшей мере одного участника на предоставление доступа к данным, зашифрованным в соответствии с этапами способа по любому из пп. 1-3, причем запрос содержит соответствующий по меньшей мере один атрибут по меньшей мере одного участника;
b) определяют, в соответствии со структурой доступа, возможность получения участником, который отправил запрос, симметричного ключа шифрования;
c) восстанавливают симметричный ключ шифрования с помощью по меньшей мере одного атрибута участника, структуры доступа и вспомогательных значений;
d) предоставляют доступ к зашифрованным данным.
5. Способ по п. 4, характеризующийся тем, что для восстановления симметричного ключа участник предоставляет данные о по меньшей мере одной доле, соответствующей по меньшей мере одному атрибуту.
6. Способ по п. 5, характеризующийся тем, что данные о по меньшей мере одной доле симметричного ключа, соответствующей по меньшей мере одному атрибуту, вычислены на основе схемы разделения секрета.
7. Способ по п. 6, характеризующийся тем, что схема разделения секрета осуществляется с помощью алгоритма выработки общего ключа на эллиптических кривых.
RU2022129412A 2022-11-14 Способ разграничения доступа к данным с помощью шифрования на основе атрибутов RU2804040C1 (ru)

Publications (1)

Publication Number Publication Date
RU2804040C1 true RU2804040C1 (ru) 2023-09-26

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190258813A1 (en) * 2018-02-20 2019-08-22 International Business Machines Corporation Implementing policy-based container-level encryption
US20190260753A1 (en) * 2018-02-20 2019-08-22 International Business Machines Corporation Implementing a separation of duties for container security
US20190394020A1 (en) * 2018-06-26 2019-12-26 Sri International Selectively sharing data in unstructured data containers using attribute based encryption
RU2728519C1 (ru) * 2017-02-28 2020-07-30 Конинклейке Филипс Н.В. Протокол согласования ключей на основе изогении эллиптических кривых

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2728519C1 (ru) * 2017-02-28 2020-07-30 Конинклейке Филипс Н.В. Протокол согласования ключей на основе изогении эллиптических кривых
US20190258813A1 (en) * 2018-02-20 2019-08-22 International Business Machines Corporation Implementing policy-based container-level encryption
US20190260753A1 (en) * 2018-02-20 2019-08-22 International Business Machines Corporation Implementing a separation of duties for container security
US20190394020A1 (en) * 2018-06-26 2019-12-26 Sri International Selectively sharing data in unstructured data containers using attribute based encryption

Similar Documents

Publication Publication Date Title
US10673626B2 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US11128471B2 (en) Accessibility controls in distributed data systems
Fabian et al. Collaborative and secure sharing of healthcare data in multi-clouds
CN108292402B (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
WO2018024056A1 (zh) 用户口令管理的方法和服务器
US8509449B2 (en) Key protector for a storage volume using multiple keys
US20150318987A1 (en) Encryption Scheme in a Shared Data Store
Nagaraju et al. Trusted framework for online banking in public cloud using multi-factor authentication and privacy protection gateway
US20100095118A1 (en) Cryptographic key management system facilitating secure access of data portions to corresponding groups of users
US20200259637A1 (en) Management and distribution of keys in distributed environments
US20110302398A1 (en) Key protectors based on online keys
Alemami et al. Cloud data security and various cryptographic algorithms
CN112119609A (zh) 用于传达秘密的方法和系统
US8220040B2 (en) Verifying that group membership requirements are met by users
WO2020215685A1 (zh) 基于区块链的信息处理、获取方法、装置、设备及介质
Sumathi et al. A group-key-based sensitive attribute protection in cloud storage using modified random Fibonacci cryptography
Thilakanathan et al. Secure multiparty data sharing in the cloud using hardware-based TPM devices
US11290277B2 (en) Data processing system
Elmogazy et al. Towards healthcare data security in cloud computing
Ogunleye et al. Elliptic Curve Cryptography Performance Evaluation for Securing Multi-Factor Systems in a Cloud Computing Environment
CN114514550A (zh) 将请求分区成区块链的交易
RU2804040C1 (ru) Способ разграничения доступа к данным с помощью шифрования на основе атрибутов
US20240048361A1 (en) Key Management for Cryptography-as-a-service and Data Governance Systems
Altarawneh A strong combination of cryptographic techniques to secure cloud-hosted data
Senthilkumar et al. HB-PPAC: hierarchy-based privacy preserving access control technique in public cloud