一种面向移动微技的数字签名认证方法

文档序号:7861122阅读:265来源:国知局
专利名称:一种面向移动微技的数字签名认证方法
技术领域
本发明涉及移动互联网安全领域,具体涉及移动Widget的一种数字签名认证方法。
背景技术
微技(Widget)业务源于2003年在苹果Mac OS X操作系统上最早研发的一种可以添加Java Script小程序的平台,这个平台上的小程序后来逐渐被扩展到以桌面和互联网为主要特征的各种更加丰富的应用。由于Widget的发展带有明显的互联网特征,W3C的文档也把微技称为客户端互联网应用(Client-Side Web Applications), W3C组织对互联网微技(Web Widget)给出了定义微技是一类能够显示和更新本地数据或Web数据的客户端应用程序,并能够打包成单一的下载包安装到客户端设备上。W3C关于微技的定义突出了客户端应用程序、能够显示和更新数据、能够打包成单一的下载包进行安装等。移动微技(Mobile Widget)是指运行于移动终端上的微技。由于手机终端屏幕相对较小,可呈现的信息量相对较少,输入网址不方便,交互操作慢等原因,微技的应用框架非常适合手机终端使用互联网应用。很多情况下,移动用户在用浏览器上网时很多无用信息占用了稀缺的屏幕资源,导致手机上网用户体验较差,而移动微技不仅可以独立于浏览器运行以有效地利用手机屏幕,而且可以更加快速、方便地访问移动互联网的特定数据。移动微技业务具备更有效利用屏幕和更方便访问互联网的特点,因此能够给手机用户带来良好的呈现方式和互联网体验。随着手机数据带宽的不断增长,手机屏幕的不断增大,移动微技业务的应用会越来越广泛。手机、个人计算机、互联网的软件服务共享将是未来互联网发展的趋势,移动微技可以看作是互联网软件服务在手机终端上的缩影。移动微技具有小巧轻便、开发成本低、基于标准Web技术,开发门槛低,潜在开发者众多、与操作系统耦合度低和功能完整等特点,用户可以通过移动微技实现个性化的用户界面,是手机应用个性化的突破口。另外,移动微技区别于互联网微技最大的不同在于可以充分的应用移动增值业务,例如基于短信、位置服务等通信能力或运营商应用平台提供的信息开发的应用,因此移动微技业务已经逐渐得到越来越多运营商、手机制造商和软件开发商的关注和重视。数字签名是一种电子签名技术,发送者根据消息产生摘要,并对摘要用自身的签名私钥进行加密。消息和用自身签名私钥加密的数字摘要组合成为数字签名。缺少数字签名的移动Widget包可能被未经授权修改,且最终用户无法得知移动Widget的来源是其所信任的可靠来源,这些都可能导致用户的信息泄露或其他安全问题。因此对移动widget包进行数字签名,验证签名者的身份,确保信息来源的可靠性是非常有必要的。

发明内容
本发明的目的在于提供移动Widget的一种数字签名认证方法,以验证消息发送方的身份,并保证消息内容的完整性、正确性以及可靠性。为了解决现有技术中问题,本发明提供了一种面向移动微技的数字签名认证方法,包括以下步骤产生证书开发者向认证机构中的注册机构RA提交开发者证书申请,由RA对相关内容进行审核并决定是否审批通过该证书申请的请求,通过后RA将申请请求及审批通过的信息提交给认证中心CA,由CA进行证书的签发;签名证书申请被批准注册之后,RA端的应用程序初始化申请者的信息,给开发者颁发证书,发送私钥,CA在LDAP目录服务器中添加证书申请人的有关信息,开发者收到私钥之后,在开发平台上对编译通过的程序进行签名,上传至Web服务器;验证普通用户从Web服务器上下载应用程序之后,再从LADP下载相应开发者的公钥证书,对下载后的程序进行验证。作为本发明的进一步改进,认证机构的密钥管理系统包括负责生成密钥的密钥生成子系统,负责存放密钥的密钥库子系统,为用户提供密钥恢复功能的密钥恢复子系统,负责对整个密钥系统提供配置管理的密钥管理子系统,包含KM ADMIN终端和AUDIT审计终 端的终端系统。作为本发明的进一步改进,开发者利用私钥对代码m进行签名,椭圆曲线数字签名方案签名的生成过程如下I)随机或伪随机地选择一个整数k e EZn* ;2)计算公钥Q和X1除以η的余数rQ=IiG=(X1J1)式中X1, Y1——椭圆曲线上的横坐标和纵坐标;Γ=χ^ο η如果r=0,则返回到I);3)计算k_l对η的余数s’s’ = k^modn4)计算信息摘要e=SHA-l (m)5)计算s=kTl (e+dr)modn如果s=0,则返回到I), (r, s)是A对消息m的签名。作为本发明的进一步改进,在客户端对下载程序进行验证客户端验证(r,s)是A对消息m的签名的验证方法流程如下11)验证r,s是[l,n-l]中的整数;12)计算信息摘要ee=SHA-l (m)13)计算s_l对η的余数w = s_1modn14)分别计算ew和rw对η的余数U1=Gwmodnu2=rwmodn15)计算验证信息
X=U1G+!^= (X1, y)。作为本发明的进一步改进,安全椭圆曲线选取包括以下四种方法第一有限域GF(q)上随机生成一椭圆曲线,直接计算其阶,判断阶是否为大素数或含大素数因子,若是取出确定,否则继续选取曲线,直至符合条件;第二 取具有一定特殊性椭圆曲线的系数,计算该椭圆曲线的阶,对该阶进行判断,直至找到所需要的安全曲线;第三如果q=2m,其中m能被一个比较小的整数d整除,我们首先在有限域GF (Ql)(qi=2d)上选择椭圆曲线E'并计算其阶,根据此值,利用Weil定理计算该曲线在其扩域GF(q)上的阶,若此阶符合安全标准,我们再找曲线E'在域GF(q)上的嵌入E,则E即为所需的安全椭圆曲线;第四首先给出具有安全条件的曲线阶,然后构造具有此阶的椭圆曲线。 作为本发明的进一步改进,椭圆曲线的生成方法如下A.随机产生一个长度为g的比特串seedE,g>160 ;B.计算H=SHAl (seedE),然后把H的最右边V比特赋给C。;C.把Ctl的最左边位(即第V比特)设置为0,把变化后的Ctl赋给W0 ;该捕捉确保了r〈p ;D.把g比特的seedE转换为整数,记做z ;E.循环处理,i从I到s, SiMz+iJmoc^g,把Si作为比特串看待,计算Wi=SHAl (Si);F.将所有的Wi以如下形式合并成wff=ff0 Iw1I |... I IWsI I代表连接;G.将W比特串转化为整数r ;H.如果r=0,或者4r+27=0modp ;那么回到步骤I);I.随机产生 a、b, a, b e Fp。如a=r, b=r ;J.到此,求基于Fp的椭圆曲线方程E y2=x3+ax+b ;K.输出(seedE, a, b)。作为本发明的进一步改进,椭圆密码算法如下给出直接计算2SP,1 ( s<m的公式,先推导出2SP,1 ( s<m的表达式,记
2kP= (xk, yk),则
fΛ2 (ΛXk 二 ^-i+— + +—+ *
I) I f \V2^1 = X2^1 + + ^ Xk + Xk
IXk-l)把(xk,yk)直接表示A = — + axVk形式,其中ak,bk, ck都是关于x,y的整式,
Ck Vk
将七=—+aJ\ 带入递推式,就得到了 ak,bk, ck的递推公式如下
Ck CkCk= δ 2, ak= Y 2+ δ γ , bk=a\—彳 δ γ xk其中δ =8^0^!, Y =a2k_1+bk_1+ck_1,而 a0=x, b0=y, C0=I由此计算公式,来估计改进过的方法计算量,在改进的方法中计算2SP, I < s < m的运算量为4s次乘法,4s次平方,I次求逆,而逐次计算2SP,l^s^m则需要2s次乘方,S次求逆。本发明将公钥基础设施PKI与椭圆曲线加密机制相结合,实现了移动widget开发者的证书申请、证书颁发、证书获取、widget签名以及widget验证。在此基础上,通过对椭圆曲线算法中传统的标量乘运算改进,加快了 widget的签名与验证的速度。鉴权根据第三方权威机构CA颁发的开发者证书,使得开发者身份具有可信性。完整性传送移动Widget的双方都总希望确认Widget在传输过程中未被修改,数字签名技术可以验证消息传送过程中的完整性。不可抵赖性移动Widget的安装者可以通过数字签名来防止后续的抵赖行为,因为他可以出示开发者的签名文件给别人看,来证明该移动Widget的来源。


图I是本发明系统总体架构图; 图2是本发明密钥管理系统逻辑结构图;图3是本发明开发者系统模块图;图4是本发明数据签名处理流程图;图5是本发明验证数据签名处理流程图。
具体实施例方式下面结合附图对本发明做进一步说明。系统将公钥基础设施PKI与椭圆曲线加密机制相结合,实现了移动widget开发者的证书申请、证书颁发、证书获取、widget签名以及widget验证。在此基础上,通过对椭圆曲线算法中传统的标量乘运算改进,加快了 widget的签名与验证的速度。系统的整体结构如图I所示整个系统分为3个模块,开发者模块、认证机构模块、客户端模块。系统总体流程如下I)产生证书开发者需要首先向注册机构RA提交开发者证书申请,由RA对相关内容进行审核并决定是否审批通过该证书申请的请求。通过后RA将申请请求及审批通过的信息提交给相应的认证中心CA,由CA进行证书的签发。2)签名证书申请被批准注册之后,RA端的应用程序初始化申请者的信息,给开发者颁发证书,发送私钥,CA在目录服务器(LDAP)中添加证书申请人的有关信息,开发者收到私钥之后,就能在开发平台上对编译通过的程序进行签名,上传至Web服务器。3)验证普通用户从Web服务器上下载应用程序之后,再从LADP下载相应开发者的公钥证书,对下载后的程序进行验证。I、下面将对系统的各个主要模块进行介绍I. I认证机构模块核心功能设计,如图2所示认证机构是公钥基础设施(PKI)的核心机构。它是数字证书的签发机构。它的关键问题是如何实现密钥管理。图2即为密钥管理系统逻辑结构图。它主要由以下5个部分组成负责生成密钥的密钥生成子系统,负责存放密钥的密钥库子系统,为用户提供密钥恢复功能的密钥恢复子系统,负责对整个密钥系统提供配置管理的密钥管理子系统,包含密钥管理终端(KM ADMIN)和审计终端(AUDIT)的终端系统。I. 2开发者模块核心功能设计,如图3所示这是开发者系统的主要模块图。开发者开发完成的代码,经GNU编译器(Linux下的C语言编译器,GCC)编译和跨平台编译引擎之后,经过Widget的安全模块才能转换到各自移动平台的执行程序;这里主要介绍在图中虚线框的部分,根据开发者的开发等级匹配相应的数字签名证书,对编译完成的程序进行数字签名。椭圆曲线数字签名方案(EOTSA)是数字签名算法(DSA)体制在椭圆曲线上的移植。由于系统还没有集成,所以目前是针对每个模块分别做的一些事例。椭圆曲线的主要参数包括定义在有限域GF(q)上的椭圆曲线E,GF(q)的特征是 P,E上的GF (q)-有理点的个数#E (GF (q))可被一个大素数η整除,一个基点G e E (GF (q))。我们可记D= {q, FR, a, b, G, n, h}和密钥对{d, Q}, SHA_1。各参数的含义如下所示I) q-有限域的元素个数,这里q=p或者q=2m ;2)FR—有限域中元素的表示方法(例如多项式表示或正规基表示等);3) a、b-GF (q)上的椭圆曲线 y2=x3+ax+b 的参数;4) G——E (GF (q))中的一个点;5) η-一个素数,n ^ 2圃且《 ^ 4^/g ;6)h—余因子,h远小于n,利用h可以较快找到满足上面条件的基点G :随机取G’ e E(GF(q)),计算 hG,如果 hG 关 0,则令 G=hG'; 7) d——签名私钥,d e EZn* ;8) Q——签名验证公钥,Q=dG ;9) SHA-I——美国NIST和NSA设计的一种安全hash算法,输入信息长度一般都小于 264bit。开发者A利用该私钥对代码m进行签名,E⑶SA签名的生成过程如图4所示6)随机或伪随机地选择一个整数k e EZn* ;7)计算公钥Q和X1除以η的余数rQ=IiG=(X1J1) (2-1)式中X1, Y1——椭圆曲线上的横坐标和纵坐标;Γ=χ^ο η (2-2)如果r=0,则返回到I);8)计算k_l对η的余数s’s' =k_1modn (2-3)9)计算信息摘要e=SHA-l (m) (2-4)10)计算s=kTl (e+dr)modn (2-5)如果s=0,则返回至Ij I), (r, s)是A对消息m的签名。三、客户端模块核心功能设计
客户端模块主要完成的工作有两个I)从服务器上下载开发者开发的程序;2)对下载的程序进行开发者认证,以便安全使用。在客户端需要完成的工作,主要是对下载程序进行验证。用户B验证(r,s)是A 对消息m的签名的验证算法流程如下所示I)验证r,s是[l,n-l]中的整数;2)计算信息摘要ee = SHA-I (m)(2-6)3)计算s_l对η的余数W=S-Imodn (2-7)4)分别计算ew和rw对η的余数U1 = ewmodn(2-8)u2 = rwmodn(2-9)5)计算验证信息X = u1G+u2Q=(x1, Y1)(2-10)程序实现的流程如图5所示。2、关键技术介绍2. 2椭圆密码算法的实现与改进2. 2. I椭圆曲线的选取曲线的选取对系统的安全性有很大的影响,选择的曲线如果不具有很强的密码安全特性,则在此基础上建立起来的密码系统将会很脆弱。为了抵抗所有已知的对ECDLP的攻击,密码方案中使用的椭圆曲线的参数应该谨慎选择。首先异常曲线是极不适合用来构建密码系统的曲线,因此一定要避免,只要保证#E(FP)关P即可排除异常曲线。其次,最好的通用攻击方法是将Pohlig-Hellman算法和Pollard’ srho算法相结合,该方法的运行时间为完全指数时间Of#),其中P是η的最大素因子。为了抵抗该种攻击,所选的曲线的阶中必须包含一个足够大的因子η,椭圆曲线参数的选择要求η含有大素数因子P,P应该足够大,以使得P的计算量不可实际实现(如p>2im\安全椭圆曲线选取主要有以下四种方法I)有限域GF(q)上随机生成一椭圆曲线,直接计算其阶,判断阶是否为大素数或含大素数因子,若是取出确定,否则继续选取曲线,直至符合条件。2)取具有一定特殊性椭圆曲线的系数,计算该椭圆曲线的阶,对该阶进行判断,直至找到所需要的安全曲线。3)如果q = 2m,其中m能被一个比较小的整数d整除,我们首先在有限域GF(Q1)(Q1 = 2d)上选择椭圆曲线E’并计算其阶,根据此值,利用Weil定理计算该曲线在其扩域GF(q)上的阶,若此阶符合安全标准,我们再找曲线E'在域GF(q)上的嵌入E,则E即为所需的安全椭圆曲线。4)首先给出具有安全条件的曲线阶,然后构造具有此阶的椭圆曲线。
2. 2. 2随机曲线的生成2. 2. 2. I单向散列函数散列(Hash)函数(又称为哈希函数、杂凑函数),是被设计为基于通过特定压缩函数的不断重复“压缩”输入的分组和前一次压缩处理结果的过程,直到整个消息都被压缩完毕,最后的输出作为整个消息的散列值。换句话说,就是输入一个长度不固定的字符串,返回一串定长度的字符串,又称Hash值。2. 2. 2. 2曲线的生成基于Fp 的捕圆曲线 E :y2=x3+ax+b ;a, b e Fp,4a3+27b2 幸 O (modp)。其中,ANSIX9. 62推荐P至少为160bit,下面的算法使用单向散列函数SHA-1。为了验证曲线方程是随机产生的,使用了一个随机的比特串(seedE),其也作为随机产生的证据。
下面的算法输入是P,P为一个大的素数。输出是一个至少160bit的比特串seedE、a、b, a, b e Fp。另外,算法中使用如下几个变量t = [log2p ]s=[(t_l)/160]v=t-160s可以理解为t表示P的二进制长度或长度减一,s表示P有多少个整160比特长度,V为P的串除以160之后的余量。算法如下L.随机产生一个长度为g的比特串seedE,g>160 ;Μ.计算H=SHAl (seedE),然后把H的最右边V比特赋给C。;N.把Ctl的最左边位(即第V比特)设置为0,把变化后的Ctl赋给Wtl ;该捕捉确保了r〈p ;O.把g比特的seedE转换为整数,记做z ;P.循环处理,i从I到s, SiKz+Dmoc^g,把Si作为比特串看待,计算Wi=SHAl (Si);Q.将所有的Wi以如下形式合并成w:w=wQ| Iw1I ... |WS| I代表连接R.将W比特串转化为整数r ;S.如果r=0,或者4r+27=0modp ;那么回到步骤I);T.随机产生 a、b, a, b e Fp。如a=r, b=r。U.到此,求基于Fp的椭圆曲线方程E y2=x3+ax+b ;V.输出(seedE, a, b)。2. 2. 2. 3将明文消息嵌入到椭圆曲线上使用椭圆曲线构造密码体制前,需要将明文消息镶嵌到椭圆曲线上,作为椭圆曲线上的点。设明文消息是,k是一个足够大的整数,使得将明文消息镶嵌到椭圆曲线上时,错误的概率是2_k。实际情况中,k可以在3(Γ50之间取值。不防取k=30,对明文消息m,如下计算一系列X X= {m k+j, j=0, I, 2, . . . } = {30m, 30m+1, 30m+2, . . . }直到x3+ax+b (modp)是平方根,即得到捕圆曲线上的点+ ax + 5 j。因为在O
到P的整数中,有一半是模P的平方剩余,一半是模P的非平方剩余。所以k次找到X,使得x3+ax+b (modp)是一平方根不小于1-2'
反过来,为了从椭圆曲线上的点(x,y)得到明文消息m,只须求w = |x/30|。2. 2. 3椭圆密码算法的改进2. 2. 3. I前人工作分析根据椭圆曲线倍点公式,设P= (X,y), E(F2m), 2P= (X1, Y1),其中
权利要求
1.一种面向移动微技的数字签名认证方法,其特征在于 产生证书开发者向认证机构中的注册机构RA提交开发者证书申请,由RA对相关内容进行审核并决定是否审批通过该证书申请的请求,通过后RA将申请请求及审批通过的信息提交给认证中心CA,由CA进行证书的签发; 签名证书申请被批准注册之后,RA端的应用程序初始化申请者的信息,给开发者颁发证书,发送私钥,CA在LDAP目录服务器中添加证书申请人的有关信息,开发者收到私钥之后,在开发平台上对编译通过的程序进行签名,上传至Web服务器; 验证普通用户从Web服务器上下载应用程序之后,再从LADP下载相应开发者的公钥证书,对下载后的程序进行验证。
2.根据权利要求I所述的一种面向移动微技的数字签名认证方法,其特征在于认证机构的密钥管理系统包括负责生成密钥的密钥生成子系统,负责存放密钥的密钥库子系统,为用户提供密钥恢复功能的密钥恢复子系统,负责对整个密钥系统提供配置管理的密钥管理子系统,包含KMADMIN终端和AUDIT审计终端的终端系统。
3.根据权利要求I或2所述的一种面向移动微技的数字签名认证方法,其特征在于所述开发者利用私钥对代码m进行签名,椭圆曲线数字签名方案签名的生成过程如下 .1)随机或伪随机地选择一个整数ke EZn* ; . 2)计算公钥Q和X1除以η的余数r Q=kG= (X1, Y1) 式中X1, Yi——椭圆曲线上的横坐标和纵坐标;T=X1Inodn 如果r=0,则返回到I); .3)计算k_l对η的余数S, s’ = k 1Hiodn .4)计算信息摘要 e=SHA-l(m) .5)计算s=kTl (e+dr)modn 如果s=0,则返回到I), (r, s)是A对消息m的签名。
4.根据权利要求3所述的一种面向移动微技的数字签名认证方法,其特征在于 在客户端对下载程序进行验证 客户端验证(r,s)是A对消息m的签名的验证方法流程如下 .11)验证r,s是[1,η-I]中的整数; . 12)计算信息摘要e e=SHA-l(m) .13)计算si对η的余数 w = s 1Iiiodn .14)分别计算ew和rw对η的余数 U1=Gwmodnu2=rwmodn15)计算验证信息 X=UpU2Q=U1, Yi)。
5.根据权利要求4所述的一种面向移动微技的数字签名认证方法,其特征在于 安全椭圆曲线选取包括以下四种方法 第一有限域GF(q)上随机生成一椭圆曲线,直接计算其阶,判断阶是否为大素数或含大素数因子,若是取出确定,否则继续选取曲线,直至符合条件; 第二 取具有一定特殊性椭圆曲线的系数,计算该椭圆曲线的阶,对该阶进行判断,直至找到所需要的安全曲线; 第三如果q=2m,其中m能被一个比较小的整数d整除,我们首先在有限域GF(qi)(qi=2d)上选择椭圆曲线E'并计算其阶,根据此值,利用Weil定理计算该曲线在其扩域GF(q)上的阶,若此阶符合安全标准,我们再找曲线E'在域GF(q)上的嵌入E,则E即为所需的安全椭圆曲线; 第四首先给出具有安全条件的曲线阶,然后构造具有此阶的椭圆曲线。
6.根据权利要求5所述的一种面向移动微技的数字签名认证方法,其特征在于 椭圆曲线的生成方法如下 A.随机产生一个长度为g的比特串seedE,g>160; B.计算H=SHAl(seedE),然后把H的最右边v比特赋给C。; C.把Ctl的最左边位(即第V比特)设置为O,把变化后的Ctl赋给W0;该捕捉确保了 r〈p ; D.把g比特的seedE转换为整数,记做z; E.循环处理,i从I到s,SiMz+Dmoc^g,把Si作为比特串看待,计算Wi=SHAl (Si); F.将所有的Wi以如下形式合并成W=W=W0 IwJ |... I Iffs I I代表连接; G.将W比特串转化为整数r; H.如果r=0,或者4r+27=0modp;那么回到步骤I); I.随机产生a、b, a, b e Fp。如a=r, b=r ; J.到此,求基于Fp的椭圆曲线方程E y2=x3+ax+b ; K.输出(seedE, a, b)。
7.根据权利要求6所述的一种面向移动微技的数字签名认证方法,其特征在于椭圆密码算法如下 给出直接计算2SP, I ( s Sm的公式,先推导出2SP, I ( s Sm的表达式,记2kP= (xk, yk),则
全文摘要
本发明提供了一种面向移动微技的数字签名认证方法,包括以下步骤产生证书开发者向认证机构中的注册机构RA提交开发者证书申请,由RA对相关内容进行审核并决定是否审批通过该证书申请的请求,通过后RA将申请请求及审批通过的信息提交给认证中心CA,由CA进行证书的签发;签名证书申请被批准注册之后,RA端的应用程序初始化申请者的信息,给开发者颁发证书,发送私钥,CA在LDAP目录服务器中添加证书申请人的有关信息,开发者收到私钥之后,在开发平台上对编译通过的程序进行签名,上传至Web服务器;验证。本发明将公钥基础设施PKI与椭圆曲线加密机制相结合,实现了移动widget开发者的证书申请、证书颁发、证书获取、widget签名以及widget验证。
文档编号H04W12/06GK102883321SQ20121035529
公开日2013年1月16日 申请日期2012年9月21日 优先权日2012年9月21日
发明者王轩, 张加佳, 赵海楠, 蒲成燕 申请人:哈尔滨工业大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1