$$ 01 $$
有了“小沙同学”的帮助,牛郎与织女有了安全高效的校验机制。
似乎是已经“万事俱备,只欠东风”——加密策略了。
只要有了一种绝对安全的加密策略,就能绕过王母,与织女秘密沟通见面时间了。
·
这可让牛郎犯了难:如何保证一个加密的方式,是绝对安全的呢?
现在是“王母在暗处,牛郎在明处”,只要王母保持低调,牛郎就不可能知道王母是否破译了自己的加密信息。
而且,最头疼的是,为了确保织女能够解密,自己总要把解密方式告诉织女的,王母肯定中途会窃听的。
·
这就是牛郎所面临的最大挑战:“在众目睽睽之下,实现安全的加密通信。”
·
不去开始,就永远不会有开始。虽然这事情看起来不可能,但是牛郎还是不得不尝试一下。
牛郎现在也没什么思路,那就从最简单的加密方式开始吧。
·
天街小雨润如酥,气吞万里如虎;
不教胡马度阴山,错向槐安回首。
·
藏头诗,“天气不错”。牛郎感觉,自己都想给自己磕个头,太牛了。
也算是闲谈吧,牛郎赶紧将其发给织女。
织女也给出了自己的见解:“最有名的刺客,反而是无名的。”
·
----
$$ 02 $$
牛郎并没有直接认同,而是创造性地提出了另一个观点:“最有名的刺客,就是有名的。”
不知为什么,牛郎脑海中,竟然闪过一个词:“怪盗基德”。
“优秀的刺客,应该每次都能成功刺杀目标并离开,让人明知是其所为却就是没办法防范。”
·
“加密方法应该也是一样,应该让人明知用了什么方法,但就是无法解密。”
“对于加密方法的保密,我们无法证明其安全性,毕竟只有你我使用了,我们总有想不到的地方。”
“但一种被所有人公认的加密方法,它必然经过了无数次攻防的洗礼,安全性肯定是不言而喻的。”
“因此,我们要想一种方法,将方法公开出去,但除了接收方外,其他人无法窥探数据内容。”
·
织女看到牛郎的回复后,大为赞叹,提出了自己的疑惑:“这样的方法,真的存在吗?”
牛郎给出了肯定的回答:“一定存在的。”
“还记得数据校验时,我们引入了‘见面日期’这个因素,作为最后两位的校验值吗?”
“加密应该也是类似的道理,但是我们要想办法,将‘见面日期’这个因素无限放大。”
“最终构建一把锁,而‘见面日期’就是解开这把锁的钥匙。”
·
“当然,后面锁和钥匙都是可以更换的。”
“只要锁的原理我们构思好了,甚至任何人都可以用这个方法,创建自己的锁与钥匙。”
·
----
$$ 03 $$
其实牛郎也想到了,‘见面日期’是及其不安全的。
因为,王母完全可以猜到前面几位的。年份,还用猜吗?
月份,想想应该也容易吧?虽然一年有12个月,但是调查一下,锁定在3个月范围内,没问题吧?
日子,可能确实比较隐私,难以直接猜到。但一个月按30天算,加上上面月份的猜测,也就3x30=90种情况,就可以得到“钥匙”。
也就是说,这把“钥匙”现在并不安全,这也是牛郎提出“允许更换锁和钥匙”的初衷。
·
当然,现在连加密方法都没有,钥匙的安全问题,可以暂且不提。
现在的问题是,如何用8个数字的“见面日期”,去对一整篇的信件进行加密呢?
文字与数字结合的话,牛郎瞬间想到了:字典。
·
接着,牛郎又想到了一个简单的加密方法:加一加密法。
将每个字转换为索引值,然后都加上1成为新的索引,接着将新索引对应的文字写下来。
此时,整篇文章变得“语言不通”,无人能直接读懂。
但如果通过“减一”来解密一下,就能得到真正的内容了。
·
如果将这个“加一”,变成“加上见面日期”,当然,年月日有点过大了,可以先只加上最后两位“日子”。
这样,别人不知道牛郎和织女是几号见面的,短时间自然无法准确解密出内容。当然,题外话,这里也只是“短时间”而已。
于是,最简单的加密方式出现了:通过两位数字,对整篇内容进行加密。
·
----
$$ 04 $$
回过头来,这里说“短时间无法准确解密”,那么意味着,王母如果花费一定的时间,还是可以解密的。
因为见面日期的具体日子,只可能是1到31之间的数字。
将每个数字都尝试一遍,最后选出一篇读起来通顺的文章,基本就是加密前的原文了。
·
为此,牛郎想到了一个描述方法:加密强度。
因为加密方法是公开的,理论上只要时间足够,总可以有办法穷举所有可能的。
但是,自己要与织女约定见面时间,按天书契约,需要一年内见面一次。
换句话说,只要自己能设计出一种方案,以王母的资源,在一年内无法破解,那么,这个加密强度就是足够的。
·
现在这个“加一加密法”的变体,对于王母来说,穷举31种情况,也就几分钟的事情,肯定是不行的。
于是,首先需要搞定的,就是,需要多强的加密强度?
·
牛郎推算了一下,每次解密,都需要施展仙术,自己现在的水平,大概在1分钟左右。
假定王母及其手下都是仙术高手,乐观估计1秒钟,应该可以吧?
1小时是3600秒,1天是24x3600秒,1年约是365x24x3600秒,为3153.6万秒。
听闻天庭有10万天兵,全部参与的话,是10万x3153.6万,约等于3亿。
·
也就是说,针对目前的情况,只要加密算法在3亿次尝试之内无法被解密,那么,就可以认为它是安全的。
也就是纯数字钥匙的话,必须是3亿以上的数字。
当然,为了保证安全性,可能需要十亿或者百亿以上的数字。

