首页 / 专利库 / 电脑安全 / 密码体制 / 基于身份的广义多接收者匿名签密方法

基于身份的广义多接收者匿名签密方法

阅读:380发布:2020-05-08

专利汇可以提供基于身份的广义多接收者匿名签密方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于身份的广义多接收者匿名签密方法,用于解决现有多接收者匿名签密方法复杂的技术问题。技术方案是利用sgn()函数作为身份函数,实现广义签密目的。在签名模式中,发送者是确定的而接收者是空缺的,利用符号函数能够消去和接收者有关的代数项,自动切换为签名方案。加密模式和签密模式的情况与签名模式类似,同样按照这种方法实现。更重要的是,本发明还保持了 基础 方案具有的基于身份的 密码体制 的特点,和完全匿名性、认证性、机密性和解密公平性的特点。能够根据需要自适应地切换成签密方法、签名方法或加密方法,与背景技术采用签名、加密和签密三个 算法 相比较,本发明只用一个算法,方法简单,且具有更强的适应性。,下面是基于身份的广义多接收者匿名签密方法专利的具体信息内容。

1.一种基于身份的广义多接收者匿名签密方法,其特征在于包括以下步骤:
步骤一、建立系统参数;这一步由私钥生成中心执行;
选择安全参数k,令G1和G2分别是阶同为q的加法循环群和乘法循环群,其中,q≥2k为一个素数,令P是G1的生成元,选择一个双线性映射e:G1×G1→G2;随机选择一个整数s∈Zq*作为系统主密钥,令Ppub=sP∈G1是系统公钥;此外,随机选择P0∈G1,计算ω=e(Ppub,P0);选择4个密码学单向哈希函数:H1:{0,1}*→G1;
其中,{0,1}*表示任意长度的比特串,l0表示明文的比特长度, 表示阶为q的正整数域;
最后,私钥生成中心公布系统参数params={G1,G2,q,e,P,Ppub,P0,ω,H1,H2,H3,H4},同时将s安全地保存起来;
步骤二、密钥生成;这一步由私钥生成中心执行;
输入params,s和参与者的身份ID∈{0,1}*,私钥生成中心执行如下计算:
计算身份为ID的参与者的公钥:QID=H1(ID);
计算其私钥:dID=sQID;
步骤三、广义匿名签密;
如果|L|=0,这里|L|表示发送者集合的元素个数,则参与算法的发送者集合为空集,算法认为发送者是空缺的;如果|L|>0,算法认为发送者是确定的;对于接收者而言,如果|L’|=0,这里L’表示接收者集合,则接收者集合为空集,算法认为接收者是空缺的;如果|L’|>0,算法认为接收者是确定的;
令IDS为消息的真实发送者,L’={ID1’,ID2’,...,IDn’}表示由发送者挑选的n个接收者的集合;输入系统公开参数params和明文消息M,IDS根据|L|和|L’|是否大于0,分三大类情况计算消息M的密文:
第一类如果|L|>0,此时又细分为两种情况;情况一:|L|>0且|L’|=0,此时算法是签名模式;情况二:|L|>0且|L’|>0,此时算法是签密模式;这两种情况的密文都是按照以下步骤进行计算的:随机构造一个发送者的集合L={ID1,ID2,...,IDm},保证IDS∈L而且即集合L和L’的交集为空;这个集合是用来迷惑消息的接收者和敌手的,防止接收者和敌手获取到发送者的真实身份;
对每一个i∈{1,2,...,m}\{S},其中\表示从集合{1,2,...,m}中除去S元素,随机选择一个整数ui,计算Ri=uiP;
随机选择一个整数 然后计算 U=sgn(|L’|)αP,σ=ωα以及
这里ω是由系统参数给出的,|L’|表示集合L’中的元素个数,M表
示明文;
对每一个i∈{1,2,...,m}\{S},其中\表示从集合{1,2,...,m}中除去S元素,计算hi=H3(W,Ri);
计算 这里,QS是IDS的公钥;最后,令R={R1,R2,...,Rm},
R表示密文的一部分,环签密份额组成的m元向量;
计算V=(uS+hS)dS,这里,hS=H3(W,RS),dS表示IDS的私钥;
计算xj=H4(IDj′)和yj=α(P0+Qj'),这里j=1,2,...,n,而且Qj’表示IDj’的公钥,因此,发送者能够得到n对值:(x1,y1),(x2,y2),...,(xn,yn);
对每个j=1,2,...,n,计算 其中,aj,1,
aj,2,...,aj,n∈Zq;
对每个j=1,2,...,n,计算 然后令T={T1,T2,...,Tn};
定义明文M的密文为C={U,V,W,T,R,L};
第二类如果|L|=0且|L’|>0,此时算法是加密模式:
随机选择 计算U=αP,σ=ωα,
令 其中 表示内容为空;
定义明文M的加密密文是C={U,V,W,T,R,L},其中T的计算和第一类的计算方法相同;
第三类即|L|=0且|L’|=0,算法不做任何运算,返回错误并退出;
步骤四、解签密;
在执行这一步之前需要判断:
如果|L|=0且|L’|>0,则执行下面的解密子算法;
否则如果|L|>0且|L’|=0,则执行验证子算法;
否则,依次执行下面的三个算法;
输入密文C={U,V,W,T,R,L}和系统的公开参数params,每一个接收者IDj’(j=1,
2,...,n)利用其私钥对C进行解密以得到M,有选择地执行下面的三个子算法:
验证子算法:这个子算法是用来检查集合L里发送者的有效性;
计算 其中hi=H3(W,Ri),i=1,2,...,m;
检查等式e(V,P)=e(K,Ppub)是否成立;如果成立,发送者一定在组L中;否则,停止算法;
判断子算法:这个子算法是用来检查接收者是否有解密权限;
检查等式e(V,Qj')=e(K,dj')是否成立;如果成立,IDj’有解密权限并执行下面的解密步骤;否则,IDj’没有解密权限,算法停止;
解密子算法:
计算 其中,xj=H4(IDj’),j=1,2,...,n;
计算σ'=e(Ppub,δj)·e(U,dj')-1;然后,计算 这里,M就是明文。

说明书全文

基于身份的广义多接收者匿名签密方法

技术领域

[0001] 本发明涉及一种多接收者匿名签密方法,特别是涉及一种基于身份的广义多接收者匿名签密方法。

背景技术

[0002] 在面向组的多播与广播服务中,一对多是常用的数据传输方式。基于身份的多接收者签密是实现多播与广播密钥管理的一个关键技术。在该方法中,发送者只需进行一次签密操作,不同的接收者可以从其对应的密文中解签密得到不同的消息。基于身份的多接收者签密可以同时提供认证性和机密性,而且通信效率很高,是一种较为理想的一对多安全数据传输方法。
[0003] 文献“Pang L,Li H.NMIBAS:a novel multi-receiver ID-based anonymous signcryption with decryption fairness.Computing and Informatics,2013,32(3):441-460.”提出了一种新的多接收者匿名签密方法。该方法采用基于身份的密码体制,解决了传统的公钥基础设施(PKI)方法中存在的公钥证书管理问题。该方法实现了发送者和接收者双方的匿名性,能够有效保护参与者身份等隐私信息。此外,该方法具有认证性、机密性以及解密公平性,即能够防止由于在数据传输过程中部分密文的损坏而引起的部分接收者可以解签密,而其他接收者不可以解签密的问题。该文献提出的方法在网络会议等场合下有着广泛的应用。
[0004] 在实际应用中,除了同时提供认证性和机密性,有时仅仅需要提供认证性或机密性中的一种。但是文献提到的方法不能自适应地切换成签密方法、签名方法或加密方法,在文献“韩益亮,杨晓元.ECDSA可公开验证广义签密.计算机学报,2006,29(11):2003-2012.”中,将具有这种特点的方法称为广义签密。广义签密具有极大的灵活性,可以利用一套密码算法有选择地实现认证性和机密性,因此在资源受限的设备上具有广泛的应用前景。但目前的广义签密方案仍工作在单个接收者的环境下,致使其无法应用在多接收者的环境下,另外现有的广义签密方案不能有效保护用户的隐私,导致用户的隐私被轻易泄露。

发明内容

[0005] 为了克服现有多接收者匿名签密方法复杂的不足,本发明提供一种基于身份的广义多接收者匿名签密方法。该方法利用sgn()函数作为身份函数,实现广义签密目的。在签名模式中,发送者是确定的而接收者是空缺的,利用符号函数能够消去和接收者有关的代数项,自动切换为签名方案。加密模式和签密模式的情况与签名模式类似,同样按照这种方法实现。更重要的是,本发明还保持了基础方案具有的基于身份的密码体制的特点,和完全匿名性、认证性、机密性和解密公平性的特点。能够根据需要自适应地切换成签密方法、签名方法或加密方法,与背景技术采用签名、加密和签密三个算法相比较,本发明只用一个算法,方法简单,且具有更强的适应性和更大的灵活性。
[0006] 本发明解决其技术问题所采用的技术方案是:一种基于身份的广义多接收者匿名签密方法,其特点是包括以下步骤:
[0007] 步骤一、建立系统参数。这一步由私钥生成中心执行。
[0008] 选择安全参数k,令G1和G2分别是阶同为q的加法循环群和乘法循环群,其中,q≥2k为一个素数,令P是G1的生成元,选择一个双线性映射e:G1×G1→G2;随机选择一个整数作为系统主密钥,令Ppub=sP∈G1是系统公钥。此外,随机选择P0∈G1,计算ω=e(Ppub,P0);选择4个密码学单向哈希函数:H1:{0,1}*→G1;H2: H3: H4:其中,{0,1}*表示任意长度的比特串,l0表示明文的比特长度。
[0009] 最后,私钥生成中心公布系统参数params={G1,G2,q,e,P,Ppub,P0,ω,H1,H2,H3,H4},同时将s安全地保存起来。
[0010] 步骤二、密钥生成。这一步由私钥生成中心执行。
[0011] 输入params,s和参与者的身份ID∈{0,1}*,私钥生成中心执行如下计算:
[0012] 计算身份为ID的参与者的公钥:QID=H1(ID);
[0013] 计算其私钥:dID=sQID。
[0014] 步骤三、广义匿名签密。
[0015] 如果|L|=0,这里|L|表示发送者集合的元素个数,则参与算法的发送者集合为空集,算法认为发送者是空缺的;如果|L|>0,算法认为发送者是确定的。对于接收者而言,如果|L’|=0,这里L’表示接收者集合,则接收者集合为空集,算法认为接收者是空缺的;如果|L’|>0,算法认为接收者是确定的。
[0016] 令IDS为消息的真实发送者,L’={ID1’,ID2’,...,IDn’}表示由发送者挑选的n个接收者的集合。输入系统公开参数params和明文消息M,IDS根据|L|和|L’|是否大于0,分三大类情况计算消息M的密文:
[0017] 第一类如果|L|>0,此时又细分为两种情况。情况一:|L|>0且|L’|=0,此时算法是签名模式。情况二:|L|>0且|L’|>0,此时算法是签密模式。这两种情况的密文都是按照以下步骤进行计算的:随机构造一个发送者的集合L={ID1,ID2,...,IDm},保证IDS∈L而且即集合L和L’的交集为空。这个集合是用来迷惑消息的接收者和敌手的,防止接收者和敌手获取到发送者的真实身份。
[0018] 对每一个i∈{1,2,...,m}\{S},其中\表示从集合{1,2,...,m}中除去S元素,随机选择一个整数ui,计算Ri=uiP;
[0019] 随机选择一个整数 然后计算 U=sgn(|L’|)αP,σ=ωα以及这里ω是由系统参数给出的,|L’|表示集合L’中的元素个数;
[0020] 对每一个i∈{1,2,...,m}\{S},其中\表示从集合{1,2,...,m}中除去S元素,计算hi=H3(W,Ri);
[0021] 计算 这里,QS是IDS的公钥。最后,令R={R1,R2,...,Rm}。
[0022] 计算V=(uS+hS)dS,这里,hS=H3(W,RS),dS表示IDS的私钥;
[0023] 计算xj=H4(IDj′)和yj=α(P0+Qj'),这里j=1,2,...,n,而且Qj’表示IDj’的公钥,因此,发送者能够得到n对值:(x1,y1),(x2,y2),...,(xn,yn);
[0024] 对每个j=1,2,...,n,计算 其中,aj,1,aj,2,...,aj,n∈Zq;
[0025] 对每个j=1,2,...,n,计算 然后令T={T1,T2,...,Tn};
[0026] 定义明文M的密文为C={U,V,W,T,R,L}。
[0027] 第二类如果|L|=0且|L’|>0,此时算法是加密模式:
[0028] 随机选择 计算U=αP,σ=ωα,
[0029] 令 其中 表示内容为空;
[0030] 定义明文M的加密密文是C={U,V,W,T,R,L},其中T的计算和第一类的计算方法相同。
[0031] 第三类即|L|=0且|L’|=0,算法不做任何运算,返回错误并退出。
[0032] 步骤四、解签密。
[0033] 在执行这一步之前需要判断:
[0034] 如果|L|=0且|L’|>0,则执行下面的解密子算法;
[0035] 否则如果|L|>0且|L’|=0,则执行验证子算法;
[0036] 否则,依次执行下面的三个算法。
[0037] 输入密文C={U,V,W,T,R,L}和系统的公开参数params,每一个接收者IDj’(j=1,2,...,n)利用其私钥对C进行解密以得到M,有选择地执行下面的三个子算法:
[0038] 验证子算法:这个子算法是用来检查集合L里发送者的有效性。
[0039] 计算 其中hi=H3(W,Ri),i=1,2,...,m。
[0040] 检查等式e(V,P)=e(K,Ppub)是否成立。如果成立,发送者一定在组L中;否则,停止算法。
[0041] 判断子算法:这个子算法是用来检查接收者是否有解密权限。
[0042] 检查等式e(V,Qj')=e(K,dj')是否成立。如果成立,IDj’有解密权限并执行下面的解密步骤;否则,IDj’没有解密权限,算法停止。
[0043] 解密子算法:
[0044] 计算 其中,xj=H4(IDj’),j=1,2,...,n。
[0045] 计算σ'=e(Ppub,δj)·e(U,dj')-1。然后,计算 这里,M就是明文。
[0046] 本发明的有益效果是:该方法利用sgn()函数作为身份函数,实现广义签密目的。在签名模式中,发送者是确定的而接收者是空缺的,利用符号函数能够消去和接收者有关的代数项,自动切换为签名方案。加密模式和签密模式的情况与签名模式类似,同样按照这种方法实现。更重要的是,本发明还保持了基础方案具有的基于身份的密码体制的特点,和完全匿名性、认证性、机密性和解密公平性的特点。能够根据需要自适应地切换成签密方法、签名方法或加密方法,与背景技术采用签名、加密和签密三个算法相比较,本发明只用一个算法,方法简单,且具有更强的适应性和更大的灵活性。
[0047] 下面结合具体实施方式对本发明作详细说明。

具体实施方式

[0048] 本实施例中变量及运算的符号说明。
[0049]
[0050]
[0051] 本实例针对面向组的服务订制的应用场合,实施基于身份的广义多接收者匿名签密的方法,下面对本发明作详细说明:
[0052] 本发明基于身份的广义多接收者匿名签密方法具体步骤如下:
[0053] 步骤一、系统参数建立。这一步由私钥生成中心(Private Key Generator,PKG)来执行。
[0054] 选择安全参数k,令G1和G2分别是阶同为q的加法循环群和乘法循环群,其中q≥2k为一个素数,令P是G1的生成元,选择一个双线性映射e:G1×G1→G2;随机选择一个整数作为系统主密钥,令Ppub=sP∈G1是系统公钥。此外,随机选择P0∈G1,计算ω=e(Ppub,P0);选择4个密码学单向哈希函数:H1:{0,1}*→G1;H2: H3: H4:其中,{0,1}*表示任意长度的比特串,l0表示明文的比特长度。
[0055] 最后,私钥生成中心公布系统参数params={G1,G2,q,e,P,Ppub,P0,ω,H1,H2,H3,H4},同时将s安全地保存起来。
[0056] 步骤二、密钥生成。这一步由私钥生成中心(PKG)来执行。
[0057] 输入params,s和云服务系统的参与者身份ID∈{0,1}*,私钥生成中心执行如下计算:
[0058] 计算身份为ID的参与者的公钥:QID=H1(ID);
[0059] 计算其私钥:dID=sQID。
[0060] 步骤三、广义匿名签密。
[0061] 如果|L|=0,这里|L|表示云服务提供者集合的元素个数,则参与算法的云服务提供者集合为空集,算法认为云服务提供者是空缺的;如果|L|>0,算法认为云服务提供者是确定的。对于订阅云服务的用户而言,如果|L’|=0,这里L’表示订阅云服务的用户集合,则订阅云服务的用户集合为空集,算法认为订阅云服务的用户是空缺的;如果|L’|>0,算法认为订阅云服务的用户是确定的。
[0062] 令IDS为云服务的真实提供者,L’={ID1’,ID2’,...,IDn’}表示由云服务提供者挑选的n个用户的集合。输入系统公开参数params和明文消息M,IDS根据|L|和|L’|是否大于0,分三大类情况计算消息M的密文:
[0063] 第一类如果|L|>0,此时又细分为两种情况。情况一:|L|>0且|L’|=0,此时算法是签名模式。情况二:|L|>0且|L’|>0,此时算法是签密模式。这两种情况的密文都是按照以下步骤进行计算的:随机构造一个云服务提供者的集合L={ID1,ID2,...,IDm},保证IDS∈L而且 即集合L和L’的交集为空。这个集合是用来迷惑订阅云服务的用户和敌手的,防止用户和敌手获取到云服务提供者的真实身份。
[0064] 对每一个i∈{1,2,...,m}\{S},其中\表示从集合{1,2,...,m}中除去S元素,随机选择一个整数ui,计算Ri=uiP;
[0065] 随机选择一个整数 然后计算 U=sgn(|L’|)αP,σ=ωα以及这里ω是由系统参数给出的,|L’|表示集合L’中的元素个数;
[0066] 对每一个i∈{1,2,...,m}\{S},其中\表示从集合{1,2,...,m}中除去S元素,计算hi=H3(W,Ri);
[0067] 计算 这里,QS是IDS的公钥。最后,令R={R1,R2,...,Rm}。
[0068] 计算V=(uS+hS)dS,这里,hS=H3(W,RS),dS表示IDS的私钥;
[0069] 计算xj=H4(IDj′)和yj=α(P0+Qj'),这里j=1,2,...,n,而且Qj’表示IDj’的公钥,因此,云服务提供者能够得到n对值:(x1,y1),(x2,y2),...,(xn,yn);
[0070] 对每个j=1,2,...,n,计算 其中,aj,1,aj,2,...,aj,n∈Zq;
[0071] 对每个j=1,2,...,n,计算 然后令T={T1,T2,...,Tn};
[0072] 定义明文M的密文为C={U,V,W,T,R,L}。
[0073] 第二类如果|L|=0且|L’|>0,此时算法是加密模式:
[0074] 随机选择 计算U=αP,σ=ωα,
[0075] 令 其中 表示内容为空;
[0076] 定义明文M的加密密文是C={U,V,W,T,R,L},其中T的计算和第一类的计算方法相同。
[0077] 第三类即|L|=0且|L’|=0,算法不做任何运算,返回错误并退出。
[0078] 步骤四、解签密。
[0079] 在执行这一步之前需要判断:
[0080] 如果|L|=0且|L’|>0,则执行下面的解密子算法;
[0081] 否则如果|L|>0且|L’|=0,则执行验证子算法;
[0082] 否则,依次执行下面的三个算法。
[0083] 输入密文C={U,V,W,T,R,L}和系统的公开参数params,每一个用户IDj’(j=1,2,...,n)利用其私钥对C进行解密以得到M,可以有选择地执行下面的三个子算法:
[0084] 验证子算法:这个子算法是用来检查集合L里云服务提供者的有效性。
[0085] 计算 其中hi=H3(W,Ri),i=1,2,...,m。
[0086] 检查等式e(V,P)=e(K,Ppub)是否成立。如果成立,云服务提供者一定在组L中;否则,停止算法。
[0087] 判断子算法:这个子算法是用来检查用户是否有解密权限。
[0088] 检查等式e(V,Qj')=e(K,dj')是否成立。如果成立,IDj’有解密权限并执行下面的解密步骤;否则,IDj’没有解密权限,算法停止。
[0089] 解密子算法:
[0090] 计算 其中,xj=H4(IDj’),j=1,2,...,n。
[0091] 计算σ'=e(Ppub,δj)·e(U,dj')-1。然后,计算 这里,M就是明文。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈