Chinaunix首页 | 论坛 | 博客
  • 博客访问: 284748
  • 博文数量: 58
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-27 08:37
个人简介

从linux了解世界

文章分类
文章存档

2017年(5)

2016年(51)

2015年(2)

我的朋友

分类: 网络与安全

2017-02-06 10:53:05

1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密(LZ77也是1977年,这一年发生了什么...)。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。
秘钥生成流程:
1、随机选择两个不同质数p和q,例如p=5和q=7(实际应用中这两个数越大就越安全)
2、计算n=pq=35。n的长度就是秘钥的长度,35的二进制表示是6位100011,所以秘钥长度为6,实际应用中秘钥长度一般是1024位,重要的场合是2048位。
3、计算n的欧拉函数φ(n)=(p-1)(q-1)=24。
4、随机选择一个元素e,使得1《e《φ(n),且e和φ(n)互质。假设随机选择了e=5。
5、计算e对φ(n)的模反元素d,ed-1=kφ(n),5d+(-24k)=1(k取整数),根据扩展欧几里得算法,一定存在解(d,k),选择特解(29,6),也就是d=29。
6、将(n,e)封装为公钥,(n,d)封装为私钥。
加密解密过程:
在上面的例子中,公钥为(35,5),私钥为(35,29)。
假设对m加密得密文c,则me≡c(mod n),cd≡m(mod n)

阅读(3805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~