一种新口令认证方法和装置的制作方法

文档序号:7768933阅读:194来源:国知局
专利名称:一种新口令认证方法和装置的制作方法
技术领域
本发明涉及信息网络安全技术领域,特别是一种新口令认证方法和装置。
技术背景
信息安全是指通过保护应用、数据或者设备,使其免受非法授权的访问或使用,以 达到保护信息和资源、保护用户及其私有性等目的,并确保在各种攻击下,应用和数据在传 输过程中的安全性。数据安全作为信息安全最基本、最重要的环节,一直是人们关注的焦 点。重要信息流逝,将给个人、企业带来损失,因此对重要信息进行加密,具有非凡的意义。 随着信息安全要求的不断提高,随之而来的是层出不穷的各种口令加密算法,比如DES等, 再结合不可逆的哈希算法以生成加密密钥,比如MD4等,这是目前主流软件的口令加密方 式,而加密密钥的生成是这个过程中最重要的一个步骤,只要保持传输过程中加密密钥的 安全性以及口令的安全性,就可以保证加密数据的安全性。随着科技的不断发展,各种攻击 手段也随之跟进,因此对于哈希算法的安全性要求也随之提高。
就目前的技术水平而言,想要逆推现在的主流哈希算法或者利用CPU的计算能力 来穷举哈希算法以取得密钥,显得有点力不从心,要花费的代价甚至超过数据本身的价值。 然而并行解析技术的的出现改变了这一局面。
目前主流软件的信息加密存在一定的缺陷,口令穷举的数据路径具有高度的并行 性,并行技术已然对传统口令学构成了巨大的威胁。对于这类简单的加密算法要解析口令, 将是瞬间的事情,而口令一旦泄露了,数据就没有安全性可言。如果采用复杂的加密过程, 比如增加哈希算法的循环轮次,虽然可以从一定程度上增加算法的抗并行平台解析性,但 是也会增加数据解密的性能损耗,甚至使实时性得不到保证。下面分析几款主流软件加密 算法缺陷
NT Hash、MD5、SHAl等哈希算法,属于计算密集型算法,利用并行技术可轻易对其 进行技术,因此直接利用哈希算法加密用户口令的软件,其安全性已大幅降低,比如QQ09 的用户口令就是采用若干次MD5+TEA的方式进行加密,属于计算密集型,其在并行平台上 的口令解析速度已达10亿/s的数量级。
PDF的用户口令采用50次MD5+20次RC4的方式加密,它通过少许循环增加计算量 以增强软件安全性,但由于RC4只采用大小为256个字节的密钥调度数组,也可轻易得到并 行加速,从而导致安全性降低。
Office07采用5万次SHA1+AES的方式加密,而Office采用10万次SHA1+AES的 方式,它们都是通过增加哈希轮次以增加软件的安全性,该方式哈希算法比较单调,数据并 行度比较高,OfficelO则减半,但解密时间却增倍。
文档压缩软件WinRAR是另外一个通过增加哈希轮次以增加软件安全性的典型, 单纯增加哈希轮次虽然可从较大程度上保证安全性,但同时会影响解密的实时性。
存储加密软件TrueCrypt的加密有3种哈希+8种加密算法供用户选择,算法虽然 比较多样,但是一旦算法被确定下来,其数据路径也具有高度的并行性,也可以轻易被并行平台解析。据了解,TrueCrypt中RIPEMD160+AES的加密方式通过并行加速。 发明内容
本发明的目的在于克服现有技术之不足,提供一种能有效抵抗口令解析的新口令 认证机制,在算法过程中安插了不同的哈希算法选择,不同的口令,其数据路径可能完全不 一样,可以有效打破并行平台的多线程机制。该算法过程不仅有大量的片外存储器存取操 作(Box读写),能在数据读写上造成很大的延迟,有效遏制了并行平台的数据吞吐率,又通 过循环次数为N的主循环体增加计算量,从而致使并行平台口令解析无法进行,而且最后 输出的密钥也是一个哈希值,同样具有哈希算法的安全性。
本发明提供了一种新口令认证方法,包括
步骤1,接收输入的原始口令;
步骤2,生成随机值hit值;
步骤3,根据所述随机值Mlt值和所述原始口令(Password),通过哈希算法生成 初始密钥Hash。;具体为=Hashtl = H。(salt+password),记Hash。的大小为Ltl个字节;
步骤4,用Hash。通过字符串转换,生成初始密钥向量D,HaShQ的大小为Ltl个字节, D是一个大小为2*1^个字节的4维向量数组[X,y, z, w];
步骤5,根据初始密钥Hashtl,通过混合逻辑填充,初始化密钥盒Box,
步骤6,根据初始化密钥盒Box和初始密钥向量D,通过逻辑运算,生成新密钥向量 D,;
步骤7,取新密钥向量D’为最终密钥key。
优选地,所述步骤6之后还包括步骤
根据所述初始密钥向量D和所述初始化密钥盒Box,通过对初始化密钥盒Box进行 混合逻辑填充,生成新的密钥盒Box ;
之后还包括循环计算步骤,具体包括
设置循环上限为N ;
选择哈希算法;
在每一次循环计算中,根据当前密钥向量D’n的第一个字节D’n(0)选择不同的哈 希算法;所述η为大于或等于零,小于N的整数,表示当前循环轮次,N为循环上限,当η = 0时,D’ ^为所述步骤6所生产的密钥向量D’ ;
根据当前循环第η次和当前密钥向量D’n,构造下一轮循环过程密钥Hashn+1 ;具体 为:Hashn+1 = H(n+D,n), η e
根据Hashn+1生成下一轮循环过程密钥向量Dn+1,具体为Dn+1 = Convert_to_ String(Hashn+1);所述Convert_to_String为字符串向量转化函数;
根据下一轮循环过程密钥向量Dn+1和新的密钥盒Box,通过逻辑运算,生成下一轮 循环过程新密钥向量D’n+1 ;
所述步骤7 “取新密钥向量D’n+1为最终密钥key”,为最后一次循环η = N-I时计 算得到的新密钥向量D’n。
本发明还公开了一种新口令认证装置,包括
接收模块,用于接收输入的原始口令;
随机值生成模块,用于生成随机值,确保同一口令、同一数据在不同时刻最终的加 密信息不一样;
初始密钥生成模块,与接收模块和随机值生成模块相连,用于根据随机值和原始 口令,通过哈希算法生成初始密钥Hash。;
初始密钥向量生成模块,与初始哈希值生成模块相连,用于用Hash。通过字符串转 换,生成初始密钥向量D ;
初始密钥盒生成模块,与初始密钥生成模块相连,根据该模块生成的初始密钥 Hash0,通过混合填充,初始化密钥盒Box ;
新密钥向量生成模块,与所述初始密钥向量生成模块和所述初始密钥盒Box生成 模块相连,用于根据初始化密钥盒Box和初始密钥向量D,通过逻辑运算,生成新密钥向量 D,;
最终密钥生成模块,与所述新密钥向量生成模块相连,用于取出新密钥向量D’,作 为最终密钥key输出。
优选地,为了达到更好的效果,还包括新密钥盒Box生成模块和循环计算模块;
新密钥盒Box生成模块,与初始密钥向量生成模块和初始密钥盒Box生成模块相 连,用于根据初始密钥向量D和初始化密钥盒Box,通过对初始化密钥盒Box进行自身逻辑 填充,生成新的密钥盒Box;
循环计算模块,与所述新密钥盒Box生成模块、新密钥向量生成模块相连,用于根 据设置的循环次数N进行循环计算,每次循环中,选择哈希算法,根据当前循环第η次和当 前密钥向量D’ η,构造下一轮循环过程密钥Hashn+1,并根据Ha shn+1生成下一轮循环过程密 钥向量Dn+1,并根据下一轮循环过程密钥向量Dn+1和密钥盒Box,生成下一轮循环过程新密 钥向量D’ n+1,并把最后一环节的循环计算得到的D’ N作为最终密钥向量发送给最终密钥生 成模块;
所述η为大于或等于零,小于N的整数,表示当前循环轮次,N为循环上限,当η = 0时,D’ ^为所述新密钥向量生成模块所生产的密钥向量D’。
本发明的有益效果是,利用随机&ilt值,增加了算法过程的随机特性,安插了不 同的哈希算法选择,使不同口令具有不同的数据路径,从而打破平行平台的多线程机制;哈 希算法的输入数据块生成方式以及哈希的数据输入方式;算法通过一个主循环体实现密钥 盒Box、哈希算法、哈希输入数据的不断更新,增加适当的内存存取次数以及计算量,遏制了 并行平台的数据和指令吞吐率,从而致使并行平台口令解析无法进行;整个算法过程是不 可逆的,算法最后的输入时一个哈希值,同样具有算法的安全性。非法授权者在不知道口令 的情况下,想要尝试口令以取得机密数据,几乎是不可能的。该算法的安全性极高,弥补了 当前软件加密的安全缺陷,可抵抗口令暴力解析,能有效保护用户口令和数据的安全性。


图1为本发明的一种新口令认证方法流程示意图;具体实施方式
参见图1所示,本发明的一种新口令认证方法,包括
步骤1,接收输入的原始口令;
步骤2,生成随机值,口令学上习惯称之为Mlt值;
本步骤中,生成随机值&ilt值,确保即使同一口令、同一数据,不同时刻输出的加 密数据不一样,增加该方法的随机性。
步骤3,根据随机值Mlt值和原始口令(Password),通过哈希算法生成初始密钥 Hash0;
本步骤中,随机值Mlt值和原始口令(Password)为输入,选取现有的哈希算法中 的一种,当成默认哈希算法H。,H0可以为MD5、SHAl, RIPEMD160等算法。具体为=Hashtl = H0(salt+password);记 Hash。的大小为 L。个字节。
步骤4,用Hash。通过字符串转换,生成初始密钥向量D ;
本步骤具体为把Hash。转为字符串向量,记为D,则D是一个大小为2*LQ个字节的 4 维向量数组[x,y,z,w],每一维占用一个字节D = Convert_to_String(Hash0);这里 Convert_ to_String是实现字符串向量转化的函数接口,可自行实3 ,其输入为Hash。,输出为D。
比如=Hash0 = 0x11223300,L0 = 4 个字节;则
D = Convert_to_String (Hash0)
= Convert_to_String (0x11223300)
=〃 11223300〃
D 变为 8 个字节,且[‘1,,‘1,,‘2,,‘2,]和[‘3,,‘3,,‘0,,‘0,]分别组成 2个4维向量。
步骤5,根据初始密钥Hashtl,通过混合填充,初始化密钥盒Box ;
这里,由于Box是通过密钥生成的,故常称之为密钥盒。
本步骤中,密钥盒Box初始化以初始密钥HashO和Box自身为输入,进行填充混 合,定义Box如下unsigned int Box [4] [256] 0具体混合填充方法如下,其中%表示求余运算,&表示按位与运算,“表示异或运算
权利要求
1.一种新口令认证方法,其特征在于,包括如下步骤 步骤1,接收输入的原始口令;步骤2,生成随机值Mlt值;步骤3,根据所述随机值Mlt值和所述原始口令,通过哈希算法生成初始密钥Hash。; 具体为HashQ = HQ(salt+password),记 Hash。的大小为 Ltl 个字节;步骤4,用Hash。通过字符串转换,生成初始密钥向量D,HaShQ的大小为Ltl个字节,D是 一个大小为2礼。个字节的4维向量数组[X,y,ζ, w];步骤5,根据初始密钥Hashtl,通过混合逻辑填充,初始化密钥盒Box,步骤6,根据初始化密钥盒Box和初始密钥向量D,通过逻辑运算,生成新密钥向量D’ ;步骤7,取新密钥向量D’为最终密钥key。
2.根据权利要求1所述的方法,其特征在于,所述步骤6之后还包括步骤根据所述初始密钥向量D和所述初始化密钥盒Box,通过对初始化密钥盒Box进行混合 逻辑填充,生成新的密钥盒Box ; 还包括循环计算步骤,具体包括 设置循环上限为N; 选择哈希算法;在每一次循环计算中,根据当前密钥向量D’n的第一个字节D’n(0)选择不同的哈希算 法;所述η为大于或等于零,小于N的整数,表示当前循环轮次,N为循环上限,当η = 0时, 为所述步骤6所生产的密钥向量D’ ;根据当前循环第η次和当前密钥向量D’ η,构造下一轮循环过程密钥Hashn+1 ;具体为 Hashn+1 = H(n+D,n), η e
;根据初始密钥Hash0,通过混合逻辑填充,初始化密钥盒Box,根据初始化密钥盒Box和初始密钥向量D,通过逻辑运算,生成新密钥向量D’;取新密钥向量D’为最终密钥key。该方法的安全性极高,弥补了当前软件加密的安全缺陷,可抵抗口令暴力解析,能有效保护用户口令和数据的安全性。
文档编号H04L9/32GK102045169SQ20101059038
公开日2011年5月4日 申请日期2010年12月10日 优先权日2010年12月10日
发明者张永光, 张雪峰, 汤伟宾 申请人:厦门市美亚柏科信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1