九宫格动态密码--快速入门
摘要:这是一种用户拥有安全选择权的新一代密码技术,具有防窥视、防钓鱼、抗未知风险能力,非常适合用户把各个密码安全地统一起来,也适合增强未来的刷脸时代(消费和取现)的安全。它是一种基于思维识别的身份认证技术。
- 你是否有过混淆、忘记各种密码的困扰?
- 你是否有过担心你的密码存在被窥视、被拦截、被钓鱼的可能?
-
你是否对将来的“刷脸”消费和取现,既期待,又心存疑虑?(空付,空取)
一直以来,用户在账号安全上都是被动的,是被厂商所限定的,用户并没有提升账号安全的自主选择权.
生物识别技术:(如指纹识别,刷脸识别等)存在先天缺陷,如易复制、不可更改、非100%识别率、依赖外部硬件等,使得它在诸多环节都存在潜在安全风险,在道高一尺,魔高一丈的时代,它的抗未知风险能力较差。一般来说,它更适合于作为一种辅助验证手段和小金额的便捷支付,不适合单独承担重要的身份认证。
短信验证:实现动态口令,比较安全,但依赖硬件,当手机遗失、系统漏洞或中木马时,可能导致所有账号瞬间崩溃
传统固定密码:需要经过大脑知情的,认证准确,具有不可替代性。但对于普通用户来说,存在密码不同时则容易混淆和忘记、密码统一却又不安全的困扰,而且还存在易被窥视、易被钓鱼的风险。
这是一种基于数字矩阵的新一代的动态密码技术。它充分发挥人脑在图形空间记忆和简单数字单向处理方面的特长,它具有:
高安全:用户是唯一知情者,防窥视,服务器也不知情,它也属于一种规则密码,却避免了其它规则密码必须将规则存储在服务器上,以及可实施性差的缺点,同时实现了“三高”(客户端、传输过程、服务器端的高抗风险能力)
双向验证能力:让用户也有能力对服务器进行隐式验证,防范钓鱼欺诈
它的优势在于:
容易记忆:它可以比传统密码更好记,却更安全
实现密码统一:只需牢记一个,就可以安全地将各种账号密码统一起来
增强未来的刷脸时代的空付、空取的安全:结合未来的生物识别技术,可以更安全地进行零依赖的空身消费和空身取现
人脑的优缺点
缺点:记住数字串“1235789”,时间稍久,可能就容易忘。优点:但记住下面图形就容易多了
缺点:要计算 3 * 6 * 7 + 5 = 131,一般来说是较困难的
优点:但要计算 3 * 6 * 7 + 5 的个位数,很容易得出是 1,因为运算当中只需保留个位就可以了,如3*6*7+5 -> 8*7+5 -> 6+5 -> 1
而且,它的单向性还起到保护表达式的作用,通过结果1来反推表达式变得更加不容易
动态密码认证过程样例
(注:它和传统静态密码区别是:它的密码是用户根据自己预先定义的规则结合本次的数字矩阵,从而得到对应的密码,密码随数字矩阵的不同而可能动态变化。)
传统静态密码:
传统密码是静态的,即密码中的每一位都是固定的,如“abcd12”
动态密码:
密码上的每一位既可以是静态的,也可是动态的,可以由数字矩阵中的某些数经过组合运算而得到的。
例:取指定位置上的值
说明:密码的后5,6两位分别取矩阵上的1,5位置上的值,每次认证时,将随数字矩阵的不同而不同。
具体规则设定:
R-=abcd
R5R6=$1$5
( R-表示剩余部分的静态密码。
获取矩阵中的值用 $ 加位置号获取如: $1 = 8, $2 =6)
例:取多个固定位置上的值,进行再运算后的值
说明:密码的第6位分别取矩阵上的4,6位置上的值,相加后个位上的值。注:有进位时只取个位上的值,既利于单向性,又利于速算。
具体规则设定:
R-=abcd1
R6=$4 + $6
例:取两个位置上组成的值的平方根
具体规则设定:
R-=abcd1
R6=平方根($4$6)
这里再介绍一个简单又有用的运算,求余数(符号%)
前面提及的取个位上的数,实质上就是求10的余数。 如 5 % 10 = 5, 15 % 10 = 5,26 % 10 = 6
用% 2 则可以用来判断数字的奇偶数性
使用求余运算可以在表达式很长的情况下也能快速、准确地心算,它不但提高速算能力,又能提高单向性(安全)
如对于 ( 3*9+8 )%10, 我们计算时,可直接3*9=27忽略十位2,再7+ 8 得到个位5
前面的例子都是取固定位置上的值,下面则取的位置是动态的(变址)
下面的例子非常重要,它将在安全上带来质的飞跃,展示基于纯数学模型所带来的巨大优势。
例:例如第6位密码,它所取矩阵中的值的所在位置由位置1上的数字所指向(1次跳转)
说明:第1位是5,所在再找第5位置上的数7。
具体规则设定:
R-=abcd1
R6=$($1)=$(5) = 7
$常数: 访问矩阵中确定位置上的值,如$1,$2,表示访问第1、2个位置上的值(可省略括号)。
$(表达式): 可访问不确定位置上的值,如 $($1 ), $ ($2 + 5 ) 等等
更进一步,上面的$1,也可以用任何数值表达式替换。如:
某两个位置上的值相加后的个位数
例:(变址)例如第5位密码,它所取矩阵中的值的所在位置由位置1,2上的和的个位数数字所指向
说明:第1,2位相加后的个位数为9,所以再找位置9上的值,为6
(注:%10表示求数除10的余数,也就是取个位上的数,如25%10 =5 )
延伸:还可以进行多次跳转,如2次跳转 $( $($1 ) )。
同样,您还可以,将跳转动态得到的值6继续和其它值或表达式进行进一步的运算
您也可以使用安全系数更高的各种函数,来作为变址表达式,如条件函数。
例:密码取某些位置上的最小值
说明:密码的第5位取矩阵上的1,3,4位置(如圈所示)上的最小值。
具体规则设定:
R-=abcdf
R5 = 最小值($1 ,$3 , $4 )
延伸:最小值函数中的元素,可以某一个位置上的值,也可以是多个位置上的值,先运算后得到的新值
除了极值函数外,进一步的相关函数还能实现:
最接近于某个确定的数,如返回某些位置上最近于5的数
最近于某个动态计算出来的数,如最近于位置1上的数,也可以是位置1和位置2相加后的个位数
例:取一些指定位置(如第一列)上的最小值所在位置的旁边位置上的值
说明:第1列中最小值是2,所在位置7,旁边位置是8,对应的值为6
具体规则设定:
R-=abcdf
R5 = $(最小值下标(1 , 4 , 7) + 1 )
(注:如有好几个值都符合时,取排在前面的,先到先得)
延伸:除了返回最大值、最小值所在位置外,还可以是
最接近于某个固定数字所在位置,如5
最接近于某个动态数字所在位置,如最接近位置上1上的值($1)
这些位置函数,再结合位置偏移函数可实现强大又直观的快速跳转能力
例:根据某个位置上的值的奇偶性来动态选择
说明:当$2是奇数时,选择$3, 是偶数时,选择$9
具体规则设定:
R-=abcdf
R5 =如果(是奇数($2)==1 , $3, $9 )
延伸:if函数中的条件,也可以是某两个或多个数的相加或其它运算后的奇偶性
再加改进,if函数中$3,$9也可以用任何数值表达式替换
例:通过匹配表实现数字到数字、甚至数字到字符的无序转化。
在各个运算过程当中,用户都可以把一些对自己有意义的、容易记的特殊数字,进行无序转化,如只把1、3、7三个数字转成5,其余数字则都转成2,可以建立如下匹配表,然后再进行和其它表达式的运算。实现此方法可以用if函数、匹配函数等等,限于篇幅,不列表达式。
通过二维表转换:主要是为有特殊需求的用户群体
如用户使用矩阵位置1,2相加后的个位数作为列坐标(蓝色)
使用位置4,5上的奇数个数作为行坐标(红色),则上面数字矩阵时,所对应的密码应该为e,
这里巧妙地利用了大小写,和对自己有特殊意义的字母组合,扩展了输出的值范围。一位输出从10个状态变成了28个状态(a重复了)。
例:移动函数(水平或垂直)
以第5位为基点,垂直循环上移的步数为:第1位数除3后的余数
说明:第1位为2,除3的余数也为2,所以位置5上跳2格到位置8
具体规则设定:
R-=abcdf
R5 = $( 循环上移(5, $1 % 3 )) = $( 8 ) = 3
延伸:基点位置,除了是固定外,也可以是动态得到,如通过前面的变址得到。
水平移动和垂直移动函数可组合使用,实现到任一位置上的快速跳转。
实现双向认证:用户可通过干预数字矩阵的生成,无须依赖其它手段,就可以实现用户对服务器身份的隐式认证,防止被钓鱼
例:用户指定第1位的值由第2,3位相乘得到,如图
说明:左图是真网站发送过来的,而右图则是钓鱼欺诈网站发送的
规则 $1 = $2 * $3
为便于理解,以下是一些函数的逐步演变过程。
部分函数循序渐进变化路线
定址和变址
可以看出,它的强大灵活之处在于,表达式中的数字均可以由其它数值表达式进行层层替换,各种函数都可以相互组合,结合图形方便记忆,单向赋值方式既利于规则保护,又利于速算。
写在结尾:在越来越高度依赖于手机等硬件的时代,用户自身的作用越来越被边缘化,而且多数用户的各种各样的账号的密码其实都是一样的,随着进行各种支付宝、微信、网银、刷卡等操作时,也潜藏和累积着各种风险。一觉醒来,财产不翼而飞也不是没有可能。
身份验证技术一直以来和大多数人都是密切相关的,因此,它的发展进步也将是影响广泛而又深远的。
- 这是一种真正意义上的“放心密码”,规则只在心里,不输出,甚至连服务器也不知情,它是传统静态密码的升级。它也不存在人脸、虹膜、指纹识别等静态生物识别技术所固有的缺陷,如易复制、不可更改、非100%识别率、严重依赖外部硬件等。
- 它可以比传统密码更好记,却又比它更安全
- 在高科技犯罪不断涌现的未来,它拥有良好的抗未知风险和漏洞的能力
三类密码技术的主要特点是:
- 生物识别技术:信息暴露于外,也存放于外
- 动态密码:信息隐藏于内
- 静态密码:信息平时藏于内,用时露于外
它尤其适合以下几类用户:
关心安全的人:借助简单又单向的运算规则,实现了速算又安全。以免过度依赖可能存在潜在未知风险的外部设备,进行思维认证,防窥视,重要的交易和设定须经由大脑知情的用户。
想统一密码的人:想将各种账户的密码安全地统一起来,不再混淆,只需牢记一个,就能到处使用的用户
想更便捷的人:在未来,将更倾向于无需手机、无银行卡的空付、空取,如果说未来的静态生物识别技术(如刷脸识别,指纹,虹膜)可使我们摆脱对手机等设备的依赖,空身零携带就可实现小金额快速支付的话,那么再结合它就可以更安全地实现大金额的支付和取现。它可以使我们在应用这些新技术带来的便利时,也能保持很强的抗未知风险的能力。
如果还想做进一步地了解,如:
- (应用方面)了解更多函数,更多灵活的用法
- (应用方面)如何设计易记、又超高安全规则的一些建议
- (应用方面)如何实现无运行期异常的低门槛设计
- ( 技术方面)如何实现用户的规则可以只唯一地放在用户心里,连服务器也不知情的原理
- ( 技术方面)预生成模式中,如何对抗不法程序对各种用户名的存在性进行嗅探
可以与作者联系:张吕全
微信(可通过QQ号加) : zhang_lvquan 邮箱: [email protected]
QQ:99296575 请注明与动态密码相关(欢迎转载,请保留出处)
附加一些java常用的关键字:
synchronized reentrantlock 的区别 implements stringbuffer和stringbuilder的区别
继承Thread类 和 实现Runnable接口 hashCode()和equals()方法区别,Array和ArrayList,LinkedList System.gc()和Runtime.gc() HashSet和TreeSet区别
PreparedStatement比Statement CallableStament.prepareCall(); ServletRequest session和cookie区别