RSA加密基础原理学习

1.对于RSA加密的理解:它是一种非对称的加密方式,就是加密密钥和解密密钥不同,加密密钥是可以公开的,是公钥;解密密钥不能公开,是私钥。

2.对于对称加密和非对称加密的理解

对称加密

非对称加密

另外RSA算法的安全性基于两个我觉得比较难得数学问题:质因数分解和求离散对数。

3.加密的原理:两个大的质数很容易相乘,但想要对它们的乘积进行因式分解却非常困难,因此在加密算法中他将两个大质数的乘积积公开作为加密密钥,即公钥;而两个大质数组合起来形成私钥。

4.如何形成密钥对(个人觉得比较难理解,它还使用了欧拉函数的原理,并且它在平时解题中出现大多伴随着脚本,即要编写脚本来解密,对编程的掌握要有一定要求)

(1)首先需要生成公钥和私钥的一部分    “M”

取两个互为质数的数p和q,条件(p!=q,  gcd(p,q)=1)

要使得          M=p*q

注:gcd(p,q)=1的意思是p和q的最大公因数为1

(2)需要生成一个不大于M又要与M互质,并且是p-1和q-1的最小公倍数。(此处就是运用了欧拉函数)这里我先用N来表示,即

                           N = [p-1,q-1] = (p-1)(q-1)

据了解:

     互质数p 和 q不能太小,如果他们足够大,那么根据目前的计算机技术和其他工具,至今也没能从M中分解出p 和q 。也就是说,只要密钥长度M足够大(1024足够),基本上不可能从公钥信息推出私钥信息

(3)生成加密密钥  ( 这里用Q来表示)

需要满足         1 <Q<N,  gcd(N,Q)=1

这里保证了第4步生成解密密钥L时一定有L满足条件

(4)生成解密密钥L

需要满足         1<L<Q ,   (Q*L)modN=1

      (Q*L)modN=1 就是  Q*L的值除以M的余数等于1   的意思

加密时  ciphertext(密文)=plaintext的Q次方的值除于M的余数

解密时   plaintext(明文) =ciphertext的L次方的值除于M的余数

                最后生成的密钥对就为 (Q,L,M)

5. 实操

打开后发现它只给了两个非常大并且互质的两个数p和q,给了加密密钥e,要求解出解密密钥d

    这里就需要用脚本辅助计算出d的值     

   、

这里是一个python脚本,将pqe的值带入脚本即可解出d值

                 

个人觉得这个题应该是rsa中比较简单的,但是想要编写出脚本还需要对rsa编码的深刻理解和对编程的灵活掌握,现在的我还远远达不到(这里用到的脚本也是网上找的),任需不断努力,  加油!!!

入门学习,如有理解错误的地方还请大家指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值