CN101441693A - 基于椭圆曲线对电子文档数字签名的安全保护方法 - Google Patents
基于椭圆曲线对电子文档数字签名的安全保护方法 Download PDFInfo
- Publication number
- CN101441693A CN101441693A CNA2008102324052A CN200810232405A CN101441693A CN 101441693 A CN101441693 A CN 101441693A CN A2008102324052 A CNA2008102324052 A CN A2008102324052A CN 200810232405 A CN200810232405 A CN 200810232405A CN 101441693 A CN101441693 A CN 101441693A
- Authority
- CN
- China
- Prior art keywords
- prime
- eta
- signature
- message
- elliptic curve
- 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
Abstract
本发明公开了一种基于椭圆曲线对电子文档数字签名的安全保护方法,该方法按照以下步骤实施,生成系统参数:设置椭圆曲线等公共参数、映射函数及多个可有效计算的函数;用户密钥建立:对每个签名者随机选择私钥,计算相应的公钥,由签名者保密私钥,用来签名,公开公钥供验证签名使用;签名过程:利用私钥,生成消息的签名,并发送消息签名对给文档的接收者;验证过程:收到消息及签名,利用方案中的验证式检验,如果验证式成立,那么签名就得到验证,验证者可以确信收到的消息是持有与公钥相应的私钥的发送者发送的。本发明的数字签名方法,能产生多个基于椭圆曲线数字签名算法,用于提供文档传输中的完整性、真实性和不可否认性的安全保护。
Description
技术领域
本发明属于信息安全技术领域,涉及一种基于椭圆曲线对电子文档数字签名的安全保护方法。
背景技术
在人们的日常生活及工作中,许多事务需要当事者签名,例如文件、命令、条约、协议、合同等需要签署,以使在法律层面能够认证、核准、生效。在传统的以书面文件为载体的事务处理中,通常采用手写签字、印章、指纹等方式作为书面签名,书面签名得到司法部门认可,具有法律意义。但是互联网的快速发展使得人们通过网络实现快速、远距离的电子商务活动的需求越来越高。在以计算机数据文件为基础的电子邮件、电子商务等的数字通信中,传统的书面签名失去了它的意义,因为书面签名可被任意拷贝,所以数字签名技术应运而生。
人们通过网络进行电子文档的传输中,可能面临各种安全威胁,例如,文档的内容可能被盗取或篡改,文档的发送者可能是假冒的,文档的发送者可能否认自己曾发送过该文档等。信息加密和数字签名是应对这些安全威胁的重要手段。数字签名也称电子签名或电子签章。通俗的说,电子签名就是通过密码技术对电子文档的电子形式的签名它的作用类似于手写签名或印章。
准确的说,数字签名是以密码学的方法对数据文件作用产生的一组代表签名者身份与数据完整性的数据信息,通常附加在数据文件的后面,数据文件的接收者可以利用签名者的公钥作用在数字签名上,验证数据文件的真实性、完整性。数字签名的应用包括:身份鉴别,可辨别信源的真实性而防止冒充;数据完整性保护,抵御数据的篡改或重排;不可抵赖性,信源事后不可否认其发送过或生成过签名过的信息,可以防止当事人事后抵赖。
椭圆曲线上离散对数困难问题可以用来构造电子文档的数字签名算法,目前属于这一类签名算法的有美国联邦数字签名标准ECDSA算法、韩国国家数字签名标准EC-KCDSA算法等,目前可供选择的数字签名的算法比较少,提出新的基于椭圆曲线的数字签名算法具有重要意义。
发明内容
本发明的目的是提供一种基于椭圆曲线对电子文档数字签名的安全保护方法,解决了现有电子文档在网络环境下的完整性检验、文档的真实性、和签名不可否认的问题。
本发明所采用的技术方案是,一种基于椭圆曲线对电子文档数字签名的安全保护方法,该方法按照以下步骤实施,
步骤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)0,#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′)不能成立,则签名验证失败。
本发明的有益效果是,通过本方法中的映射函数选择可以产生众多新的数字签名方法,以提供电子文档传输过程中的完整性检验和不可否认性保证,本发明的方法同时提供了大量新的数字签名方法,具有签名短、安全性高的特点,确保电子文件在存储及网络传输中的安全。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
为了实现基于椭圆曲线上离散对数困难问题的数字签名方案的一般化,本发明采用的技术方案是:进行系统参数生成,建立一个群,使得在该群中计算离散对数问题困难;建立用户公钥/私钥对,给出签名算法,涉及7个可有效计算的映射函数;最后给出签名的验证方程。签名方法的设计使得伪造签名相当于求解公认的难解的离散对数问题,非常安全。
本发明方法按照以下步骤实施,
步骤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>。
在一般的应用中,我们推荐选择q是一个至少160bit的素数。
公共参数是(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,并将所有的设置安装到签名双方的计算机系统中;这里的安全Hash函数可以取SHA-1等。
步骤2,用户密钥建立:
对每个签名者随机选择私钥x∈Zq,计算相应的公钥是Y=xG,由签名者保密私钥x,用来签名;公开公钥Y供验证签名使用;
步骤3,签名过程:
为了生成消息M∈{0,1}*的签名(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′)不能成立,则文件被改动、或者签名有错误,签名验证失败。
本发明对电子文档进行数字签名的保护方法,给出了一种基于椭圆曲线上离散对数困难问题的最一般数字签名方案族,并且给出了签名算法和验证算法的具体步骤。本发明通过在新数字签名方案族中设计7个可选的映射,构造出了大量现在还没有的新的基于椭圆曲线上离散对数的数字签名方案,这些方案将可以提供大量的可选的基于椭圆曲线上离散对数困难问题的数字签名算法。通过本算法进行数字签名后的文档,假如对原文做任何的改动,都不能通过签名验证算法,这样可以保护文档的完整性;签名者在对电子文档数字签名后不能否认其对文档做过签名,其他人不能伪造出有效的签名,所以本方法可以提供不可否认性安全保护。本发明提供的方法对于不同文档产生的签名是不同的,因此可以有效地解决书面签名可以被任意拷贝的问题;本发明提供的数字签名保护方法可以有效地防止签名伪造,伪造签名相当于求解公认的基于椭圆曲线上离散对数困难问题。本发明方法为国家、政府、企事业单位、个人提供了电子文档数字签名的安全方法。
下面从密码理论来证明本发明数字签名方法的正确性。
如果所宣称的对消息M的签名(T,S)是严格按照签名算法执行的,那么根据签名的生成步骤,则有如下等式成立
也即有:
即F2(S,T,U)+xF3(S,T,U)=k mod q
所以有F2(S,T,U)G+F3(S,T,U)Y=kG=R
也就是T=π(R)成立,所以,如果签名是正确生成的,则验证式T=π(R)一定成立。
应用本发明选择不同的映射函数,则可以产生新的数字签名算法,实现电子文档的数字签名。一般为了计算简单,建议取η0(T,U)=1。
实施例1
签名者首先选取并公布签名算法中的映射函数η0(T,U)=1,η1(T,U)=T+U,η2(T,U)=TU,η3(T,U)=T∨U, η5(T,U)=T∧U,η6(T,U)=T+U,π(R)=R;这样就具体制定了一个签名算法。
签名算法:
签名者为了对电子文档M的签名,在区间[1,q-1]中随机选择整数k,
计算椭圆曲线上的点R=(x1,Y1)=kG,计算T=π(R)=R;
计算消息的Hash值U=H(M);
则得到消息M的签名是(T,S),这里
验证过程:给定消息M的签名(T,S),验证者计算:
U=H(M),
令R=F2(S,T,U)G+F3(S,T,U)Y
最后检查是否T=π(R),如果验证通过,则(T,S)是消息M的一个有效签名;如果不能通过验证式,则说明文件被改动,或者签名有错误,签名验证失败。
实施例2
签名者首先选取并公布签名算法中的映射函数η0(T,U)=1,η1(T,U)=T,η2(T,U)=T-U,η3(T,U)=U,η4(T,U)=T+U,η5(T,U)=0,η6(T,U)=T-2U,π(R)=R;这样就具体确定了一个签名算法。
签名者为了对电子文档M的签名,在区间[1,q-1]中随机选择整数k,
计算椭圆曲线上的点R=(x1,Y1)=kG,计算T=π(R)=R;
计算消息的Hash值U=H(M);则得到消息M的签名是(T,S),这里
验证过程,给定消息M的签名(T,S),验证者计算U=H(M),
令R=F2(S,T,U)G+F3(S,T,U)Y
最后检查是否T=π(R),如果验证通过,则(T,S)是消息M的一个有效签名;如果不能通过验证式,则文件被改动,或者签名有错误,签名验证失败。
通过选取不同的可有效计算的函数η0,η1,η2,η3,η4,η5,η6,ηi:(T,U)→zq,i=0,1,…,6,就可以得到多种不同的数字签名算法。
综上所述,本发明提出的数字签名保护方法,通过系统参数建立阶段的映射函数选取,能产生大量的新的基于椭圆曲线上离散对数困难问题的数字签名算法,通过选取适当映射变换,能产生新的安全性更高、伪造签名的难度更大的数字签名算法,用于提供文档传输中的完整性、真实性和不可否认性的安全保护。
Claims (1)
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′)不能成立,则签名验证失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102324052A CN101441693B (zh) | 2008-11-25 | 2008-11-25 | 基于椭圆曲线对电子文档数字签名的安全保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102324052A CN101441693B (zh) | 2008-11-25 | 2008-11-25 | 基于椭圆曲线对电子文档数字签名的安全保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101441693A true CN101441693A (zh) | 2009-05-27 |
CN101441693B CN101441693B (zh) | 2010-09-01 |
Family
ID=40726125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102324052A Expired - Fee Related CN101441693B (zh) | 2008-11-25 | 2008-11-25 | 基于椭圆曲线对电子文档数字签名的安全保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101441693B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651542B (zh) * | 2009-08-26 | 2011-07-13 | 西安理工大学 | 多签名者强指定多个验证者的数字签名文档安全保护方法 |
CN102684874A (zh) * | 2012-01-05 | 2012-09-19 | 河南科技大学 | 一种基于ecdsa算法的无线传感器网络广播认证方法 |
CN104079408A (zh) * | 2014-05-30 | 2014-10-01 | 国家电网公司 | 一种工业控制系统中增强通信安全性的方法 |
CN104202170A (zh) * | 2014-09-22 | 2014-12-10 | 上海众人科技有限公司 | 一种基于标识的身份认证系统和方法 |
CN107707358A (zh) * | 2017-10-30 | 2018-02-16 | 武汉大学 | 一种ec‑kcdsa数字签名生成方法及系统 |
CN108833346A (zh) * | 2018-05-04 | 2018-11-16 | 北京天元创新科技有限公司 | 一种工业控制系统安全通信方法和装置 |
CN111654369A (zh) * | 2020-06-04 | 2020-09-11 | 北京有链科技有限公司 | 一种安全性仅依赖于离散对数的数字签名方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533682A (zh) * | 2016-11-10 | 2017-03-22 | 上海华虹集成电路有限责任公司 | 点对点的椭圆曲线数字签名算法及验签方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1108041C (zh) * | 1999-12-01 | 2003-05-07 | 陈永川 | 运用椭圆曲线加密算法的数字签名方法 |
CN101296076A (zh) * | 2007-04-29 | 2008-10-29 | 四川虹微技术有限公司 | 一种基于ecc的数字签名方案 |
CN101252431B (zh) * | 2007-09-06 | 2011-07-27 | 广州信睿网络科技有限公司 | 一种通用的数字签名方案的实现方法 |
-
2008
- 2008-11-25 CN CN2008102324052A patent/CN101441693B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651542B (zh) * | 2009-08-26 | 2011-07-13 | 西安理工大学 | 多签名者强指定多个验证者的数字签名文档安全保护方法 |
CN102684874A (zh) * | 2012-01-05 | 2012-09-19 | 河南科技大学 | 一种基于ecdsa算法的无线传感器网络广播认证方法 |
CN104079408A (zh) * | 2014-05-30 | 2014-10-01 | 国家电网公司 | 一种工业控制系统中增强通信安全性的方法 |
CN104079408B (zh) * | 2014-05-30 | 2018-01-19 | 国家电网公司 | 一种工业控制系统中增强通信安全性的方法 |
CN104202170A (zh) * | 2014-09-22 | 2014-12-10 | 上海众人科技有限公司 | 一种基于标识的身份认证系统和方法 |
CN104202170B (zh) * | 2014-09-22 | 2018-09-04 | 上海众人网络安全技术有限公司 | 一种基于标识的身份认证系统和方法 |
CN107707358A (zh) * | 2017-10-30 | 2018-02-16 | 武汉大学 | 一种ec‑kcdsa数字签名生成方法及系统 |
CN107707358B (zh) * | 2017-10-30 | 2019-12-24 | 武汉大学 | 一种ec-kcdsa数字签名生成方法及系统 |
CN108833346A (zh) * | 2018-05-04 | 2018-11-16 | 北京天元创新科技有限公司 | 一种工业控制系统安全通信方法和装置 |
CN111654369A (zh) * | 2020-06-04 | 2020-09-11 | 北京有链科技有限公司 | 一种安全性仅依赖于离散对数的数字签名方法及系统 |
CN111654369B (zh) * | 2020-06-04 | 2023-04-11 | 麦希科技(北京)有限公司 | 一种安全性仅依赖于离散对数的数字签名方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101441693B (zh) | 2010-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101441693B (zh) | 基于椭圆曲线对电子文档数字签名的安全保护方法 | |
CN108551392B (zh) | 一种基于sm9数字签名的盲签名生成方法及系统 | |
US10110386B2 (en) | Implicitly certified digital signatures | |
EP2533457B1 (en) | Secure implicit certificate chaining | |
US9049022B2 (en) | Hashing prefix-free values in a certificate scheme | |
CN106357701A (zh) | 云存储中数据的完整性验证方法 | |
CN104023044A (zh) | 一种具有隐私保护的云存储数据轻量级公共审计的方法 | |
CN110011810A (zh) | 基于可链接环签名和多重签名的区块链匿名签名方法 | |
CN103220147B (zh) | 基于多变量公钥密码体制的强指定验证者签名方法 | |
CN101931536B (zh) | 一种无需认证中心的高效数据加密及认证方法 | |
CN107864037A (zh) | Sm9联合数字签名方法和装置 | |
CN101651542B (zh) | 多签名者强指定多个验证者的数字签名文档安全保护方法 | |
CN102883321A (zh) | 一种面向移动微技的数字签名认证方法 | |
CN103095697A (zh) | 一种多重签名生成与验证系统及其方法 | |
CA2669472C (en) | Compressed ecdsa signatures | |
CN112422288A (zh) | 一种抗能量分析攻击的基于sm2算法的两方协同签名方法 | |
CN103220146A (zh) | 基于多变量公钥密码体制的零知识数字签名方法 | |
CN102291396B (zh) | 可信平台远程证明的匿名认证算法 | |
CN116346328A (zh) | 一种数字签名方法、系统、设备及计算机可读存储介质 | |
CN1905447B (zh) | 一种认证加密方法和电子邮件系统 | |
CN112989436B (zh) | 一种基于区块链平台的多重签名方法 | |
CN101420304B (zh) | 基于离散对数对电子文档数字签名的安全保护方法 | |
CN102006170B (zh) | 基于有限域上mq问题对消息匿名环签名的方法 | |
Kalamsyah et al. | Digital contract using block chaining and elliptic curve based digital signature | |
CN102006169A (zh) | 基于有限域上二次多变量问题对消息匿名环签名的方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100901 Termination date: 20121125 |