0

0

世界最主流的加密演算法

(*-*)浩

(*-*)浩

发布时间:2019-09-02 15:05:14

|

12773人浏览过

|

来源于php中文网

原创

一个划时代的算法,惊天动地;一个只能用算力来破解的加密算法 

世界最主流的加密演算法

RSA算法走出历史舞台(推荐学习:web前端视频教程

时间来到了1976年,两位美国计算机学家威特菲尔德·迪菲(Whitfield Diffie)和马丁·赫尔曼(Martin Hellman),首次证明可以在不直接传递密钥的情况下,完成解密。这被称为“Diffie-Hellman密钥交换算法”。

DH算法的出现有着划时代的意义:从这一刻起,启示人们加密和解密可以使用不同的规则,只要规则之间存在某种对应关系即可。

这种新的模式也被称为“非对称加密算法”:

(1)乙方生成两把密钥,公钥和私钥。公钥是公开的,任何人都可以获得,私钥则是保密的。

(2)甲方获取乙方的公钥,用它对信息加密。

(3)乙方得到加密后的信息,用私钥解密。

公钥加密的信息只有私钥解得开,只要私钥不泄漏,通信就是安全的。

就在DH算法发明后一年,1977年,罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在麻省理工学院一起提出了RSA算法,RSA就是他们三人姓氏开头字母拼在一起组成的。

新诞生的RSA算法特性比DH算法更为强大,因为DH算法仅用于密钥分配,而RSA算法可以进行信息加密,也可以用于数字签名。另外,RSA算法的密钥越长,破解的难度以指数倍增长。

因为其强大的性能,可以毫不夸张地说,只要有计算机网络的地方,就有RSA算法。

RSA算法是这样工作的

RSA算法名震江湖,那它到底是如何工作的?

第一步,随机选择两个不相等的质数p和q。

第二步,计算p和q的乘积n。n的长度就是密钥长度,一般以二进制表示,一般长度是2048位。位数越长,则越难破解。

第三步,计算n的欧拉函数φ(n)。

第四步,随机选择一个整数e,其中是1

Fortran基本用法小结 WORD版
Fortran基本用法小结 WORD版

本文档主要讲述的是Fortran基本用法小结;希望能够给学过C但没有接触过Fortran的同学带去一些帮助。Fortran是一种编程语言。它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。Fortran奠定了高级语言发展的基础。现在Fortran在科研和机械方面应用很广。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载

第五步,计算e对于φ(n)的模反元素d。所谓“模反元素”就是指有一个整数d,可以使得ed被φ(n)除的余数为1。

第六步,将n和e封装成公钥 (n,e) ,n和d封装成私钥 (n,d) 。

假设用户A要向用户B发送加密信息m,他要用公钥 (n,e) 对m进行加密。加密过程实际上是算一个式子:

用户B收到信息c以后,就用私钥 (n, d) 进行解密。解密过程也是算一个式子:

这样用户B知道了用户A发的信息是m。

用户B只要保管好数字d不公开,别人将无法根据传递的信息c得到加密信息m。

RSA算法以(n, e)作为公钥,那么有无可能在已知n和e的情况下,推导出d?

(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。

(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。

(3)n=pq。只有将n因数分解,才能算出p和q。

所以,如果n可以被很简单地分解,则很容易算出d,意味着信息被破解。

但是目前大整数的因式分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。也就是说,只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的。

RSA算法逐步被运用到人类的各个方面

由于RSA算法的可靠性,现在非常多的地方应用了这个技术。

最重要的运用,莫过于信息在互联网上传输的保障。运用RSA算法,在传输过程中即使被截获,也难以进行解密,保证信息传输的安全。只有拥有私钥的人,才可能对信息进行解读。

银行交易的U盾,是用户身份的唯一证明。U盾第一次使用时,运用RSA算法,产生私钥并保存在U盾之中。在以后的使用中,用私钥解密交易信息,才能执行后面的交易操作,保障用户的利益。

现在假冒伪劣产品不少,企业需要使用一些防伪手段。目前最常见的是二维码防伪,方便消费者通过简单的扫一扫操作进行产品验证。但是二维码如果以明文形式展示,则容易被不法分子利用,目前已有人运用RSA算法对二维码的明文进行加密,保障消费者的利益。

相关专题

更多
页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

400

2023.08.14

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
TypeScript 教程
TypeScript 教程

共19课时 | 2.2万人学习

AngularJS教程
AngularJS教程

共24课时 | 2.6万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号