首页> 中国专利> 基于幻方的多人共管电子账户密钥分配和身份认证方法

基于幻方的多人共管电子账户密钥分配和身份认证方法

摘要

本发明公开一种基于幻方的多人共管电子账户密钥分配和身份认证方法,属通信安全领域,本发明提出单偶数幻方和双偶数幻方构造方法,利用规模不等、天文数量的幻方设计了多人共管电子账户密钥分配和身份认证方法。密钥分配方法在服务器端为每位用户分配账户密码、密钥密码和电子密钥,计算保存账户相关信息。规定时段内,所有用户在各自终端输入自己的账户密码,密钥密码和电子密钥完成多用户身份认证以进行修改操作;若多人身份认证失败,自动锁定并显示输错用户。利用账户密码完成单用户身份认证以进行查看操作。本发明时空复杂度低,保密信息难推测,安全高效且易于实现,可用于银行个人联名账户的网上银行业务、移动终端的多人共管电子账户。

著录项

  • 公开/公告号CN102611558A

    专利类型发明专利

  • 公开/公告日2012-07-25

    原文格式PDF

  • 申请/专利权人 西安电子科技大学;

    申请/专利号CN201210128858.7

  • 发明设计人 段振华;李洁;田聪;王小兵;

    申请日2012-04-27

  • 分类号H04L9/32(20060101);

  • 代理机构61205 陕西电子工业专利中心;

  • 代理人程晓霞;王品华

  • 地址 710071 陕西省西安市太白南路2号

  • 入库时间 2023-12-18 06:11:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-12-17

    授权

    授权

  • 2012-09-26

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20120427

    实质审查的生效

  • 2012-07-25

    公开

    公开

说明书

技术领域

本发明属于通信安全及认证技术领域,涉及电子账户的密钥分配以及身份认证。 提出了一种基于幻方的多人共管电子账户密钥分配和身份认证方法,广泛应用于多人 共管电子账户的密钥分配、信息管理和用户身份认证,同时,该发明还可应用于移动 终端的电子账户的密钥分配、管理和身份认证。

技术背景

幻方是指在一个矩阵中,任意行、任意列及任意对角线元素之和均相等。一个规 模为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,...) 的单偶数幻方,共可生成(2m)2(2m-1)(2C2m-2m-1)(C4m-22m-1+C4m-22m-3)2(C4m2m+1+C4m2m-1)2m-2个不同的单偶 数幻方;单偶数幻方构造方法构一个规模为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)的幻方,单偶数幻方构造方法所构造幻 方的数量为(2m)2(2m-1)(2C2m-2m-1)(C4m-22m-1+C4m-22m-3)2(C4m2m+1+C4m2m-1)2m-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,...)的单 偶数幻方,共可生成(2m)2(2m-1)(2C2m-2m-1)(C4m-22m-1+C4m-22m-3)2(C4m2m+1+C4m2m-1)2m-2个不同的单 偶数幻方,所构造幻方数量的天文数字性,使单偶数幻方构造方法适用于身份验证和 加密领域,攻击者无法在众多的幻方中确定某一个账户所使用的具体幻方;本发明中 提出的单偶数幻方构造方法,构一个幻方的时间复杂度和空间复杂度均线性复杂度; 同时该构造方法在填充和交换过程中,具有一定的规律性,即对于同一规模的所有幻 方,填充规则都是相同的,填充到幻方中某一位置上的数字是固定的,而在调整过程 中,交换到该位置上的元素也是一定的,因此,幻方中的一个位置上的数字只能有两 种情况,要么是填充到该位置上的数字,要么是交换到该位置上的数字,这种规律可 以锁定认证过程中密钥密码和电子密钥输入错误用户。

双偶数幻方生成方法如下:构造规模为(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,...) 的单偶数幻方,共能生成(2m)2(2m-1)(2C2m-2m-1)(C4m-22m-1+C4m-22m-3)2(C4m2m+1+C4m2m-1)2m-2个不同 的幻方,对这些幻方进行编号,幻方的编号与幻方之间存在一一对应关系;如果使用 双偶数幻方生成方法,那么对于规模为(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的理想值:

A(5-1)/2=0.6180339887...

将每一位数字转换成为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 不能查看账户信息。

综上,本发明公开了一种基于幻方的多人共管电子账户密钥分配和身份认证方法, 提出了一种偶数阶幻方构造方法,可以构造规模不等的、天文数量级的幻方。基于该 方法,针对多人共管电子账户,提出了一种新的密钥分配和身份认证方法,其中身份 认证方法包括多用户身份认证和单用户身份认证方法。密钥分配为多位用户分配了账 户密码、密钥密码和电子密钥,用户利用账户密码、密钥密码和电子密钥多用户身份 认证或单用户身份认证并进行相应操作。本发明可应用于银行的个人联名账户的网上 银行业务,也可以应用于移动终端的对人共管电子账户,具有安全便捷、高效且易于 实现的优点。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号