RSA 算法

RSA算法是一种非对称加密算法,通过公钥和私钥实现信息的安全传输。算法基于质数和互质数的概念,利用欧拉函数和模运算进行密钥生成和加解密。其安全性依赖于大整数的因式分解难题。本文详细介绍了RSA的原理、密钥计算和安全性。
摘要由CSDN通过智能技术生成

RSA算法

倘若在加解密信息的过程中,能让加密密钥(公钥)与解密密钥(私钥)不同,即

  1. 甲要传密信给乙,乙先根据某种算法得出本次与甲通信的公钥与私钥;
  2. 乙将公钥传给甲(公钥可以让任何人知道,即使泄露也没有任何关系);
  3. 甲使用乙传给的公钥加密要发送的信息原文m,发送给乙密文c
  4. 乙使用自己的私钥解密密文c,得到信息原文m .

就可以很好的克服对称加密算法的弱点,这种新的加密模式被称为“非对称加密算法”

可以观察到,从始至终,私钥一直都在信息接收方乙处

只要乙自己不泄露出去,私钥就没有泄露的可能

1977年,三位数学家RivestShamirAdleman设计了一种算法,可以实现非对称加密

这种算法用他们三个人的名字首字母命名,叫做RSA算法

RSA算法非常可靠,密钥越长,它就越难破解

至于难以破解的原理(安全性),在本文介绍完该算法后会有简要说明

下面,先介绍一些基本概念与数学定理

质数与互质数

这是小学数学的概念

  1. 一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为质数(素数);否则称为合数。

例如,15=3×5,所以15不是素数

13除了等于13×1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数

1不是质数,也不是合数

  1. 公约数只有1的两个数,叫做互质数。

判断或选取互质数的方法/定理有很多,如下所示

  1. 任意两个质数一定构成互质数(如3115361);
  2. 大数是质数的两个数一定是互质数(如9788);
  3. 一个质数如果不能整除另一个合数,这两个数为互质数;
    即一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系(如310526);
  4. 1和任何一个自然数在一起都是互质数;
  5. 相邻的两个自然数是互质数(如1516);
  6. 相邻的两个奇数是互质数(如4951)。

RSA算法中,我们通常使用以上第1条与第2

即选取两个本身都是质数的数作为互质数

而以上第2条定理对于计算欧拉函数值有着积极作用

模运算

模运算的定义如下

  1. m去被n整除,只取所得的余数作为结果,就叫做模运算。

例如,10 mod 3 = 1 、26 mod 6 = 2 、28 mod 2 = 0

同余

”是数论中表示同余的符号

同余的定义如下

  1. 给定一个正整数m,如果两个整数ab满足a-b能被m整除,即(a-b)modm=0
    那么就称整数ab对模m同余,记作ab(modm),同时可成立amodm=b

再次提醒注意,同余与模运算是不同的

ab(modm)仅可推出b=amodm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值