Шифрование с использованием множества пар ключей


Есть n пользователей, у каждого есть пара ключей открытый/закрытый. Необходимо зашировать сообщение так, чтобы каждый из n пользователей его мог разшифровать. При этом доступны открытые ключи всех пользователей и закрытый кулюч одного из пользователей. Есть ли какие-нибудь алгоритмы позволяющие это сделать?

Комментарии
— SATtva (21/05/2018 08:59)   
Зашифровываете сообщение симметричным ключом; этот ключ индивидуально шифруете каждым открытым ключом пользователей; каждому пользователю передаёте пакет, состоящий из зашифрованного сообщения и зашифрованного симметричного ключа.

Если вам нужна схема шифрования, при которой размер зашифрованных данных не растёт с увеличением числа получателей (т.е. на вход функции шифрования подаются все открытые ключи), смотрите в сторону протоколов широковещательного шифрования (broadcast encryption).
— forkostya (30/05/2019 12:43)   
GnuPG умеет это, поиск в гугле выдал вот что:
http://qaru.site/questions/679.....tiple-different-keys[link1]
https://www.gnupg.org/gph/en/manual.html#AEN111

gpg --encrypt --recipient alice@example.com --recipient bob@example.com doc.txt

Ссылки
[link1] http://qaru.site/questions/67964/encryption-with-multiple-different-keys