Page 289 - 《软件学报》2021年第11期
P. 289
王利朋 等:应用区块链的多接收者多消息签密方案 3615
〈
(1) 若ν i =0,挑战者ℑ 选取随机数 ,h γ ′∈ Z ,计算得到U′ = γ ′ P P h− ,挑战者ℑ 添加 ID ,U′ ,ν 〉 到 L pk 中,并
*
1 i p i i pub 1 i i i
将公钥信息U′ 发送给敌手 ,同时添加 ID〈 i ,,γ ν ′ i i 〉 到 L sk 中,添加 ID〈 i ,U h 〉 到 L 1 中;
, ′
1
i
1
i
І
(2) 若ν i =1,选取 b∈ Z 以及 h ∈ Z ,令U′ = bP ,挑战者ℑ 添加 ID〈 ,U′ ,ν 〉 到 L pk 中,添加 ID〈 ,U h 〉 , ′ 到 L 1 中,
*
*
p 1 p i i i i i i 1
并返回公钥信息 κ′ U′ = i 给敌手 .
1
І
, ′
H 1 询问:挑战者ℑ收到敌手 询问 H 1 中信息时,若存在 ID〈 i ,U h 〉∈ L ,则返回相应的 h 1 给敌手 ;否则,ℑ
1
1
1
i
І
1
І
1
对 ID i 进行公钥生成询问后,返回 L 1 中的 h 1 给敌手 .
І
1
公钥替换询问:敌手 可以在任何时间点随机生成用户 ID 对应的公钥κ′,并替换其合法公钥κ.
І
1
私钥生成询问:当挑战者ℑ 收到敌手 询问 ID i 的私钥信息时,若存在 ID〈 i ,γ ′〉∈ L ,则返回 γ ′ 给敌手 ;否
1
І
i
sk
І
i
则,对 ID i 执行公钥生成询问,获得相应的公钥信息 ID〈 i ,U′ i ,ν 〉 .若ν i =0,则此时已经成功生成对应的私钥信息,从
i
1
〈
L sk 中获取 ID i ,,γ ν ′ i i 〉 ,并返回私钥信息 γ ′ 给敌手 ;若ν i =1,挑战者ℑ 终止游戏并退出.
І
i
签密询问:当挑战者ℑ 收到敌手 关于 ID ID〈 s , R = {ID 1 R ,ID R 2 ,...,ID R ρ },M = { ,m m 2 ,...m ρ }〉 的签密询问时,挑
1
І
1
战者ℑ 首先从 L pk 中查询 ID s 所对应〈ID s ,U s ,ν s 〉信息,并执行如下操作:若ν s =1,则ℑ 终止模拟,并退出游戏;若ν s =0,
i
则ℑ 对 ID s 执行私钥生成询问,获取γ s 信息,对 ID (1≤ ≤ ) ρ 执行公钥生成询问,并获取 ID〈 ,U 〉 信息,然后运
i R i R i R
1
行 SignCrypt 算法,获取密文信息 ID〈 ,C = {c ,c ,...,c }〉 ,并将密文发送至敌手 .
i R 1 R R 2 R ρ І
1
解签密询问:当挑战者ℑ 收到敌手 关于 ID s , ID 和密文 c 的解签密询问时,挑战者ℑ 首先对 ID s 执行公
І
i R
i R
钥生成询问,获得〈ID s ,U s ,ν s 〉信息,并根据ν s 的数值进行如下的计算.
〈
1
(1) 如果 ID ,U′ ,ν 〉 ∈ L 且ν s =0,则ℑ 对密文信息执行 UnSignCrypt 算法,并返回结果给敌手 .
s s s pk І
〈
(2) 如果 ID ,U′ ,ν 〉 ∈ L 且ν s =1,对 ID 执行私钥生成询问,获取 γ 信息,对 ID s 执行公钥生成询问,并获
s s s pk i R i R
, ′
s
i R
〈
取 ID ,U′ ,ν 〉 信息,查询 H 1 获得 ID〈 ,U′ ,h 〉∈ L , ID〈 ,U h 〉 ∈ L ,然后计算得到 X ′ A γ ′ = ,K′ =
s s s i R i R 1 1 s s 1 1 i R s i R J R i
s
′
)
HID , X ′ ,计算得到 m η′ & c′= K′ ⊕ .若执行校验等式η′ P = A h ′ i R + U′ + P h 成立,则返回明文
(
3 i R i R i R i R i R i R s 1 s pub 1
1
信息 m′给敌手 ;否则密文信息无效,游戏退出.
І
〈
(3) 如果 ID ,U′ ,ν 〉 ∉ L ,则说明公钥被替换,此时以 ID 和 ID s 为索引,搜索 H 1 ,L pk 和 L sk ,分别得到
s s s pk i R
, ′
〈
〈 ID U ,ν 〉 , ID ,U′ ,h 〉 i R L 〈 , ID ,U h 〉 , ′ ∈ s ∈ L 和 γ 信息,计算得到 X ′ = A γ ′ ,K′ = H (ID , X ′ ) ,计
s s s i R i R 1 1 s s 1 1 i R i R s i R J R i 3 i R i R
s
算得到 m′ ||η′ c′= K′ ⊕ .若执行校验等式η′ P = A h ′ i R + U ′ + P h 成立,则返回明文信息 m′给敌手
i R i R i R i R s 1 s pub 1
1
;否则密文信息无效,游戏退出.
І
• 挑战阶段
1
1
,
敌手 选取一对等长的明文信息(m 0 ,m 1 )以及两个身份 (ID ID i R ) ,敌手 将挑战信息发送至ℑ .ℑ 收到敌
s
І
І
手发送的明文信息和身份信息后,首先,ℑ 对 ID s 执行公钥生成询问,挑战者ℑ 可获得 L pk 中该用户对应身份信息
〈 ID s ,U′ s ,ν 〉 s .然后挑战者ℑ 执行如下操作:如果ν s =0,则ℑ 终止游戏,退出模拟过程;若ν s =1,挑战者随机选择
*
κ∈{0,1},然后随机选择 α ∈ Z ,并计算得到 A s =α s P.对于接收者 ID i R (1≤ ≤ ) ρ 以及发送者 ID s ,计算 h =
i R
i
p
1
s
*
HID i R ,U i R ) ,选择 b∈ Z ,计算得到 U i R = bP ,使其满足 γ i R P = P h + pub 1 i R U ,然后计算 X = α s (P h + pub 1 i R U i R ),K = i R
(
p
i R
1
1
,
(
HID i R , X i R ),η i R γ = s + α s h 1 i R ,c = i R (m κ ||η i R ) ⊕ K ,并将密文{cU i R }发送敌手 .
i R
3
І
i R
• 猜测阶段
1
1
−
,
敌手 收到{cU i R }后,猜测κ′∈{0,1}:如果κ′=κ,则ℑ 可输出 CDH 的解为 abG = (γ i R − u i R )U h ;否则,ℑ 没
1
i R
І
i R
1
有解决 CDH 问题.挑战者ℑ 模拟了真实场景下攻击模式,若挑战者ℑ 在整个游戏过程中并未终止,而且敌手
І
以不可忽略的优势ε攻破系统的机密性,则挑战者ℑ 即可输出 CDH 问题的有效解.
ξ
令事件 P 表示敌手 未对挑战者身份 ID s 进行私钥生成询问,即 Pr( ) 1P =− ;事件 P′表示签密阶段未结
1
І k
2