本发明涉及通信系统中的信息安全领域、匿名通信系统中的用户隐私保护技术领域,特别涉及一种可审计可追踪匿名消息接收系统及方法。
背景技术:
群加密实现了信息接收方的身份隐私保护且保证接收方是群成员,该群由一个或多个群管理员(groupmanager,gm)进行管理。每个群成员均有一对秘钥,即私钥和公钥,其中公钥的有效性由群管理员证明。发送方通过该群成员的公钥对消息进行加密,实现消息的保密传输以及群成员的匿名接收。当出现争端或在需要的情况下,群管理员有权利打开密文消息揭露接收方的身份。在群加密中发送方能够使得验证方相信密文是某个拥有有效证书的群成员的公钥加密;开权威机构(openingauthority,oa)能够确定接收方的身份;明文消息可能满足某个公开的关系。可追踪的群加密在拥有群加密性质的基础上,添加了额外的性质,即允许打开权威机构(oa)揭露特定用户的陷门信息,实现对某个群成员信息的公开追踪而不需要损坏其他成员的匿名性。可追踪的群加密还能够非交互式地证明其本身是否为某个密文的接收者。群加密体制、可追踪的群加密机制实现了用户与管理员两层架构模型,但是,在现有的群加密体制中,当用户出现恶意行为,则追踪用户或打开用户接收信息。但是问题在于如何在不影响用户隐私的前提下发现用户的恶意行为,再进行追踪或打开用户信息,而群加密和可追踪的群加密均没有解决这个关键问题。另外,群加密体制中,用户可能存在不同的级别,这时就需要不同的群管理员具有不同的管理权限,实现分权管理与用户分级问题。
技术实现要素:
本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种可审计可追踪匿名消息接收系统。该可审计可追踪匿名消息接收系统能够在不影响用户隐私的前提下发现用户的恶意行为,再进行追踪或打开用户信息,有效实现通信系统中信宿的隐私保护并支持追踪机构对匿名信宿的审计、追踪和认证功能。
本发明的另一个目的在于提出一种可审计可追踪匿名消息接收方法。
为了实现上述目的,本发明的一方面公开了一种可审计可追踪匿名消息接收系统,包括:用户注册模块,所述用户注册模块用于通过用户与实体机构中的注册机构交互生成用户的公私钥和公钥证书;加密模块,所述加密模块用于对用户在通信系统中的消息进行保密发送;验证模块,所述验证模块用于验证通信系统中验证密文消息的合法性;解密模块,所述解密模块用于对匿名接收方的密文消息解密;链接模块,所述链接模块用于判断任意两个消息是否发送给相同接收方;追踪模块,所述追踪模块用于追踪异常密文消息的关联用户;认证模块,所述认证模块用于认证异常用户接收的消息内容。
根据本发明的可审计可追踪匿名消息接收系统,将管理员的链接、追踪、认证功能独立,有效避免了传统群管理员权利过于集中的问题,并且,在链接模块对异常消息进行审计,追踪模块能对通信接收方的身份进行追踪,认证模块对输出信息的内容认证,这样可以实现在不影响用户隐私的前提下发现用户的恶意行为,再进行追踪或打开用户信息,有效实现通信系统中信宿的隐私保护并支持追踪机构对匿名信宿的审计、追踪和认证功能。
另外,根据本发明上述实施例的可审计可追踪匿名消息接收系统还可以具有如下附加的技术特征:
进一步地,所述实体机构还包括追踪机构、审计机构和分级用户。
进一步地,所述用户注册模块还用于根据输入的系统安全参数长度,输出系统公共参数,并根据所述系统公共参数,所述注册机构、追踪机构和审计机构运行各自秘钥生成算法生成各自的公私钥。
进一步地,所述用户注册模块还用于分级节点在注册机构注册并获得身份,具体用于上级节点根据系统公共参数、自己的私钥、用户身份,生成下级节点的私钥,下级节点根据系统公共参数、由上级节点生成的私钥,生成自己的公钥。
进一步地,所述加密模块具体用于发送方输入接收方公钥和消息,生成消息加密,输入注册机构的公钥和消息,生成消息承诺,输入追踪机构公钥和接收方公钥,生成接收方公钥的加密,输入审计机构公钥和接收方公钥,生成公钥陷门示性承诺,根据所述消息加密、消息承诺、接收方公钥的加密、公钥陷门示性承诺得到密文;所述验证模块具体用于根据系统公共参数和密文,判断密文是否合法;所述解密模块具体用于根据系统公共参数、密文、接收方的私钥进行解密;所述链接模块具体用于输入系统公共参数、审计机构的秘钥、密文和目标密文,判断密文和目标密文是否发送给相同接收方;所述追踪模块具体用于根据系统公共参数、追踪机构的秘钥、密文,输出接收方的公钥;所述认证模块具体用于根据系统公共参数、注册机构的主秘钥、密文,打开承诺。
本发明的另一方面公开了一种可审计可追踪匿名消息接收方法,包括:通过用户与实体机构中的注册机构交互生成用户的公私钥和公钥证书;对用户在通信系统中的消息进行保密发送;验证通信系统中验证密文消息的合法性;对匿名接收方的密文消息解密;判断任意两个消息是否发送给相同接收方;追踪异常密文消息的关联用户;认证异常用户接收的消息内容。
根据本发明的可审计可追踪匿名消息接收方法,将管理员的链接、追踪、认证功能独立,有效避免了传统群管理员权利过于集中的问题,并且,对异常消息进行审计,对通信接收方的身份进行追踪,对输出信息的内容认证,这样可以实现在不影响用户隐私的前提下发现用户的恶意行为,再进行追踪或打开用户信息,有效实现通信系统中信宿的隐私保护并支持追踪机构对匿名信宿的审计、追踪和认证功能。
另外,根据本发明上述实施例的可审计可追踪匿名消息接收方法还可以具有如下附加的技术特征:
进一步地,所述实体机构还包括追踪机构、审计机构和分级用户。
进一步地,所述通过用户与实体机构中的注册机构交互生成用户的公私钥和公钥证书的步骤具体还包括:根据输入的系统安全参数长度,输出系统公共参数;并根据所述系统公共参数,所述注册机构、追踪机构和审计机构运行各自秘钥生成算法生成各自的公私钥。
进一步地,所述通过用户与实体机构中的注册机构交互生成用户的公私钥和公钥证书的步骤具体还包括:分级节点在注册机构注册并获得身份,具体用于上级节点输入系统公共参数、私钥、用户身份,生成下级节点的私钥,下级节点输入系统公共参数、由上级节点生成的私钥,生成自己的公钥。
进一步地,所述对用户在通信系统中的消息进行保密发送的步骤具体包括:发送方输入接收方公钥和消息,生成消息加密,输入注册机构的公钥和消息,生成消息承诺,输入追踪机构公钥和接收方公钥,生成接收方公钥的加密,输入审计机构公钥和接收方公钥,生成公钥陷门示性承诺,根据所述消息加密、消息承诺、接收方公钥的加密、接收方公钥的陷门示性承诺得到密文;验证通信系统中验证密文消息的合法性的步骤具体包括:根据系统公共参数和密文,判断密文是否合法;所述对匿名接收方的密文消息解密的步骤具体包括:根据系统公共参数、密文、接收方的私钥进行解密;所述判断任意两个消息是否发送给相同接收方的步骤具体包括:根据系统公共参数、审计机构的秘钥、密文和目标密文,判断密文和目标密文是否发送给相同接收方;所述追踪异常密文消息的关联用户的步骤具体包括:根据系统公共参数、追踪机构的秘钥、密文,输出接收方的公钥;所述认证异常用户接收的消息内容的步骤具体包括:根据系统公共参数、注册机构的主秘钥、密文,打开承诺。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的可审计可追踪匿名消息接收系统的结构图;
图2是一个可审计可追踪匿名消息接收系统与基础密码学工具示意图;
图3是根据本发明另一个实施例的可审计可追踪匿名消息接收系统的结构图;
图4是另一个可审计可追踪匿名消息接收系统与基础密码学工具示意图;
图5是根据本发明一个实施例的可审计可追踪匿名消息接收方法的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
以下结合附图描述根据本发明实施例的可审计可追踪匿名消息接收系统及方法。
图1是根据本发明一个实施例的可审计可追踪匿名消息接收系统的结构图。
结合图2所示,本发明的系统的各个模块均涉及密码学工具,所以在介绍本系统之前,首先了解需要用到的密码学基础工具,包括伪随机数发生器、零知识证明、承诺、加密、陷门示性承诺、数字签名密码学工具。
定义伪随机数发生器、零知识证明、承诺、加密、陷门示性承诺、数字签名:
令prng代表伪随机数发生器。
令nizk代表非交互式零知识证明协议。
令π1=(r-skg,r-pkg,r-com,r-ver)代表承诺方案,其中r-skg,r-pkg,r-com和r-ver分别为私钥生成的算法、公钥生成的算法、承诺的算法和打开承诺的算法。
令π2=(t-skg,t-pkg,t-enc,t-dec)代表加密方案1,其中t-skg,t-pkg,t-enc和t-dec分别为私钥生成的算法、公钥生成的算法、加密的算法和解密的算法。
令π3=(u-skg,u-pkg,u-enc,u-dec)代表加密方案2,其中u-skg、u-pkg、u-enc和u-dec分别为私钥生成的算法、公钥生成的算法、加密的算法和解密的算法。其中,加密方案π3必须满足秘钥隐私性(key-privacy)。
令π4=(l-skg,l-pkg,l-com,l-indic)代表陷门示性承诺方案,其中l-skg,l-pkg,l-com和l-indic分别为私钥生成的算法、公钥生成的算法、陷门承诺的算法和示性的算法。
令π5=(kgen,sig,ver)代表数字签名方案,其中kgen、sig和ver分别为秘钥生成的算法、签名的算法和验证的算法。
伪随机数发生器(pseudo-randomnumbergenerator)
伪随机数发生器要求尽可能满足不同且未必兼容的随机性和不可预测性。随机性包含分布均匀性(即出现0和1的频率大约相等)和独立性(即任意子序列不能由其他子序列推导出);不可预测性是指序列生成的下一个数为0或1的概率接近1/2。
定义1(伪随机数生成器):令prng代表伪随机数生成算法,该算法是一个确定多项式时间算法,满足扩展性,即存在一个函数
非交互式零知识证明(non-interactivezero-knowledgeproof)
零知识证明是指一个两方协议,其中证明者向验证者证明某个断言,且确保不向验证者泄露任何额外的信息。
定义2(非交互式零知识证明):令nizk代表证明方与验证方之间的非交互式零知识证明协议。一对概率多项式图灵机(p,v)称为语言l的非交互式证明系统,如果图灵机v是多项式时间的,且满足①完整性:对每个x∈l,都有pr[v(x,r,p(x,r))=1]≥2/3,其中r是在{0,1}ploy(|x|)上服从均匀分布的随机变量。②鲁棒性:对每个
承诺(commitment)
承诺方案是指发送方向接收方发送一个秘密值,接收方不知道该秘密值,而随后发送方能够打开该秘密值,接收方进行验证。承诺方案包含两个阶段,承诺阶段和打开阶段(或称揭示阶段):
承诺阶段:发送方将秘密消息以密文的形式(或者消息放入一个上了锁的盒子里)发送给接收方,此时接收方不知道密文中隐藏的是何种消息(即接收者无法打开盒子,并获知消息),这个性质称为隐藏性。
打开阶段:发送方将密钥(或者锁的钥匙)和秘密消息发送给接收方,接收方利用密钥来获知消息并验证该消息是否与之前宣称的一致,在此阶段,发送方不能够使得打开的承诺和实际的承诺消息不同,这个性质称为绑定性。
定义3(承诺):定义π1=(r-skg,r-pkg,r-com,r-ver)为承诺方案,其中r-skg,r-pkg,r-com和r-ver分别为私钥生成、公钥生成、承诺和验证算法,其具体结构算法如下:
私钥生成算法r-skg:输入1λ,输出私钥rsk;
公钥生成算法r-pkg:输入私钥rsk,输出公钥rpk;
承诺算法r-com:输入公钥rpk和秘密消息m,输出承诺σ;
打开承诺算法r-ver:输入主秘钥rsk和承诺σ,输出秘密值m。
加密(encryption)
定义4(加密方案1):定义π2=(t-skg,t-pkg,t-enc,t-dec)为加密方案,其中t-skg,t-pkg,t-enc和t-dec分别为私钥生成、公钥生成、加密和解密算法,其具体结构算法如下:
私钥生成算法t-skg:输入1λ,输出私钥tsk;
公钥生成算法t-pkg:输入私钥tsk,输出公钥tpk;
加密t-enc:输入公钥tpk和明文消息m,输出密文c;
解密t-dec:输入私钥tsk和密文c,输出明文消息m。
加密方案1必须满足正确性,即对于所有的(tsk,tpk)←pkeygen(1λ)和消息m∈m,满足m=dec(tsk,enc(tpk,m)),解密的消息等于加密的消息。
定义5(加密方案2):定义π3=(u-skg,u-pkg,u-enc,u-dec)为加密方案,其中u-skg、u-pkg、u-enc和u-dec分别为私钥生成、公钥生成、加密和解密算法。其具体结构算法如下:
私钥生成算法u-skg:算法u-skg调用伪随机数生成器prng,输入params,uskk-1,i,useridk,j,输出伪随机数作为私钥uskk,j;
公钥生成算法u-pkg:输入私钥uskk,j,输出公钥upkk,j;
加密u-enc算法:输入公钥upkk,j和明文消息m,输出密文c;
解密u-dec算法:输入私钥uskk,j和密文c,输出明文消息m。
与加密方案1类似,加密方案2也必须满足正确性。加密方案2还必须满足秘钥隐私性(key-privacy)。秘钥隐私性(key-privacy)是指攻击者不知道该密文消息是发送给哪个接收方,即由攻击者任意选择两个公钥和一个消息并发送给挑战者,挑战者随机选择其中一个公钥对消息进行加密并把密文发送给攻击者,而攻击者不知道该密文是由哪个公钥对消息的加密。
陷门示性承诺(trapdoorindicativecommitment)
陷门示性承诺是一种特殊的陷门承诺方案,传统陷门承诺只是针对一个承诺值根据陷门信息进行运算,而陷门示性承诺针对两个承诺进行运算,其示性特征仅允许拥有陷门信息的人仅能够判断出两个承诺的秘密值是否相等,而不能打开承诺。概念中的示性特征体现在方案的输出结果只有0或1,如果拥有陷门密钥且承诺的秘密值相等,输出1,否则输出0。
定义6(陷门示性承诺):定义π4=(l-skg,l-pkg,l-com,l-indic)为陷门示性承诺方案,其中l-skg,l-pkg,l-com和l-indic分别为私钥生成、公钥生成、承诺和示性算法,其具体结构算法如下:
私钥生成算法l-skg:输入公共参数1λ,输出私钥lsk;
公钥生成算法l-pkg:输入私钥lsk,输出公钥lpk;
陷门示性承诺l-com:输入消息m和公钥lpk,输出承诺c;
示性算法l-indic:输入秘钥lsk和两个承诺c,c',判断承诺c,c′中的承诺秘密值m,m′是否相同;如果相同,则输出1,否则输出0。
数字签名(digitalsignature)
数字签名方案应满足以下要求:①接收方能够正式发送方的签名,但不能伪造;②发送方发出消息的签名后,不能否认签发的消息;③接收方对接收到的签名消息不能否认;④第三方可以确认双方之间的消息传送,但不能伪造该过程。
定义7(数字签名):定义π5=(kgen,sig,ver)为数字签名方案,其中kgen、sig和ver分别为秘钥生成、签名和验证算法,其具体结构算法如下:
秘钥生成算法kgen:输入公共参数1λ,输出公私钥(pk,sk);
签名算法sig:输入私钥sk和消息m,输出签名c;
验证算法ver:输入签名c和公钥lpk,输出{0,1};
以下为本发明的具体实施例:
如图1所示,根据本发明一个实施例的可审计可追踪匿名消息接收系统100,由以上列出的密码学基础工具可给出本发明的系统构造。定义π=(建立,注册,加密,验证,解密,链接,追踪,认证)为基本构造,并将方法总结为7个算法模块,包括:用户注册模块110、加密模块120、验证模块130、解密模块140、链接模块150、追踪模块160、认证模块170。
其中,用户注册模块110用于通过用户与实体机构中的注册机构交互生成用户的公私钥和公钥证书。加密模块120用于对用户在通信系统中的消息进行保密发送。验证模块130用于验证通信系统中验证密文消息的合法性。解密模块140用于对匿名接收方的密文消息解密。链接模块150用于判断任意两个消息是否发送给相同接收方。追踪模块160用于追踪异常密文消息的关联用户。认证模块170用于认证异常用户接收的消息内容。
根据本发明的可审计可追踪匿名消息接收系统,将管理员的链接、追踪、认证功能独立,有效避免了传统群管理员权利过于集中的问题,并且,在链接模块对异常消息进行审计,追踪模块能对通信接收方的身份进行追踪,认证模块对输出信息的内容认证,这样可以实现在不影响用户隐私的前提下发现用户的恶意行为,再进行追踪或打开用户信息,有效实现通信系统中信宿的隐私保护并支持追踪机构对匿名信宿的审计、追踪和认证功能。
在一些实施例中,实体机构还包括追踪机构、审计机构和分级用户。其中,追踪机构、审计机构、注册机构为系统的群管理员,三个管理员分权运作。群管理员1(注册机构)能够认证用户,查看通信内容;群管理员2(追踪机构)能够追踪匿名接收方,查看接收方身份;群管理员3(审计机构)能够审计用户通信,记录匿名接收方接收信息数量而不知道该成员的身份信息。根据匿名成员接收的消息数量发现匿名用户的恶意行为,此过程没有损坏群加密体制中的用户匿名性。
结合图3所示,具体来说,本发明包含四类实体:注册机构register、追踪机构tracer、审计机构linker和分级用户hierarchic-user(也称分级节点hierarchic-node)。其中,注册机构register的公钥和主秘钥可以表示为(rpk,rsk),追踪机构tracer的公私钥可以表示为(tpk,tsk),审计机构linker的公私钥可以表示为(lpk,lsk),分级节点hierarchic-node的公私钥可以表示为(upk,usk)。
需要注意的是,用户注册由通信发送方和注册机构完成,加密由通信发送方完成,零知识证明由通信发送方和网关完成,解密由通信接收方完成,链接操作由审计机构完成,追踪操作由追踪机构完成,认证操作由注册机构完整。
在一些实施例中,用户注册模块110还用于根据输入的系统安全参数长度,输出系统公共参数,并根据系统公共参数,注册机构、追踪机构和审计机构运行各自秘钥生成算法生成各自的公私钥。
具体来说,用户注册模块110首先用于建立四类实体的各自的公私钥,具体使用建立算法,即,λ为系统安全参数长度,在算法中输入1λ,输出系统公共参数params。注册机构运行π1的r-skg算法,生成主秘钥gsk;输入主秘钥rsk,运行r-pkg算法,生成公钥gpk;即:r-skg(1λ,params)→gsk;r-pkg(gsk)→gpk。追踪机构运行π2的t-skg算法,生成私钥tsk;输入私钥tsk,运行t-pkg算法,生成公钥tpk;即:t-skg(1λ,params)→tsk;t-pkg(tsk)→tpk。审计机构运行π4的l-skg算法,生成私钥lsk;输入私钥lsk,运行l-pkg算法,生成公钥lpk;即:l-skg(1λ,params)→lsk;l-pkg(lsk)→lpk。
在一些实施例中,用户注册模块110还用于分级节点在注册机构注册并获得身份,具体用于上级节点根据系统公共参数、自己的私钥、用户身份,生成下级节点的私钥,下级节点根据系统公共参数、由上级节点生成的私钥,生成自己的公钥。
具体来说,系统的第二个算法为注册reg算法,分级节点在注册机构注册并获得身份useridk,j。注册机构运行私钥生成算法u-skg,私钥生成算法u-skg调用伪随机数生成算法prng,输入系统公共参数params、注册机构的主秘钥gsk、根节点注册身份userid1,1,输出伪随机数作为根节点私钥usk1,1,即:u-skg(prng(params,gsk,userid1,1))→usk1,1;根节点运行公钥生成算法u-pkg,输入系统公共参数params和根节点私钥usk1,1,生成根节点的公钥upk1,1,即:u-pkg(params,usk1,1)→upk1,1。根节点生成其子节点私钥,即运用私钥生成算法u-skg,私钥生成算法u-skg调用伪随机数生成算法prng,输入系统公共参数params、根节点的私钥usk1,1、其子节点的身份信息生成子节点的私钥,即:u-skg(prng(params,usk1,1,userid2,i))→usk2,i;子节点生成公钥,运用注册机构公钥生成算法u-pkg,输入系统公共参数params和子节点的私钥,生成子节点的公钥,即:u-pkg(params,usk2,i)→upk2,i。以此类推,生成各级节点公私钥(upkk,j,uskk,j),其中1≤k≤t,j≥1,共有t级节点。最底层用户不能分发密钥。
任意节点分配到秘钥后,发送公钥upkk,j到注册机构进行公钥注册。注册机构运行π5的签名算法sig,即:
在一些实施例中,加密模块120具体用于发送方输入接收方公钥和消息,生成消息加密,输入注册机构的公钥和消息,生成消息承诺,输入追踪机构公钥和接收方公钥,生成接收方公钥的加密,输入审计机构公钥和接收方公钥,生成公钥陷门示性承诺,根据所述消息加密、消息承诺、接收方公钥的加密、公钥陷门示性承诺得到密文。
具体来说,加密enc(params,upk,m):定义消息m∈{0,1}*,群加密算法分为以下几个部分:
消息加密:运行π3的u-enc加密算法,u-enc(params,upkk,j,m)→c1;
消息承诺:运行π1的r-com承诺算法,r-com(params,rpk,m)→c2;
接收方公钥加密:运行π2的t-enc加密算法,t-enc(params,tpk,upkk,j)→c3;
接收方公钥陷门示性承诺:运行π4的l-com承诺算法,l-com(params,lpk,upkk,j)→c4;
最后,得到密文c=(c1,c2,c3,c4)。发送方进行运行非交互式零知识证明协议nizk,证明:加密的消息等于承诺的消息,加密使用的公钥、追踪的公钥、链接的公钥三者相等,即:nizk={m,upk|c0,c1,c2,c3}。
验证模块130具体用于根据系统公共参数和密文,判断密文是否合法。
具体来说,验证ver(params,c):网关进行非交互式零知识证明协议nizk,验证:加密的消息m等于承诺的消息m;加密算法使用的公钥upkk,j、接收方公钥的加密upkk,j、接收方陷门示性承诺用户公钥upkk,j三者相等。如果上述两个条件均成立,则放行,否则拒绝。
解密模块140具体用于根据系统公共参数、密文、接收方的私钥进行解密。
具体来说,解密算法的模块,解密dec(params,usk,c):接收方进行解密运算:给定密文c,接收方使用π3的u-dec解密算法,根据系统公共参数params,接收方的私钥,密文,解密出明文消息m,即:u-dec(params,usk,c)→m。
链接模块150具体用于输入系统公共参数、审计机构的秘钥、密文和目标密文,判断密文和目标密文是否发送给相同接收方。
具体来说,群管理员根据陷门信息,对任意两个密文进行计算,仅能判断密文中包含的接收方身份信息是否相等,而不会涉及到具体的身份信息。链接模块的链接算法link(params,lsk,c,c’):审计机构进行密文链接运算:系统公共参数params,审计机构的秘钥,给定两个密文c,c',审计机构运行π4的l-indic示性算法,l-indic(params,lsk,c,c'),如果输出1,则判断为发送给相同接收方,否则判断为发送给不同接收方,其中,密文c′为目标密文。例如:密文c为记录以往某一节点接收到的密文,密文c′为另一密文信息,如果l-indic示性算法输出1,则密文c′也是发送给该节点,否则是发送给其他节点。
追踪模块160具体用于根据系统公共参数、追踪机构的秘钥、密文,输出接收方的公钥。
具体来说,追踪模块160由实体机构追踪机构中完成,追踪trace(params,tsk,c):追踪机构进行追踪运算。追踪机构运行π2的t-dec解密算法,输入系统公共参数params,追踪机构私钥、密文c,输出用户公钥信息,即:t-dec(params,tsk,c)→upkk,j。
认证模块170具体用于根据系统公共参数、注册机构的主秘钥、密文,打开承诺。
具体来说,认证aut(params,rsk,c):注册机构进行认证算法:注册机构运行π1的r-ver验证算法,根据系统公共参数params,注册机构的主秘钥rsk,密文c,打开承诺,即:r-ver(params,rsk,c)→m。
作为一个示例,结合图4所示:用户注册模块110的用户注册对应涉及到伪随机数发生器和数字签名,加密模块120的消息加密涉及基础密码学的零知识证明、加密2、新构造的陷门示性承诺、加密1、承诺,验证模块130的密文验证涉及基础密码学的零知识证明,解密模块140的消息解密涉及基础密码学的加密2,链接模块150的密文链接涉及基础密码学的新构造的陷门示性承诺,追踪模块160的身份追踪涉及基础密码学的加密1,认证模块170的消息认证涉及基础密码学的承诺。
一个伪随机数生成器实例:哈希函数
一个零知识证明协议实例:一个阶为素数p的循环群
zk{m,x,y,s|c1=gs,c3=m·xs,c4=x·ys}
一个承诺方案实例:一个阶为素数p的循环群
私钥生成算法
公钥生成算法r-pkg(rsk):输入私钥rsk,计算
承诺r-com(rpk,m,u,v):选择随机数u,v、秘密值m和公钥rpk,计算c1=gu,c2=gv,
打开承诺r-ver(α1,β1,c):输入私钥rsk、承诺c,计算
一个满足加密方案1要求的实例:一个阶为素数p的循环群
私钥生成算法
公钥生成算法t-pkg(tsk):输入私钥tsk,计算
加密t-enc(tpk,m,u,v):选择随机数u,v、消息m、公钥tpk,计算c1=gu,c2=gv,
解密t-dec(α2,β2,c):输入私钥rsk和密文c,计算
一个具有秘钥隐私性的加密方案2实例:一个阶为素数p的循环群
私钥生成算法u-skg:运行哈希函数
公钥生成算法u-pkg(uskk,j):输入私钥uskk,j,计算
加密t-enc(upk,m,u,v):选择随机数u,v、消息m、公钥upkk,j,计算
解密t-dec(xk,j,yk,j,c):输入私钥uskk,j和密文c,计算
一个陷门示性承诺方案实例:两个阶为素数p的循环群
私钥生成算法
公钥生成算法l-pkg(lsk):输入私钥lsk,计算
陷门承诺l-com(u,v,m,lpk):选择两个随机数
示性算法l-indic(lsk,c,c'):输入私钥α3和两个密文c,c',计算
一个数字签名方案实例:令
秘钥生成算法kgen:输入公共参数(1λ,params),输出公私钥(y,x),其中y=gxmodp;
签名算法sig:选择随机数k,其中1<k<p-1,gcd(k,p-1)=1,选择消息m,计算r=gkmodp,
验证算法ver:输入签名σ和公钥y,计算
具体构造如下:
用户注册模块110:建立算法setup(1λ):注册机构manager输入1λ,输出系统公共参数params;运行秘钥生成算法
注册机构输入系统安全参数1λ,生成两个阶为素数p的群
追踪机构tracer和审计机构linker分别运行秘钥生成算法
用户注册模块110:分级算法reg(params,gsk,usk,userid):分级节点在注册机构注册并获得身份useridk,j。上级节点运行私钥生成算法u-skg,私钥生成算法u-skg调用伪随机数生成算法prng,输入系统公共参数params、私钥uskk-1,i、用户身份useridk,j,生成下级节点私钥uskk,j。下级节点输入系统公共参数params、私钥uskk,j,生成公钥upkk,j。以此类推,生成各级节点公私钥(upk,usk)。各节点发送公钥upk到注册机构进行公钥注册,注册机构输入节点公钥upk和主秘钥rsk,输出公钥证书
任意k级节点在注册机构注册身份为
任意节点uk,j分配到秘钥后,到注册机构处进行公钥注册,则注册机构选择随机数u,v使用主秘钥rsk=(α1,β1)对节点公钥upkk,j=(xk,j,yk,j)进行数字签名,即计算
加密模块120:加密算法enc(params,upk,m):定义消息m∈{0,1}*,任意发送方分别对消息m和接收方公钥upk加密。输入接收方公钥upk和消息m,生成消息加密密文c1;输入注册机构公钥rpk和消息m,生成消息承诺c2;输入追踪机构公钥tpk和接收方公钥upk,生成接收方公钥的加密密文c3;输入审计机构公钥lpk和接收方公钥upk,生成接收方公钥的加密密文c4;令c=(c1,c2,c3,c4)。发送方进行非交互式零知识证明nizk:加密的消息等于承诺的消息,加密使用的公钥、追踪的公钥、链接的公钥三者相等。
发送消息给任意节点uk,j,选择消息
(c1,c2,c3)是消息加密,(c4,c5,c7)消息承诺,(c4,c5,c8)接收方公钥的加密(实现可追踪性),(c5,c6,c9)接收方公钥的陷门示性承诺(实现可链接性)。注意:上述c1至c9密文中,仅密文c6是群
发送方证明密文有效性,非交互式零知识协议如下:
验证模块130,验证算法ver(params,c):网关输入系统公共参数params、密文c,进行零知识证明nizk,验证密文合法性。如果合法,则放行,否则拒绝。
解密模块140,解密算法dec(params,usk,c):接收方用私钥usk解密。输入系统公共参数params、密文c、私钥usk,输出明文消息m。
任意节点uk,j接收到信息,则用私钥uskk,j=(xk,j,xk,j)打开密文(还能打开子节点的信息,因为可推导出子节点秘钥):
链接模块150,链接算法link(params,lsk,c,c’):审计机构用密钥lsk进行链接运算。输入系统公共参数params、秘钥lsk、两个密文c,c',判断它们是否发送给相同接收方。如果发送给相同接收方,输出1,否则输出0。
对任意两个密文c,c',其中
同理可得:另一密文c'的中间临时密文为
如果e(c10',c6)=e(c10,c6'),则两个密文所包含公钥是相等的,否则不等。
追踪模块160,追踪算法trace(params,tsk,c):追踪机构利用密钥tsk进行追踪运算。输入系统公共参数params、秘钥tsk、密文c,输出接收方公钥upk。
追踪机构输入私钥tsk=(α2,β2),计算出密文中包含的公钥,具有追踪性,其计算如下:
认证模块170,认证算法aut(params,rsk,c):注册机构利用主秘钥rsk进行认证运算。输入系统公共参数params、秘钥rsk、密文c,打开承诺。
对于链接机构提交的密文,如果在追踪机构追踪出节点公钥xk,j后仍然存在争论,则注册机构用主秘钥rsk=(α1,β1)打开消息承诺,其计算如下:
图5是根据本发明一个实施例的可审计可追踪匿名消息接收方法的流程图。
如图5所示,本发明一个实施例的可审计可追踪匿名消息接收方法,包括:s210:通过用户与实体机构中的注册机构交互生成用户的公私钥和公钥证书。s220:对用户在通信系统中的消息进行保密发送。s230:验证通信系统中验证密文消息的合法性。s240:对匿名接收方的密文消息解密。s250:判断任意两个密文消息是否发送给相同接收方。s260:追踪异常密文消息的关联用户。s270:认证异常用户接收的消息内容。
在一些实施例中,实体机构还包括追踪机构、审计机构和分级用户。
步骤s210具体还包括:根据输入的系统安全参数长度,输出系统公共参数;并根据系统公共参数,所述注册机构、追踪机构和审计机构运行各自秘钥生成算法生成各自的公私钥。
步骤s210具体还包括:分级节点在注册机构注册并获得身份,具体用于上级节点输入系统公共参数、私钥、用户身份,生成下级节点的私钥,下级节点输入系统公共参数、由上级节点生成的私钥,生成自己的公钥。
在一些实施例中,步骤s220具体包括:发送方输入接收方公钥和消息,生成消息加密,输入注册机构的公钥和消息,生成消息承诺,输入追踪机构公钥和接收方公钥,生成接收方公钥的加密,输入审计机构公钥和接收方公钥,生成公钥陷门示性承诺,根据所述消息加密、消息承诺、接收方公钥的加密、公钥陷门示性承诺得到密文;步骤s230具体包括:根据系统公共参数和密文,判断密文是否合法;步骤s240具体包括:根据系统公共参数、密文、接收方的私钥进行解密;步骤s250具体包括:根据系统公共参数、审计机构的秘钥、密文和目标密文,判断密文和目标密文是否发送给相同接收方;步骤s260具体包括:根据系统公共参数、追踪机构的秘钥、密文,输出接收方的公钥;步骤s270具体包括:根据系统公共参数、注册机构的主秘钥、密文,打开承诺。
根据本发明的可审计可追踪匿名消息接收方法,将管理员的链接、追踪、认证功能独立,有效避免了传统群管理员权利过于集中的问题,并且,在对异常消息进行审计,对通信接收方的身份进行追踪,对输出信息的内容认证,这样可以实现在不影响用户隐私的前提下发现用户的恶意行为,再进行追踪或打开用户信息,有效实现通信系统中信宿的隐私保护并支持追踪机构对匿名信宿的审计、追踪和认证功能。
需要说明的是,本发明实施例的可审计可追踪匿名消息接收方法的具体实现方式与本发明实施例的可审计可追踪匿名消息接收系统的具体实现方式类似,具体请参见可审计可追踪匿名消息接收系统部分的描述,为了减少冗余,此处不做赘述。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。