RSA算法小记
学习来源:http://www.cnblogs.com/vamei/p/3480994.html
小记:
一、数学基础:
欧拉Phi函数:Φ(n)=总数(从1到n-1中与n互质的整数)
(1)欧拉定理:对互质的正整数 a,n,有a^(Φ(n))-1能被n整除
当n是质数p时,Φ(p)=p-1,有特殊情况,即小费马定理:a^(p-1)-1 能被n整除
(2)关于欧拉函数的推论:Φ(mn)=Φ(m)Φ(n)
(3)(ab)|(n)=(a|n)(b|n)
二、RSA算法的加密和解密
1、任选互质的 p、q,求积:n=pq
2、求得 k=Φ(n)=(p-1)(q-1)
3、任选与 k互质的 d
4、取整数 e,使得 ed=kt+1,即 (ed)|k=1
则 公钥: d n (e用来算乘方,d用来取余) 密钥:e n (d用来求乘方,n用来取余)
注意:n应尽量大,这样不易被破解;n应大于被加密数的最大值,否则不同数被加密后可能一样,这样就无法解密还原了。总之,n应尽量大。
由此也可知,只能加密小于n的数
例:
以p=2,q=7为例,则n=14,k=6;
取d=5,由ed|k=1即5e|6=1可取e=11;
则 公钥:5,14; 密钥:11,14
数据 2 用公钥 5,14 加密得到 (2^5)|14=4,用 11,14解密得 (4^11)|14=2
注意:n应大于被加密数的最大值,否则不同数被加密后可能一样,这样就无法解密还原了:如 3|14=17|14=3,这样对被加密的3和17无法还原,因为其密文一样。
RSA算法小记的更多相关文章
- 信息安全-5:RSA算法详解(已编程实现)[原创]
转发注明出处:http://www.cnblogs.com/0zcl/p/6120389.html 背景介绍 1976年以前,所有的加密方法都是同一种模式: (1)甲方选择某一种加密规则,对信息进行加 ...
- RSA算法原理
一直以来对linux中的ssh认证.SSL.TLS这些安全认证似懂非懂的.看到阮一峰博客中对RSA算法的原理做了非常详细的解释,看完之后茅塞顿开,关于RSA的相关文章如下 RSA算法原理(一) RSA ...
- C#RSA算法实现+如何将公钥为XML格式转为PEM格式,给object-C使用
.net中,处于安全的考虑,RSACryptoServiceProvider类,解密时只有同时拥有公钥和私钥才可以.原因是公钥是公开的,会被多人持有.这样的数据传输是不安全的.C#RSA私钥加密,公钥 ...
- [已解决] 快速理解RSA算法
RSA算法基础详解 http://www.cnblogs.com/hykun/p/RSA.html RSA算法原理(一) http://www.ruanyifeng.com/blog/2013/06/ ...
- 公钥私钥和RSA算法
1, RSA算法原理(一) http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html 2, RSA算法原理(二) http: ...
- 跨越千年的RSA算法
转载自http://www.matrix67.com/blog/archives/5100 数论,数学中的皇冠,最纯粹的数学.早在古希腊时代,人们就开始痴迷地研究数字,沉浸于这个几乎没有任何实用价值的 ...
- (转)RSA算法原理(二)
作者: 阮一峰 日期: 2013年7月 4日 上一次,我介绍了一些数论知识. 有了这些知识,我们就可以看懂RSA算法.这是目前地球上最重要的加密算法. 六.密钥生成的步骤 我们通过一个例子,来理解 ...
- (转) RSA算法原理(一)
最近用到了RSA加密算法,虽然有现成的,但是想看看它的原理,翻到此文,感觉写得很好,通俗易懂,转了. 作者: 阮一峰 日期: 2013年6月27日 如果你问我,哪一种算法最重要? 我可能会回答&q ...
- springmvc使用RSA算法加密表单
今天被吐槽在客户端用js对密码进行md5加密其实也不见得安全.这种做法其实不见得有什么作用,学过计算机网络都知道,在网上抓一个包是很简单的事,就算别人抓包抓不到你原始密码,用这个md5后的密码一样可以 ...
随机推荐
- Docker / CI / CD
CI Weekly #6 | 再谈 Docker / CI / CD 实践经验 CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动 ...
- 地图投影——高斯-克吕格投影、墨卡托投影和UTM投影
地图投影(Map Projection) http://baike.baidu.com/view/94066.htm 概念: 地图投影是把地球表面的任意点,利用一定数学法则,转换到地图平面上的理论和方 ...
- 解决网站在负载均衡环境下SESSION丢失的问题
在WEB场中,动态网页往往会因为几台主机做了负载而产生SESSION丢失的问题,网上也有很多的介绍,我这里只将我经历的过程给大家分享一下: 系统要运行在负载平衡的 Web 场环境中,而系统配置文件 ...
- Caffe学习系列(19): 绘制loss和accuracy曲线
如同前几篇的可视化,这里采用的也是jupyter notebook来进行曲线绘制. // In [1]: #加载必要的库 import numpy as np import matplotlib.py ...
- Androd Studio layout页面布局无法预览
Could not initialize class android.support.v7.internal.widget.ActionBarOverlayLayout 导致无法看到布局页面,解决方法 ...
- JavaScript里面三个等号和两个等号有什么区别?
1.对于string,number等基础类型,==和===是有区别的 a)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 b)同类型比较,直接进 ...
- C/C++程序从编译到链接的过程
编译器是一个神奇的东西,它能够将我们所编写的高级语言源代码翻译成机器可识别的语言(二进制代码),并让程序按照我们的意图按步执行.那么,从编写源文件代码到可执行文件,到底分为几步呢?这个过程可以总结为以 ...
- Newtonsoft.Json之JArray, JObject, JPropertyJValue
JObject staff = new JObject(); staff.Add(new JProperty("Name", "Jack")); staff.A ...
- 学习之路三十二:VS调试的简单技巧
这段时间园子里讲了一些关于VS的快捷键以及一些配置技巧,挺好的,大家一起学习,一起进步. 这段时间重点看了一下关于VS调试技巧方面的书,在此记录一下学习的内容吧,主要还是一些比较浅显的知识. 1. 调 ...
- iOS--SDAutolayout宽度自适应
#pragma mark - UIScrollView 内容竖向自适应.内容横向自适应方法 @interface UIScrollView (SDAutoContentSize) /** 设置scro ...