APK重签名

2024-05-18

APK重签名(精选3篇)

APK重签名 篇1

0 引 言

在代理重签名中,一个拥有重签名密钥的半可信代理者可将受托者(delegatee)的签名转换为委托者(delegator)对同一消息的签名(也称重签名),但这个代理者不能单独生成受托者或委托者的任何签名[1]。根据转换的方向,代理重签名分为单向和双向两类。代理重签名在简化证书管理、管理群签名、提供遍历的路径证明、构造审查系统和数字版权管理系统等方面有广泛的应用前景[2]。

盲代理重签名结合了代理重签名和盲签名的特性,使得代理者在生成委托者的签名时并不知道所转换消息的具体内容。盲代理重签名的公开文献比较少;然而,已有的盲代理重签名方案几乎都是双向的[3]。单向盲代理重签名比双向盲代理重签名更具有优越性,因为后者可以用两个不同的前者来构成,而前者不能由后者构成。Canetti等人发现,一个在随机预言模型下可证安全的密码系统,当使用一个真正哈希函数实现时,却是完全不安全的。所以,研究标准模型下可证安全的单向盲代理重签名签名方案更具有实际意义。本文提出了一个单向盲代理重签名方案,并在标准模型下证明了新方案的安全性。

1 预备知识

1.1 双线性对

G1和G2是两个阶为素数p的循环群,gG1的生成元,定义两个群G1和G2上的双线性映射e:GG1→G2,且满足以下性质的双线性映射为双线性对:

(1) 双线性 对任意的a,bZp,有e(ga,gb)=e(g,g)ab

(2) 非退化性 对任意的g1,g2∈G,满足e(g1,g2)≠1G2,这里1G2是G2的单位元。

(3) 可计算性 对任意的g1,g2∈G1,存在一个有效的算法计算e(g1,g2)。

1.2 复杂性假设

离散对数(DL)问题[4]:设G1是阶为素数p的循环群,gG1的生成元,则群G1上的离散对数问题是:已知g,gaG1,计算aZp

定义1 离散对数假设 如果没有一个概率多项式时间算法在时间t内以至少ε的概率解决群G1上的离散对数问题,则称群G1上的(t,ε)-DL假设成立。

计算性Diffie-Hellman(CDH)问题[5]:设G1是阶为素数p的循环群,gG1的生成元,群G1上的CDH问题是:已知g,ga,gbG1,其中ab是从Zp中随机选取的,计算gab

定义2 计算性Diffie-Hellman假设 如果没有一个概率多项式时间算法在时间t内以至少ε的概率解决群G1上的CDH问题,则称群G1上的(t,ε)-CDH假设成立。

2 盲代理重签名的形式化定义

定义3 盲代理重签名 盲代理重签名有4个参与方:用户(签名申请者)、受托者、代理者和委托者。一个盲代理重签名方案BPRS=(Setup,KeyGen,ReKey,Sign,Blind,ReSign,Unblind,Verify)由以下八个算法组成:

Setup是系统参数生成算法 输入一个安全参数1k,输出系统的公开参数params

KeyGen是密钥生成算法 输入系统参数params,输出用户的公钥/私钥对(pk,sk)。

ReKey是重签名密钥生成算法 输入一个受托者和委托者的公私钥对(pkA,skA)和(pkB,skB),输出一个重签名密钥rkAB。代理者使用rkAB可将受托者的签名转换为委托者的签名。

Sign是签名生成算法 输入一个用户请求签名的消息m和一个私钥sk,输出一个消息m的签名σ,并发送给用户。可用对应的公钥pk来验证签名σ的合法性。

Blind是盲化算法 输入一个盲化因子λ,一个消息m,一个公钥pkA和一个签名σA,该算法首先验证σA的合法性,如果Verify(pkA,m,σA)=1,输出一个盲化后的消息m′和一个对应于公钥pkA的消息m′的盲化签名σA′,并发送给代理者;否则,输出⊥。

ReSign是重签名生成算法 输入一个重签名密钥rkAB,一个盲化消息m′,一个公钥pkA和一个签名σA′,该算法首先验证σA′的合法性,如果Verify(pkA,m′,σA)=1,输出一个对应于公钥pkB的消息m′的重签名σB′,并发送给用户;否则,输出⊥。

Unblind是脱盲算法 输入一个盲化消息m′,一个公钥pkB,一个签名σB′和Blind中的盲化因子λ,该算法首先验证σB′的合法性,如果Verify(pkB,m′,σB′)=1,输出脱盲后的签名σB;否则,输出⊥。这里σB是委托者对消息m的盲代理重签名。

Verify是签名验证算法 输入一个消息m,一个公钥pk和一个签名σ,如果σ是对应于公钥pk的消息m的合法签名,输出1;否则,输出0。

定义4 盲代理重签名的不可伪造性 在一个盲代理重签名方案BPRS=(Setup,KeyGen,ReKey,Sign,Blind,ReSign,Unblind,Verify)中,如果攻击者进行有限次数的选择消息询问后,最终不能产生一个新消息的有效签名,则称BPRS方案在适应性选择消息攻击下能抵抗存在性伪造。

3 单向盲代理重签名方案

新方案有4个参与方:用户(签名申请者)、受托者、代理者和委托者,具体描述如下:

Setup 输入一个安全参数1k,选择两个阶为素数p的循环群G1和G2,gG1的生成元,定义一个双线性映射e:GG1→G2。假定m是一个nm比特长的签名消息,可用一个抗碰撞的哈希函数H1:{0,1}*→{0,1}nm来实现。在G1中随机选取nm+2个元素(h,u,u1,…,unm)。公开系统参数params:=(G1,G2,p,e,g,h,u,u1,…,unm)。

KeyGen 输入系统参数params,选取随机数xZp*,输出用户的公钥/私钥对(pk, sk)=(gx,x)。

ReKey 输入一个受托者的公钥pkA=gα和一个委托者的私钥skB=β,输出一个重签名密钥rkAB=(pkA)1/skB=gα/β

Sign 输入一个受托者的私钥skA=α和一个用户申请签名的消息m=(m1,…,mnm)∈{0,1}nm,输出一个消息m的签名σA=(σA,1,σA,2)=(hαω¯r,gr),这里rRZpω¯=ui=1nm(ui)mi

● Blind 输入一个消息m,一个公钥pkA和一个受托者的签名σA=(σA,1,σA,2),用户首先验证σA的合法性,若Verify(pkA,m,σA)=1,然后选取一个盲因子λ∈Zp*,计算盲化消息ω¯=ω¯gλ和盲化签名σA′=(σA,1′,σA,2′)=(σA,1·σA,2λ,σA,2),将(ω′,σA′)发送给代理者;否则,输出⊥。

● ReSign 输入一个重签名密钥rkA→B,一个盲化消息ω′,一个公钥pkA和一个签名σA′=(σA,1′,σA,2′),该算法首先验证σA′的合法性:e(σA,1´,g)=e(pkA,g2)e(σA,2´,ω¯)。如果验证等式不成立,输出⊥;否则,选取r′,t∈Zp*,输出一个ω′的重签名σB´=(σB,1´,σB,2´,σB,3´,σB,4´)=((σA,1´)t(ω¯)r,(σA,2´)tgr,(pkA)t,(rkAB)t)=(htα(ω¯)rβ/α+r,grβ/α+r,gtα,gtα/β)

若令r˜=rβ/α+rt˜=tα/β,则σB´=(σB,1´,σB,2´,σB,3´,σB,4´)=(ht˜β(ω¯)r˜,gr˜,gt˜β,gt˜)

Unblind 输入一个盲化消息ω′,一个公钥pkB和一个重签名σB′=(σB,1′,σB,2′,σB,3′,σB,4′),用户首先验证σB′的合法性:e(σB,1´,g)=e(σB,3´,h)e(σB,2´,ω¯)e(σB,3′,g)=e(σB,4′,pkB);如果验证等式不成立,输出⊥;否则,输出委托者对消息m的盲代理重签名σB=(σB,1,σB,2,σB,3,σB,4)=(σB,1′·(σB,2′)-λ,σB,2′,σB,3′,σB,4′)。

Verify 输入一个nm比特长的消息m和一个公钥pk,如果一个待验证的签名σ=(σ1,σ2)且e(σ1,g)=e(pk,h)e(σ2,ω¯),输出1;如果签名σ=(σ1,σ2,σ3,σ4)且e(σ1,g)=e(σ3,h)e(σ2,ω¯)e(σ3,g)=e(σ4,pk),输出1;否则,输出0。

4 新方案的安全性分析

在新方案中,受托者不参与重签名密钥的生成过程,委托者不参与盲代理重签名的生成过程。因为重签名密钥rkAB=gα/β,所以新方案是单向的。代理者只需保存一个重签名子密钥rkAB,所以新方案满足密钥最优性。盲因子λ在盲代理重签名的生成中总是存在,代理者无法将获取的中间数据和脱盲后的签名联系起来。用户将签名消息m相关的值ω盲化处理后发给代理者,代理者想通过ω¯=ω¯gλ求得ω并由此辨认出原来的消息m,则面临求解离散对数问题。所以,新方案是无链接的,由盲签名的定义可知,新方案具有盲性。

定理1 在标准模型下,新方案在计算性Diffie-Helllman假设下是不可伪造的。

证明:下面证明新方案是有限代理安全、受托者安全、委托者安全和外部安全的。

有限代理安全 如果一个攻击者A1以一个不可忽略的概率ε攻破新方案,那么我们可构造另外一个攻击者B1以概率ε/(4qS(nm+1))解决在群G1上一个CDH问题实例(g,A=ga,B=gb),这里qS是A1询问签名生成预言机的次数,攻击者B1根据下面的过程来模拟新方案的安全游戏。

建立 攻击者B1首先设置lm=2(qS+qRS),并选择一个随机数km,满足0≤kmnmlm(nm+1)<p。任选nm+1个不大于lm的正整数x′,x1,…,xnm,在Zp*中选择nm+1个随机数y′,y1,…,ynm。设置参数h=B=gb,g1=A=ga,u=hx′-lmkmgy′,ui=hxigyi,i=1,…,nm。对任意消息m=(m1,…,mnm)∈{0,1}nm,定义F(m)=x-lmkm+i=1nmmixiJ(m)=y+i=1nmmiyi,这里ω¯=ui=1nm(ui)mi=hF(m)gJ(m)

查询 因为攻击者A1能独立进行盲代理重签名方案中的消息盲化和脱盲操作,所以A1可以自适应性地询问攻击者B1建立的如下预言机:

● OKeyGen是密钥生成预言机 攻击者B1选择一个随机数xiZp*,计算公钥pki=Axi=gaxi,如果攻击者A1询问的用户已被攻陷,B1返回(pki,ski)=(gaxi,xi)给A;否则,B返回pki给A。

● OSign是签名生成预言机 攻击者A1输入一个公钥pki和一个消息m,如果F(m)=0(modp),攻击者B1不能计算出签名σ,只能退出模拟宣告失败;否则,B1选择一个随机数rZp,计算签名σ=(σi,1,σi,2)=(g1-J(m)/F(m)ω¯r,g1-1/F(m)gr)。如果令r˜=r-a/F(m),那么OSign产生的签名与Sign算法生成的签名是一致的,这里σi,1=g1-J(m)/F(m)ω¯r=ha(hF(m)gJ(m))r-a/F(m)=gabω¯r˜σi.2=g1-1/F(m)gr=gr-a/F(m)=gr˜

● ORekey是重签名密钥生成预言机 攻击者A1输入两个不同的公钥pki和pkj,如果pki和pkj均已被攻陷或均未被攻陷,那么攻击者B1首先询问预言机OKeyGen获得(pki, pkj)对应的私钥(xi, xj),然后将rkij=gxi/xj=gaxi/axj=(gaxi)1/axj=(pki)1/skj返回给A1;否则,输出⊥。

伪造 如果攻击者B1在经过上面的一系列预言机的查询后都没有失败,那么攻击者A1将以至少ε的概率输出一个消息m*,公钥pk*和一个伪造签名σ*=(σ1*,σ2*)或σ*=(σ1*,σ2*,σ3*,σ4*)。若F(m*)≠0(modp),则攻击者B1退出,模拟宣告失败;否则,对于r*∈Zp,该伪造必须满足:

σ*=(gabω¯r*,gr*)=(gab(hF(m*)gJ(m*))r*,gr*)=(gab+J(m*)r*,gr*)=(σ1*,σ2*)

为了解决CDH实例(g,ga,gb),攻击者B1计算(σ1*)(σ2*)-J(m*)=gab

如果攻击者B1完成了整个模拟过程,那么作为签名预言机的输入消息mm*必须满足F(m)≠0(modp)和F(m*)=0(modp)。攻击者B1不退出模拟的概率分析与Smb方案[5]的安全性分析完全相同。即如果攻击者A1以至少ε的概率攻破新方案,那么攻击者B1以至少ε/(4qS(nm+1))的概率解决CDH问题实例。

受托者安全 与有限代理安全的分析基本相同,主要区别如下:

● OKeyGen 设目标用户0的公钥pk0=A=ga,h=B=gb。攻击者B2选择一个随机数xiZp*,计算公钥pki=gxi(1≤iN),B2返回(pki,ski)=(gxi,xi)给A2;即攻击者A2知道除用户0外的所有其它用户的私钥。

● OSign 攻击者A2能计算任意用户i≠0的所有签名,当A2询问目标用户0对消息m的签名时,攻击者B2对攻击者A2的模拟过程与攻击者B1对攻击者A1的模拟过程基本相同。

最后,A2成功输出一个签名伪造,B2也能与B1一样解决一个CDH问题实例。

委托者安全 如果一个攻击者A3以一个不可忽略的概率ε攻破新方案,那么我们可构造另外一个攻击者B3以概率ε/(4qS(nm+1))解决在群G1上一个mCDH问题实例,这里qS是A1询问签名生成预言机的次数。给定(g,A=ga,A′=g1/a,B=gb),攻击者B3的目标是计算gab。与受托者安全的分析基本相同,主要区别如下:

● ORekey 攻击者A3输入两个不同的公钥pkipkj,攻击者B3首先询问预言机OKeyGen获得(pki, pkj)的私钥(xi, xj),如果i≠0,j≠0,计算rkij=gxi/xj;如果i=0,j≠0,计算rk0→j=A1/xj=ga/xj;如果i≠0,j=0,计算rki→0=(A′)xi=gxi/a;然后B3将rkij返回给A3。

最后,A3成功输出一个消息m*的签名伪造σ*=(σ1*,σ2*)或σ*=(σ1*,σ2*,σ3*,σ4*)。如果F(m*)≠0(modp),B3宣布退出;否则,该伪造必须满足(σ1*,σ2*)=(gab+J(m*)r*,gr*),B3能计算出gab=(σ1*)(σ2*)-J(m*)。

外部安全 与有限代理安全的分析基本相同,主要区别如下:

● OKeyGen 设目标用户i*的公钥pki*=A=ga,h=B=gb。攻击者B4选择一个随机数xiZp*,计算公钥pki=gxi(ii*),B4返回(pki,ski)=(gxi,xi)给A4;即攻击者A4知道除用户i*外的所有其它用户的私钥。

● OSign 攻击者A4计算任意用户ii*的所有签名;当A4询问目标用户i*对消息m的签名时,B4对A4的模拟拟过程与B1对A1的操作完全相同。

● OResign是重签名生成预言机 攻击者A4输入两个不同的公钥pkipkj,一个盲化消息ω′和一个盲化签名σi′,如果Verify(pki,ω′,σi′)=0或i=i*时F(m*)=0,攻击者B4输出⊥;否则,B4返回给A4一个ω′的重签名σB′=ReSign(rkij,pki,ω′,σi′)。

最后,A4成功输出一个签名伪造,B4也能类似B1解决一个CDH问题实例。

5 结 语

本文将盲签名的特性与单向代理重签名的特性进行有效融合,提出了一个安全的单向盲代理重签名方案,并在标准模型和CDH假设下给出了其安全性证明。

参考文献

[1]Blaze M,Bleumer G,Strauss M.Divertible Protocols and Atomic ProxyCryptography[C]//Proceedings of EUROCRYPT 1998.LNCS,Vol.1403,1998:127-144.

[2]Ateniese S,Hohenlerger S.Proxy Re-signatures:New Definitions,Algo-rithms and Applications[C]//Proceedings of ACM Conference onComputer and Communications Security,2005:310-319.

[3]Deng Y Q,Du M H,You Z L,et al.A Blind Proxy Re-Signatures Scheme Based on Standard Model[J].Journal of Electronics&Infor-mation Technology,2010,37(05):1119-1223.

[4]Libert B,Vergnaud D.Multi-Use Unidirectional Proxy Re-Signatures[C]//Proceedings of ACM Conference on Computer and Communica-tions Security,2008:511-520.

[5]Shao J,Cao Z F,Wang L,et al.Proxy Re-signature Schemes without Random Oracles[C]//Proceedings of INDO-CRYPT2007,LNCS,Vol.4859,2007:197-209.

APK重签名 篇2

2.结婚的日子我已经定好了,现在就差定新郎了…

3.“我干了,你随意!”挂在阳台晾晒的T恤对外套说。

4.那年我兵临城下而你却隔岸观火

5.你我之间本无缘分全靠我死撑

6.那年我兵临城下而你却隔岸观火

7.说我丑的人,其实我也挺心疼你的,年纪轻轻的,眼就瞎了!

8.吃,我所欲也;瘦,亦我所欲也;二者不可得兼,等我吃完再说。

9.辣条配酒我配手机。

10.我能想到最烂漫的事,就是和你一起卖卖电脑。

11.在我脑里没有离开这个词当所有的离去都是滚。

12.睡觉就像是充电但我重来没满电过

13.每次在外面吃东西的气候偶尔看见一个女神,我都会很拽的回过头假装不在乎,然后掏出手机搜索附近的人

14.老师问:“滴水之恩相于涌泉相报是什么意思”同学:“就是别人弹你一滴水,你拿一桶水泼死他”

15.倩:中分看鼻子齐刘海看脸型斜刘海看气质无刘海看五官我适合蒙面

16.老头近视度,某日上课指着我喊:站着干嘛,给我坐下。我觉得莫名其妙,转头才发现墙上挂着一件大衣!

17.“你神经病啊”“对啊”“那你怎么不去看病”“病好了我就不会喜欢你了”

18.女人当面评论男人的胸,大可肆无忌惮;男人若如此,则是流氓。

19.接下来,我要心无杂念,好好学习。为中考而战。你们信么,反正我不信

实用的前向安全门限重签名方案 篇3

1 前向安全的门限数字签名方案

1.1 初始化阶段

1.1.1 选择循环子群

密钥分发中心首先选择n=P1P2=(2qp1'+1)(2qp2'+1)和一个阶为q的循环子群,g∈QRn(即gq=1mod n),QRn为模n的平方剩余集合,且p1=p2=3mod 4,其中p1,p2,p1',p2',q都为安全的大素数,然后选择一对整数(e,d),分别作为基于合数n的RSA公私钥,h()为一个安全的单向散列函数。

1.1.2 系统选择t-1阶秘密多项式

最后,公布(n,q,g,h,Y)。

1.1.3 秘密分量的分发

设A={u1,u2,…,ul}是群组t个成员,其身份标示IDi。对每个群组成员,密钥分发中心通过秘密信道把σi发送给每个ui作为成员秘密分量。

1.1.4 密钥的更新

将群组签名整个有效期分为T个时间段,从第一个时间段开始,群组成员根据前一时间段的密钥计算出目前时间段的密钥。

式(1)中,σi,j表示成员ui的第j时间段密钥,σi,j-1表示成员ui的第j-1时间段密钥,初始密钥σi,j=σi;j=1,2,…,T。更新完成后,销毁前一周期密钥σi,j-1。

1.2门限重签名的产生

1.2.1 部分签名产生

设群组集合A中t各成员B={u1,u2,…,ut}相对消息M产生代表群组的门限重签名,B中成员一起执行下列操作:

每个ui(i=1,2,3,…,t)选择一个随机数βi,计算:

然后,每个ui把{P,si,zi}发送给群签名合成者。

1.2.2 门限重签名的产生

群组签名合成者计算:

最后,{j,P,Z,S}为消息M的门限签名,j为第j个签名时间段。

1.2.3 门限签名的验证

任何验证者都能通过计算下式验证{j,P,Z,S}就是消息M的门限重签名。

2 方案安全性分析

2.1{j,P,Z,S}是有效的前向安全门限签名

证明:为了证明{j,P,Z,S}是有效的前向安全门限签名,则需要证明式(6)成立。

根据式(3)、式(4)和式(5)得:

根据式(5)和上式得:

则{j,p,Z,S}是有效的前向安全门限签名。

2.2 方案具有前向安全的特性

方案的前向安全是基于强RSA假定。

强RSA假定已知n和,n为两个大素数的乘积,则找出一个,且满足y=xβmod n(β>1)是一个非常困难的问题。

如果攻击者已获得群组签名者ui的第j时间段密钥σi,j,企图通过n计算第j时间段密钥σi,j-1,这是一个强RSA假定问题,所以攻击者无法通过σij计算出σi,j-1,也就无法伪造第k周期签名(k

2.3 方案能抵抗伪造攻击

非法用户企图通过式(4)和式(5)求S',这将面临大整数分解和单向散列函数求逆的问题。少于t个合法的参与者不能代表群组进行有效签名,t个成员无法获得系统秘密参数,任何一组成员不可以假冒另一组成员对消息生成有效的门限签名,而事后不负任何责任。这是由Shamir的秘密共享方案的安全性来保证的。

2.4 方案具有实用性

方案将求(Lagrange相关系数)通过计完成,在不知道RSA秘密参数(p-1)(q-1)的情况系不用求逆计算,因为整除P,这样的设计将方案具有实用性。

3 结束语

就日前已有的前向安全门限数字签名存在理论错误的缺陷,提出一种新的实用的前向安全门限重数字签名方案。降低门限签名者密钥泄漏造成的损失,将群组成员密钥按时间段进行更新,群组公钥保持不变。即使第k时间段的签名密钥被泄露,攻击者无法推出第k-1时间段的签名密钥,也无法伪造第k时间段之前的签名。前向安全的门限签名为签名密钥提供了强大的保护,使签名密钥被泄露所造成的损失降到最小。基于强RSA的假设,证明方案可抵抗非法签名者的伪造攻击和具有前向安全性和实用性。

参考文献

[1] Desmedt Y,Frankel Y.Threshold cryptosystems.In:Brassard G,ed. Advances in Cryptology——CRYPTO' 89 Proceedings Lecture Notes in Computer Science 435 Berlin:Springer Verlag,1990:307-315

[2] Anderson R..Invited lecture.In:Proceedings of the 4th ACM Conference on Computer and Communications Security,Zurich,Switzerland, 1997:1-7

[3]于佳.标准模型下的前向安全多重签名:安全模型和构造.软件学报,2010;21(11):2910-2923

[4]张明武.密文匿名的高效前向安全短签密方案,北京邮电大学学报,2010;33(4):131-135

[5]米军利,张建中.前向安全的门限签名方案.计算机工程与应用,2009;45(1):124-125

[6]程曦,戚文峰.一种向前安全的门限代理签名方案.信息工程大学学报,2006;4(7):314-318

上一篇:检验程序下一篇:粮食生产成本