主题:【原创】从手机解锁图案发散开去 -- diamond
现在大家都用上智能手机了,其中很多是用九点图案解锁的,用起来十分方便,随便划一下就能打开手机,比输入密码既简单多了,不但快速而且可以单手操作,实在是个非常优秀的设计。不过忽然间又有些担心起来,象这样随便划两下就可以开机,会不会很容易被别人猜出来呢?不知这九个点能组合出多少不同的图案,也不知需要用到至少几个点、画得多复杂才够安全,怎么办,自己算呗。
九点解锁图案的构成规则是:九个点排成三行三列,可以从任何一点出发,总共需要连接至少4个点;可以跨行或跨列连接,比如可以从左上角的点连到最下一行中间的点,但不可以跨越未被连接过的中点,如果正中的点没有被连过,则不容许从左上角的点连到右下角的点,如果一定要这么做的话,会被认为是先通过了中点,再连过去的。
先估算一下,如果不考虑任何连接限制的话,其全部组合数是: 9×8×7×6 + 9×8×7×6×5 + …… + 9! = 985824,这相当于6位数字组成的密码强度,还是非常可观的。实际的数目无疑大大小于这个数字,从理论上一一推算的话实在是太繁琐了,不如用程序穷举,反正数目的上限不过是98万多,计算机还应付得过来。结果如下:
总点数 ―― 图案数
4 ―― 1,624
5 ―― 7,152
6 ―― 26,016
7 ―― 72,912
8 ―― 140,704
9 ―― 140,704
合计 ―― 389,112
这个结果显示,全部可能的组合数目依然是相当大的,其加密强度介于5位数字密码和6位数字密码之间。如果图省事的话,哪怕只用4、5个点,可能性也有8千多种,接近于4位数字密码,一般足够用了,这对懒人们是个好消息。不过考虑到大部分人实际上还要更懒,很少使用跨行跨列的连线,而是只连接直接相邻的点,免得连线不小心被中间点捕捉过去。如此一来,组合数目势必大大减少,那安全性会下降多少呢,需要重新计算一下,结果如下:
总点数 ―― 图案数
4 ―― 496
5 ―― 1,208
6 ―― 2,240
7 ―― 2,984
8 ―― 2,384
9 ―― 784
合计 ―― 10,096
不出所料,这回密码的复杂性大大降低了,全部数目也不过刚刚超过1万,基本等于4位数字密码。如果仅用4、5个点,组合数目则只剩下1千多种,加密强度下降到了略高于3位数字密码的水平,比普通旅行箱的密码锁好些,只能算是差强人意。看来要是不希望自己的解锁图案轻易被别人猜到,必须多用跨行跨列的连线,而且要多连几个点,以增加复杂性,当然,如果自己还能记得住的话。
从这里开始发散一下。区区9个点就可以组合出如此数目庞大的密码,是因为二维平面上曲线的可能数目是一种二阶无穷大,如果变成一维的3个点,满打满算也不过十几种,而要是扩展到三维的话,变成3×3×3的点阵,粗略估算一下其数量级,大约有27! = 10^28种可能性,可见组合数目会随维度的增加而呈现出爆炸式的增长。
再继续发散。想到人的大脑其实也是某种连接图案,每个神经细胞就是一个点,相互连接构成空间网络,相当于一个超级复杂的解锁图案,我们每个人的记忆、个性、智能、经验、知识、技能等等就表现为这些连接的方式和强度,其全部可能的组合数目代表了人类智力的极限。人脑大约有10^11个神经元,每一个通过突触和另外1000-10000个神经元相连接,按照下限1000做个简单地估算,仅一个神经元的连接方式就有大约为C(10^11,1000),近似等于10^8400。这是一个超乎想象的天文数字,人类已知的宇宙范围是137亿光年,如果全部 用原子填满的话,其总数也不过是10^108而已。如果把所有神经元的连接方式全部乘在一起,再考虑突触连接的强度变化,那就更是天文数字之上的天文数字了,少说也有10^(10^(10^15))的样子。与此相比,一个人毕生接收的信息总量微少得不值一提,即便是把历史上所有人类全部加在一起也没有多少。所以,看起来暂时还不需要为人类的智力上限担心,发散可以到此为止了。
- 相关回复 上下关系8
🙂【原创】从手机解锁图案发散开去
🙂我觉得九宫锁屏或数字锁屏都不是为了保密 7 打铁的 字215 2013-04-25 01:06:30
🙂没错~ airman 字40 2013-04-28 23:05:07
🙂解锁图案的保密性比你分析的还要差 20 圣火 字306 2013-04-23 11:40:55
🙂恐怕也不能这样线性外推,脑的极限是很明显的了 11 鸿乾 字1017 2013-04-23 10:08:12
🙂深蓝早就战胜卡斯帕罗夫了,快速回答问题比赛也胜出了 胡一刀 字54 2013-04-23 08:50:38
🙂然后卡斯帕罗夫喝了一口牛奶 1 林风清逸 字14 2015-02-21 08:47:32
🙂深蓝直接将那一口牛奶制成奶粉 woohoww 字16 2015-02-23 03:11:59