一种基于n维球面的身份认证方法

文档序号:7946237阅读:275来源:国知局
专利名称:一种基于n维球面的身份认证方法
技术领域
本发明涉及计算机系统安全和网络安全中的身份认证方法,具体是涉及一种基于N维球面的身份认证方法。

背景技术
随着在线交易和电子商务、电子政务的发展,层出不穷的网络犯罪,引起了人们对网络身份的信任危机,因此身份认证变得越来越重要。身份认证技术能够密切结合企业、政府的业务流程,阻止对重要资源的非法访问。也可以说,身份认证是整个信息安全体系的基础。目前比较常用的身份认证方法有口令、动态口令、智能卡认证、公钥基础设施(PKI)、生物认证等。
口令认证的基本思想是每个用户都有一个身份标识(ID)和口令,当用户想进入系统时,他必须提供其ID及口令,系统就可以检验用户的合法性。故口令认证具有价格低廉、容易实现、用户界面友好等特点。但是基于口令的身份认证很容易被窃取,而且强度往往也难以抵抗口令猜测,而且还有可能受到重放攻击等。
动态口令技术是一种让用户密码按照时间或使用次数不断变化、每个密码只能使用一次的技术。它采用一种叫作动态令牌的专用硬件,内置电源、密码生成芯片和显示屏,密码生成芯片运行专门的密码算法,根据当前时间或使用次数生成当前密码并显示在显示屏上。认证服务器采用相同的算法计算当前的有效密码。用户使用时只需要将动态令牌上显示的当前密码输入客户端计算机,即可实现身份认证。由于每次使用的密码必须由动态令牌来产生,只有合法用户才持有该硬件,所以只要通过密码验证就可以认为该用户的身份是可靠的。而用户每次使用的密码都不相同,即使黑客截获了一次密码,也无法利用这个密码来仿冒合法用户的身份。然而动态口令虽然解决了安全性的问题,但其成本较高。
智能卡是一种内置集成电路的芯片,芯片中存有与用户身份相关的数据,智能卡由专门的厂商通过专门的设备生产,是不可复制的硬件。智能卡由合法用户随身携带,登录时必须将智能卡插入专用的读卡器读取其中的信息,以验证用户的身份。智能卡认证通过智能卡硬件不可复制来保证用户身份不会被仿冒。然而由于每次从智能卡中读取的数据是静态的,通过内存扫描或网络监听等技术还是很容易截取到用户的身份验证信息,因此还是存在安全隐患。
公钥基础设施(PKI)采用数字证书管理公钥,通过第三方的可信机构即认证中心(CA)把用户的公钥和用户的标识信息捆绑在一起。作为一项基础设施,PKI似乎可以解决绝大多数网络安全问题,并初步形成一套完整的解决方案和理论。然而由于PKI系统在使用上的复杂性以及成本等问题使它在实际的应用中遇到很多问题。
生物认证主要是指通过可测量的身体或行为等生物特征进行身份认证的一种技术。生物特征是指唯一的可以测量或可自动识别和验证的生理特征或行为方式。生物特征分为身体特征和行为特征两类。身体特征包括指纹、掌型、视网膜、虹膜、人体气味、脸型、手的血管和DNA等;行为特征包括手写签名、语音、行走步态等。生物认证技术具有传统的身份认证手段无法比拟的优点。采用生物认证技术,可不必再记忆和设置密码,使用更加方便,但高昂的成本、复杂的技术阻碍了它的推广和应用。


发明内容
本发明的目的在于克服现有技术的缺点和不足,利用“已知满足一定条件的N+1个N维空间上的点,可以唯一确定一个N维球面(N-sphere/hyper sphere/N维圆)”的数学原理,提供了一种基于N维球面的身份认证方法,通过特定秘密信息比较认证服务器和用户是否可以重构同一个N维球面来进行身份认证。N维球面是普通的球面在任意维度的推广,特别的,在2维空间称为圆,3维空间称为球面,4维以上空间称为超球面。该方法能有效地减少服务器信息存储量、服务器和用户计算量,而且该方法不以某种数学难解问题为理论基础,从而有效避免了由于解决数学难题新方法的提出而被攻破的可能性。
本发明的目的通过下述技术方案实现一种基于N维球面的身份认证方法,包括以下步骤 (1)认证服务器初始化认证服务器选择有限域GF(p)和安全单向函数f,同时选择若干秘密向量;其中GF(p)确定了群组运算所在的有限域,即所有的群组运算过程都在有限域GF(p)中进行,p是一个大素数; (2)用户注册用户根据自身选定的口令PWg通过安全单向函数f计算出一个向量提交给认证服务器,认证服务器检查用户身份,为用户指定一个IDg作为用户身份的标识,各用户身份的标识是各不相同的;认证服务器结合自身的秘密向量和用户提交的向量唯一确定一个N维球面,如果不能构造这样的N维球面,则认证服务器重新选择该用户身份的标识再进行计算;认证服务器通过安全信道将在这个N维球面随机选择的若干不相同的点,并与用户IDg、大素数p和安全单向函数f组成加密文件传递给用户; (3)用户生成认证信息当用户需要认证服务器识别其身份时可以利用认证服务器传回的加密文件,并结合自身选定的口令PWg,重新构造一个N维球面,同时选择这个N维球面上的几何特征作为认证信息传递给认证服务器进行验证; (4)认证服务器验证用户认证信息认证服务器接受用户的认证信息同时利用自身的秘密向量重新构造一个N维球面,并计算用户约定使用的N维球面的几何特征,最后将计算结果和用户提交的认证信息进行比较,如果相同则接受用户身份,否则拒绝用户身份。
为更好地实现本发明,所述步骤(1)认证服务器初始化,具体包括以下步骤 (1.1)认证服务器选择安全单向函数f,某个大素数p,认证服务器选定f和p后将其公开; (1.2)认证服务器秘密选定N个N维向量(各向量间是线性无关的)(S11、S12......S1N),......,(SN1、SN2......SNN),其中Skl在有限域GF(p)中随机选择,k=1、...、N,l=1、...、N;认证服务器可以公开N值,但是这N个N维向量只能由认证服务器秘密保存,且一旦选定就不再改变。
优选的所述大素数满足p=8n+3,n为某一正整数,这样可使步骤2.3在有限域GF(p)中寻找除Ag0和Agi以外的任意N个点的二次剩余对更容易,运算更方便。
所述步骤(2)用户注册,具体包括以下步骤 (2.1)用户Ug选定一个口令PWg,其中Ug是下标为g的用户,PWg是下标为g的用户Ug所选定的口令,该口令可以由字母和数字组成,因字符串可以转换为数字,以下所述的PWg是指转换以后的整数,下面各个步骤所有计算均在有限域GF(p)中进行; 用户计算向量Ag0=(f(PWg),f(2×PWg),...,f(N×PWg))并传递给认证服务器; (2.2)认证服务器为该用户指定一个唯一的IDg,并计算N维球面方程 (a)认证服务器根据自身秘密保存的N个N维向量,计算N个向量 (b)把Agi的坐标记为(ai1,ai2,...,aiN),其中i=1、2、...、N;把Ag0坐标记为(a01,a02,...,a0N)。这N+1个向量Ag0、Ag1、...,、AgN构造N维球面方程 (x1-c1)2+(x2-c2)2+...+(xN-cN)2=R2 (1) 其中(c1,c2,...,cN)为N维球面的中心,R为该N维球面的半径,(x1,x2,...,xN)是球面上任意点; (c)认证服务器将求得的N+1个向量代入方程(1),得方程组(2) 分别将它们前一式减后一式,可以得到关于c1、c2、...、cN的线性方程组(3) 如果在计算过程中,方程组(3)的系数矩阵行列式为零,则重新选择IDg进行计算,这样保证方程唯一确定该球面的中心C(c1,c2,...,cN);再将这个中心坐标代入方程组(2)的任意一个式子进行计算,即可得到R2;然后把c1、c2、...、cN和R2代入方程(1),于是该球面的方程就能确定,这个方程就是下标为g的用户和认证服务器共享的秘密球面UCg,设该方程为 (x1-c1)2+(x2-c2)2+...+(xN-cN)2≡R2 mod p (2.3)认证服务器随机选择秘密球面UCg上除Ag0和Agi以外的N个点Bgi,Bgi=(bi1,bi2,...,biN),其中i=1、...、N;Bgi的每个坐标分量均在有限域GF(p)内找,Bgi的每个坐标具体求解如下 (A)找到N-2个数对即二次剩余对(eiq,diq),使得eiq≡diq2 mod p,其中q=1、...、N-2,eiq、diq是有限域GF(p)中满足eiq≡diq2 mod p条件的任意两个整数,并且满足 bi1≡(di1+c1)mod p bi2≡(di2+c2)mod p ...... bi(N-2)≡(di(N-2)+cN-2)mod p (B)再选择两对二次剩余对(eiz,diz),使得eiz≡diz2 mod p,其中z=N-1、N,eiz、diz是有限域GF(p)中满足eiz≡diz2 mod p条件的任意两个整数,并且满足 令 bi(N-1)≡(di(N-1)+cN-1)mod p biN≡(diN+cN)mod p 上述步骤(A)和(B)是N≥3时适用的情况,当N=2时则直接使用步骤(B);重复N次计算,可以得到N个Bgi点,每次计算后验证一下,确保得到的N个点是互不相同的; (2.4)认证服务器把p、f、IDg、以及Bg1、Bg2、...,、BgN以加密的形式保存在文件中并发送给用户,加密算法可以使用现有的安全加密算法,如AES等,用户保存加密后的文件,用户输入PIN码可解密文件并得到所需信息,以下我们称该加密文件为“userInfo”。
所述步骤(3)用户生成认证信息,具体包括以下步骤 (3.1)下标为g的用户Ug输入PIN码解密认证服务器传递的含有注册成功信息的加密文件“userInfo”,得到p、f、IDg、以及Bg1、Bg2、...,、BgN; (3.2)用户在客户端输入自身口令PWg,可以计算出Bg0=(f(PWg),f(2×PWg),...,f(N×PWg)); (3.3)用户根据Bg0加上文件“userInfo”中存储的N点Bg1、Bg2、...、BgN,一共N+1个点,利用这N+1个向量构造N维球面方程,可以重构出原来的秘密球面UCg;即将Bg0和Bg1、Bg2、...,、BgN代入N维球面方程,得方程组 分别将它们前一式减后一式,可以得到关于c1、c2、...、cN的线性方程组 于是可以求解线性方程组,可得中心坐标C(c1,c2,...,cN); (3.4)用户计算w1=f(c1×t),w2=f(c2×t),...,wN=f(cN×t),其中t为时间戳,令Wg=(w1,w2,...,wN); (3.5)过Wg和C做直线L,在极少见的情况下,如果Wg和C相同,重新选择时间戳t,再计算Wg(重新计算后,由于时间戳已不同,一定能保证这两个向量不相同);直线L的参数方程如下 其中k为自变量参数,y1、...、yN为因变量; 取L上除Wg和C之外的任意一点Mg(m1,...,mN),即k取除0和1外的有限域GF(p)中的任意数时对应的(y1,...,yN)值; (3.6)用户将认证消息Meg={t,IDg,Bg1,Mg}发送给认证服务器,其中,t为时间戳,IDg是代表下标为g的用户身份的标识,Bg1是存储在文件“userInfo”中的在球面UCg上的一个点,Mg是生成的直线L上的任意一点,同一个用户每次生成的认证消息中,t和Mg是不同的,IDg和Bg1总是相同的。
所述步骤(4)认证服务器验证用户认证信息,具体包括以下步骤 (4.1)认证服务器收到用户Ug的认证消息Meg,先检查时间戳是否有效,无效则认证失败,有效则进入下一步; (4.2)认证服务器根据IDg及自身秘密向量集计算向量 Agi=(f(IDg×Si1),f(IDg×Si2),...,f(IDg×SiN)),(i=1,...,N) 把Agi的坐标记为(ai1,ai2,...,aiN),其中i=1、2、...、N,这样N个向量再加上认证消息中的点Bg1,一共N+1个向量,于是认证服务器能够重构与用户共享的球面UCg,利用这N+1个向量构造N维球面方程,即将Bg1、以及Ag1、Ag2、...、AgN代入N维球面方程 分别将它们的前一式减后一式,可以得到关于c1、c2、...、cN的线性方程组 于是可以求解线性方程组的中心坐标C(c1,c2,...,cN); (4.3)认证服务器计算Wg=(f(c1×t),f(c2×t),...,f(cN×t),重构过点Wg及中心C的直线L (4.4)认证服务器验证点Mg(m1,...,mN)是否在直线L上,若是则通过认证,否则认证失败,验证的过程如下 把m1、...、mN分别代入直线方程的每一个子式进行计算,得到 则有 若k1=k2=...=kN,则说明点Mg在直线L上,认证服务器接受用户身份;否则点Mg不在直线L上,用户身份验证失败。
本发明的作用原理是利用“已知满足一定条件的N+1个N维空间上的点,可以唯一确定一个N维球面(N-sphere/hyper sphere/N维圆)”的数学原理,设计了一种基于N维球面的身份认证方法,通过特定秘密信息比较认证服务器和用户是否可以重构同一个N维球面来设计的相应身份认证方法。
本发明与现有技术相比,具有如下优点和有益效果 第一,认证方法用到的主要运算是对线性方程组的求解,所以认证方法的三个需计算的步骤所需时间都很短,可以很好地运用于实际应用。
第二,认证服务器不需要为每个用户保存用户数据,认证服务器所需要保存的仅仅是N个对所有用户都通用的N维秘密向量(S11,S12......S1N),......,(SN1,SN2......SNN)。这样认证服务器端仅需要保存很少的数据就可以实现对大量用户身份的验证,大大节省了存储空间。
第三,可以有效抵御重放攻击,因为认证服务器会检查时间戳,因而认证消息Meg不能重复使用。
第四,可以有效抵御伪造认证消息攻击,如果非法用户截获认证消息Meg,也只能知道球面上一个点,无法重构球面UCg,也无法知道中心坐标。如果非法用户修改时间戳,但无法构造合法的点Mg,也就无法伪造认证消息,即使截获了多条认证消息,也无法从中恢复足够的有效信息重构球面,因此非法用户无法伪造合法的认证消息。
第五,可以有效抵御离线口令猜测(字典攻击),本认证方法中用户自身口令的秘密信息f(PWg)并没有曝露在网络中,因而做字典攻击较难。同时攻击者截获了认证消息Meg,也只能知道Mg和Bg1,无法重构球面。即使通过字典攻击猜测用户口令PWg,进而猜测Bg0,也只能知道球面上两个点Bg0和Bg1,还是无法重构球面。N维球面上其它点的可能取值空间就很大了,因此字典攻击对本发明方法的攻击力度非常弱。每次生成的认证消息中,Bg1点都是相同的,所以即使攻击者截获了多条认证消息,也不能获得更多关于球面的信息。
第六,可以有效抵御假冒认证服务器攻击,认证服务器构造秘密球面的过程要用到自己的N个秘密的线性无关的N维向量。合法用户只能知道自己所重构秘密球面上的N+1个点,而认证服务器计算这个秘密球面是利用球面上另外N个点,加上由用户口令生成的Bg0点,用户不知道认证服务器的N个点Agi(其中i=1、...、N),更不知道认证服务器生成这些点的N个秘密向量,因此合法用户难以假冒认证服务器。
第七,可以有效抵御假冒用户攻击,合法用户如果想冒充别的用户,可以修改认证消息中的用户IDg,但却无法知道其它用户与认证服务器共享的秘密(即别的IDg对应的秘密球面的中心),因而无法生成合法的点Mg,也就无法伪造认证消息,所以无法冒充别的合法用户。



图1是本发明优选实施例的身份认证系统架构示意图; 图2是本发明优选实施例的身份认证服务器初始化后状态示意图; 图3是本发明优选实施例的用户1注册过程示意图; 图4是本发明优选实施例的用户1注册过程身份认证服务器运算过程示意图; 图5是本发明优选实施例的用户2注册过程示意图; 图6是本发明优选实施例的用户2注册过程身份认证服务器运算过程示意图; 图7是本发明优选实施例的注册过程身份认证服务器运算结果二维示意图; 图8是本发明优选实施例的用户认证过程示意图; 图9是本发明优选实施例的用户认证过程用户运算示意图; 图10是本发明优选实施例的用户认证过程身份认证服务器运算示意图; 图11是本发明优选实施例的认证过程运算结果二维示意图。

具体实施例方式 下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例 典型的身份认证系统架构如图1所示,该系统包括认证服务器(CA),以及用户1、用户2。认证服务器(CA)、各个用户通过网际网络连接。
如图2所示,在初始化之后认证服务器(CA)设定相关参数,其中实线框内为秘密保存参数,虚线框为公开参数。本实施例选取N=2的情况给予具体说明,因为在2维空间中,“2维球面”实际是“圆”,所以在以下的描述中,采用“2维圆”这一术语替代“N维球面”。如图中2维向量S1和S2是秘密保存的秘密向量(这里为了简单说明所以只选择2维向量,在实际应用中可以选择更高维数向量作为秘密向量),安全单向函数f和大素数p是公开的,实施例的整个过程都是在有限域GF(p)下进行的。
如图3所示,用户U1向认证服务器(CA)进行注册。
其中PW1是用户U1自身的口令,由用户自身秘密保存,该口令可以由字母和数字组成,且字符串可以转换为数字。用户向认证服务器(CA)发送注册请求,并将自身口令进行安全单向函数f运算得到结果A10=(f(PW1),f(2*PW1))作为身份信息发送到认证服务器(CA)。认证服务器(CA)利用自身秘密向量S1、S2及用户提交的信息计算相应的用户身份标识后加密成名为“userInfo”的加密文件,再将其传送给用户U1 图4示出了认证服务器(CA)在用户1进行注册时所进行的计算相应用户身份标识运算过程 认证服务器(CA)为用户U1指定一个唯一的ID1,代表用户身份。认证服务器(CA)根据保存的2个秘密向量,计算2个向量 A11=(f(ID1×S11),f(ID1×S12)) A12=(f(ID1×S21),f(ID1×S22)) 把A11的坐标记为(a11,a12),A12的坐标记为(a21,a22),再加上用户发送的A10(记为(a01,a02)),这三个向量组成一个2维圆的方程组,并代入相应参数得 通过后式减前式可得 通过求解这个二元一次方程组,可以求出中心C(c1,c2),进而半径平方R2,如果计算过程中无法求解这个方程组,则重新选择用户U1的ID1,再重新计算直到可以求解方程。最后从这个2维圆上选取另外两个不同的点B11、B12(这两个点不同于A10、A11、A12),具体过程如下 选择两对二次剩余对(e11,d11)、(e12,d12)使得e11≡d112 mod p且e12≡d122 mod p,并且满足 e11+e12≡R2 mod p 令 b11≡(d11+c1)mod p b12≡(d12+c2)mod p B11=(b11,b12); 同样再选择两对二次剩余对(e21,d21)、(e22,d22)使得e21≡d212 mod p且e22≡d222 mod p,并且满足 e21+e22≡R2 mod p 令 b21≡(d21+c1)mod p b22≡(d22+c2)mod p B12=(b21,b22); 最后将B11、B12及大素数p、安全单向函数f都加密到一个文件中,称为“userInfo”,并将“userInfo”传回给用户U1。
如图5所示,用户U2向认证服务器(CA)进行注册。这个过程和用户U1注册过程一样。只是现在认证服务器(CA)已经使用ID1这个ID,必须重新选择其它ID赋给用户U2。
如图6所示,认证服务器(CA)在用户U2进行注册时所进行的运算过程。这个过程与图4运算过程一致,只是此时用户U2使用的ID是ID2。
如图7所示,认证服务器(CA)在用户U1、用户U2注册后运算结果2维示意图。其中2维圆UC1是用户U1利用自身提供口令信息A10和认证服务器(CA)秘密向量S1、S2(利用ID1进行运算得到A11、A12)构造的,B11、B12是认证服务器(CA)选择的另外两个不同的点,存入加密文件“userInfo”中,由用户1自身保管;2维圆UC2是用户U2利用自身提供口令信息A20和认证服务器(CA)秘密向量S1、S2(利用ID2进行运算得到A21、A22)构造的,B21、B22是认证服务器(CA)选择的另外两个不同的点作为用户U2的身份标志。由于用户U1、用户U2的ID不同,认证服务器(CA)构造出来的2维圆也不可能相同,由此可以增加整个身份认证系统的安全性。
图8是用户U1向认证服务器(CA)请求身份认证的过程示意图。其中用户U1先进行计算,利用自身口令和加密文件“userInfo”含有的身份标识重新构造2维圆,再将信息B11、M1、时间戳t和自身ID1发送给认证服务器(CA)。认证服务器(CA)首先检查时间戳t是否在可接受范围内,如果超出时间限定就认为身份验证失败,如t有效则认证服务器(CA)利用B11和自身秘密向量也重新构造球面,并检查M1是否正确,由此确定身份验证是否成功。
如图9所示,用户U1向认证服务器(CA)请求身份认证用户自身运算的过程示意图。用户U1利用自身口令PW1计算A10,记A10=(f(PW1),f(2*PW1))=(a01,a02)和“userInfo”中的B1(b11,b12),B12(b21,b22)三个点组成2维圆的方程组,并代入相应参数得 通过后式减前式可得 通过求解这个二元一次方程组,可以求出中心C(c1,c2),进而求出半径平方R2。用户U1再选择一个时间戳t,并计算W1,其中W1(w1,w2)=(f(c1*t),f(c2*t))。然后用户过W1、C作一条直线L,具体过程如下 其中k是自变量,y1、y2是因变量,并在直线L上选择其中区别于C、W1的一点记为M1(m1,m2)。最后用户将Meg={t,ID1,B11,M1}作为认证信息发送给认证服务器(CA),接受认证服务器(CA)的验证,并等待验证结果。
如图10所示,用户1向认证服务器请求身份认证时认证服务器(CA)自身运算的过程示意图。认证服务器(CA)首先检查用户发送认证信息的时间戳t,如果超时则验证失败,否则继续往下验证。认证服务器(CA)利用自身秘密向量S1、S2和ID1运算得到A11、A12 A11(a11,a12)=(f(S11*ID1),f(S12*ID1)) A12(a21,a22)=(f(S21*ID1),f(S22*ID1)) 再加上用户发来的B11,这三个点又可以组成一个2维圆方程组,并将参数代入其中 通过后式减前式可以得到一个二元一次方程组 通过求解这个二元一次方程组可以求出中心C(c1,c2),进而求出半径平方R2。认证服务器(CA)再求出W1,W1(w1,w2)=(f(c1*t),f(c2*t)),其中t为用户认证信息中的时间戳,然后过C、W1作一条直线L,并验证用户U1发来的M1点是否在直线上,验证方法如下 如果K1等于K2,则M1在直线L上,从而身份验证成功;如果K1不等于K2,则M1不在直线L上,从而身份验证失败。
如图11所示,用户1向认证服务器请求身份认证运算结果二维示意图。用户U1利用自身信息构造2维圆,求出过中心C和W1的直线,并在该直线上任意选择一个点M1。如果认证服务器(CA)利用相应的信息也可以构造同一个2维圆,并利用用户U1提供的正确信息就可以验证M1与球面中心C和W1过同一直线L,由此可以判定用户U1的身份。同时由于W1是随时间而改变,所以在t’时间,用户将会构造另外一条直线L’,即用户每次身份验证过程中构造的直线都会不相同,这样就更能提高系统安全性。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
权利要求
1、一种基于N维球面的身份认证方法,包括以下步骤
(1)认证服务器初始化认证服务器选择有限域GF(p)和安全单向函数f,同时选择若干秘密向量;其中GF(p)确定了群组运算所在的有限域,即所有的群组运算过程都在有限域GF(p)中进行,p是一个大素数;
(2)用户注册用户根据自身选定的口令PWg通过安全单向函数f计算出一个向量提交给认证服务器,认证服务器检查用户身份,为用户指定一个IDg作为用户身份的标识,各用户身份的标识是各不相同的;认证服务器结合自身的秘密向量和用户提交的向量唯一确定一个N维球面,如果不能构造这样的N维球面,则认证服务器重新选择该用户身份的标识再进行计算;最后认证服务器通过安全信道将在这个N维球面随机选择的若干不相同的点,并与用户身份的标识IDg、大素数p和安全单向函数f组成加密文件传递给用户;
(3)用户生成认证信息当用户需要认证服务器识别其身份时利用认证服务器传回的加密文件,并结合自身选定的口令PWg,重新构造一个N维球面,同时选择这个N维球面上的几何特征作为认证信息传递给认证服务器进行验证;
(4)认证服务器验证用户认证信息认证服务器接受用户的认证信息同时利用自身的秘密向量重新构造一个N维球面,并计算用户约定使用的N维球面上的几何特征,最后将计算结果和用户提交的认证信息进行比较,如果相同则接受用户身份,否则拒绝用户身份。
2、根据权利要求1所述的一种基于N维球面的身份认证方法,其特征在于所述步骤(1)认证服务器初始化,具体包括以下步骤
(1.1)认证服务器选择安全单向函数f,某个大素数p,认证服务器选定f和p后将其公开;
(1.2)认证服务器秘密选定N个线性无关的N维向量(S11、S12......S1N),......,(SN1、SN2......SNN),其中Skl在有限域GF(p)中随机选择,k=1、...、N,l=1、...、N;认证服务器公开N值,但是这N个N维向量只能由认证服务器秘密保存,且一旦选定就不再改变。
3、根据权利要求2所述的一种基于N维球面的身份认证方法,其特征在于所述大素数满足p=8n+3,n为某一正整数。
4、根据权利要求1所述的一种基于N维球面的身份认证方法,其特征在于所述步骤(2)用户注册,具体包括以下步骤
(2.1)用户Ug选定一个口令PWg,其中Ug是下标为g的用户,PWg是下标为g的用户Ug所选定的口令,该口令由字母和数字组成,因字符串能转换为数字,以下所述的PWg是指转换以后的整数,下面各个步骤所有计算均在有限域GF(p)中进行;
用户计算向量Ag0=(f(PWg),f(2×PWg),...,f(N×PWg))并传递给认证服务器;
(2.2)认证服务器为该用户指定一个唯一的IDg,并计算N维球面方程
(a)认证服务器根据自身秘密保存的N个N维向量,计算N个向量
(b)把Agi的坐标记为(ai1,ai2,...,aiN),其中i=1、2、...、N,再加上用户传递的Ag0,Ag0坐标记为(a01,a02,...,a0N),利用N+1个向量Ag0、Ag1、...、AgN构造N维球面方程,代入球面方程
(x1-c1)2+(x2-c2)2+...+(xN-cN)2=R2
其中(c1,c2,...,cN)为N维球面的中心,R为该N维球面的半径,(x1,x2,...,xN)是球面上任意点;

然后分别将它们前一式减后一式,得到关于c1、c2、...、cN的线性方程组
如果在计算过程中,方程组的系数矩阵行列式为零,则重新选择IDg进行计算,这样保证方程组唯一确定该球面的中心C(c1,c2,...,cN);继而得到R2;然后就根据c1、c2、...、cN和R2确定球面方程,确定的球面方程就是下标为g的用户和认证服务器共享的秘密球面UCg,设该方程为
(x1-c1)2+(x2-c2)2+...+(xn-cn)2≡R2mod p
(2.3)认证服务器随机选择秘密球面UCg上除Ag0和Agi以外的N个点Bgi,Bgi=(bi1,bi2,...,biN);Bgi的每个坐标分量均在有限域GF(p)内找,Bgi的每个坐标具体求解如下
(A)找到N-2个数对即二次剩余对(eiq,diq),使得eiq≡diq2mod p,其中q=1、...、N-2,eiq、diq是有限域GF(p)中满足eiq≡diq2mod p条件的任意两个整数,并且满足
bi1≡(di1+c1)mod p
bi2≡(di2+c2)mod p
bi(N-2)≡(di(N-2)+cN-2)mod p
(B)再选择两对二次剩余对(eiz,diz),使得eiz≡diz2mod p,其中z=N-1、N,eiz、diz是有限域GF(p)中满足eiz≡diz2mod p条件的任意两个整数,并且满足

bi(N-1)≡(di(N-1)+cN-1)mod p
biN≡(diN+cN)mod p
上述步骤(A)和步骤(B)是N≥3时适用的情况,当N=2时则直接使用步骤(B);
重复N次计算,得到N个Bgi点,每次计算后验证一下,确保得到的N个点是互不相同的;
(2.4)认证服务器把p、f、IDg、和Bg1、Bg2、...、BgN以加密的形式保存在文件中并发送给用户,加密算法是使用现有的安全加密算法,用户保存加密后的文件,用户输入PIN码解密文件并得到所需信息,我们称该加密文件为“userInfo”。
5、根据权利要求1所述的一种基于N维球面的身份认证方法,其特征在于所述步骤(3)用户生成认证信息,具体包括以下步骤
(3.1)下标为g的用户Ug输入PIN码解密认证服务器传递的含有注册成功信息的加密文件“userInfo”,得到p、f、IDg、以及Bg1、Bg2、...、BgN;
(3.2)用户在客户端输入自身口令PWg,计算出Bg0=(f(PWg),f(2×PWg),...,f(N×PWg));
(3.3)用户根据Bg0加上文件“userInfo”中存储的N点Bg1、Bg2、...、BgN,一共N+1个点,利用这N+1个向量构造N维球面方程,重构出原来的秘密球面UCg;即将Bg0和Bg1、Bg2、...、BgN代入N维球面方程,得方程组
分别将它们前一式减后一式,得到关于c1、c2、...、cN的线性方程组
于是求解线性方程组即得中心坐标C(c1,c2,...,cN);
(3.4)用户计算w1=f(c1×t),w2=f(c2×t),...,wN=f(cN×t),其中t为时间戳,令Wg=(w1,w2,...,wN);
(3.5)过Wg和C做直线L,在极少见的情况下,如果Wg和C相同,重新选择时间戳t,再计算Wg;直线L的参数方程如下
其中k为自变量参数,y1、...、yN为因变量;
取L上除Wg和C之外的任意一点Mg(m1,...,mN),即k取除0和1外的有限域GF(p)中的任意数时对应的(y1,...,yN)值;
(3.6)用户将认证消息Meg={t,IDg,Bg1,Mg}发送给认证服务器,其中,t为时间戳,IDg是代表下标为g的用户身份的标识,Bg1是存储在文件“userInfo”中的在N维球面UCg上的一个点,Mg是生成的直线L上的任意一点,同一个用户每次生成的认证消息中,t和Mg是不同的,IDg和Bg1总是相同的。
6、根据权利要求1所述的一种基于N维球面的身份认证方法,其特征在于所述步骤(4)认证服务器验证用户认证信息,具体包括以下步骤
(4.1)认证服务器收到用户Ug的认证消息Meg,先检查时间戳是否有效,无效则认证失败,有效则进入下一步;
(4.2)认证服务器根据IDg及自身秘密向量集计算向量
Agi=(f(IDg×Si1),f(IDg×Si2),...,f(IDg×Sin))
把Agi的坐标记为(ai1,ai2,...,aiN),其中i=1、2、...、N,这样N个向量再加上认证消息中的点Bg1,一共N+1个向量,于是认证服务器能够重构与用户共享的球面UCg,利用这N+1个向量构造N维球面方程,即将Bg1、Ag1、Ag2、...、AgN代入N维球面方程
分别将它们的前一式减后一式,得到关于c1、c2、...、cN的线性方程组
于是求解线性方程组的中心坐标C(c1,c2,...,cN);
(4.3)认证服务器计算Wg=(f(c1×t),f(c2×t),...,f(cN×t),重构过点Wg及中心C的直线L
(4.4)认证服务器验证点Mg(m1,...,mN)是否在直线L上,若是则通过认证,否则认证失败,验证的过程如下
把m1、...、mN分别代入直线方程的每一个子式进行计算,得到
则有
若k1=k2=...=kN,则说明点Mg在直线L上,认证服务器接受用户身份;否则点Mg不在直线L上,用户身份验证失败。
全文摘要
本发明公开了一种基于N维球面的身份认证方法,认证服务器初始化后接受用户注册和身份验证;当有新用户注册时,用户根据自身选定的口令通过安全单向函数计算出向量提交给认证服务器,认证服务器为该用户指定一个IDg作为用户身份的标识;认证服务器结合自身的秘密向量和用户提交的向量确定一个N维球面;认证服务器在这个N维球面随机选择若干不同点,组成加密文件,通过安全信道传递给用户;当用户要求进行身份认证时,利用自身口令和含有身份认证标识的加密文件进行运算,并将结果传递给认证服务器,认证服务器进行计算后检查确定是否接受该用户身份。本发明能有效地减少认证服务器存储信息、计算量,防止假冒认证服务器。
文档编号H04L9/30GK101510875SQ200910038249
公开日2009年8月19日 申请日期2009年3月27日 优先权日2009年3月27日
发明者唐韶华, 华 张, 卢伯荣 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1