CN103067165A - 公钥密码体制中的外包计算方法、设备和服务器 - Google Patents

公钥密码体制中的外包计算方法、设备和服务器 Download PDF

Info

Publication number
CN103067165A
CN103067165A CN 201310018242 CN201310018242A CN103067165A CN 103067165 A CN103067165 A CN 103067165A CN 201310018242 CN201310018242 CN 201310018242 CN 201310018242 A CN201310018242 A CN 201310018242A CN 103067165 A CN103067165 A CN 103067165A
Authority
CN
China
Prior art keywords
computing
public
result
calculation
key cryptosystem
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
Application number
CN 201310018242
Other languages
English (en)
Other versions
CN103067165B (zh
Inventor
张永强
刘
梁文晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GUANGDONG CERTIFICATE AUTHORITY CENTER CO Ltd
Original Assignee
GUANGDONG CERTIFICATE AUTHORITY CENTER CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GUANGDONG CERTIFICATE AUTHORITY CENTER CO Ltd filed Critical GUANGDONG CERTIFICATE AUTHORITY CENTER CO Ltd
Priority to CN201310018242.9A priority Critical patent/CN103067165B/zh
Publication of CN103067165A publication Critical patent/CN103067165A/zh
Application granted granted Critical
Publication of CN103067165B publication Critical patent/CN103067165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及密码学相关技术领域,特别是涉及公钥密码体制中的外包计算方法、设备和服务器。所述外包计算方法,包括:构造随机参数w;选择随机数k;将w和k进行线性运算,得到k’;向服务器发送将k’与G进行第一运算的请求,其中G为所述公钥密码体制中的生成元;获得服务器将k’与G进行第一运算的计算结果Q′;将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw;将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q。本发明在满足数字签名安全性的条件下,实现了以外包计算的方式将公钥密码体制中的复杂运算安全交付给云计算服务提供商。

Description

公钥密码体制中的外包计算方法、设备和服务器
技术领域
本发明涉及密码学相关技术领域,特别是涉及公钥密码体制中的外包计算方法、设备和服务器。
背景技术
椭圆曲线密码体制(ECC)作为一种公钥密码体制,其基本原理是在一个预先定义的椭圆曲线上面执行点乘运算
Figure BDA00002748288100011
其中点G是固定参数,k是随机产生的大数。为了保证数字签名算法自身的安全性,要求k是真正的物理随机数。点乘运算Q=kG可以分解为点加、倍点、模乘等基本运算,这些基本运算都建立在有限域Fp的数学基础上。
有限域Fp上的椭圆曲线方程可以存在多种形式,其中典型的椭圆曲线方程形如y2=x3+ax+b(4a3+27b2≠0modp),在该椭圆曲线上的所有点及无穷远点∞构成椭圆曲线点集E(Fp)={(x,y)|x,y∈Fp,y2=x3+ax+b}∪{∞},椭圆曲线点集E(Fp)的阶为n=#E(Fp)。在椭圆曲线上定义点加运算,则椭圆曲线点集E(Fp)构成一个Abel群。在点加运算的基础上,可以导出倍点运算、点乘运算,其中点乘运算(kG)是椭圆曲线密码体制的核心运算。椭圆曲线上的运算可以采用不同的坐标系来表达,常用的坐标系是仿射坐标系和Jacobi投影坐标系,以下分别加以介绍。
仿射坐标系:平面上过一定点O作两条相交的坐标轴x和y,它们的交角是ω。以定点O作为原点,在每条坐标轴上定义长度单位(分别是OE1、OE2),这样就在平面上建立了一个仿射坐标系。对于平面上任一点M,过M作两坐标轴的平行线,与坐标轴分别交于M1、M2,它们在两轴的坐标分别标记为x、y,于是点M就对应有序数组(x,y)。
Jacobi投影坐标系:Jacobi投影坐标系下的点(X,Y,Z)与仿射坐标系下的点(x,y)一一对应。给定仿射坐标系下的座标(x,y),转换成Jacobi投影坐标系下的坐标为(X,Y,Z),其中X=x、Y=y、Z=1;给定Jacobi投影坐标系下的坐标(X,Y,Z),转换成仿射坐标系下的座标为(x,y),且满足x=X/Z2、y=Y/Z3。同时,仿射坐标系下的无穷远点∞和Jacobi投影坐标系下的点(1,1,0)对应。
在椭圆曲线上任取两点P(x1,y1)、Q(x2,y2),令O表示无穷远点,定义点加运算R(xR,yR)=P+Q,其运算规则如下:
(1)P+O=O+P=P;
(2)-P=(x1,-y1),P+(-P)=O;
(3)若Q≠-P,则 x R = λ 2 - x 1 - x 2 y R = λ ( x 1 - x R ) - y 1 ,
其中,当x1≠x2
Figure BDA00002748288100022
当x1=x2
Figure BDA00002748288100023
在椭圆曲线上任取点P(x,y),令O表示无穷远点,定义倍点运算R(xR,yR)=2P。倍点运算等同于点加运算中P=Q,其运算规则如下:
(1)若y=0,则R=2P=O;
(2)若y≠0,则 x R = λ 2 - 2 x y R = λ ( x - x R ) - y , 其中 λ = 3 x 2 + a 2 y .
上述点加、倍点运算公式均定义在有限域Fp上,其中包含有限域上的加法、乘法和求逆等运算。在有限域Fp上,加法、乘法均为模p运算,譬如任意x,y∈Fp,则加法定义为z=(x+y)modp,z∈Fp。所述求逆运算是指给出任意点x∈Fp,找出另一个点y∈Fp使得条件xy=1满足。在有限域Fp上,求逆运算比乘法运算复杂度更高,而转换成Jacobi投影坐标则可以避免求逆运算,因此在工程应用中更多地采用Jacobi投影坐标系。
Jacobi投影坐标系中,在椭圆曲线上任取两点P(X1,Y1,Z1)、Q(X2,Y2,Z2),点加运算R(X3,Y3,Z3)=P+Q的运算规则为:
X 3 = ( Y 2 Z 1 3 - Y 1 ) 2 - ( X 2 Z 1 2 + X 1 ) ( X 2 Z 1 2 - X 1 ) 2 Y 3 = ( Y 2 Z 1 3 - Y 1 ) [ X 1 ( X 2 Z 1 2 - X 1 ) 2 - X 3 ] - Y 1 ( X 2 Z 1 2 - X 1 ) 3 Z 3 = Z 1 ( X 2 Z 1 2 - X 1 )
Jacobi投影坐标系中,在椭圆曲线上任取点P(X1,Y1,Z1),倍点运算R(X3,Y3,Z3)=2P的运算规则为:
X 3 = ( 3 X 1 2 + a Z 1 4 ) 2 - 8 X 1 Y 1 2 Y 3 = ( 3 X 1 2 + a Z 1 4 ) ( 4 X 1 Y 1 2 - X 3 ) - 8 Y 1 4 Z 3 = 2 Y 1 Z 1
在上述数学基础上,可以执行点乘运算
Figure BDA00002748288100032
对于任意整数k=(kt-1,…,k1,k0)2,G∈E(Fp),令O表示无穷远点,kG按以下步骤计算:
(1)Q←O;
(2)For i from 0 to t-1 do
a)If ki=1 then Q←Q+G
b)G←2G
(3)输出Q。
可以看出,利用点加、倍点运算即可完成点乘运算Q=kG。
基于点乘运算,可以构建椭圆曲线密码体制(ECC)的其他算法及协议,譬如数字签名的产生及其验证算法(ECDSA、SM2等)。数字签名算法具有很多实际用途,可以在通信协议中表明用户的身份,也可以用在X.509数字证书中用来证实该证书是有特定数字认证机构(CA)所签发。
由于点乘运算的复杂度高,在执行ECDSA数字签名算法的过程中,大部分的时间都将用于执行点乘运算,因此点乘运算的执行效率是提高系统效能的关键因素。对于本身不具备大规模运算能力的节点(如某些嵌入式设备),则可能需要将数字签名算法的执行过程外包给所连接的服务网络。
为了满足大规模、高并发的要求,数字签名系统中需要配置专用的密码运算设备(俗称“密码机”),并需要实现密码设备的集群,而这些专用设备的价格相对比较昂贵,并且不利于动态扩展。由于云计算系统是基于主流的通用服务器硬件来构建,具有海量计算能力、海量存储、动态扩展等技术优势,用来执行密码学运算的性价比更高。但是,要将密码学运算外包给云计算系统来完成,则会导致云计算系统获得用户的密码运算的隐私泄露。譬如,数字签名算法中的私钥及相关参数如果泄露,会给用户带来不可估量的损失。
另外,除了点乘运算以外,在其他公钥密码体制中执行幂指数运算,也是需要非常复杂的工作量。同样的,如果将幂指数运算外包到云计算系统,也同样存在着密码运算的隐私泄露问题。在其他的公钥密码体制中也存在与ECC相同的问题。
发明内容
基于此,有必要针对现有技术将公钥密码体制中的复杂运算外包给云计算系统时,无法保证运算的隐私性的技术问题,提供一种公钥密码体制中的外包计算方法、设备和服务器。
一种公钥密码体制中的外包计算方法,包括:
构造随机参数w;
选择随机数k;
将w和k进行线性运算,得到k’;
向服务器发送将k’与G进行第一运算的请求,其中G为所述公钥密码体制中的生成元;
获得服务器将k’与G进行第一运算的计算结果Q′;
将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw
将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Q为所述公钥密码体制中的外包计算的结果。
在其中一种实施例中:
所述第一运算为乘法运算,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
在其中一种实施例中,所述线性运算为减法运算,所述将w和k进行线性运算具体为:k′=k-w;
所述线性运算的逆运算为加法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′+Qw
在其中一种实施例中,所述线性运算为加法运算,所述将w和k进行线性运算具体为:k′=k+w;
所述线性运算的逆运算为减法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′-Qw
在其中一种实施例中,所述参数w的一部分比特位的比特值为0,另外一部分的比特位的比特值为1,且比特值为1的比特位随机分布;
在其中一种实施例中,所述参数w的构造方法如下:
随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的参数 w = Σ i 2 r i .
在其中一种实施例中,所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw,具体包括:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数由2r与G进行第一运算得到,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行第三运算得到Qw,所述第三运算使得所述w与G进行第一运算的计算结果与所述Qw相等。
在其中一种实施例中:
所述第一运算为乘法运算,所述第三运算为加法运算;
所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw,具体包括:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数为2rG,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行加法运算得到Qw
在其中一种实施例中,所述将w和k进行线性运算包括:从多个线性运算中随机选择一个线性运算作为当前线性运算,将w和k进行所述当前线性运算。
在其中一种实施例中:
所述构造随机参数w具体包括:
每间隔预设使用次数,重新构造随机参数w并保存;
所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw具体包括:
如果重新构造随机参数w,则将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw并保存。
在其中一个实施例中,所述公钥密码体制为椭圆曲线密码体制。
一种公钥密码体制中的外包计算设备,包括:
参数构造模块,用于构造随机参数w;
随机数选择模块,用于选择随机数k;
线性运算模块,用于将w和k进行线性运算,得到k’;
计算请求发送模块,用于向服务器发送将k’与G进行第一运算的请求,其中G为所述公钥密码体制中的生成元;
设备计算结果获取模块,用于获得服务器将k’与G进行第一运算的计算结果Q′;
参数运算模块,用于将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw
设备结果运算模块,用于将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Q为所述公钥密码体制中的外包计算的结果。
在其中一种实施例中:
所述第一运算为乘法运算,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述设备结果运算模块,具体用于:将Q’和Qw进行所述线性运算的逆运算。
在其中一种实施例中,所述线性运算为减法运算,所述线性运算模块,具体用于:计算k′=k-w;
所述线性运算的逆运算为加法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′+Qw
在其中一种实施例中,所述线性运算为加法运算,所述将w和k进行线性运算具体为:k′=k+w;
所述线性运算的逆运算为减法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′-Qw
在其中一种实施例中,所述参数w的一部分比特位的比特值为0,另外一部分的比特位的比特值为1,且比特值为1的比特位随机分布;
在其中一种实施例中,所述参数构造模块,具体用于:
随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的参数 w = Σ i 2 r i .
在其中一种实施例中,所述参数运算模块,具体用于:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数由2r与G进行第一运算得到,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行第三运算得到Qw,所述第三运算使得所述w与G进行第一运算的计算结果与所述Qw相等。
在其中一种实施例中:
所述第一运算为乘法运算,所述第三运算为加法运算;
所述参数运算模块,具体用于:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数为2rG,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行加法运算得到Qw
在其中一种实施例中,线性运算模块,具体用于:从多个线性运算中随机选择一个线性运算作为当前线性运算,将w和k进行所述当前线性运算。
在其中一种实施例中:
所述参数构造模块,具体用于:
每间隔预设使用次数,重新构造随机参数w并保存;
所述参数运算模块,具体用于:
如果重新构造随机参数w,则将w与G进行第一运算,得到k’与G进行第一运算的计算结果Qw并保存。
在其中一个实施例中,所述公钥密码体制为椭圆曲线密码体制。
一种公钥密码体制中的外包计算方法,包括:
响应设备发送的将k’与G进行第一运算的请求,将k’与G进行第一运算得到计算结果Q’,其中G为所述公钥密码体制中的生成元,k’为设备所发送的随机数,由设备构造随机参数w和选择随机数k,并将w和k进行线性运算所得到;
向设备返回Q’,所述Q’用于设备将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Qw为设备将w与G进行第一运算得到的计算结果,所述Q为所述公钥密码体制中的外包计算的结果。
在其中一种实施例中,响应设备发送的将k’与G进行第一运算的请求,将k’与G进行第一运算得到计算结果Q’具体包括:
将所述k’展开为多个分段;
向多个运算服务器发送所述分段与G进行第一运算的请求;
从多个运算服务器中获取所述分段与G进行第一运算的运算结果;
将多个运算结果进行第四运算的计算结果作为Q’,所述第四运算使得所述k’与G进行第一运算的计算结果与所述Q’相等。
在其中一种实施例中,所述将所述k’展开为多个分段,具体包括:用权2v将k’展开为多个分段,其中v为大于或等于0的整数。
在其中一种实施例中:
所述第一运算为乘法,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
在其中一种实施例中:
所述第一运算为乘法,所述Q′=k'G;
所述第四运算为加法,所述将多个运算结果进行第四运算的计算结果作为Q’具体包括:
将多个运算结果进行加法运算的计算结果作为Q’。
在其中一个实施例中,所述公钥密码体制为椭圆曲线密码体制。
一种公钥密码体制中的外包计算的服务器,包括:
服务器运算模块,响应设备发送的将k’与G进行第一运算的请求,将k’与G进行第一运算得到计算结果Q’,其中G为所述公钥密码体制中的生成元,k’为设备所发送的随机数,由设备构造随机参数w和选择随机数k,并将w和k进行线性运算所得到;
结果发送模块,用于向设备返回Q’,所述Q’用于设备将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Qw为设备将w与G进行第一运算得到的计算结果,所述Q为所述公钥密码体制中的外包计算的结果。
在其中一种实施例中,所述分发模块包括:
分段子模块,用于将所述k’展开为多个分段;
分发子模块,向多个运算服务器发送所述分段与G进行第一运算的请求;
服务器计算结果获取子模块,从多个运算服务器中获取所述分段与G进行第一运算的运算结果;
服务器合并结果子模块,将多个运算结果进行第四运算的计算结果作为Q’,所述第四运算使得所述k’与G进行第一运算的计算结果与所述Q’相等。
在其中一种实施例中,分段子模块,具体用于:用权2v将k’展开为多个分段,其中v为大于或等于0的整数。
在其中一种实施例中:
所述第一运算为乘法,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
在其中一种实施例中:
所述第一运算为乘法,所述Q′=k'G;
所述第四运算为加法,所述服务器合并结果子模块,具体用于:将多个运算结果进行加法运算的计算结果作为Q’。
在其中一个实施例中,所述公钥密码体制为椭圆曲线密码体制。
要保证数字签名算法的安全性,必须满足两个基本条件:(1)保护用于签名的私钥d;(2)保证参数k是真随机数,并且不被泄露。在ECDSA中对随机数k与私钥d有同样的保密要求,因为攻击者获知了随机数k,则可以计算出私钥d=r-1(ks-e)modn。因此必须确保随机数k安全地产生、存储、销毁。
在本发明的技术方案中,数字签名使用的私钥d不需要在外包计算过程中使用,而是仅在设备内部计算最终结果的时候使用,因此满足第1个条件。在外包计算过程中使用的参数k′并非数字签名时使用的随机数k,而是采用了另一个随机数w对其进行变换,因此满足第2个条件。
由此可见,尽管在本发明的技术方案中采用了计算外包过程,但是仍然可以满足数字签名算法的安全性条件。
本发明公钥密码体制中的外包计算方法、设备和服务器,通过增加构造一个随机参数w,而交付给服务器计算的k’,是将w和k进行线性运算所得到,能很好地把随机数k隐藏起来,避免了服务器获得用户的随机数。因此,在满足数字签名安全性的条件下,实现了以外包计算的方式将公钥密码体制中的复杂的运算安全地交付给云计算服务提供商,借助云计算系统来完成计算密集度高的操作,从而使得数字签名系统可以满足大规模、高并发的要求,并具备动态扩展的特性。
附图说明
图1为本发明的一种公钥密码体制中的外包计算的计算方法的工作流程图;
图2为本发明的一种公钥密码体制中的外包计算的计算方法在计算Qw=wG的工作流程图;
图3为本发明的一种公钥密码体制中的外包计算的设备的模块方框图;
图4为本发明的一种公钥密码体制中的外包计算的计算方法;
图5为本发明的一种公钥密码体制中的外包计算的服务器的模块结构图;
图6为一种公钥密码体制中点乘运算应用于签名方法的工作流程图;
图7为本发明的一种公钥密码体制中的ECDSA签名方法的工作流程图;
图8为本发明的一种公钥密码体制中的签名系统的模块结构图;
图9为本发明的一种公钥密码体制中以国家密码管理局公布的SM2数字签名算法签名算法为例的工作流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
如图1所示为本发明的一种公钥密码体制中的外包计算方法的工作流程图。
步骤S101,构造随机参数w;
步骤S102,选择随机数k;
步骤S103,将w和k进行线性运算,得到k’;
步骤S104,向服务器发送将k’与G进行第一运算的请求,其中G为所述公钥密码体制中的生成元;
步骤S105,获得服务器将k’与G进行第一运算的计算结果Q’;
步骤S106,将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw
步骤S107,将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Q为所述公钥密码体制中的外包计算的结果。
在步骤S101中,第一运算可以是乘法运算,也可以是幂指数运算,或者其他复杂的运算。本领域普通技术人员在阅读本专利后可以对其进行有限次试验从而获取。
在其中一种实施例中,公钥密码体制可以为椭圆曲线密码体制,例如ECC,则此时第一运算可以为乘法运算,而对于其他的公钥密码体制,例如DSA,则第一运算可以为幂指数运算。
在其中一种实施例中:
所述第一运算为乘法运算,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
在步骤S101中,随机参数w的构造,本领域普通技术人员在阅读本专利之后,可以有多种选择。例如,w为真随机数,分别在多次点乘运算中与不同的k执行线性运算。
在其中一种实施例中,第一运算为乘法,线性运算为减法,其逆运算为加法,在步骤S102具体为计算k′=k-w,在步骤S107中,采用加法运算计算Q=Q′+Qw
在另外一个实施例中,第一运算为乘法,线性运算为加法,其逆运算为减法,则步骤S102可以为k′=k+w,步骤S106中,可以计算Q=Q′-Qw。当然,步骤S102也可以令k′=k+Aw,其中A为一个常数,则步骤S106中,可以计算Q=Q′-AQw
如果第一运算为幂指数运算,即Q′=Gk′,所述Qw=Gw,则第二运算为对应所述线性运算的逆运算所做的乘法。例如,如果线性运算是减法,则其逆运算为加法,在步骤S102具体为计算k′=k-w,在步骤S107中,可以计算Q=Q′×Qw
在其中一种实施例中:
所述构造随机参数w具体包括:
每间隔预设使用次数,重新构造随机参数w并保存;
所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw具体包括:
如果重新构造随机参数w,则将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw并保存。
例如,可以在步骤S101中,随机数w可以每N次更换一次,例如,每100次更换一次,并把步骤S106的计算结果保留,则由于k是每次运算都会更换,因此,k’仍然是每次运算都会变化,要把w反向计算出来,需要一定的次数,因此也同样能起到隐藏k的效果。但是由于Qw不用频繁计算,因此,也可以提高运算效率。
在其中一种实施例中,所述将w和k进行线性运算包括:从多个线性运算中随机选择一个线性运算作为当前线性运算,将w和k进行所述当前线性运算。该实施例由于线性运算也是随机选择的,因此,能够更加好的对k进行隐藏。
作为其中一种实施例,所述参数w的一部分比特位的比特值为0,另外一部分的比特位的比特值为1,且比特值为1的比特位随机分布。构造这样的随机参数w,当w的大部分比特位都为0时,其计算效率会得到极大的提升。
在其中一个实施例中,所述参数w的构造方法如下:
随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的参数 w = Σ i 2 r i .
在其中一种实施例中,所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw,具体包括:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数由2r与G进行第一运算得到,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行第三运算得到Qw,所述第三运算使得所述w与G进行第一运算的计算结果与所述Qw相等。
在其中一种实施例中:
所述第一运算为乘法运算,所述第三运算为加法运算;
所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw,具体包括:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数为2rG,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行加法运算得到Qw
作为一个例子,点乘运算Q=kG方法如下:
a)随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的参数这样得到n比特数值其中只有m个1,并且是随机分布。
b)选择随机数k,计算k′=k-w。
c)通过外包计算的方式,在云计算服务器集合U={U1,U2,…,Uc}执行点乘运算Q′=k′G=(k-w)G,为了确保隐私性、正确性,可采用安全多方计算协议。
d)在特定的硬件加速设备执行点乘运算
Figure BDA00002748288100142
如果满足m远小于n这个条件,则参数w的大部分比特为零值,其执行效率比计算点乘运算kG要高得多。
e)计算Q=Q′+Qw=(k-w)G+wG=kG,得到点乘运算的最终结果。
在步骤S105中,需要计算Qw=wG。本领域普通技术人员在阅读本专利后,可以选择采用其他方式计算,例如通用的点乘分解运算,如下所示:
对于任意整数w=(wt-1,…,w1,w0)2,G∈E(Fp),令O表示无穷远点,Qw=wG按以下步骤计算:
(a)Qw←O;
(b)For i from 0 to t-1 do
a)If wi=1 thenQw←Qw+G
b)G←2G
(c)输出Qw
对于特定的ECC密码体制,其生成元G是固定不变的,在本发明的一个实施例中,在系统存储空间足够的条件下,可以预先计算并存储{G,2G,22G,…,2n-1G},从而把点乘运算转化为点加运算来执行,以减少计算的复杂程度。
如图2所示为本发明的一种公钥密码体制中点乘运算方法在计算Qw=wG的工作流程图。
在步骤S201中,从预先计算并存储的包括有多个辅助参数的辅助参数对应列表中,选择参数w中所有比特值为1的比特位对应的辅助参数,所述辅助参数为2的幂指数与生成元的乘积;
其中,所述幂指数与所述参数w中的比特位的位置对应,即对于任意整数w=(wt-1,…,w1,w0)2,其中wi对应的辅助参数为2iG。
在步骤S202中,对所有选择的辅助参数进行点加运算得到Qw
作为一个例子,预先计算并存储{G,2G,22G,…,2n-1G},对于任意整数w=(wt-1,…,w1,w0)2,G∈E(Fp),令O表示无穷远点,Qw=wG按以下步骤计算:
(a)Qw←O;
(b)For i from 0 to t-1 do
If wi=1 then Qw←Qw+2iG
(c)输出Qw
如图3所示为本发明的一种公钥密码体制中的外包计算设备的模块方框图,一种公钥密码体制中的外包计算设备,包括:
参数构造模块310,用于构造随机参数w;
随机数选择模块320,用于选择随机数k;
线性运算模块330,用于将w和k进行线性运算,得到k’;
计算请求发送模块340,用于向服务器发送将k’与G进行第一运算的请求,其中G为所述公钥密码体制中的生成元;
设备计算结果获取模块350,用于获得服务器将k’与G进行第一运算的计算结果Q′;
参数运算模块360,用于将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw
设备结果运算模块370,用于将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Q为所述公钥密码体制中的外包计算的结果。
在其中一种实施例中:
所述第一运算为乘法运算,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述设备结果运算模块,具体用于:将Q’和Qw进行所述线性运算的逆运算。
在其中一种实施例中,所述线性运算为减法运算,所述线性运算模块330,具体用于:计算k′=k-w;
所述线性运算的逆运算为加法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′+Qw
在其中一种实施例中,所述线性运算为加法运算,所述将w和k进行线性运算具体为:k′=k+w;
所述线性运算的逆运算为减法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′-Qw
在其中一种实施例中,所述参数w的一部分比特位的比特值为0,另外一部分的比特位的比特值为1,且比特值为1的比特位随机分布;
在其中一种实施例中,所述参数构造模块310,具体用于:
随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的参数 w = Σ i 2 r i .
在其中一种实施例中,所述参数运算模块360,具体用于:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数由2r与G进行第一运算得到,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行第三运算得到Qw,所述第三运算使得所述w与G进行第一运算的计算结果与所述Qw相等。
在其中一种实施例中:
所述第一运算为乘法运算,所述第三运算为加法运算;
所述参数运算模块,具体用于:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数为2rG,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行加法运算得到Qw
在其中一种实施例中,线性运算模块330,具体用于:从多个线性运算中随机选择一个线性运算作为当前线性运算,将w和k进行所述当前线性运算。
在其中一种实施例中:
所述参数构造模块310,具体用于:
每间隔预设使用次数,重新构造随机参数w并保存;
所述参数运算模块360,具体用于:
如果重新构造随机参数w,则将w与G进行第一运算,得到k’与G进行第一运算的计算结果Qw并保存。
向服务器发送计算Q′=k′G的请求,主要是通过网络协议,调用云计算服务器提供的用户访问接口,完成点乘运算Q′=k′G的执行过程。云计算服务器将通过内部的调度算法来完成该点乘运算,通过将点乘运算转换为可并发执行的形式,允许任意多个服务器共同执行这个计算过程。当然也可以将不同的并发过程外包给不同的云计算服务提供商,然后再形成外包计算的最终结果。在这种情况下,还可以通过执行安全多方计算协议,使得单个的云计算服务提供商不能获得计算过程的输入参数、输出结果的信息,进一步保护随机数k′的隐私性。
如图4所示为本发明的一种公钥密码体制中的外包计算方法,该方法用于服务器中,包括:
步骤S401,响应设备发送的将k’与G进行第一运算的请求,将k’与G进行第一运算得到计算结果Q’,其中G为所述公钥密码体制中的生成元,k’为设备所发送的随机数,由设备构造随机参数w和选择随机数k,并将w和k进行线性运算所得到;
步骤S402,向设备返回Q’,所述Q’用于设备将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Qw为设备将w与G进行第一运算得到的计算结果,所述Q为所述公钥密码体制中的外包计算的结果。
在其中一种实施例中,响应设备发送的将k’与G进行第一运算的请求,步骤S401具体包括:
将所述k’展开为多个分段;
向多个运算服务器发送所述分段与G进行第一运算的请求;
从多个运算服务器中获取所述分段与G进行第一运算的运算结果;
将多个运算结果进行第四运算的计算结果作为Q’,所述第四运算使得所述k’与G进行第一运算的计算结果与所述Q’相等。
在其中一种实施例中,所述将所述k’展开为多个分段,具体包括:用权2v将k’展开为多个分段,其中v为大于或等于0的整数。
在其中一种实施例中:
所述第一运算为乘法,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
在其中一种实施例中:
所述第一运算为乘法,所述Q′=k'G;
所述第四运算为加法,所述将多个运算结果进行第四运算的计算结果作为Q’具体包括:
将多个运算结果进行加法运算的计算结果作为Q’。
将点乘运算转换为可并发执行的形式的原理阐述如下:点乘运算Q=kG是一种线性变换,满足乘法交换律、分配律。对于n比特任意随机数k,可用权2v展开为m个分段,其中
Figure BDA00002748288100181
为整数,每个分段的位宽为v比特:
k = Σ i = 0 m - 1 2 i · v k i = 2 ( m - 1 ) v k m - 1 + · · · + 2 v k 1 + k 0 ,
这里,当n不能整除v时,需要通过高位补零的方式将k扩展为n′比特。
从而点乘运算可以表示为以下形式:
Q = Σ i = 0 m - 1 ( 2 i · v k i ) G = Σ i = 0 m - 1 k i ( 2 i · v G ) = k m - 1 ( 2 ( m - 1 ) v G ) + · · · + k 1 ( 2 v G ) + k 0 G .
在进行上述变换之后,对于给定的参数m及w,可以预先计算并存储以下中间结果:
{G,2vG,22vG,…,2(m-1)vG},
从而将点乘运算分解为m个相互独立的点乘运算。
对于本领域普通技术人员在阅读本专利后,第一运算还可以选择公钥密码体制中的其他运算,例如幂指数运算,则Q′=Gk′,而第四算法为乘法,所述将多个运算结果进行第四运算的计算结果作为Q’具体包括:
将多个运算结果进行乘法运算的计算结果作为Q’。
如图5所示为本发明的一种公钥密码体制中点乘运算的服务器的模块结构图。
一种公钥密码体制中的外包计算的服务器,包括:
服务器运算模块510,响应设备发送的将k’与G进行第一运算的请求,将k’与G进行第一运算得到计算结果Q’,其中G为所述公钥密码体制中的生成元,k’为设备所发送的随机数,由设备构造随机参数w和选择随机数k,并将w和k进行线性运算所得到;
结果发送模块520,用于向设备返回Q’,所述Q’用于设备将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Qw为设备将w与G进行第一运算得到的计算结果,所述Q为所述公钥密码体制中的外包计算的结果。
在其中一种实施例中,所述服务器运算模块510包括:
分段子模块511,用于将所述k’展开为多个分段;
分发子模块512,向多个运算服务器发送所述分段与G进行第一运算的请求;
服务器计算结果获取子模块513,从多个运算服务器中获取所述分段与G进行第一运算的运算结果;
服务器合并结果子模块514,将多个运算结果进行第四运算的计算结果作为Q’,所述第四运算使得所述k’与G进行第一运算的计算结果与所述Q’相等。
在其中一种实施例中,分段子模块511,具体用于:用权2v将k’展开为多个分段,其中v为大于或等于0的整数。
在其中一种实施例中:
所述第一运算为乘法,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
在其中一种实施例中:
所述第一运算为乘法,所述Q′=k'G;
所述第四运算为加法,所述服务器合并结果子模块,具体用于:将多个运算结果进行加法运算的计算结果作为Q’。
如图6所示为本发明的一种公钥密码体制中点乘运算应用于签名方法的工作流程图。
一种公钥密码体制中的签名方法,所述方法包括:
在步骤S601中,构造随机参数w;
在步骤S602中,选择随机数k,将w和k进行线性运算,得到k’;
在步骤S603中,向服务器发送计算Q′=k′G的请求,其中G为所述公钥密码体制中的生成元;
在步骤S604中,获得服务器的Q′的计算结果;
在步骤S605中,计算Qw=wG;
在步骤S606中,将Q’和Qw进行所述线性运算的逆运算,得到Q;
在步骤S607中,采用所述Q作为签名参数,进行签名运算。
在步骤S601中,随机参数w的构造,本领域普通技术人员在阅读本专利之后,可以有多种选择。
作为其中一种实施例,所述参数w的一部分比特位的比特值为0,另外一部分的比特位的比特值为1,且比特值为1的比特位随机分布。构造这样的随机参数w,当w的大部分比特位都为0时,其计算效率会得到极大的提升;
在其中一种实施例中,线性运算为减法,其逆运算为加法,在步骤S602具体为计算k′=k-w,在步骤S606中,采用点加运算计算Q=Q′+Qw。其中,线性运算也可以为其他方式,例如加法,其逆运算为减法,则步骤S102可以为k′=k+w,步骤S106中,可以计算Q=Q′-Qw。当然,步骤S602也可以令k′=k+Aw,其中A为一个常数,则步骤S606中,可以计算Q=Q′-AQw
作为一个例子,以ECDSA数字签名算法为例。
如图7所示为本发明的一种公钥密码体制中的ECDSA签名方法的工作流程图。其中ECDSA采用椭圆曲线密码体制。
对于域参数D=(q,FR,a,b,G,n,h),使用密钥对(d,Q)对消息m签名,执行如下步骤:
在步骤S701中,随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的参数
Figure BDA00002748288100211
这样得到n比特数值其中只有m个1,并且是随机分布;
在步骤S702中,选择一个随机数k满足1≤k≤n-1,计算k′=k-w;通过外包计算的方式,在云计算服务器集合U={U1,U2,…,Uc}执行点乘运算Q′=k′G=(k-w)G;在特定的硬件加速设备执行点乘运算
Figure BDA00002748288100212
在步骤S703中,计算Q=Q′+Qw=(k-w)G+wG=kG=(x1,y1)。
在步骤S704中,计算r=x1modn,如果r=0则回到步骤S702,否则执行步骤S705。
在步骤S705中,计算k-1modn。
在步骤S706中,计算SHA-1(m),并将该位串转换为整数e,其中SHA-1为安全哈希算法(Secure Hash Algorithm)。
在步骤S707中,计算s=k-1(e+dr)modn,如果s=0则回到步骤S702,否则执行步骤S708。
在步骤S708中,输出签名结果(r,s)。
如图9所示为本发明的一种公钥密码体制中以国家密码管理局公布的SM2数字签名算法签名算法为例的工作流程图。其中,SM2采用椭圆曲线密码体制。
对于域参数D=(q,FR,a,b,G,n,h),使用密钥对(d,Q)对消息M签名,执行如下步骤:
步骤S901,随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的大数
Figure BDA00002748288100221
这样得到n比特数值其中只有m个1,并且是随机分布。
步骤S902,选择一个随机数k∈[1,n-1],计算k′=k-w;通过外包计算的方式,在云计算服务器集合U={U1,U2,…,Uc}执行点乘运算Q′=k′G=(k-w)G;在特定的硬件加速设备执行点乘运算
Figure BDA00002748288100222
步骤S903,计算Q=Q′+Qw=(k-w)G+wG=kG=(x1,y1)。
步骤S904,计算Hv(ZA||M)并将该位串转换为整数e,其中ZA是关于用户的可辨别标识、部分椭圆曲线系统参数和用户公钥的杂凑值,Hv代表消息摘要长度为v比特的密码杂凑函数,ZA=SHA256(ENTLA||IDA||a||b||xG||yG||xA||yA)。
步骤S905,计算r=(e+x1)modn,如果r=0,则回到步骤S902,否则执行步骤S906。
步骤S906,计算s=((1+d)-1·(k-dr))modn,如果s=0,则回到步骤S902,否则执行步骤S907。
步骤S907,输出签名结果(r,s)。
如图8所示为本发明的一种公钥密码体制中的签名系统的模块结构图。
一种公钥密码体制中的签名系统,所述系统包括:
签名参数构造模块810,用于构造随机参数w;
签名随机数选择模块820,用于选择随机数k,将w和k进行线性运算,得到k’;
签名计算请求发送模块830,用于向服务器发送计算k′G的请求,其中G为所述公钥密码体制中的生成元;
签名获取模块840,用于获得服务器计算k′G的计算结果Q′;
签名点乘运算模块850,用于计算Qw=wG;
签名结果运算模块860,用于将Q’和Qw进行所述线性运算的逆运算,得到Q;
签名公钥运算模块870,用于采用所述Q作为公钥进行签名运算。
在其中一个实施例中,所述参数w的一部分比特位的比特值为0,另外一部分的比特位的比特值为1,且比特值为1的比特位随机分布;
在其中一个实施例中,所述线性运算为减法,随机数选择模块将w和k进行线性运算具体为:k′=k-w;
所述线性运算的逆运算为加法,签名结果运算模块860将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′+Qw
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (34)

1.一种公钥密码体制中的外包计算方法,其特征在于,包括:
构造随机参数w;
选择随机数k;
将w和k进行线性运算,得到k’;
向服务器发送将k’与G进行第一运算的请求,其中G为所述公钥密码体制中的生成元;
获得服务器将k’与G进行第一运算的计算结果Q′;
将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw
将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Q为所述公钥密码体制中的外包计算的结果。
2.根据权利要求1所述的公钥密码体制中的外包计算方法,其特征在于:
所述第一运算为乘法运算,所述Q′=k'G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
3.根据权利要求2所述的公钥密码体制中的外包计算方法,其特征在于,所述线性运算为减法运算,所述将w和k进行线性运算具体为:k′=k-w;
所述线性运算的逆运算为加法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′+Qw
4.根据权利要求2所述的公钥密码体制中的外包计算方法,其特征在于,所述线性运算为加法运算,所述将w和k进行线性运算具体为:k′=k+w;
所述线性运算的逆运算为减法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′-Qw
5.根据权利要求1所述的公钥密码体制中的外包计算方法,其特征在于,所述参数w的一部分比特位的比特值为0,另外一部分的比特位的比特值为1,且比特值为1的比特位随机分布。
6.根据权利要求5所述的公钥密码体制中的外包计算方法,其特征在于,所述参数w的构造方法如下:
随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的参数 w = Σ i 2 r i .
7.根据权利要求1所述的公钥密码体制中的外包计算方法,其特征在于,所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw,具体包括:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数由2r与G进行第一运算得到,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行第三运算得到Qw,所述第三运算使得所述w与G进行第一运算的计算结果与所述Qw相等。
8.根据权利要求7所述的公钥密码体制中的外包计算方法,其特征在于:
所述第一运算为乘法运算,所述第三运算为加法运算;
所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw,具体包括:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数为2rG,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行加法运算得到Qw
9.根据权利要求1所述的公钥密码体制中的外包计算方法,其特征在于,所述将w和k进行线性运算包括:从多个线性运算中随机选择一个线性运算作为当前线性运算,将w和k进行所述当前线性运算。
10.根据权利要求1所述的公钥密码体制中的外包计算方法,其特征在于:
所述构造随机参数w具体包括:
每间隔预设使用次数,重新构造随机参数w并保存;
所述将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw具体包括:
如果重新构造随机参数w,则将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw并保存。
11.根据权利要求1~10任一项所述的公钥密码体制中的外包计算方法,其特征在于,所述公钥密码体制为椭圆曲线密码体制。
12.一种公钥密码体制中的外包计算设备,其特征在于,包括:
参数构造模块,用于构造随机参数w;
随机数选择模块,用于选择随机数k;
线性运算模块,用于将w和k进行线性运算,得到k’;
计算请求发送模块,用于向服务器发送将k’与G进行第一运算的请求,其中G为所述公钥密码体制中的生成元;
设备计算结果获取模块,用于获得服务器将k’与G进行第一运算的计算结果Q′;
参数运算模块,用于将w与G进行第一运算,得到w与G进行第一运算的计算结果Qw
设备结果运算模块,用于将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Q为所述公钥密码体制中的外包计算的结果。
13.根据权利要求12所述的公钥密码体制中的外包计算设备,其特征在于:
所述第一运算为乘法运算,所述Q′=k'G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述设备结果运算模块,具体用于:将Q’和Qw进行所述线性运算的逆运算。
14.根据权利要求13所述的公钥密码体制中的外包计算设备,其特征在于,所述线性运算为减法运算,所述线性运算模块,具体用于:计算k′=k-w;
所述线性运算的逆运算为加法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′+Qw
15.根据权利要求13所述的公钥密码体制中的外包计算设备,其特征在于,所述线性运算为加法运算,所述将w和k进行线性运算具体为:k′=k+w;
所述线性运算的逆运算为减法运算,所述将Q’和Qw进行所述线性运算的逆运算具体为:Q=Q′-Qw
16.根据权利要求12所述的公钥密码体制中的外包计算方法,其特征在于,所述参数w的一部分比特位的比特值为0,另外一部分的比特位的比特值为1,且比特值为1的比特位随机分布。
17.根据权利要求16所述的公钥密码体制中的外包计算设备,其特征在于,所述参数构造模块,具体用于:
随机选择m个整数ri∈{0,2,…,n-1},i=1,2,…,m,以ri作为权值构造一个n比特的参数 w = Σ i 2 r i .
18.根据权利要求12所述的公钥密码体制中的外包计算设备,其特征在于,所述参数运算模块,具体用于:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数由2r与G进行第一运算得到,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行第三运算得到Qw,所述第三运算使得所述w与G进行第一运算的计算结果与所述Qw相等。
19.根据权利要求18所述的公钥密码体制中的外包计算设备,其特征在于:
所述第一运算为乘法运算,所述第三运算为加法运算;
所述参数运算模块,具体用于:
预先计算并存储包括有多个辅助参数的辅助参数对应列表;
从所述辅助参数对应列表中,选择所有与参数w中比特值为1的比特位的位置具有对应关系的辅助参数,所述对应关系为:辅助参数为2rG,所述r与所述比特位的位置相等;
对所有选择的辅助参数进行加法运算得到Qw
20.根据权利要求12所述的公钥密码体制中的外包计算设备,其特征在于,线性运算模块,具体用于:从多个线性运算中随机选择一个线性运算作为当前线性运算,将w和k进行所述当前线性运算。
21.根据权利要求12所述的公钥密码体制中的外包计算设备,其特征在于:
所述参数构造模块,具体用于:
每间隔预设使用次数,重新构造随机参数w并保存;
所述参数运算模块,具体用于:
如果重新构造随机参数w,则将w与G进行第一运算,得到k’与G进行第一运算的计算结果Qw并保存。
22.根据权利要求12~21任一项所述的公钥密码体制中的外包计算设备,其特征在于,所述公钥密码体制为椭圆曲线密码体制。
23.一种公钥密码体制中的外包计算方法,其特征在于,包括:
响应设备发送的将k’与G进行第一运算的请求,将k’与G进行第一运算得到计算结果Q’,其中G为所述公钥密码体制中的生成元,k’为设备所发送的随机数,由设备构造随机参数w和选择随机数k,并将w和k进行线性运算所得到;
向设备返回Q’,所述Q’用于设备将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Qw为设备将w与G进行第一运算得到的计算结果,所述Q为所述公钥密码体制中的外包计算的结果。
24.根据权利要求23所述的公钥密码体制中的外包计算方法,其特征在于,响应设备发送的将k’与G进行第一运算的请求,将k’与G进行第一运算得到计算结果Q’具体包括:
将所述k’展开为多个分段;
向多个运算服务器发送所述分段与G进行第一运算的请求;
从多个运算服务器中获取所述分段与G进行第一运算的运算结果;
将多个运算结果进行第四运算的计算结果作为Q’,所述第四运算使得所述k’与G进行第一运算的计算结果与所述Q’相等。
25.根据权利要求24所述的公钥密码体制中的外包计算方法,其特征在于,所述将所述k’展开为多个分段,具体包括:用权2v将k’展开为多个分段,其中v为大于或等于0的整数。
26.根据权利要求23所述的公钥密码体制中的外包计算方法,其特征在于:
所述第一运算为乘法,所述Q′=k'G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
27.根据权利要求24所述的公钥密码体制中的外包计算方法,其特征在于:
所述第一运算为乘法,所述Q′=k'G;
所述第四运算为加法,所述将多个运算结果进行第四运算的计算结果作为Q’具体包括:
将多个运算结果进行加法运算的计算结果作为Q’。
28.根据权利要求23~27任一项所述的公钥密码体制中的外包计算方法,其特征在于,所述公钥密码体制为椭圆曲线密码体制。
29.一种公钥密码体制中的外包计算的服务器,其特征在于,包括:
服务器运算模块,响应设备发送的将k’与G进行第一运算的请求,将k’与G进行第一运算得到计算结果Q’,其中G为所述公钥密码体制中的生成元,k’为设备所发送的随机数,由设备构造随机参数w和选择随机数k,并将w和k进行线性运算所得到;
结果发送模块,用于向设备返回Q’,所述Q’用于设备将Q’和Qw进行第二运算,得到Q’和Qw进行第二运算的计算结果Q,所述第二运算使得所述k与G进行第一运算的计算结果与所述Q相等,所述Qw为设备将w与G进行第一运算得到的计算结果,所述Q为所述公钥密码体制中的外包计算的结果。
30.根据权利要求29所述的公钥密码体制中的外包计算的服务器,其特征在于,所述分发模块包括:
分段子模块,用于将所述k’展开为多个分段;
分发子模块,向多个运算服务器发送所述分段与G进行第一运算的请求;
服务器计算结果获取子模块,从多个运算服务器中获取所述分段与G进行第一运算的运算结果;
服务器合并结果子模块,将多个运算结果进行第四运算的计算结果作为Q’,所述第四运算使得所述k’与G进行第一运算的计算结果与所述Q’相等。
31.根据权利要求30所述的公钥密码体制中的外包计算的服务器,其特征在于,分段子模块,具体用于:用权2v将k’展开为多个分段,其中v为大于或等于0的整数。
32.根据权利要求29所述的公钥密码体制中的外包计算的服务器,其特征在于:
所述第一运算为乘法,所述Q′=k′G,所述Qw=wG;
所述第二运算为所述线性运算的逆运算,所述将Q’和Qw进行第二运算为:将Q’和Qw进行所述线性运算的逆运算。
33.根据权利要求30所述的公钥密码体制中的外包计算的服务器,其特征在于:
所述第一运算为乘法,所述Q′=k'G;
所述第四运算为加法,所述服务器合并结果子模块,具体用于:将多个运算结果进行加法运算的计算结果作为Q’。
34.根据权利要求29~33任一项所述的公钥密码体制中的外包计算的服务器,其特征在于,所述公钥密码体制为椭圆曲线密码体制。
CN201310018242.9A 2013-01-17 2013-01-17 公钥密码体制中的外包计算方法、设备和服务器 Active CN103067165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310018242.9A CN103067165B (zh) 2013-01-17 2013-01-17 公钥密码体制中的外包计算方法、设备和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310018242.9A CN103067165B (zh) 2013-01-17 2013-01-17 公钥密码体制中的外包计算方法、设备和服务器

Publications (2)

Publication Number Publication Date
CN103067165A true CN103067165A (zh) 2013-04-24
CN103067165B CN103067165B (zh) 2016-10-05

Family

ID=48109636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310018242.9A Active CN103067165B (zh) 2013-01-17 2013-01-17 公钥密码体制中的外包计算方法、设备和服务器

Country Status (1)

Country Link
CN (1) CN103067165B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475473A (zh) * 2013-08-26 2013-12-25 广东数字证书认证中心有限公司 数字签名方法和设备、数字签名中密码运算方法和服务器
CN103533046A (zh) * 2013-10-12 2014-01-22 苏州大学 公开可验的线性代数委托计算系统
CN105610583A (zh) * 2014-11-04 2016-05-25 上海华虹集成电路有限责任公司 用于抵御错误曲线攻击的ecdsa方法
CN108809623A (zh) * 2018-07-10 2018-11-13 矩阵元技术(深圳)有限公司 安全多方计算方法、装置及系统
CN109889341A (zh) * 2019-01-15 2019-06-14 思力科(深圳)电子科技有限公司 数据处理方法、电子标签及射频读卡器
CN110309665A (zh) * 2019-07-08 2019-10-08 北京海泰方圆科技股份有限公司 一种sm2数字签名的快速生成方法和装置
CN112487448A (zh) * 2020-11-27 2021-03-12 珠海零边界集成电路有限公司 一种加密信息处理装置、方法及计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1207866C (zh) * 2001-09-28 2005-06-22 中国科学院研究生院 一种安全的数字签名系统与方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475473A (zh) * 2013-08-26 2013-12-25 广东数字证书认证中心有限公司 数字签名方法和设备、数字签名中密码运算方法和服务器
CN103475473B (zh) * 2013-08-26 2016-10-05 数安时代科技股份有限公司 数字签名方法和设备、数字签名中密码运算方法和服务器
CN103533046A (zh) * 2013-10-12 2014-01-22 苏州大学 公开可验的线性代数委托计算系统
CN103533046B (zh) * 2013-10-12 2016-10-26 苏州大学 公开可验的线性代数委托计算系统
CN105610583A (zh) * 2014-11-04 2016-05-25 上海华虹集成电路有限责任公司 用于抵御错误曲线攻击的ecdsa方法
CN105610583B (zh) * 2014-11-04 2018-10-26 上海华虹集成电路有限责任公司 用于抵御错误曲线攻击的ecdsa方法
CN108809623A (zh) * 2018-07-10 2018-11-13 矩阵元技术(深圳)有限公司 安全多方计算方法、装置及系统
WO2020011183A1 (zh) * 2018-07-10 2020-01-16 云图有限公司 安全多方计算方法、装置及系统
CN108809623B (zh) * 2018-07-10 2020-09-25 矩阵元技术(深圳)有限公司 安全多方计算方法、装置及系统
CN109889341A (zh) * 2019-01-15 2019-06-14 思力科(深圳)电子科技有限公司 数据处理方法、电子标签及射频读卡器
CN110309665A (zh) * 2019-07-08 2019-10-08 北京海泰方圆科技股份有限公司 一种sm2数字签名的快速生成方法和装置
CN112487448A (zh) * 2020-11-27 2021-03-12 珠海零边界集成电路有限公司 一种加密信息处理装置、方法及计算机设备
CN112487448B (zh) * 2020-11-27 2024-05-03 珠海零边界集成电路有限公司 一种加密信息处理装置、方法及计算机设备

Also Published As

Publication number Publication date
CN103067165B (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
JP5297688B2 (ja) ベクトル秘匿型内積計算システム、ベクトル秘匿型内積計算方法及び暗号鍵共有システム
CN103067165B (zh) 公钥密码体制中的外包计算方法、设备和服务器
CN101374043B (zh) 密钥协商的方法、加/解密的方法及签名/验证的方法
CN103095459B (zh) 公钥密码体制中模幂运算方法、设备和服务器
CN103475473B (zh) 数字签名方法和设备、数字签名中密码运算方法和服务器
JPH075808A (ja) 二有理置換に基づく効率的な符牒機構
Subhashini et al. Mapreduce methodology for elliptical curve discrete logarithmic problems–securing telecom networks
Moldovyan et al. A new hard problem over non-commutative finite groups for cryptographic protocols
CN103490883A (zh) 一种多变量公钥加密/解密系统及加密/解密方法
CN105245343A (zh) 一种基于多变量密码技术的在线离线签名系统及方法
CN110677243B (zh) 一种支持异构公钥系统的代理重签名方案的构造方法
Mittal et al. A quantum secure ID-based cryptographic encryption based on group rings
CN103001957A (zh) 一种密钥生成方法、设备及服务器
Khalimov et al. Encryption Based on the Group of the Hermitian Function Field and Homomorphic Encryption
Khadir New variant of ElGamal signature scheme
Youn et al. An efficient non-interactive deniable authentication scheme based on trapdoor commitment schemes
Wang et al. A new dynamic accumulator for batch updates
US20150281256A1 (en) Batch verification method and apparatus thereof
Malina et al. Trade-off between signature aggregation and batch verification
Lin Toward secure strong designated verifier signature scheme from identity-based system.
CN106209376B (zh) 一种抵抗伪造签名攻击的多变量签名方法
CN106100843B (zh) 多变量公钥生成、加密和解密方法
CN113992329B (zh) 一种区块链下基于sm2的交易签名方法、装置、设备及介质
Meshram et al. An Efficient Conformable Fractional Chaotic Map‐Based Online/Offline IBSS Scheme for Provable Security in ROM
Han et al. Privacy preserved aid-verification attribute based signature scheme

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 528200 science and technology road, Nanhai Software Science Park, Nanhai Town, Nanhai District, Foshan, Guangdong

Applicant after: Age of security Polytron Technologies Inc

Address before: 528200 science and technology road, Nanhai Software Science Park, Nanhai Town, Nanhai District, Foshan, Guangdong

Applicant before: Guangdong Certificate Authority Center Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant