encryption - 分层加密

标签 encryption rsa public-key-encryption

有没有办法使用公钥加密来设置分层加密?

假设较高级别的用户可以解密较低级别用户加密的消息。 有可能吗?我想这只能用分层来完成 key 管理,如较高级别的用户可以访问较低级别用户的 key 。

还有其他选择来做这样的事情吗?

最佳答案

在某种程度上,我的建议是分层 key 管理思想的扩展。

核心思想是这样的: 我们使用密码学上强的随机 secret 来对称地加密文件(大型数据集的公钥加密实际上相当慢,因此大多数软件(例如 GPG)使用对称分组密码来加密数据,然后它们对文件进行公钥加密随机 secret 。)随机 secret 本身使用允许访问数据的每个用户的 key 进行加密。

此方案类似于向多个接收者发送 PGP 消息。这很简单,但问题是如果添加、修改或删除用户,您必须更新所有加密数据。一般来说,您可以引入中间键来抵消这种影响。

为了解决这些问题,密码学家发明了HIBE (Hierarchical Identity-Based Encryption) 。如果您想在实际应用程序中使用它,请不要自己构建加密堆栈,而应使用经过验证的同行评审算法。

关于encryption - 分层加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811566/

相关文章:

java - Windows上使用openssl C++的RSA加密/解密错误

java - 如何使用 RSA 加密 AES key 而不遇到 "javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes"

c# - 使用 RSA 公钥解密使用 RSA 私钥加密的字符串

java - 如何将 HSM 加密与 JAVA 集成?

java - JSchException : Algorithm negotiation fail

php - Openssl RSA加密-解密

android - 如何安全地将一些数据从服务器传输到安卓设备

encryption - 如何使用 Yubikey 加密电子邮件?

java - 从 CipherInputStream 缓冲读取

Java:在 HTTP Post 中发送带有其他参数的 byte[]