RSA加密数学原理

*/-->

*///-->

*///-->

UP
|
HOME

RSA加密数学原理

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

Validate XHTML 1.0

RSA加密数学原理的更多相关文章

  1. 非对称加密技术- RSA算法数学原理分析

    非对称加密技术,在现在网络中,有非常广泛应用.加密技术更是数字货币的基础. 所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密. 但是对于其原理大部分同学应 ...

  2. iOS中RSA加密详解

    先贴出代码的地址,做个说明,因为RSA加密在iOS的代码比较少,网上开源的也很少,最多的才8个星星.使用过程中发现有错误.然后我做了修正,和另一个库进行了整合,然后将其支持CocoaPod. http ...

  3. iOS动态部署之RSA加密传输Patch补丁

    概要:这一篇博客主要说明下iOS客户端动态部署方案中,patch(补丁)是如何比较安全的加载到客户端中. 在整个过程中,需要使用RSA来加密(你可以选择其它的非对称加密算法),MD5来做校验(同样,你 ...

  4. RSA加密、解密、签名、验签的原理及方法

    一.RSA加密简介 RSA加密是一种非对称加密.可以在不直接传递密钥的情况下,完成解密.这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险.是由一对密钥来进行加解密的过程,分别称为公钥和私 ...

  5. 密码疑云 (2)——RSA加密机制需要的数学知识

    在公钥密码体制提出不久,人们就找到其中的三种,其中最著名的当属RSA体制.RSA是一种非对称加密体制,在公开密钥加密和电子商业中被广泛使用.RSA是1977年由罗纳德·李维斯特(Ron Rivest) ...

  6. RSA加密原理使用方式签名验证

      RSA加密原理使用方式签名验证 加密是网络传输中非常重要的一环,它保证了信息的安全性,让他人无法通过抓包来获取通讯的信息也无法通过伪造信息而实现对系统的入侵.其中最为常用的信息传递加密方式就是RS ...

  7. RSA加密、解密实现原理

    RSA加密.解密实现原理 1.公钥.私钥

  8. RSA加密原理与秘钥、公钥生成

    RSA加密(非对称加密) RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制.(不可逆向运算的加密方法) ...

  9. “不给力啊,老湿!”:RSA加密与破解

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 加密和解密是自古就有技术了.经常看到侦探电影的桥段,勇敢又机智的主角,拿着一长串毫 ...

随机推荐

  1. vsftp搭建+虚拟用户

    yum安装vsfpd: [root@localhost ~]# yum -y install vsftpd db4-utils Loaded plugins: fastestmirror, refre ...

  2. Java解析网段下包含的所有IP地址

    import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;impor ...

  3. 实现IBatisNet的Dialect分页

    Hibernate有其独有的Dialect,对不同的数据库实现sql的分页. 用过MyBatis for Java,它可以拦截SQL语句,通过Interceptor对原始的sql语句进行修改,也就是可 ...

  4. Redis中Value使用hash类型的效率是普通String的两倍

    什么Redis? 点击这里 最近要开发的一个项目是分布式缓存组件,解决参数缓存高效获取的问题.参数达到了500万级别,刚刚开始了解Redis.做设计的时候考虑到Value使用哪种类型的问题? 主要面临 ...

  5. (转)对SQLSERVER数据库事务日志的疑问

    本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLS ...

  6. mongodb(分片)

    分片(即sharding)是将数据拆分至不同数据节点的方式. 1.在mongoDB中提供了自动分片的方式,它会根据数据块(chunk)大小的设定,对片键进行拆分: 2.mongoDB配置分片,要配置三 ...

  7. 如何让Hadoop读取以gz结尾的文本格式的文件

    背景: 搜索引擎在build全量时,会产生数G的xml的中间文件,我需要去查询这些中间文件中,是否有某个特殊的字符.xml文件有很多,每个都有几百M,存储在hdfs上,而且是以gz结尾的文本格式的文件 ...

  8. php 润年 星期 天数

    详细: 闰年.星期.天 echo date(|-|L|-|); 今年是否闰年: echo date(|-|l|-|); 今天是:Tuesday echo date(|-|D|-|); 今天是:Tue ...

  9. [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏

    前言  这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示    ...

  10. js模版引擎handlebars.js实用教程——each-基本循环使用方法

    返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...