使用 Webcrypto 使用 RSA 加密多个 public 密钥
encrypt to multiple public keys with RSA using Webcrypto
有什么方法可以使用 javascript cryto Api.[=12= 为多个 public 密钥加密数据(这样多个密钥所有者可以使用他们的私钥解密数据) ]
如果使用 RSA-OAEP 无法做到这一点,您能否提出相同的方法?
谢谢
window.crypto.subtle.encrypt(
{
name: "RSA-OAEP",
},
ArrayOfPublicKeys,
data
)
.then(function(encrypted){
console.log(encrypted);
})
杰克·米兰博士。
PGP、S/MIME 和其他类似消息传递解决方案启用 multi-party 消息的方式是:
1. 生成消息加密密钥 (MEK),例如用于模式 GCM 的 AES 密钥,
2.查找每个收件人的public键,
3. 将 MEK 加密到每个接收者的 public 密钥,
4.将加密后的MEKs与加密后的消息打包,
5.分发给参与者。
这里的挑战是 public 密钥的安全发现,大多数应用程序都依赖于此并让用户进行手动指纹验证或依赖 third-party 例如证书颁发机构来验证将键绑定到主题。
您可以在此处找到一个使用 webcrypto 和单个收件人执行此操作的示例:
https://pkijs.org/examples/CMSEnvelopedExample.html
此演示的源代码在这里:
https://github.com/PeculiarVentures/PKI.js/tree/master/examples/HowToEncryptCMSviaCertificate
有什么方法可以使用 javascript cryto Api.[=12= 为多个 public 密钥加密数据(这样多个密钥所有者可以使用他们的私钥解密数据) ]
如果使用 RSA-OAEP 无法做到这一点,您能否提出相同的方法?
谢谢
window.crypto.subtle.encrypt(
{
name: "RSA-OAEP",
},
ArrayOfPublicKeys,
data
)
.then(function(encrypted){
console.log(encrypted);
})
杰克·米兰博士。
PGP、S/MIME 和其他类似消息传递解决方案启用 multi-party 消息的方式是: 1. 生成消息加密密钥 (MEK),例如用于模式 GCM 的 AES 密钥, 2.查找每个收件人的public键, 3. 将 MEK 加密到每个接收者的 public 密钥, 4.将加密后的MEKs与加密后的消息打包, 5.分发给参与者。
这里的挑战是 public 密钥的安全发现,大多数应用程序都依赖于此并让用户进行手动指纹验证或依赖 third-party 例如证书颁发机构来验证将键绑定到主题。
您可以在此处找到一个使用 webcrypto 和单个收件人执行此操作的示例: https://pkijs.org/examples/CMSEnvelopedExample.html
此演示的源代码在这里: https://github.com/PeculiarVentures/PKI.js/tree/master/examples/HowToEncryptCMSviaCertificate