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
   284   285   286   287   288   289   290   291   292   293   294