RSA公钥密码算法和Diffie-Hellman密钥交换

简介: RSA公钥密码算法和Diffie-Hellman密钥交换

公钥加密算法的诞生


对称加密算法的弊端


需要保存额外的密钥,密钥的管理难


686ca555e4f84294b324f7dee7ed97d2.png


公钥的使用


b18e076d6a284a7bb7096f5f221d9dd9.png


需要找到一种算法,正向推解容易,反向求解困难:

模运算:求余运算--单向函数

a67b4f92491a4c8bbc17f7852e920d61.png

模运算原理推解


1937c9235e7d425083d01f3399ef7bec.png

求余算法不可逆,只可以通过正向求解算法得出指数x,对模运算求逆不现实


d49e1f547cbe4ccc9af48ae5b3ef7ca1.png

当mod的数足够的大,指数x基本上无法被推出(不现实)

06fb650de0a44c7dbd5fb245bc02d753.png


RSA公钥密码算法


RSA加解密

b27b2f57c355473eabfb617745191d8d.png

f8c94a7418884a75b411260629740a61.png

82a580d267e7485d8f1346ee096c46a3.png

42b8c1da30cd4f4da31ea378927972a6.png

7aab6e0835f743738bd59a3da3a0d91c.png

0e15ba88eb194462a425e1c88b144a84.png

k倍:表示 d 的取值也不唯一

质因数分解耗时长


649139adf70848768b146efa9d66eb69.png

公钥加密利用了信息不对等,根据p.q可以快速推出n函数,但是不知道p,q的窃听者无法求得n函数

8d7c755fcb8a4e80afb955c632159ad9.png

RSA加密例子


信息: 字符a  ascii = 97


f62f2432c4bf43cfb23609905bdce025.png


DH算法(DIffie-Hellman)密钥交换


image.png

DH算法核心-单向函数

481cfbc20b2f4e9db62c4aef5b55295b.png


DH算法简易论证

4b3e276c1d7142b2a598242e9a4c7e5a.png


DH算法推导


image.png

a9c3e12226af4546835f46d7b104093d.png

RSA和DH异同



a80e51b378604994bacfca3052e161f6.png

相关文章
|
9天前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
11天前
|
存储 算法 Java
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。
|
24天前
|
存储 人工智能 算法
解锁分布式文件分享的 Java 一致性哈希算法密码
在数字化时代,文件分享成为信息传播与协同办公的关键环节。本文深入探讨基于Java的一致性哈希算法,该算法通过引入虚拟节点和环形哈希空间,解决了传统哈希算法在分布式存储中的“哈希雪崩”问题,确保文件分配稳定高效。文章还展示了Java实现代码,并展望了其在未来文件分享技术中的应用前景,如结合AI优化节点布局和区块链增强数据安全。
|
26天前
|
JavaScript 算法 安全
深度剖析:共享文件怎么设置密码和权限的 Node.js 进阶算法
在数字化时代,共享文件的安全性至关重要。本文聚焦Node.js环境,介绍如何通过JavaScript对象字面量构建数据结构管理文件安全信息,包括使用`bcryptjs`库加密密码和权限校验算法,确保高效且安全的文件共享。通过实例代码展示加密与权限验证过程,帮助各行业实现严格的信息资产管理与协作。
|
2月前
|
算法 安全 Go
Go 语言中实现 RSA 加解密、签名验证算法
随着互联网的发展,安全需求日益增长。非对称加密算法RSA成为密码学中的重要代表。本文介绍如何使用Go语言和[forgoer/openssl](https://github.com/forgoer/openssl)库简化RSA加解密操作,包括秘钥生成、加解密及签名验证。该库还支持AES、DES等常用算法,安装简便,代码示例清晰易懂。
64 12
|
4月前
|
算法 安全 Go
RSA加密算法详解与Python和Go实现
RSA加密算法详解与Python和Go实现
327 1
|
6月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
428 1
|
6月前
|
算法 安全 网络安全
Diffie-Hellman (DH) 算法的工作原理
【8月更文挑战第23天】
896 0
|
6月前
|
存储 算法 安全
密码算法的分类
【8月更文挑战第23天】
282 0
|
7月前
|
算法 C# 数据安全/隐私保护

热门文章

最新文章