一种动态密码生成验证方法

文档序号:7725859阅读:123来源:国知局
专利名称:一种动态密码生成验证方法
一种动态密码生成验证方法
技术领域
本发明涉及数据安全技术领域,特别涉及一种动态密码生成验证方法。背景技术
企业数据量日益庞大,其中许多数据涉及商业秘密,如何对数据访问进行安全控制成为一个重要课题。使用密码对用户身份进行验证是一种必要技术,简单的静态密码设置容易被破解,成为系统安全的瓶颈。本发明通过提供一种动态密码生成验证方法,给出一种安全性相对较高的密码生成验证方法。本方法具有以下特点它为密码生成验证提供一种动态解决方法,用以提供较高的可靠性。原始素数库为随机化生成动态密码组提供原料;利用UID (用户唯一标识符)生成的动态密码遍历序列,作为遍历动态密码组的遍历序列。存储在本地的动态密码组进行二次加密,以减少泄密的可能性。进行动态密码验证时会对遍历指针进行冗余处理,本地端提供一个动态密码,服务器端提供一组冗余动态密码用以处理系统误差。

发明内容一种动态密码生成验证方法,该方法用于需要使用动态密码进行验证安全系统中,其特征在于该方法包括生成原始素数库;根据所述原始素数库生成动态密码组;生成动态密码遍历序列,所述动态密码遍历序列生成是由UID生成的遍历动态密码组的伪随机序列;进行动态密码验证以及冗余处理。优选地,所述根据所述原始素数库生成动态密码组具体为由原始素数库生成的 η个1 位动态密码集合,该η个1 位动态密码集合为所述生成动态密码组。优选地,所述原始素数库,利用埃拉托斯特尼筛法生成。优选地,所述的动态密码组生成,利用原始素数库,通过随机化算法对原始素数库中选出的素数作相乘截断等操作成生一组η个1 位的动态密码集合。优选地,所述的动态密码遍历序列由UID通过线性同余的随机算法生成,并由系统时钟触发进行遍历。优选地,所述的动态密码冗余处理,通过对动态密码遍历序列里当前时刻指针的前m个和后m个数据同时进行匹配,动态密码匹配时同时调整指针,其中m依据动态密码序列指针更新频率进行调整。优选地,所述动态密码组在分配时需加密,在进行匹配时需对动态密码进行解密。
图1为动态密码分配校验方法具体实施方式下面结合说明书附图详细说明本方法是如何实施的。图1为动态密码分配校验方法。一种动态密码生成验证方法,该方法用于需要使用动态密码进行验证安全系统中,其特征在于该方法包括生成原始素数库;根据所述原始素数库生成动态密码组;生成动态密码遍历序列,所述动态密码遍历序列生成是由UID生成的遍历动态密码组的伪随机序列;进行动态密码验证以及冗余处理。优选地,所述根据所述原始素数库生成动态密码组具体为由原始素数库生成的 η个1 位动态密码集合,该η个1 位动态密码集合为所述生成动态密码组。优选地,所述原始素数库,利用埃拉托斯特尼筛法生成。优选地,所述的动态密码组生成,利用原始素数库,通过随机化算法对原始素数库中选出的素数作相乘截断等操作成生一组η个1 位的动态密码集合。优选地,所述的动态密码遍历序列由UID通过线性同余的随机算法生成,并由系统时钟触发进行遍历。优选地,所述的动态密码冗余处理,通过对动态密码遍历序列里当前时刻指针的前m个和后m个数据同时进行匹配,动态密码匹配时同时调整指针,其中m依据动态密码序列指针更新频率进行调整。优选地,所述动态密码组在分配时需加密,在进行匹配时需对动态密码进行解密。如图1所示为本方法的实施过程,初始时用户通过设置当前时间为种子获得一个随机序列用以从原始素数库中获取生成动态密码的原始材料。通过对从原始素数库中获得的原始材料进行一定处理生成包含η个1 位的动态密码组。服务器端维护一个UID序列, 在未分配的的UID中选择一个作为生成动态密码遍历序列的种子。鉴权及冗余处理部分以动态密码组及动态密码遍历序列为基础进行。以下是本方法各部分实现的介绍原始素数库利用埃拉托斯特尼筛法生成。动态密码组生成以生成η个1 位的动态密码组为例,初始时以当前时间为种子生成一个包含如个元素的伪随机序列。利用该序列从原始素数库提取如个素数,并随机的从中选取η对素数,进行相乘得到η个乘积。对每个乘积进行相关处理以获得一个1 位的动态密码。过程如下如果乘积小于1 位则再从如个元素中随机选取一个再次相乘,直到乘积位数大于或等于1 位;如果乘积大于1 位则对乘积进行截断处理;如果乘积等于1 位则动态密码生成成功。依此类推生成整个动态密码组。所述动态密码组生成,用当前时间为种子生成一个包含如个元素的伪随机序列利用如下公式Xn+1 = (a*Xn+c)mod m ;其中0 < = a < m// 乘数,0 < = c < m// 增量,0 < = X0 < m// 初始值,种子;当 c = 0 时 a 趋近 m-Ι ;我们将公式变形为Xn+1 = (a*)Qmod(m),其中 a = 7"5 = 16807,m = 2"31_1,X0 为当前时间。
动态密码遍历序列生成服务器端需要维护一个UID序列,当服务器端接到用户分配动态密码的请求时,服务器端会在未分配的UID中为用户选择一个作为用户的唯一标识并以此UID作为生成动态密码遍历序列的种子。所述动态密码遍历序列生成,利用如下公式Xn+1 = (a*Xn)mod(m),其中 a = 7"5 = 16807,m = 2"31_1,)(。为 UID。动态密码验证及冗余处理用户本地端及服务器端分别保存上述方法生成的动态密码组及动态密码遍历序列。本地端的动态密码组需作加密处理,当用户需进行动态密码验证时,需根据当前遍历指针从本地端保存的加密动态密码组提取一个加密的动态密码给服务器端,服务器端对其进行解密,并跟据服务器端的遍历指针从保存在服务器端的动态密码组中提取一组冗余动态密码组。验证时只要用户提交过来动态密码和冗余动态密码组中的一个相匹配即可,同时根据匹配结果对服务器端遍历指针进行调整。所述的动态密码验证及冗余处理,其中对本地端的动态密码进行加密解密,采用 RSA算法。一个完整的动态密码分配校验流程1.从原始素数库获得如个原始素数。2.利用相关算法生成包含η个1 位动态密码组。3.选择一个未分配UID作为生成动态密码遍历序列的种子。4.将生成的动态密码组及动态密码遍历序列分别备份在本地端及服务器端,本地端备份的动态密码组需作加密处理。5.本地端及服务器端需按照动态密码遍历序列以一定的时钟频率更新遍历指针。6.等用户需要作动态密码验证时,按照当前遍历指针提取保存在本地端的加密动态密码,将该加密动态密码提交给服务器端。7.服务器端收到用户提交的加密动态密码,对其进行解密,同时依据当前遍历指针从保存在服务器端的动态密码组中提取一组冗余的动态密码(包含2m+l个动态密码,m 表示当前遍历指针的前m步或后m步,该值的确立需参考驱动遍历指针前进的时钟频率)。8.对用户提交的动态密码及服务器端的冗余动态密码组进行匹配,如果匹配成功则适当调整冗余指针并进行后续处理;匹配失败给出警告信息并在一段时间内禁止该UID 验证密码的请求。
权利要求
1.一种动态密码生成验证方法,该方法用于需要使用动态密码进行验证安全系统中, 其特征在于该方法包括生成原始素数库;根据所述原始素数库生成动态密码组;生成动态密码遍历序列,所述动态密码遍历序列生成是由UID生成的遍历动态密码组的伪随机序列;进行动态密码验证以及冗余处理。
2.如权利要求1所述方法,其特征在于所述根据所述原始素数库生成动态密码组具体为由原始素数库生成的η个1 位动态密码集合,该η个1 位动态密码集合为所述生成动态密码组。
3.如权利要求1所述方法,其特征在于所述原始素数库利用埃拉托斯特尼筛法生成。
4.如权利要求3所述方法,其特征在于所述的动态密码组生成,利用原始素数库,通过随机化算法对原始素数库中选出的素数作相乘截断等操作成生一组η个1 位的动态密码集合。
5.如权利要求1-4任一所述的方法,其特征在于所述的动态密码遍历序列由UID通过线性同余的随机算法生成,并由系统时钟触发进行遍历。
6.如权利要求1-5任一所述的方法,其特征在于所述的动态密码冗余处理,通过对动态密码遍历序列里当前时刻指针的前m个和后m个数据同时进行匹配,动态密码匹配时同时调整指针,其中m依据动态密码序列指针更新频率进行调整。
7.如权利要求1-6任一所述的方法,其特征在于所述动态密码组在分配时需加密,在进行匹配时需对动态密码进行解密。
全文摘要
本发明提供了一种动态密码生成验证方法,该方法涉及以下几部分原始素数库,动态密码组生成,动态密码遍历序列生成,动态密码验证及冗余处理。动态密码组由原始素数库通过随机化算法生成,包括n个128位动态密码;动态密码遍历序列是由UID(用户唯一标识)生成的伪随机序列;动态密码由系统时钟按照一定的时钟频率触发指针按照动态遍历序列遍历动态密码组动态产生;动态密码验证通过对加密的当前时刻动态密码解密结果和冗余的动态密码组内密码做匹配进行验证,同时调整遍历指针避免系统误差。动态密码组生成后以加密模式保存在本地,动态密码组生成及动态密码遍历序列生成采用两套机制,以最大可能降低密码破解的可能。
文档编号H04L9/32GK102263641SQ20111020044
公开日2011年11月30日 申请日期2011年7月18日 优先权日2011年7月18日
发明者吴锐锋, 崇英哲, 焦利, 郑治国 申请人:辽宁国兴科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1