RSA非对称算法:利用python中的RSA模块来实现RSA非对称算法,以及算法的封装

RSA算法简介

RSA是一种非对称算法,也称公钥密码算法。所谓公钥密码算法,是指加密和解密使用不同的密码的方式,因此公钥密码通常也称为非对称密码。
RSA于1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。

RSA算法的地位:是现今使用最广泛的公钥密码算法,普遍认为是目前最优秀的公钥方案之一。

RSA算法在我国的现状:

  • 由于RSA算法1024位密钥面临严重的安全威胁,为保障电子认证服务安全应用,2016年12月5日,上海市密码管理局在其官方网站上发布公告,称从2017年1月1日起停止提供RSA算法1024位密钥对服务,并配合电子认证服务机构和应用单位做好应对措施,确保平稳过渡。
  • 在国密改造过程中,被SM2取代。

RSA算法特点:

  • 是一种公钥密码算法,也称非对称密码算法。
  • 密钥包括公钥和私钥,公钥可以对外公开,私钥不公开。公钥和私钥不相同。公钥用于加密,私钥用于解密。
  • 由已知加密密钥(公钥)推导出解密密钥在计算上是不可行的。
  • 加密算法和解密算法也都是公开的。
  • RSA允许你选择公钥的大小。512位的密钥被视为不安全的;768位的密钥不用担心受到除了国家安全管理(NSA)外的其他事物的危害。
  • 应用广泛。RSA在一些主要产品内部都有嵌入,像 Windows、网景 Navigator、 Quicken和 Lotus Notes。
  • 同样的公钥,同样的数据,两次加密的结果是不相同的,但是,并不影响解密。
  • 常见的非对称加密: RSA, DSA, SM2。

RSA加密算法原理:

RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

公钥: (E,N)
私钥 :(D,N)
密钥对: (E,D,N)
加密:
密文=明文EmodN密文=明文EmodN

解密:
明文=密文DmodN明文=密文DmodN

这个过程可以描述为:
(1)任意选取两个不同的大素数p和q计算乘积 ;
(2)任意选取一个大整数e,满足 ,整数e用做加密钥(注意:e的选取是很容易的,例如,所有大于p和q的素数都可用);
(3)确定的解密钥d,满足 ,即 是一个任意的整数;所以,若知道e和,则很容易计算出d ;
(4)公开整数n和e,秘密保存d ;
(5)将明文m(m<n是一个整数)加密成密文c

(6)将密文c解密为明文m
然而只根据n和e(注意:不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

利用python进行RSA加密和解密

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liranke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值