MATLAB-RSA加密算法及其MATLAB实现

序言

之前对RSA加密算法做过一些调研,并用MATLAB实现,这里做一个总结。


1. 对称加密和非对称加密



根据密钥的使用方法,可以将加密方法分为对称加密和非对称加密

  • 对称加密:加密和解密使用同一种密钥的方法(使用用户名和密码)。密码称为对称密码。

  • 非对称加密:加密和解密使用不同的密码。密码称为公钥密码。

RSA(三个创始人姓氏开头字母)是目前使用最广泛的非对称加密算法。


2. 公钥和私钥


  • 公钥与私钥:两者的关系如下

    • 两者彼此配对,分别唯一。

    • 公钥与密文一起公开,私钥则由个人保管。

    • 公钥加密的密文只能用与其唯一配对的私钥才能解开,反之亦然。

  • 加解密时的密钥使用

    • 首先记住,每个通信方都有自己的一对唯一配对的公钥和私钥,比如甲有甲自己的公钥和私钥,乙有乙自己的公钥和私钥。除了自己,别人只能获得“公钥 + 加密后的密文”。

    • 我们将通信过程分为两种应用场景:文件加解密和签名加解密,如下图所示

发送加解密(比如邮件通信):

乙使用甲的公钥对邮件进行加密,甲接收到之后使用自己的私钥进行解密。
甲使用乙的公钥对邮件进行加密,乙接收到之后使用自己的私钥进行解密。

签名加解密(比如文件发送):

乙使用自己的私钥进行签名,甲接收到文件后使用乙提供的公钥进行验证。
甲使用自己的私钥进行签名,乙接受到文件后使用甲提供的公钥进行验证。

整个通信过程,除了自己,对方并不知道自己的私钥。


3. RSA加密算法的基本原理


  • 模数N的获取:1024bit大数。选取两个不同的大素数p,q

    N=p×q

  • 欧拉函数值φ(n)的获取

    φ(n)=(p1)×(q1)

  • 选择小质数e作为公钥指数

    • 16bit小数

    • 满足下式即可,一般取e = 65537

    • gcd(e , φ(n)) = 1 即 e与φ(n)互质

      1<e<φ(n)  gcd(e , φ(n))=1
  • 12
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值