Моя идея состоит в том, чтобы зашифровать секретную информацию с помощью личного ключа
Вы шифруете с помощью открытого ключа c, а не с закрытым ключом. Закрытый ключ используется для расшифровки.
Если вы создаете публичные c ключи для всех приложений, то вы можете расшифровать их с помощью индивидуальных закрытых ключей. Конечно, вы должны заранее доверять этим приложениям и парам ключей c каждого приложения; Я недостаточно знаком с вашей настройкой, чтобы давать какие-либо рекомендации на этот счет.
Если честно, API KeyChain
кажется больше в аутентификации TLS, чем что-либо еще, и я не думаю, что он подходит для вашего варианта использования. , Например, API choosePrivateKeyAlias
говорит только об аутентификации и сервере, запрашивающем цепочку ключей.
Хранилища ключей в принципе могут быть распределены. Или, конечно, для доступа к ним / их расшифровки вам все равно нужен ключ, распространяемый внутри каждого приложения. Вы можете поделиться информацией только для указанных c подписанных приложений кажется. Возможно, только безопасность совместного использования данных в частном порядке без шифрования уже отвечает вашим потребностям? В конце концов, управление ключами сложно.
Предостережение: я не очень хорошо знаком с моделью безопасности Android; надеюсь, мои общие знания в области криптографии и безопасности помогут вам в правильном направлении.