首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非对称或对称加密

非对称或对称加密
EN

Cryptography用户
提问于 2019-12-11 20:53:07
回答 1查看 201关注 0票数 0

我目前正在研究OpenSSL及其API,我对密码学不太熟悉。所以我看了一下信封的非对称加密上的例子。它说消息是用会话密钥对称加密的,然后会话密钥用实际的非对称密钥加密。然后,我的问题是如何生成会话密钥,以及如何在其他编程语言中搜索这个概念。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2019-12-11 21:26:12

会话密钥可以由Alice使用CSPRNG生成。Alice和Bob已经有了不变的静态密钥对。Alice和Bob将创建短暂的密钥对,这些密钥对是新生成的每个会话。

然后,Alice用她的静态私钥签署她的临时公钥,并将其发送给Bob --这个公钥不需要以任何方式加密,因为它是公钥。Bob收到此消息,并使用Alice的静态公钥验证签名。鲍勃通过同样的协议,这样爱丽丝就可以得到他短暂的公钥。

现在有两种方法可以实现-- KEX (密钥交换)或KEM (密钥封装机制)。

对于KEX,Alice和Bob都使用DH(E)或ECCDH(E)将自己的临时私钥与其他公钥组合在一起。这使得它们都有相同的共享秘密,可以通过HKDF来创建一个格式正确的所需长度的对称密钥。

对于KEM,Alice将创建一个所需长度的对称密钥,用她的静态私钥签名,然后用Bob的临时公钥对其进行加密,并将其发送给Bob,Bob可以解密和验证它们的密钥。必须用RSA来解决这个问题。

对于编程语言,通常有一个用于伪随机数(PRNG)和密码安全伪随机数生成器(CSPRNG)的模块。在Python中,随机模块是PRNG,秘密模块或os.urandom是CSPRNG。对于密码学,有一个PyCryptodome或密码学等。

票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/76362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档