Page 460 - 《软件学报》2026年第2期
P. 460

毕昌兵 等: 5G  车联网中基于区块链的半分布式消息认证加密方案                                                939


                 接收者, 其中   KGC  由各区域的    VMC  充当, 发送者和接收者均是车辆. 无证书签名算法形式化定义为如下                     7  个子
                 算法.
                    1) 系统参数生成算法: 输入安全参数          τ, 返回系统参数    params、系统公钥    P Pub  和系统私钥  sk.
                                                                                    ∗
                    2) 秘密值生成算法: 输入地址       Addr k 、系统参数   params, 返回   Addr k  的秘密值  x k ∈ Z .
                                                                                    q
                    3) 部分密钥生成算法: 输入地址        Addr k 、系统参数   params 和系统私钥   sk, 返回  Addr k  的部分私钥  py k .
                                                                                        ∗     Addr k  的私钥
                    4) 私钥生成算法: 输入地址         Addr k 、系统参数  params、部分私钥     y k  和秘密值  x k ∈ Z , 返回
                                                                                        q
                 SK k = (x k ,y k ).
                                                                                        ∗     Addr k  的公钥
                    5) 公钥生成算法: 输入地址         Addr k 、系统参数    params, 部分公钥   Y k  和秘密值   x k ∈ Z , 返回
                                                                                        q
                 PK k = (X k ,Y k ).
                    6) 签名算法: 输入系统参数       params、消息  m k 、发送者的地址    Addr k  及其私钥   SK k , 返回签名  σ k .
                    7) 验证算法: 输入系统参数       params、签名  σ k 、发送者的地址    Addr k  及其公钥  PK k , 若验证通过, 则返回  1; 否
                 则返回   0.

                  2.3   安全模型
                    参照  Al-Riyami 等人  [26] 所定义的安全模型, 在无证书密码机制中, 主要面临的敌手为类型                I 的敌手  A I  和类型
                 II 的敌手  A II , 通过模拟挑战者和敌手之间的两个游戏来证明方案的安全性. 两种类型的敌手分别介绍如下.
                    ● 类型  I: 敌手  A I  可以替换合法用户的公钥, 但不知道系统主密钥, 也指代恶意用户.
                    ● 类型  II: 敌手  A II  可以获得系统主密钥, 但不能替换合法用户的公钥, 也指代恶意              KGC.
                    游戏  1: 定义为敌手   A I  和挑战者  C  之间的一个游戏. 在该游戏中, 将哈希函数         H 1  和  H 2  看作随机预言机  (random
                 oracle, RO). 游戏包括  3  个阶段, 过程如下.

                    1) 初始化阶段: 挑战者     C  输入安全参数    τ 进行系统初始化, 生成系统公/私钥, 以及系统参数,             C  将系统参数发
                 送给敌手   A I .
                    2) 询问阶段:   A I  可以执行如下询问.
                    ●   H 1  询问: 当   A I  选择  (Addr,X,Y,P Pub ) 执行该询问时,   C  选择一个随机数  α, 并发送给  A I .
                    ●   H 2  询问: 当   A I  选择  (X,Y,K,m,t) 执行该询问时,  C  选择一个随机数  β, 并发送给  A I .

                    ● 部分私钥询问: 当     A I  选择  Addr 执行该询问时,  C  生成   Addr 的部分私钥  (Y,cy), 并发送给  A I .
                    ● 私钥询问: 当   A I  选择  Addr 执行该询问时,  C  生成   Addr 的私钥  SK, 并发送给  A I .
                    ● 公钥询问: 当   A I  选择  Addr 执行该询问时,  C  生成   Addr 的公钥  PK, 并发送给  A I .
                    ● 公钥替换询问:     A I  可以选择新的秘密值     x, 计算新公钥   PK , 并替换任意   Addr 的原有公钥    PK Addr .
                                                                  ∗
                    ● 签名询问: 当   A I  选择  (Addr,m) 执行该询问时,  C  产生一个对消息   m 的签名, 并发送给    A I .
                    3) 伪造阶段: 经过概率多项式次询问后,           A I  选择一个消息   m  和一个目标地址     Addr , 伪造签名  σ , 然后向  C
                                                                                     ∗
                                                                   ∗
                                                                                                ∗
                            ∗
                          ∗
                 提交  <Addr ,σ > 作为挑战. 如果下面的     3  个条件同时成立, 则称     A I  在游戏  1  中获胜.
                    a)  A I  没有使用  Addr  执行过部分私钥询问.
                                    ∗
                    b)   A I  没有使用  Addr  执行过私钥询问.
                                    ∗
                    c) 伪造的签名能成功通过验证, 即:         1 ← Verify(Addr ,m ,σ ,PK ).
                                                                    ∗
                                                                 ∗
                                                            ∗
                                                              ∗
                      A I  在游戏  1  中获胜的概率为:
                    记

                                                                          ∗
                                                                    ∗
                                                                 ∗
                                             Adv τ  = Pr[1 ← Verify(Addr ,m ,σ ,PK )].
                                                                      ∗
                                                A I
                    定义  1. 在概率多项式时间内, 类型        I 的敌手  A I  以可忽略的优势   Adv τ   在游戏  1  中取得胜利, 则称该无证书签
                                                                         A I
                 名方案在适应性选择消息攻击下具有不可伪造性                 (EUF-CMA).
                    游戏  2: 定义为敌手    A II  和挑战者  C  之间的一个游戏, 与游戏   1  类似, 游戏  2  也包含了以下   3  个阶段.
                    1) 初始化阶段: 挑战者     C  输入安全参数    τ 进行系统初始化, 生成系统公/私钥, 以及系统参数,             C  将系统参数及
   455   456   457   458   459   460   461   462   463   464   465