RSA加密数学原理
RSA加密数学原理
*/-->
*///-->
*///-->
RSA加密数学原理
Table of Contents
1 引言
RSA加密算法,即是目前最有影响力的咬钥加密算法, 他能够抵抗到目前为止已知的绝大多数密码攻击, 已被ISO推荐为公钥数据加密标准.
该算法基于一个十分简单的数论事实: 将两个大素数乘十分容易, 但相要对乘积进行因式分解却极其困难, 因此可以将乘积公开作为加密密钥. (选自: 百度百科)
2 RSA加密解密过程
2.1 加密
首先给出下面的公式:
$$C=M^e \mod n$$
上式中M为需要加密的信息, \(n=pq\), p和q分别为100~200位的大素数, e与$(p-1)(q-1)$互为素数.
实际应用中, Bob将公用密钥(e, n)发送给Alice, 然后Alice利用该公用密钥根据 \(C=M^{e} \mod n\) 进行加密, 然后将C发送给Bob
2.2 解密
Bob收到了Alice发送过来的C后, 接着就需要利用自己手上的私有密钥对加密信息C进行解密了, 他手上的私有密码是什么呢? 即d为e模(p-1)(q-1)的逆, 用算式表示为\(de \equiv 1\pmod {(p-1)(q-1)}\).
用私有密钥具体处理过程如下:
- \(C^{e}\pmod n = M^{ed}\pmod n\)
- 由于$de ≡ 1\pmod {(p-1)(q-1)}$得\(de=1+k(p-1)(q-1)\)
- 从费马小定理, 以及M与(p和q)互质成立的事件为大概率事件 – 因为RSA一般用于短信息加密, 当加密的信息庞大的时候, 速度会明显变慢, 同时p和q均是大素数 – 两个条件推得:
$$M^{v-1} \equiv 1\pmod v \quad v \in (p, q)$$
费马小定理:如果p为素数, a是不能被p整除的整数, 则 \(a^{p-1} \equiv 1\pmod p\)
- 于是:
$$C^{d} = M\bullet(M^{p-1})^{k(q-1)} \equiv M \bullet1 \equiv M\pmod p$$
$$C^{d} = M\bullet(M^{q-1})^{k(p-1)} \equiv M \bullet1 \equiv M\pmod q$$
- 由中国剩余定理得:
$$C^{d} \equiv M\pmod {pq}$$
中国剩余定理: 令m1, m2, …, mn为两两互素的正整数, 则预余方程组
$$x\equiv a_{1}\pmod m_{1}$$
$$x\equiv a_{2}\pmod m_{2}$$
$$\quad \vdots \quad$$
$$x\equiv a_{n}\pmod m_{n}$$
即有一个解x, 使\(0 \le x \le m\), 且所有其他的解均与此解模m同余. \(m=m_{1}m_{2}\dotsi m_{n}\)
3 收尾
由于当解密密钥和加密密钥相同的时候, RSA算法比其他的对称加密算法而言需要更多的计算时间, RSA通常不被用来完整信息的加密.
Date: 2014-04-11 Fri
Author: Zhong Xiewei
Org version 7.8.11 with Emacs version 24
RSA加密数学原理的更多相关文章
- 非对称加密技术- RSA算法数学原理分析
非对称加密技术,在现在网络中,有非常广泛应用.加密技术更是数字货币的基础. 所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密. 但是对于其原理大部分同学应 ...
- iOS中RSA加密详解
先贴出代码的地址,做个说明,因为RSA加密在iOS的代码比较少,网上开源的也很少,最多的才8个星星.使用过程中发现有错误.然后我做了修正,和另一个库进行了整合,然后将其支持CocoaPod. http ...
- iOS动态部署之RSA加密传输Patch补丁
概要:这一篇博客主要说明下iOS客户端动态部署方案中,patch(补丁)是如何比较安全的加载到客户端中. 在整个过程中,需要使用RSA来加密(你可以选择其它的非对称加密算法),MD5来做校验(同样,你 ...
- RSA加密、解密、签名、验签的原理及方法
一.RSA加密简介 RSA加密是一种非对称加密.可以在不直接传递密钥的情况下,完成解密.这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险.是由一对密钥来进行加解密的过程,分别称为公钥和私 ...
- 密码疑云 (2)——RSA加密机制需要的数学知识
在公钥密码体制提出不久,人们就找到其中的三种,其中最著名的当属RSA体制.RSA是一种非对称加密体制,在公开密钥加密和电子商业中被广泛使用.RSA是1977年由罗纳德·李维斯特(Ron Rivest) ...
- RSA加密原理使用方式签名验证
RSA加密原理使用方式签名验证 加密是网络传输中非常重要的一环,它保证了信息的安全性,让他人无法通过抓包来获取通讯的信息也无法通过伪造信息而实现对系统的入侵.其中最为常用的信息传递加密方式就是RS ...
- RSA加密、解密实现原理
RSA加密.解密实现原理 1.公钥.私钥
- RSA加密原理与秘钥、公钥生成
RSA加密(非对称加密) RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制.(不可逆向运算的加密方法) ...
- “不给力啊,老湿!”:RSA加密与破解
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 加密和解密是自古就有技术了.经常看到侦探电影的桥段,勇敢又机智的主角,拿着一长串毫 ...
随机推荐
- CSS导航的魔力——源自温谦老师《CSS彻底研究设计》
web标准出台以后,非常注重的一个标准就是希望内容与样式分离.希望HTML就干HTML该干的事.但是有的时候我们为了美观必须多多少少改动HTML 代码.下面介绍几个导航栏. ...
- C# 装箱和拆箱的简单理解
一.装箱拆箱的意义 主要用途是可以向ArrayList中添加值类型的元素 二.理解 装箱的含义:理解为可以将子类对象隐式的转化为父类对象(保留自己特有的成员,和子类重写的成员) 装箱:例子为典型的装箱 ...
- 如何在Hdevelop加入自己的算子
halcon中允许用户编写自定义函数,同时也可以将此函数保存在其他工程中调用. 以halcon12讲解 创建自定义函数 本地程序函数:创建后仅能在当前工程使用 hdevelop函数文件 ...
- 一名小小的SQL Server DBA想谈一下SQL Server的能力
一名小小的SQL Server DBA想谈一下SQL Server的能力 百度上暂时还没有搜索到相关的个人写的比较有价值的文章,至少在中文网络的世界里面没有 但是在微软的网站有这样一篇文章:<比 ...
- Android热修复技术选型(不在市场发布新版本的情况下,直接更新app)
2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案.阿里AndFix以及微信Tinker,它们在原理各有不同,适用场景各异,到 ...
- NancyFx开发-Razor视图using外部Dll解决方案
问题:NancyFx框架 Razor视图无法using 其他项目DLL 解决方案: Nancyfx框架Razor需要在web.config 中声明要引入的命名空间(包括system这些) &l ...
- ArcEngine 无法嵌入互操作类型
说明: 在.net 4.0中,声明 IPoint point = new PointClass();会出现下面这个错误 错误 2 类型"ESRI.ArcGIS.Geometry.PointC ...
- FusionCharts简单教程(三)-----如何自定义图表上的工具提示
最近有蛮多人总是问我这个FusionCharts制表的问题,帮助他们解决之后,在昨晚发现以前整理的笔记中有这个简单教程,而且以前也发表了几篇这个博文,所以就将其全部上传上来供别人参考.如有不正确之处望 ...
- [异常解决] ubuntu上安装虚拟机遇到的问题(vmware坑了,virtual-box简单安装,在virtual-box中安装精简版win7)
利用周末时间将整个电脑格式化,换成了ubuntu系统- 所谓:扫清屋子再请客! 但是有些软件只在win上有,于是还是考虑装个虚拟机来个——逐步过度策略,一点点地从win上转移到linux上 我的系统是 ...
- GLFW初体验
GLFW - 很遗憾,没有找到FW的确切含义,Wiki上没有,GLFW主页也没有.猜测F表示for,W表示Window GLFW是干啥用的? 一个轻量级的,开源的,跨平台的library.支持Open ...