СПОСОБ РАЗГРАНИЧЕНИЯ ДОСТУПА К ДАННЫМ С ПОМОЩЬЮ ШИФРОВАНИЯ НА ОСНОВЕ АТРИБУТОВ Российский патент 2023 года по МПК H04L9/06 H04L9/08 H04L9/30 

Описание патента на изобретение RU2804040C1

ОБЛАСТЬ ТЕХНИКИ

[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] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений для целей осуществления иных частных вариантов воплощения заявленного технического решения, не выходящего за рамки испрашиваемого объема правовой охраны. Конструктивные элементы, такие как микроконтроллеры, блоки, модули и т.д., описанные выше и используемые в данном техническом решении, могут быть реализованы с помощью электронных компонентов, используемых для создания цифровых интегральных схем.

Похожие патенты RU2804040C1

название год авторы номер документа
СПОСОБ ДЕЦЕНТРАЛИЗОВАННОГО РАСПРЕДЕЛЕНИЯ КЛЮЧЕВОЙ ИНФОРМАЦИИ 2019
  • Решотка Александр Владимирович
  • Чижиков Владимир Иванович
  • Сабин Владислав Олегович
RU2716207C1
Система гомоморфного шифрования данных на основе системы остаточных классов 2021
  • Бабенко Михаил Григорьевич
  • Кучуков Виктор Андреевич
  • Кучеров Николай Николаевич
  • Гладков Андрей Владимирович
RU2780150C1
ВОССТАНОВЛЕНИЕ ЗАШИФРОВАННОЙ ИНФОРМАЦИИ ТРАНЗАКЦИЙ В КОНФИДЕНЦИАЛЬНЫХ ТРАНЗАКЦИЯХ С ЦЕПОЧКАМИ БЛОКОВ 2018
  • Лю, Чжэн
  • Ли, Личунь
  • Инь, Шань
RU2726157C1
КОМПЬЮТЕРНО-РЕАЛИЗУЕМЫЙ СПОСОБ ОБЕСПЕЧЕНИЯ ЗАЩИЩЁННЫХ ГРУППОВЫХ КОММУНИКАЦИЙ СО СВОЙСТВАМИ ОТКАЗУЕМОСТИ, СОВЕРШЕННОЙ ПРЯМОЙ СЕКРЕТНОСТИ И СОГЛАСОВАННОСТИ ТЕКСТА ПЕРЕПИСКИ 2018
  • Шейдаев Вадим Физулиевич
  • Гамаюнов Денис Юрьевич
RU2693192C1
СПОСОБ ХРАНЕНИЯ И ИСПОЛЬЗОВАНИЯ КРИПТОГРАФИЧЕСКОГО КЛЮЧА 2008
  • Леонтьев Сергей Ефимович
  • Попов Владимир Олегович
  • Веденьёв Леонид Тимофеевич
  • Зырин Николай Владимирович
  • Сергеев Дмитрий Вадимович
  • Грушин Василий Павлович
  • Маркелова Александра Викторовна
RU2417410C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ОБЕСПЕЧЕНИЯ ЗАЩИТЫ В СИСТЕМЕ ОБРАБОТКИ ДАННЫХ 2002
  • Хокес Филип
  • Леунг Николай К.Н.
  • Роуз Грегори Г.
RU2333608C2
СИСТЕМЫ И СПОСОБЫ УПРАВЛЕНИЯ ДОСТУПОМ К ЗАЩИЩЕННЫМ ДАННЫМ 2017
  • Вуд Гэвин
  • Чабан Пётр
  • Никольский Святослав
  • Капплер Кеннет
  • Готчак Николас
RU2744970C2
СПОСОБ И СИСТЕМА ЗАЩИЩЕННОГО ХРАНЕНИЯ ИНФОРМАЦИИ В ФАЙЛОВЫХ ХРАНИЛИЩАХ ДАННЫХ 2018
  • Карлов Андрей Владимирович
  • Фролов Михаил Леонидович
RU2707398C1
СПОСОБ ФОРМИРОВАНИЯ ОБЩЕГО СЕКРЕТНОГО КЛЮЧА В ГРУППЕ АБОНЕНТОВ 2019
  • Колыбельников Александр Иванович
RU2719634C1
БЕЗОПАСНЫЙ ОБМЕН ДАННЫМИ, ОБЕСПЕЧИВАЮЩИЙ ПРЯМУЮ СЕКРЕТНОСТЬ 2018
  • Ле Сэн, Эрик
  • Мохассел, Пэйман
RU2771928C2

Иллюстрации к изобретению RU 2 804 040 C1

Реферат патента 2023 года СПОСОБ РАЗГРАНИЧЕНИЯ ДОСТУПА К ДАННЫМ С ПОМОЩЬЮ ШИФРОВАНИЯ НА ОСНОВЕ АТРИБУТОВ

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

Формула изобретения RU 2 804 040 C1

1. Способ шифрования данных на основе атрибутного шифрования, выполняющийся по меньшей мере одним вычислительным устройством и содержащий этапы, на которых:

a) выполняют генерацию, схемой открытого распределения ключей, пар открытых и закрытых ключей для каждого участника и ставят в соответствие каждому закрытому ключу участника соответствующий атрибут;

b) задают структуру доступа, описывающую право участников на получение доступа к данным;

c) генерируют случайный секретный ключ симметричного алгоритма шифрования и пару открытого и закрытого ключа для выработки общего секретного значения;

d) шифруют данные ключом симметричного алгоритма шифрования, полученным на этапе с);

e) определяют по меньшей мере одну порядковую позицию каждого участника, имеющего право на доступ, в заданной структуре доступа;

f) вычисляют доли участников и вспомогательные значения, используемые для вычисления доли участника при владении атрибутом соответствующего участника, с помощью схемы разделения общего секрета между участниками, на основе сгенерированного закрытого ключа для выработки общего секретного значения, открытых ключей участников, которые состоят в заданной структуре доступа, порядковой позиции каждого участника в структуре доступа и секретного ключа симметричного алгоритма шифрования;

публикуют зашифрованные данные и структуру доступа, содержащую вспомогательные значения.

2. Способ по п. 1, характеризующийся тем, что схема открытого распределения ключей представляет собой схему обмена ключами Диффи-Хеллмана.

3. Способ по п. 1, характеризующийся тем, что структура доступа задается, по меньшей мере, с помощью операций конъюнкции и/или дизъюнкции.

4. Способ предоставления доступа к зашифрованным данным, выполняющийся по меньшей мере одним вычислительным устройством и содержащий этапы, на которых:

a) получают запрос от по меньшей мере одного участника на предоставление доступа к данным, зашифрованным в соответствии с этапами способа по любому из пп. 1-3, причем запрос содержит соответствующий по меньшей мере один атрибут по меньшей мере одного участника;

b) определяют, в соответствии со структурой доступа, возможность получения участником, который отправил запрос, симметричного ключа шифрования;

c) восстанавливают симметричный ключ шифрования с помощью по меньшей мере одного атрибута участника, структуры доступа и вспомогательных значений;

d) предоставляют доступ к зашифрованным данным.

5. Способ по п. 4, характеризующийся тем, что для восстановления симметричного ключа участник предоставляет данные о по меньшей мере одной доле, соответствующей по меньшей мере одному атрибуту.

6. Способ по п. 5, характеризующийся тем, что данные о по меньшей мере одной доле симметричного ключа, соответствующей по меньшей мере одному атрибуту, вычислены на основе схемы разделения секрета.

7. Способ по п. 6, характеризующийся тем, что схема разделения секрета осуществляется с помощью алгоритма выработки общего ключа на эллиптических кривых.

Документы, цитированные в отчете о поиске Патент 2023 года RU2804040C1

Станок для придания концам круглых радиаторных трубок шестигранного сечения 1924
  • Гаркин В.А.
SU2019A1
Станок для придания концам круглых радиаторных трубок шестигранного сечения 1924
  • Гаркин В.А.
SU2019A1
Станок для придания концам круглых радиаторных трубок шестигранного сечения 1924
  • Гаркин В.А.
SU2019A1
ПРОТОКОЛ СОГЛАСОВАНИЯ КЛЮЧЕЙ НА ОСНОВЕ ИЗОГЕНИИ ЭЛЛИПТИЧЕСКИХ КРИВЫХ 2018
  • Гарсия Морчон, Оскар
  • Бхаттачаря, Саувик
  • Толхэйзен, Людовикус, Маринус, Герардус, Мария
  • Ритман, Рональд
RU2728519C1

RU 2 804 040 C1

Авторы

Киктенко Евгений Олегович

Федоров Алексей Константинович

Гугля Антон Павлович

Пожар Николай Олегович

Гребнев Сергей Владимирович

Кудинов Михаил Александрович

Даты

2023-09-26Публикация

2022-11-14Подача