密码学 - 适用于互联网的公开密钥加密技术

简介: 密码学 - 适用于互联网的公开密钥加密技术

前面几节所讲解的加密技术都属于“对称密钥加密技术”,也称作“秘密密钥加密技术”(如图10.7所示)。这种加密技术的特征是在加密和解密的过程中使用数值相同的密钥。因此,要使用这种技术,就必须事先把密钥的值作为只有发送者和接收者才知道的秘密保护好(如图10.7-(1)所示)。虽然随着密钥位数的增加,破解难度也会增大,但是事先仍不得不考虑一个问题:发送者如何才能把密钥悄悄地告诉接收者呢?用挂号信吗?要是那样的话,假设有100名接收者,那么发送者就要寄出100封挂号信,非常麻烦,而且这样也无法防止通信双方以外的其他人知道密钥。再说寄送密钥也要花费时间。互联网的存在应该意味着用户可以实时地与世界各地的人们交换信息。因此对称密钥加密技术不适合在互联网中使用。


image.png


图10.8 创建公钥和私钥的步骤


但是世界上不乏善于解决问题的能人。他们想到只要让解密时的密钥不同于加密时的密钥,就可以克服对称密钥加密技术的缺点。(“会有这样的技术吗?”也许诸位不禁会发出这样的疑问,稍后笔者将展示具体的例子)。而这种加密技术就被称为“公开密钥加密技术”。

在公开密钥加密技术中,用于加密的密钥可以公开给全世界,因此称为“公钥”,而用于解密的密钥是只有自己才知道的秘密,因此称为“私钥”。举例来说,假设笔者的公钥是3,私钥是5(实际中会把位数更多的两个数作为一对儿密钥使用)。笔者会通过互联网向全世界宣布“矢泽久雄的公钥是3哦”。这之后当诸位要向笔者发送数据的时候,就可以用这个公钥3加密数据了。这样就算加密后的密文被人盗取了,只要他还不知道笔者的私钥就不可能对其解密,从而保证了数据的安全性。而收到了密文的笔者,则可以使用只有笔者自己才知道的私钥5对其解密(如图10.7(2)所示)。怎么样?这个技术很棒吧!


\image.png

图10.7 对称密钥加密技术和公开密钥加密技术


可用于实现公开密钥加密技术的算法有若干种,这里笔者将介绍目前广泛应用于互联网中的RSA算法。RSA这个名字是由三位发明者Ronald Rivest、Adi Shamir和Leonard Adleman姓氏的首字母拼在一起组成的。美国的RSA信息安全公司对RSA的专利权一直持有到2000年9月20日。使用RSA创建公钥和私钥的步骤如图10.8所示。无论是公钥还是私钥都包含着两个数值,两个数值组成的数对儿才是一个完整的密钥。

由图10.8的步骤可以得出:323和11是公钥,323和131是私钥,的确是两个值都不相同的密钥。在使用这对儿密钥进行加密和解密时,需要对每个字符执行如图10.9所示的运算。这里参与运算的对象是字母N(字符编码为78)。用公钥对N进行加密得到224,用私钥对224进行解密可使其还原为78。

乍一看会以为只要了解了RSA算法,就可以通过公钥c = 323、e = 11推算出私钥c = 323, f = 131了。但是为了求解私钥中的f,就不得不对c进行因子分解,分解为两个素数a、b。在本例中c的位数很短,而在实际应用公开密钥加密时,建议将c的位数(用二进制数表示时)扩充为1024位(相当于128字节)。要把这样的天文数字分解为两个素数,就算计算机的速度再快,也还是要花费不可估量的时间,时间可能长到不得不放弃解密的程度。


image.png

图10.9 用公钥加密,用私钥解密

目录
相关文章
|
11月前
|
存储 前端开发 安全
如何确保 Pinia 插件中的加密密钥的安全性?
如何确保 Pinia 插件中的加密密钥的安全性?
579 122
|
11月前
|
存储 安全 JavaScript
除了加密密钥的安全性,还有哪些方面需要注意 Pinia 插件的安全性?
除了加密密钥的安全性,还有哪些方面需要注意 Pinia 插件的安全性?
457 5
|
安全 算法 物联网
SSL/TLS:互联网通信的加密基石与安全实践
**简介:** 在数字化时代,互联网每天传输海量敏感数据,网络攻击频发。SSL/TLS协议作为网络安全的基石,通过加密技术确保数据安全传输。本文解析SSL/TLS的技术架构、密码学原理、应用场景及常见误区,探讨其在未来的发展趋势,强调持续演进以应对新型威胁的重要性。 SSL/TLS不仅保障Web安全,还广泛应用于API、邮件、物联网等领域,并遵循合规标准如PCI DSS和GDPR。
|
存储 安全 算法
密码学基础:加密技术如何保护我们的在线生活
密码学基础:加密技术如何保护我们的在线生活
381 7
|
算法 安全 量子技术
量子计算与密码学:加密技术的新挑战
量子计算的崛起对密码学提出了新挑战。本文探讨了量子计算对现有加密技术的影响,分析了公钥密码、对称密码及通信安全所面临的威胁,并介绍了后量子加密算法等应对措施,展望了未来加密技术的发展趋势。
1234 1
|
安全 算法 数据安全/隐私保护
加密与安全:公开密钥加密、加密过程、数字签名等
这篇文章详细解释了非对称加密算法,包括公开密钥加密的原理、加密过程、数字签名的功能,以及它与对称加密的比较和实际应用场景。
加密与安全:公开密钥加密、加密过程、数字签名等
|
算法 安全 量子技术
量子计算与密码学:加密技术的新挑战
【10月更文挑战第29天】本文探讨了量子计算对密码学的影响,分析了现有加密技术面临的挑战,并展望了未来的发展趋势。量子计算的快速发展对传统公钥加密算法(如RSA和ECC)构成巨大威胁,同时也催生了后量子加密算法和量子密钥分发等新技术。文章强调了多元化、标准化和国际合作在构建量子安全加密体系中的重要性。
|
安全 物联网 网络安全
网络安全的屏障与密钥:揭秘网络漏洞、加密技术与安全意识的重要性新技术趋势与应用:区块链、物联网与虚拟现实的未来展望
【8月更文挑战第27天】在数字时代的浪潮中,网络安全成为了我们不可忽视的话题。本文将深入浅出地探讨网络安全中的漏洞问题、加密技术的应用及其重要性,以及提升个人和组织的安全意识的必要性。通过分析常见的网络攻击手段和防御策略,我们将了解到保护信息资产的紧迫性,并掌握一些基础的防护措施。文章还将分享几个实用的代码示例,帮助读者更好地理解加密技术在实际应用中的作用。
|
安全 数据安全/隐私保护 C++
RSA密钥的秘密花园:Python带你漫步加密解密的知识殿堂
【8月更文挑战第2天】RSA密钥的秘密花园以非对称加密守护信息安全。对称加密如乡间小屋, 发送方与接收方共享钥匙; 而RSA像宏伟城堡, 拥有公钥和私钥。公钥加密信息, 私钥解密, 解决了密钥安全传递难题。借助Python和pycryptodome库, 我们可体验RSA加密解密过程, 生成密钥对, 加密消息, 并成功解密, 展现其强大能力和在信息安全中的独特作用。
429 2
|
安全 算法 Java
密码学基础知识与加密算法解析
密码学基础知识与加密算法解析