基于椭圆曲线对电子文档数字签名的安全保护方法

文档序号:7928364阅读:654来源:国知局
专利名称:基于椭圆曲线对电子文档数字签名的安全保护方法
技术领域
本发明属于信息安全技术领域,涉及一种基于椭圆曲线对电子文档数字 签名的安全保护方法。
背景技术
在人们的日常生活及工作中,许多事务需要当事者签名,例如文件、命 令、条约、协议、合同等需要签署,以使在法律层面能够认证、核准、生效。 在传统的以书面文件为载体的事务处理中,通常采用手写签字、印章、指纹 等方式作为书面签名,书面签名得到司法部门认可,具有法律意义。但是互 联网的快速发展使得人们通过网络实现快速、远距离的电子商务活动的需求 越来越高。在以计算机数据文件为基础的电子邮件、电子商务等的数字通信 中,传统的书面签名失去了它的意义,因为书面签名可被任意拷贝,所以数 字签名技术应运而生。
人们通过网络进行电子文档的传输中,可能面临各种安全威胁,例如, 文档的内容可能被盗取或篡改,文档的发送者可能是假冒的,文档的发送者 可能否认自己曾发送过该文档等。信息加密和数字签名是应对这些安全威胁 的重要手段。数字签名也称电子签名或电子签章。通俗的说,电子签名就是 通过密码技术对电子文档的电子形式的签名它的作用类似于手写签名或印
准确的说,数字签名是以密码学的方法对数据文件作用产生的一组代表签名者身份与数据完整性的数据信息,通常附加在数据文件的后面,数据文 件的接收者可以利用签名者的公钥作用在数字签名上,验证数据文件的真实 性、完整性。数字签名的应用包括身份鉴别,可辨别信源的真实性而防止 冒充;数据完整性保护,抵御数据的篡改或重排;不可抵赖性,信源事后不 可否认其发送过或生成过签名过的信息,可以防止当事人事后抵赖。
椭圆曲线上离散对数困难问题可以用来构造电子文档的数字签名算法,
目前属于这一类签名算法的有美国联邦数字签名标准ECDSA算法、韩国国 家数字签名标准EC-KCDSA算法等,目前可供选择的数字签名的算法比较 少,提出新的基于椭圆曲线的数字签名算法具有重要意义。

发明内容
本发明的目的是提供一种基于椭圆曲线对电子文档数字签名的安全保 护方法,解决了现有电子文档在网络环境下的完整性检验、文档的真实性、 和签名不可否认的问题。
本发明所采用的技术方案是, 一种基于椭圆曲线对电子文档数字签名的 安全保护方法,该方法按照以下步骤实施,
步骤l,生成系统参数进行如下设置,
设置一个素数p和一个正整数m 6w^A如果附>7,选取有限域GF (p)上的一个首项系数为1的m次不可约多项式/ 定义一个有限域
系数山6 &G^(>m",定义GF(yV上的椭圆曲线五^"F(^",
f乂 +矽=x3 + or2 + 6, (6-0) z/p二2 。》 1/ 二 x3 + w + 6, (4"3 + 0 (mod / ), p〉3.
一个素数g整除躯WF 舰"F 表示椭圆曲线五的阶数,即£ " 尸上点的总数,
一个E上的点G- &x , gy J生成一个阶为素数《的循环子群<0>, 公共参数是(户w, ^ 6, G, /z入其中《是基点 G= Cgx , gF ;>的阶,h称为余因子,
一个映射函数"〈G〉 , 一个安全Hash函数H :{0,1}' — Z9,
以及7个可有效计算的函数7。,^,^,^巧4,^,^ ,映射Z《x Z《 到Z"即7,:(^V) —^/二0,1,…,6,且使得7。(r,")-0,并将
所有的设置安装到签名双方的计算机系统中; 步骤2,用户密钥建立
对每个签名者随机选择私钥xe,计算相应的公钥是7= :cG,由 签名者保密私钥x,用来签名;公开公钥y供验证签名时使用; 步骤3,签名过程
签名者执行下列操作,生成消息m的签名m 59, 在区间[h ^/]中随机选择整数A,
计算椭圆曲线上的点7 = 6d, 17J=k ,并计算"义o/a
二 「忉4 (I, ") +巧5 CT, ") + 76 (T, ") 腦d 一 ^仏(f, V) +巧2 (T, V) + 〃3 ")
则得到消息m的签名是m sa发送消息签名对^m, r, s9给文档
的接收者;
步骤4,验证过程
验证者执行如下计算,验证一个声称的公钥是r的用户对消息m的签 名化w:1) 、收到消息M',表示为一个二进制位串;
2) 、收到消息M'的签名,表示为两个整数:t //7S';
计算hash值f/' =W人(T表示为一个长度为160bits的整数;
3) 、计算
w,r,,一,:,昨二:':;i6『,"—
3 w," ),( '")-
4) 、计算椭圆曲线点7 '= F2(s',r',cr)G + F3(s',r',"')y ;
5) 、如果验证式r'-" (ir )成立,那么签名就得到验证,验证者
可以确信收到的消息是持有与F相应的私钥X的持有者发送的;如果验证式
r'-;r (jt )不能成立,则签名验证失败。 本发明的有益效果是,通过本方法中的映射函数选择可以产生众多新的
数字签名方法,以提供电子文档传输过程中的完整性检验和不可否认性保
证,本发明的方法同时提供了大量新的数字签名方法,具有签名短、安全性
高的特点,确保电子文件在存储及网络传输中的安全。
具体实施例方式
下面结合附图
具体实施方式
对本发明进行详细说明。 为了实现基于椭圆曲线上离散对数困难问题的数字签名方案的一般化,
本发明采用的技术方案是进行系统参数生成,建立一个群,使得在该群中 计算离散对数问题困难;建立用户公钥/私钥对,给出签名算法,涉及7个可 有效计算的映射函数;最后给出签名的验证方程。签名方法的设计使得伪造 签名相当于求解公认的难解的离散对数问题,非常安全。本发明方法按照以下步骤实施,
步骤l,生成系统参数
设置一个素数户和一个正整数m 6wWA如果附>7,选取有限域GF (/0上的一个首项系数为1的m次不可约多项式/ 6:义定义一个有限域
系数"6 ^GF(^",定义GF(p"上的椭圆曲线5-5^^(^"
乂 = x3 + m: +(4<33 + 0(modp), z/>>3.
一个素数q整除WF 这里#£ "尸(^"表示椭圆曲线五
的阶数"W 上点的总数),
一个£上的点<3= ; gy J生成一个阶为素数9的循环子群<0>。
在一般的应用中,我们推荐选择?是一个至少160 bit的素数。 公共参数是(>,m, 6, G, g, /0,这里/2 = # WF (>w"々,其
中《是基点G^ , gy J的阶,/2称为余因子。
一个映射函数^:〈G〉 ">Zg, 一个安全Hash函数H :{0,1}* —么,
以及7个可有效计算的函数"o,^,^,"3,^,^,^ ,映射Z《x Z《 到Zq,即77,:(r,t/) —zg/二0,1,…,6,且使得77 0 (r,C/)#0,并将
所有的设置安装到签名双方的计算机系统中;这里的安全Hash函数可以取 SHA-1等。
歩骤2,用户密钥建立
对每个签名者随机选择私钥xe Z9 ,计算相应的公钥是7= xG,由
签名者保密私钥x,用来签名;公开公钥y供验证签名使用; 步骤3,签名过程为了生成消息MEfO, /"的签名0% S人签名者执行下列操作
在区间/7, ^T/中随机选择整数h
计算椭圆曲线上的点i - 6c〃KJ =W,计算r="&^
^,,x,r,t/)
=忉4 (r〃) +巧5 (7w) + 76 (r, u)丄mod 忉,(r,+巧2 (r, [/) + 73 (r, t/) "
则得到消息m的签名是(r, s),发送消息签名对(m, r, s)给文档
的接收者;
步骤4,验证过程
要验证一个声称的公钥是y的用户对消息M的签名(r, 50,验证者执
行如下计算
1) 、收到消息M,,表示为一个二进制位串;
2) 、收到消息M'的签名,表示为两个整数r'和s'; 计算hash值tT ), t/'表示为一个长度为160bits的整数;
3) 、计算
2 w(r',[/'),")-T74(r,t/') ^
/7Wr,〃、T72(n昨"。『,")-t75(广,〃') J F, (S , r ,) =--^-t^tt^-5-^mod《
4) 、计算椭圆曲线点^^^了',"')G +巧(m",;
5) 、如果2^="(7 ')成立,则签名就得到验证,验证者可以确信收到
的消息是持有与r相应的私钥x的持有者发送的,如果验证式r' ="(iT )
不能成立,则文件被改动、或者签名有错误,签名验证失败。
本发明对电子文档进行数字签名的保护方法,给出了一种基于椭圆曲线上离散对数困难问题的最一般数字签名方案族,并且给出了签名算法和验证 算法的具体步骤。本发明通过在新数字签名方案族中设计7个可选的映射, 构造出了大量现在还没有的新的基于椭圆曲线上离散对数的数字签名方案, 这些方案将可以提供大量的可选的基于椭圆曲线上离散对数困难问题的数 字签名算法。通过本算法进行数字签名后的文档,假如对原文做任何的改动,
都不能通过签名验证算法,这样可以保护文档的完整性;签名者在对电子文 档数字签名后不能否认其对文档做过签名,其他人不能伪造出有效的签名, 所以本方法可以提供不可否认性安全保护。本发明提供的方法对于不同文档 产生的签名是不同的,因此可以有效地解决书面签名可以被任意拷贝的问 题;本发明提供的数字签名保护方法可以有效地防止签名伪造,伪造签名相 当于求解公认的基于椭圆曲线上离散对数困难问题。本发明方法为国家、政 府、企事业单位、个人提供了电子文档数字签名的安全方法。 下面从密码理论来证明本发明数字签名方法的正确性。 如果所宣称的对消息M的签名(T, S)是严格按照签名算法执行的, 那么根据签名的生成步骤,则有如下等式成立
<formula>formula see original document page 10</formula>也即有<formula>formula see original document page 10</formula>
即<formula>formula see original document page 10</formula>所以有A^,7\")G +《GS,:r,")y = K; = i
也就是T-;r(/ )成立,所以,如果签名是正确生成的,则验证式T=;r(i )
一定成立。
应用本发明选择不同的映射函数,则可以产生新的数字签名算法,实现 电子文档的数字签名。 一般为了计算简单,建议取/7。(r,t/) = 1 。 实施例1
签名者首先选取并公布签名算法中的映射函数^(r,f/) 二 1 ,
7'(r,")二:r+[/, ;/2(7^) = , /73(r,t/) = rvt/ 仏(r,60二r十t/ 775(r,t/) = rAf/, 776(r,t/) = r+c/,兀(r) = r;这样就具体制定了 一个签名算法。 签名算法
签名者为了对电子文档M的签名,在区间[l, q-l]中随机选择整数A:, 计算椭圆曲线上的点r二 (xp K) =K},计算(r) =r; 计算消息的Hash值C7 = //(M);
则得到消息M的签名是(r,s),这里
A^(r,t/) + x/72(r,") + 773(r,t/)」 >(r冊)+ jc(r a + t + u 、 」
=-^-^-^-) mod《
验证过程给定消息Af的签名(r,幻,验证者计算<formula>formula see original document page 12</formula>
最后检查是否T-;r (R),如果验证通过,则(T, S)是消息M的一个 有效签名;如果不能通过验证式,则说明文件被改动,或者签名有错误,签
名验证失败。 实施例2
签名者首先选取并公布签名算法中的映射函数/7。(r,c/)二1 , 仏(r,")二r, 772(r,f/) = r—", /73(r,") = t/, 7;4(r,c/) = r + t/,
/75(r,") = o, /76(r,[/) = :r-2" , " (r) =r;这样就具体确定了一个
签名算法。
签名者为了对电子文档M的签名,在区间[l, q-l]中随机选择整数yt, 计算椭圆曲线上的点R^ ", =K},计算T=;r (R) =R; 计算消息的Hash值f/ = //(M);则得到消息M的签名是(r,S),
这里
<formula>formula see original document page 12</formula>验证过程,给定消息M的签名(T, S),验证者计算U = H(M),
F2(、r々)一,,:。二)"6(口)
m od《
,,r,^,,")?二)
仏(r,")r"口) + ;74(r,t/) "
一 m od《
最后检査是否T-;r (R),如果验证通过,则(T, S)是消息M的一个 有效签名;如果不能通过验证式,则文件被改动,或者签名有错误,签名验 证失败。
通过选取不同的可有效计算的函数7。,^,/72,/73,74,75,76 ,
7/,:(r,[/)— 、 ,0,1,…,6 ,就可以得到多种不同的数字签名算法。
综上所述,本发明提出的数字签名保护方法,通过系统参数建立阶段的 映射函数选取,能产生大量的新的基于椭圆曲线上离散对数困难问题的数字 签名算法,通过选取适当映射变换,能产生新的安全性更高、伪造签名的难 度更大的数字签名算法,用于提供文档传输中的完整性、真实性和不可否认 性的安全保护。
权利要求
1、一种基于椭圆曲线对电子文档数字签名的安全保护万法,其特征在于,该方法按照以下步骤实施,步骤1,生成系统参数进行如下设置,设置一个素数p和一个正整数m(m≥1),如果m>1,选取有限域GF(p)上的一个首项系数为1的m次不可约多项式f(x),定义一个有限域GF(pm),系数a,b(∈GF(pm)),定义GF(pm)上的椭圆曲线E=E(GF(pm)),一个素数q整除#E(GF(pm)),#E(GF(pm))表示椭圆曲线E的阶数,即E(GF(pm)上点的总数,一个E上的点G=(gx;gY)生成一个阶为素数q的循环子群<G>,公共参数是(p,m,a,b,G,q,h),h=#(GF(pm))/q,其中q是基点G=(gx;gY)的阶,h称为余因子,一个映射函数π<G>→Zq,一个安全Hash函数H{0,1}*→Zq,以及7个可有效计算的函数η0,η1,η2,η3,η4,η5,η6,映射Zq×Zq到Zq,即ηi:(T,U)→zq i=0,1,…,6,且使得η0(T,U)≠0,并将所有的设置安装到签名双方的计算机系统中;步骤2,用户密钥建立对每个签名者随机选择私钥x∈Zq,计算相应的公钥是Y=xG,由签名者保密私钥x,用来签名;公开公钥Y供验证签名时使用;步骤3,签名过程签名者执行下列操作,生成消息M的签名(T,S),在区间[1,q-1]中随机选择整数k,计算椭圆曲线上的点R=(x1,Y1)=kG,并计算T=π(R),U=H(M),则得到消息M的签名是(T,S),发送消息签名对(M,T,S)给文档的接收者;步骤4,验证过程验证者执行如下计算,验证一个声称的公钥是Y的用户对消息M的签名(T,S)1)、收到消息M′,表示为一个二进制位串;2)、收到消息M′的签名,表示为两个整数T′和S′;计算hash值U′=H(M′),U′表示为一个长度为160bits的整数;3)、计算4)、计算椭圆曲线点R′=F2(S′,T′,U′)G+F3(S′,T′,U′)Y;5)、如果验证式T′=π(R′)成立,那么签名就得到验证,验证者可以确信收到的消息是持有与Y相应的私钥x的持有者发送的;如果验证式T′=π(R′)不能成立,则签名验证失败。
全文摘要
本发明公开了一种基于椭圆曲线对电子文档数字签名的安全保护方法,该方法按照以下步骤实施,生成系统参数设置椭圆曲线等公共参数、映射函数及多个可有效计算的函数;用户密钥建立对每个签名者随机选择私钥,计算相应的公钥,由签名者保密私钥,用来签名,公开公钥供验证签名使用;签名过程利用私钥,生成消息的签名,并发送消息签名对给文档的接收者;验证过程收到消息及签名,利用方案中的验证式检验,如果验证式成立,那么签名就得到验证,验证者可以确信收到的消息是持有与公钥相应的私钥的发送者发送的。本发明的数字签名方法,能产生多个基于椭圆曲线数字签名算法,用于提供文档传输中的完整性、真实性和不可否认性的安全保护。
文档编号H04L9/32GK101441693SQ20081023240
公开日2009年5月27日 申请日期2008年11月25日 优先权日2008年11月25日
发明者张亚玲, 王尚平, 王晓峰 申请人:西安理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1