密码学—RSA(非对称加密)

RSA是一种基于素数性质的非对称加密算法,它利用单向函数的性质实现加解密。算法中,公钥和私钥的生成涉及素数的选取,确保了加密的安全性。加解密过程包括模指数运算,并通过欧拉函数和模反元素来计算密钥。在实际通信中,RSA被用于保障信息的机密性。
摘要由CSDN通过智能技术生成

RSA

RSA加密利用了单向函数正向求解很简单,反向求解很复杂的特性
在这里插入图片描述


基本概念

在这里插入图片描述
一、 什么是“素数”?
  素数是这样的整数,它除了能表示为它自己和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)两个数都是合数(二数差又较大),小数所有的质因数,都不是大数的约数,这两个数是互质数。如357与715,357=3×7×17,而3、7和17都不是715的约数,这两个数为互质数。等等。

三、什么是模指数运算?
  指数运算谁都懂,不必说了,先说说模运算。模运算是整数运算,有一个整数m,以n为模做模运算,即m mod n。怎样做呢?让m去被n整除,只取所得的余数作为结果,就叫做模运算。例如,10 mod 3=1;26 mod 6=2;28 mod 2 =0等等。
  模指数运算就是先做指数运算,取其结果再做模运算。如(5^3) mod 7 = (125 mod 7) = 6。

RSA加解密


RSA属于公钥加密算法中的一个重要应用。RSA加密算法由五个部分组成:

  • 原文(Message):需要加密的信息,可以是数字、文字、视频、音频等,用 M M M 表示。
  • 密文(Ciphertext):加密后得到的信息,用 C C C表示。
  • 公钥(Public Key)和私钥(Secret Key),用 P K PK PK S K SK SK表示。
  • 加密算法(Encryption):若 E ( x ) E(x) E(x) 为加密算法,加密过程可以理解为 C = E ( M ) C = E(M) C=E(M)根据原文和加密算法得到密文。
  • 解密算法(Decryption):若 D ( x ) D(x) D(x)为解密算法,解密过程可以理解为 M = D ( C ) M = D(C) M=D(C)据密文和解密算法得到原文。

假设Alice和Bob要在网上进行加密通信,他们要怎么应用RSA来加密和解密信息呢?步骤如下:

  1. 随机选择两个不相同的素数 p , q p,q p,q
  2. p , q p,q p,q相乘,记为 n = p × q n = p\times q n=p×q
  3. 计算 n n n的欧拉函数 φ ( n ) \varphi(n) φ(n) ,欧拉函数证明,当 p , q p,q p,q为不相同的素数时, φ ( n ) = ( p − 1 ) ( q − 1 ) \varphi(n)=(p-1)(q-1) φ(n)=(p1)(q1)
  4. 随机选择一个整数 e e e,满足两个条件: φ ( n ) \varphi(n) φ(n) e e e互质,且 1 < e < φ ( n ) 1<e<\varphi(n) 1<e<φ(n)
  • 44
    点赞
  • 315
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值