CN110688089A - 一种针对群元数乘或幂运算的计算方法及系统 - Google Patents
一种针对群元数乘或幂运算的计算方法及系统 Download PDFInfo
- Publication number
- CN110688089A CN110688089A CN201910907018.2A CN201910907018A CN110688089A CN 110688089 A CN110688089 A CN 110688089A CN 201910907018 A CN201910907018 A CN 201910907018A CN 110688089 A CN110688089 A CN 110688089A
- Authority
- CN
- China
- Prior art keywords
- integer
- party
- parameter
- group
- calculation
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
所述方法涉及针对群元数乘或幂运算的计算方法:第一方有一个参数池,池中有m个[1,n‑1]内的整数k1,k2,…,km,及对应的加法群中的元k1G,k2G,…,kmG,其中G是加法群中的一个元,或者对应的乘法群中的元g^k1,g^k2,…,g^km,其中g是乘法群中的一个元,^为幂运算,n为群的阶;第一方利用池中的整数参数及对应的群元,在不暴露k的情况下借助第二方完成G_k=kG或g_k=g^k的计算,其中k是[1,n‑1]中的第一方的整数秘密;在完成一次G_k或g_k的计算后,或者在完成规定次数的、针对不同k的G_k或g_k的计算后,第一方对参数池中已使用的整数参数kt及对应的群元进行更新。
Description
技术领域
本发明属于密码技术领域,特别是一种针对资源受限装置的加法群元数乘运算(标量乘运算、倍加运算)或乘法群元幂运算的计算方法及系统。
背景技术
在密码运算(主要是公钥密码算法的密码运算)中常常要进行加法群中群元的数乘运算(标量乘运算、倍加运算)或乘法群中群元的幂运算,而这常常涉及复杂的大数运算,比如,在基于椭圆曲线点群的密码算法中,常常要进行kG数乘运算,其中G是椭圆曲线加法点群中的一个元(点),k是一个随机选择的、其值可能非常大的整数,计算kG涉及大数计算,计算量大;再比如,在一些密码运算中(比如基于双线配对的密码算法),常常要进行gk幂运算,其中g是一个乘法群中的一个元,比如,其可能是一个非常大的整数,k是一个随机选择的、其值可能非常大的整数,因此,计算gk涉及大数运算,计算量大。
随着物联网的发展,越来越多的微小装置智能化,并接入到网路。出于安全保护功能的需要,这些智能化的微小装置可能需要进行密码运算,而这些微小装置通常是资源受限的装置,计算能力弱,它们实时进行这种复杂的、涉及大数运算的数乘或幂运算是比较困难,这样就限制了密码算法(尤其是公钥密码算法)在这些微小智能装置中的应用。
发明内容
本发明的目的是针对资源受限装置,提出一种加法群元数乘运算(标量乘运算、倍加运算)或乘法群元幂运算的计算方法及相应的系统,以满足这些装置对密码功能的需求。
针对以上发明目的,本专利申请提出的技术方案包括一种针对群元数乘或幂运算的计算方法及系统。
本发明提出的针对群元数乘或幂运算的计算方法,具体如下:
所述方法涉及一个加法群或乘法群;所述加法群或乘法群的阶是素数n;
所述方法包括第一方和第二方,其中,第一方维护有一个参数池,参数池中有m个[1,n-1]区间内的整数k1,k2,…,km,及对应的加法群中的群元k1G,k2G,…,kmG,即k1,k2,…,km分别与G进行数乘运算的结果(标量乘运算、倍点运算),其中G是加法群中的一个元,或者有对应的乘法群中的群元g^k1,g^k2,…,g^km,即k1,k2,…,km分别对g进行幂运算的结果,其中g是乘法群中的一个元,^表示幂运算(对^前面的元进行幂运算,^后面的整数是幂运算的次数);
k1,k2,…,km称为整数参数,群元k1G,k2G,…,kmG称为整数参数k1,k2,…,km对应的数乘元,群元g^k1,g^k2,…,g^km称为整数参数k1,k2,…,km对应的幂元(整数参数及其与数乘元或幂元的对应关系需要保密);
k1G,k2G,…,kmG分别表示为G_k1,G_k2,…,G_km;
g^k1,g^k2,…,g^km分别表示为g_k1,g_k2,…,g_km;
当第一方需要计算G_k=kG或g_k=g^k时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数(如随机选择的作为秘密的整数,或通过约定方式选取或计算得到的需要保密的整数),第一方与第二方按如下方式协同完成G_k=kG或g_k=g^k的计算:
第一方从参数池中的m个整数参数中按预定的规律选择一个整数参数kt,t=1,2,…,或m;
第一方计算w=(k(kt)-1)mod n或w=(k-kt)mod n,然后将w和G_kt或w和g_kt发送给第二方,其中(kt)-1为kt的模n乘法逆(即(kt(kt)-1)mod n=1),G_kt是(从参数池中取出的)与kt对应的数乘元(即G_kt=ktG),g_kt是(从参数池中取出的)与kt对应的幂元(即g_kt=g^kt);
若w的计算式为w=(k(kt)-1)mod n,则:
第二方计算G_k=wG_kt或g_k=g_kt^w;
若w的计算式为w=(k-kt)mod n,则:
第二方计算G_k=wG+G_kt或g_k=g_kt(g^w);
G_k即为kG或g_k即为g^k;
在完成一次G_k或g_k计算后,或者在完成规定次数的、针对不同k的G_k或g_k的计算后,第一方对参数池中已使用的整数参数kt及对应的数乘元G_kt或幂元g_kt进行更新,其中,t=1,2,…或m。
对于以上所述的针对群元数乘或幂运算的计算方法,第一方从参数池中的m个整数参数中按预定的规律选择一个整数参数kt的方式包括:
在每次计算G_k=kG或g_k=g^k时,在m个整数参数中按顺序依次选择一个整数参数kt,或在m个整数参数中随机选择一个未使用的整数参数kt(使用后又更新的整数参数属于未使用的整数参数);
所述在m个整数参数中按顺序依次选择一个整数参数kt是指:
若是第一次计算G_k=kG或g_k=g^k,则选择k1;
若上次计算选择的整数参数是ki且1≤i<m,则本次计算选择的是ki+1;
若上次计算选择的整数参数是km,则本次计算选择的是k1。
对于以上所述的针对群元数乘或幂运算的计算方法,第一方对参数池中已使用的整数参数kt及对应的G_kt或g_kt进行更新的一种方式如下(不意味着全部可能的方式):
在m个整数参数中选择p个整数参数(比如,从m个整数参数中随机选择的p个参数,或者,p个整数参数中一个是kt,另外p-1个是从其余m-1个整数参数中随机选择的),1≤p<m;p个整数参数分别表示为r1,r2,…,rp;
r1,r2,…,rp对应的数乘元分别表示为G_r1,G_r2,…,G_rp,或者r1,r2,…,rp对应的幂元分别表示为g_r1,g_r2,…,g_rp;
随机选择p个正整数c1,c2,…,cp,且使得c1+c2+…+cp≤L,其中L是预先设定的小于m的整数(通常L远远的小于m);
计算u=(c1r1+c2r2+…+cprp)mod n,
G_u=c1G_r1+c2G_r2+…+cpG_rp,
或g_u=(g_r1^c1)(g_r2^c2)…(g_rp^cp);
然后用u作为新的整数参数kt(第t个整数参数)的值,用G_u作为新的G_kt(kt对应的数乘元),或用g_u作为新的g_kt(kt对应的幂元)。
在以上所述的整数参数kt及对应的G_kt或g_kt更新操作中,p是一个固定的整数或者非固定的整数;若p是一个非固定的整数,则p是一个在规定的范围内随机选择的整数,或者是一个按预先设定的规律变化或选取的整数。
在以上所述的整数参数kt及对应的G_kt或g_kt更新操作中,L的选取原则是使得针对整数参数kt及对应的G_kt或g_kt所进行的更新操作能在期望或规定的时间内完成(即在计算量最大的情况下,更新操作能在期望或规定的时间内完成)。
在以上所述的整数参数kt及对应的G_kt或g_kt更新操作中,若L=pq(p乘以q),其中p、q为整数,则第一方随机选择p个正整数c1,c2,…,cp,且使得c1+c2+…+cp≤L的一种方式如下(不是全部可能的方式):
在[1,q]中随机选择p个整数c1,c2,…,cp。
基于以上所述的针对群元数乘或幂运算的计算方法,可构建相应的针对群元数乘或幂运算的计算系统,系统包括两个装置,其中一个装置为所述第一方,另一个装置为所述第二方;
当作为第一方的装置需要计算G_k=kG或g_k=g^k时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数(如随机选择的作为秘密的整数,或通过约定方式选取或计算得到的需要保密的整数),所述两个装置按所述针对群元数乘或幂运算的计算方法计算得到G_k=kG或g_k=g^k。
在以上针对群元数乘或幂运算的计算方法及系统中,第一方通常是一个资源受限、计算能力弱的装置,而第二方通常是资源丰富、计算能力强的装置;基于本发明的方法及系统,作为资源受限装置的第一方可以借助资源丰富的第二方完成计算量大的加法群中(如椭圆曲线点群中的数乘或倍加运算)的数乘运算或乘法群中的幂运算(如双线配对的乘法群中的幂运算);同时,为了防止对参数池中整数参数的破解,第一方根据预定的策略对整数参数进行更新,而更新操作涉及的运算是第一方(资源受限装置)能够承担的、计算量较小的运算。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例仅是本发明列举的几个可能的实施例,不代表全部可能的实施例,不作为对本发明的限定。
实施例1、
此实施例涉及一个加法群,加法群的阶是素数n;此实施例包括第一方和第二方,其中,第一方维护有一个参数池,参数池中有m个[1,n-1]区间内的整数k1,k2,…,km,及对应的加法群中的群元k1G,k2G,…,kmG即k1,k2,…,km分别与G进行数乘运算的结果(标量乘运算、倍点运算),其中G是加法群中的一个元;
k1,k2,…,km称为整数参数,群元k1G,k2G,…,kmG称为整数参数k1,k2,…,km对应的数乘元(整数参数及其与数乘元的对应关系需要保密);
k1G,k2G,…,kmG分别表示为G_k1,G_k2,…,G_km;
当第一方需要计算G_k=kG时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数(如随机选择的作为秘密的整数,或通过约定方式选取或计算得到的需要保密的整数),第一方与第二方按如下方式协同完成G_k=kG的计算:
第一方从参数池中的m个整数参数中按预定的规律选择一个整数参数kt;
第一方计算w=(k(kt)-1)mod n,然后将w和G_kt发送给第二方,其中(kt)-1为kt的模n乘法逆(即(kt(kt)-1)mod n=1),G_kt是(从参数池中取出的)与kt对应的数乘元(即G_kt=ktG);
第二方计算G_k=wG_kt;
G_k即为kG;
在完成一次G_k计算后,或者在完成规定次数的、针对不同k的G_k的计算后,第一方对参数池中已使用的整数参数kt及对应的数乘元G_kt进行更新,其中,t=1,2,…或m。
实施例2、
此实施例涉及一个加法群,加法群的阶是素数n;此实施例包括第一方和第二方,其中,第一方维护有一个参数池,参数池中有m个[1,n-1]区间内的整数k1,k2,…,km,及对应的加法群中的群元k1G,k2G,…,kmG即k1,k2,…,km分别与G进行数乘运算的结果(标量乘运算、倍点运算),其中G是加法群中的一个元;
k1,k2,…,km称为整数参数,群元k1G,k2G,…,kmG称为整数参数k1,k2,…,km对应的数乘元(整数参数及其与数乘元的对应关系需要保密);
k1G,k2G,…,kmG分别表示为G_k1,G_k2,…,G_km;
当第一方需要计算G_k=kG时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数(如随机选择的作为秘密的整数,或通过约定方式选取或计算得到的需要保密的整数),第一方与第二方按如下方式协同完成G_k=kG的计算:
第一方从参数池中的m个整数参数中按预定的规律选择一个整数参数kt;
第一方计算w=(k-kt)mod n,然后将w和G_kt发送给第二方,其中G_kt是(从参数池中取出的)与kt对应的数乘元(即G_kt=ktG);
第二方计算G_k=wG+G_kt;
G_k即为kG;
在完成一次G_k计算后,或者在完成规定次数的、针对不同k的G_k的计算后,第一方对参数池中已使用的整数参数kt及对应的数乘元G_kt进行更新,其中,t=1,2,…或m。
实施例3、
此实施例涉及一个乘法群,乘法群的阶是素数n;此实施例包括第一方和第二方,其中,第一方维护有一个参数池,参数池中有m个[1,n-1]区间内的整数k1,k2,…,km,及对应的乘法群中的群元g^k1,g^k2,…,g^km,即k1,k2,…,km分别对g进行幂运算的结果,其中g是乘法群中的一个元,^表示幂运算(对^前面的元进行幂运算,^后面的整数是幂运算的次数);
k1,k2,…,km称为整数参数,群元g^k1,g^k2,…,g^km称为整数参数k1,k2,…,km对应的幂元(整数参数及其与幂元的对应关系需要保密);
g^k1,g^k2,…,g^km分别表示为g_k1,g_k2,…,g_km;
当第一方需要计算g_k=g^k时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数(如随机选择的作为秘密的整数,或通过约定方式选取或计算得到的需要保密的整数),第一方与第二方按如下方式协同完成g_k=g^k的计算:
第一方从参数池中的m个整数参数中按预定的规律选择一个整数参数kt;
第一方计算w=(k(kt)-1)mod n,然后将w和g_kt发送给第二方,其中(kt)-1为kt的模n乘法逆(即(kt(kt)-1)mod n=1),g_kt是(从参数池中取出的)与kt对应的幂元(即g_kt=g^kt);
第二方计算g_k=g_kt^w;
g_k即为g^k;
在完成一次g_k计算后,或者在完成规定次数的、针对不同k的g_k的计算后,第一方对参数池中已使用的整数参数kt及对应的幂元g_kt进行更新,其中,t=1,2,…或m。
实施例4、
此实施例涉及一个乘法群,乘法群的阶是素数n;此实施例包括第一方和第二方,其中,第一方维护有一个参数池,参数池中有m个[1,n-1]区间内的整数k1,k2,…,km,及对应的乘法群中的群元g^k1,g^k2,…,g^km,即k1,k2,…,km分别对g进行幂运算的结果,其中g是乘法群中的一个元,^表示幂运算(对^前面的元进行幂运算,^后面的整数是幂运算的次数);
k1,k2,…,km称为整数参数,群元g^k1,g^k2,…,g^km称为整数参数k1,k2,…,km对应的幂元(整数参数及其与幂元的对应关系需要保密);
g^k1,g^k2,…,g^km分别表示为g_k1,g_k2,…,g_km;
当第一方需要计算g_k=g^k时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数(如随机选择的作为秘密的整数,或通过约定方式选取或计算得到的需要保密的整数),第一方与第二方按如下方式协同完成g_k=g^k的计算:
第一方从参数池中的m个整数参数中按预定的规律选择一个整数参数kt;
第一方计算w=(k-kt)mod n,然后将w和g_kt发送给第二方,其中g_kt是(从参数池中取出的)与kt对应的幂元(即g_kt=g^kt);
第二方计算g_k=g_kt(g^w);
g_k即为g^k;
在完成一次g_k计算后,或者在完成规定次数的、针对不同k的g_k的计算后,第一方对参数池中已使用的整数参数kt及对应的幂元g_kt进行更新,其中,t=1,2,…或m。
在以上实施例1-4中,所述第一方在参数池中的m个整数参数中按预定的规律选择一个整数参数kt的方式包括:
在每次计算G_k=kG或g_k=g^k时,在m个整数参数中按顺序依次选择一个整数参数kt,或在m个整数参数中随机选择一个未使用的整数参数kt(使用后又更新的整数参数属于未使用的整数参数);
所述在m个整数参数中按顺序依次选择一个整数参数kt是指:
若是第一次计算G_k=kG或g_k=g^k,则选择k1;
若上次计算选择的整数参数是ki且1≤i<m,则本次计算选择的是ki+1;
若上次计算选择的整数参数是km,则本次计算选择的是k1。
在以上实施例1-2中,所述第一方对参数池中已使用的整数参数kt及对应的G_kt进行更新的一种方式如下(不意味着全部可能的方式):
在m个整数参数中选择p个整数参数,1≤p<m,其中一个是kt,另外p-1个是从其余m-1个整数参数中随机选择的;p个整数参数分别表示为r1,r2,…,rp;
r1,r2,…,rp对应的数乘元分别表示为G_r1,G_r2,…,G_rp;
随机选择p个正整数c1,c2,…,cp,且使得c1+c2+…+cp≤L,其中L是预先设定的小于m的整数(通常L远远的小于m);
计算u=(c1r1+c2r2+…+cprp)mod n,
G_u=c1G_r1+c2G_r2+…+cpG_rp;
然后用u作为新的整数参数kt(第t个整数参数)的值,用G_u作为新的G_kt(kt对应的数乘元)。
在以上实施例3-4中,所述第一方对参数池中已使用的整数参数kt及对应的g_kt进行更新的一种方式如下(不意味着全部可能的方式):
在m个整数参数中选择p个整数参数(比如,从m个整数参数中随机选择的p个参数,或者,p个整数参数中一个是kt,另外p-1个是从其余m-1个整数参数中随机选择的),1≤p<m;p个整数参数分别表示为r1,r2,…,rp;
r1,r2,…,rp对应的幂元分别表示为g_r1,g_r2,…,g_rp;
随机选择p个正整数c1,c2,…,cp,且使得c1+c2+…+cp≤L,其中L是预先设定的小于m的整数(通常L远远的小于m);
计算u=(c1r1+c2r2+…+cprp)mod n,
g_u=(g_r1^c1)(g_r2^c2)…(g_rp^cp);
然后用u作为新的整数参数kt(第t个整数参数)的值,用g_u作为新的g_kt(kt对应的幂元)。
在以上实施例更新整数参数kt及对应的G_kt或g_kt中,选取的参数的个数p是一个固定的整数或者非固定的整数;若p是一个非固定的整数,则p是一个在规定的范围内随机选择的整数,或者是一个按预先设定的规律变化或选取的整数。
在以上实施例更新整数参数kt及对应的G_kt或g_kt中,L的选取原则是使得针对整数参数kt及对应的G_kt或g_kt所进行的更新操作能在期望或规定的时间内完成(即在计算量最大的情况下,更新能操作在期望或规定的时间内完成)。
在以上实施例更新整数参数kt及对应的G_kt或g_kt中,若L=pq(p乘以q),其中p、q为整数,则第一方随机选择p个正整数c1,c2,…,cp,且使得c1+c2+…+cp≤L的一种方式如下(不是全部可能的方式):
在[1,q]中随机选择p个整数c1,c2,…,cp。
基于所述针对群元数乘或幂运算的计算方法可实施一个针对群元数乘或幂运算的计算系统,系统包括两个装置,其中一个装置为所述第一方,另一个装置为所述第二方;其中作为第一方的装置是一个资源受限、计算能力弱的装置,作为第二方的装置是一个资源丰富、计算能力强的装置;
当作为第一方的装置需要计算G_k=kG或g_k=g^k时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数(如随机选择的作为秘密的整数,或通过约定方式选取或计算得到的需要保密的整数),所述两个装置按所述针对群元数乘或幂运算的计算方法计算得到G_k=kG或g_k=g^k。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (7)
1.一种针对群元数乘或幂运算的计算方法,其特征是:
所述方法涉及一个加法群或乘法群;所述加法群或乘法群的阶是素数n;
所述方法包括第一方和第二方,其中,第一方维护有一个参数池,参数池中有m个[1,n-1]区间内的整数k1,k2,…,km,及对应的加法群中的群元k1G,k2G,…,kmG,即k1,k2,…,km分别与G进行数乘运算的结果,其中G是加法群中的一个元,或者有对应的乘法群中的群元g^k1,g^k2,…,g^km,即k1,k2,…,km分别对g进行幂运算的结果,其中g是乘法群中的一个元,^表示幂运算;
k1,k2,…,km称为整数参数,群元k1G,k2G,…,kmG称为整数参数k1,k2,…,km对应的数乘元,群元g^k1,g^k2,…,g^km称为整数参数k1,k2,…,km对应的幂元;
k1G,k2G,…,kmG分别表示为G_k1,G_k2,…,G_km;
g^k1,g^k2,…,g^km分别表示为g_k1,g_k2,…,g_km;
当第一方需要计算G_k=kG或g_k=g^k时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数,第一方与第二方按如下方式协同完成G_k=kG或g_k=g^k的计算:
第一方从参数池中的m个整数参数中按预定的规律选择一个整数参数kt,t=1,2,…,或m;
第一方计算w=(k(kt)-1)mod n或w=(k-kt)mod n,然后将w和G_kt或w和g_kt发送给第二方,其中(kt)-1为kt的模n乘法逆,G_kt是与kt对应的数乘元,g_kt是与kt对应的幂元;
若w的计算式为w=(k(kt)-1)mod n,则:
第二方计算G_k=wG_kt或g_k=g_kt^w;
若w的计算式为w=(k-kt)mod n,则:
第二方计算G_k=wG+G_kt或g_k=g_kt(g^w);
G_k即为kG或g_k即为g^k;
在完成一次G_k或g_k计算后,或者在完成规定次数的、针对不同k的G_k或g_k的计算后,第一方对参数池中已使用的整数参数kt及对应的数乘元G_kt或幂元g_kt进行更新,其中,t=1,2,…或m。
2.根据权利要求1所述的针对群元数乘或幂运算的计算方法,其特征是:
所述第一方从参数池中的m个整数参数中按预定的规律选择一个整数参数kt的方式包括:
在每次计算G_k=kG或g_k=g^k时,在m个整数参数中按顺序依次选择一个整数参数kt,或在m个整数参数中随机选择一个未使用的整数参数kt;
所述在m个整数参数中按顺序依次选择一个整数参数kt是指:
若是第一次计算G_k=kG或g_k=g^k,则选择k1;
若上次计算选择的整数参数是ki且1≤i<m,则本次计算选择的是ki+1;
若上次计算选择的整数参数是km,则本次计算选择的是k1。
3.根据权利要求1所述的针对群元数乘或幂运算的计算方法,其特征是:
所述第一方对参数池中已使用的整数参数kt及对应的G_kt或g_kt进行更新的一种方式如下:
在m个整数参数中选择p个整数参数,1≤p<m;p个整数参数分别表示为r1,r2,…,rp;
r1,r2,…,rp对应的数乘元分别表示为G_r1,G_r2,…,G_rp,或者r1,r2,…,rp对应的幂元分别表示为g_r1,g_r2,…,g_rp;
随机选择p个正整数c1,c2,…,cp,且使得c1+c2+…+cp≤L,其中L是预先设定的小于m的整数;
计算u=(c1r1+c2r2+…+cprp)mod n,
G_u=c1G_r1+c2G_r2+…+cpG_rp,
或g_u=(g_r1^c1)(g_r2^c2)…(g_rp^cp);
然后用u作为新的整数参数kt的值,用G_u作为新的G_kt,或用g_u作为新的g_kt。
4.根据权利要求3所述的针对群元数乘或幂运算的计算方法,其特征是:
所述p是一个固定的整数或者非固定的整数;若p是一个非固定的整数,则p是一个在规定的范围内随机选择的整数,或者是一个按预先设定的规律变化或选取的整数。
5.根据权利要求3所述的针对群元数乘或幂运算的计算方法,其特征是:
L的选取原则是使得针对整数参数kt及对应的G_kt或g_kt所进行的更新操作能在期望或规定的时间内完成。
6.根据权利要求5所述的针对群元数乘或幂运算的计算方法,其特征是:
若L=pq,其中p、q为整数,则第一方随机选择p个正整数c1,c2,…,cp,且使得c1+c2+…+cp≤L的一种方式如下:
在[1,q]中随机选择p个整数c1,c2,…,cp。
7.一种基于权利要求1-6中任一项所述的针对群元数乘或幂运算的计算方法的针对群元数乘或幂运算的计算系统,其特征是:
所述系统包括两个装置,其中一个装置为所述第一方,另一个装置为所述第二方;
当作为第一方的装置需要计算G_k=kG或g_k=g^k时,其中k是[1,n-1]中的只有第一方知道的需要保密的整数,所述两个装置按所述针对群元数乘或幂运算的计算方法计算得到G_k=kG或g_k=g^k。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910907018.2A CN110688089A (zh) | 2019-09-24 | 2019-09-24 | 一种针对群元数乘或幂运算的计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910907018.2A CN110688089A (zh) | 2019-09-24 | 2019-09-24 | 一种针对群元数乘或幂运算的计算方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110688089A true CN110688089A (zh) | 2020-01-14 |
Family
ID=69110039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910907018.2A Pending CN110688089A (zh) | 2019-09-24 | 2019-09-24 | 一种针对群元数乘或幂运算的计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688089A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867687A (zh) * | 2021-09-08 | 2021-12-31 | 武汉理工大学 | 一种简单安全的群元数乘和幂运算的计算方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040005054A1 (en) * | 2002-06-27 | 2004-01-08 | Montgomery Peter L. | Koblitz exponentiation with bucketing |
US20040083253A1 (en) * | 2002-10-29 | 2004-04-29 | Yung-Hsiang Lee | Method and apparatus for efficient matrix multiplication in a direct sequence CDMA system |
CN101965602A (zh) * | 2008-02-25 | 2011-02-02 | 国立大学法人冈山大学 | 标量乘法的运算方法、幂运算的运算方法、记录有标量乘法的运算程序的记录介质及记录有幂运算的运算程序的记录介质 |
CN104049934A (zh) * | 2013-03-11 | 2014-09-17 | 汤姆逊许可公司 | 用于在密码系统中抗故障求幂的方法以及设备 |
CN106549770A (zh) * | 2017-01-13 | 2017-03-29 | 武汉理工大学 | Sm2数字签名生成方法及系统 |
CN107992283A (zh) * | 2017-11-09 | 2018-05-04 | 中国电子科技集团公司第二十八研究所 | 一种基于降维实现有限域乘法的方法和装置 |
CN108055134A (zh) * | 2017-12-12 | 2018-05-18 | 武汉理工大学 | 椭圆曲线点数乘及配对运算的协同计算方法及系统 |
-
2019
- 2019-09-24 CN CN201910907018.2A patent/CN110688089A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040005054A1 (en) * | 2002-06-27 | 2004-01-08 | Montgomery Peter L. | Koblitz exponentiation with bucketing |
US20040083253A1 (en) * | 2002-10-29 | 2004-04-29 | Yung-Hsiang Lee | Method and apparatus for efficient matrix multiplication in a direct sequence CDMA system |
CN101965602A (zh) * | 2008-02-25 | 2011-02-02 | 国立大学法人冈山大学 | 标量乘法的运算方法、幂运算的运算方法、记录有标量乘法的运算程序的记录介质及记录有幂运算的运算程序的记录介质 |
CN104049934A (zh) * | 2013-03-11 | 2014-09-17 | 汤姆逊许可公司 | 用于在密码系统中抗故障求幂的方法以及设备 |
CN106549770A (zh) * | 2017-01-13 | 2017-03-29 | 武汉理工大学 | Sm2数字签名生成方法及系统 |
CN107992283A (zh) * | 2017-11-09 | 2018-05-04 | 中国电子科技集团公司第二十八研究所 | 一种基于降维实现有限域乘法的方法和装置 |
CN108055134A (zh) * | 2017-12-12 | 2018-05-18 | 武汉理工大学 | 椭圆曲线点数乘及配对运算的协同计算方法及系统 |
Non-Patent Citations (2)
Title |
---|
A. ABRAMS: "Random Multiplication Approaches Uniform Measure in Finite Groups", 《JOURNAL OF THEORETICAL PROBABILITY》 * |
龙毅宏: "电子邮件IBE加密研究", 《软件》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867687A (zh) * | 2021-09-08 | 2021-12-31 | 武汉理工大学 | 一种简单安全的群元数乘和幂运算的计算方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Segar et al. | Pell's RSA key generation and its security analysis | |
JP5329676B2 (ja) | 鍵合意プロトコルの加速 | |
EP3035587B1 (en) | Hypersphere-based multivariable public key signature/verification system and method | |
CN106452789B (zh) | 一种多方位防侧信道攻击的签名方法 | |
US8767955B2 (en) | Protection of a modular exponentiation calculation by multiplication by a random quantity | |
US8681986B2 (en) | Single-round password-based key exchange protocols | |
EP3096488B1 (en) | Hypersphere-based multivariable public key encryption/decryption system and method | |
US9948463B2 (en) | Multivariate public key signature/verification system and signature/verification method | |
EP0916208A1 (en) | Accelerating public-key cryptography by precomputing randomly generated pairs | |
US20130016826A1 (en) | Protection of a modular exponentiation calculation by addition of a random quantity | |
CN105245343B (zh) | 一种基于多变量密码技术的在线离线签名系统及方法 | |
CN112685758B (zh) | 基于椭圆曲线加密算法的数据加密系统 | |
CN112187469A (zh) | 一种基于密钥因子的sm2多方协同数字签名方法和系统 | |
Koppermann et al. | 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices | |
Zhu et al. | An efficient chaotic maps-based deniable authentication group key agreement protocol | |
CN110688089A (zh) | 一种针对群元数乘或幂运算的计算方法及系统 | |
CN108964906B (zh) | 协同ecc的数字签名方法 | |
Kahrobaei et al. | Public key exchange using extensions by endomorphisms and matrices over a Galois field | |
KR20150112315A (ko) | 묶음 검증 방법 및 장치 | |
CN109543451B (zh) | 一种基于模分量同态的隐私保护处理方法 | |
US11509473B2 (en) | Architecture and method for hybrid isogeny-based cryptosystems | |
CN113746623B (zh) | 一种门限密钥验证方法及相关设备 | |
CN107040380A (zh) | 一种基于二进制域的椭圆曲线密码体制的改进模除方法 | |
US8873745B2 (en) | Protection of a calculation on an elliptic curve | |
CN117009723B (zh) | 一种多方计算方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |