人人都能看懂的RSA非对称加密算法

RSA加密算法简介

RSA加密算法是最常用的非对称加密算法,由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)于1977年一起提出,RSA就是他们三人姓氏开头字母拼在一起组成的。

非对称加密算法的特点就是加密秘钥和解密秘钥不同,秘钥分为公钥和私钥,用私钥加密的明文,只能用公钥解密;用公钥加密的明文,只能用私钥解密。

RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性,目前它已经成为最流行的公开密钥算法。RSA的安全基于大数分解的难度。其公钥和私钥是一对大素数(100到200位十进制数或更大)的函数。从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积(这是公认的数学难题)。

几个数学概念

数学上的几个基本概念,它们在后面的介绍中要用到:

什么是“素数”?
  素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。
  例如,15=3*5,所以15不是素数;又如,12=6*2=4*3,所以12也不是素数。
  另一方面,13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。
  素数也称为“质数”。

什么是“互质数”(或“互素数”)?
  小学数学教材对互质数是这样定义的:“公约数只有1的两个数,叫做互质数。
  ”这里所说的“两个数”是指自然数。
  
  判别方法主要有以下几种(不限于此)

  1. 两个质数一定是互质数。例如,2与7、13与19。
  2. 一个质数如果不能整除另一个合数,这两个数为互质数。例如,3与10、5与 26。
  3. 1不是质数也不是合数,它和任何一个自然数在一起都是互质数。如1和9908。
  4. 相邻的两个自然数是互质数。如 15与 16。
  5. 相邻的两个奇数是互质数。如 49与 51。
  6. 大数是质数的两个数是互质数。如97与88。
  7. 小数是质数,大数不是小数的倍数的两个数是互质数。如 7和 16。
  8. 两个数都是合数(二数差又较大),小数所有的质因
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值