赛题一:后量子密码算法实现
描述及要求:
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

