CN103107890A - 一种多方加密、签名、零知识证明的方法 - Google Patents

一种多方加密、签名、零知识证明的方法 Download PDF

Info

Publication number
CN103107890A
CN103107890A CN2013100516152A CN201310051615A CN103107890A CN 103107890 A CN103107890 A CN 103107890A CN 2013100516152 A CN2013100516152 A CN 2013100516152A CN 201310051615 A CN201310051615 A CN 201310051615A CN 103107890 A CN103107890 A CN 103107890A
Authority
CN
China
Prior art keywords
group
signature
private key
message
zero
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
CN2013100516152A
Other languages
English (en)
Other versions
CN103107890B (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201310051615.2A priority Critical patent/CN103107890B/zh
Publication of CN103107890A publication Critical patent/CN103107890A/zh
Application granted granted Critical
Publication of CN103107890B publication Critical patent/CN103107890B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开一种多方加密、签名、零知识证明的方法,其取大素数a、b、p和q,令p=2a+1和q=2b+1;n=pq,t=4ab;找到k个相异的大奇数xk,满足(∏xi)%t=1(0<i≤k)且xi与a和b均互素;每一参与者i持有(xi,n)为私钥即构成多方加密体系;I向J传递明文M时,I将明文M用I之私钥进行幂模运算加密后,将结果传递给体系内其他参与者用该方私钥进行唯一的迭代加密,直至最终J用J之私钥解开明文。组内签名时各参与者将自己对明文的签名添加到其他参与者的签名后备查。零知识证明时用最终解开的密文与明文对比来进行验证而不泄露信息。本发明的优点是须各参与方有且仅有一次参与迭代加密过程。

Description

一种多方加密、签名、零知识证明的方法
技术领域
本申请涉及一种信息安全领域的加密、签名、零知识证明的方法,尤其涉及一种多方同时参与协同进行的加密、签名、零知识证明和建立可信组内通信的方法。
背景技术
目前的RSA等非对称加密体系只能处理两者之间的单向消息传递,在处理多方共同参与的加密、签名和零知识证明等情形的时候还比较复杂,一般是使用共同持有公钥或者私钥的方式来进行,而公钥和私钥的交换过程非常复杂,没有可信信道的时候分发过程比较复杂,同时由于各参与方使用了同一个模数的非对称密钥,会潜在导致共模攻击。而为了实现多方参与的零知识证明的时候,常规方法使用了基于概率的比特证明方式,显得繁琐而又低效。
这里提到的多方参与的加密、签名和零知识证明方法不同于群加密、群签名方法的地方在于参与方是完全对等。在此基础上可以改造出各种群加密、群签名的方法。
这里定义几个术语:
加密链:利用本申请的方法对输入依次用自己的私钥进行有且仅有一次加密的过程,以及参与加密加密过程的所有参与方的总称。
迭代加密:在输入的密文上用自己的私钥用相同的方法再次加密,对同一明文在加密链上进行一次且仅有一次加密的过程。
幂模运算:指对输入的信息in用私钥(x,n)进行out=(in)x%n运算后输出out,即对in求x幂次方并对n取模。上述加密链和迭代加密过程均使用幂模运算进行加密,解密过程也是加密过程。
发明内容
本专利申请是为了解决需要多方同时进行加密和签名等过程时,常规非对称加密体系无法简洁地保证多方必须且唯一地参与加密的过程。
取大素数a、b、p和q,使其满足p=2a+1和q=2b+1。令n=pq,t=4ab。随机生成k-1个足够大的相异的奇数xi(0<i<k,k>2),且满足xi%a>0和xi%b>0(即xi与a和b均互素)。通过求足够大的与前述k-1个数相异的奇数xk使其满足(∏xi)%t=1(0<i≤k)且满足xk%a>0和xk%b>0(即xk与a和b均互素),完成初始私钥的构建过程。这里的足够大的含义是对任意的正整数i≤k取xi>2127,以保证私钥有足够的强度。如果同时xi<min(a,b),则可以减少xi%a>0和xi%b>0的判断步骤。
此时如果这k方各拿着由(xi,n)构成的私钥即可构成多方加密体系,任何信息的加解密均需所有的参与方进行幂模运算,我们称之为组加密,使用组加密方法构成的签名方法称之为组签名,使用组加密方法构成的零知识证明我们称之为组织证明。各参与方及其进行加密运算的过程称为加密链。由于参与方都知道模数n,因此下面提到私钥xi的时候实际指的是(xi,n)。由于xi不公开,因此即使n被分解了也很难从n推知xi
一、共同加密(组加密)
I向J传递明文M时,I将明文M用I之私钥进行幂模运算
Figure BSA00000854498100021
加密后,将结果传递给体系内其他参与者用该方私钥进行唯一的幂模运算方式的迭代加密,直至最终J用J之私钥进行幂模运算解开明文。
共同加密过程详细描述如下所示:
如果一方I给另一方J传递明文M,则I将明文MI=M用自己的私钥xi进行加密后的信息
Figure BSA00000854498100022
传递给下一个接收者f,下一个接受者f将接收到的信息
Figure BSA00000854498100023
用自己的私钥xi进行加密后的信息
Figure BSA00000854498100024
传递给下一个接收者g,...,直到J接收到所有其他多方加密的信息后用自己的私钥xJ进行加密得到
Figure BSA00000854498100026
这里要保证参与加密和信息传递的各方均须有且仅有一次对信息加密的过程。
这个加密的过程需要所有各方有且仅有一次的参与加密和传递过程,缺任意一方均不可能得到原始的信息,任意一方多参与一次也会导致不可能解开原始传递的信息M,因此对于所有参与方而言,本方法具有天然的民主、相互约束的特性,各参与方对同一明文的加密过程和参与方一起构成了加密链。对方参与的过程都只用自己的私钥进行,没有参与方公钥的概念,如果需要,可以生成组内共享的公钥和私钥,来实现群的公钥和私钥;对群共享的私钥进行适当的管束即可实现常规的群签名里的管理员。
这一种多方参与的民主的对称特性可以展开对多方共同参与的系统内或者圈子里的信息进行共同的组加密、组签名和组内零知识证明,用于参与方的相互制约、相互授权、相互信任和相互证明,方法本身对这种共同参与的民主特征予以了足够高的安全强度和可靠性,因此简单的改造可以简化常见信息安全手段如群加密、群签名、群零知识证明的流程。
二、共同签名(组签名)
组内签名时各参与者将自己对明文的签名添加到其他参与者的签名后备查;对签名进行验证时,验证方将被验证的参与方的签名送到加密链上其他参与方进行迭代加密,如果除被验证者外的所有参与方迭代加密后的密文是被签名的明文,则被验证者的签名通过验证。
共同签名的组签名的过程为:签名方知道组ID和组员列表,参与方I对于到达的消息M进行组鉴别和签名名单识别后唯一追加自己的ID和对{组ID,消息编号,消息有效性标识,消息M}进行的加密式消息签名si,以及记录签名的场景:{消息编号,组员ID,签名时间}进行加密式签名得到场景签名Ci以备后续的签名查验。相互签名为可追加格式,最小的字段属性要求如下,可追加其他字段属性和签名的约束:
{组ID,消息编号,消息有效性标识,消息M};{组员IDi,消息签名si,场景Ti,场景签名Ci};{组员IDJ,消息签名sJ,场景TJ,场景签名CJ};...
签名的目标是证实消息的真实性,并对该消息的真实性负责,因此组签名就是应该是如此,所有的参与方均对组内发出的同一消息进行真实性进行共同确认和共同担保,因此所有的参与者都需对消息进行唯一的签名确认。群签名是群里任意的人均可以对消息进行签名,只需要有一个人签名即可表明消息的真实性,与这里的组签名的概念和功用是不一致的,前者是参与人的签名间是或的关系,后者组签名里是参与人的签名间是与的关系。当然在实现组签名后实现群签名是容易的,只需要利用组内共享的私钥或者公钥进行单人的签名即可。
对消息的组签名进行查验需要全体参与者共同参与方可进行,对于一个参与者I的所有的各种加密式签名,其他所有人用自己的私钥依次进行加密最终得到的消息应该是被签名的内容,否则签名就是假的。以此类推进行所有人的签名的查验工作。因此查验的工作是繁琐但是严格和严谨的,但是保证了组签名的共同性和唯一性,以及其不可被仿冒。缺点就是不能组内成员随时验证,但是如果需要这种功能,可以使用组内公钥来进行。
三、共同零知识证明(组织证明)
共同零知识证明的机制为:组内的一方I为了向组内的另一方J证明其为组内成员,或者I向J传递组内信息M,为了证实消息来源的真实性,在组内组员A对消息M或者随机数M(是随机数还是有用的消息M取决于用途,即M是仅用来证明成员身份还是还有有用的信息成分)用自己的私钥签名后,将消息M和签名传送给I,I让其他组内成员(即不包括I、J和A)依次对签名SA进行再签名得到签名SI-1;最后I用自己的私钥xI对SI-1进行签名,得到
Figure BSA00000854498100032
然后将SI和M的哈希值传递给J。J用自己的私钥xJ对SI进行加密运算得到
Figure BSA00000854498100033
然后验证如果SJ的哈希值与M的哈希值一致则消息M为组内消息,且J也可以以此来断定I为组内成员。
I自己也可以作为A发出消息M,那么就要有其他人作为I来扮演前述I的职责,只要保证消息加密过程中所有参与人有且仅有一次加密即可保证组织证明的过程可靠和可信。
如果J对其他组内成员的加密过程不太信任,可以如前述共同签名那样设计复杂的验证机制,但是本方法本身的安全性足够保证最终签名的消息是组内共同签发的,也只有组内成员有且仅有一次的参与才能完成,我们只需要保证对传递的消息进行有且仅有一次加密。
四、多方零知识证明+消息传递
这个是用途最广泛的组加密和组织证明方法,也是常规的身份校验和传送结合的完美过程。
最简单的多方零知识证明是三方的零知识证明+消息传递,就是只有上述三个成员I、J和A的组,A委托I携带消息M给J,I要确认J是所要找的人,J也要证实I的消息是A发出来的。此时A可以将消息M用自己的私钥加密得到E,同时生成随机数e,将随机数也用自己的私钥加密得到Sea,然后A将(E,e,Sea)传递给I;I将e用自己的私钥加密后得到Sel,将Sel发给A,让A用其私钥xA加密后得到的Sel→a返回给I;I将消息(E,e,Sea,Sel→a)带到J面前,给将Sea用自己的私钥xI加密后得到Sea→I,将(Sea→I)传递给J;J用自己的私钥xJ加密Sea→I后得到Sea→I→L后传回给I,I验证如果e=Sea→I→J则信任J为加密消息E的接收方,将e、Sel→a,传递给可以J;J将Sel→a用私钥xJ加密后得到Sel→a→J,判断e=Sel→a→J则J可以信任I为携带A的消息的信使。此时I将加密消息E用自己的私钥xI加密后得到的EI传递给J,J用自己的私钥将xJ对EI进行加密得到J知晓的明文MJ。此时I仍然不知道明文M和MJ,如果允许,J将E用自己的私钥xJ加密后得到EJ,将EJ给I,I再用自己的私钥xI加密得到明文MI,J并没有直接告诉I明文MJ;如果不允许,则I破解M的难度很高,如果I是假冒的,则其也不可能从EJ得到明文M和MJ。这里I不知道他得到的MI是否就是M,虽然理论上保证MI=M;他如果想从J那里进行验证的话,J信任I并且检验权限许可I知道MJ的话可以将MA传递给I让其比对,若MI=MJ则M=MI=MJ,I此时知道消息正确传递了,则I把A的消息带到了J;这里J也不知道他得到的MJ是否就是M,虽然理论上保证MJ=M;如果I检验权限许可J知道自己的MI的话,可以将MI传递给J,J看如果MJ=MI则J知道消息传递无误,M=MI=MJ。检验权限许可的信息可以在明文M里携带,I没有解开和读懂M,即MI≠M会导致全部的任务失败;如果I解开了M,J没有解开和读懂M,即MJ≠M会导致后面需要携带消息返回交差的任务失败。或者I和J拥有共同的公钥和私钥的话,可以双方交换对自己拥有的M的共同私钥或者公钥的签名,然后将该签名与自己拥有的M的相应方法产生的签名进行比对,相同则表明M=MI=MJ,这在后面讲到的群签名方法里是可行的。实在不行就使用约定的单向函数对各自拥有的M进行变换后各自得到字符串,双方交换一半不同位置的字符串里面的比特位,一方用高位,另一方用低位,然后用自己得到的字符串的高位/低位比特与接收的对方的高位比特进行验证,相等的话也可以证明M=MI=MJ。由于已经完成了互信任,因此实现零知识证明自己拥有了正确的M的方法还是很多的。
如果I完成使命后需要交差,则可以让J对e用自己的私钥进行加密得到SeJ,对MJ进行加密得到EJ’,然后将(SeJ,EJ’)带回。在A的面前,I将SeJ用xI加密得到SeJ→I,A对SeJ→I用其私钥xA进行加密得到SeJ→I→a,验证e=SeJ→I→a则A可以断定I见到了J;I将EJ’用xI加密得到EI’,A对EI’用其私钥xA进行加密得到Ea,验证自己持有的M=Ea则A可以断定I将消息M带给了J,并J正确地解开了M。
如果是要求I和J一起使用M,为了验证I得到了M而没有偷懒,I需将MI或者J依据权限许可传递给I的MJ再用xI加密,得到EI’,让J用其私钥xJ加密后得到EI→J,将EI→J带给A,A用自己的私钥xA加密后得到EI→J→a,验证如果M=EI→J→a则A可以断定I从J那里得到了正确的MI=M。至于I得到的消息是MI还是MJ,A可以在明文M里进行指定权限许可,但是无法区分,如果想要区分的话可以使用RSA的非对称加密系统方法,让I携带A的RSA公钥RSApA给J,J让I携带J的RSA的公钥RSApJ,然后让I沦为传递信道,但是这种方法己经偏离了本申请中的民主加密的方向了,有兴趣的可以结合本方法和RSA方法进行各自组合,比如下面提到的利用本方法的群签名和群共享,可以分发任何东西。
最完整的也是最复杂的零知识证明+消息传递方法的要求是,对于k个组员(k>2),如果A委托I传递消息M给J,I必须同时验证J是有效的接受者,J也必须同时验证I是有效的接受者,然后还要有效地将加密信息传递给J,并进行消息的传递可靠性验证。过程如下,A产生随机数e,将消息M和随机数e分别迭代加密后传送给I,在I到达J面前之前,完成除J之外的所有组员用各自的私钥对消息M和随机数e的唯一一次迭代加密,然后可以按照前面三个人的方法一样的机制开始互信任的验证。如果I需要携带验证消息回头交差,也需要将带回的消息让除A外的所有人用各自的私钥对消息进行唯一一次的迭代加密。J将解密得到的密文M’和带有J不可仿冒特征的暗语an用自己的私钥加密后传递给I,让I将加密消息沿加密链返回给A,返回时也是依次进行迭代加密;A对返回的消息进行解密后验证M’与M一致且暗语an符合J的特征,则相信I将消息正确传递给了J。
利用本申请中的加密、签名和零知识证明方法构成的共同参与的组后,可以安全有效地在组内传递可信的消息而不用担心其他非组织成员介入和篡改消息。然后群的任何成员可以在不可信的信道上建立可信的广播或者单播信道,然后在此可信信道上广播自己的公钥等共享信息,不需要PKI体系介入了。下面以此方法建立常规的群签名和群共享机制。
五、转化为常规的群签名和群共享
在开始实现分发组成员各方私钥的时候,同时分发群共同的公钥和私钥(群公钥/私钥与n不共模,下同)、群ID、群用户列表,这样就构成了对等的多方参与群。如果想实现群管理员,则只需要给群管理员分发自己的组私钥、所有的各方组私钥(如果觉得权限太大也可以根据情况不给各方私钥给群管理员)、群共同的公钥和私钥、群ID、群用户列表,普通群员分发各自的组私钥、群共同的公钥、群共同的私钥(视群是否需要解密公钥来定私钥是否普通群员掌管)、群ID、群用户列表。这样就建立起了群内的广播信道。如果还需要参与者独立的暗语,则参与者可以广播自己的公钥和ID。之所以需要这些信息是为了保证多方参与的唯一性和民主特性及共同参与特性。有了群公钥后任何一方都可以对消息以群的名义签名,其他成员如果有群共同的私钥就可以随时验证而不需要进行交叉验证了,否则就只有管理员能验证。
如果分发各方私钥的时候没有分发群公钥等共同信息,可以使用前面的组内签名和共同零知识证明+消息传递的方法建立的组内广播信道来进行群公钥的发放。如果群需要更换群共同信息或者需要群发所有人周知的消息,也可以使用前面的零知识证明+消息传递的方法来进行群消息广播。
本专利申请方案的实施,由于组加密需要加密链的各个参与方有且仅有一次的参与迭代加密,有利于消息发送者对消息安全和可靠性全流程的控制,能够以此在不安全的信道上建立可信的广播和单播信道,并且建立可信任的可靠的消息传播机制。这对于安全性要求极高的保密通信,特别是机密和绝密信息的安全通信具有极高的理论和现实意义。同时,对参与的多方的唯一性参与的约束,也带来了一些新特性,比如在信息传递的加密链上,每一个人都加密了信息,但是每一个人都不能知道真正的消息是什么,除非他是最后一个对消息进行迭代加密的人。以此展开的几种信息安全过程,均具有很高的安全性,即使n被分解了也没有关系。而如果k=2,本方法就退化为RSA的一种特殊形式,如果公钥选择为随机数且不公开,则即使n被分解了也能保证加密过程的安全性,这里本方法不保护k=2时的情景,以与RSA保持足够的差异。
附图说明
图1为各方加密私钥的生成过程。
图2为加密链上的信息传递过程。
图3为共同签名(组签名)的过程和验证签名的过程
图4为共同零知识证明的过程。
图5为零知识签名及消息加密传递的过程。
图6为转化为常规的群签名后的签名和验证过程。
具体实施方式
这里给出一个实施过程,但不代表本申请的方案只能这样实施。这里的“.eq.”表示相等的判别。实施过程如下:
生成私钥的过程如图1所示:101步,产生大质数a使其满足p=2a+1也是质数;102步,产生大质数b使其满足q=2b+1也是质数;103步,计算n=pq和欧拉函数t=4ab;104步,随机生成足够大的k-1个不同的随机奇数xi,使xi满足xi%a>0和xi%b>0;105步,找到足够大的奇数xk,使得xk满足xk%a>0和xk%b>0且(∏xi)%t=1(0<i≤k);106步,输出k个私钥(n,xi)(0<i≤k)。
上面的步骤中,101、102、105这三个步骤都可以采用RSA体系类似的方法,这里不再重复,也可以采用其他的方法,本申请也不对这三个步骤的过程进行约束,只提出其需要满足的技术特征。
每一参与方i持有一个私钥(n,xi)(0<i≤k),然后就可以开始进行下面的各种加密、签名、验证等信息安全操作。
进行共同加密的过程如图2所示:消息为M,如201所示,参与方i对输入的消息in按照
Figure BSA00000854498100061
进行加密后输出给下一个接收方,因此201所示的过程称为迭代加密过程;直到最后一个参与方k接受到加密的消息并对其进行迭代加密后,输出的消息为解密的明文M。因此202代表的是加密链。203代表的是解密界面,在界面左边的人将加密消息发送给界面右边的接收方,由右边的接收方最终解开明文M,因此解密界面右边的接收方一般是消息的最终接收方。
这里需要说明的是,这里的参与方并没有约定固定的顺序,因此图2中,最终接收消息解开明文M的是参与方k,其前面一棒的任意一位参与者就是参与者k-1,解密界面左边所对应的参与方的顺序是可以任意改变的。有趣的是,对于给定的明文M,当解密界面左面的参与者的顺序改变的时候,参与者之间传递的加密消息与前面的参与顺序下产生的加密消息是各不同的,只有在传递给接受者的前一棒,即解密界面左边的参与者产生的加密消息才是相同的。
在本申请的共同加密方法里面,任何参与方(用A表示)都可以向任何的另外一个参与方(用J表示)发送消息M,也可以约定一个最终传送人(用I表示)传送到J。这样便与前面“发明内容”里面的符号约定统一起来。I作为最后一个传送人传送最后一棒,同时肩负着一些特殊的使命,比如在进行签名或者零知识证明的时候进行一些参数检验的工作,I与J之间的界面就是解密界面。
加密和签名的方法一样,最终界面界面上的J解开的值为明文的话则表明该签名为组内签名。
组内共同签名的过程如图3所示:301指代两个公式,在下面的迭代过程中的下标I分别被不同的参与者的下标所替换。首先是被签名的m不止是包含消息M,还有消息M相关的必要信息如组ID、消息编号、消息的有效性标识等,m是每经过一个加密者都需要原样传递的消息;其次是对于参与者I,其签名SI包含了自身的IDI,和对m的签名sI,签名的场景TI{消息编号,组员IDI,签名时间timeStample},以及对场景TI的签名CI。SI在组内共同签名的过程中是追加在m后面的,如302所示,最终签名完成后的m后附带着k个参与者的签名{S1;...;Si;...;Sk},整体构成对m的组共同签名。
303是对签名SI的验证过程,需要加密链除签名者外的全体参与者对此签名进行迭代加密后,才能将最终的加密结果与原始消息m进行比对,相等则签名有效。对场景签名CI的验证过程也在303中进行了描述,也是需要加密链除签名者外的全体参与者对此签名进行迭代加密后,才能将最终的加密结果与原始消息TI进行比对,相等则场景签名有效。所有其他的签名Si和Ci均照此循环验证一次才能证明所有的签名的有效性,虽然效率低下,但是都是必须的流程。
共同零知识证明的过程如图4所示:组内的消息或者随机消息M通过加密链中的解密界面前的迭代加密过程加密后传输给I,同时消息M的原文也随着传递给I;在解密界面上,I将加密的密文传送给J,J解开得到MJ后与M比对,如果MJ=M则表明消息来自于组内。如果此时I和J要相互证明身份,双方互换M的不同部分的比特位,即可根据概率的观点鉴别双方是否同为组内成员,这些都是常规零知识证明的内容,除此之外,J还可以判断消息M是否为组内消息。I和J也可以用单向函数的方法来相互证明自己拥有M。零知识证明的验证方法不是本申请的关注点,本申请强调的是经过加密链最终传输到解密界面前的过程中的技术特征。
图中401为迭代加密过程,402为零知识证明的过程,403为解密界面。
多方共同零知识证明+消息传递的过程如图5所示:这里用下标表示参与方的输出,任意的发起方作为A,他将要发送的保密消息M和用于零知识证明的随机消息e同时加密后,将M加密的密文MI、e加密后的密文eI和e一起传送到加密链上;后续的迭代加密过程只对前面加密过的密文进行,然后将迭代加密后的各密文发送给下一个迭代加密者,重复本步骤直到解密界面505左边的I接受到M的迭代加密的密文Mk1、e迭代加密后的密文ek1和e。I和最终的接受者之间首先展开零知识证明502,I将ek1发送给J,J将其用自己的私钥加密后得到ek,简化的零知识零知识证明流程是J将ek直接发送给I,I验证得到ek与e相等则I信任J;I将MkI发送给J,J用其私钥解开得到Mk。复杂的零知识证明流程则是I约定单向函数hIJ(),J将hIJ(ek)传送给I,I将其与hI,J(e)比较如果相等则I信任J;I将MkI发送给J;J约定单向函数hJI(),I将hJI(e)传送给J,J将其与hJI(ek)比较如果相等则J信任I,才用自己的私钥对MkI进行加密得到Mk并信任Mk=M,即503。
如果I需要交差,则J将Mk用自己的私钥加密,然后有I携带并迭代加密后由加密链迭代加密后返回给A,A用自己的私钥加密后验证加密的结果是否等于M,如果等于M则I的任务完成。整个消息传递过程中I和所有中间环节均不知道明文M是什么。如果A还不放心,假设只要A知道J的暗语,则让J将ek和J的暗语an一起也用J的私钥加密后沿着加密链迭代加密返回给A,A用自己的私钥加密后验证加密的结果,ek是否等于e,且J的an是否为目标暗语,如果完全符合则可以确信传输过程完成。当然J也可以直接将M和暗语an一起按照上述流程返回,可以少一条加密链迭代计算的过程。
转化为常规群加密和群签名的过程如图6所示:假设组的任意成员想将组转化为群,则该成员作为群发起者,生成群公钥和私钥(601),该群公钥和私钥与组的私钥不共模;由群发起者发起对群公钥的组内签名(602);群成员发起组签名验证,通过的则将群ID、组员ID作为群成员ID记录下来(603),以此建立组内广播信道;如果需要,群发起者利用组内共同加密的方法将群私钥组内广播给群成员(604);群成员广播自己的个人公钥(605);群成员利用群公钥进行群签名、群加密等活动,任意的群成员都可以利用群私钥对签名进行验证(606);群成员可以通过自己的个人公钥与任何群内成员进行暗语通信(607);群成员利用组内自己的组私钥进行共同零知识证明+消息传递等需要进行全体唯一参与的活动(608),这里需要所有的群成员进行参与。
需要注意的是组内只有私钥没有公钥,组私钥有组员唯一持有;群公钥和群私钥则可以用于群内的任意成员的加密、签名和零知识证明过程,任何其他成员均可以单独利用这个密钥对来对来自于群的消息进行解密、签名验证和零知识证明,以简化群内通信使用组私钥必须进行共同唯一参与的麻烦。群成员拥有自己的公钥和私钥对,群内成员可以进行任意的点对点通信。这样的群有三种沟通方式,既拥有私下通信的便利,也拥有群活动的各项便利,同时还可以利用组私钥进行唯一参与的共同过程。
上述方法和过程中,604、605和606的顺序可以颠倒,607、608等过程可以更加需要裁减,这样的改变都不应该改变本专利申请的实质。
上述所有方法和实例均为对发明内容的阐述,但不应作为本发明申请只能这样实现的限定。比如加密链不只一条,但是对于任何一个消息接受者而言,解密界面只有一个,虽然解密界面前的那位消息发送者可以改变,因此对加密链的选择不应视为对本专利申请的重大改进。比如私钥的生成过程所使用的加速方法,只要满足了本申请给出的约束条件,均可以符合本申请的技术特征,因此本申请也并未对私钥生成过程的常规过程如中国余数定理等提出权利要求。又如在组签名过程中,改变明文记录的消息的种类,改变场景签名的消息种类,或者取消场景签名,均不会对本申请的组签名过程产生实质性影响,也没有实质性改变,因此这类改变也不应视为对本专利的重要改进。又如,多方零知识证明+消息传递过程中,改变消息传送发起人,解密界面前的消息传送人,以及改变零知识证明时的hash方法等等,均不能视为对本专利申请的实质改进。

Claims (6)

1.一种多方加密、签名、零知识证明的方法,其特征在于生成私钥的过程如下:其取大素数a、b、p和q,令p=2a+1和q=2b+1;n=pq,t=4ab;找到k个相异的大奇数xk,满足(∏xi)%t=1(0<i≤k)且xi与a和b均互素;每一参与者i持有(xi,n)为私钥即构成多方加密体系;进行组加密时利用加密链:I向J传递明文M时,I将明文M用I之私钥进行幂模运算
Figure FSA00000854498000011
加密后,将结果传递给体系内其他参与者用该方私钥进行唯一的幂模运算方式的迭代加密,直至最终J用J之私钥进行幂模运算解开明文;对明文M进行迭代加密的所有参与方的输入和输出依次衔接,构成加密链。
2.一种如权利要求1所述的多方加密、签名、零知识证明的方法,其特征在于进行组内签名时:组内签名时各参与者将自己对明文的签名添加到其他参与者的签名后备查;对签名进行验证时,验证方将被验证的参与方的签名送到加密链上其他参与方进行迭代加密,如果除被验证者外的所有参与方迭代加密后的密文是被签名的明文,则被验证者的签名通过验证。
3.一种如权利要求1所述的多方加密、签名、零知识证明的方法,其特征在于进行共同零知识证明时:组内的一方I为了向组内的另一方J证明其为组内成员,I向J传递组内信息M,为了证实消息来源的真实性和I属于组内成员,在组内组员A对消息M用自己的私钥签名后,将消息M和签名
Figure FSA00000854498000012
n沿加密链传送给I,依次对签名SA进行再签名得到签名SI-1;最后I用自己的私钥xI对SI-1进行签名,得到然后将SI和M的哈希值传递给J;J用自己的私钥xJ对SI进行加密运算得到
Figure FSA00000854498000014
然后验证如果SJ的哈希值与M的哈希值一致则J相信消息M为组内消息,且I为组内成员。
4.一种如权利要求1所述的多方加密、签名、零知识证明的方法,其特征在于进行多方零知识证明+消息传递时:A产生随机数e,将消息M和随机数e分别迭代加密后传送给I,随机数e也明文形式传递给I;在I到达J面前之前,沿加密链完成除J之外的所有组员用各自的私钥对消息M和随机数e的唯一一次迭代加密;然后J对随机数e的迭代加密密文解密后,与I利用随机数e进行共同零知识证明,如果信任I的话,将I传送过来的M的迭代加密值解密M’,并信任其为M。
5.一种如权利要求4所述的多方加密、签名、零知识证明的方法,其特征在于进行多方零知识证明+消息传递时返回:J将解密得到的密文M’和带有J不可仿冒特征的暗语an用自己的私钥加密后传递给I,让I将加密消息沿加密链返回给A,返回时也是依次进行迭代加密;A对返回的消息进行解密后验证M’与M一致且暗语an符合J的特征,则相信I将消息正确传递给了J。
6.一种如权利要求1所述的多方加密、签名、零知识证明的方法,其特征在于将组加密方法转化为常规群签名、群加密机制时:组的任意成员想将组转化为群,则该成员作为群发起者,生成群公钥和私钥;由群发起者发起对群公钥的组内签名;群成员发起组签名验证,通过的则将群ID、组员ID作为群成员ID记录下来,以此建立组内广播信道;群发起者利用组内共同加密的方法将群私钥组内广播给群成员;群成员广播自己的个人公钥;群成员利用群公钥进行群签名、群加密等活动,任意的群成员都可以利用群私钥对签名进行验证;群成员可以通过自己的个人公钥与任何群内成员进行暗语通信;群成员利用组内自己的组私钥进行共同零知识证明+消息传递等需要进行全体唯一参与的活动,这里需要所有的群成员进行参与。
CN201310051615.2A 2013-02-08 2013-02-08 一种多方加密、签名、零知识证明的方法 Expired - Fee Related CN103107890B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310051615.2A CN103107890B (zh) 2013-02-08 2013-02-08 一种多方加密、签名、零知识证明的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310051615.2A CN103107890B (zh) 2013-02-08 2013-02-08 一种多方加密、签名、零知识证明的方法

Publications (2)

Publication Number Publication Date
CN103107890A true CN103107890A (zh) 2013-05-15
CN103107890B CN103107890B (zh) 2016-08-31

Family

ID=48315476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310051615.2A Expired - Fee Related CN103107890B (zh) 2013-02-08 2013-02-08 一种多方加密、签名、零知识证明的方法

Country Status (1)

Country Link
CN (1) CN103107890B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147615A (zh) * 2017-03-29 2017-09-08 西安电子科技大学 密文去重场景下不损失熵的所有权认证与密钥传递方法
CN108833107A (zh) * 2018-05-19 2018-11-16 深圳市图灵奇点智能科技有限公司 零知识证明的公共参数生成方法及系统
CN111274613A (zh) * 2020-01-20 2020-06-12 广州安研信息科技有限公司 迭代式sm2数字签名生成方法、系统、介质和设备
US10742413B2 (en) 2017-04-25 2020-08-11 International Business Machines Corporation Flexible verifiable encryption from lattices
CN112632636A (zh) * 2020-12-23 2021-04-09 深圳前海微众银行股份有限公司 一种密文数据比较结果的证明与验证方法及装置
CN112906041A (zh) * 2021-03-31 2021-06-04 上海简苏网络科技有限公司 一种动态多方签名加解密方法及系统
CN113032817A (zh) * 2021-05-21 2021-06-25 北京百度网讯科技有限公司 基于区块链的数据对齐方法、装置、设备和介质
CN113253975A (zh) * 2021-04-27 2021-08-13 西安电子科技大学 大数模幂运算的算法加速方法、系统、介质、设备及应用

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111435911B (zh) * 2019-01-14 2023-02-17 海南自贸区图灵区块链科技有限公司 一种在线多方安全数据处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US20060083370A1 (en) * 2004-07-02 2006-04-20 Jing-Jang Hwang RSA with personalized secret
CN101170404A (zh) * 2006-10-24 2008-04-30 华为技术有限公司 对指定组群进行密钥配置的方法
CN101267300A (zh) * 2008-04-17 2008-09-17 苏盛辉 基于互素序列和杠杆函数的多变量公钥加密方法
CN101741564A (zh) * 2009-12-11 2010-06-16 北京工业大学 组密钥初始分配中的隐私保护方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US20060083370A1 (en) * 2004-07-02 2006-04-20 Jing-Jang Hwang RSA with personalized secret
CN101170404A (zh) * 2006-10-24 2008-04-30 华为技术有限公司 对指定组群进行密钥配置的方法
CN101267300A (zh) * 2008-04-17 2008-09-17 苏盛辉 基于互素序列和杠杆函数的多变量公钥加密方法
CN101741564A (zh) * 2009-12-11 2010-06-16 北京工业大学 组密钥初始分配中的隐私保护方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147615A (zh) * 2017-03-29 2017-09-08 西安电子科技大学 密文去重场景下不损失熵的所有权认证与密钥传递方法
CN107147615B (zh) * 2017-03-29 2019-10-25 西安电子科技大学 密文去重场景下不损失熵的所有权认证与密钥传递方法
US10742413B2 (en) 2017-04-25 2020-08-11 International Business Machines Corporation Flexible verifiable encryption from lattices
CN108833107A (zh) * 2018-05-19 2018-11-16 深圳市图灵奇点智能科技有限公司 零知识证明的公共参数生成方法及系统
CN108833107B (zh) * 2018-05-19 2021-06-11 深圳市图灵奇点智能科技有限公司 零知识证明的公共参数生成方法及系统
CN111274613A (zh) * 2020-01-20 2020-06-12 广州安研信息科技有限公司 迭代式sm2数字签名生成方法、系统、介质和设备
CN112632636A (zh) * 2020-12-23 2021-04-09 深圳前海微众银行股份有限公司 一种密文数据比较结果的证明与验证方法及装置
CN112632636B (zh) * 2020-12-23 2024-06-04 深圳前海微众银行股份有限公司 一种密文数据比较结果的证明与验证方法及装置
CN112906041A (zh) * 2021-03-31 2021-06-04 上海简苏网络科技有限公司 一种动态多方签名加解密方法及系统
CN113253975A (zh) * 2021-04-27 2021-08-13 西安电子科技大学 大数模幂运算的算法加速方法、系统、介质、设备及应用
CN113032817A (zh) * 2021-05-21 2021-06-25 北京百度网讯科技有限公司 基于区块链的数据对齐方法、装置、设备和介质

Also Published As

Publication number Publication date
CN103107890B (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
Qadir et al. A review paper on cryptography
US10659223B2 (en) Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
CN103107890B (zh) 一种多方加密、签名、零知识证明的方法
CN107707358B (zh) 一种ec-kcdsa数字签名生成方法及系统
CN107733648B (zh) 一种基于身份的rsa数字签名生成方法及系统
CN107947913B (zh) 一种基于身份的匿名认证方法与系统
CN108199835B (zh) 一种多方联合私钥解密方法
CN107017993A (zh) 一种多方联合密钥产生和数字签名方法及系统
CN107682151B (zh) 一种gost数字签名生成方法及系统
CN114157427A (zh) 基于sm2数字签名的门限签名方法
CN102340483B (zh) 民主群签名的生成、验证、追踪方法和民主群签名系统
CN106301788A (zh) 一种支持用户身份认证的群组密钥管理方法
CN113014386B (zh) 基于多方协同计算的密码系统
Huang et al. P 2 OFE: Privacy-preserving optimistic fair exchange of digital signatures
Ra et al. A study on KSI-based authentication management and communication for secure smart home environments
Lai et al. An efficient quantum blind digital signature scheme
Majumder et al. ECC-EXONUM-eVOTING: A novel signature-based e-voting scheme using blockchain and zero knowledge property
US11870914B2 (en) Digital signatures
Chait et al. An enhanced RSA-based aggregate signature scheme to reduce blockchain size
Chung et al. Ring signature scheme for ECC-based anonymous signcryption
CN102487321A (zh) 一种签密方法和系统
Zeng et al. Deniable ring authentication based on projective hash functions
He et al. Efficient group key management for secure big data in predictable large‐scale networks
Priyadarshini et al. Digital signature and its pivotal role in affording security services
Calderon et al. Rethinking verifiably encrypted signatures: a gap in functionality and potential solutions

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
DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: Peng Yanbing

Document name: Notice of termination of patent

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160831

Termination date: 20200208