RSA资料

原创 2004年09月23日 03:17:00

1. 背景:

    单钥密码随着网络规模的扩大,密钥的管理成为一个难点,并且无法解决消息确认问题。

为了解决这些问题。1976年W.Diffie和M.E.Heilinan提出的一种新型双钥密码体制。由于双钥密码体制的加密和解密不同,且能公开加密密钥,而仅需保密解密密钥,所以双钥密码不存在密钥管理问题。双钥密码还有一个优点是可以拥有数字签名等新功能。1977年由Rivest,Shamir和Ad1eman三人提出了RSA密码体制,RSA的安全性一直未能得到理论上的证明。

 

2. 概述:

公钥加密使用两个密钥-一个公钥和一个私钥,这两个密钥在数学上是相关的。为了与对称密钥加密相对照,公钥加密有时也叫做不对称密钥加密。在公钥加密中,公钥可在通信双方之间公开传递,或在公用储备库中发布,但相关的私钥是保密的。只有使用私钥才能解密用公钥加密的数据。使用私钥加密的数据只能用公钥解密(如下图所示)。

由于它用私钥加密的数据只有公钥才能还原,这被用在数字签名中。

 

rsa 

 

3. 原理:

生成密钥:

  1. 随意找两个大质数 p, q

  2. 算出 n = p * q

  3. 取一小奇数 e 和 (p - 1)*(q - 1) 互质

  4. 解出 d * e ≡ 1 (mod n) 的 d

  5. e, n 为公开密钥

  6. d, n 为私人密钥

加密:

  设消息为 M (< n), 则密文 C = M^e (mod n)

解密:

  设密文为 C, 则明文为 M = C^d (mod n)

签名:

  设信息为 M (< n), 则签名信息 S = M^d (mod n)

检验:

  设签名信息为 S, 则原信息为 M = S^e (mod n)

 

下面举个例子:

如果p = 3, q = 7,那么

n = p * q = 21

加密密钥e与(p - 1)*(q - 1) = 2 * 6 = 12没有公因子。

随机选取e,如5,那么

    d = 5-1 mod 12 = 5 相当于1=(e * d) mod 12

公开e和n,将d保密,丢弃p和q。

加密消息M = 4

    C = M^e mod n = 4^5 mod 21 = 16

解密消息时需要用解密密钥d进行相同的指数运算。因而:

    M = C^d mod n = 16^5 mod 21 = 4

 

 

4. DES的比较

 

DES

RSA

方式

对称

非对称

速度

1000

安全

一般

验证

数据量

只用来加密密钥

密钥管理

复杂

简单

 

轻松学习RSA加密算法原理

http://blog.csdn.net/q376420785/article/details/8557266 http://www.ruanyifeng.com/blog/2013/07/rsa_...
  • sunmenggmail
  • sunmenggmail
  • 2013年09月24日 23:54
  • 90663

数字签名RSA简要原理

数字签名是一种给以电子形式存储的消息签名的方法。通过这种方法签名之后的消息可以通过网络传输。数字签名基于非对称密钥加密算法,如DSA/RSA算法。从公钥系统可以立即取得的一个好处是解决了密钥的管理问题...
  • tony2278
  • tony2278
  • 2013年11月21日 08:54
  • 2035

生成RSA秘钥及加密

在支付行业中常常需要进行加密处理,按照支付网关那边的说法,MD5只能防篡改,无法实现鉴权的作用,因此参考支付宝的鉴权方式,使用RSA,方法为除一般的post、get参数外新增sign和callerId...
  • thekenofDIS
  • thekenofDIS
  • 2017年03月22日 14:19
  • 528

DSA与RSA的区别

DES算法好在加/解速度快,密钥量短,采用对称加密 RSA算法好在网络容易实现密钥管理,便进行数字签名,算法复杂,加/解速度慢,采用非对称加密 DSA = Digital Signature Al...
  • Buaaroid
  • Buaaroid
  • 2015年10月26日 19:36
  • 1171

AES和RSA加密算法调研

一、AES(DES的升级版)(对称加密)执行时间 [1]     测试数据 这里以读取纯文本文件,一行一行的方式对字符串进行加密,并把加密后的内容存储到另外一个文件中,计算文件的加密时间。待文件加...
  • wgw335363240
  • wgw335363240
  • 2013年05月03日 09:07
  • 10642

iOS RSA加密和解密

一、使用openssl终端指令生成公钥和私钥证书,最后需要得到公钥证书(public_key.der)和私钥证书(private_key.p12) 1,打开终端前,在桌面新建文件夹Certificat...
  • Boyqicheng
  • Boyqicheng
  • 2016年07月08日 11:57
  • 1864

RSA加密算法(C语言实现)

RSA算法流程说明----适合密码学初学者看
  • haroroda
  • haroroda
  • 2015年06月02日 22:07
  • 14190

HTTPS和RSA结合的数据安全传递

一 . 客户端和服务器必须进行安全的HTTPS数据传递     服务器端: 要到固定的CA证书机构去生成根证书,存放在服务器和客户端     客户端:除了存放根证书外,还要进行使用NSURLCon...
  • yuanmengong886
  • yuanmengong886
  • 2016年08月04日 14:58
  • 1738

密码学:用例子和程序说明RSA算法过程

本文用简单的例子说明RSA算法过程。
  • ddk3001
  • ddk3001
  • 2017年01月17日 19:35
  • 1998

目前世界上最重要的算法RSA的数学原理摘要

RSA 算法 原理 实际应用
  • lonelyrains
  • lonelyrains
  • 2014年04月03日 11:43
  • 2652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RSA资料
举报原因:
原因补充:

(最多只允许输入30个字)