附件2 “华为杯”第三届中国研究生创“芯”大赛——华为企业命题.docx
附件 2: “华为杯”第三届中国研究生创“芯”大赛——华为企业命题 赛题一:后量子密码算法实现 描述及要求: 1.软硬件结合或硬件实现 XMSS(RFC 8391)算法或 Leighton-Micali Hash-Based Signatures(RFC 8554)算法,基于 SHA2/SHA3(SHA2/SHA3 二选一); 2.Hash 算法需要硬件实现; 3.工作时钟频率 100M HZ 以上,硬件部分需采用 VHDL\VERILOG 实现; 评审得分点: 1.功能正确实现; 2.满足题目要求,方案清晰,模块划分合理; 3.代码简洁,逻辑清晰,可维护性好; 4.面积合理,有对资源、吞吐率、功耗的分析; 5.有对功能验证的完备性分析; 6.有安全性验证可加分; 7.能防御常见的侧信道及故障注入攻击(如 SPA、DPA、DFA)可加分; 输出要求: 1.算法模型代码及文档;(C\matlab 等不限) 2.详细设计文档和逻辑代码; 3.有验证的数据和波形截图; 赛题二:防 DFA/SPA/DPA 的 x25519/x448/ED25519/ED448 算法实现 描述及要求: 1.实现 x25519/x448/ED25519/ED448 点乘运算的任意一种即可,高层 算法不要求实现; 2.可采用软硬结合或全硬方式实现。软硬件结合实现时,采用硬件实 现的运算算子个数和类型不做要求,软硬件分工自由划分; 3.要求算法能够防御 DFA/SPA/DPA 三种攻击方式; 评审得分点: 1.能够防御 DFA/SPA/DPA(防 DFA 算法不能选用计算两次方式实现), 并有相应的分析以及理论推导; 2.防攻击漏洞越少,得分越高; 3.需要有资源、功耗、性能评估结果; 4.有攻击验证报告更优,验证的方式不限;(此项为加分项,不做统 一要求) 输出要求: 1.总体设计方案以及理论分析文档; 2.详细设计文档和逻辑代码、软件代码; 赛题三:高性能硬件实现蒙哥马利域模乘算法 描述及要求: 1.实现 4096bit 蒙哥马利域模乘算法; 2.乘法器可以使用*实现,乘法器位宽不做要求; 3.综合频率不低于 300MHz,实现 4096 位宽模乘 Cycle 数不多于 4000; 4.逻辑门不大于 200KGate,RAM 空间不大于 24Kbit; 5.不要求在 FPGA 器件或 ASIC 器件等载体上实现,能通过综合、仿真 验证即可; 评审得分点: 1.符合要求的基础上,性能越高,得分越高; 2.需要说明所设计方案的优点和亮点,有资源、功耗评估结果; 输出要求: 1.算法模型设计文档和算法模型代码(C\matlab 等不限); 2.详细设计文档和逻辑代码、软件代码; 3.算法实现合理性分析文档; 赛题四:逻辑实现带防护的 SHA-3-HMAC 算法 描述及要求: 1.采用 Verilog 实现带防护的 SHA-3-HMAC 算法,工作时钟频率 100MHz 以上,分组运算时间小于 100cycle; 2.SHA-3-HMAC 支持 256/384/512 摘要值,不同位宽摘要值可通过配 置选择; 3.SHA-3-HMAC 算法具有全面防御常见的侧信道(如 CPA 等)及错误 注入(如 AFA 等)攻击的能力; 4.SHA-3 模块的 IV 信号可单独配置,SHA-3 模块可在模块内部自动完 成 Padding 补位操作; 5.模块设计时需要关注模块的面积、性能和功耗; 评审得分点: 1.实现算法功能正确,满足题目要求; 2.设计方案文档描述清晰,模块功能划分合理; 3.代码简洁,可维护性好; 4.防攻击方案设计合理有效,防攻击效果越好,得分越高; 5.要求有完备的验证方案和验证用例; 输出要求: 1.算法模型代码及文档;(C\matlab 等不限) 2.详细设计文档和逻辑代码; 3.输出验证用例、验证数据和波形截图; 赛题五: SHA3-HMAC 的攻击模型建立以及比较 描述及要求: 1.攻击模型中至少涵盖 CPA 、TA(模板攻击)、CNN,其他模型可自行 添加对比; 2.从理论上分析对比各个模型的优缺点及适应性; 3.基于 SHA3-HMAC 算法,进行基于 FPGA/ASIC 等器件的攻击实验(也 可使用已公开的 SHA3 功耗/电磁曲线),来验证理论分析的结论; 4.根据上述的攻击方式,梳理出 SHA3-HMAC 侧信道攻击的脆弱点。并 能针对脆弱点提出相应的防御措施、方法(不要求实现,描述方法即 可); 评审得分点: 对比模型越多,理论分析越全面透彻,得分越高; 发现的脆弱点越多,得分越高; 攻击实验覆盖度越高,得分越多; 如能对带一定防护的曲线进行攻击对比,可加分; 输出要求: 1.输出攻击模型的理论分析文档及实现代码;(限 C/C++/Matlab) 2.输出攻击测试数据; 3.输出薄弱点分析及测试报告; 赛题六:逻辑实现带防护的 Camellia、PRESENT 等算法 描述及要求: 1.采用 Verilog 实现 Camellia、 PRESENT、WHIRLPOOL、CHACHAPOLY1305、 Multi2、Prince 中的任意一种,工作时钟频率 300MHz 以上; 2.模块接口按照分组计算的方式实现,模块的接口可参考以下方式, 实际实现时可根据具体实现进行增加或删减; Input clk, Input rst_n, Input block_input,(位宽为一个输入分组长度, 例如 AES 为 128bit 分组) Input block_run, Input data_length,(位宽 32bit,验证最大 10MB) Input input_key,(位宽为输入密钥长度) Output block_done, Output block_output,(位宽为一个输出分组长度) Output block_busy 3.输入数据只支持以 Byte 为单位,不支持以 bit 为单位,数据大小 端不做要求; 4.给出算法防御常见的侧信道及错误注入攻击(如 CPA、DFA 等)的 防攻击设计方案; 5.不要求在 FPGA 器件或 ASIC 器件等载体上实现,能通过代码综合、 仿真验证即可; 评审得分点: 1.实现算法功能正确,满足题目要求; 2.防攻击方案设计详细、清晰、合理有效,对防攻击效果进行详细分 析,防攻击效果越好,得分越高; 3.代码简洁,可维护性好; 4.对于模块的面积、性能和功耗优化力度越大,得分越高; 5.有完备的验证方案和验证用例; 输出要求: 1.算法模型代码及文档;(C\matlab 等不限) 2.详细设计文档和逻辑代码; 3.有验证的用例、测试数据和波形截图; 赛题七:侧信道泄露检测的理论分析及实际效果测评 描述及要求: 1.选择任意一种对称加密算法、Hmac 算法或者非对称算法; 2.从理论上比较泄露检测方式(如 TVLA 等),说明各个泄露检测方式 的优缺点; 3.在 FPGA 平台上进行实际测试对比,来验证理论分析的结论; 4.实现的加密算法时钟频率不限,但需包含无防护及带防护逻辑; 评审得分点: 1.理论分析越全面,得分越高; 2.在 FPGA 平台上检测场景越多得分越高; 3.不同泄露检测方式比对理论分析清晰,结论越合理越全面得分越高; 输出要求: 1.算法 IP 的设计文档、实现代码以及实验数据; 2.不同泄露检测方式的比较分析文档; 3.不同泄露检测方式的算法文档和实现代码; 赛题八:SOC 安全权限隔离实现 描述及要求: 1.权限隔离是一种重要的安全防护手段。 2.实现一个 SOC 系统,具备三种安全级别权限的隔离能力,三种权限 之间的权限大小关系自定义; 3.SOC 中至少包含 CPU(例如 RISC-V)、总线、SRAM 和一个外设接口 (例如 UART),能够支持三种权限。其他组件可选,不做强制要求; 4.题目中未明确要求的,不做强制要求。 评审得分点: 1.设计方案清晰,对实现方式和性能进行详细分析; 2.提供功能、性能仿真报告,每个组件功能正确; 3.正确实现三种权限之间的隔离; 4.SOC 中支持隔离功能的组件越多,得分越高。 输出要求: 1.设计方案说明书; 2.RTL 代码 (Verilog 或者 VHDL); 3.功能、性能仿真报告。 赛题九:内存安全防护实现 描述及要求: 1.在安卓平台中,大部分的安全漏洞都是内存安全 bug,要求基于任 意 CPU(例如 RISC-V)、总线等组件实现内存防护,能够从硬件层面 缓解内存 bug; 2.能够缓解 memory use-after-free 攻击; 3.能够缓解 memory overflow 攻击; 4.题目中未明确要求的,不做强制要求。 评审得分点: 1.方案设计清晰,对安全性和性能开销进行详细分析; 2.通过仿真说明安全防护能力; 3.至少能够缓解 memory use-after-free 和 memory overflow 攻击, 能够防御的内存攻击越多,得分越高; 4.性能开销越小得分越高; 5.面积代价合理。 输出要求: 1.安全方案设计文档; 2.RTL 代码 (Verilog 或者 VHDL); 3.功能、性能仿真报告。 赛题十:安全 CPU 设计 描述及要求: 1.基于任意开源 CPU 核(例如 RISC-V),设计改进 CPU,使单核 CPU 能够抵抗大多数的功耗攻击、timing 攻击、故障注入攻击等; 2.题目中未明确要求的,不做强制要求。 评审得分点: 1.方案设计清晰,对各种防护方式进行说明,对整体防护能力进行分 析评估; 2.通过仿真说明其安全防护效果; 3.防护能力越全面,得分越高; 4.性能开销越小得分越高; 5.面积代价合理。 输出要求: 1.安全 CPU 的设计文档; 2.RTL 代码 (Verilog 或者 VHDL); 3.功能、性能仿真报告。 赛题十一:DDR 数据安全保护模块 IP 设计 描述及要求: 1.基于标准加密算法设计一个加密模块 IP,通过该模块 IP,SOC 对 存入 DDR 的数据进行机密性、完整性和防重放性的保护; 2.数据接口支持标准的 AXI 总线协议,数据位宽为 128bit,参数配 置接口不做要求。 评审得分点: 1.方案设计清晰,能够对存入 DDR 的数据进行机密性,完整性和防重 放保护,对方案的安全性进行分析; 2.对数据吞吐量影响越小,读写 latency 越小,得分越高; 3.逻辑开销越小,得分越高。 输出要求: 1.模块 IP 设计方案文档; 2.RTL 代码 (Verilog 或者 VHDL); 3.功能、性能仿真报告以及功耗/性能/面积评估数据。 作品提交要求: 由于华为赛题的专项奖是线下评审,没有答辩环节,除按竞赛组委会 要求提交 PPT 外,还需按华为赛题要求提供文档和代码。如果是硬件 作品,需提供照片或视频,含竞赛组成员合影。 华为专项奖设置: 华为公司为选作华为赛题的前 15 名赛队设立华为专项奖,获奖赛队 可同时参评竞赛组委会设立的其它竞赛奖。 华为专项奖一等奖 5 队,每队奖金 1 万元, 华为专项奖二等奖 10 队,每队奖金 0.5 万元。 华为命题专家咨询邮箱:wangbo24@hisilicon.com