Предположим, у нас много пользователей, и у каждого пользователя есть список фруктов, которые ему нравятся — это будут ключевые слова. Я хочу, чтобы мои пользователи могли кодировать любые данные, которые они хранят (скажем, местоположение их любимых фруктовых деревьев), а также декодировать их: конкретный список ключевых слов.
Это также означает, что любой пользователь с тем же списком ключевых слов должен иметь доступ к ранее закодированным данным. Однако я хотел бы сделать еще один шаг: я хочу, чтобы все пользователи, у которых есть список ключевых слов, содержащий список ключевых слов, используемый для кодирования данных как подмножества, также имели доступ к этим закодированным данным.
В моем примере это будет означать следующее: все люди, которые любят те же фрукты или даже больше, чем кто-то другой, должны иметь возможность расшифровать местонахождение фруктовых деревьев этого человека.
По сути, я хочу, чтобы мои пары ключей каким-то образом инкапсулировали друг друга: открытый ключ, сгенерированный определенным списком ключевых слов, должен соответствовать всем закрытым ключам, сгенерированным любым подмножеством этого списка ключевых слов.
К сожалению, я не эксперт в области криптографии, поэтому мне было интересно: кто-нибудь знает, как я могу добиться генерации пары ключей с описанными выше свойствами?
Спасибо!