c++ openssl rsa 用key直接加密_TLS/SSL 协议非对称加密(RSA)原理

2e53425cf24563a5363705a7051a2a5c.png 关注爱因诗贤 每天进步一点点 导读

前面文章学习过 对称加密的原理,在通信双方发送完加密的密文之后,需要发送密钥给对方才能解密,这就要求发送密钥的信息通道安全可靠,才能保证数据的安全性,而非对称加密算法 是一种密钥的保密方法,需要有公钥(公开密钥)私钥(私有密钥),这篇文章主要介绍公钥私钥生成原理,然后围绕公钥私钥研究和分析一下加密是如何起到密钥保密作用的。

1.非对称加密的工作原理

  • (1)Bob要向Alice发送信息,Alice需要先要产生一对用于加密和解密的公钥私钥

  • (2)Alice私钥保密,Alice的公钥告诉Bob

  • (3)Bob把要发送的信息用Alice的公钥加密生成密文发送给Alice

  • (4)Alice收到这个消息后,用自己的私钥解密Bob的消息。其他所有收到这个报文的人都无法解密,只有Alice私钥才能解密此信息。

    Tips:Alice 向 Bob 发送信息时也是同理,Bob 也需要生成一对公钥私钥。

2.非对称加密和解密过程示意图

e1e6391afed74796730d63af891515b8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RSA加密是一种对称加密算法,它需要使用公钥和私钥来加密和解密数据,其中公钥用于加密数据,私钥用于解密数据。在STM32上进行RSA加密的方法有很多,以下是一个简单的实现方法: 1. 生成RSA密钥对:可以使用openssl等工具生成RSA密钥对,然后将公钥和私钥导出到STM32开发板中。 2. 加载RSA公钥:将RSA公钥加载到STM32的内存中,通常可以将公钥存储在一个数组中。 3. 加载待加密数据:将待加密数据加载到STM32的内存中,通常可以将数据存储在一个数组中。 4. 加密数据:使用公钥对待加密数据进行加密。在STM32上实现RSA加密可以使用各种加密算法库,例如mbedTLS、CryptoLib等,但如果不想使用这些库,可以自己实现RSA算法。RSA加密的算法流程如下: 1. 将待加密数据转换为整数类型。 2. 使用公钥中的模数和指数对待加密数据进行加密。 3. 将加密后的结果转换为字节数组类型。 5. 存储加密结果:将加密后的结果存储在STM32的内存中,通常可以将加密结果存储在一个数组中。 6. 解密数据:使用私钥对加密后的数据进行解密。解密的算法流程如下: 1. 将加密后的数据转换为整数类型。 2. 使用私钥中的模数和指数对加密后的数据进行解密。 3. 将解密后的结果转换为字节数组类型。 7. 存储解密结果:将解密后的结果存储在STM32的内存中,通常可以将解密结果存储在一个数组中。 需要注意的是,在实现RSA加密算法时,需要使用高精度算法来进行大数运算,否则可能会导致加密结果不正确。同时,在实现RSA加密算法时,需要保证数据的长度不超过RSA密钥的长度,否则需要使用数据分块的方式来进行加密和解密。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值