当今世界,网络安全问题比以往任何时候都更需认真对待。 本文是属于《网络安全》系列文章之一,我们将详细阐述了安全性的基础知识。在本文中,我们将阐述非对称加密的原理,这是确保真实性、完整性和保密性的唯一方法。

不对称加密的加密技术和签名: 2000多年前,凯撒通过加密来保护其军事信息。现如今就轻而易举了吗?

在我们最近的一篇博客中,我们看到了对称加密即使在一定程度上满足了保密性,也不足以确保真实性和完整性。那么,非对称加密如何破解这个方程呢?

我们举个例子,将想要交换机密消息的两个人命名为Alice和Bob。每人都有一个公钥和对应的私钥。

作为假设,有必要了解以下内容: 用公钥加密的消息只能用相应的私(秘)钥解密。用私钥加密的消息只能用相应的公钥解密(我们将在本文后面看到这一点的好处)。

基于上述情况,Alice想给Bob发送消息,将使用Bob的公钥对其进行加密。在此情况下,只有Bob能用自己的密钥对消息进行解密。

以上只是解决了保密性需求而已。

但是Bob如何能确定是Alice给他发来的信息呢?他如何确定消息在传输过程中没有被修改?为了解决这个问题,Alice还需使用签名机制。

说到签名之前,我们必须引入散列函数的概念。“散列函数”是将文本转换为签名(也称为指纹)的“加工厂”。

这个“加工厂”有5个特性:

  • 对于相同的函数,指纹中的字符数总是相同,
  • 指纹不允许重建原始文本,
  • 指纹不可预测,
  • 相同的数据会产生相同的指纹,
  • 不同的数据会产生完全不同的指纹。

“MD5”和“SHA” 是两个众所周知的散列函数。使用MD5时,文本“Ewon: Leading IIoT for 20 years”被转换成32个字符的密链: “5b184c5cafcad9ef410afbcb0fab5518”。维基百科的完整内容也会生成32个字符的(完全不同的)密链。

单向转换最为轻而易举:只需使用互联网上容易找到的一款在线工具即可。毋庸置疑,反向转换并非易事

考虑到上述情况,回到我们之前的例子:

为了签署一份文档,Alice首先使用散列函数(如https://www.md5hashgenerator.com/ 或其他任何能在互联网上找到的函数)生成文件指纹。之后,她使用自己的私钥加密这个指纹。她在自己的文档上获得了一个签名,可将该签名与原始文档一起发送给Bob。

然后,Bob需使用Alice的公钥解密签名。如果不起作用,则是因为文档不是由Alice发送的(Alice是唯一拥有私钥的人)。如果解密成功,他便可以确定是Alice在信息上签名了。

因此,他获得了文档的第一个指纹。

一旦完成了这一步,Bob就需使用与Alice相同的散列函数生成所收原始文档的指纹。

如果两个指纹完全相同,那么他完全可以肯定,在Alice发送和他接收期间,文档没有被修改过。

加密和签名的结合,是同时对文档进行编码和签名并确保消息的机密性、完整性和真实性的唯一方法。

这种做法是很不错,但可能还有最后一个问题: 事实上,当Alice加密一条消息时,她怎么能确定自己使用的是Bob的公钥呢?事实上,如果一个黑客(我们称他为Eve)也生成一对密钥(私钥/公钥),然后让Alice相信它们是Bob的密钥,将它们传输给Alice,则Alice会继续加密消息并将其传输给Bob。在此情况下,只有Eve才能破译和读取这些信息……

因此,Alice需要能在使用Bob的公钥之前验证Bob的真实性。为此,Bob可以让证书颁发机构(CA)认可他的公钥,确保他是该公钥的所有者。这种保障方法采用的是CA将证书颁发给Bob的形式。该证书包含识别Bob及其公钥的信息。又由证书颁发机构签署,确保其合法性。

这样一来,Alice可以联系该机构,确认她正在使用的公钥属于Bob。

想要做的更好很难!

与对称加密相比,非对称加密只有一个缺点:比较慢。为了提高速度,安全的连接使用对称和非对称两种加密方式。

当网络浏览器与服务器建立安全连接时,将首先生成一个对称会话(临时)密钥。而后,使用服务器的公钥(其真实性和有效性通过其证书得到验证)来加密该会话密钥,并将其发回服务器,解密后,将能以对称方式与浏览器进行通信。

这种方法解决了长达2000年之久的凯撒难题。得益于此,两个互不相识的实体可以交换秘密,而无需事先在加密/解密的密钥问题上达成一致。

网络安全系列博客中文原文地址:Cybersecurity essentials : Asymmetric cryptographyhttps://www.ewon.biz/zh/all-resources/ewon-iiot-blog/cybersecurity-essentials-asymmetric-cryptography

这里是专注于工业通信技术的HMS,更多工业物联网洞察和技术知识可关注公众号:HMS工业网络,业内大咖都在看!

网络安全,非对称加密,对称加密和非对称加密的区别相关推荐

  1. 搜集博客园邀月工作室的有关加密对称加密的文章

    SQL Server 2008中的代码安全(五):非对称密钥加密 SQL Server 2008中SQL应用系列--目录索引 非对称密钥包含数据库级的内部公钥和私钥,它可以用来加密和解密SQL Ser ...

  2. IPSEC对称解密以及非对称加密

    **IPSEC对称加密:**对称加密是我跟你之间共享一把相同的秘钥,我们用相同的秘钥去做加密去做解密,在发送数据前我用秘钥加密数据,这数据加密后就变成乱码,这样发保证数据的私密性,接收方接收到数据之后 ...

  3. iOS-常见三种加密(MD5、非对称加密,对称加密)

    任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要.在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障. 本 ...

  4. 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别

    目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...

  5. 加密基础知识二 非对称加密RSA算法和对称加密

    一.RSA的计算过程 上述过程中,出现了公钥(3233,17)和私钥(3233,2753),这两组数字是怎么找出来的呢?参考RSA算法原理(二) 首字母缩写说明:E是加密(Encryption)D是解 ...

  6. 对称加密算法(AES加密)以及对称算法与非对称算法的对比

    概述 对称加密算法就是传统的用一个密码进行加密和解密.例如,我们常用的WinZIP 和WinRAR对压缩包的加密和解密,就是使用对称加密算法:         从程序的角度着,所谓加密,就是这样一个函 ...

  7. 对称加密与非对称加密的优缺点及非对称加密的使用前提

    1.加密 [非对称加密 RSA ,对称加密 DES 3DES AES] -- 不明文传数据,安全性会更高               对称加密和非对称加密区别: 1.对称加密速度快,安全性没有非对称加 ...

  8. 哈希算法和·Hmac算法 对称式与非对称式加密对比

    哈希算法( Hash )又称摘要算法( Digest ), 作用:对任意一组输入数据进行计算,得到一个固定长度的输出摘要. 哈希算法的目的:为了验证原始数据是否被篡改. 哈希算法最重要的特点就是: 相 ...

  9. RSA(非对称)+AES(对称加密)前后台交互

    前言:    为了提高安全性采用了RSA,但是为了解决RSA加解密性能问题,所以采用了RSA(非对称)+AES(对称加密)方式,如果只考虑其中一种的,可以去看我前面两篇文章,专门单独写的demo,可以 ...

  10. 非对称加密(1)非对称加密原理

    非对称加密(1)非对称加密原理 现在我们已经知道对称加密的一个最大的问题是如何安全地传输密钥,并且在对称加密的体系下找不到好的解决方案.1976年,美国学者Dime和Henman为解决信息公开传送和密 ...

最新文章

  1. 盛大游戏卷入“沙巴克”商标之争
  2. visual studio中导入opencv的项目
  3. linux 定时器和sleep,linux中sleep函数的使用和总结
  4. .NET 指南:实现 Equals 方法
  5. MVC3 Razor @RenderSection
  6. eclipse git 取远程代码_IDEA中的Git操作,看这一篇就够了!
  7. 编写一个函数把华氏温度转换为摄氏温度
  8. xp计算机保护系统,XP系统总是弹出“Windows文件保护”窗口提示的解决方法
  9. 常用VC++运行时下载地址
  10. xlsx文件怎么打开
  11. Linux磁盘分区总结
  12. 在 Android 中使用指纹进行身份验证
  13. 调用微信接口实现微信授权登陆主体内容【code换取openid以及session_key】
  14. 十大流行开源软件推荐
  15. IFSC的完整形式是什么?
  16. 阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
  17. 边缘服务网格 osm-edge
  18. javascript实现QR code二维码扫描
  19. 详述numpy中的np.random.rand()、np.random.randn()、np.random.randint()、np.random.uniform()函数的用法
  20. MP综述:植物-微生物互作的系统生物学

热门文章

  1. 巴菲特在University of Florida商学院的一次演讲
  2. 少年成长篇。。。作文素材
  3. poi读取excel表
  4. Mysql 正则 实现 like in 效果
  5. Transfomer详解
  6. 机器学习-神经网络为什么需要非线性(激活函数)
  7. Criteria和DetachedCriteria
  8. FPGA通信第二篇--UDP
  9. asp.net mvc 5 identity 2.0 注册时密码强度验证
  10. Java并发编程进阶——并发锁