Processing math: 1%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

HyWarm:针对处理器 RTL仿真的自适应混合预热方法

周耀阳, 韩博阳, 蔺嘉炜, 王凯帆, 张林隽, 余子濠, 唐丹, 王卅, 孙凝晖, 包云岗

周耀阳, 韩博阳, 蔺嘉炜, 王凯帆, 张林隽, 余子濠, 唐丹, 王卅, 孙凝晖, 包云岗. HyWarm:针对处理器 RTL仿真的自适应混合预热方法[J]. 计算机研究与发展, 2023, 60(6): 1246-1261. DOI: 10.7544/issn1000-1239.202330061
引用本文: 周耀阳, 韩博阳, 蔺嘉炜, 王凯帆, 张林隽, 余子濠, 唐丹, 王卅, 孙凝晖, 包云岗. HyWarm:针对处理器 RTL仿真的自适应混合预热方法[J]. 计算机研究与发展, 2023, 60(6): 1246-1261. DOI: 10.7544/issn1000-1239.202330061
Zhou Yaoyang, Han Boyang, Lin Jiawei, Wang Kaifan, Zhang Linjuan, Yu Zihao, Tang Dan, Wang Sa, Sun Ninghui, Bao Yungang. HyWarm: Adaptive Hybrid Warmup Method for RTL Emulation of Processors[J]. Journal of Computer Research and Development, 2023, 60(6): 1246-1261. DOI: 10.7544/issn1000-1239.202330061
Citation: Zhou Yaoyang, Han Boyang, Lin Jiawei, Wang Kaifan, Zhang Linjuan, Yu Zihao, Tang Dan, Wang Sa, Sun Ninghui, Bao Yungang. HyWarm: Adaptive Hybrid Warmup Method for RTL Emulation of Processors[J]. Journal of Computer Research and Development, 2023, 60(6): 1246-1261. DOI: 10.7544/issn1000-1239.202330061
周耀阳, 韩博阳, 蔺嘉炜, 王凯帆, 张林隽, 余子濠, 唐丹, 王卅, 孙凝晖, 包云岗. HyWarm:针对处理器 RTL仿真的自适应混合预热方法[J]. 计算机研究与发展, 2023, 60(6): 1246-1261. CSTR: 32373.14.issn1000-1239.202330061
引用本文: 周耀阳, 韩博阳, 蔺嘉炜, 王凯帆, 张林隽, 余子濠, 唐丹, 王卅, 孙凝晖, 包云岗. HyWarm:针对处理器 RTL仿真的自适应混合预热方法[J]. 计算机研究与发展, 2023, 60(6): 1246-1261. CSTR: 32373.14.issn1000-1239.202330061
Zhou Yaoyang, Han Boyang, Lin Jiawei, Wang Kaifan, Zhang Linjuan, Yu Zihao, Tang Dan, Wang Sa, Sun Ninghui, Bao Yungang. HyWarm: Adaptive Hybrid Warmup Method for RTL Emulation of Processors[J]. Journal of Computer Research and Development, 2023, 60(6): 1246-1261. CSTR: 32373.14.issn1000-1239.202330061
Citation: Zhou Yaoyang, Han Boyang, Lin Jiawei, Wang Kaifan, Zhang Linjuan, Yu Zihao, Tang Dan, Wang Sa, Sun Ninghui, Bao Yungang. HyWarm: Adaptive Hybrid Warmup Method for RTL Emulation of Processors[J]. Journal of Computer Research and Development, 2023, 60(6): 1246-1261. CSTR: 32373.14.issn1000-1239.202330061

HyWarm:针对处理器 RTL仿真的自适应混合预热方法

基金项目: 中国科学院战略性先导科技专项(XDC05030200), 国家自然科学基金重大项目(62090020)
详细信息
    作者简介:

    周耀阳: 1995年生. 博士. 主要研究方向为处理器ILP提升、可扩展处理器设计、负载采样和性能评测方法

    韩博阳: 1999年生. 工程硕士研究生. 主要研究方向为计算机体系结构、数字系统设计和高速串行通讯协议

    蔺嘉炜: 1998年生. 硕士研究生. 主要研究方向为高性能计算机体系结构

    王凯帆: 1997年生. 博士研究生. 主要研究方向为处理器敏捷开发与计算机体系结构

    张林隽: 1998年生. 硕士研究生. 主要研究方向为高性能计算机体系结构

    余子濠: 1991年生. 博士. 主要研究方向为计算机系统结构和操作系统

    唐丹: 1976年生. 博士,高级工程师. 主要研究方向为计算机体系结构和低功耗SoC设计

    王卅: 1986年生. 博士,副研究员. 主要研究方向为云计算、操作系统以及系统建模与性能分析

    孙凝晖: 1968年生. 博士,中国工程院院士,CCF会士. 主要研究方向为计算机系统结构、高性能计算

    包云岗: 1980年生. 博士,研究员. 主要研究方向为数据中心体系结构、处理器芯片敏捷设计方法论、开源处理器芯片生态

    通讯作者:

    包云岗(baoyg@ict.ac.cn

  • 中图分类号: TP391

HyWarm: Adaptive Hybrid Warmup Method for RTL Emulation of Processors

Funds: This work was supported by the Strategic Priority Research Program of Chinese Academy of Sciences (XDC05030200), and the Major Program of the National Natural Science Foundation of China (62090020).
More Information
    Author Bio:

    Zhou Yaoyang: born in 1995. PhD. His main research interests include CPU ILP enhancement, scalable CPU design, workload sampling, and performance evaluation methods

    Han Boyang: born in 1999. Master candidate of Science in Engineering. His main research interests include computer architecture, digital system design, and high-speed serial communication protocols

    Lin Jiawei: born in 1998. Master candidate. His research interest includes high-performance computer architecture

    Wang Kaifan: born in 1997. PhD candidate. His main research interests include agile development of processors and computer architecture

    Zhang Linjuan: born in 1998. Master candidate. Her main research interest includes high-performance computer architecture

    Yu Zihao: born in 1991. PhD. His main research interests include computer architecture and operating system

    Tang Dan: born in 1976, PhD, senior engineer. His main research interests include computer architecture and low power SoC design

    Wang Sa: born in 1986. PhD, associate professor. His main research interests include cloud computing, operating systems, and system modeling and performance analysis

    Sun Ninghui: born in 1968. PhD, academician of Chinese Academy of Engineering, fellow of CCF. His main research interests include computer architecture and high performance computing

    Bao Yungang: born in 1980. PhD, professor. His main research interests include data-center architecture, agile design methodology of processor chips and ecosystem of open-source processor chips

  • 摘要:

    在高性能处理器开发中,准确而快速的性能估算是设计决策和参数选择的基础. 现有工作通过采样算法和RTL的体系结构检查点加速了处理器RTL仿真,使得在数天内测算复杂高性能处理器的SPECCPU等基准测试的性能成为可能. 但是数天的迭代周期仍然过长,性能测算周期仍然有进一步缩短的空间. 在处理器RTL仿真过程中,预热过程的时间占比很大. HyWarm框架的提出是为了加速性能测算过程中的预热过程. HyWarm通过微结构模拟器分析负载预热需求,为每个负载定制预热方案. 对于缓存预热需求较大的负载,HyWarm通过总线协议进行RTL缓存的功能预热;对于RTL全细节仿真,HyWarm利用CPU分簇和LJF调度缩短最大完成时间. HyWarm相较于现有最好的RTL采样仿真方法,在与基准方法准确率相似的前提下,将仿真完成时间缩短了53%.

    Abstract:

    When developing high-performance processors, accurate and fast performance estimation is the basis for design decisions and parameter exploration. Prior work accelerates processor RTL emulation through workload sampling and architectural checkpoints for RTL, which makes it possible to estimate the performance of benchmarks such as SPECCPU running on complex high-performance processors within a few days. However, waiting a few days for performance results is still too long for architecture iteration, and there is still room for further shortening the performance measurement cycle. During RTL emulation of processors, the warm up phase consumes a significant amount of time. As a solution to expedite the warm up phase during performance evaluation, the HyWarm framework is developed. HyWarm analyzes the warm up demand of workloads with the micro-architectural simulator, and adaptively customizes the warm up scheme for each workload. For workloads with high warm up demand on caches, HyWarm performs functional warm up through the caches’ bus protocol on RTL. For detailed emulation part, HyWarm utilizes CPU clustering and LJF scheduling to reduce the maximum completion time. Compared with the best existing sampling-based RTL emulation method, HyWarm reduces the emulation completion time by 53% under the premise of similar accuracy to the baseline method.

  • 无线体域网[1](wireless body area network, WBAN)指由佩戴或嵌入在人体的各种无线传感器(wireless sensor, WS)组成的无线通信网络.WBAN技术在医疗数据监测方面的应用极为广泛,不同类型的无线医疗传感器负责监测患者各个方面的医疗数据并将数据发送给各种远端服务器,方便对患者的医疗数据做出专业的分析与整合.然而,开放的WBAN在传输患者敏感的医疗数据时,面临着患者的隐私被泄露或医疗数据被恶意篡改等风险[2].

    许多国内外学者提出将密码体制应用到WBAN中,以确保WBAN的医疗数据在传输与共享时的机密性.Mykletun等人[3]基于传统公钥密码(public key cryptography, PKC)体制,设计了一种保证无线传感网络数据机密性的加密方案.Nadir等人[4]基于PKC体制与椭圆曲线密码体制为用户生成对称密钥来加密数据,确保医疗数据在无线传感网络中传输与共享时的机密性.然而,基于PKC体制的方案[3-4]需要可信中心对用户证书进行管理,为消除证书管理的开销,一些基于身份加密体制的WBAN方案[5-7]相继被提出.上述文献[37]利用对数据进行加密的方式确保了医疗数据传输时的机密性,但这种方式没有实现对医疗数据来源的认证.如果无法实现医疗数据的可认证性,不仅会导致医院浪费宝贵的医疗资源进行无效的诊断,还可能基于被篡改的医疗数据而对患者的病情做出错误诊断.

    为了实现WBAN中医疗数据的可认证性,Ahn等人[8]构造了一种基于高级加密标准(advanced encryption standard,AES)对称密码体制的认证方案.黄一才等人[9]基于身份密码体制设计了一种签名方案,该方案实现了抗重放攻击.Cagalaban等人[10]将数字签密技术引入医疗保健系统,在确保医疗数据机密性的同时实现了数据的可认证性.Ullah等人[11]利用超椭圆曲线的概念,设计了一种基于证书的签密方案.尽管文献[811]实现了医疗数据的可认证性,但都没有考虑在多用户环境下的应用场景.为解决密码方案在多用户环境下的WBAN中计算效率较低的问题,基于聚合签名与聚合加密等技术,一些支持聚合模式的方案[12-15]相继被提出.然而,文献[815]没有考虑如何对WBAN云端密文进行有效的搜索,导致数据用户在对医疗数据进行检索时开销较大.

    基于可搜索加密技术[16]与密文等值测试技术[17],国内外学者提出了一些适用于WBAN的密文检索方案[18-21].但这些WBAN密文检索方案均存在一些缺陷,例如张嘉懿[18]与Andrew等人[19]提出的可搜索加密方案仅支持对用相同公钥加密的医疗数据进行搜索;Ramadan等人[20]设计的等值测试加密方案无法实现对医疗数据来源的认证;Elhabob等人[21]设计的基于证书的密文等值测试方案存在证书管理问题等.此外,医生或医疗机构有时需要判断多个患者某些特定方面的医疗数据是否相同,或对有相同病症的患者的医疗数据进行整合与存档,但密文检索文献[1821]均没有考虑到多用户检索以及对多密文同时进行检索的情况,在用户节点众多的WBAN实际应用环境中存在一定局限性.

    WBAN通常会面临需要对2个以上的密文进行匹配的情况,而传统的密文等值测试技术只能将多个密文两两分为一组,再对所有的分组逐个进行测试,在多用户环境下的密文检索效率较低.为提高密文等值测试技术在多密文测试时的计算效率,Susilo等人[22]提出了一种支持多密文等值测试的公钥加密(public-key encryption with multi-ciphertext equality test, PKE-MET)方案,实现了对2个以上的密文同时进行匹配的功能.在PKE-MET方案中,每个参与多密文等值测试的数据拥有者都可以指定1个数字n,并将自己的密文与其他n−1个数据拥有者的密文进行匹配.PKE-MET在支持同时对多密文进行等值测试的同时,还支持对多个用户同时进行密文检索,当测试者接收到n个希望进行密文检索的数据用户分别上传的n个测试陷门时,才可以对数据拥有者的密文进行测试,实现了多数据用户同时进行密文匹配的功能.然而,PKE-MET方案中存在证书管理开销较大、无法对数据的来源进行认证等问题.

    针对以上问题,本文提出了一种支持多密文等值测试的WBAN聚合签密方案.该方案的创新点主要包括3个方面:

    1)基于身份签密体制.本文方案采用基于身份的签密体制,消除了传统公钥加密方案中存在的证书管理开销,确保了WBAN中医疗数据的机密性、完整性、可认证性与数据拥有者签名的不可伪造性.

    2)支持多用户密文聚合签密.引入聚合签密技术,验证者可以实现对多个数据拥有者医疗数据密文的批量验证,提高了签密方案在多用户环境下的验证效率.

    3)支持多密文等值测试.引入多密文等值测试技术,测试者可以利用数据用户上传的测试陷门同时对多个密文进行匹配,实现了多用户检索与多密文等值测试,降低了多用户环境下等值测试过程的计算开销.

    计算性Diffie-Hellman(computation Diffie-Hellman, CDH)问题:给定(P,aP,bP),其中a,bZp,计算abP.

    由含有n个未知数x1,x2,,xnn个线性方程所组成的非齐次线性方程组

    {a11x1+a12x2++a1nxn=b1,a21x1+a22x2++a2nxn=b2, an1x1+an2x2++annxn=bn,

    所对应的系数矩阵为

    {\boldsymbol{A}} = \left({\begin{array}{*{20}{c}} {{a_{11}}}&{{a_{12}}}& \cdots &{{a_{1n}}} \\ {{a_{21}}}&{{a_{22}}}& \cdots &{{a_{2n}}} \\ \vdots & \vdots &{}& \vdots \\ {{a_{n1}}}&{{a_{n2}}}& \cdots &{{a_{nn}}} \end{array}} \right),

    矩阵A对应的行列式为

    \det ({\boldsymbol{A}}) = \left| {\begin{array}{*{20}{c}} {{a_{11}}}&{{a_{12}}}& \cdots &{{a_{1n}}} \\ {{a_{21}}}&{{a_{22}}}& \cdots &{{a_{2n}}} \\ \vdots & \vdots &{}& \vdots \\ {{a_{n1}}}&{{a_{n2}}}& \cdots &{{a_{nn}}} \end{array}} \right| \text{,}

    \det ({\boldsymbol{A}}) \ne 0,则该方程组有唯一解.

    形如

    {\boldsymbol{V}} = \left( {\begin{array}{*{20}{c}} 1&{{a_1}}&{a_1^2}& \cdots &{a_1^{n - 1}} \\ 1&{{a_2}}&{a_2^2}& \cdots &{a_2^{n - 1}} \\ \vdots & \vdots & \vdots &{}& \vdots \\ 1&{{a_n}}&{a_n^2}& \cdots &{a_n^{n - 1}} \end{array}} \right)

    的矩阵称为范德蒙矩阵,其对应的范德蒙行列式 \det ({\boldsymbol{V}}) 具有如下计算性质:

    \det ({\boldsymbol{V}}) = \left| {\begin{array}{*{20}{c}} 1&{{a_1}}&{a_1^2}& \cdots &{a_1^{n - 1}} \\ 1&{{a_2}}&{a_2^2}& \cdots &{a_2^{n - 1}} \\ \vdots & \vdots & \vdots &{}& \vdots \\ 1&{{a_n}}&{a_n^2}& \cdots &{a_n^{n - 1}} \end{array}} \right| = \prod\limits_{1 \leqslant i \lt j \leqslant n} {({a_i} - {a_j})} .

    本文提出的支持多密文等值测试的WBAN聚合签密方案的系统模型如图1所示,它包括6个实体:私钥生成器(private key generator, PKG)、云存储提供商、数据拥有者(即患者佩戴的无线传感器)、密文等值测试者、聚合者与数据用户(data user, DU).

    图  1  本文系统模型
    Figure  1.  The proposed system model

    各个实体具体介绍为:

    1)私钥生成器.负责为WBAN中的数据拥有者和数据用户生成密钥.

    2)云存储提供商.负责在云服务器中存储用户上传的医疗密文 C{T_1} C{T_2} ,…, C{T_n} .

    3)数据拥有者.即患者佩戴的无线传感器,负责对医疗数据进行签密并将医疗密文上传到云端存储.

    4)测试者.对从云服务器下载的多个医疗密文执行等值测试操作,将测试结果返回给云服务器.

    5)聚合者.负责对多个数据拥有者的医疗数据进行聚合签密,将聚合医疗密文上传到云端存储.

    6)数据用户.即医生、医疗机构与数据处理中心等希望获取医疗密文的用户,负责将等值测试的陷门上传给测试者,并对从云服务器下载的医疗密文进行解密与认证.

    本文提出的支持多密文等值测试的聚合签密方案需要考虑2种类型的敌手,第1类敌手无法访问数据用户的测试陷门,第2类敌手可以获取数据用户的测试陷门.针对这2类敌手,本文提出的方案旨在达到的安全目标为:

    1)医疗数据的机密性和完整性.WBAN中传输的大多是敏感的医疗数据,若患者的医疗数据在传输时中被恶意窃取或篡改,会造成严重后果.本文利用基于身份的加密体制,保证了所提方案在面对第1类攻击者时医疗数据的机密性与完整性.机密性指即使攻击者截取了传输的医疗密文也无法获取与明文相关的信息;完整性则指医疗数据在传输时中无法被敌手伪造或篡改.

    2)数据拥有者签名的不可伪造性.本文新方案在对数据拥有者的签名的合法性进行验证的过程中,采用基于身份的签密体制,保证了在面对第1类攻击者时数据拥有者签名的不可伪造性,即攻击者不能伪造出合法的数据拥有者签名.

    3)测试陷门的单向性.测试者通过数据用户上传的测试陷门对医疗密文进行等值测试操作,在测试过程中,需要保证面对第2类敌手时测试陷门满足单向性,即敌手无法通过测试陷门获取与参与测试的医疗数据明文相关的信息.

    给定安全参数 k ,PKG选择大素数 p ( p \gt {2^k} ), G 是阶为 p 的循环加法群, P G 的生成元.PKG随机选择 s \in \mathbb{Z}_p^* 作为主密钥秘密保存,计算 {P_{{\text{pub}}}} = sP 作为系统公钥,定义6个Hash函数: {H_1}:{\{ 0,1\} ^*} \to \mathbb{Z}_p^* {H_2}:{\{ 0,1\} ^*} \times G \to \mathbb{Z}_p^* {H_3}:{\{ 0,1\} ^*} \times G \to \mathbb{Z}_p^* {H_4}:G \to {\{ 0,1\} ^{{l_0} + {l_1}}} {H_5}:{\{ 0,1\} ^*} \to \mathbb{Z}_p^* {H_6}:{\{ 0,1\} ^*} \to {\{ 0,1\} ^k} ,其中 {l_0} 是密文长度.输出系统参数 params = \{ p,P,{P_{{\text{pub}}}},G,{H_1},{H_2},{H_3},{H_4},{H_5},{H_6}\} .

    1)用户将 I{D_i} 上传给PKG,PKG计算 {Q_i} = {H_1}(I{D_i}) s{k_{i,1}} = s{Q_i}

    2)PKG随机选择 {x_i} \in \mathbb{Z}_p^* ,计算 P{K_{i,1}}\; =\; {x_i}P P{K_{i,2}}\; = {H_1}(I{D_i}||P{K_{i,1}}) s{k_{i,2}} = {x_i} + sP{K_{i,2}} s{k_{i,3}} = {H_1}(I{D_i}||s) P{K_{i,3}} = s{k_{i,3}}P

    3)PKG输出公共参数 P{K_i} = (P{K_{i,1}},P{K_{i,2}},P{K_{i,3}}) 与私钥 s{k_i} = (s{k_{i,1}},s{k_{i,2}},s{k_{i,3}}) .

    给定参与密文等值测试与聚合签密的数据拥有者数量为 n ,数据拥有者的身份标识为 I{D_i} ,数据用户的身份标识为 I{D_j} ,其中i,j \in \{ 1,2, \cdots ,n\}.数据拥有者执行1)~5)操作对 {m_i} 进行签密:

    1)随机选择 {a_i},{b_i},{N_i} \in \mathbb{Z}_p^* ,计算 {C_{i,1}} = {a_i}P {C_{i,2}} = {b_i}P {R_i} = {a_i}{Q_j}{P_{{\text{pub}}}}

    2)计算 {U_i} = {H_2}({m_i},I{D_i},I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}}) {V_i} = {H_3} ({m_i},I{D_i},I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}}) {v_i} = {a_i}{U_i} + s{k_{i,2}}{V_i} {C_{i,3}} = {v_i}P {C_{i,4}} = {H_4}({R_i}) \oplus ({m_i}||{v_i})

    3)计算 {f_{i,0}} = {H_5}({m_i}||n) {f}_{i,1} = {H}_{5}({m}_{i}|\left|n\right||{f}_{i,0}),\cdots {f_{i,n - 1}} = {H_5}({m_i}||n||{f_{i,0}}|| \cdots ||{f_{i,n - 2}})

    4)计算 {C_{i,5}} \;= \;{H_4}({b_i}P{K_{j,3}}) \;\oplus\; ({N_i}||f({N_i})){C_{i,6}}\; = \;{H_6} (n|| {C_{i,1}}|| \cdots ||{C_{i,5}}||{b_i}P{K_{j,3}}||{f_{i,0}}|| \cdots ||{f_{i,n - 1}}),其中 f({N_i}) = {f_{i,0}} + {f_{i,1}}{N_i} + {f_{i,2}}N_i^2 + \cdots + {f_{i,n - 1}}N_i^{n - 1}

    5)将密文 C{T_i} = ({t_i},{C_{i,1}},{C_{i,2}},{C_{i,3}},{C_{i,4}},{C_{i,5}},{C_{i,6}}) 上传到云端存储,其中 {t_i} = n .

    n 个数据用户分别将等值测试陷门 t{k_j} = s{k_{j,3}} 发送给测试者,其中j \in \{ 1,2, \cdots ,n\}.测试者从云服务器分别下载 n 个数据拥有者想要测试的密文 C{T_1,CT_2,\cdots,CT_n} ,执行1)~3)多密文等值测试操作:

    1)检查{t_1} = {t_2} = \cdots = {t_n} = n是否成立,若成立测试者则继续执行以下操作,否则终止操作并输出“ \bot ”;

    2)对于 i \in \{ 1,2, \cdots ,n\} j \in \{ 1,2, \cdots ,n\} ,测试者分别计算 {N_i}||f({N_i}) = {C_{i,5}} \oplus {H_4}({C_{i,2}}t{k_j}) ,由签密算法有 f({N_i}) = {f_{i,0}} + {f_{i,1}}{N_i} + {f_{i,2}}N_i^2 + \cdots + {f_{i,n - 1}}N_i^{n - 1} ,测试者将 n 个等式合并得到方程组

    \left\{\begin{aligned} &f({N}_{1})={f}_{1,0}+{f}_{1,1}{N}_{1}+{f}_{1,2}{N}_{1}^{2}+\cdots +{f}_{1,n-1}{N}_{1}^{n-1},\\ &f({N}_{2})={f}_{2,0}+{f}_{2,1}{N}_{2}+{f}_{2,2}{N}_{2}^{2}+\cdots +{f}_{2,n-1}{N}_{2}^{n-1},\\ & \;\;\; \vdots \\ &f({N}_{n})={f}_{n,0}+{f}_{n,1}{N}_{n}+{f}_{n,2}{N}_{n}^{2}+\cdots +{f}_{n,n-1}{N}_{n}^{n-1},\end{aligned}\right.

    并隐式设置 {f_{i,k}} = {f_{j,k}} ,其中 k \in \{ 0,1, \cdots ,n - 1\} ,测试者通过对该方程组对应的范德蒙矩阵求逆,获得方程组的唯一一组解 {f_{1,0}},{f_{1,1}}, \cdots ,{f_{1,n - 1}}

    3)检查等式{C_{i,6}} = {H_6}(n||{C_{i,1}}||{C_{i,2}}||{C_{i,3}}||{C_{i,4}}||{C_{i,5}}||{C_{i,2}}t{k_j}|| {f_{i,0}}||{f_{i,1}}|| \cdots ||{f_{i,n - 1}})是否成立,若成立测试者则向云服务器输出测试结果为“1”,否则向云服务器输出测试结果为“0”.

    若云服务器接收到的密文等值测试结果为“1”,代表 n 个数据拥有者的医疗密文全部相同,云服务器将所有数据拥有者的医疗密文 C{T}_{1},C{T}_{2},\cdots ,C{T}_{n} 发送给聚合者,聚合者执行1)~2)操作对医疗密文进行聚合签密:

    1)计算{X_{{\text{agg}}}} = \displaystyle\sum\limits_{i = 1}^n {{C_{i,3}}}

    2)将聚合医疗密文 {\sigma _{{\text{agg}}}} = ({\{ C{T_i}\} _{i = 1,2, \cdots ,n}},{X_{{\text{agg}}}}) 上传到云服务器存储.

    给定数据用户的身份标识为 I{D_j} ,其中 j \in \{ 1, 2, \cdots , n\} .数据用户从云端下载聚合医疗密文 {\sigma _{{\text{agg}}}} ,对密文进行解密并验证数据来源.数据用户的具体操作如为:

    1)计算R_{i}'= sk_{j,1} C_{i,1}m_i'||v_i' = {C_{i,4}} \oplus {H_4}(R_i')

    2)根据m_i'的值计算{f}_{i,0}'\;=\;{H}_{5}({m}_{i}'||n),f_{i,1}^{{'} }\; =\; {H_5}(m_i^{{'} }||n|| f_{i,0}^{{'} }) ,\cdotsf_{i,n - 1}^{'} = {H_5}(m_i'||n||f_{i,0}'||, \cdots ||f_{i,n - 2}^{{'} })N_i^{{'} }||f(N_i^{{'} }) = {C_{i,5}} \oplus {H_4} ({C_{i,2}}s{k_{j,3}})

    3)计算U_i^{{'} } = {H_2}(m_i^{{'} },I{D_i},I{D_j},R_i^{{'} },P{K_{i,1}},P{K_{j,1}})V_i' = {H_3} (m_i', \; I{D_i},\;I{D_j},\;R_i',\;P{K_{i,1}},\;P{K_{j,1}})X_{{\text{agg}}}' = \displaystyle\sum\limits_{i = 1}^n {v_i'P}X_{{\text{agg}}}^*= \displaystyle\sum\limits_{i = 1}^n {U_i'{C_{i,1}} +} \displaystyle\sum\limits_{i = 1}^n {V_i'P{K_{i,1}} + }\displaystyle\sum\limits_{i = 1}^n {V_i'P{K_{i,2}}{P_{{\text{pub}}}}}

    4)分别检查等式{C_{i,6}}\; =\; {H_6}(n||{C_{i,1}}||{C_{i,2}}||{C_{i,3}}||{C_{i,4}}||{C_{i,5}}|| {C_{i,2}}s{k_{j,3}}|| f_{i,0}'||f_{i,1}'|| \cdots ||f_{i,n - 1}')X_{{\text{agg}}}^* = X_{{\text{agg}}}'f(N_i') = f_{i,0}' + {f_{i,1}'N_i'} +\cdots+ f_{i,n-1}'N_i^{{'}n-1}是否同时成立.

    若以上等式均成立,数据用户则接收医疗数据m_i';否则输出“ \bot ”.

    1)解密等式的正确性

    数据用户通过计算 m_i'||v_i' = {C_{i,4}} \oplus {H_4}(R_i') 对密文进行解密,其中 R_i' = s{k_{j,1}}{C_{i,1}} s{k_{j,1}} 是数据用户的私钥,由于s{k_{j,1}} = s{Q_j},则有

    R_i' = s{k_{j,1}}{C_{i,1}} = s{k_{j,1}}{a_i}P = s{Q_j}{a_i}P = {a_i}{Q_j}{P_{{\text{pub}}}} = {R_i} \text{,}

    R_i' = {R_i},从而有

    m_i'||v_i' = {C_{i,4}} \oplus {H_4}(R_i') = {H_4}({R_i}) \oplus ({m_i}||{v_i}) \oplus {H_4}(R_i') = {m_i}||{v_i}{\kern 1pt} .

    因此,本文方案满足密文解密等式的正确性.

    2)签名验证等式的正确性

    数据用户通过判断等式X_{{\text{agg}}}^* = X_{{\text{agg}}}'是否成立以验证聚合密文签名的合法性,其中X_{{\text{agg}}}' = \displaystyle\sum\limits_{i = 1}^n {v_i'P}{v_i'} = {a_i}{U_i} +s{k_{i,2}}{V_i} s{k_{i,2}} = {x_i} + sP{K_{i,2}} ,则有

    \begin{aligned} X_{{\text{agg}}}' = &\sum\limits_{i = 1}^n {v_i'P} = \sum\limits_{i = 1}^n {{a_i}{U_i}P + \sum\limits_{i = 1}^n {s{k_{i,2}}{V_i}P} } = \\ &\sum\limits_{i = 1}^n {{a_i}{U_i}P + \sum\limits_{i = 1}^n {{x_i}{V_i}P + \sum\limits_{i = 1}^n {sP{K_{i,2}}{V_i}P} } } ,\end{aligned}

    结合 {C_{i,1}} = {a_i}P P{K_{i,1}} = {x_i}P {P_{{\text{pub}}}} = sP ,从而有

    X_{{\text{agg}}}' = \sum\limits_{i = 1}^n {{U_i}{C_{i,1}} + } \sum\limits_{i = 1}^n {{V_i}P{K_{i,1}} + } \sum\limits_{i = 1}^n {{V_i}P{K_{i,2}}{P_{{\text{pub}}}}}.

    进一步,由解密等式的正确性可知 m_i'||v_i' = {m_i}||{v_i} ,则有

    \begin{aligned} {U_i} =\;& {H_2}({m_i},I{D_i},I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}})= \\ & {H_2}(m_i',I{D_i},I{D_j},R_i',P{K_{i,1}},P{K_{j,1}}) =U_i',\\ {V_i} = & {H_3}({m_i},I{D_i},I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}}) =\\ &{H_3}(m_i',I{D_i},I{D_j},R_i',P{K_{i,1}},P{K_{j,1}}) = V_i', \end{aligned}

    {U_i} = U_i' {V_i} = V_i' ,于是有

    \begin{aligned} X_{{\text{agg}}}' = \;& \sum\limits_{i = 1}^n {{U_i}{C_{i,1}} + } \sum\limits_{i = 1}^n {{V_i}P{K_{i,1}} + } \sum\limits_{i = 1}^n {{V_i}P{K_{i,2}}{P_{{\text{pub}}}}} = \\ &\sum\limits_{i = 1}^n {U_i^{'}{C_{i,1}} + } \sum\limits_{i = 1}^n {V_i'P{K_{i,1}} + } \sum\limits_{i = 1}^n {V_i'P{K_{i,2}}{P_{{\text{pub}}}}} = X_{{\text{agg}}}^* \text{,} \end{aligned}

    X_{{\text{agg}}}^* = X_{{\text{agg}}}' 成立.因此,本文所提的新方案满足签名验证等式的正确性.

    3)等值测试结果的正确性

    i \in \{ 1,2, \cdots ,n\} j \in \{ 1,2, \cdots ,n\} ,测试者通过检查 {C_{i,6}} = {H_6}(n||{C_{i,1}}|| \cdots ||{C_{i,5}}||{C_{i,2}}t{k_j}||{f_{i,0}}|| \cdots ||{f_{i,n - 1}}) 是否成立来判断 n 个医疗密文是否相同,其中{f_{i,0}}\; =\; {H_5} ({m_i}|| n), \cdots , {f_{i,n - 1}} = {H_5}({m_i}||n||{f_{i,0}}|| \cdots ||{f_{i,n - 2}}) .假设所有参与密文等值测试的医疗密文全部相同,即 {m_1} = {m_2} = \cdots = {m_n} ,则有

    \begin{aligned} {H}_{5}({m}_{1}||n)={H}_{5}({m}_{2}||n)=\; &\cdots ={H}_{5}({m}_{n}||n),\\ {H}_{5}({m}_{1}|\left|n\right||{f}_{1,0})={H}_{5}({m}_{2}|\left|n\right|| & {f}_{1,0})= \cdots ={H}_{5}({m}_{n}|\left|n\right||{f}_{1,0}),\\ &\vdots\\ {H}_{5}({m}_{1}||n||{f}_{1,0}||\cdots ||{f}_{1,n-2})= & {H}_{5}({m}_{1}||n||{f}_{2,0}||\cdots ||{f}_{2,n-2})=\cdots=\\ {H}_{5}({m}_{n}||n||{f}_{n,0}||&\cdots ||{f}_{n,n-2}), \end{aligned}

    即对于所有的 i,j \in \{ 1,2, \cdots ,n\} k \in \{ 0,1, \cdots ,n - 1\} ,等式 {f_{i,k}} = {f_{j,k}} 均成立.

    由医疗数据签密及上传算法可知,数据拥有者在签密过程中设置

    f({N_i}) = {f_{i,0}} + {f_{i,1}}{N_i} + {f_{i,2}}N_i^2 + \cdots + {f_{i,n - 1}}N_i^{n - 1},

    由此可以得到方程组

    \left\{\begin{aligned} f({N}_{1})&={f}_{1,0}+{f}_{1,1}{N}_{1}+{f}_{1,2}{N}_{1}^{2}+\cdots +{f}_{1,n-1}{N}_{1}^{n-1},\\ f({N}_{2})&={f}_{2,0}+{f}_{2,1}{N}_{2}+{f}_{2,2}{N}_{2}^{2}+\cdots +{f}_{2,n-1}{N}_{2}^{n-1},\\ & \vdots \\ f({N}_{n})&={f}_{n,0}+{f}_{n,1}{N}_{n}+{f}_{n,2}{N}_{n}^{2}+\cdots +{f}_{n,n-1}{N}_{n}^{n-1},\end{aligned}\right.

    结合 {f_{i,k}} = {f_{j,k}} ,因此可将 {f_{1,0}},{f_{1,1}}, \cdots ,{f_{1,n - 1}} 作为方程组的解,将随机数 {N_i} 作为方程组的系数,则该方程组对应的矩阵为

    {\boldsymbol{V}} = \left({\begin{array}{*{20}{c}} 1&{{N_1}}&{N_1^2}& \cdots &{N_1^{n - 1}} \\ 1&{{N_2}}&{N_2^2}& \cdots &{N_2^{n - 1}} \\ \vdots & \vdots & \vdots &{}& \vdots \\ 1&{{N_n}}&{N_n^2}& \cdots &{N_n^{n - 1}} \end{array}} \right) ,

    由范德蒙矩阵的性质可知其对应的行列式为 \det ({\boldsymbol{V}}) = \displaystyle\prod\limits_{1 \leqslant i \lt j \leqslant n} {({N_i} - {N_j})} .

    从数据拥有者签密过程可知, {N_i} 是由 n 个不同的数据拥有者在对医疗密文进行签密时分别选择的随机数,因此 \det ({\boldsymbol{V}}) = 0 的概率仅为 {[p(p - 1) \cdots (p - n + 1)]^{ - 1}} ,其中 p 为群 \mathbb{Z}_p^* 的阶.由克拉默法则可知当 \det ({\boldsymbol{V}}) \ne 0 时,方程组有且仅有唯一解 {f_{1,0}},{f_{1,1}}, \cdots ,{f_{1,n - 1}} ,于是有对于所有的 i,j \in \{ 1,2, \cdots ,n\} k \in \{ 0,1, \cdots ,n - 1\} ,等式 {f_{i,k}} = {f_{j,k}} 均成立,与所有参与密文等值测试的医疗密文全部相同的假设相符.因此,本文新方案满足多密文等值测试结果的正确性.

    本文提出的方案引入了基于身份的聚合签密体制,确保了本文方案在面对第1类敌手时医疗数据的机密性与签名的存在不可伪造性,对于机密性与不可伪造性的证明过程可以参考文献[23]方案.同时,本文方案满足面对第2类敌手适应性选择密文攻击下的单向性(one-way against adaptive chosen ciphertext attack, OW-CCA2),以下通过定理1证明本文方案满足OW-CCA2安全.

    定理1. 假设CDH问题是难解的,则本文方案在随机预言模型下对第2类敌手是OW-CCA2安全的.

    证明.假设 \mathcal{C} 是能够解决CDH困难问题的人, {\mathcal{A}_2} 代表第2类敌手. \mathcal{C} {\mathcal{A}_2} 为子程序充当以下游戏中的挑战者,若 {\mathcal{A}_2} 能以不可忽略的优势在概率多项式时间内的游戏中获胜,则 \mathcal{C} 能够在概率多项式时间内解决CDH困难问题.

    初始化阶段.CDH问题的输入为 (P,aP,bP) ,其中 a,b \in \mathbb{Z}_p^* \mathcal{C} 的目标是给出CDH困难问题的解 abP . \mathcal{C} 选取阶为素数 p 的循环群 G ,计算 P G 的生成元,随机选择 a \in \mathbb{Z}_p^* 并计算P_{{\text{pub}}}' = aP.最后,输出系统参数 params=\{p,P,{P}_{\text{pub}},G,{H}_{1},{H}_{2},{H}_{3},{H}_{4},{H}_{5},{H}_{6}\} ,将 a 秘密保存并发送 params {\mathcal{A}_2} .

    询问阶段1.为了响应 {\mathcal{A}_2} 的询问, \mathcal{C} 维持列表 {L}_{1}, {L}_{2},{L}_{3},{L}_{4},{L}_{5},{L}_{6},{L}_{\text{td}} 分别用于跟踪 {\mathcal{A}_2} {H_1} Hash询问、 {H_2} Hash询问、 {H_3} Hash询问、 {H_4} Hash询问、 {H_5} Hash询问、 {H_6} Hash询问、测试陷门询问. {L_1} 同时用于跟踪密钥提取询问,开始时每个列表都为空.

    1) {H_1} Hash询问.当 \mathcal{C} 收到 {\mathcal{A}_2} {H_1}(I{D_i},{Q_i}) 的查询,若 I{D_i} \in \{ I{D_i}\} _{i = 1}^n ,则计算 P{K_{i,1}} = {x_i}P ,其中 {x_i} 是未知的, \mathcal{C} 保存 ( \bot ,{Q_i},I{D_i}) {L_1} ;若 i \ne 1 \mathcal{C} 随机选择 {x_i},P{K_{i,2}} \in \mathbb{Z}_p^* 并设置 P{K_{i,1}} = {x_i}P ,将 P{K_{i,2}} = {H_1}(I{D_i}||P{K_{i,1}}) 返回给 {\mathcal{A}_2} 并保存 ({x_i},P{K_{i,1}},P{K_{i,2}},I{D_i}) {L_1} .

    2) {H_2} Hash询问.当 \mathcal{C} 收到 {\mathcal{A}_2} ({m_i},I{D_i},I{D_j},{R_i}, P{K_{i,1}},P{K_{j,1}},{U_i})的查询后, \mathcal{C} 首先在 {L_2} 查找是否已有({m_i}, I{D_i},I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}},{U_i},{t_i},{t_i}P),若 {L_2} 已有({m_i},I{D_i}, I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}},{U_i},{t_i},{t_i}P),则发送 {U_i} {\mathcal{A}_2} ;否则, \mathcal{C} 选取 {U_i} \in \mathbb{Z}_p^* ,将 ({U_i},{t_i},{t_i}P) 加入到 {L_2} 中并输出 {t_i}P .

    3) {H_3} Hash询问.当 \mathcal{C} 收到 {\mathcal{A}_2} ({m_i},I{D_i},I{D_j},{R_i}, P{K_{i,1}}, P{K_{j,1}},{V_i})的查询后, \mathcal{C} 首先在 {L_3} 查找是否已有({m_i}, I{D_i}, I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}},{V_i},{w_i},{w_i}P),若 {L_3} 已有({m_i},I{D_i}, I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}},{V_i},{w_i},{w_i}P),则返回 {V_i} {\mathcal{A}_2} ;否则, \mathcal{C} 选取 {V_i} \in \mathbb{Z}_p^* ,将 ({V_i},{w_i},{w_i}P) 加入到 {L_3} 中并输出 {w_i}P .

    4) {H_4} Hash询问.当 \mathcal{C} 收到 {\mathcal{A}_2} ({R_i},{H_4}({R_i})) 的查询后,若在 {L_4} 中已有 ({R_i},{H_4}({R_i})) 则返回 {H_4}({R_i}) {\mathcal{A}_2} ;否则, \mathcal{C} 选取 {H_4}({R_i}) \in {\{ 0,1\} ^{{l_0} + {l_1}}} ,并将 ({R_i},{H_4}({R_i})) 加入到 {L_4} 中且输出 {H_4}({R_i}) .

    5) {H_5} Hash询问.当 \mathcal{C} 收到 {\mathcal{A}_2} {f_{i,d}} 的查询,其中 d \in \{ 1,2, \cdot \cdot \cdot n\} ,若 {L_5} 存在 ({m_i},n,{f_{i,0}}, \cdot \cdot \cdot ,{f_{i,d - 2}},{f_{i,d}}) 则返回 {f_{i,d}} {\mathcal{A}_2} ;否则, \mathcal{C} 选取 {f_{i,*}} \in \mathbb{Z}_p^* ,将 ({m_i},n,{f_{i,0}}, \cdot \cdot \cdot ,{f_{i,d - 2}},{f_{i,d}}) 加入到 {L_5} 中并输出 {f_{i,d}} .

    6) {H_6} Hash询问.当 \mathcal{C} 收到 {\mathcal{A}_2} {C_{i,6}} 的查询后,若在 {L_6} 中已有 {C_{i,6}} 则返回 {C_{i,6}} {\mathcal{A}_2} ;否则, \mathcal{C} 选取 {C_{i,6}} \in {\{ 0,1\} ^k} ,将相应元组加入到 {L_6} 中并输出 {C_{i,6}} .

    7) 密钥提取询问.当 \mathcal{C} 收到 {\mathcal{A}_2} I{D_i} 的私钥的查询后, \mathcal{C} 首先查询 {L_1} 中是否存在 ({x_i},P{K_{i,1}},P{K_{i,2}},I{D_i}) ,若不存在则输出“ \bot ”;否则返回 ({x_i},P{K_{i,1}},*,*) .如果I{D_i} \notin \{ I{D_i}\} _{i = 1}^n \mathcal{C} I{D_i} 作为 {H_1} Hash询问的输入,得到 {Q_i} = {H_0} (I{D_i}) ,并计算 s{k_{i,1}} = a{Q_i} s{k_{i,2}} = {x_i} + aP{K_{i,2}} ,返回 (P{K_{i,1}}, s{k_{i,1}}, P{K_{i,2}},I{D_i}) {\mathcal{A}_2} .

    8) 公钥替换询问.当 \mathcal{C} 收到 {\mathcal{A}_2} (I{D_i},P{K_{i,1}},P{K_{i,2}}) 的查询后,若 ({x_i},P{K_{i,1}},P{K_{i,2}},I{D_i}) 已存在于 {L_1} 中,则 \mathcal{C} 用列表L1中的 (P{K_{i,1}},P{K_{i,2}}) 替换 I{D_i} 原有的公钥(P{K_{i,1}}, P{K_{i,2}});否则, \mathcal{C} ({x_i},P{K_{i,1}}, P{K_{i,2}},I{D_i}) 加入到列表 {L_1} 中.

    9) 签密询问.当 \mathcal{C} 收到 {\mathcal{A}_2} ({m_i},I{D_i},I{D_j}) 的询问后, \mathcal{C} 执行①~②操作:

    ① 若 I{D_i} \ne I{D_l} {\mathcal{A}_2} 没有对 I{D_i} 的公钥执行过替换询问, \mathcal{C} 通过 {H_1} Hash询问与密钥提取询问分别获取 {x_i} s{k_{i,2}} ,并对 {m_i} 进行签密;若 I{D_i} 对应的公钥被替换过, \mathcal{C} 首先通过 {H_1} 询问分别获取 (P{K_{i,1}},P{K_{i,2}}) (P{K_{j,1}},P{K_{j,2}}) ,然后 \mathcal{C} 利用随机数 {a_i} \in \mathbb{Z}_p^* 计算 {C_{i,1}} = {a_i}P {R_i} = {a_i}{Q_j}P_{{\text{pub}}}',并通过 {H_2} {H_3} {H_4} Hash询问分别获取 {U_i} = {H_2}({m_i}, I{D_i}, I{D_j}, {R_i},P{K_{i,1}},P{K_{j,1}}) {V_i} = {H_3}({m_i},I{D_i},I{D_j},{R_i},P{K_{i,1}},P{K_{j,1}}) . {H_4} ({R_i}) ,通过密钥提取询问获取私钥 s{k_{i,2}} ,计算 {v_i} = \ {a_i}{U_i} + s{k_{i,2}}{V_i} {C_{i,3}} = {v_i}P {C_{i,4}} = {H_4}({R_i}) \oplus ({m_i}||{v_i}) ,最后输出密文 {\sigma _i} = ({C_{i,1}},{C_{i,2}},{C_{i,3}},P{K_{i,1}}) {\mathcal{A}_2} .

    ② 若 I{D_i} = I{D_l} \mathcal{C} 首先通过 {H_1} 询问分别获取 (P{K_{i,1}}, P{K_{i,2}}) (P{K_{j,1}},P{K_{j,2}}) ,随机选择 y,z \in \mathbb{Z}_p^* 并计算 {C_{i,1}} = zaP .然后 \mathcal{C} 通过 {H_1} Hash询问和 {H_4} Hash询问分别获取 (I{D_j}, {a_j}) {H_4}({R_j}) ,并计算{R_j} = {a_j}{Q_j}P_{{\text{pub}}}' {U_j} = {H_2}({m_l},I{D_l},I{D_j}, {R_j}, P{K_{l,1}},P{K_{j,1}}) ,将 ({m_l},I{D_l},I{D_j},{R_j},P{K_{l,1}},P{K_{j,1}},{U_j}) 加入到 {L_2} 中,通过 {H_3} Hash询问获取 ({m_l},I{D_l},I{D_j},{R_l},P{K_{l,1}}, P{K_{j,1}}, {V_l},{w_l},{w_l}P) ,并计算 {v_l} = y{U_l} {C_{l,3}} = z{v_l}P_{{\text{pub}}}' + {w_l}P{K_{l,1}} {C_{i,4}} = {H_4} ({R_l}) \oplus ({m_l}||{v_l}) ,最后输出 {\sigma _l} = ({C_{l,1}},{C_{l,2}},{C_{l,3}},P{K_{l,1}}) {\mathcal{A}_2} .

    10) 解签密询问.当 \mathcal{C} 收到 {\mathcal{A}_2} (C{T_1},C{T_2}, \cdot \cdot \cdot , C{T_n}, \{ I{D_i}\} _{i = 1}^n,I{D_j}) 的查询后, \mathcal{C} 执行①~②操作:

    ① 对 (I{D_1},I{D_2}, \cdot \cdot \cdot ,I{D_n},I{D_j}) 分别执行 {H_1} Hash询问以获取 ({Q_1},{Q_2}, \cdot \cdot \cdot ,{Q_n},{Q_j}) (P{K_{1,1}},P{K_{2,1}}, \cdot \cdot \cdot ,P{K_{n,1}}, P{K_{j,1}}) ,然后 \mathcal{C} 执行聚合签名验证算法,若验证未通过,则输出“ \bot ”后终止模拟;否则继续执行后续操作.

    ② 若I{D_j} \ne I{D_l} \mathcal{C} 则通过 {H_1} Hash询问获取 (I{D_j}, {a_j}) 并计算 {R_j} = {a_j}{C_{j,1}} ,检查 {L_2} 中是否存在元组 (*,I{D_j},{R_i}, P{K_{i,1}},P{K_{j,1}},{U_i}) ,若存在,则 \mathcal{C} 利用Hash值 {U_i} 对密文进行解密;否则 \mathcal{C} 随机选取 {U_i} \in \mathbb{Z}_p^* 并用 {U_i} 对密文进行解密.若 I{D_j} = I{D_l} \mathcal{C} 则在 {L_2} 中查询是否存在元组(*,I{D_j},*, P{K_{i,1}},P{K_{j,1}},{U_i}),若存在则利用Hash值 {U_i} 对密文进行解密;否则将随机选取 {U_i} \in \mathbb{Z}_p^* 并用 {U_i} 对密文进行解密.

    11) 测试陷门询问.当 \mathcal{C} 收到 {\mathcal{A}_2} t{k_j} 的询问后,若 {L_1} 中存在元组 ({x_i},P{K_{i,1}},P{K_{i,2}},I{D_i}) \mathcal{C} 通过 {H_1} 询问获取s{k_{i,3}} ={H_1}(I{D_i}||s)并返回 t{k_j} = s{k_{i,3}} {\mathcal{A}_2} ;否则, \mathcal{C} 选取t{k_j} \in \mathbb{Z}_p^*发送给 {\mathcal{A}_2} ,并将 ({x_i},P{K_{i,1}},P{K_{i,2}},I{D_i}) 加入到 {L_{{\text{td}}}} 中.

    挑战阶段. {\mathcal{A}_2} 输出2个消息 m_0^* = \{ m_{i,0}^*\} _{i = 1}^n m_1^* = \{ m_{i,1}^*\} _{i = 1}^n ,并输出身份 \{ ID_i^*\} _{i = 1}^n ID_j^* \mathcal{C} ID_j^* 作为输入进行 {H_1} Hash询问,若 {L_1} 中不存在与 ID_j^* 相关的元组,则 \mathcal{C} 挑战失败;否则, \mathcal{C} {L_1} 中获取 \{ ID_i^*\} _{i = 1}^n 对应的公钥 \{ PK_{i,1}^*,PK_{i,2}^*\} _{i = 1}^n ,随机选择 \{ s{k_{i,2}} \in \mathbb{Z}_p^*\} _{i = 1}^n 并计算 \{ {C_{i,1}} = s{k_{i,2}}cP\} _{i = 1}^n ;然后 \mathcal{C} {L_2} {L_3} 中获取 \{ {U_i}\} _{i = 1}^n \{ {V_i}\} _{i = 1}^n ,并计算 v_i^* = {a_i}{U_i} + s{k_{i,2}}{V_i} = {t_i}C_{i,1}^* + s{k_{i,2}}{w_i}PK_{i,1}^* ,其中 {t_i} {w_i} s{k_{i,2}} 分别来自 {H_2} Hash询问、 {H_3} Hash询问与对 ID_j^* 的密钥提取询问;随后 \mathcal{C} 随机选择 \mu \in \{ 0,1\} 并计算 C_{i,4}^* = {H_4}({R_i}) \oplus ({m_{i,\mu }}||v_i^*) C_{i,3}^* = v_i^*P ,然后通过 {H_1} Hash询问获取公钥 \{ PK_{i,1}^*\} _{i = 1}^n 并输出 {\sigma ^*} = (C_{1,1}^*, \cdot \cdot \cdot ,C_{n,1}^*,C_{1,3}^*, \cdot \cdot \cdot ,C_{n,3}^*,C_{1,4}^*, \cdot \cdot \cdot ,C_{n,4}^*,PK_{1,1}^*, \cdot \cdot \cdot ,PK_{n,1}^*) {\mathcal{A}_2} .

    询问阶段2. {\mathcal{A}_2} 执行与询问阶段1类似的多项式有界次适应性查询,但不允许对 ID_i^* ID_j^* 对应的密文进行解签密查询.

    猜测阶段. {\mathcal{A}_2} 输出1个对 \mu 的猜测\mu {'} \in \{ 0,1\},如果\mu {'} = \mu,则 {\mathcal{A}_2} 在以上游戏中获胜. \mathcal{C} 在列表 {L_4} 中选取 ({R_i},{H_4}({R_i})) 并以 {R_i} = abP 作为CDH困难问题的解,这与目前公认的CDH问题的难解性相矛盾.因此本文方案在面对A2敌手时满足选择OW-CCA2安全. 证毕.

    将本文提出的方案与文献[2226]方案在功能特性方面进行比较,对比结果如表1所示.与文献[2324]方案相比,本文方案引入等值测试功能,实现了对存储在云端的医疗密文的安全检索.与文献[22,2526]方案相比,本文方案引入了聚合签密技术,确保了WBAN中医疗数据的机密性、完整性与可认证性,提高了多用户环境下对医疗数据进行签密与验证的效率.文献[2526]方案采用的等值测试方法只能对2个密文进行比较,本文方案实现了同时对多个密文进行匹配,降低了测试者执行密文等值测试时的开销.此外,与文献[2223,2526]方案相比,本文方案达到了适应性选择密文攻击下的单向性,安全性有所提升.

    表  1  功能特性比较
    Table  1.  Comparison of Functional Characteristics
    方案等值
    测试
    多密文等值
    测试
    签密聚合
    签密
    安全性
    文献[22]方案××选择明文攻击下的单向性
    文献[23]方案××选择密文攻击
    下的不可区分性
    文献[24]方案××适应性选择密文攻击
    下的不可区分性
    文献[25]方案×××选择密文攻击下的单向性
    文献[26]方案××选择密文攻击下的单向性
    本文方案适应性选择密文攻击
    下的单向性
    注:“×”表示不具有某种特定功能;“√”表示具有某种特定功能.
    下载: 导出CSV 
    | 显示表格

    本文所提新方案在执行多密文等值测试算法时,测试者通过对范德蒙矩阵求逆以提取出与数据拥有者明文相关的系数.其中,n阶范德蒙矩阵求逆算法的时间复杂度取决于所使用的求逆方法,已有许多学者提出了求解范德蒙矩阵逆矩阵的串行[27-28]与并行[29-30]方法,其时间复杂度如表2所示:

    表  2  范德蒙矩阵求逆算法复杂度
    Table  2.  Complexity of Inversion for Vandermonde Matrix
    方案时间复杂度
    文献[27]方案 O({n^2})
    文献[28]方案 O({n^2})
    文献[29]方案 O((\log n))
    文献[30]方案 O({(\log n)^2})
    下载: 导出CSV 
    | 显示表格

    将本文提出的方案在计算时间开销方面与文献[2526]方案进行对比,假设参与密文等值测试的用户数量为n,使用i7-8750h,2.20 GHz处理器,8 GB内存和Win10操作系统在VC6.0环境下用PBC库分别对本文方案与对比方案进行了仿真模拟,对比结果如表3所示.其中标量乘法运算时间Tsm = 0.0004 ms,群元素乘法运算时间Tmul = 0.0314 ms,Hash函数运算时间Th = 0.0001 ms,指数运算时间Te = 6.9866 ms,双线性配对时间Tbp = 9.6231 ms,范德蒙矩阵求逆时间Tinv取决于矩阵求逆方法.从表3可以看出,由于本文方案中不存在计算开销较大的双线性配对运算,因此在密文生成阶段的计算时间开销相比于文献[2526]的方案有显著降低.在数据解密及验证阶段,非聚合模式下的文献[2526]方案需要所有数据用户逐一对数据进行验证并解密,而本文方案中的数据用户能够对聚合密文进行批量验证,验证效率相比于文献[2526]的方案有所提高.

    表  3  计算量比较
    Table  3.  Computation Amount Comparison ms
    方案密文生成时间密文等值测试时间数据解密及验证时间
    文献[25]方案\begin{aligned} & n{T_{ {\text{mul} } } } + 3n{T_{ {\text{bp} } } } + 6n{T_{\text{h} } } + 5n{T_{\text{e} } } \\ &\quad( 63.8343n )\end{aligned}\begin{aligned} & (n - 1)(4{T_{ {\text{bp} } } } + 2{T_{\text{h} } }) \\ &\quad ( 38.4926n - 38.4926) \end{aligned}\begin{aligned} & 2n{T_{ {\text{bp} } } } + 4n{T_{\text{h} } } + 2n{T_{{\rm{e}} } }\\ &\quad (33.2198n) \end{aligned}
    文献[26]方案\begin{aligned} & 6n{T_{ {\text{sm} } } } + 2n{T_{ {\text{bp} } } } + 7n{T_{\text{h} } } + 2n{T_{\text{e} } } \\ &\quad( 33.2250n) \end{aligned}\begin{aligned} & (n - 1)(4{T_{ {\text{bp} } } } + 2{T_{\text{h} } }) \\ &\quad( 38.4926n - 38.4926) \end{aligned}\begin{aligned}& 3n{T_{ {\text{sm} } } } + n{T_{ {\text{mul} } } } + 5n{T_{ {\text{bp} } } } + 5n{T_{\text{h} } }\\ &\quad ( 48.1486n )\end{aligned}
    本文方案\begin{aligned} & 7n{T_{ {\text{sm} } } } + n{T_{ {\text{mul} } } } + n(n + 4){T_{\text{h} } }\\ &\quad ( 0.0346n + 0.0001{n^2})\end{aligned}\begin{aligned} & n{T_{ {\text{sm} } } } + 2n{T_{\text{h} } } + {T_{ {\text{inv} } } }\\ &\quad ( {T_{ {\text{inv} } } } + 0.0006n) \end{aligned}\begin{aligned} & n(2 + 4n){T_{ {\text{sm} } } } + {n^2}{T_{ {\text{mul} } } } + n(n + 4){T_{\text{h} } } \\ &\quad ( 0.0012n + 0.0331{n^2}) \end{aligned}
    注:n表示参与密文等值测试的用户数量;T_{\text{sm}}表示标量乘法运算时间;T_{\text{mul}}表示群元素乘法运算时间;T_{\text{h}}表示Hash函数运算时间;T_{\text{e}}表示指数运算时间;T_{\text{bp}}表示双线性配对时间;T_{\text{inv}}表示范德蒙矩阵求逆时间.
    下载: 导出CSV 
    | 显示表格

    此外,文献[2526]方案仅支持将多个用户的密文两两一组进行匹配,其密文等值测试算法中双线性配对运算数量与参与测试的用户数量呈线性关系;而本文方案中,测试者可以同时对 n 个用户的密文进行匹配,且测试过程中不存在双线性配对运算.本文方案的等值测试时间主要取决于测试者对范德蒙行列式求逆时所选取的算法,而在对范德蒙矩阵求逆的过程中仅进行标量加法与乘法等计算效率较高的运算[28],因此本文方案的密文等值测试效率同样高于文献[2526]方案的效率.

    针对现有的WBAN密码方案在多用户环境下计算效率较低等问题,本文提出了支持多密文等值测试的WBAN聚合签密方案.该方案采用基于身份的密码体制,消除了传统公钥方案中证书管理的开销;引入多密文等值测试技术,实现了多数据用户对多医疗密文的同时检索;减少了多用户环境下密文等值测试的计算开销;利用聚合签密技术,提高了对多个用户的医疗数据进行签密的效率.本文方案满足医疗数据在传输过程中的机密性、完整性和可认证性,同时保证了数据拥有者签名的不可伪造性与测试陷门的单向性.与同类方案的对比分析结果表明,本文方案支持更多安全属性且计算开销更低.在未来的工作中,将尝试设计抗量子计算攻击的支持多密文等值测试的WBAN签密方案.

    作者贡献声明:杨小东负责论文整体思路与实验方案的设计;周航负责设计方案与撰写论文;任宁宁负责方案仿真与效率分析;袁森负责搜集应用场景相关资料;王彩芬提出指导意见并修改论文.

  • 图  1   现有的基于采样的仿真方法

    Figure  1.   Existing sampling-based simulation methods

    图  2   来自SPECCPU® 2006的492个检查点的仿真时间分布

    Figure  2.   Emulation time distribution of 492 checkpoints from SPECCPU® 2006

    图  3   HyWarm的优化概览:将现存固定预热长度分为3段

    Figure  3.   Optimization overview of HyWarm: Existing fixed warm up duration is divided into three segments

    图  4   主流的基于采样的仿真方法

    Figure  4.   Mainstream sampling-based simulation methods

    图  5   sjeng的预热需求曲线

    Figure  5.   Warm up demand curve of sjeng

    图  6   预热长度搜索过程

    Figure  6.   Warm up length search process

    图  7   GEM5模拟器与香山处理器的分支预测器预热需求

    Figure  7.   Warm up demand of branch predictors in GEM5 simulator and Xiangshan processor

    图  8   开启Verilator多线程对调度策略的影响

    Figure  8.   Impact of enabling multi-threading in Verilator on scheduling policy

    图  9   不同的调度策略下最大完成时间对比

    Figure  9.   Comparison of maximum completion time under different scheduling policies.

    图  10   HyWarm工作流程

    Figure  10.   Workflow of HyWarm

    图  11   Filter模式的工作流程

    Figure  11.   Workflow of Filter mode

    图  12   接收TileLink请求的缓存子系统

    Figure  12.   Cache subsystem that receives TileLink requests

    图  13   检查点的预热需求(指令数)分布

    Figure  13.   Distribution of warm up demand (the number of instructions) or checkpoints.

    图  14   GEM5模拟器与香山处理器的预热需求曲线

    Figure  14.   Warm up demand curve of GEM5 simulator and Xiangshan processor

    图  15   不同预热方案对L1MP的影响

    Figure  15.   Impact of different warm up schemes on L1MP

    图  16   不同预热方案对分支MPKI的影响

    Figure  16.   Impact of different warm up schemes on branch MPKI

    图  17   不同预热方案对CPI的影响

    Figure  17.   Impact of different warm up schemes on CPI

    图  18   使用自适应预热时53个负载的全细节仿真周期数分布

    Figure  18.   Distribution of total detailed simulation cycle counts for 53 workloads using adaptive warm up

    表  1   在AMD EPYC 7H12 64核服务器上运行不同并行任务数的Verilator的仿真速度

    Table  1   Emulation Speed of Verilator with Different Parallelism on AMD EPYC 7H12 Server with 64 Cores

    仿真速度/IPS 4线程单任务4线程16任务满载性能损失
    单任务2153.131189.31
    每核538.28297.3345%
    下载: 导出CSV

    表  2   常用的RTL性能评估方法对比

    Table  2   Comparison of Commonly Used RTL Performance Evaluation Methods

    RTL性能评估方法仿真频率典型价格/CNY是否可租用典型可容纳设计
    RTL软件仿真器\leqslant 1kHz5−10万可容纳商业级SoC
    公有云FPGA\leqslant 100MHz每天240−3600Boom处理器
    私有FPGA\leqslant 100MHz\leqslant 40万香山处理器
    硬件仿真加速器\leqslant 1MHz>1000万可容纳商业级SoC
    下载: 导出CSV

    表  3   服务器低负载时Verilator仿真的多线程扩展效率对比

    Table  3   Comparison of Multi-threading Scaling Efficiency of Verilator Emulation When Server Load is Low

    线程数量14816
    每核 IPS190.82538.28450.94321.27
    下载: 导出CSV

    表  4   服务器满载时Verilator仿真的多线程扩展效率对比

    Table  4   Comparison of Multi-threading Scaling Efficiency of Verilator Emulation When Server is Fully Loaded

    线程数量4816
    每核IPS297.33389.27335.50
    下载: 导出CSV

    表  5   微结构配置

    Table  5   Microarchitectural Configuration

    部件配置
    分支预测器16KB TAGE-SC + ITTAGE + RAS + 4KB BTB
    一级数据缓存128KB, 8路数据缓存
    一级指令缓存128KB, 8路指令缓存
    二级缓存1MB 8路 非包含
    三级缓存6MB 6路 非包含
    一级指令TLB40项
    一级数据TLB136(128 × 4k页 + 8 × 2M页)
    二级TLB2K项
    取指宽度每周期8×4B指令
    译码重命名宽度每周期6条指令
    ROB/LQ/SQ256/80/64
    物理寄存器堆192整数;192浮点
    执行单元Int: 4×ALU, 2×MDU, 1×Misc
    Mem: 2×Ld AGU, 2×St AGU
    Float: 4×FMA, 2×Misc
    下载: 导出CSV

    表  6   预热配置

    Table  6   Warm up Configurations

    方案功能预热的
    M条指令数
    全细节预热的
    M条指令数
    性能测量的
    M条指令数
    0+1001005
    0+50505
    0+25205
    0+10105
    0+555
    Ada100−DW自适应(DW5
    FixedFW
    (95+5)
    9555
    下载: 导出CSV

    表  7   不同功能预热方案的总仿真时长对比 h

    Table  7   Comparison of Total Simulation Time for Different Functional Warm up Schemes

    子项0+50+100+25FixedFW (95+5)Ada
    GemsFDTD0.370.551.040.420.29
    astar.bi0.570.911.650.580.64
    astar.ri0.690.951.970.660.79
    bwaves0.570.921.680.600.43
    bzip2.chi0.300.430.810.300.22
    bzip2.com1.001.522.711.010.72
    bzip2.htm0.300.430.920.340.31
    bzip2.lib0.300.420.890.300.21
    bzip2.pro1.011.603.190.980.68
    bzip2.sou0.951.492.921.080.96
    cactusADM0.410.601.350.470.32
    calculix0.350.601.120.360.26
    dealII0.330.511.100.401.20
    gamess.cy0.330.491.000.363.46
    gamess.gra0.350.511.060.381.09
    gamess.tri0.330.500.920.341.10
    gcc.1660.420.611.330.481.34
    gcc.2000.901.172.720.890.71
    gcc.cpde0.540.861.630.621.75
    gcc.expr20.580.861.760.631.03
    gcc.expr0.630.891.750.610.70
    gcc.g230.550.761.540.660.43
    gcc.s040.570.931.660.670.69
    gcc.scil0.901.102.340.942.48
    gcc.type0.921.442.620.911.57
    gobmk.13x0.941.513.080.991.66
    gobmk.nn0.851.282.610.920.61
    gobmk.sco0.971.342.700.980.66
    gobmk.tr0.951.302.630.870.98
    gobmk.tr0.711.072.260.731.17
    gromacs0.721.002.250.720.48
    h264ref.f0.440.581.210.470.45
    h264ref.s0.380.501.040.382.23
    hmmer.nph0.771.252.520.851.45
    hmmer.re0.801.212.430.920.79
    lbm0.671.022.080.740.57
    leslie3d0.510.781.430.510.35
    libquantum0.560.781.550.980.39
    mcf3.144.189.353.342.32
    milc0.420.591.260.460.34
    namd0.520.771.380.480.31
    omnetpp1.081.663.191.271.06
    perl.che0.460.681.290.470.83
    perl.di0.550.831.370.521.56
    perl.spli0.430.661.310.430.32
    povray0.550.881.650.545.39
    sjeng0.721.052.000.672.14
    soplex.p1.151.593.571.360.87
    soplex.r1.111.703.051.140.71
    sphinx30.460.721.330.591.49
    tonto0.370.551.190.410.48
    xalancbmk0.891.422.561.171.03
    zeusmp0.510.751.530.580.39
    总计35.852.7105.538.554.4
    注:黑体数字表示mcf是25M全细节预热下的时间最长的子项,而povray是Ada配置下的时间最长子项.
    下载: 导出CSV

    表  8   不同方案准确率对比

    Table  8   Accuracy Comparison of Different Schemes %

    方案CPI分支MPKIL1MP
    Ada99.691.695.1
    0+5099.898.997.5
    0+2599.794.191.3
    0+1099.185.282.8
    下载: 导出CSV

    表  9   WarmProfiler的分支MPKI预测误差(增高)

    Table  9   Branch MPKI Prediction Error Caused by WarmProfiler (increase)

    子项完美预测
    MPKI
    MPKI
    增高
    MPKI
    增高百分比/%
    gcc_expr20.4430.17739.9
    gcc_g230.9730.17217.7
    tonto0.5060.11723.1
    gamess_g0.4300.11226.1
    gcc_scilab7.6870.0901.2
    xalancbmk2.0030.0793.9
    gcc_s040.1630.07042.8
    perl_di0.6690.0669.8
    h264ref_f0.0420.064151.9
    astar_rivers3.4220.0531.6
    注:计算MPKI误差的方法是用WarmProfiler指导预热所得的MPKI减去用RTL的真实预热需求进行预热所得到的MPKI. 黑体数字标识出了MPKI误差超过0.1的子项.
    下载: 导出CSV

    表  10   簇的数量对调度均衡度的影响

    Table  10   Impact of Cluster Count on Scheduling Balance

    调度均衡度随机调度LJF调度
    4 簇 × 16核0.930.99
    8 簇 × 8核0.760.98
    16 簇 × 4核0.540.63
    下载: 导出CSV

    表  11   LJF调度与随机调度的仿真时间对比

    Table  11   Comparison of Simulation Time Between LJF Scheduling and Random Scheduling

    仿真随机调度/hLJF调度/h提升率/%
    Ada,8核×8簇8.716.9120.61
    Ada,8核×16簇6.255.3813.89
    25+5,8核×8簇15.9813.5415.26
    25+5,8核×16簇11.299.3517.23
    注:Ada结合LJF调度是HyWarm提出的方案;25+5结合随机调度是基线方案.
    下载: 导出CSV

    表  12   采用模拟器IPC和RTL的真实IPC指导LJF调度的最大完成时间

    Table  12   Maximum Completion Time of LJF Scheduling Guided by Simulator IPC and Real IPC of RTL h

    Ada仿真模拟器预测IPC真实IPC
    8核 × 4 簇13.7713.67
    8核 × 8 簇6.916.92
    8核 × 16 簇5.385.38
    注:黑体数字标识出8簇下模拟器预测IPC获得了更短的完成时间,这是因为LJF是贪心算法,完成时间的预测误差可能导致更好的调度结果.
    下载: 导出CSV
  • [1]

    Bachrach J, Vo H, Richards B, et al. Chisel: Constructing hardware in a scala embedded language[C] //Proc of the 49th Annual Design Automation Conf. New York: ACM, 2012: 1212–1221

    [2]

    Nikhil R. Bluespec systemVerilog: Efficient, correct RTL from high-level specifications[C] //Proc of the 2nd Int Conf on Formal Methods and Models for Co-Design. Piscataway, NJ: IEEE, 2004: 69–70

    [3]

    Asanovic K, Avizienis R, Bachrach J, et al. The Rocket Chip Generator[R]. Berkeley, CA: UC Berkeley, 2016

    [4]

    Xu Yinan, Yu Zihao, Tang Dan, et al. Towards developing high performance RISC-V processors using agile methodology[C] //Proc of the 55th Annual Int Symp on Microarchitecture. Piscataway, NJ: IEEE, 2022: 1178–1199

    [5]

    Lockhart D, Zibrat G, Batten C. PyMTL: A unified framework for vertically integrated computer architecture research[C] //Proc of the 47th Annual Int Symp on Microarchitecture (MICRO). Los Alamitos, CA: IEEE Computer Society, 2014: 280–292

    [6]

    Celio C, Chiu P F, Asanović K, et al. Broom: An open-source out-of-order processor with resilient low-voltage operation in 28-nm CMOS[J]. IEEE Micro, 2019, 39(2): 52−60 doi: 10.1109/MM.2019.2897782

    [7]

    Celio C, Patterson D, Asanovi K. The Berkeley Out-of-Order Machine ( BOOM ) Design Specification[R]. Berkeley, CA: UC Berkeley, 2016

    [8] 王凯帆,徐易难,余子濠等. 香山开源高性能 RISC-V 处理器设计与实现[J]. 计 算 机 研 究 与 发 展,2023,60(3):476−493

    Wang Kaifan, Xu Yinan, Yu Zihao, et al. XiangShan open-source high performance RISC-V processor design and implementation[J]. Journal of Computer Research and Development, 2023, 60(3): 476−493 (in Chinese)

    [9]

    Veripool. Verilator, the fastest Verilog/SystemVerilog simulator. [EB/OL]. [2022-10-20]. https://www.veripool.org/verilator/

    [10]

    Sherwood T, Perelman E, Calder B. Basic block distribution analysis to find periodic behavior and simulation points in applications[C] //Proc of the 2001 Int Conf on Parallel Architectures and Compilation Techniques. Los Alamitos, CA: IEEE Computer Society, 2001: 3–14

    [11]

    Wunderlich R E, Wenisch T F, Falsafi B, et al. SMARTS: Accelerating microarchitecture simulation via rigorous statistical sampling[C] //Proc of the 30th Annual Int Symp on Computer Architecture, ISCA. Los Alamitos, CA: IEEE Computer Society, 2003: 84–95

    [12]

    Binkert N, Beckmann B, Black G, et al. The gem5 simulator[C] //Proc of the 16th Int Conf on Architectural Support for Programming Languages and Operating Systems.New York: ACM, 2011, 39(2): 1–7

    [13]

    Kabylkas N, Thorn T, Srinath S, et al. Effective processor verification with logic fuzzer enhanced co-simulation[C] //Proc of the 54th Annual Int Symp on Microarchitecture. New York: ACM, 2021: 667–678

    [14]

    Eeckhout L, Luo Y, De Bosschere K, et al. BLRL: Accurate and efficient warmup for sampled processor simulation[J]. Computer Journal, 2005, 48(4): 451−459 doi: 10.1093/comjnl/bxh103

    [15]

    Wenisch T F, Wunderlich R E, Falsafi B, et al. TurboSMARTS: Accurate microarchitecture simulation sampling in minutes[C] //Proc of the Int Conf on Measurements and Modeling of Computer Systems.New York: ACM, 2005: 408–409

    [16]

    Nikoleris N, Sandberg A, Hagersten E, et al. CoolSim: Statistical techniques to replace cache warming with efficient, virtualized profiling[C] //Proc of the Int Conf on Embedded Computer Systems: Architectures, Modeling and Simulation. Piscataway, NJ: IEEE, 2017: 106–115

    [17]

    Nikoleris N, Eeckhout L, Hagersten E, et al. Directed statistical warming through time traveling[C] //Proc of the 52nd Annual Int Symp on Microarchitecture. New York: ACM, 2019: 1037–1049

    [18]

    Patil H, Isaev A, Heirman W, et al. ELFies: executable region checkpoints for performance analysis and simulation[C] // Proc of the Int Symp on Code Generation and Optimization. Piscataway, NJ: IEEE, 2021: 126–136

    [19]

    Haskins J W, Skadron K. Memory reference reuse latency: accelerated warmup for sampled microarchitecture simulation[C] //Proc of the Int Symp on Performance Analysis of Systems and Software. Los Alamitos, CA: IEEE Computer Society, 2003: 195–203

    [20]

    Yue Luo, John L K, Eeckhout L. Self-monitored adaptive cache warm-up for microprocessor simulation[C] //Proc of the 16th Symp on Computer Architecture and High Performance Computing. Los Alamitos, CA: IEEE Computer Society, 2004: 10–17

    [21]

    ARM. Learn the architecture-introducing AMBA CHI[EB/OL]. [2022-11-24]. https://developer.arm.com/documentation/102407/0100

    [22]

    Cook H, Terpstra W, Lee Y. Diplomatic design patterns: A TileLink case study[C] //Proc of the First Workshop on Computer Architecture Research with RISC-V. Berkeley, CA: UC Berkeley, 2017: 23

    [23]

    Coffman E G, Sethi R. A generalized bound on LPT sequencing[C] //Proc of the Int Symp on Computer Modeling, Measurement and Evaluation. New York: ACM, 1976: 306–310

    [24]

    Xiao Xin. A direct proof of the 4/3 bound of LPT scheduling rule[C] //Proc of Int Conf on Frontiers of Manufacturing Science and Measuring Technology. Amsterdam, The Netherlands: Atlantis, 2017: 486–489

    [25]

    Tan Zhangxi, Waterman A, Cook H, et al. A case for FAME: FPGA architecture model execution[C] //Proc of the 37th Int Symp on Computer Architecture. New York: ACM, 2010: 290–301

    [26]

    Karandikar S, Mao H, Kim D, et al. FireSim : FPGA-accelerated cycle-exact scale-out system simulation in the public cloud[C] //Proc of the 45th Annual Int Symp on Computer Architecture. Los Alamitos, CA: IEEE Computer Society, 2018: 29-42

    [27]

    Kim D, Izraelevitz A, Celio C, et al. Strober: Fast and accurate sample-based energy simulation for arbitrary RTL[C] //Proc of the 43rd Int Symp on Computer Architecture. Los Alamitos, CA: IEEE Computer Society, 2016: 128–139

    [28]

    Hung W N N, Sun R. Challenges in large FPGA-based logic emulation systems[C] //Proc of the Int Symp on Physical Design. New York: ACM, 2018: 26–33

    [29]

    Agnesina A, Lim S K, Lepercq E, et al. Improving FPGA-based logic emulation systems through machine learning[J].ACM Trans on Design Automation of Electronic Systems, 2020, 25(5): 46:1-46:20

    [30]

    Cadence. Palladium Emulation [EB/OL]. [2022-12-22]. https://www.cadence.com/en_US/home/tools/system-design-and-verification/emulation-and-prototyping/palladium.html

    [31]

    Siemens Software. Veloce Hardware-assisted Verification System[EB/OL]. [2023-01-08]. https://eda.sw.siemens.com/en-US/ic/veloce/

    [32]

    Synopsys. Synopsys Emulation Systems[EB/OL]. [2023-01-08]https://www.synopsys.com/verification/emulation.html

    [33]

    Beamer S, Donofrio D. Efficiently exploiting low activity factors to accelerate RTL simulation[C] //Proc of the Design Automation Conf. Piscataway, NJ: IEEE, 2020: 1-6

    [34]

    Sandberg A, Nikoleris N, Carlson T E, et al. Full speed ahead: Detailed architectural simulation at near-native speed[C] //Proc of the Int Symp on Workload Characterization. Los Alamitos, CA: IEEE Computer Society, 2015: 183–192

    [35]

    Hassani S, Southern G, Renau J. LiveSim: Going live with microarchitecture simulation[C] //Proc of the Int Symp on High-Performance Computer Architecture. Los Alamitos, CA: IEEE Computer Society, 2016: 606–617

    [36]

    Vengalam U K R, Sharma A, Huang M C. LoopIn: A Loop-Based Simulation Sampling Mechanism[C] //Proc of the Int IEEE Symp on Performance Analysis of Systems and Software. Piscataway, NJ: IEEE, 2022: 224–226

    [37]

    Carlson T E, Heirman W, Van Craeynest K, et al. BarrierPoint: Sampled simulation of multi-threaded applications[C] //Proc of the Int Symp on Performance Analysis of Systems and Software. Los Alamitos, CA: IEEE Computer Society, 2014: 2–12

    [38]

    Grass T, Carlson T E, Rico A, et al. Sampled simulation of task-based programs[J]. IEEE Trans on Computers, 2019, 68(2): 255−269 doi: 10.1109/TC.2018.2860012

    [39]

    Ardestani E K, Renau J. ESESC: A fast multicore simulator using time-based sampling[C] //Proc of the Int Symp on High-Performance Computer Architecture. Los Alamitos, CA: IEEE Computer Society, 2013: 448–459

    [40]

    Pestel S De, Eyerman S, Eeckhout L. Micro-architecture independent branch behavior characterization[C] //Proc of the Int Symp on Performance Analysis of Systems and Software. Los Alamitos, CA: IEEE Computer Society, 2015: 135–144

    [41]

    RISC-V International. RISC-V Debug Support Version 1.0.0-STABLE[EB/OL]. [2023-01-26]. https://github.com/riscv/riscv-debug-spec

    [42]

    Standard Performance Evaluation Corporation. SPEC CPU® 2006[EB/OL]. [2023-01-26]. https://www.spec.org/cpu2006/

    [43]

    Barr K C, Pan H, Zhang M, et al. Accelerating multiprocessor simulation with a memory timestamp record[C] //Proc of the Int Symp on Performance Analysis of Systems and Software. Los Alamitos, CA: IEEE Computer Society, 2005: 66–77

    [44]

    Black B, Shen J P. Calibration of microprocessor performance models[J]. Computer, 1998, 31(5): 59−65 doi: 10.1109/2.675637

    [45]

    Barr K C, Pan H, Zhang M, et al. Accelerating multiprocessor simulation with a memory timestamp record[C] //Proc of the Int Symp on Performance Analysis of Systems and Software. Austin, Texas, USA: IEEE Computer Society, 2005: 66–77.

    [46]

    Seznec A. A 256 Kbits L-TAGE branch predictor[J]. Journal of Instruction-Level Parallelism Special Issue: The Second Championship Branch Prediction Competition, 2007, 9: 1−6

    [47]

    Predictors T B, Irisa I. TAGE-SC-L Branch Predictors [J]. 5th JILP Workshop on Computer Architecture Competitions: Championship Branch Prediction, 2016:267175

    [48]

    Järvelin K, Kekäläinen J. Cumulated gain-based evaluation of IR techniques[J]. ACM Transaction on Information Systems, 2002, 20(4): 422−446 doi: 10.1145/582415.582418

    [49]

    Khan T A, Brown N, Sriraman A, et al. Twig: Profile-guided BTB prefetching for data center applications[C] //Proc of the 54th Annual Int Symp on Microarchitecture. New York: ACM, 2021: 816–829

    [50]

    Qureshi M K, Patt Y N. Utility-based cache partitioning: A low-overhead, high-performance, runtime mechanism to partition shared caches[C] //Proc of the 43rd Annual Int Symp on Microarchitecture. Los Alamitos, CA: IEEE Computer Society, 2006: 423–432

    [51]

    Delimitrou C, Kozyrakis C. IBench: Quantifying interference for datacenter applications[C] //Proc of the Int Symp on Workload Characterization. Los Alamitos, CA: IEEE Computer Society, 2013: 23–33

    [52]

    Leverich J, Kozyrakis C. Reconciling high server utilization and sub-millisecond quality-of-service[C] //Proc of the European Conf on Computer Systems. New York: ACM, 2014: 1-14

    [53]

    Muralidhara S P, Subramanian L, Mutlu O, et al. Reducing memory interference in multicore systems via application-aware memory channel partitioning[C] //Proc of the 44th Annual Int Symp on Microarchitecture. New York: ACM, 2011: 374–385

    [54]

    Kasture H, Sanchez D. Ubik: Efficient cache sharing with strict QoS for latency-critical workloads[C] //Proc of the Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2014: 729–742

    [55]

    Ma Jiayue, Sui Xiufeng, Sun Ninghui, et al. Supporting differentiated services in computers via programmable architecture for resourcing-on-demand (PARD)[C] //Proc of the Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2015, 50(4): 131–143

    [56]

    Krause K L, Shen V Y, Schwetman H D. Analysis of several task-scheduling algorithms for a model of multiprogramming computer systems[J]. Journal of the ACM, 1975, 22(4): 522−550 doi: 10.1145/321906.321917

    [57]

    Hochbaum D S, Shmoys D B. Polynomial approximation scheme for scheduling on uniform processors: Using the dual approximation approach[J]. SIAM Journal on Computing, 1988, 17(3): 539−551 doi: 10.1137/0217033

    [58]

    Horowitz E, Sahni S. Exact and approximate algorithms for scheduling nonidentical processors[J]. Journal of the ACM, 1976, 23(2): 317−327 doi: 10.1145/321941.321951

    [59]

    Graham, Ronald L. Bounds for certain multiprocessing anomalies[J]. Bell System Technical Journal, 1966, 45(9): 1563−1581 doi: 10.1002/j.1538-7305.1966.tb01709.x

    [60]

    Sifive. Block-Inclusivecache-Sifive[EB/OL]. [2023-01-25]. https://github.com/sifive/block-inclusivecache-sifive

  • 期刊类型引用(0)

    其他类型引用(2)

图(18)  /  表(12)
计量
  • 文章访问数:  338
  • HTML全文浏览量:  69
  • PDF下载量:  144
  • 被引次数: 2
出版历程
  • 收稿日期:  2023-01-09
  • 修回日期:  2023-04-14
  • 网络出版日期:  2023-05-03
  • 刊出日期:  2023-05-31

目录

/

返回文章
返回