如何给产品经理解释什么是 RSA 加密(二)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 如何给产品经理解释什么是 RSA 加密(二)

摄影:产品经理普普通通的伊比利亚猪排

如何给产品经理解释什么是 RSA 加密(一)一文中,我们使用传递加锁铁盒子的方法来传递信息:

产品经理在铁盒子上面挂上一把锁,把铁盒子通过其他人转交给接收人。接收人再挂一把锁到铁盒子上,把盒子通过其他人转交给产品经理。产品经理解开自己的锁,把铁盒子再给接收人,最后接收人解开自己的锁。

整个过程不需要涉及到钥匙的交换,也防止了铁盒子在传递的过程中被中间人打开。

然后我们使用乘法复现了这个过程。但使用乘法有一个致命的弱点:对于,已经知道b 和 c 了,自然就能求出。现在需要寻找一种数学计算方法,既满足交换率,同时它又不能反向计算。

显然加减乘除都不满足,因为他们可以反向计算。那么有什么运算不能反向计算呢?

不要忘记,我们的目标是让产品经理都能看懂,那么我们考虑一下小学、初中学过的数学运算中,哪一种运算不能反向计算呢?

答案就是求余数。

例如我们计算,100除以11,商为9,余数为1。现在我们知道了除数是11,余数是1,无法反向推断出被除数100.因为不知道商是多少。除以11能得到余数1的数有无数多个:1, 12, 23, 34, 45, ……

如果你觉得100除以11还太简单了,那么我们再看看余数为562求 。

现在,我们把这个被除数100改成一个指数幂的形式。其中,可以公开,需要保密。

我们构造一个计算公式:

其中,和都可以公开。产品经理与接收方都使用这两个数字。和的选择只有一个要求,必须比 小。仅此而已。而产品经理与接收方使用不同的,并且不需要交换,不需要告诉对方。

现在,我们假设,,随便选一个大数就可以了,例如产品经理的,接收方的,对于产品经理,余数为10:

对于接收方,余数为5:

这两个余数也可以公开传递,产品经理拿到接收人的余数5,接收人拿到产品经理的余数10.

现在,我们来看一个非常神奇的公式:

其中,是对方的余数。

先看产品经理这边,她拿到了接收方的余数5,于是做计算,得到余数25:

接收方使用产品经理原来的余数10进行计算:

你会惊讶地发现,两边计算出来的余数都是25.你可以多选几个不同的数据进行演算,你会发现最终两边总是可以得到相同的余数。

于是这个25——这个相同的余数就可以当做密码来做数据加密——产品经理用她最终计算出来的密码25对信息进行加密。接收方使用他最终计算出来密码25对密文进行解密。

在这个过程中,产品经理和接收方发送了几条所有人都可以看的公开信息,但却实现了密码交换。并且,这使用到的最难的数学知识,仅仅是初一(甚至有些人小学就学过,比如我)幂运算。

但是这种方式有一个缺点,就是一开始交换密码的过程,产品经理和接收人都必须在线,产品经理先把、以及自己计算的余数发送给接收方,接收方使用、计算自己的余数发给产品经理,接下来产品经理才能计算出真正的密码。如果接收方第一次返回信息给产品经理中间隔了比较长的时间,那么产品经理也要等很久才能进一步发送真正的消息。

在下一篇文章中,我们来解决这个问题。

目录
相关文章
|
4月前
|
安全 算法 网络安全
浅谈非对称加密(RSA)
浅谈非对称加密(RSA)
176 0
|
3月前
|
算法 安全 Go
RSA加密算法详解与Python和Go实现
RSA加密算法详解与Python和Go实现
209 1
|
3月前
|
算法 安全 网络安全
使用 Python 实现 RSA 加密
使用 Python 实现 RSA 加密
126 2
|
4月前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
152 5
|
4月前
|
安全 算法 数据安全/隐私保护
深度揭秘!Python加密技术的背后,AES与RSA如何守护你的数据安全
【9月更文挑战第10天】随着数字化时代的到来,数据安全成为企业和个人面临的重大挑战。Python 作为功能强大的编程语言,在数据加密领域扮演着重要角色。AES 和 RSA 是两种主流加密算法,分别以对称和非对称加密方式保障数据安全。AES(Advanced Encryption Standard)因其高效性和安全性,在数据加密中广泛应用;而 RSA 则利用公钥和私钥机制,在密钥交换和数字签名方面表现卓越。
93 3
|
4月前
|
存储 安全 数据库
双重防护,无懈可击!Python AES+RSA加密方案,构建最强数据安全堡垒
【9月更文挑战第11天】在数字时代,数据安全至关重要。AES与RSA加密技术相结合,构成了一道坚固防线。AES以其高效性保障数据加密,而RSA则确保密钥安全传输,二者相辅相成,提供双重保护。本文通过Python代码示例展示了这一加密方案的魅力,强调了其在实际应用中的重要性和安全性。使用HTTPS等安全协议传输加密密钥和密文,确保数据在数字世界中自由流通而无忧。
87 1
|
4月前
|
安全 算法 数据安全/隐私保护
黑客克星!Python加密艺术大公开,AES、RSA双剑合璧,守护你的数字世界
在这个数据泛滥的时代,数字世界既充满了知识,也潜藏安全隐患。Python 作为强大的编程语言,以其独特的加密技术为我们的信息安全保驾护航。本文将介绍 AES 和 RSA 这两种加密算法,揭示它们如何协同工作,保护你的数字世界。AES(高级加密标准)以其高效、安全著称,能将敏感信息转化为难以破解的乱码。Python 的 `pycryptodome` 库让 AES 加密变得简单易行。然而,AES 面临密钥分发难题,此时 RSA(非对称加密算法)便大显身手,通过公钥加密、私钥解密的方式确保密钥传输安全。AES 与 RSA 在 Python 中交织成一道坚不可摧的防护网,共同守护我们的数字世界。
91 0
|
10天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
29天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
30天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
49 10