登录
账号
密码
还没有参赛账号,立即注册 >
还没有单位账号,申请创建 >
返回
“华为杯”第三届中国研究生创“芯”大赛——华为企业命题
发布时间:2020-05-24 来源:中国研究生创“芯”大赛 阅读次数:5310

赛题一:后量子密码算法实现

描述及要求:

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