一种实现口令安全保护的方法及系统的制作方法

文档序号:7897539阅读:865来源:国知局
专利名称:一种实现口令安全保护的方法及系统的制作方法
技术领域
本发明涉及信息安全领域,特别涉及一种实现口令安全保护的方法及系统。
技术背景
在现代生活中,口令的应用越来越广泛,例如电子邮箱的密码、登陆某网站的登 陆密码、网络银行的交易密码、文件加密密码及硬件设备密码等都属于口令的范畴。在上 述应用中,口令用于对使用者或用户的身份是否合法验证,进而对合法的使用者或用户赋 予相应的操作权限;比如当使用者或用户要登录某个系统或网站时,某个系统或网站在 验证使用者或用户输入的口令正确的情况下,所述系统或网站确认该使用者或用户为合法 的,并赋予其相应的权限,否则确认该使用者或用户是非法的。因此,对口令的安全保护至 关重要。
现有的口令验证方法包括将用于判定用户合法性的口令或者加密后的口令传送 给用于进行口令验证的服务器;用于进行口令验证的服务器比较来自用户端的口令或加密 后的口令与保存于服务器端的口令是否一致,如果一致,则通过口令验证,否则口令验证失 败。
为了防止用于判定用户合法性的口令被窃取,可以通过信道加密等技术来保证口 令的安全;虽然信道加密等技术能够保证口令在传输过程的安全,但是无法抵御针对口令 的字典攻击。字典攻击为根据口令可能包含的字符串,逐一验证所述字符串的各种组合方 式以获得正确的口令的方法。目前,对于口令的字典攻击的难度主要取决于口令的复杂程 度;口令越复杂,字典攻击所需的时间越长。
在口令的实际应用中,由于使用者或用户往往需要记住自己的口令,使用者或用 户设置的口令达不到抵御字典攻击的复杂程度,这就需要对口令的安全进行进一步的保 护。发明内容
有鉴于此,本发明的目的在于提供一种实现口令安全保护的方法,该方法能够使 口令抵御字典攻击,提高安全性。
本发明的目的在于提供一种实现口令安全保护的系统,该系统能够使口令抵御字 典攻击,提高安全性。
为达到上述目的,本发明的技术方案具体是这样实现的
一种实现口令安全保护的方法,该方法包括
A、根据口令设置阶段设置的口令进行η次哈希运算获得第一口令;所述η为小于 最大次数N的自然数;所述N为大于1的自然数;
B、对接收到的待验证口令进行m次哈希运算获得第二口令;
C、在所述第二 口令与所述第一口令一致时,确认所述待验证口令正确;在所述第 二 口令与所述第一口令不一致时,判断所述m是否小于等于最大次数N,如果是,则将m值增1后执行步骤B,否则确认待验证的口令错误。
较佳地,所述步骤A与所述步骤B之间进一步包括
根据组合条件将所述第一口令与所述η进行组合,将组合后的数据进行哈希运算 获得第三口令;
步骤B所述在所述第二口令与所述第一 口令一致之后,进一步包括
根据组合条件将所述第二口令与所述m进行组合,对组合后的数据进行哈希运算 获得第四口令;在所述第四口令与所述第三口令一致时,确认所述待验证口令正确;在所 述第四口令与所述第三口令不一致时,确认所述待验证口令错误。
上述方法中,步骤A所述对口令设置阶段设置的口令进行η次哈希运算获得第一 口令包括
对口令设置阶段设置的口令进行第一次哈希运算,将第一次哈希运算的结果作为 第二次进行哈希运算的输入数据,直至进行η次哈希运算,将第η次哈希运算获得的结果作 为第一口令。
上述方法中,步骤B所述对接收到的待验证口令进行m次哈希运算获得第二口令 包括
对接收到的待验证口令进行第一次哈希运算,将第一次哈希运算的结果作为第二 次进行哈希运算的输入数据,直至进行m次哈希运算,将第m次哈希运算获得的结果作为第二口令。
上述方法中,步骤A所述对口令设置阶段设置的口令进行η次哈希运算获得第一 口令包括
对口令设置阶段设置的口令进行第一次哈希运算,对第一次哈希运算的结果进行 变换,将变换后的数据作为第二次进行哈希运算的输入数据,将每次哈希运算的结果进行 变换后的数据作为下一次进行哈希运算的输入数据,直至进行η次哈希运算,将第η次哈希 运算的结果作为第一口令。
上述方法中,步骤B所述对接收到的待验证口令进行m次哈希运算获得第二口令 包括
对接收到的待验证口令进行第一次哈希运算,对第一次哈希运算的结果进行变 换,将变换后的数据作为第二次进行哈希运算的输入数据,将每次哈希运算的结果进行变 换后的数据作为下一次进行哈希运算的输入数据,直至进行m次哈希运算,将第m次哈希运 算的结果作为第二口令。
上述方法中,所述组合条件为将多个数据按照顺序前后拼接成一个数据或对多个 数据进行算术计算获得一个数据。
一种实现口令安全保护的系统,该系统包括
口令设置模块,根据输入的设置第一口令的触发信息,输出第一口令生成指令至 口令加密模块;保存口令加密模块输出的第一口令、预设次数η和预设最大次数N ;所述第 一口令生成指令携带有预设次数η及口令设置阶段设置的口令;所述η为小于最大次数N 的自然数;所述N为大于1的自然数;
口令验证模块,根据输入的验证第二口令的触发信息,输出携带待验证口令及哈 希运算次数m的第二口令生成指令至口令加密模块;所述口令验证模块接收口令加密模块6输出的第二 口令,从口令设置模块读取第一 口令及预设最大次数N,判定第二 口令与第一 口 令一致时,确定待验证口令正确;判定第二口令与第一口令不一致时,判断哈希运算次数m 是否小于等于预设最大次数N,如果小于,则将哈希运算次数m增1后,输出携带待验证口令 和哈希运算次数m的第二口令生成指令至口令加密模块,否则确定待验证口令错误;
口令加密模块,根据第一 口令生成指令,对口令设置阶段设置的口令进行η次哈 希运算获得第一 口令,输出第一 口令至口令设置模块;根据第二口令生成指令,对待验证口 令进行m次哈希运算获得第二口令,输出第二口令至口令验证模块。
较佳地,该系统进一步包括口令组合模块;
所述口令设置模块进一步根据输入的设置第三口令的触发信息,输出第三口令生 成指令至所述口令组合模块,保存所述口令组合模块输出的第三口令;输出验证第四口令 的触发信息至所述口令验证模块;所述第三口令生成指令携带有预设次数η和第一 口令; 所述验证第四口令的触发信息携带有第三口令;
所述口令验证模块根据验证第四口令的触发信息,在判定第二口令与第一口令一 致之后,进一步输出第四口令生成指令至所述口令组合模块;根据所述口令组合模块输出 的第四口令和接收到的第三口令,判定第四口令与第三口令一致时,确定待验证口令正确, 否则待验证口令不正确;所述第四口令生成指令携带有第二口令及次数m;
所述口令组合模块根据第三口令生成指令及预设的组合条件,对第一口令和预设 次数η进行组合,对组合后的数据进行哈希预算获得第三口令,输出第三口令至所述口令 设置模块;根据所述口令验证模块输出的第四口令生成指令及预设的组合条件,对第二口 令和预设次数m进行组合,对组合后的数据进行哈希运算获得第四口令,输出第四口令至 所述口令验证模块。
上述系统中,所述口令加密模块包括
第一 口令生成单元,根据第一 口令生成指令,对口令设置阶段设置的口令进行第 一次哈希运算,将第一次哈希运算的结果作为第二次进行哈希运算的输入数据,直至进行η 次哈希运算,将第η次哈希运算获得的结果作为第一口令,输出第一口令至口令设置模块;
第二 口令生成单元,根据第二口令生成指令,对接收到的待验证口令进行第一次 哈希运算,将第一次哈希运算的结果作为第二次进行哈希运算的输入数据,直至进行m次 哈希运算,将第m次哈希运算获得的结果作为第二口令,输出第二口令至口令验证模块。
上述系统中,所述口令加密模块包括
第一 口令生成单元,根据第一 口令生成指令,对口令设置阶段设置的口令进行第 一次哈希运算,对第一次哈希运算的结果进行变换,将变换后的数据作为第二次进行哈希 运算的输入数据,将每次哈希运算的结果进行变换后的数据作为下一次进行哈希运算的输 入数据,直至进行η次哈希运算,将第η次哈希运算的结果作为第一 口令,输出第一 口令至 口令设置模块;
第二 口令生成单元,根据第二口令生成指令,对接收到的待验证口令进行第一次 哈希运算,对第一次哈希运算的结果进行变换,将变换后的数据作为第二次进行哈希运算 的输入数据,将每次哈希运算的结果进行变换后的数据作为下一次进行哈希运算的输入数 据,直至进行m次哈希运算,将第m次哈希运算的结果作为第二 口令,输出第二口令至口令 验证模块。
由上述的技术方案可见,本发明提供了一种实现口令安全保护的方法及系统,对 口令设置阶段设置的口令进行预设η次哈希运算获得第一口令;在口令验证阶段,采用相 同的哈希算法,对待验证的口令逐次进行哈希运算,且在每次哈希运算之后,将哈希运算结 果与第一口令进行比较,在哈希运算结果与第一口令一致,且哈希运算次数m小于最大次 数N时,判定待验证口令为正确口令;否则,对待验证口令进行N次哈希运算后,哈希元算 结果仍与第一口令不一致,则判定待验证口令错误。采用本发明的方法及系统,当对口令进 行字典攻击时,每次判定字典攻击提供的口令为错误口令的时间至少为N次哈希运算的时 间,这样增加了字典攻击时大量错误口令验证的时间成本,增强了口令抵御字典攻击的能 力,提高口令的安全性。


图1为本发明实现口令安全保护的方法第一实施例的流程图。
图2为本发明实现口令安全保护的方法第二实施例的流程图。
图3为本发明实现口令安全保护的系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例, 对本发明进一步详细说明。
本发明提供了一种实现口令安全保护的方法及系统;对口令设置阶段设置的用 作验证的口令进行η次哈希运算获得第一 口令,以增加用于验证的第一口令的复杂性;在 口令验证阶段,对客户端提供的待验证的口令同样进行哈希运算,只不过是以次数递增的 方式逐次进行哈希运算,且在每次哈希运算后,将哈希运算结果与第一口令进行比较,在预 设最大次数N之内能够得到与第一口令一致的哈希运算结果,则认为待验证的口令是正确 的,否则,确定待验证的口令是错误的;通过设置一最大次数N,来增强口令抵御字典攻击 的能力。
图1为本发明实现口令安全保护的方法第一实施例的流程图。现结合图1,对本发 明第一实施例的方法进行说明,具体如下
步骤101 对口令设置阶段设置的口令进行η次哈希运算获得第一口令;
根据预设的次数η及口令设置阶段设置的的口令,对口令设置阶段设置的口令进 行η次哈希运算,将η次哈希运算的结果作为第一 口令。预设的次数η小于预设最大次数 N;所述N为自然数。次数η可为一随机数。为了在抵御字典攻击的同时减小正确口令的运 算次数,次数η在[1,Ν]上的分布符合均值为a,方差为b的正态分布;所述a可选择靠近1 一侧的数值,所述b可根据a进行设置,以使得次数η在概率上远小于N而同时在范围[1, N]边界的分布又不至太小,比如Ν为105,验证正确口令所需的哈希运算次数η在[1,Ν]上 的分布为均值5000,方差为20000的正态分布。
哈希运算可为常用的哈希算法,例如MD5、SHAl、SHA256等算法,也可以根据安全 性的需要自定义哈希算法,在此不再对哈希算法的具体内容进行赘述。
在设置口令阶段,对口令设置阶段设置的口令进行η次哈希运算获得第一口令包 括对口令设置阶段设置的口令进行第一次哈希运算,将第一次哈希运算的结果作为第二次进行哈希运算的输入数据,直至进行η次哈希运算,将第η次哈希运算获得的结果作为第一口令。
或者对口令设置阶段设置的口令进行η次哈希运算获得第一口令包括对口令设 置阶段设置的口令进行第一次哈希运算,对第一次哈希运算的结果进行变换,将变换后的 数据作为第二次进行哈希运算的输入数据,将每次哈希运算的结果进行变换后的数据作为 下一次进行哈希运算的输入数据,直至进行η次哈希运算,将第η次哈希运算的结果作为第 一口令。上述变换方法可采用现有的各种数据变换方法,比如拼接、逆序、算术计算等等, 在此不再对具体的变换方法进行赘述。
步骤102 对待验证口令进行m次哈希运算获得第二口令;
在验证口令阶段,对次数m的初始值为1,对输入的待验证口令进行m次哈希运算, 将m次哈希运算的结果作为第二 口令。
该步骤中的哈希运算与步骤101的哈希运算相同,具体包括对接收到的待验证 口令进行第一次哈希运算,将第一次哈希运算的结果作为第二次进行哈希运算的输入数 据,直至进行m次哈希运算,将第m次哈希运算获得的结果作为第二口令。或者,对接收到 的待验证口令进行第一次哈希运算,对第一次哈希运算的结果进行变换,将变换后的数据 作为第二次进行哈希运算的输入数据,将每次哈希运算的结果进行变换后的数据作为下一 次进行哈希运算的输入数据,直至进行m次哈希运算,将第m次哈希运算的结果作为第二 口 令。本步骤中的变换方法需要与步骤101的变换方法一致,比如,步骤101采用的变换方法 为逆序,则步骤102采用变换方法也为逆序。
步骤103 判断第二口令是否与第一口令一致,如果是,执行步骤107,否则执行步 骤 104 ;
步骤104 判断次数m是否小于等于预设最大次数N,如果是,执行步骤105,否则 执行步骤106 ;
如果第二口令和第一 口令不相同,则需要进一步判断此时已进行的哈希运算的次 数m是否小于等于哈希运算的预设最大次数N。
该步骤中,实际上是在判断待验证口令是否为错误的口令,也是抵御字典攻击的 关键步骤;预设最大次数N值越大,每次验证错误口令的运算量就越大,从而验证时间就越 长,抵御字典攻击的能力也就越强;同时,预设最大次数N也是确定正确口令的哈希运算 次数的上限值,这样,通过正确口令验证时间的有限增加,带来抵御字典攻击能力的大幅提升。
步骤105 将次数m增1,之后执行步骤102 ;
将哈希运算次数m增1,以便在验证口令的过程中,通过逐次的哈希运算更准确地 判断待验证密钥的正确性,同时,增强口令抵御字典攻击的能力。
步骤106 确定待验证口令错误,之后执行步骤108 ;
在哈希运算次数m大于预设最大值N的情况下,确定待验证口令错误。
步骤107 确定待验证口令正确;
如果第二口令和第一 口令相同,则确定待验证的口令为正确的口令。
步骤108 结束。
图2为本发明实现口令安全保护的方法第二实施例的流程图。现结合图2,对本发明的方法的第二实施例进行说明,具体如下
本实施例的步骤203至步骤206的具体内容与第一实施例的步骤102至步骤105 的内容相同,在本实施例中不再赘述。
步骤201 对口令设置阶段设置的口令进行η次哈希运算获得第一口令;
本实施例的步骤201与第一实施例的步骤101相同,在此不再赘述。
步骤202 对由次数η及第一口令组合后的数据进行哈希运算获得第三口令;
根据预设的组合条件,对次数η及第一 口令进行组合,对组合后的数据进行哈希 运算获得第三口令。组合条件可为将多个数据按照顺序前后拼接成一个数据,比如次数η 位于第一口令的数据之前,或位于第一口令的数据之后;或者组合条件为对多个数据进行 算术计算获得的一个数据。
步骤203 对待验证的口令进行m次哈希预算获得第二口令;
步骤204 判断第二口令是否与第一口令一致,如果是,执行步骤207,否则执行步 骤 205 ;
步骤205 判断次数m是否小于等于预设最大次数N,如果是,执行步骤206,否则 执行步骤210 ;
步骤206 将次数m增1,之后执行步骤203 ;
步骤207 对由次数m及第二口令组合后的数据进行哈希运算获得第四口令;
根据预设的组合条件,对次数m及第二 口令进行组合,对组合后的数据进行哈希 运算获得第三口令。组合条件的内容与步骤202所述的组合条件的内容相同,在此不再赘 述。
该步骤对第一口令和次数η组合后的数据进行再一次的哈希运算,是为了防止错 误口令误判为正确口令的极小概率事件的发生,即使发生哈希碰撞,即错误的口令在进行 多次哈希运算后的结果碰巧等于第一 口令,也可以通过加入次数m进行的后续验证来防止 误判,从而降低由哈希运算结果碰撞造成的误判的可能性。
步骤208 判断第四口令是否与第三口令一致,如果是,执行步骤209 ;否则,执行 步骤210 ;
步骤209 确定待验证口令正确;
根据第四口令是否与第三口令相同,可以排除上述误判情况的发生,提高了安全 性。
步骤210 确定待验证口令错误;
步骤211:结束。
图3为本发明实现口令安全保护的系统的结构示意图。现结合图3,对本发明实现 口令安全保护的系统进行说明,具体如下
本发明实现口令安全保护的系统包括口令设置模块301、口令加密模块302和口 令验证模块303。
口令设置模块301连接口令加密模块302和口令验证模块303,在设置口令阶段触 发口令加密模块302获得第一口令;根据外部输入的设置第一 口令的触发信息,输出第一 口令生成指令至口令加密模块302 ;保存第一口令、预设次数η和预设最大次数N。第一口 令生成指令携带有预设次数η及口令设置阶段设置的口令;11为小于最大次数N的自然数;10N为大于1的自然数。口令设置模块301可将接收到的字符串作为口令设置阶段设置的口 令,或对接收到的字符串进行变换,将变换后的字符串作为口令设置阶段设置的口令。本发 明口令设置阶段设置的口令是用来验证输入的待验证口令正确与否的依据。
口令加密模块302连接口令设置模块301和口令验证模块303,采用相同的哈希算 法对接收到的数据进行哈希运算。口令加密模块302根据第一口令生成指令,对接收到的 口令设置阶段设置的口令进行η次哈希运算获得第一口令,输出第一 口令至口令设置模块 301 ;根据口令验证模块303输出的第二口令生成指令,对接收到的待验证口令进行m次哈 希运算获得第二口令,输出第二口令至口令验证模块303。
口令验证模块303在验证口令阶段,触发口令加密模块302生成第二口令;根据 外部输入的验证第二口令的触发信息,输出第二口令生成指令至口令加密模块302 ;第二 口令生成指令中携带有待验证口令和次数m ;所述次数m的初始值为1。口令验证模块303 接收到第二 口令后,从口令设置模块301读取其暂存的第一口令及预设最大次数N,判定第 二口令与第一 口令一致时,确定待验证口令正确;判定第二口令与第一 口令不一致时,进一 步判断哈希运算次数m是否小于等于预设最大次数N,如果小于,则将哈希运算次数m增1 后,输出携带待验证口令和哈希运算次数m的第二口令生成指令至口令加密模块302,否则 确定待验证口令错误。
为了进一步降低误判的可能性,提高抵御字典攻击的能力及安全性,本发明的系 统还进一步包含一 口令组合模块304 ; 口令组合模块304连接口令设置模块301和口令验 证模块303。
口令设置模块301进一步根据外部输入的设置第三口令的触发信息,在生成第一 口令之后,输出第三口令生成指令至口令组合模块304 ;保存口令组合模块304输出的第三 口令;输出验证第四口令的触发信息至口令验证模块303。第三口令生成指令携带有预设 次数η和第一口令;验证第四口令的触发信息携带有第三口令。
口令验证模块303根据验证第四口令的触发信息,在判定第二口令与第一 口令一 致之后,进一步输出第四口令生成指令至口令组合模块304 ;根据口令组合模块304输出的 第四口令和接收到的第三口令,判定第四口令与第三口令一致时,确定待验证口令正确,否 则待验证口令不正确。其中,第四口令生成指令携带有第二 口令及哈希运算次数m。
口令组合模块304根据第三口令生成指令及预设的组合条件,对第一口令和预设 次数η进行组合,对组合后的数据进行哈希预算获得第三口令,输出第三口令至口令设置 模块301。口令组合模块304根据口令验证模块303输出的第四口令生成指令及预设的组 合条件,对第二口令和预设次数m进行组合,对组合后的数据进行哈希运算获得第四口令, 输出第四口令至口令验证模块303。
其中,口令加密模块302包括第一口令生成单元3021和第二口令生成单元3022。
第一口令生成单元3021根据第一 口令生成指令,对口令设置阶段设置的口令进 行第一次哈希运算,将第一次哈希运算的结果作为第二次进行哈希运算的输入数据,直至 进行η次哈希运算,将第η次哈希运算获得的结果作为第一口令,输出第一口令至口令设置 模块301。
第二 口令生成单元3022根据第二口令生成指令,对接收到的待验证口令进行第 一次哈希运算,将第一次哈希运算的结果作为第二次进行哈希运算的输入数据,直至进行m次哈希运算,将第m次哈希运算获得的结果作为第二口令,输出第二 口令至口令验证模块 303。
为了提高安全性,第一口令生成单元3021和第二口令生成单元3022可进一步 将每一次哈希运算的结果进行变换,将变换后的数据作为下一次哈希运算的数据,具体如 下
第一口令生成单元3021根据第一 口令生成指令,对口令设置阶段设置的口令进 行第一次哈希运算,将第一次哈希运算的结果进行变换,将变换后的数据作为第二次进行 哈希运算的输入数据,将每次哈希运算的结果进行变换后的数据作为下一次进行哈希运算 的输入数据,直至进行η次哈希运算,将第η次哈希运算的结果作为第一口令,输出第一口 令至口令设置模块301。
第二 口令生成单元3022根据第二口令生成指令,对接收到的待验证口令进行第 一次哈希运算,将第一次哈希运算的结果进行变换,将变换后的数据作为第二次进行哈希 运算的输入数据,将每次哈希运算的结果进行变换后的数据作为下一次进行哈希运算的输 入数据,直至进行m次哈希运算,将第m次哈希运算的结果作为第二口令,输出第二 口令至 口令验证模块303。
本发明的上述较佳实施例中,在口令验证的部分,每次错误口令只有在N次哈希 运算后才能判定,通常情况下,每次正确口令验证所需执行的哈希运算次数远远小于最大 次数N,这样,使得正确口令的验证时间远小于错误口令的验证时间,既提高了口令的验证 效率,又极大地增加了字典攻击时,大量的错误口令验证的时间成本,有效地抵御了对口令 的字典攻击。本发明为了降低由于哈希运算发生碰撞导致的将错误口令误判为正确口令的 发生概率,在获得第一 口令后,进一步将第一 口令和次数η组合后的数据作为判定待验证 口令正确与否的依据,这样,只有待验证口令与第一口令相同,且次数m和次数η都正确的 情况下,才能判定待验证口令正确,进一步提高了验证结果的准确性。
以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种实现口令安全保护的方法,其特征在于,该方法包括A、根据口令设置阶段设置的口令进行η次哈希运算获得第一口令;所述η为小于最大 次数N的自然数;所述N为大于1的自然数;B、对接收到的待验证口令进行m次哈希运算获得第二口令;C、在所述第二口令与所述第一口令一致时,确认所述待验证口令正确;在所述第二口 令与所述第一口令不一致时,判断所述m是否小于等于最大次数N,如果是,则将m值增1后 执行步骤B,否则确认待验证的口令错误。
2.根据权利要求1所述的方法,其特征在于,所述步骤A与所述步骤B之间进一步包括根据组合条件将所述第一口令与所述η进行组合,将组合后的数据进行哈希运算获得 第三口令;步骤B所述在所述第二 口令与所述第一 口令一致之后,进一步包括根据组合条件将所述第二口令与所述m进行组合,对组合后的数据进行哈希运算获得 第四口令;在所述第四口令与所述第三口令一致时,确认所述待验证口令正确;在所述第 四口令与所述第三口令不一致时,确认所述待验证口令错误。
3.根据权利要求1或2所述的方法,其特征在于,步骤A所述对口令设置阶段设置的口 令进行η次哈希运算获得第一口令包括对口令设置阶段设置的口令进行第一次哈希运算,将第一次哈希运算的结果作为第二 次进行哈希运算的输入数据,直至进行η次哈希运算,将第η次哈希运算获得的结果作为第 一口令。
4.根据权利要求3所述的方法,其特征在于,步骤B所述对接收到的待验证口令进行m 次哈希运算获得第二口令包括对接收到的待验证口令进行第一次哈希运算,将第一次哈希运算的结果作为第二次进 行哈希运算的输入数据,直至进行m次哈希运算,将第m次哈希运算获得的结果作为第二 口 令。
5.根据权利要求1或2所述的方法,其特征在于,步骤A所述对口令设置阶段设置的口 令进行η次哈希运算获得第一口令包括对口令设置阶段设置的口令进行第一次哈希运算,对第一次哈希运算的结果进行变 换,将变换后的数据作为第二次进行哈希运算的输入数据,将每次哈希运算的结果进行变 换后的数据作为下一次进行哈希运算的输入数据,直至进行η次哈希运算,将第η次哈希运 算的结果作为第一口令。
6.根据权利要求5所述的方法,其特征在于,步骤B所述对接收到的待验证口令进行m 次哈希运算获得第二口令包括对接收到的待验证口令进行第一次哈希运算,对第一次哈希运算的结果进行变换,将 变换后的数据作为第二次进行哈希运算的输入数据,将每次哈希运算的结果进行变换后的 数据作为下一次进行哈希运算的输入数据,直至进行m次哈希运算,将第m次哈希运算的结 果作为第二口令。
7.根据权利要求2所述的方法,其特征在于,所述组合条件为将多个数据按照顺序前 后拼接成一个数据或对多个数据进行算术计算获得一个数据。
8.一种实现口令安全保护的系统,其特征在于,该系统包括口令设置模块,根据输入的设置第一 口令的触发信息,输出第一 口令生成指令至口令 加密模块;保存口令加密模块输出的第一口令、预设次数η和预设最大次数N ;所述第一 口 令生成指令携带有预设次数η及口令设置阶段设置的口令;所述η为小于最大次数N的自 然数;所述N为大于1的自然数;口令验证模块,根据输入的验证第二 口令的触发信息,输出携带待验证口令及哈希运 算次数m的第二口令生成指令至口令加密模块;所述口令验证模块接收口令加密模块输出 的第二口令,从口令设置模块读取第一口令及预设最大次数N,判定第二口令与第一口令一 致时,确定待验证口令正确;判定第二口令与第一口令不一致时,判断哈希运算次数m是否 小于等于预设最大次数N,如果小于,则将哈希运算次数m增1后,输出携带待验证口令和哈 希运算次数m的第二口令生成指令至口令加密模块,否则确定待验证口令错误;口令加密模块,根据第一 口令生成指令,对口令设置阶段设置的口令进行η次哈希运 算获得第一口令,输出第一口令至口令设置模块;根据第二口令生成指令,对待验证口令进 行m次哈希运算获得第二口令,输出第二口令至口令验证模块。
9.根据权利要求8所述的系统,其特征在于,该系统进一步包括口令组合模块;所述口令设置模块进一步根据输入的设置第三口令的触发信息,输出第三口令生成指 令至所述口令组合模块,保存所述口令组合模块输出的第三口令;输出验证第四口令的触 发信息至所述口令验证模块;所述第三口令生成指令携带有预设次数η和第一口令;所述 验证第四口令的触发信息携带有第三口令;所述口令验证模块根据验证第四口令的触发信息,在判定第二口令与第一口令一致之 后,进一步输出第四口令生成指令至所述口令组合模块;根据所述口令组合模块输出的第 四口令和接收到的第三口令,判定第四口令与第三口令一致时,确定待验证口令正确,否则 待验证口令不正确;所述第四口令生成指令携带有第二 口令及次数m ;所述口令组合模块根据第三口令生成指令及预设的组合条件,对第一口令和预设次数 η进行组合,对组合后的数据进行哈希预算获得第三口令,输出第三口令至所述口令设置模 块;根据所述口令验证模块输出的第四口令生成指令及预设的组合条件,对第二口令和预 设次数m进行组合,对组合后的数据进行哈希运算获得第四口令,输出第四口令至所述口 令验证模块。
10.根据权利要求8或9所述的系统,其特征在于,所述口令加密模块包括第一口令生成单元,根据第一 口令生成指令,对口令设置阶段设置的口令进行第一次 哈希运算,将第一次哈希运算的结果作为第二次进行哈希运算的输入数据,直至进行η次 哈希运算,将第η次哈希运算获得的结果作为第一口令,输出第一口令至口令设置模块;第二口令生成单元,根据第二 口令生成指令,对接收到的待验证口令进行第一次哈希 运算,将第一次哈希运算的结果作为第二次进行哈希运算的输入数据,直至进行m次哈希 运算,将第m次哈希运算获得的结果作为第二口令,输出第二口令至口令验证模块。
11.根据权利要求8或9所述的系统,其特征在于,所述口令加密模块包括第一口令生成单元,根据第一 口令生成指令,对口令设置阶段设置的口令进行第一次 哈希运算,对第一次哈希运算的结果进行变换,将变换后的数据作为第二次进行哈希运算 的输入数据,将每次哈希运算的结果进行变换后的数据作为下一次进行哈希运算的输入数据,直至进行η次哈希运算,将第η次哈希运算的结果作为第一口令,输出第一口令至口令 设置模块;第二口令生成单元,根据第二 口令生成指令,对接收到的待验证口令进行第一次哈希 运算,对第一次哈希运算的结果进行变换,将变换后的数据作为第二次进行哈希运算的输 入数据,将每次哈希运算的结果进行变换后的数据作为下一次进行哈希运算的输入数据, 直至进行m次哈希运算,将第m次哈希运算的结果作为第二口令,输出第二口令至口令验证 模块。
全文摘要
本发明提供了一种实现口令安全保护的方法,该方法包括A、根据口令设置阶段设置的口令进行n次哈希运算获得第一口令;所述n为小于最大次数N的自然数;所述N为大于1的自然数;B、对接收到的待验证口令进行m次哈希运算获得第二口令;C、在所述第二口令与所述第一口令一致时,确认所述待验证口令正确;在所述第二口令与所述第一口令不一致时,判断所述m是否小于等于最大次数N,如果是,则将m值增1后执行步骤B,否则确认待验证的口令错误。本发明提供了一种实现口令安全保护的系统。采用本发明的方法及系统,能够使口令抵御字典攻击,提高安全性。
文档编号H04L9/32GK102045170SQ20101061047
公开日2011年5月4日 申请日期2010年12月28日 优先权日2010年12月28日
发明者孙吉平, 韩勇 申请人:北京深思洛克软件技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1