ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

RSA算法学习心得

2021-02-28 21:31:51  阅读:311  来源: 互联网

标签:加密 学习心得 RSA 算法 私钥 破解 加密算法


RSA算法属于非对称加密算法的一种,也是目前世界上最重要的加密算法。
先来说一下该算法运行的过程:
1,选择两个不同的质数,通常是比较大的,如512位以上,但是在学习中或者做自己加密性需求不是很大的项目时可以适当用比较小的,设这两个数为a,b(因为这两个质数的大小关系到破解的难度)
2,计算出这两个数的乘积c,此时得到的c就是密钥长度,假设a,b是11和13,此时c就是143,转化为二进制是10000101,一共8位,那么这个密钥就是8位的。
3,计算c的欧拉公式得到φ©=(a-1)(b-1),即φ©=120.
4,选择一个整数d,使其1<d<φ©,并且d与φ©互质,我们这里可以选11.
5,计算d对于φ©的模反元素e,我们这里可以取模反元素e=11.(模反元素指的是φ© 除e
d的余数为1,或者说(ed-1)可以被φ©整除,计算的公式是dx+φ©*y=1求解即可,得到的x即为e的值,可以用扩展欧几里得算法,下图为扩展欧几里得算法的代码)
c语言实现扩展欧几里得算法

6,将c和d封装成公钥,c和e封装成私钥,在实际应用中,公钥和私钥的数据都采用ASN.1格式表达。
那么这个加密的过程安全嘛
其实很容易破解但又不容易破解,因为只要c可以被因式分解你们私钥就被破解了,但是大整数的因式分解极其困难,除了暴力没有其他有效的方法,所以在c足够大的情况下,用RSA加密的信息实际上是不可能破解的。

标签:加密,学习心得,RSA,算法,私钥,破解,加密算法
来源: https://blog.csdn.net/qq_40261606/article/details/114239526

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有