如何给产品经理解释什么是 RSA 加密(一)
如何给产品经理解释什么是 RSA 加密(一)
摄影:产品经理
与产品经理的健康生活
我们之前两篇文章已经介绍了如何在 Python 下面使用 RSA 加密,以及 python-rsa 这个库如何寻找两个大质数。
今天我们来介绍一下,RSA 加密是什么原理。
大家现在停下来,打开 Google 或者百度,搜索 RSA 加密原理。你会看到大量的文章,一上来就讲数学公式,根本看不懂他们在讲什么。
例如:
你说,这种内容如果不是 Deadline 逼着,谁想去看?
产品经理是文科生,我们假设她的数学是初中水平。如何给产品经理解释什么是 RSA 加密?
说到加密与解密,产品经理首先想到的就是小学时候给同学传纸条。为了不让中间传递的同学知道内容,产品经理曾经使用的办法:
约定一本书,例如《奇鸟形状录》,把想说的话转化为书上的文字位置,例如:
今晚8点西湖边见面。
今:第6页第3行第10个字晚:第12页第8行第1个字 8:第20页第1行第9个字 ……
所以对应的密文就是:6-3-10,12-8-1,20-1-9……
这里的密钥就是这本书,两个人都需要使用它才能完成加密和解密。
产品经理难以想象,怎么可能会存在一种加密系统,加密和解密使用的是不同的密码?有可能用 A 书来加密消息,用 B 书来解密消息吗?
要解释这个问题,我们再来想一种加密场景:
产品经理发现在书上寻找文字太麻烦了,于是换了一种简单的方案,把信息放在一个带锁的铁盒子里面,把铁盒子锁了以后让别人传给接收人。但是这就要求接收人必须有铁盒子的钥匙。所以一开始产品经理必须给一把钥匙给接收人。但如果由于某种原因,产品经理与接收人始终无法当面交换钥匙怎么办?
是否存在某种方法,产品经理与接收人自始至终都不用见面?
方法就是,产品经理把铁盒子锁住,传递给接收人。接收人在上面再加一把锁,并传回给产品经理。产品经理把自己的锁打开,再传递给接收人。接收人最后把自己的锁打开。
整个过程就不涉及到钥匙的传递。
但在真实的加密与解密场景,不可能用锁和铁盒子来传递消息,最终还是要使用密码。
那有一段消息,假设产品经理用 A 密码加密,传给 接收人,接收人用 B 密码加密,传回给产品经理。然后产品经理把 A 密码解密,再传回给接收人,接收人再用 B 密码解密。
但是,这就要求 A、B 两套密码满足交换率才行。但以上面书本加密为例,接收人首先拿到的是一串数字6-3-10,12-8-1,20-1-9……,他再加个密,比如他找一本《白夜行》,把这些数字转成书上的文字吼啊筛法奥尼尔就。然后把这段文字传回给产品经理。此时,即时产品经理知道接收人用的是《白夜行》,但也没有办法把只把第一层密码给解开。
那么什么东西满足交换率呢?我们小学时候学的加法和乘法都满足交换率。例如产品经理有一个数字10,她的密码是100,于是她先把的值1000给接收人。接收人的密码是25,于是把的值25000传回给产品经理。产品经理的值250传递给接收人,接收人再把得到10,也就是真正的信息了。
但这种方法非常不安全,因为如果有人捕获了产品经理首先发出的1000,再捕捉了接收人发出的25000,那么就知道接收人的密码是25。产品经理第二次发出250的时候,中间人使用就知道消息是数字10了。
这是因为,,已知b和c,自然就能推算出a。
RSA 加密的关键,就是寻找一种运算,已知b和c,却无法推算出 a。
下一篇文章,我们给出这种运算。
相关推荐:
别怕,我们的聊天消息,没人能偷看
以为是高性能神仙算法,一看源代码才发现...
kingname
攒钱给产品经理买房。
- 【Some】【搞逗】如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 【Some】【搞逗】如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 【Some】【搞逗】如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 互联网产品经理的核心竞争力是什么?如何培养?
- 如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 【Some】【搞逗】如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 直觉引向误区 《如果你是人人网的流量分析产品经理,如何解释 7 月 1 日到 7 月 7 日人人网的总流量以每日 5% 的幅度下滑?》感想
- 【Some】【搞逗】如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 【Some】【搞逗】如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 如何向外行解释产品经理频繁更改需求为何令程序员烦恼?
- 【Some】【搞逗】如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 【Some】【搞逗】如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 互联网产品经理的核心竞争力是什么?如何培养?
- 如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
- 产品经理必备技能――如何进行有效沟通
- 5年产品经理经验:如何从一张白纸开始做产品