CN102611558A - 基于幻方的多人共管电子账户密钥分配和身份认证方法 - Google Patents
基于幻方的多人共管电子账户密钥分配和身份认证方法 Download PDFInfo
- Publication number
- CN102611558A CN102611558A CN2012101288587A CN201210128858A CN102611558A CN 102611558 A CN102611558 A CN 102611558A CN 2012101288587 A CN2012101288587 A CN 2012101288587A CN 201210128858 A CN201210128858 A CN 201210128858A CN 102611558 A CN102611558 A CN 102611558A
- Authority
- CN
- China
- Prior art keywords
- user
- magic square
- account
- matrix
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开一种基于幻方的多人共管电子账户密钥分配和身份认证方法,属通信安全领域,本发明提出单偶数幻方和双偶数幻方构造方法,利用规模不等、天文数量的幻方设计了多人共管电子账户密钥分配和身份认证方法。密钥分配方法在服务器端为每位用户分配账户密码、密钥密码和电子密钥,计算保存账户相关信息。规定时段内,所有用户在各自终端输入自己的账户密码,密钥密码和电子密钥完成多用户身份认证以进行修改操作;若多人身份认证失败,自动锁定并显示输错用户。利用账户密码完成单用户身份认证以进行查看操作。本发明时空复杂度低,保密信息难推测,安全高效且易于实现,可用于银行个人联名账户的网上银行业务、移动终端的多人共管电子账户。
Description
技术领域
本发明属于通信安全及认证技术领域,涉及电子账户的密钥分配以及身份认证。提出了一种基于幻方的多人共管电子账户密钥分配和身份认证方法,广泛应用于多人共管电子账户的密钥分配、信息管理和用户身份认证,同时,该发明还可应用于移动终端的电子账户的密钥分配、管理和身份认证。
技术背景
幻方是指在一个矩阵中,任意行、任意列及任意对角线元素之和均相等。一个规模为n×n的幻方称为n阶幻方,n是幻方的阶数。根据幻方阶数的奇偶性,幻方可以被分为奇数阶幻方和偶数阶幻方,根据阶数n是否能被4整除,偶数阶幻方又可以被分为单偶数幻方和双偶数幻方。幻方因其构造难度和个数的天文数字性,可以广泛应用于密码学等领域,如身份认证,数字图像加密。但是现有的幻方算法存在计算复杂度高或者对于同等规模产生幻方数量少等问题。本发明提出的一种偶数阶幻方构造方法,包括单偶数幻方构造方法和双偶数幻方构造方法,对于一定规模的幻方,可以产生大量不同的幻方,产生幻方的天文数字性使其可以应用于加密和身份认证等领域,同时幻方在构造过程中又具有一定的规律性,可以用于验证单个幻方片段是否合法。
多人共管电子账户是指由多个用户共同拥有的电子账户,当需要对电子账户进行修改操作时,需要所有用户的同意以及身份认证信息,当需要对电子账户进行查看操作时,每一位用户只要独立给出自己身份认证的信息即可。现有的银行系统提供个人联名账户业务,个人联名账户是指由2名至5名个人客户,为满足多名个人客户实现共同管理经营资金或者家庭财产的需要,在银行开立的人民币个人存款账户,主要解决个人间的信任关系,实现共管存款的目的。联名账户在取款或是转账时,只能由该共管账户的所有用户共同办理。这项业务具有多人共管、灵活方便等多项优势。在商业领域,个人联名账户成为合伙人生意往来的资金暂存卡,柜面交易,各掌密码,实现资金和谐共管。但是联名账户所有人在办理支取业务时,须全体账户所有人到营业网点,凭各自业务操作卡及卡密码共同完成支取,目前还不能利用网上银行直接完成支取业务,尤其对于身处异地的账户所有人,个人联名账户的支取操作非常不便,这严重制约了该项业务的推广。随着网上银行以及电子商务的发展,网上银行为商业活动提供了便捷的服务,但是目前网上银行的安全问题还是一个很薄弱的环节,许多网络欺诈和盗取犯罪对用户造成了严重损失,个人联名账户的网上银行业务的身份认证的安全环节还比较薄弱,容易遭受各种网络攻击,这也限制了该项业务的普及。
本发明项目组对国内外专利文献和公开发表的期刊论文检索,未发现与本发明密切相关和一样的报道或文献。
发明内容
本发明针对现有技术中个人联名账户的网上银行业务的空白,以及网络安全薄弱的问题,提出了一种安全便捷、复杂度低且易于实现的基于幻方的多人共管电子账户密钥分配和身份认证方法。随着一些银行的多人共同理财产品欺诈案件的发生,以及电子商务和网上银行安全问题的暴露,高速发展的电子商务亟需一个便捷安全的交易平台,解决这些问题是本发明提出的一个基本动机。多人共管电子账户是指由多个用户共同拥有的电子账户,当需要对电子账户进行修改操作时,需要所有用户的同意以及身份认证信息,当需要对电子账户进行查看操作时,每一位用户不需要其他用户的认可,只要给出自己身份认证的信息即可。本发明针对多人共管电子账户的安全需求,结合计算机加密与认证,互联网通信等技术手段,设计出一种密钥分配和身份认证方法,可以应用于银行的个人联名账户的网上银行业务,也可以应用于其他多人共管电子账户,例如硬盘加密、文件加密等领域。这里主要针对银行个人联名账户的网上银行业务,说明本发明的密钥分配和身份认证的流程及应用。
本发明是一种基于幻方的多人共管电子账户密钥分配和身份认证方法,属于通信安全及加密领域,可广泛应用多人共管电子账户密钥分配、管理和身份认证,同时,由于身份认证的计算过程时空复杂度低,本发明还可以应用于移动终端的电子账户的密钥分配、管理和身份认证。当多人共管电子账户的用户数量设定为1时,本发明也可以应用于普通电子账户的密钥分配和身份认证。基于幻方的多人共管电子账户密钥分配和身份认证方法包括基于幻方的多人共管电子账户密钥分配方法和基于幻方的多人共管电子账户身份认证方法,其中身份认证方法又包括基于幻方的多人共管电子账户多用户身份认证方法和基于幻方的多人共管电子账户单用户身份认证方法。基于幻方的多人共管电子账户密钥分配方法,为一个账户下的多位用户分配电子密钥,并在服务器端为该账户计算并保存相关认证信息;基于幻方的多人共管电子账户多人身份认证方法,用于验证同一账户下多位用户的身份,保证进行修改操作时所有用户的合法性;基于幻方的多人共管电子账户单人身份认证方法,用于验证单个用户的身份,保证进行查看操作时该用户的合法性。本发明中提出的单偶数幻方和双偶数幻方构造方法,对于一定规模的幻方产生大量的不同幻方,幻方数量的天文数字性使其应用于身份认证和加密领域,攻击者无法通过有限次数的运算来破解,确保了系统的安全性。
本发明的基于幻方的多人共管电子账户密钥分配方法,其实现在于:在服务器端的数据库中,为每一个账户保存有一个账户号码,一个规模为n×n的补幻方,以及所有共管用户信息,其中一个用户信息包括该用户的用户名,账户密码经过散列运算得到的账户布尔矩阵;每个用户自己保存有账户号码,以及各自的用户名、账户密码、密钥密码和电子密钥;基于幻方的多人共管电子账户密钥分配流程包括:
步骤1、在多位用户申请多人共管电子账户时,服务器为该电子账户分配一个账户号码,要求每一位用户输入自己的用户名,6位账户密码和6位密钥密码。
步骤2、服务器根据所有用户输入的用户名、账户密码连同申请账户的时间进行散列运算,得到一个随机数r作为幻方编码。
步骤3、根据步骤2中生成的幻方编码r,利用单偶数幻方构造方法或者双偶数幻方构造方法生成一个规模为n×n的幻方,n为幻方的阶数。
步骤4、对于每一位用户,利用该用户的账户密码为该用户构造一个账户布尔矩阵。为一位用户构造账户布尔矩阵的过程如下:
分别利用n个散列函数将该用户输入的6位账户密码散列成n个不同的数,这些数的取值介于0到2n-1之间,将每一个数转换成为n位二进制的布尔序列,将n个n位的布尔序列依次顺序填写到一个规模为n×n的布尔矩阵中,从而为该用户构造了一个规模为n×n的账户布尔矩阵。
步骤5、对于每一位用户,利用该用户的账户布尔矩阵为该用户构造一个幻方片段。一位用户利用自己的账户密码布尔矩阵构造一个幻方片段的过程如下:
账户布尔矩阵、幻方片段和幻方均是规模相同的矩阵,从账户布尔矩阵的第一行第一列开始判断每一个元素,如果账户布尔矩阵元素的值为1,将幻方中相同位置的数字填写到幻方片段的相同位置上,如果账户布尔矩阵元素的值为0,在幻方片段中的相同位置上添加随机数,随机数的范围介于1到n2之间,从而为一个用户构造了一个规模为n×n的幻方片段。
步骤6、将所有用户的幻方片段进行叠加,即所有用户的幻方片段相同位置上的数相加,得到一个新的规模为n×n的矩阵,从该矩阵的第一行第一列开始,从左至右自上而下对每一位进行模n2运算,用步骤3中生成的幻方减去完成模运算的矩阵,得到一个补幻方,在服务器端的数据库中保存补幻方,删除步骤3中产生的幻方,至此无人能够推测或猜测出幻方的构成。
步骤7、对于每一位用户,利用该用户的密钥密码为该用户构造一个密钥布尔矩阵。其中为一位用户构造密钥布尔矩阵的过程如下:
另选n个散列函数将该用户输入的6位密钥密码散列成为n个不同的数,这些数的取值介于0到2n-1,将每一个数字转换成为n位二进制的布尔序列,顺序填写到一个规模为n×n的矩阵中,构造一个规模为n×n的密钥布尔矩阵。
步骤8、对每一个用户,利用该用户的密钥布尔矩阵对该用户的幻方片段进行加密,将加密后的幻方片段作为电子密钥文件分别分配给各个用户,删除密钥布尔矩阵。
步骤9、基于幻方的多人共管电子账户密钥分配流程结束。
至此每个用户拥有了各自的账户密码,密钥密码和电子密钥,用户凭借账户密码、密钥密码和电子密钥来完成不同安全等级的身份认证,对账户进行查看或修改操作。
本发明对于每一个用户,分配有账户密码、密钥密码和电子密钥。查看操作的使用频率高且安全要求低,认证过程只需输入账户号码,用户名,账号密码,操作简单,根据散列函数不可逆的性质,攻击者无法根据账户布尔矩阵推测计算得到用户的账户密码。而支取操作的使用频率低且安全要求高,在对账户进行支取操作时,必须输入账号密码、电子密钥和密钥密码,操作的复杂度高且需要的身份认证信息较多,保证了系统的安全性。本发明利用账户密码进行散列运算得到的账户布尔矩阵来套取用户的幻方片段,并在幻方片段中加入随机数,使得攻击者无法根据一个用户的幻方片段推测计算出其他用户的电子密钥信息和密码信息,也无法推测计算出幻方信息。对于每个用户的幻方片段进行加密,传送过程中传送的是幻方片段,即使攻击者截取传送信息,也无法根据幻方片段推测计算出用户的密钥密码和电子密钥,保证了密钥密码和电子密钥的保密性。
本发明的实现还在于:利用单偶数幻方构造方法,构造规模为(4m+2)×(4m+2)(m=1,2,3,...)的幻方,按照如下过程进行:
步骤3.1.1、填充幻方:定义规模为(4m+2)×(4m+2)(其中m=1,2,3,...)的矩阵A[4m+2,4m+2],将正整数序列1,2,3,...,(4m+2)2分为4m+2个长度均为4m+2的子序列,遵循单偶数幻方填写规则,将第i(1≤i≤4m+2)个序列填写到矩阵A的第i行;
步骤3.1.2、对步骤3.1.1中填写完毕的矩阵中的部分元素进行行调整:依据单偶数行调整规则,首先选取一组递增行,调整递增行中的部分元素,然后交换第2m+1和第2m+2行的部分元素,最后选取一组递减行,调整递减行中的部分元素,使得矩阵A的各列元素之和均相等;
步骤3.1.3、对步骤3.1.2中完成行调整的矩阵中的元素进行列调整:依据单偶数列调整规则,在矩阵A的前2m+1行的每一行中,选择部分元素,分别将这些元素与后2m+1行中对应行的同列元素进行交换,调整使得矩阵的各行元素之和、各列元素之和以及对角线元素之和均相等,满足幻方性质。
本发提出了一种新的单偶数幻方构造方法,对于规模为(4m+2)×(4m+2)(m=1,2,3,...)的单偶数幻方,共可生成 个不同的单偶数幻方;单偶数幻方构造方法构一个规模为n×n幻方的时间复杂度和空间复杂度均为线性复杂度,运算过程高效便捷。同时该构造方法在填充和交换过程中,幻方的元素具有一定的规律性,可锁定认证过程中密钥密码和电子密钥输入错误的用户。
本发明的实现还在于:利用双偶数幻方构造方法,构造规模为(4m)×(4m)(m=1,2,3,...)的幻方,按照如下过程进行:
步骤3.2.1、填充幻方:定义规模为(4m)×(4m)(m=1,2,3,...)的矩阵A[4m,4m],将正整数序列1,2,3,...,(4m)2分为4m个长度均为4m的子序列,根据双偶数幻方填写规则,将第i(1≤i≤4m)个序列填写到矩阵A的第i行,填充完成后的矩阵各列元素之和,对角线元素之和均相等;
步骤3.2.2、对步骤3.2.1中填充完成的矩阵中的元素进行列调整:按双偶数列调整规则,在前2m行的每一行中,选取2m个元素,将这些元素对应行的同列元素进行交换,调整完成后各行元素之和、各列元素之和以及对角线元素之和均相等,满足幻方性质。
本发明提出了一种新的双偶数幻方构造方法,对于规模为(4m)×(4m)(m=1,2,3,...)的双偶数幻方,共可生成个不同的双偶数幻方;双偶数幻方构造方法构一个双偶数幻方的时间复杂度和空间复杂度均为线性时间复杂度,运算过程高效便捷。同时双偶数幻方构造方法在填充和交换过程中,幻方中的元素具有一定的规律性,可锁定验证过程中密钥密码和电子密钥输入错误的用户。
本发明的实现还在于:其中步骤8所述的利用密钥布尔矩阵对幻方片段进行加密过程包括:
定义一个规模为n×n的新数组,从n×n的密钥布尔矩阵的第一行第一列元素开始,从左到右自上而下依次判断每一个元素的值,如果是1,则提取幻方片段中相同位置的数,顺序存放在新数组中,如果为0,则不提取;当对布尔矩阵完成一次遍历之后,即顺序提取布尔矩阵中为1的元素的位置上的数之后,再从密钥布尔矩阵的第一行第一列的位置开始,从左至右,自上而下依次判断布尔矩阵的每一位的值,如果为0,则提取幻方片段中同位置的数,顺序存放在新数组中,如果为1,则不提取,构造了一个新的n×n位的数组;如此的打乱过程可以重复多次,完成加密。
在整个身份认证过程中,加密步骤是必不可少的。本发明对幻方片段进行打乱加密,加密过程是不可逆的,即使攻击者截取幻方片段,也无法根据幻方片段推测计算出电子密钥和密钥密码,确保了密钥密码和电子密钥的保密性。
本发明还是一种基于幻方的多人共管电子账户多用户身份认证方法,其特征在于:多用户身份认证流程包括:
步骤1)、在每一次需要对账户进行修改或支取操作时,由所有用户协商好对账户的修改或支取操作的具体细则,如支取金额及币种等,对每一个用户显示即将进行的修改或支取操作,如果所有用户都同意该操作,那么在规定的一段时间内,所有用户在各自的终端输入自己的账户密码,密钥密码和电子密钥。
步骤2)、在每一位用户的终端上,对该用户的账户密码进行散列运算得到散列运算结果;这里的散列运算结果是指用户账户布尔矩阵的一部分,比如用户账户布尔矩阵的前x(1≤x<n)行,为一位用户构造账户密码散列运算结果的过程以及使用的散列函数必须与基于幻方的多人共管电子账户密钥分配方法的步骤4中构造账户布尔矩阵前x行的过程和散列函数相同。
步骤3)、在每一位用户的终端上,利用该用户的密钥密码为该用户构造一个密钥布尔矩阵,为一位用户构造密钥布尔矩阵的过程以及使用的散列函数必须与基于幻方的多人共管电子账户的密钥分配方法的步骤7中的过程及散列函数相同;利用该用户的密钥布尔矩阵对其电子密钥进行解密。
步骤4)、将每一位用户的用户名,账户密码的散列运算结果以及解密得到的幻方片段通过网络传送到银行的服务器。
步骤5)、服务器首先将接收到的用户名和账户密码的散列运算结果与数据库中的用户名和账户布尔矩阵进行比对,如果每位用户的账户密码的散列运算结果与账户布尔矩阵中对应值相匹配,那么进行步骤6),否则,多人身份验证失败,向所有用户提示输入账号密码错误的用户名,并且提示身份认证失败,执行步骤7)。
步骤6)、将所有用户的幻方片段逐位相加得到一个规模为n×n的矩阵,对矩阵逐位进行模n2运算,然后将矩阵与服务器保存的补幻方逐位相加,对相加后的矩阵进行验证,如果各行、各列及两个对角线元素之和均相等,则执行修改或支取操作,执行完成后提示所有用户操作成功;否则,不执行修改或支取操作,检查每一个用户的幻方片段,锁定输入错误的用户并向所有用户显示,向每一位用户提示此次操作失败。
步骤7)、基于幻方的多人共管电子账户多用户身份认证流程结束。
本发明对于每一个用户,分配有账号密码、电子密钥和密钥密码。在多用户身份认证过程中,在客户端完成对于账户密码的散列运算,并且利用密钥密码对电子密钥进行解密,网络上传送的是账户密码的散列运算结果以及幻方片段;根据散列函数的性质,无法根据散列函数值恢复散列计算前的账户密码,从而防止攻击者截取账户密码。根据幻方片段恢复完整幻方是NP难问题,本发明在幻方片段中加入了随机数,这增加了恢复幻方片段的难度。本发明的认证身份方法的计算复杂度仅为线性,因此本发明也可以用于移动终端的多人共管电子账户密钥分配和身份认证。
本发明的实现还在于:步骤3)中用密钥布尔矩阵对电子密钥解密的方法包括:
从n×n的密钥布尔矩阵的第一行第一列元素开始,从左到右自上而下依次判断每一个元素的值,提取密钥文件中的当前第一个数字放在该位置上,如果不为0,则不提取。当对布尔矩阵完成一次遍历之后,即顺序提取布尔矩阵中为1的元素的位置上的数之后,再从密钥密码布尔矩阵第一行第一列的位置开始,从左至右,自上而下依次判断布尔矩阵的每一位的值,如果为0,则提取密钥文件中的当前第一个数字放在该位置上,如果为1,则不提取,从而恢复得到了一个新的n×n的矩阵;解密过程与加密过程是相逆的过程;解密的次数与打乱的次数必须相等,才能够恢复得到加密之前的幻方片段,实现电子密钥的解密。
本发明的解密过程与加密过程是相对应的,对用户的电子密钥进行解密,得到该用户的幻方片段,保证了用户的密钥密码和电子密钥在传送过程中的安全保密性。
本发明的实现还在于:步骤6)中锁定输入错误的用户的判定方法是,对于每个用户,逐个验证每一用户解密后的幻方片段中的元素。验证一个用户幻方片段中元素的流程包括:
首先,从数据库中查出该用户账户布尔矩阵,从账户布尔矩阵的第一行第一列元素开始,从左至右,自上而下逐位判断,如果矩阵中某一位的元素值为1,那么保留幻方片段中相同位置上的元素,如果某一位的元素为0,幻方片段中该位置的元素置为0,过滤掉幻方片段中插入的随机数,提取幻方元素。
然后,在过滤掉随机数的幻方片段中,从第一行第一列开始判断,如果某一位不为0,则该位置上的数字只有两种情况,或为填充到该位置上的数字,或为交换的到该位置上的数字,只有这两种情况为合法数字,检查幻方片段的每一个位置上的数字是否合法,如果遍历了用户的幻方片段,每个位置上的非零元素的值都是合法的,那么判定该用户输入正确,如果存在某个位置上的非零元素的值不合法,那么判定该用户输入错误。
本发明根据偶数阶幻方构造方法所构造幻方中元素的规律性,在多用户输入密码密钥错误时锁定输入错误的用户,向所有用户显示输入错误的用户,不仅方便了身份认证过程,更重要的是防止居心不良的用户进行恶意欺诈。
本发明还是一种基于幻方的多人共管电子账户单用户身份认证方法,其特征在于:单用户身份认证流程包括:
步骤(1)、用户输入账户号码,用户名,账户密码。
步骤(2)、在该用户的终端上,对账户密码进行散列运算得到散列运算结果,这里的散列运算结果是指用户账户布尔矩阵的一部分,比如用户账户布尔矩阵的前x(1≤x<n)行,为一位用户构造账户密码散列运算结果的过程以及使用的散列函数必须与基于幻方的多人共管电子账户密钥分配方法的步骤4中构造账户布尔矩阵前x行的过程和散列函数相同。
步骤(3)、将账户号码、用户名和账号密码的散列运算结果通过网络传送到服务器端。
步骤(4)、在服务器端,将接收到的用户名和账户密码的散列运算结果与数据库中的用户名和账户布尔矩阵进行比对,如果用户的账户密码的散列运算结果与账户布尔矩阵的对应值相匹配,则用户可以查看账户信息;否则,用户不能查看账户信息。
步骤(5)、基于幻方的多人共管电子账户单用户身份认证流程结束。
在单用户身份验证的过程中,网络中传送的是账户密码的散列运算结果,根据散列函数的性质,无法根据散列函数值恢复散列计算前的账户密码,防止攻击者获取账户密码;因为用户对账户查看操作的频率较高,单个用户在对账户进行查看操作时,仅需输入账户号码,用户名,账号密码,操作简单,账户密码与密钥密码及电子密钥密码相独立,避免频繁输入支取操作时必须输入的电子密钥和密钥密码,降低攻击者盗取电子密钥和密钥密码的风险。
总体而言,本发明提出的基于幻方的多人共管电子账户密钥分配和身份验证方法,可应用于多人共管电子账户的密钥分配、管理以及用户身份认证,为多人共管电子账户的所有用户提供了一种方便安全且高效的身份认证方法,与现有技术方法相比,本发明具有以下优点:
(1).本发明提出的一种偶数阶幻方构造方法,包括单偶数幻方构造方法和双偶数幻方构造方法,对于规模为(4m+2)×(4m+2)的幻方,单偶数幻方构造方法所构造幻方的数量为 对于规模为(4m)×(4m)的幻方,双偶数幻方构造方法所构造幻方的数量为幻方数量的天文数字性使得偶数阶幻方构造方法适用于数字加密和身份认证领域。
(2).本发明提出的偶数阶幻方构造方法,时间复杂度和空间复杂度均为线性时间复杂度。
(3).本发明提出的偶数阶幻方构造方法,在构造时幻方的元素具有一定的规律性,利用这种规律性可以在多用户输入密码密钥错误时锁定输入错误的用户。
(4).本发明的认证身份方法的计算复杂度仅为线性,因此本发明也可以用于移动终端电子交易账户的身份认证和加密。
(5).本发明提出了一种新的分裂幻方的方法,根据用户的账户密码为用户分配一个特定的幻方片段,不同用户的幻方不具备互补性,增大了根据幻方片段还原完整幻方的难度,攻击者无法根据一个用户的幻方片段计算恢复其他用户的幻方片段。
(6).本发明提出了一种新的幻方验证的方法,由银行数据库保存所有用户幻方片段之和的补幻方,验证时将多为用户的幻方片段相加取模,再与补幻方相加,验证幻方的行列对角线元素之和,提高了安全性。
(7).本发明中,网络中传送的信息具有一定的安全性,外部攻击者无法根据截取传送信息或者攻击服务器数据库来推测获取用户完整的身份认证信息并冒充用户,同时,本发明实现同一账户中不同用户在不同终端上输入密码密钥,提供了锁定输入错误用户的机制,杜绝了同一账户下不同用户的欺诈行为。
(8).本发明与银行现有的个人联名账户业务相兼容,当多人共管电子账户的用户数量为1时,本发明还可以用于普通个人存款账户的网上银行的密钥分配和身份验证。
附图说明
图1为本发明基于幻方的多人共管电子账户密钥分配和身份认证方法组成示意图;
图2为本发明基于幻方的多人共管电子账户密钥分配方法的流程图;
图3为本发明基于幻方的多人共管电子账户多用户身份认证方法的流程图;
图4为本发明基于幻方的多人共管电子账户单用户身份认证方法的流程图;
图5为基于8×8幻方的两人共管电子账户密钥分配过程中构造幻方的示意图;
图6为密钥分配过程中用户Bob和Jenny的账户布尔矩阵示意图;
图7为密钥分配过程中用户Bob和Jenny的构造幻方片段的示意图;
图8为密钥分配过程中两人共管电子账户补幻方计算过程示意图;
图9为密钥分配过程中用户Bob和Jenny的密钥布尔矩阵示意图;
图10为密钥分配过程中用户Bob和Jenny的幻方片段的加密过程示意图;
图11为多用户身份认证过程中Bob和Jenny的电子密钥解密过程的示意图;
图12为多用户身份认证过程中验证Bob和Jenny的幻方片段的示意图;
图13为多用户身份认证过程中检查输入错误用户的数据分析示意图。
具体实施方式:
本发明是一种基于幻方的多人共管电子账户密钥分配和身份认证方法,属于通信安全及加密领域,具体提出了一种构造偶数阶幻方的方法,基于该方法,针对多人共管电子账户,提出了一种新的密钥分配、管理和身份认证技术方案,可应用于银行的个人联名账户的网上银行业务,也可应用于硬盘加密、文件加密等其他领域的多人共管电子账户。同时,由于身份认证计算过程的时空复杂度低,本发明还可以应用于移动终端的电子账户的密钥分配、管理和身份认证。当多人共管电子账户的用户数量设定为1时,本发明也可以应用于普通单用户电子账户的密钥分配和身份认证。这里主要针对银行个人联名账户的网上银行业务,说明本发明的密钥分配和身份认证的具体实施方案及应用。
本发明是一种基于幻方的多人共管电子账户密钥分配和身份认证方法,可以应用于多人共管电子账户密钥分配、信息管理和用户身份认证。参见图1,基于幻方的多人共管电子账户密钥分配和身份认证方法包括基于幻方的多人共管电子账户密钥分配方法和基于幻方的多人共管电子账户身份认证方法,其中身份认证方法又包括多用户身份认证方法和单用户身份认证方法。对于一个多人共管电子账户的操作有修改操作和查看操作,修改操作需要的安全等级较高,要求所有用户同意修改条款才能够执行修改操作,因此,多人身份认证主要针对于修改操作;查看操作要求的安全等级较低,一个多人共管账户的所有用户对于该账户都具有查看操作的权利,无需其他用户的同意,因此,单用户身份认证主要用户主要针对于查看操作。本发明作为一个多人共管电子账户的身份认证平台,有认证方和多个用户,认证方配置有服务器,服务器中数据库保存有多人共管电子账户的必要信息,用户可以在自己的终端电脑上对账户进行查看或者支取操作,通过网络传输相应的身份认证信息和操作信息。
实施例1
基于幻方的多人共管电子账户密钥分配方法,针对多人共管电子账户,为一个账户下的多位用户分配电子密钥,并为该账户计算且保存相关信息,保证每个用户可凭借自己的账户密码、密钥密码和电子密钥完成多用户身份认证或单用户身份认证。
本发明的基于幻方的多人共管电子账户密钥分配方法,在服务器端的数据库中,为每一个账户保存有一个账户号码,一个规模为n×n的补幻方,以及所有共管用户信息,其中一个用户信息包括该用户的用户名,账户密码经过散列运算得到的账户布尔矩阵;每个用户自己保存有账户号码,以及各自的用户名、账户密码、密钥密码和电子密钥,其中账户密码、密钥密码以及电子密钥作为身份认证的关键信息需要用户各自保密。参见图2,基于幻方的多人共管电子账户的密钥分配流程包括:
步骤1、在多位用户申请多人共管电子账户时,服务器为该电子账户分配一个账户号码,要求每一位用户输入自己的用户名,6位账户密码和6位密钥密码。
步骤2、根据所有用户输入的用户名、账号密码连同申请账户的时间进行散列运算,得到一个随机数r作为幻方编码:
r=MN_Hash(user_name,acount_password,pres_time)
其中,r为随机数,作为幻方编号来确定所构造的幻方,MN_Hash为散列函数,user_name为用户的用户名,acount_password为用户的账户密码,pres_time为申请该账户的当前时间。
散列函数MN_Hash应该满足散列结果等概率地分布在其合法范围内。本发明中使用全域散列函数,在执行时,从一组仔细设计的函数中随机选取一个散列函数,随机化保证了没有一个输入会始终导致最坏情况,并且对同一输入算法在每次执行时的性态也都不一样,确保对任何输入算法都具有较好的平均情况性态。针对不同系统,可以设计不同规模的幻方,使用的散列的类型及其参数可以根据系统需求确定。
在一个系统中,r取值范围取决于步骤3中生成幻方的规模,因为不同规模的幻方的数量是不同的,幻方的编号r必须是在幻方数量范围之内的。
步骤3、根据步骤2中生成的幻方编码r,利用单偶数幻方生成方法或双偶数幻方生成方法构造一个编号为r且规模为n×n的幻方,n为阶数,n满足n≥6且n为偶数。
单偶数幻方构造方法如下:定义规模为(4m+2)×(4m+2)(m=1,2,3,...)的矩阵A[4m+2,4m+2],将整数序列1,2,3,...,(4m+2)2填充到矩阵A中,按照如下过程进行:
步骤3.1.1、填充幻方:将正整数序列1,2,3,...,(4m+2)2分为4m+2个长度均为4m+2的子序列,将第i个序列填写到矩阵A的第i行,对于任意第i行(1≤i≤4m+2),单偶数幻方填写规则如下:
如果i是奇数并且1≤i≤2m+1,那么将第i个序列的正整数由左至右依次顺序填入,保持第i个序列的正整数从左到右依次递增;
如果i是偶数并且2≤i≤2m+2,那么将第i个序列的正整数由右至左依次顺序填入,保持第i个序列的正整数从左到右依次递减;
如果i是奇数并且2m+3≤i≤4m+1,那么将第i个序列的正整数由右至左依次顺序填入,保持第i个序列的正整数从左到右依次递减;
如果i是偶数并且2m+4≤i≤4m+2,那么将第i个序列的正整数由左至右依次顺序填入,保持第i个序列的正整数从左到右依次递增。
步骤3.1.2、对步骤1中填写完毕的矩阵中的部分元素进行行调整,依据单偶数行调整规则,首先选取一组递增行,调整递增行中的部分元素,然后交换第2m+1和第2m+2行的部分元素,最后选取一组递减行,调整递减行中的部分元素,使得矩阵A的各列元素之和,对角线元素之和均相等。单偶数行调整规则如下:
首先,对步骤1中已经填充好的矩阵A,交换A[2m+2,2m+1]与A[2m+2,2m+2];任意选取从左至右递增的行,记做Rise(Rise≠2m+2),交换A[Rise,2m+1]与A[Rise,2m+2];
然后,任意选取随机数,记做Rand,1≤Rand≤2m,交换第2m+1行的A[2m+1,Rand]与A[2m+1,4m+3-Rand];任意选取递减行,记做Dec(Dec≠Rand,Dec≠4m+3-Rand且Dec≠2m+2),交换A[Dec,Rand]与A[Dec,4m+3-Rand]。
步骤3.1.3、对步骤2中完成行调整的矩阵中的部分元素进行列调整,依据单偶数列调整规则,在矩阵A的前2m+1行的每一行中,选择部分元素,分别将这些元素与后2m+1行中对应行的同列元素进行交换,调整使得矩阵的各行元素之和、各列元素之和以及对角线元素之和均相等。单偶数列调整规则如下:
首先,调整第2m+1行和2m+2行:交换A[2m+1,2m+1]与A[2m+2,2m+1],交换A[2m+1,2m+2]与A[2m+2,2m+2],然后交换A[2m+1,Rand]与A[2m+2,Rand]或者交换A[2m+1,4m+3-Rand]与A[2m+2,4m+3-Rand];在第2m+1行任选m-1个元素,对于选取的m-1个元素中的每一个A[2m+1,j],分别交换A[2m+1,j]与A[2m+2,4m+3-j],并且再交换A[2m+1,4m+3-j]与A[2m+2,j];
然后,交换进行过列调整的递增行:交换A[Rise,2m+1]与A[4m+3-Rise,2m+1],交换A[Rise,2m+2]与A[4m+3-Rise,2m+2];要么在第Rise行任选2m-1个非对角线元素,每个元素与第4m+3-Rise行的同列元素进行交换;要么先将第Rise行的两个对角线元素与第4m+3-Rise行的同列元素进行交换,再从第Rise行任选2m-3个非对角线元素,每个元素与第4m+3-Rise行的同列元素进行交换;
再次,交换进行过列调整的递减行:交换A[Dec,Rand]与A[4m+3-Dec,Rand],交换A[Dec,4m+3-Rand]与A[4m+3-Dec,4m+3-Rand];要么在第Dec行任选2m-1个非对角线元素,每个元素与第4m+3-Dec行的同列元素进行交换;要么先将第Dec行的两个对角线元素与第4m+3-Dec行的同列元素进行交换,再从第Dec行任选2m-3个非对角线元素,每个元素与第4m+3-Dec行的同列元素进行交换;
最后,调整未进行过列调整的行:对于第i行(2≤i≤2m+2,i≠Rise且i≠Dec),要么在第i行任选2m+1个非对角线元素,每个元素与第4m+3-i行的同列元素进行交换;要么先将第i行的两个对角线元素与第4m+3-i行的同列元素进行交换,再从第i行任选2m-1个非对角线元素,每个元素与第4m+3-i行的同列元素进行交换。
本发明扩展了现有的单偶数幻方构造方法,提出了一种新的单偶数幻方构造方法,将现有构造方法中固定交换的元素的行标和列标参数化,在行调整的过程中对每一行增加了交换对角线元素的情况,对于规模为(4m+2)×(4m+2)(其中m=1,2,3,...)的单偶数幻方,共可生成 个不同的单偶数幻方,所构造幻方数量的天文数字性,使单偶数幻方构造方法适用于身份验证和加密领域,攻击者无法在众多的幻方中确定某一个账户所使用的具体幻方;本发明中提出的单偶数幻方构造方法,构一个幻方的时间复杂度和空间复杂度均线性复杂度;同时该构造方法在填充和交换过程中,具有一定的规律性,即对于同一规模的所有幻方,填充规则都是相同的,填充到幻方中某一位置上的数字是固定的,而在调整过程中,交换到该位置上的元素也是一定的,因此,幻方中的一个位置上的数字只能有两种情况,要么是填充到该位置上的数字,要么是交换到该位置上的数字,这种规律可以锁定认证过程中密钥密码和电子密钥输入错误用户。
双偶数幻方生成方法如下:构造规模为(4m)×(4m)(其中m=1,2,3,...)的矩阵A[4m,4m],将整数序列1,2,3,...,(4m)2填充到矩阵A中,按照如下过程进行:
步骤3.2.1、填充幻方:将正整数序列1,2,3,...,(4m)2分为长度均为4m个长度均为4m的子序列,将第i个序列填充入矩阵A的第i行,对于任意第i行(1≤i≤4m),双偶数幻方填写规则如下:
如果i是奇数并且1≤i≤2m-1,那么将第i个序列的正整数由左至右依次顺序填入,保持第i个序列的正整数从左至右依次递增;
如果i是偶数并且2≤i≤2m,那么将第i个序列的正整数由右至左依次顺序填入,保持第i个序列的正整数从左至右依次递减;
如果i是奇数并且2m+1≤i≤4m-1,那么将第i个序列的正整数由右至左依次顺序填入,保持第i个序列的正整数从左至右依次递减;
如果i是偶数并且2m+2≤i≤4m,那么将第i个序列的正整数由左至右依次顺序填入,保持第i个序列的正整数从左至右依次递增。
步骤3.2.1、对步骤1中填写完成的矩阵中的元素进行列调整,双偶数列调整规则如下:
对于前2m行的元素进行交换:对于第i行(1≤i≤2m),要么在第i行任选2m个非对角线元素,每个元素与第4m+1-i行的同列元素进行交换;要么先将第i行的两个对角线元素与第4m+1-i行的同列元素进行交换,再从第i行任选2m-2个非对角线元素,每个元素与第4m+1-i行的同列元素进行交换。
本发明扩展了现有的双偶数幻方构造方法,提出了一种新的双偶数幻方构造方法,将现有构造方法中行调整的过程中对每一行增加了交换对角线元素的情况,对于规模为(4m)×(4m)(其中m=1,2,3,...)的双偶数幻方,共可生成个不同的双偶数幻方,所构造幻方数量的天文数字性,使双偶数幻方构造方法适用于身份验证和加密领域,攻击者无法在众多的幻方中确定某一个账户所使用的具体幻方;本发明提出的双偶数幻方构造方法,构一个幻方的时空复杂度均为线性复杂度。同时该构造方法在填充和交换过程中,具有一定的规律性,即对于同一规模的所有幻方,填充规则都是相同的,填充到幻方中某一位置上的数字是固定的,而在调整过程中,交换到该位置上的元素也具有一定的规律性,因此,幻方中的一个位置上的数字只能有两种情况,要么是填充到该位置上的数字,要么是交换到该位置上的数字,规律性可以锁定认证过程中密钥密码和电子密钥输入错误用户。
如果使用单偶数生成方法,那么对于规模为(4m+2)×(4m+2)(其中m=1,2,3,...)的单偶数幻方,共能生成 个不同的幻方,对这些幻方进行编号,幻方的编号与幻方之间存在一一对应关系;如果使用双偶数幻方生成方法,那么对于规模为(4m)×(4m)(其中m=1,2,3,...)的双偶数幻方,共能生成个不同的幻方,对这些幻方进行编号,幻方的编号与幻方之间存在一一对应关系。
本发明要求幻方的编号与幻方之间存在一一对应关系,即对于一个幻方编号,有且仅有一个幻方被构造,在一个系统中只要满足编号与幻方一一对应即可。在不同的系统中,具体的对应关系不需要完全相同,实施例6中给出了一种简单的对应实例。
步骤4、对于每一位用户,利用该用户的账户密码为该用户构造一个账户布尔矩阵。为一位用户构造账户布尔矩阵的过程如下:
分别利用n个散列函数将该用户输入的6位账户密码散列成为n个不同的数,这些数的取值介于0到2n-1之间,n个散列函数应该满足每个散列结果等概率地分布在其合法范围内。第一个散列函数的输入值为用户的账户密码,随后的n-1个散列函数的输入值均为前一个散列函数的输出值,且每一个散列函数的输出值得范围均在0到2n-1之间;散列运算过程如下:
acc_outcome[1]=Account_Hash(account_password)
acc_outcome[i]=Account_Hash(acc_outcome[i-1])(2≤i≤n)
其中,acc_outcome[i](1≤i≤n)为第i个散列函数的运算结果,account_password为用户的账户密码,Account_Hash为散列函数。
在本发明中,对于使用的散列函数不做具体要求,不同的系统可以根据不同需求使用不同的散列函数,本例中使用乘法散列函数,形式如下:
其中,Account_Hash(k)为乘法散列函数,k为待散列的函数变量,m为2的次幂,用以控制散列结果的范围,令m=2p,p为整数,要求p=n,A为常数,0<A<1,这里取A的理想值:
将每一位数字转换成为n位01布尔序列,acc_outcome[i](1≤i≤n)的布尔序列插入矩阵的第i行,为每个用户构造一个n×n的布尔矩阵。
步骤5、对于每一位用户,利用该用户的账户布尔矩阵为该用户生成一个幻方片段。一位用户利用自己的账户密码布尔矩阵生成一个幻方片段的过程如下:
账户布尔矩阵、幻方片段和幻方均是规模相同的矩阵,从账户布尔矩阵的第一行第一列开始判断每一个元素,如果账户布尔矩阵元素的值为1,将幻方中相同位置的数字填写到幻方片段的相同位置上,如果账户布尔矩阵元素的值为0,在幻方片段中的相同位置上添加随机数,随机数的范围介于1到n2之间,从而为一个用户构造了一个规模为n×n的幻方片段。
随机数产生函数所产生的随机数应该均匀分布在1到n2之间,这样设计的目的是让随机数的取值范围与幻方元素的取值范围相同,使得攻击者即使截取了幻方片段,也无法判断哪些元素是随机数,哪些元素是幻方元素,从而无法推测用户信息。
步骤6、将所有用户的幻方片段进行叠加,即所有用户的幻方片段相同位置上的数相加,得到一个新的规模为n×n的矩阵,从该矩阵的第一行第一列开始,从左至右自上而下对每一位进行模n2运算,用步骤3中生成的幻方减去完成模运算的矩阵,得到一个补幻方,在服务器端的数据库中保存补幻方,删除步骤3中产生的幻方。
步骤7、对于每一位用户,利用该用户的密钥密码为该用户构造一个密钥布尔矩阵。其中为一位用户构造密钥布尔矩阵的过程如下:
另选n个散列函数将该用户输入的6位密钥密码散列成为n个不同的数,这些数的取值介于0到2n-1,将每一个数字转换成为n位二进制的布尔序列,自上而下顺序填写到一个规模为n×n的矩阵中,构造一个规模为n×n的密钥布尔矩阵。
步骤8、对每一个用户,利用该用户的密钥布尔矩阵对该用户的幻方片段进行加密,将加密后的幻方片段作为电子密钥文件分别分配给各个用户。利用一位用户的密钥布尔矩阵对其幻方片段进行加密的流程如下:
定义一个规模为n×n的新数组,从n×n的密钥布尔矩阵的第一行第一列元素开始,从左到右自上而下依次判断每一个元素的值,如果是1,则提取幻方片段中相同位置的数,顺序存放在新数组中,如果为0,则不提取;当对布尔矩阵完成一次遍历之后,再从密钥布尔矩阵的第一行第一列的位置开始,从左至右,自上而下依次判断布尔矩阵的每一位的值,如果为0,则提取幻方片段中相同位置的数,顺序存放在新数组中,如果为1,则不提取,构造了一个新的n×n位的数组;如此的打乱过程可以重复多次,完成加密。
步骤9、基于幻方的多人共管电子账户密钥分配流程结束。
在服务器端的数据库中,为每一个账户设置有一个数据结构,在该结构中保存有一个账户号码,一个规模为n×n的补幻方,以及所有用户的相关信息,其中一个用户的相关信息包括该用户的用户名,账户密码经过哈希运算得到的账户布尔矩阵。
幻方因其个数的天文数字性和构造难度,可以广泛应用于身份认证和加密等领域。本发明提出的一种偶数阶幻方构造的方法,对于一定规模的幻方,可以产生大量的不同幻方,其天文数字性使其可以应用于身份认证领域。基于偶数阶幻方构造方法,针对多人共管电子账户,本发明提出了一种基于幻方的多人共管电子账户密钥分配和身份认证方法,可应用于多人共管电子账户的密钥分配、信息管理及用户身份认证,为多人共管电子账户的所有用户提供了一种方便安全的身份认证方法。
本发明对每一个用户,分配有账号密码、电子密钥和密钥密码。相比于查看操作,支取操作的频率低且对安全性能的要求高,因此账号密码、电子密钥和密钥密码主要用于修改或支取操作时的身份认证。多人身份认证时认证信息多,不易被攻击者盗取以假冒合法用户,保证了账户的安全性。查看操作的频率高且对安全要求低,因此,仅需输入账号密码以完成用户在对账户进行查看操作时的身份认证,操作简单,账户密码便于记忆。
实施例2
基于幻方的多人共管电子账户密钥分配方法同实施例1,多用户身份验证方法主要用于认证同一个多人共管电子账户下多位用户的身份,保证在进行修改或支取操作时,所有用户都是该账户的合法用户。在对该账户进行修改或支取操作时,必须所有用户都输入正确的账户号码,各自用户名,账户密码、密钥密码和电子密钥,才能完成修改或支取操作。参见图3,基于幻方的多人共管电子账户多用户身份认证方法的流程包括:
步骤1)、在每一次需要对账户进行修改或支取操作的时候,由所有用户协商好对账户的支取操作的具体细则,对每一个用户显示即将进行的支取操作,如果所有用户都同意该操作,那么在规定的一段时间内,所有用户在各自的终端输入自己的账户密码,密钥密码和电子密钥。
步骤2)、在每一位用户的终端上,对该用户的账户密码进行散列运算得到散列运算结果。为一位用户计算散列运算结果的过程如下:
利用x(1≤x<n)个散列函数将该用户输入的6位账户密码散列成为x个不同的数字,这些数字的范围介于0到2n-1,然后将x个不同的数字转换为01布尔序列,从而构造一个x×n的布尔矩阵,规模为x×n的账户密码散列结果实际上是账户布尔矩阵的一部分;为一位用户构造账户密码散列运算结果的过程及所用散列函数必须与密钥分配方法的步骤4中构造账户布尔矩阵前x行的过程和散列函数相同。
本发明中,账户密码的散列运算结果的每一行必须有n个布尔元素,但是对有多少行不限制,只要不是完全等于账户布尔矩阵即可,本发明建议x取接近n/2的整数。
步骤3)、在每一位用户的终端上,利用该用户的密钥密码为该用户构造一个密钥布尔矩阵。为一位用户构造密钥布尔矩阵的过程如下:
利用n个散列函数将该用户输入的6位账户密码散列成为n个不同的数字,这些数字介于0到2n-1之间,再将n个不同的数字转换为01布尔序列,从而构造一个n×n的布尔矩阵,为一位用户构造密钥布尔矩阵的过程以及使用的散列函数必须与基于幻方的多人共管电子账户的密钥分配方法的步骤7中的过程及散列函数相同。
然后,还是在各个用户的终端上,利用该用户的密钥布尔矩阵对其电子密钥进行解密;利用一位用户密钥密码对电子密钥进行解密的方法如下:
从n×n的密钥布尔矩阵的第一行第一列元素开始,从左到右自上而下依次判断每一个元素的值,提取密钥文件中的当前第一个数字放在该位置上,如果不为0,则不提取。当对布尔矩阵完成一次遍历之后,即顺序提取布尔矩阵中为1的元素的位置上的数之后,再从密钥密码布尔矩阵第一行第一列的位置开始,从左至右,自上而下依次判断布尔矩阵的每一位的值,如果为0,则提取密钥文件中的当前第一个数字放在该位置上,如果为1,则不提取,从而恢复得到了一个新的n×n的矩阵;解密的次数与打乱的次数必须相等,才能够恢复得到加密之前的幻方片段,实现电子密钥的解密。
步骤4)、将每一位用户的用户名,账户密码的散列运算结果以及解密的幻方片段传送到银行的服务器,为了防止重放攻击或者截取攻击,需对传送的信息加上时间戳。
步骤5)、服务器首先将接收到的用户名和账户密码的散列运算结果与数据库中的用户名和账户布尔矩阵进行比对,如果每位用户的账户密码的散列运算结果与账户布尔矩阵中对应值相匹配,那么进行步骤6),否则,多人身份验证失败,向所有用户提示输入账号密码错误的用户名,并且提示身份认证失败,执行步骤7)。
步骤6)、将所有用户的幻方片段逐位相加得到一个规模为n×n的矩阵,对矩阵逐位进行模n2运算,然后将矩阵与服务器保存的补幻方逐位相加,对相加后的矩阵进行验证,如果各行、各列及两个对角线元素之和均相等,则执行修改或支取操作,执行完成后提示所有用户操作成功;否则,不执行修改或支取操作,检查每一个用户的幻方片段,锁定输入错误的用户并向所有用户显示,向每一位用户提示此次操作失败。
锁定输入错误的用户的判定方法具体是指,对于每个用户,逐个验证每一用户解密后的幻方片段中的元素;验证一个用户幻方片段中元素的流程包括:
首先,从数据库中查出该用户账户布尔矩阵,从账户布尔矩阵的第一行第一列元素开始,从左至右,自上而下逐位判断,如果矩阵中某一位的元素值为1,那么保留幻方片段中相同位置上的元素,如果某一位的元素为0,幻方片段中该位置的元素置为0,过滤掉幻方片段中插入的随机数,提取幻方元素;
然后,在过滤掉随机数的幻方片段中,从第一行第一列开始判断,如果某一位不为0,则该位置上的数字只有两种情况,或为填充到该位置上的数字,或为交换的到该位置上的数字,只有这两种情况为合法数字,检查幻方片段的每一个位置上的数字是否合法,如果遍历了用户的幻方片段,每个位置上的非零元素的值都是合法的,那么判定该用户输入正确,如果存在某个位置上的非零元素的值不合法,那么判定该用户输入错误。
步骤7)、基于幻方的多人共管电子账户多用户身份认证流程结束。
本发明对于每一个用户,分配有账号密码、电子密钥和密钥密码。在多用户身份认证过程中,在客户端完成对于账户密码的散列运算,并且利用密钥密码对电子密钥进行解密,散列运算和解密运算的时空复杂度均为线性复杂度,计算过程高效简单,且对终端的软硬件要求低;通信过程中传送的是账户密码的散列值以及电子密钥解密后得到的幻方片段,根据散列函数的性质,无法根据散列函数值恢复散列计算前的账户密码,从而防止攻击者获取账户密码。根据幻方片段恢复完整幻方本身就是NP难问题,本发明在幻方片段中加入了随机数,这增加了恢复幻方片段的难度。攻击者截取到幻方片段,也无法根据幻方片段恢复出电子密钥和密钥密码。在身份验证的过程中,在传送的信息中加入时间戳,防止重放攻击。
实施例3
基于幻方的多人共管电子账户密钥分配方法同实施例1,单个用户对账户具有独立查看权限。完成单用户身份认证的用户即可以对该账户进行查看操作。参见图4,基于幻方的多人共管电子账户单用户身份认证流程包括有:
步骤(1)、用户输入账户号码,用户名,账户密码,输入过程有一定的时间限制。
步骤(2)、在该用户的终端上,对账户密码进行散列运算得到散列运算结果。散列运算过程如下:
利用x(1≤x<n)个散列函数将该用户输入的6位账户密码散列成为x个不同的数字,这些数字的范围介于0到2n-1,然后将x个不同的数字转换为01布尔序列,从而构造一个x×n的布尔矩阵,规模为x×n的账户密码散列结果实际上是账户布尔矩阵的一部分;为一位用户构造账户密码散列运算结果的过程及所用散列函数必须与密钥分配方法的步骤4中构造账户布尔矩阵前x行的过程和散列函数相同。
本发明中,账户密码的散列运算结果的每一行必须有n个布尔元素,但是对有多少行不限制,只要不是完全等于账户布尔矩阵即可,本发明建议x取接近n/2的整数。
步骤(3)、将账户号码、用户名和账号密码的散列运算结果传送到服务器端,传送过程中为了防止重放攻击或者截取攻击,需要对传送的信息加上时间戳。
步骤(4)、在服务器端,将接收到的用户名和账户密码的散列运算结果与数据库中的用户名和账户布尔矩阵进行比对,如果用户的账户密码的散列运算结果与账户布尔矩阵的对应值相匹配,则用户可以查看账户信息;否则,用户不能查看账户信息。
步骤(5)、基于幻方的多人共管电子账户单用户身份认证流程结束。
在单用户身份认证的过程中,传送的是账户密码的散列值,根据散列函数的性质,无法根据散列函数值恢复散列计算前的账户密码,从而防止攻击者获取账户密码;在传送的信息中加入时间戳,防止重放攻击;用户对账户查看操作的频率较高,因此,单个用户在对账户进行查看操作时,仅需输入账户号码,用户名,账号密码,操作简单,账户密码与电子密钥及电子密钥密码相独立,在进行查看操作时不用输入支取操作时必须输入的电子密钥和密钥密码,降低攻击者盗取电子密钥和密钥密码的风险。
实施例4
基于幻方的多人共管电子账户密钥分配和身份认证方法同实施例1-3,本发明为每个用户分配有账户密码,电子密钥和密钥密码。身份认证过程中,都是在各个用户的客户端对账户密码进行散列运算,并利用密钥密码对电子密钥进行解密,传输过程中传输的是账户密码的散列值以及电子密钥解密得到的幻方片段。因为散列函数的运算是不可逆的,且本发明中的电子密钥解密运算也是不可逆的,因此网络截取用户信息是无法恢复得到账户密码、电子密钥以及密钥密码的。
用户对账户进行查看操作时,需要输入交易密码,而用户对账户进行支取操作时,需要输入账户密码、密钥密码及电子密钥。查看操作频率高且安全要求低,因此输入账户密码完成查看操作可减少密钥密码和电子密钥的使用次数,降低密钥密码和电子密钥被盗的风险;修改或支取操作的频率低且对安全要求高,因此需输入账户密码、密钥密码和电子密钥,输入的身份认证信息多,降低了用户密码被盗被冒充的风险。
如果攻击者窃取某位用户的账户密码,没有密钥密码以及电子密钥,就不能对账户进行支取操作;
如果攻击者窃取某位用户的账户密码,并截取解密后的幻方片段:攻击者无法根据幻方片段恢复计算得到密钥密码和电子密码,也无法对账户进行支取操作;
如果攻击者攻击服务器端数据库获得服务器端保存的补幻方,攻击者无法根据补幻方计算推断出用户的幻方片段,更无法计算推断用户的密钥密码和电子密码;
如果攻击者窃取用户的电子密钥,没有账户密码和电子密钥密码,攻击者无法对电子密钥进行解密,也无法完成支取操作。
要完成对账户的支取操作,必须要同时拥有账户密码、电子密钥以及密钥密码,从网络传输的信息以及服务器端的数据库是无法获取一个用户的账户密码、电子密钥以及密钥密码,在现实交易环境中,同时窃取用户的账户密码、电子密钥以及密钥密码的概率很低且难度很大。
本发明同时具备检查输入错误用户的安全功能,防止某个用户多次故意输入错误借机骗取其他用户密码或电子密钥。如果多人身份认证失败,存在有用户的密码或电子密钥,那么系统自动锁定输错用户并向所有用户显示,防止不法用户的诈骗行为。
实施例5
基于幻方的多人共管电子账户密钥分配和身份认证方法同实施例1-4,本方法可以应用于银行个人联名账户的网上银行业务,本实施例给出实际应用的一些参数设定及具体的实施方案。
利用偶数阶幻方构造方法,构造规模为16×16的幻方的数量约有6.6137×1027,数量级可以达到1028,因此规模为16×16的幻方足以应用于实际的密钥分配和身份认证系统。使用规模为16×16幻方,在基于幻方的多人共管电子账户密钥分配流程中:
步骤2中得到的随机数r的取值范围介于幻方的数量之内,即6613672075875637599760494561之内。由于现有计算机字长使得整数范围不能表达这么大的数,故需将幻方编号转换为8位3003进制的数,保存在长度为8的数组中;
步骤4-7中为每位用户构造的账户布尔矩阵、密钥布尔矩阵以及幻方片段的规模均为16×16,涉及的散列函数和随机函数也应该按照幻方阶数为16的标准进行设计。
在基于幻方的多人共管电子账户多用户身份认证流程中:
步骤1)所述的用户输入操作,在服务器端设置同步时钟,规定在每一次需要对账户进行支取操作时,所有用户必须在一分钟之内输入自己的账户密码,密钥密码和电子密钥,完成修改操作,如果在一分钟内存在用户没有输入自己的身份认证信息,则结束当前支取操作,本次支取操作失败,重新开始一次支取操作;
步骤3)、在每一位用户的终端上,利用该用户的密钥密码对其电子密钥进行解密。由于电子密钥文件的信息量大且亟需保密,将电子密钥保存在一个只读存储介质中,同时将密钥密码对电子密钥解密的模块也写入该只读存储介质。把只读存储器分配给各自的用户,方便用户保管使用。每次交易时,每位用户插入自己的只读存储器,解密模块自动运行提示用户输入自己的密钥密码,然后利用密钥密码构造密钥布尔矩阵并用密钥布尔矩阵对电子密钥进行解密,将解密后的幻方片段发送到服务器端。
实施例6
基于幻方的多人共管电子账户密钥分配和身份认证方法同实施例1-4,本例中使用规模为8×8的双偶数幻方,为两位用户分配密钥并模拟身份认证过程。基于8×8幻方的两人共管电子账户密钥分配流程包括:
步骤1、为账户分配一个账户号码,用户Bob输入自己的用户名、账户密码和密钥密码,分别为(Bob,065432,023456),用户Jenny输入的自己的用户名、账户密码和密钥密码,分别为(Jenny,987654,456789)。
步骤2、经过散列运算随机产生的幻方编码r为10379,r满足0≤r≤809999。
步骤3、根据幻方编码10379,用双偶数幻方构造方法生成一个规模为8×8的幻方。
这里介绍一种幻方编号和幻方之间的对应关系:对于规模为8×8的矩阵,对每一行进行调整时分为两种情况,第一种情况从6个对角线元素中选取4个进行交换,共有种组合序列;第二种情况同时交换该行的两个对角线元素,然后再从6个非对角线元素中选取2个进行交换,共有种组合序列,因此每一行共有30种组合序列,定义一个长度为30的数组E[30],保存这30种组合序列。如表1所示:
表1保存30种组合序列的数组表
将幻方的编号转换为4位30进制数,存放在一个长度为4的数组num[4]中,由num[i](0≤i≤3)索引数组E确定幻方第i+1行交换的非对角线元素组合序列从而确定幻方中需要交换的元素。
参见图5(a),将10379转换为4位30进制数,得到数组num[4],由num[i](0≤i≤3)索引数组E以确定幻方第i+1行的非对角线的交换组合序列;再调整每一行的对角线元素,得到一个4×8的布尔矩阵,见图5(b),以控制行调整过程中每一行需要交换的元素;然后按照双偶数幻方构造方法填充8×8的矩阵,填充后的矩阵见图5(c);最后对各行的元素进行调整,得到的幻方见图5(d)。
步骤4、对每一位用户,利用该用户的账户密码为该用户构造一个账户布尔矩阵。为了方便说明,使用如下散列函数进行运算:
利用该函数对Bob的账户密码进行散列运算:
得到8个介于0到255的数字,同理计算出Jenny账户密码的散列值,见表2。
数组下标i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
acc_out_Bob[i] | 51 | 133 | 50 | 230 | 37 | 222 | 52 | 35 |
数组下标i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
acc_out_Jenny[i] | 189 | 206 | 80 | 113 | 214 | 66 | 202 | 215 |
表2Bob和Jenny的账户密码的散列值表
将每个数字转换成8位01布尔序列,acc_out_Bob[i](1≤i≤8)的布尔序列插入Bob的账户布尔矩阵的第i行,图6(a)为Bob的账户布尔矩阵,acc_out_Jenny[i](1≤i≤8)的布尔序列插入Jenny的账户布尔矩阵的第i行,图6(b)为Jenny的账户布尔矩阵。
步骤5、参见图7,利用Bob的账户布尔矩阵为其生成一个幻方片段,图7(a)为用户Bob的提取幻方元素的幻方片段,利用Jenny的账户布尔矩阵为其生成一个幻方片段,图7(b)为用户Jenny的提取幻方元素的幻方片段,本实施例在这里为了方便解释说明且利于观察理解,插入随机数的位置一律填写5。图7(c)用户Bob的加入随机数的幻方片段,图7(d)用户Jenny的加入随机数的幻方片段。
步骤6、参见图8(a),将Bob和Jenny的幻方片段进行叠加,然后进行模64运算,再参见图8(b)用步骤3中计算得到的幻方减去进行模运算的矩阵,得到一个补幻方存放在服务器的数据库中。
步骤7、参见图9,对每一位用户,利用该用户的密钥密码为该用户构造一个密钥布尔矩阵,为了简化说明过程,散列过程以及散列函数与步骤4中相同,但在实际系统中,构造账户布尔矩阵和密钥布尔矩阵的散列函数应该不同。
对Bob的密钥密码进行散列运算得到8个介于0到255的数字,同理计算出Jenny密钥密码的散列值,见表3。
数组下标i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
key_out_Bob[i] | 154 | 45 | 207 | 238 | 23 | 54 | 95 | 182 |
数组下标i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
key_out_Jenny[i] | 32 | 198 | 94 | 24 | 213 | 164 | 91 | 61 |
表3Bob和Jenny的密钥密码的散列值表
将每个数字转换成8位01布尔序列,key_out_Bob[i](1≤i≤8)的布尔序列插入Bob的密钥布尔矩阵的第i行,图9(a)为Bob的密钥布尔矩阵,key_out_Jenny[i](1≤i≤8)的布尔序列插入Jenny的密钥布尔矩阵第i行,图9(b)为Jenny的密钥布尔矩阵。
步骤8、参见图10,利用Bob的密钥布尔矩阵对其幻方片段进行加密,图10(a)为Bob加密的过程;利用Jenny的密钥布尔矩阵对其幻方片段进行加密,图10(b)为Jenny加密的过程。
步骤9、基于8×8幻方的两人共管电子账户密钥分配流程结束。
在服务器端的数据库中,为该账户保存有账户号码、补幻方以及用户Bob和Jenny的用户名和账户布尔矩阵;用户Bob和Jenny保存有账户号码,以及各自的用户名、账户密码、密钥密码和电子密钥。
模拟Bob和Jenny的多用户身份认证流程:
步骤1)、在对账户进行支取操作时,用户Bob输入自己的账户密码和密钥密码,分别为(Bob,065432,023456),以及自己的电子密钥,用户Jenny输入自己的账户密码和密钥密码,分别为(Jenny,987654,456789),以及自己的电子密钥。
步骤2)、在Bob的终端上,对Bob的账户密码进行散列运算得到散列运算结果。这里为了方便说明,取x=1,即只对Bob的账户密码进行一次散列运算,得到一个介于1到255的数字51,将其转换为8位01序列得到(00110011),用以匹配服务器端数据库中的账户布尔矩阵的第一行;在Jenny的终端上,同理对其账户密码进行散列运算得到一个8位01序列(10111101)作为散列运算结果。为每一位用户构造账户密码散列运算结果的过程以及使用的散列函数必须与密钥分配方法的步骤4中构造账户布尔矩阵第1行的过程和散列函数相同。
步骤3)、参见图11,在Bob的终端,利用Bob的密钥密码其构造一个密钥布尔矩阵,图11(a)为Bob的密钥布尔矩阵,在Jenny的终端上,利用Jenny的密钥密码其构造一个密钥布尔矩阵,图11(b)为Jenny的密钥布尔矩阵,为每位用户构造密钥布尔矩阵的过程以及散列函数必须与密钥分配方法步骤7中的过程及散列函数相同。分别利用密钥布尔矩阵对电子密钥进行解密,Bob的解密过程参见图11(c),Jenny的解密过程参见图11(d)。
步骤4)、将用户Bob和用户Jenny的用户名,账户密码的散列运算结果以及解密得到的幻方片段传送到服务器。
步骤5)、服务器将接收到的用户名和账户密码的散列运算结果与数据库中的用户名和账户布尔矩阵第1行进行比对,Bob和Jenny账户密码的散列运算结果均匹配成功,进行步骤6)。
步骤6)、参见图12(a),将Bob和Jenny幻方片段进行叠加,得到一个新的规模为n×n的矩阵,对该矩阵进行模64运算,;见图12(b),将完成模运算的矩阵与服务器数据库中的补幻方相加,验证加上补幻方的矩阵,满足幻方性质,执行修改或支取操作。
步骤7)、Bob和Jenny的多用户身份认证流程结束。
分析身份认证失败的情况:如果用户Bob输入的账户密码错误,如654321,则散列计算的结果为158,转换为8位布尔序列为(10011110),与服务器端数据库中保存的账号密码不匹配,修改操作失败。
如果Bob输入的密钥密码错误,如654321,那么利用654321计算得到的密钥布尔矩阵见图13(a),电子密钥解密过程见图13(b),经过步骤6)的运算,明显结果不为幻方,对Bob的电子密钥解密结果进行检查可以发现,第1行的第3、7和8位的数字为随机数,第2行第6位为49,在该位置上的合法数字只能是11或51,故锁定用户Bob的幻方片段不合法。同理也可以检查用户电子密钥输入错误的情况。
模拟Bob的单用户身份认证流程:
步骤(1)、Bob输入的自己的用户名和账户密码(Bob,065432)。
步骤(2)、在Bob的终端上,对账户密码065432进行散列运算得到散列运算结果,散列结果为51,将其转换为8位01序列得到(00110011)。
步骤(3)、将Bob的用户名和账号密码的散列运算结果传送到服务器端。
步骤(4)、在服务器端,用Bob的账号密码的散列运算结果与数据库中保存的该账户中Bob的账户布尔矩阵的第一行进行比对,匹配成功,Bob可以查看账户信息。
步骤(5)、Bob的单用户身份认证流程。
如果Bob输入的账户密码654321,那么散列计算的结果为158,转换为8位布尔序列为(10011110),与服务器端数据库中保存的账户布尔矩阵的第一行不匹配,Bob不能查看账户信息。
综上,本发明公开了一种基于幻方的多人共管电子账户密钥分配和身份认证方法,提出了一种偶数阶幻方构造方法,可以构造规模不等的、天文数量级的幻方。基于该方法,针对多人共管电子账户,提出了一种新的密钥分配和身份认证方法,其中身份认证方法包括多用户身份认证和单用户身份认证方法。密钥分配为多位用户分配了账户密码、密钥密码和电子密钥,用户利用账户密码、密钥密码和电子密钥多用户身份认证或单用户身份认证并进行相应操作。本发明可应用于银行的个人联名账户的网上银行业务,也可以应用于移动终端的对人共管电子账户,具有安全便捷、高效且易于实现的优点。
Claims (9)
1.一种基于幻方的多人共管电子账户密钥分配和身份认证方法,应用于多人共管电子账户密钥分配、管理和用户身份验证,其特征在于:基于幻方的多人共管电子账户密钥分配和身份认证方法包括基于幻方的多人共管电子账户密钥分配方法和基于幻方的多人共管电子账户身份认证方法,其中身份认证方法又包括基于幻方的多人共管电子账户多用户身份认证方法和基于幻方的多人共管电子账户单用户身份认证方法。
2.一种基于幻方的多人共管电子账户密钥分配方法,其特征在于:在服务器端的数据库中,为每一个账户保存有一个账户号码、一个规模为n×n的补幻方以及所有共管用户信息,其中一个用户信息包括该用户的用户名,账户密码经过散列运算得到的账户布尔矩阵;每个用户自己保存有各自的账户密码,密钥密码和电子密钥;基于幻方的多人共管电子账户密钥分配流程包括:
步骤1、在多位用户申请多人共管电子账户时,服务器为该电子账户分配一个账户号码,要求每一位用户输入自己的用户名,6位账户密码和6位密钥密码;
步骤2、服务器根据所有用户输入的用户名、账户密码连同申请账户的时间进行散列运算,得到一个随机数r作为幻方编码;
步骤3、根据步骤2中生成的幻方编码r,利用单偶数幻方构造方法或者双偶数幻方构造方法生成一个规模为n×n的幻方,n为幻方的阶数;
步骤4、对于每一位用户,利用该用户的账户密码为该用户构造一个规模为n×n账户布尔矩阵;
步骤5、对于每一位用户,利用该用户的账户布尔矩阵为该用户生成一个规模为n×n幻方片段;
步骤6、将所有用户的幻方片段进行叠加,即所有用户的幻方片段相同位置上的数相加,得到一个新的规模为n×n的矩阵,从该矩阵的第一行第一列开始,从左至右自上而下对每一位进行模运算,用步骤3中生成的幻方减去完成模运算的矩阵,得到一个补幻方,在服务器端的数据库中保存补幻方,删除步骤3中产生的幻方;
步骤7、对于每一位用户,利用该用户的密钥密码为该用户构造一个密钥布尔矩阵;其中为一位用户构造密钥布尔矩阵的过程如下:
另选n个散列函数将该用户输入的6位密钥密码散列成n个不同的数,这些数的取值介于0到2n-1,将每一个数字转换成为n位二进制的布尔序列,顺序填写到一个规模为n×n的矩阵中,构造一个规模为n×n的密钥布尔矩阵;
步骤8、对每一个用户,利用该用户的密钥布尔矩阵对该用户的幻方片段进行加密,将加密后的幻方片段作为电子密钥文件分别分配给各个用户;
步骤9、基于幻方的多人共管电子账户密钥分配流程结束。
3.根据权利要求2中所述的基于幻方的多人共管电子账户密钥分配方法,其特征在于:利用单偶数幻方构造方法,构造规模为(4m+2)×(4m+2)(其中m=1,2,3,...)的幻方,按照如下过程进行:
步骤3.1.1、填充幻方:定义规模为(4m+2)×(4m+2)(其中m=1,2,3,...)的矩阵A[4m+2,4m+2],将正整数序列1,2,3,...,(4m+2)2分为4m+2个长度均为4m+2的子序列,遵循单偶数幻方填写规则,将第i(1≤i≤4m+2)个序列填写到矩阵A的第i行;
步骤3.1.2、对步骤3.1.1中填写完毕的矩阵中的部分元素进行行调整:依据单偶数行调整规则,首先选取一组递增行,调整递增行中的部分元素,然后交换第2m+1和第2m+2行的部分元素,最后选取一组递减行,调整递减行中的部分元素,使得矩阵A的各列元素之和、对角线元素之和均相等;
步骤3.1.3、对步骤3.1.2中完成行调整的矩阵中的元素进行列调整:依据单偶数列调整规则,在矩阵A的前2m+1行的每一行中,选择部分元素,分别将这些元素与后2m+1行中对应行的同列元素进行交换,调整使得矩阵的各行元素之和、各列元素之和以及对角线元素之和均相等,满足幻方性质。
4.根据权利要求2中所述的基于幻方的多人共管电子账户密钥分配方法,其特征在于:利用双偶数幻方构造方法,构造规模为(4m)×(4m)(其中m=1,2,3,...)的幻方,按照如下过程进行:
步骤3.2.1、填充幻方:定义规模为(4m)×(4m)(其中m=1,2,3,...)的矩阵A[4m,4m],将正整数序列1,2,3,...,(4m)2分为4m个长度均为4m的子序列,根据双偶数幻方填写规则,将第i(1≤i≤4m)个序列填写到矩阵A的第i行,填充完成后的矩阵各列元素之和,对角线元素之和均相等;
步骤3.2.2、对步骤3.2.1中填充完成的矩阵中的元素进行列调整:按双偶数列调整规则,在前2m行的每一行中,选取2m个元素,将这些元素对应行的同列元素进行交换,调整完成后各行元素之和、各列元素之和以及对角线元素之和均相等,满足幻方性质。
5.根据权利要求3或4所述的基于幻方的多人共管电子账户密钥分配方法,其中步骤8所述的密钥布尔矩阵对幻方片段进行加密的方法,其特征在于:
定义一个规模为n×n的新数组,从n×n的密钥布尔矩阵的第一行第一列元素开始,从左到右自上而下依次判断每一个元素的值,如果是1,则提取幻方片段中相同位置的数,顺序存放在新数组中,如果为0,则不提取;当对布尔矩阵完成一次遍历之后,再从密钥布尔矩阵的第一行第一列的位置开始,从左至右,自上而下依次判断布尔矩阵的每一位的值,如果为0,则提取幻方片段中相同位置的数,顺序存放在新数组中,如果为1,则不提取,构造了一个新的n×n位的数组;如此的打乱过程可以重复多次,完成加密。
6.一种基于幻方的多人共管电子账户多用户身份认证方法,其特征在于:多用户身份认证流程包括:
步骤1)、在每一次需要对账户进行修改或支取操作时,由所有用户协商好对账户的修改或支取操作的具体细则,对每一个用户显示即将进行的修改或支取操作,如果所有用户都同意该操作,那么在规定的一段时间内,所有用户在各自的终端输入自己的账户密码,密钥密码和电子密钥;
步骤2)、在每一位用户的终端上,对该用户的账户密码进行散列运算得到散列运算结果;
步骤3)、在每一位用户的终端上,利用该用户的密钥密码为该用户构造一个密钥布尔矩阵,利用密钥布尔矩阵对电子密钥进行解密;
步骤4)、将每一位用户的用户名,账户密码的散列运算结果以及解密得到的幻方片段通过网络传送到银行的服务器;
步骤5)、服务器首先将接收到的用户名和账户密码的散列运算结果与数据库中的用户名和账户布尔矩阵进行比对,如果每位用户的账户密码的散列运算结果与账户布尔矩阵中对应值相匹配,那么进行步骤6),否则,多人身份验证失败,向所有用户提示输入账号密码错误的用户名,并且提示身份认证失败,执行步骤7);
步骤6)、将所有用户的幻方片段逐位相加得到一个规模为n×n的矩阵,对矩阵逐位进行模n2运算,然后将矩阵与服务器保存的补幻方逐位相加,对相加后的矩阵进行验证,如果各行、各列及两个对角线元素之和均相等,则执行修改或支取操作,执行完成后提示所有用户操作成功;否则,不执行修改或支取操作,检查每一个用户的幻方片段,锁定输入错误的用户并向所有用户显示,向每一位用户提示此次操作失败;
步骤7)、基于幻方的多人共管电子账户多用户身份认证流程结束。
7.根据权利要求6所述的基于幻方的多人共管电子账户多用户身份认证方法,其中步骤3)所述的利用密钥布尔矩阵对电子密钥进行解密的方法,其特征在于:
从n×n的密钥布尔矩阵的第一行第一列元素开始,从左到右自上而下依次判断每一个元素的值,提取密钥文件中的当前第一个数字放在该位置上,如果不为0,则不提取。当对布尔矩阵完成一次遍历之后,即顺序提取布尔矩阵中为1的元素的位置上的数之后,再从密钥密码布尔矩阵的第一行第一列的位置开始,从左至右,自上而下依次判断布尔矩阵的每一位的值,如果为0,则提取密钥文件中的当前第一个数字放在该位置上,如果为1,则不提取,从而恢复得到了一个新的n×n的矩阵;解密的次数与打乱的次数必须相等,才能恢复得到加密之前的幻方片段,实现电子密钥的解密。
8.根据权利要求6所述的基于幻方的多人共管电子账户多用户身份认证方法,其特征在于:其中步骤6)所述的锁定输入错误的用户的判定方法是,对于每个用户,逐个验证每一用户解密后的幻方片段中的元素;验证一个用户幻方片段中元素的流程包括:
首先,从数据库中查出该用户账户布尔矩阵,从账户布尔矩阵的第一行第一列元素开始,从左至右,自上而下逐位判断,如果矩阵中某一位的元素值为1,那么保留幻方片段中相同位置上的元素,如果某一位的元素为0,幻方片段中该位置的元素置为0,过滤掉幻方片段中插入的随机数,提取幻方元素;
然后,在过滤掉随机数的幻方片段中,从第一行第一列开始判断,如果某一位不为0,则该位置上的数字只有两种情况,或为填充到该位置上的数字,或为交换的到该位置上的数字,只有这两种情况为合法数字,检查幻方片段的每一个位置上的数字是否合法,如果遍历了用户的幻方片段,每个位置上的非零元素的值都是合法的,那么判定该用户输入正确,如果存在某个位置上的非零元素的值不合法,那么判定该用户输入错误。
9.一种基于幻方的多人共管电子账户单用户身份认证方法,其特征在于:单用户身份认证流程包括:
步骤(1)、用户输入账户号码,用户名,账户密码;
步骤(2)、在该用户的终端上,对账户密码进行散列运算得到散列运算结果;
步骤(3)、将账户号码、用户名和账号密码的散列运算结果通过网络传送到服务器端;
步骤(4)、在服务器端,将接收到的用户名和账户密码的散列运算结果与数据库中的用户名和账户布尔矩阵进行比对,如果用户的账户密码的散列运算结果与账户布尔矩阵的对应值相匹配,则用户可以查看账户信息;否则,用户不能查看账户信息;
步骤(5)、基于幻方的多人共管电子账户单用户身份认证流程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210128858.7A CN102611558B (zh) | 2012-04-27 | 2012-04-27 | 基于幻方的多人共管电子账户密钥分配和身份认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210128858.7A CN102611558B (zh) | 2012-04-27 | 2012-04-27 | 基于幻方的多人共管电子账户密钥分配和身份认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102611558A true CN102611558A (zh) | 2012-07-25 |
CN102611558B CN102611558B (zh) | 2014-12-17 |
Family
ID=46528730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210128858.7A Active CN102611558B (zh) | 2012-04-27 | 2012-04-27 | 基于幻方的多人共管电子账户密钥分配和身份认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102611558B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104253810A (zh) * | 2013-06-27 | 2014-12-31 | 北京神州泰岳软件股份有限公司 | 安全登录方法和系统 |
US9105592B2 (en) | 2013-04-08 | 2015-08-11 | Everdisplay Optronics (Shanghai) Limited | Organic electronic light emitting device and method of fabricating the same |
CN105760000A (zh) * | 2016-01-29 | 2016-07-13 | 杭州昆海信息技术有限公司 | 一种交互方法及装置 |
CN105827404A (zh) * | 2015-01-05 | 2016-08-03 | 中国移动通信集团陕西有限公司 | 一种身份认证方法、装置及服务器 |
CN105897420A (zh) * | 2014-11-21 | 2016-08-24 | 褚万青 | 一种原子核型密码系统及直接通信法及间接通信法 |
CN106230593A (zh) * | 2016-07-19 | 2016-12-14 | 乐视控股(北京)有限公司 | 用户标识生成方法及装置 |
WO2017028125A1 (zh) * | 2015-08-16 | 2017-02-23 | 赵政荣 | 异地验证不同用户特征的方法以及取款机 |
WO2017028241A1 (zh) * | 2015-08-18 | 2017-02-23 | 赵政荣 | 双密码验证解锁的方法以及保险提包 |
WO2017028124A1 (zh) * | 2015-08-16 | 2017-02-23 | 赵政荣 | 异地验证用户特征时的信息提醒方法以及取款机 |
WO2017028128A1 (zh) * | 2015-08-16 | 2017-02-23 | 赵政荣 | 异地验证数字密码时的信息提醒方法以及取款机 |
WO2017028129A1 (zh) * | 2015-08-16 | 2017-02-23 | 赵政荣 | 异地验证不同数字密码的方法以及取款机 |
CN107154921A (zh) * | 2016-03-03 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 共管账户的授权方法和装置、共管账户的认证方法和装置 |
CN108319846A (zh) * | 2017-02-08 | 2018-07-24 | 黄策 | 异终端密码输入法 |
CN108847228A (zh) * | 2018-05-17 | 2018-11-20 | 东莞市华睿电子科技有限公司 | 一种基于双人发声的空间机器人控制方法 |
CN110010215A (zh) * | 2019-04-03 | 2019-07-12 | 嘉里(北京)健康科技有限公司 | 一种健康档案管理系统 |
CN105897420B (zh) * | 2014-11-21 | 2019-07-16 | 褚万青 | 一种原子核型密码系统及直接通信法及间接通信法 |
CN111144890A (zh) * | 2019-12-26 | 2020-05-12 | 广州查正源电子科技有限公司 | 一种账户财务多方监管方法及系统 |
CN113989029A (zh) * | 2021-11-05 | 2022-01-28 | 中国工商银行股份有限公司 | 数据处理方法、装置、电子设备、介质和计算机程序产品 |
CN116894261A (zh) * | 2023-09-11 | 2023-10-17 | 山东卓汇智能科技有限公司 | 一种数字化医院电子病历智能加密方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002052779A1 (fr) * | 2000-12-26 | 2002-07-04 | Sony Corporation | Systeme et procede de traitement d'informations |
CN1411202A (zh) * | 2001-09-28 | 2003-04-16 | 中国科学院研究生院 | 一种安全的数字签名系统及其数字签名方法 |
-
2012
- 2012-04-27 CN CN201210128858.7A patent/CN102611558B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002052779A1 (fr) * | 2000-12-26 | 2002-07-04 | Sony Corporation | Systeme et procede de traitement d'informations |
CN1411202A (zh) * | 2001-09-28 | 2003-04-16 | 中国科学院研究生院 | 一种安全的数字签名系统及其数字签名方法 |
Non-Patent Citations (1)
Title |
---|
赵彬: "基于幻方的双向动态身份认证算法研究及实现", 《国防科学技术大学研究生院学位论文》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9105592B2 (en) | 2013-04-08 | 2015-08-11 | Everdisplay Optronics (Shanghai) Limited | Organic electronic light emitting device and method of fabricating the same |
CN104253810B (zh) * | 2013-06-27 | 2018-05-11 | 北京神州泰岳软件股份有限公司 | 安全登录方法和系统 |
CN104253810A (zh) * | 2013-06-27 | 2014-12-31 | 北京神州泰岳软件股份有限公司 | 安全登录方法和系统 |
CN105897420B (zh) * | 2014-11-21 | 2019-07-16 | 褚万青 | 一种原子核型密码系统及直接通信法及间接通信法 |
CN105897420A (zh) * | 2014-11-21 | 2016-08-24 | 褚万青 | 一种原子核型密码系统及直接通信法及间接通信法 |
CN105827404A (zh) * | 2015-01-05 | 2016-08-03 | 中国移动通信集团陕西有限公司 | 一种身份认证方法、装置及服务器 |
WO2017028125A1 (zh) * | 2015-08-16 | 2017-02-23 | 赵政荣 | 异地验证不同用户特征的方法以及取款机 |
WO2017028124A1 (zh) * | 2015-08-16 | 2017-02-23 | 赵政荣 | 异地验证用户特征时的信息提醒方法以及取款机 |
WO2017028128A1 (zh) * | 2015-08-16 | 2017-02-23 | 赵政荣 | 异地验证数字密码时的信息提醒方法以及取款机 |
WO2017028129A1 (zh) * | 2015-08-16 | 2017-02-23 | 赵政荣 | 异地验证不同数字密码的方法以及取款机 |
WO2017028241A1 (zh) * | 2015-08-18 | 2017-02-23 | 赵政荣 | 双密码验证解锁的方法以及保险提包 |
CN105760000A (zh) * | 2016-01-29 | 2016-07-13 | 杭州昆海信息技术有限公司 | 一种交互方法及装置 |
CN107154921A (zh) * | 2016-03-03 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 共管账户的授权方法和装置、共管账户的认证方法和装置 |
US10650135B2 (en) | 2016-03-03 | 2020-05-12 | Alibaba Group Holding Limited | Authorization method and device for joint account, and authentication method and device for joint account |
CN106230593A (zh) * | 2016-07-19 | 2016-12-14 | 乐视控股(北京)有限公司 | 用户标识生成方法及装置 |
CN108319846A (zh) * | 2017-02-08 | 2018-07-24 | 黄策 | 异终端密码输入法 |
CN108847228A (zh) * | 2018-05-17 | 2018-11-20 | 东莞市华睿电子科技有限公司 | 一种基于双人发声的空间机器人控制方法 |
CN110010215A (zh) * | 2019-04-03 | 2019-07-12 | 嘉里(北京)健康科技有限公司 | 一种健康档案管理系统 |
CN110010215B (zh) * | 2019-04-03 | 2021-03-30 | 嘉里(北京)健康科技有限公司 | 一种健康档案管理系统 |
CN111144890A (zh) * | 2019-12-26 | 2020-05-12 | 广州查正源电子科技有限公司 | 一种账户财务多方监管方法及系统 |
CN113989029A (zh) * | 2021-11-05 | 2022-01-28 | 中国工商银行股份有限公司 | 数据处理方法、装置、电子设备、介质和计算机程序产品 |
CN116894261A (zh) * | 2023-09-11 | 2023-10-17 | 山东卓汇智能科技有限公司 | 一种数字化医院电子病历智能加密方法 |
CN116894261B (zh) * | 2023-09-11 | 2023-12-19 | 山东卓汇智能科技有限公司 | 一种数字化医院电子病历智能加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102611558B (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102611558B (zh) | 基于幻方的多人共管电子账户密钥分配和身份认证方法 | |
US20230231840A1 (en) | Encryption and decryption techniques using shuffle function | |
CN107147720B (zh) | 一种云存储数据共享中可追踪的有效公开审计方法和系统 | |
CN110086626B (zh) | 基于非对称密钥池对的量子保密通信联盟链交易方法和系统 | |
CN105791321A (zh) | 一种具有抗密钥泄露特性的云存储数据公共审计方法 | |
CN1922816B (zh) | 单向认证 | |
CN109862046A (zh) | 一种联盟链中可追溯匿名方法 | |
CN106487786B (zh) | 一种基于生物特征的云数据完整性验证方法及系统 | |
Saranya et al. | Efficient mobile security for E health care application in cloud for secure payment using key distribution | |
CN106788980A (zh) | 一种面向云计算的矩阵乘法外包过程中安全加密方法 | |
CN110381055A (zh) | 医疗供应链中的rfid系统隐私保护认证协议方法 | |
CN105376064A (zh) | 一种匿名消息认证系统及其消息签名方法 | |
CN110380845A (zh) | 基于群组对称密钥池的量子保密通信联盟链交易方法、系统、设备 | |
Yu et al. | Identity‐Based Proxy Signcryption Protocol with Universal Composability | |
Barman et al. | A novel secure key-exchange protocol using biometrics of the sender and receiver | |
CN117040800A (zh) | 基于联盟链和无证书可搜索加密的个人档案管理方案 | |
Liu et al. | A novel quantum voting scheme based on BB84-state | |
Wu et al. | A new authenticated key agreement scheme based on smart cards providing user anonymity with formal proof | |
CN113779594A (zh) | 基于区块链的数据分发共享方法及系统 | |
CN101510875B (zh) | 一种基于n维球面的身份认证方法 | |
Wang et al. | A novel blockchain identity authentication scheme implemented in fog computing | |
Kaur et al. | Lightweight cipher algorithms for smart cards security: A survey and open challenges | |
Javaid et al. | A lightweight and secure energy trading framework for electric vehicles | |
Xie et al. | Data Security Based on Blockchain Digital Currency | |
CN110880969B (zh) | 基于联盟链和隐式证书的qkd网络认证密钥生成方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |