CN114117470A - 基于多重变色龙哈希函数的信息查找方法、系统及装置 - Google Patents
基于多重变色龙哈希函数的信息查找方法、系统及装置 Download PDFInfo
- Publication number
- CN114117470A CN114117470A CN202111324507.9A CN202111324507A CN114117470A CN 114117470 A CN114117470 A CN 114117470A CN 202111324507 A CN202111324507 A CN 202111324507A CN 114117470 A CN114117470 A CN 114117470A
- Authority
- CN
- China
- Prior art keywords
- chameleon
- equation
- participant
- participants
- new
- 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
- 241000122205 Chamaeleonidae Species 0.000 title claims abstract description 178
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000006870 function Effects 0.000 title claims description 64
- 238000004364 calculation method Methods 0.000 claims abstract description 82
- 238000012795 verification Methods 0.000 claims description 56
- 230000002776 aggregation Effects 0.000 claims description 24
- 238000004220 aggregation Methods 0.000 claims description 24
- 238000004422 calculation algorithm Methods 0.000 abstract description 20
- 230000008569 process Effects 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了基于多重变色龙哈希函数的信息查找方法、系统及装置,属于区块链技术领域,要解决的技术问题为如何令陷门被多个参与方独立掌握,并提高变色龙哈希算法的安全性和可信性。包括如下步骤:多个参与方作为陷门共同持有者均掌握系统参数;每个参与方均生成其密钥对份额,并广播其密钥对份额中公钥份额;基于所有参与方的公钥份额计算聚合公钥;进行变色龙哈希计算,得到的变色龙哈希值作为目标哈希值;所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,得到新消息以及与新消息对应的一对新变色龙随机数,所述新消息的变色龙哈希值与所述目标哈希值相同。
Description
技术领域
本发明涉及区块链技术领域,具体地说是基于多重变色龙哈希函数的信息查找方法、系统及装置。
背景技术
变色龙哈希函数(chameleon hash function),也称作陷门哈希函数,首先由Krawczyk和Rabin提出。“变色龙”的意思是陷门信息的拥有者可以在不改变函数输出的前提下,随意的改变函数的输入。在变色龙哈希函数中,掌握陷门信息的人能过很容易的计算出一个随机输入的碰撞,没有掌握陷门信息的人则无法计算出碰撞。
在变色龙哈希函数中,我们假设签名者是S,签名的接收者是R,接收者R根据一个特定的密钥生成算法生成系统需要的公钥和私钥,其中公钥表示为HK,私钥表示为PK,变色龙哈希函数表示为为CHAM-HASH(〃,〃),它可以由公钥HK快速的计算出来,比如输入一条消息m和一个随机值r,则此变色龙哈希函数的变色龙哈希值h就可以表示为h=CHAM-HASH(m,r)。
变色龙哈希函数是一个非标准的抗碰撞哈希函数,它包含一对公钥私钥对,分别用hashkeyHK和trapdoorkeyTK(陷门信息)表示。与传统哈希函数相比,变色龙哈希函数具有以下特性:
(1)如果一个人知道,他就可以计算与hashkey相关联的变色龙哈希函数;
(2)对于不知道陷门信息的人而言,变色龙哈希函数通常都是抗碰撞的;
(3)掌握陷门信息的人面对任何给定输入都可以非常轻易的计算出与原始消息不同的一个碰撞。
通常,一个变色龙哈希方案由以下四个算法组成:
(1)系统参数生成算法,输入一个安全的参数k,输出系统参数SP;
(2)密钥生成算法,它负责生成变色龙哈希函数所需要的公钥和私钥,方法如下,输入系统参数SP,为每一个用户输出一个公钥/私钥对(SK,PK);
(3)哈希值的生成,如果输入用户的公钥PK,任意一条消息m和一个随机值r,其中r∈Zq*,则输出一个哈希值h,其中h=Hash(m,r);
(4)一个有效的碰撞计算算法,输入用户的私钥SK,一条消息m和一个随机值r,以及另外一条消息m’,输出一个整数r’,其中r’∈Zq*,计算出Hash(m’,r’)=Hash(m,r),通过这个算法,我们可以快速的找到不同于被签名消息m的一个碰撞m’。
通过变色龙哈希函数算法可以进行消息的哈希计算,但是现有的变色龙哈希算法不具备线性(同态)特性,不能应用于分布式协议,如何令陷门被多个参与方独立掌握,并提高变色龙哈希算法的安全性和可信性,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供基于多重变色龙哈希函数的信息查找方法、系统及装置,来解决如何令陷门被多个参与方独立掌握,并提高变色龙哈希算法的安全性和可信性的技术问题。
第一方面,本发明基于多重变色龙哈希函数的信息查找方法,包括如下步骤:
设置系统参数,多个参与方作为陷门共同持有者均掌握所述系统参数,所述系统参数包括p、q、H、g,p为位长为k的安全素数,q为素数,p=2q+1,g为q阶元,H为一个抗碰撞的哈希函数;
每个参与方均基于系统参数、通过变色龙哈希函数中密钥生成方法生成其密钥对份额,并广播其密钥对份额中公钥份额;
基于所有参与方的公钥份额计算聚合公钥;
基于聚合公钥、消息以及消息对应的一对变色龙随机数进行变色龙哈希计算,得到的变色龙哈希值作为目标哈希值;
所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,得到新消息以及与新消息对应的一对新变色龙随机数,所述新消息的变色龙哈希值与所述目标哈希值相同。
作为优选,所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,包括如下步骤:
每个参与方均选择一个随机数,基于所述随机数进行第一次碰撞查找,对于参与方Pi,所述第一次碰撞查找计算公式为:
ei’=H(m′,r′i)
m′表示碰撞查找的新消息,r′表示新信息对应的一个新变色龙随机数,r′i表示r′中参与方Pi在所述新变色龙随机数的份额;
k′i表示参与方Pi选取的一个随机数,k′i∈[1,q-1];
将所述e′i作为验证值,每个参与方广播其验证值,并在接收所有其它参与方的验证值后,广播其随机数;
每个参与方接收所有其它参与方的随机数后,对所有其它参与方的第一次碰撞查找进行验证,对于参与方Pi所述验证计算公式为:
ej’=H(m′,r′j)
其中,1≤j≤n,且,j≠i;n表示共有n个参与方;
验证通过后,每个参与方基于所有参与方的随机数进行第二次碰撞查找,对于参与方Pi,所述第二次碰撞查找计算公式为:
e′=H(m′,r′)
si’=ki’-e′aixi mod q
其中,ai表示参与方Pi的公钥聚合系数,xi表示参与方Pi的私钥份额,s′表示新信息对应的另一个新变色龙随机数,s′i表示s′中参与方Pi在所述另一个新变色随机数的份额;
每个参与方将其在另一个新变色随机数的份额广播至其它参与方后,基于所有参与方在另一个新变色随机数的份额计算所述另一个新变色龙随机数,所述另一个新变色龙随机数的计算公式为:
所述聚合公钥的计算公式为:
其中,ai=Hagg(<L>,yi),表示参与方Pi的公钥聚合系数,ai<L>={y1,……,yn},表示所有参与方的有序公钥集合,n表示所有参与方的个数。
作为优选,基于聚合公钥、消息以及消息对应的一对变色龙随机数进行变色龙哈希计算,所述变色龙哈希计算对应的计算公式为:
e=H(m,r)
C=Hash(m,r,s)=r(yegs mod p)mod q
其中,C表示目标变色龙哈希值,(r,s)∈Zp×Zq表示消息m对应的一对变色龙随机数。
更优的,还包括如下步骤:
基于所述聚合公钥、消息以及消息对应的一对变色龙随机数重新进行变色龙哈希计算,得到的变色龙哈希值作为对比哈希值,所述变色龙哈希计算对应的计算公式为:
e=H(m,r)
C′=Hash(m,r,s)=r(yegs mod p)mod q
将所述目标哈希值与所述比对哈希值进行比对,如果C=C′等式成立,则哈希值验算通过。
更优的,所述方法还包括如下步骤:
基于正确性验证等式,验证作为陷门共同持有者的多个参与方协作能够查找对一对新的随机数,且能够查找到新消息,所述新消息对应的哈希值与输入的消息m具有相同哈希值;所述正确性验证等式表示为:
C=r′(ye′gs′mod p)mod q。
作为优选,正确性验证等式验证步骤包括:
鉴于ga+b=ga+gb,得到第六等式的等效式,所述第六等式的等效式表示为:
结合运用交换律和结合律,将所述第六等式的等效式表示为第七等式,所述第七等式表示为:
将s′i=k′i-e′aiximod q代入所述第七等式,得到第八等式,所述第八等式表示为:
将所述第八等式表示代入所述第二等式,得到如下:
第二方面,本发明的基于多重变色龙哈希函数的信息查找系统,通过如第一方面任一项所述的基于多重变色龙哈希函数的信息查找方法,查找新的消息和一对新的随机数,所述新的消息的变色龙哈希值与输入的消息的变色龙哈希值相同,所述系统包括:
安全设置模块,所述安全设置模块用于设置系统参数,多个参与方作为陷门共同持有者均掌握所述系统参数,所述系统参数包括p、q、H、g,p为位长为k的安全素数,q为素数,p=2q+1,g为q阶元,H为一个抗碰撞的哈希函数;
密钥生成模块,所述密钥生成模块用于通过如下步骤生成聚合公钥:每个参与方均基于系统参数、通过变色龙哈希函数中密钥生成方法生成其密钥对份额,并广播其密钥对份额中公钥份额;基于所有参与方的公钥份额计算聚合公钥;
哈希计算模块,所述哈希计算模块用于基于聚合公钥、消息以及消息对应的一对变色龙随机数进行变色龙哈希计算,得到的变色龙哈希值作为目标哈希值;
哈希验证模块,所述哈希验证模块用于基于所述聚合公钥、消息以及消息对应的一对变色龙随机数重新进行变色龙哈希计算,得到的变色龙哈希值作为对比哈希值,所述变色龙哈希计算对应的计算公式为:
e=H(m,r)
C′=Hash(m,r,s)=r(yegs mod p)mod q
将所述目标哈希值与所述比对哈希值进行比对,如果C=C′等式成立,则哈希值验算通过;
碰撞查找模块,所述碰撞查找模块中所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,得到新消息以及与新消息对应的一对新变色龙随机数,所述新消息的变色龙哈希值与所述目标哈希值相同;
正确性验证模块,所述正确性验证模块基于正确性验证等式,验证作为陷门共同持有者的多个参与方协作能够查找对一对新的随机数,且能够查找到新消息,所述新消息对应的哈希值与输入的消息m具有相同哈希值;所述正确性验证等式表示为:
C=r′(ye′gs′mod p)mod q;
碰撞查找模块中,所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,包括如下步骤:
每个参与方均选择一个随机数,基于所述随机数进行第一次碰撞查找,对于参与方Pi,所述第一次碰撞查找计算公式为:
ei’=H(m′,r′i)
m′表示碰撞查找的新消息,r′表示新信息对应的一个新变色龙随机数,r′i表示r′中参与方Pi在所述新变色龙随机数的份额;
k′i表示参与方Pi选取的一个随机数,k′i∈[1,q-1];
将所述ei′作为验证值,每个参与方广播其验证值,并在接收所有其它参与方的验证值后,广播其随机数;
每个参与方接收所有其它参与方的随机数后,对所有其它参与方的第一次碰撞查找进行验证,对于参与方Pi所述验证计算公式为:
ej’=H(m′,r′j)
其中,1≤j≤n,且,j≠i;n表示共有n个参与方;
验证通过后,每个参与方基于所有参与方的随机数进行第二次碰撞查找,对于参与方Pi,所述第二次碰撞查找计算公式为:
e′=H(m′,r′)
si’=ki’-e′aixi mod q
其中,ai表示参与方Pi的公钥聚合系数,xi表示参与方Pi的私钥份额,s′表示新信息对应的另一个新变色龙随机数,s′i表示s′中参与方Pi在所述另一个新变色随机数的份额;
每个参与方将其在另一个新变色随机数的份额广播至其它参与方后,基于所有参与方在另一个新变色随机数的份额计算所述另一个新变色龙随机数,所述另一个新变色龙随机数的计算公式为:
第三方面,本发明的装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行第一方面任一所述的方法。
第四方面,本发明的介质,为计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面任一所述的方法。
本发明的基于多重变色龙哈希函数的信息查找方法、系统及装置具有以下优点:
1、将变色龙哈希函数算法变成了一种分布式协议,哈希公钥由多个参与方的公钥聚合而成,私钥份额由各个参与方独立生成,不需要秘密分发者,需要可信分发者角色和私钥份额分发过程,完全去中心化,消除了安全隐患,提高了抗攻击性防止了陷门被单方面控制和恶意利用;
2、计算哈希碰撞仅需要三个轮次并发通信,使哈希计算的算法简单、易掌握、速度快;
3、该方法进行哈希计算以及碰撞查找时,采用的是具有线性(同态)特性Ateniese无密钥暴露变色龙哈希函数算法变体,具有更高的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图1为实施例1基于多重变色龙哈希函数的信息查找方法的流程框图;
图2为实施例1改进后基于多重变色龙哈希函数的信息查找方法的流程框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。在本发明实施例中的“多个”,是指两个或两个以上。
本发明实施例提供基于多重变色龙哈希函数的信息查找方法、系统及装置,用于解决如何令陷门被多个参与方独立掌握,并提高变色龙哈希算法的安全性和可信性的技术问题。
实施例1:
本发明的基于多重变色龙哈希函数的信息查找方法,包括如下步骤:
S100、设置系统参数,多个参与方作为陷门共同持有者均掌握系统参数,系统参数包括p、q、H、g,p为位长为k的安全素数,q为素数,p=2q+1,g为q阶元,H为一个抗碰撞的哈希函数;
S200、每个参与方均基于系统参数、通过变色龙哈希函数中密钥生成方法生成其密钥对份额,并广播其密钥对份额中公钥份额;
基于所有参与方的公钥份额计算聚合公钥;
S300、基于聚合公钥、消息以及消息对应的一对变色龙随机数进行变色龙哈希计算,得到的变色龙哈希值作为目标哈希值;
S400、多个参与方协作,通过多轮并发通信的方式进行碰撞查找,得到新消息以及与新消息对应的一对新变色龙随机数,新消息的变色龙哈希值与所述目标哈希值相同。
步骤S100进行安全设置,具体指定位长为k的安全素数p。这意味着p=2q+1,其中q也是素数,且的二次剩余子群Qp的一个生成元g,即g具有阶q。H是一个抗碰撞的哈希函数,将任意长度的位串映射到固定长度的字符串H:{0,1}*→{0,1}τ,τ是事先选定的安全参数。下文中陷门管理者只掌握变色龙哈希函数陷门(即私钥)的人或组织。
假定有n个参与方共同持有陷门信息,则上述参与方应该具有相同的安全设置,即上述p、q、H、g应该在n个参与方之间公开。
步骤S200进行密钥生成,每个参与方Pi(1≤i≤n)在[1,q-1]中选择一个随机数xi作为自己的私钥份额,计算作为公钥份额,广播yi。所有参与方都接收到别人的公钥份额后计算聚合公钥,聚合公钥的计算公式为:
其中,ai=Hagg(<L>,yi),表示参与方Pi的公钥聚合系数,ai<L>={y1,……,yn},表示所有参与方的有序公钥集合,n表示所有参与方的个数。这样ai将只依赖于参与方的公钥份额,所有参与方和外部用户可以计算和验算聚合公钥的有效性。
步骤S300进行哈希值计算,该哈希值计算公式是Ateniese无密钥暴露变色龙哈希函数算法变体,令输入为消息m,随机一致选择随机值对(r,s)∈Zp×Zq,并进行变色龙哈希计算,变色龙哈希计算对应的计算公式为:
e=H(m,r)
C=Hash(m,r,s)=r(yegs mod p)mod q
该变色龙哈希计算步骤总的输出为(C,m,r,s),分别为一个哈希值、消息和两个随机数。
步骤S400进行分布式碰撞查找,设C表示变色龙哈希在输入三元组(m,r,s)上的输出,n个参与方通过定制化安全多方计算协议计算碰撞(m′,r′,s′),使得Hash(m,r,s)=Hash(m′,r′,s′),即C=C′。一般来说,m′是确定性输入,需要计算的是r′,s′。变色龙哈希函数又叫陷门哈希函数,只有知道陷门的人才能计算出碰撞(这里指符合要求r′,s′)。在本实施例中,陷门信息被n个参与方共同掌握,只有共同协作才可以找到碰撞。
以参与方Pi为例,其他参与方的计算逻辑类似。假定各方都收到了要计算碰撞的相同输入哈希值C和新消息m′。
(1)选择随机数k′i∈[1,q-1],进行第一次碰撞查找,第一次碰撞查找计算公式为:
ei’=H(m′,r′i)
r′表示新信息对应的一个新变色龙随机数,r′i表示r′中参与方Pi在所述新变色龙随机数的份额;
将ei′作为验证值,参与方Pi广播其验证值;
(2)在接收所有其它参与方的验证值后,广播其随机数k′i,这样做的目的是防止有恶意参与方根据其它参与方的随机数后,通过多项式计算自己的随机数;参与方Pi所有其它参与方的随机数后,对所有其它参与方的第一次碰撞查找进行验证,对于参与方Pi验证计算公式为:
ej’=H(m′,r′j)
其中,1≤j≤n,且,j≠i;n表示共有n个参与方;
如果发现任何一个ej’不等于H(m′,rj′),就终止协议;
(3)参与方Pi利用收到的和本地的n个随机数,进行第二次碰撞查找,第二次碰撞查找计算公式为:
e′=H(m′,r′)
si’=ki’-e′aixi mod q
其中,ai表示参与方Pi的公钥聚合系数,xi表示参与方Pi的私钥份额,s′表示新信息对应的另一个新变色龙随机数,s′i表示s′中参与方Pi在另一个新变色随机数的份额;
每个参与方将其在另一个新变色随机数的份额广播至其它参与方后,基于所有参与方在另一个新变色随机数的份额计算另一个新变色龙随机数,另一个新变色龙随机数的计算公式为:
这样,各方都计算出了r′,s′,且满足C=Hash(m′,r′,s′)。
本实施例中,将陷门分散到多个参与方,防止了陷门被单方面控制和恶意利用。在计算哈希碰撞时,由多个参与方通过定制的安全多方计算机制进行协作,并发通信轮次固定(三轮),与参与方数量无关。支持聚合公钥,使哈希计算的算法简单、易掌握、速度快。需要可信分发者角色和私钥份额分发过程,完全去中心化,消除了安全隐患,提高了抗攻击性。
作为本实施例的改进,步骤S300进行变色龙哈希值计算后,想验证哈希算法的人,拿到(C,m,r,s)后可进行哈希值验证,验证过程为:基于聚合公钥、消息以及消息对应的一对变色龙随机数重新进行变色龙哈希计算,得到的变色龙哈希值作为对比哈希值,变色龙哈希计算对应的计算公式为:
e=H(m,r)
C′=Hash(m,r,s)=r(yegs mod p)mod q
将目标哈希值与比对哈希值进行比对,如果C=C′等式成立,则哈希值验算通过。
作为实施例的进一步改进,该方法还包括正确性验证,本实施例基于正确性验证等式,验证作为陷门共同持有者的多个参与方协作能够查找对一对新的随机数,且能够查找到新消息,新消息对应的哈希值与输入的消息m具有相同哈希值;正确性验证等式表示为:
C=r′(ye′gs′mod p)mod q。
正确性验证等式验证步骤包括:
(7)鉴于ga+b=ga+gb,得到第六等式的等效式,所述第六等式的等效式表示为:
(8)结合运用交换律和结合律,将所述第六等式的等效式表示为第七等式,所述第七等式表示为:
(9)将s′i=k′i-e′aiximod q代入所述第七等式,得到第八等式,所述第八等式表示为:
(10)将第八等式表示代入所述第二等式,得到如下:
本实施例将变色龙哈希函数算法变成了一种分布式协议,哈希公钥由多个参与方的公钥聚合而成,私钥份额由各个参与方独立生成,不需要秘密分发者,计算哈希碰撞仅需要三个轮次并发通信。本算法原理简单,容易实现,通信轮次与参与者数量无关,支持公钥聚合,多方都同意才可以计算哈希碰撞,具有很高的可信安全性。
实施例2:
本发明基于多重变色龙哈希函数的信息查找系统,包括安全设置模块、密钥生成模块、哈希计算模块、哈希验证模块、碰撞查找模块以及正确性验证模块。
安全设置模块用于设置系统参数,多个参与方作为陷门共同持有者均掌握所述系统参数,所述系统参数包括p、q、H、g,p为位长为k的安全素数,q为素数,p=2q+1,g为q阶元,H为一个抗碰撞的哈希函数。
安全设置,具体指定位长为k的安全素数p。这意味着p=2q+1,其中q也是素数,且的二次剩余子群Qp的一个生成元g,即g具有阶q。H是一个抗碰撞的哈希函数,将任意长度的位串映射到固定长度的字符串H:{0,1}*→{0,1}τ,τ是事先选定的安全参数。下文中陷门管理者只掌握变色龙哈希函数陷门(即私钥)的人或组织。
假定有n个参与方共同持有陷门信息,则上述参与方应该具有相同的安全设置,即上述p、q、H、g应该在n个参与方之间公开。
密钥生成模块用于通过如下步骤生成聚合公钥:每个参与方均基于系统参数、通过变色龙哈希函数中密钥生成方法生成其密钥对份额,并广播其密钥对份额中公钥份额;基于所有参与方的公钥份额计算聚合公钥。
其中,ai=Hagg(<L>,yi),表示参与方Pi的公钥聚合系数,ai<L>={y1,……,yn},表示所有参与方的有序公钥集合,n表示所有参与方的个数。这样ai将只依赖于参与方的公钥份额,所有参与方和外部用户可以计算和验算聚合公钥的有效性。
哈希计算模块用于基于聚合公钥、消息以及消息对应的一对变色龙随机数进行变色龙哈希计算,得到的变色龙哈希值作为目标哈希值。
e=H(m,r)
C=Hash(m,r,s)=r(yegs mod p)mod q
该变色龙哈希计算步骤总的输出为(C,m,r,s),分别为一个哈希值、消息和两个随机数。
哈希验证模块用于基于所述聚合公钥、消息以及消息对应的一对变色龙随机数重新进行变色龙哈希计算,得到的变色龙哈希值作为对比哈希值,所述变色龙哈希计算对应的计算公式为:
e=H(m,r)
C′=Hash(m,r,s)=r(yegs mod p)mod q
将所述目标哈希值与所述比对哈希值进行比对,如果C=C′等式成立,则哈希值验算通过。
碰撞查找模块中所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,得到新消息以及与新消息对应的一对新变色龙随机数,所述新消息的变色龙哈希值与所述目标哈希值相同。
碰撞查找模块中,所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,包括如下步骤:
每个参与方均选择一个随机数,基于所述随机数进行第一次碰撞查找,对于参与方Pi,所述第一次碰撞查找计算公式为:
ei’=H(m′,r′i)
m′表示碰撞查找的新消息,r′表示新信息对应的一个新变色龙随机数,r′i表示r′中参与方Pi在所述新变色龙随机数的份额;
k′i表示参与方Pi选取的一个随机数,k′i∈[1,q-1];
将所述ei′作为验证值,每个参与方广播其验证值,并在接收所有其它参与方的验证值后,广播其随机数;
每个参与方接收所有其它参与方的随机数后,对所有其它参与方的第一次碰撞查找进行验证,对于参与方Pi所述验证计算公式为:
ej’=H(m′,r′j)
其中,1≤j≤n,且,j≠i;n表示共有n个参与方;
验证通过后,每个参与方基于所有参与方的随机数进行第二次碰撞查找,对于参与方Pi,所述第二次碰撞查找计算公式为:
e′=H(m′,r′)
si’=ki’-e′aixi mod q
其中,ai表示参与方Pi的公钥聚合系数,xi表示参与方Pi的私钥份额,s′表示新信息对应的另一个新变色龙随机数,s′i表示s′中参与方Pi在所述另一个新变色随机数的份额;
每个参与方将其在另一个新变色随机数的份额广播至其它参与方后,基于所有参与方在另一个新变色随机数的份额计算所述另一个新变色龙随机数,所述另一个新变色龙随机数的计算公式为:
正确性验证模块基于正确性验证等式,验证作为陷门共同持有者的多个参与方协作能够查找对一对新的随机数,且能够查找到新消息,所述新消息对应的哈希值与输入的消息m具有相同哈希值;所述正确性验证等式表示为:
C=r′(ye′gs′mod p)mod q。
正确性验证等式验证步骤包括:
(7)鉴于ga+b=ga+gb,得到第六等式的等效式,所述第六等式的等效式表示为:
(8)结合运用交换律和结合律,将所述第六等式的等效式表示为第七等式,所述第七等式表示为:
(9)将s′i=k′i-e′aiximod q代入所述第七等式,得到第八等式,所述第八等式表示为:
(10)将第八等式表示代入所述第二等式,得到如下:
实施例3:
本发明的装置,包括:至少一个存储器和至少一个处理器;至少一个存储器,用于存储机器可读程序;至少一个处理器,用于调用所述机器可读程序,执行实施例1公开的方法。
实施例4:
本发明的介质,为一种计算机可读介质,计算机可读介质上存储有计算机指令,计算机指令在被处理器执行时,使处理器执行本发明任一实施例中的方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (10)
1.基于多重变色龙哈希函数的信息查找方法,其特征在于包括如下步骤:
设置系统参数,多个参与方作为陷门共同持有者均掌握所述系统参数,所述系统参数包括p、q、H、g,p为位长为k的安全素数,q为素数,p=2q+1,g为q阶元,H为一个抗碰撞的哈希函数;
每个参与方均基于系统参数、通过变色龙哈希函数中密钥生成方法生成其密钥对份额,并广播其密钥对份额中公钥份额;
基于所有参与方的公钥份额计算聚合公钥;
基于聚合公钥、消息以及消息对应的一对变色龙随机数进行变色龙哈希计算,得到的变色龙哈希值作为目标哈希值;
所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,得到新消息以及与新消息对应的一对新变色龙随机数,所述新消息的变色龙哈希值与所述目标哈希值相同。
2.根据权利要求1所述的基于多重变色龙哈希函数的信息查找方法,其特征在于所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,包括如下步骤:
每个参与方均选择一个随机数,基于所述随机数进行第一次碰撞查找,对于参与方Pi,所述第一次碰撞查找计算公式为:
ei′=H(m′,ri′)
m′表示碰撞查找的新消息,r′表示新信息对应的一个新变色龙随机数,r′i表示r′中参与方Pi在所述新变色龙随机数的份额;
k′i表示参与方Pi选取的一个随机数,k′i∈[1,q-1];
将所述ei′作为验证值,每个参与方广播其验证值,并在接收所有其它参与方的验证值后,广播其随机数;
每个参与方接收所有其它参与方的随机数后,对所有其它参与方的第一次碰撞查找进行验证,对于参与方Pi所述验证计算公式为:
ej’=H(m′,rj′)
其中,1≤j≤n,且,j≠i;n表示共有n个参与方;
验证通过后,每个参与方基于所有参与方的随机数进行第二次碰撞查找,对于参与方Pi,所述第二次碰撞查找计算公式为:
e′=H(m′,r′)
si′=ki′-e′aiximod q
其中,ai表示参与方Pi的公钥聚合系数,xi表示参与方Pi的私钥份额,s′表示新信息对应的另一个新变色龙随机数,s′i表示s′中参与方Pi在所述另一个新变色随机数的份额;
每个参与方将其在另一个新变色随机数的份额广播至其它参与方后,基于所有参与方在另一个新变色随机数的份额计算所述另一个新变色龙随机数,所述另一个新变色龙随机数的计算公式为:
4.根据权利要求1或2所述的基于多重变色龙哈希函数的信息查找方法,其特征在于基于聚合公钥、消息以及消息对应的一对变色龙随机数进行变色龙哈希计算,所述变色龙哈希计算对应的计算公式为:
e=H(m,r)
C=Hash(m,r,s)=r(yegsmod p)mod q
其中,C表示目标变色龙哈希值,(r,s)∈Zp×Zq表示消息m对应的一对变色龙随机数。
5.根据权利要求1或2所述的基于多重变色龙哈希函数的信息查找方法,其特征在于还包括如下步骤:
基于所述聚合公钥、消息以及消息对应的一对变色龙随机数重新进行变色龙哈希计算,得到的变色龙哈希值作为对比哈希值,所述变色龙哈希计算对应的计算公式为:
e=H(m,r)
C′=Hash(m,r,s)=r(yegsmod p)mod q
将所述目标哈希值与所述比对哈希值进行比对,如果C=C′等式成立,则哈希值验算通过。
6.根据权利要求1或2所述的基于多重变色龙哈希函数的信息查找方法,其特征在于所述方法还包括如下步骤:
基于正确性验证等式,验证作为陷门共同持有者的多个参与方协作能够查找对一对新的随机数,且能够查找到新消息,所述新消息对应的哈希值与输入的消息m具有相同哈希值;所述正确性验证等式表示为:
C=r′(ye′gs′mod p)mod q。
7.根据权利要求6任一项所述的基于多重变色龙哈希函数的信息查找方法,其特征在于正确性验证等式验证步骤包括:
鉴于ga+b=ga+gb,得到第六等式的等效式,所述第六等式的等效式表示为:
结合运用交换律和结合律,将所述第六等式的等效式表示为第七等式,所述第七等式表示为:
将s′i=k′i-e′aiximod q代入所述第七等式,得到第八等式,所述第八等式表示为:
将所述第八等式表示代入所述第二等式,得到如下:
8.基于多重变色龙哈希函数的信息查找系统,其特征在于通过如权利要求1-7任一项所述的基于多重变色龙哈希函数的信息查找方法,查找新的消息和一对新的随机数,所述新的消息的变色龙哈希值与输入的消息的变色龙哈希值相同,所述系统包括:
安全设置模块,所述安全设置模块用于设置系统参数,多个参与方作为陷门共同持有者均掌握所述系统参数,所述系统参数包括p、q、H、g,p为位长为k的安全素数,q为素数,p=2q+1,g为q阶元,H为一个抗碰撞的哈希函数;
密钥生成模块,所述密钥生成模块用于通过如下步骤生成聚合公钥:每个参与方均基于系统参数、通过变色龙哈希函数中密钥生成方法生成其密钥对份额,并广播其密钥对份额中公钥份额;基于所有参与方的公钥份额计算聚合公钥;
哈希计算模块,所述哈希计算模块用于基于聚合公钥、消息以及消息对应的一对变色龙随机数进行变色龙哈希计算,得到的变色龙哈希值作为目标哈希值;
哈希验证模块,所述哈希验证模块用于基于所述聚合公钥、消息以及消息对应的一对变色龙随机数重新进行变色龙哈希计算,得到的变色龙哈希值作为对比哈希值,所述变色龙哈希计算对应的计算公式为:
e=H(m,r)
C′=Hash(m,r,s)=r(yegsmod p)mod q
将所述目标哈希值与所述比对哈希值进行比对,如果C=C′等式成立,则哈希值验算通过;
碰撞查找模块,所述碰撞查找模块中所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,得到新消息以及与新消息对应的一对新变色龙随机数,所述新消息的变色龙哈希值与所述目标哈希值相同;
正确性验证模块,所述正确性验证模块基于正确性验证等式,验证作为陷门共同持有者的多个参与方协作能够查找对一对新的随机数,且能够查找到新消息,所述新消息对应的哈希值与输入的消息m具有相同哈希值;所述正确性验证等式表示为:
C=r′(ye′gs′mod p)mod q;
碰撞查找模块中,所述多个参与方协作,通过多轮并发通信的方式进行碰撞查找,包括如下步骤:
每个参与方均选择一个随机数,基于所述随机数进行第一次碰撞查找,对于参与方Pi,所述第一次碰撞查找计算公式为:
ei′=H(m′,ri′)
m′表示碰撞查找的新消息,r′表示新信息对应的一个新变色龙随机数,r′i表示r′中参与方Pi在所述新变色龙随机数的份额;
k′i表示参与方Pi选取的一个随机数,k′i∈[1,q-1];
将所述ei′作为验证值,每个参与方广播其验证值,并在接收所有其它参与方的验证值后,广播其随机数;
每个参与方接收所有其它参与方的随机数后,对所有其它参与方的第一次碰撞查找进行验证,对于参与方Pi所述验证计算公式为:
ej′=H(m,rj)
其中,1≤j≤n,且,j≠i;n表示共有n个参与方;
验证通过后,每个参与方基于所有参与方的随机数进行第二次碰撞查找,对于参与方Pi,所述第二次碰撞查找计算公式为:
e′=H(m′,r′)
si′=ki′-e′aiximod q
其中,ai表示参与方Pi的公钥聚合系数,xi表示参与方Pi的私钥份额,s′表示新信息对应的另一个新变色龙随机数,s′i表示s′中参与方Pi在所述另一个新变色随机数的份额;
每个参与方将其在另一个新变色随机数的份额广播至其它参与方后,基于所有参与方在另一个新变色随机数的份额计算所述另一个新变色龙随机数,所述另一个新变色龙随机数的计算公式为:
9.装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至7中任一所述的方法。
10.介质,为计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111324507.9A CN114117470A (zh) | 2021-11-10 | 2021-11-10 | 基于多重变色龙哈希函数的信息查找方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111324507.9A CN114117470A (zh) | 2021-11-10 | 2021-11-10 | 基于多重变色龙哈希函数的信息查找方法、系统及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114117470A true CN114117470A (zh) | 2022-03-01 |
Family
ID=80377870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111324507.9A Pending CN114117470A (zh) | 2021-11-10 | 2021-11-10 | 基于多重变色龙哈希函数的信息查找方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114117470A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710298A (zh) * | 2022-06-02 | 2022-07-05 | 深圳天谷信息科技有限公司 | 基于变色龙哈希的文档批量签署方法、装置、设备及介质 |
CN114978524A (zh) * | 2022-04-21 | 2022-08-30 | 浪潮云信息技术股份公司 | 一种基于离散对数的多重变色龙哈希方法及系统 |
-
2021
- 2021-11-10 CN CN202111324507.9A patent/CN114117470A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978524A (zh) * | 2022-04-21 | 2022-08-30 | 浪潮云信息技术股份公司 | 一种基于离散对数的多重变色龙哈希方法及系统 |
CN114978524B (zh) * | 2022-04-21 | 2024-04-12 | 浪潮云信息技术股份公司 | 一种基于离散对数的多重变色龙哈希方法及系统 |
CN114710298A (zh) * | 2022-06-02 | 2022-07-05 | 深圳天谷信息科技有限公司 | 基于变色龙哈希的文档批量签署方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee et al. | Public key encryption with equality test in the standard model | |
Di Crescenzo et al. | Efficient and non-interactive non-malleable commitment | |
CN108667616B (zh) | 基于标识的跨云安全认证系统和方法 | |
CN105827402B (zh) | 一种分布式公开可验证随机数生成方法 | |
CN106130716B (zh) | 基于认证信息的密钥交换系统及方法 | |
CN109714153B (zh) | 一种高效的聚合签名方法 | |
CN112929181B (zh) | 抗Sybil攻击身份的生成 | |
Brakerski et al. | A framework for efficient signatures, ring signatures and identity based encryption in the standard model | |
CN108337092B (zh) | 用于在通信网络中执行集体认证的方法和系统 | |
US20020136401A1 (en) | Digital signature and authentication method and apparatus | |
CN114117470A (zh) | 基于多重变色龙哈希函数的信息查找方法、系统及装置 | |
CN112380584B (zh) | 区块链数据更新方法、装置、电子设备和存储介质 | |
CN112785306B (zh) | 基于Paillier的同态加密方法及应用系统 | |
CN114124371A (zh) | 一种基于无证书的满足mtp安全的公钥可搜索加密方法 | |
Blazy et al. | Short blind signatures | |
CN115834056A (zh) | 一种无证书有序聚合签名方法、系统及相关装置 | |
Guo et al. | Provably secure identity-based authenticated key agreement protocols with malicious private key generators | |
Kundu et al. | Cryptographic Hash Functions and Attacks-A Detailed Study. | |
CN111669275A (zh) | 一种无线网络环境下可选择从节点的主从协作签名方法 | |
Shen et al. | IBUOV, a provably secure identity-based UOV signature scheme | |
CN116318663A (zh) | 一种基于隐私保护的多策略安全密文数据共享方法 | |
CN114090649A (zh) | 基于变色龙哈希函数的消息查找方法、系统、装置及介质 | |
Byun | PDAKE: a provably secure PUF-based device authenticated key exchange in cloud setting | |
CN109412815B (zh) | 一种实现跨域安全通信的方法和系统 | |
US10469267B2 (en) | Method of managing implicit certificates using a distributed public keys infrastructure |
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 |