云计算的出现使得海量数据的处理正逐渐从用户本地转向云服务器,与此同时也带来了数据泄露的问题。同态加密是一种允许对加密数据进行运算的加密技术,是在保证数据安全的前提下实现数据分享的一种理想方案。因此,同态加密在隐私计算领域具有重要的地位,也被应用到了例如联邦学习、隐私数据求交等领域。
Paillier作为一种半同态加密算法,具有可以无限次进行同态加法运算的特性,同时由于其较为优秀的性能,受到了大量隐私计算开发者的青睐,但是同态计算相比明文计算性能仍然相当缓慢,而许多隐私计算的应用场景数据量非常巨大,同时又有一定实时性的要求,因此需要对其进行加速,以满足现有的应用场景。
本赛道要求参赛者使用数字电路的方式给出Paillier算法的加速系统的设计与实现,并在指定的FPGA型号上进行综合实现。初赛将根据各个参赛队伍提交的内容进行打分,选取其中表现优秀的队伍进入决赛。
2.1 功能要求
在Xilinx Virtex7 690T(xc7vx690tffg1761-2)芯片或开发板Virtex-7 VC709开发板上设计一个Paillier算法加速系统,使用PCIe(XDMA)作为数据输入接口。
使用数字电路方式安全实现半同态加密算法Paillier的计算,要求如下:
① 需要支持参数n=pxq,n为2048比特,p和q为长度为1024比特的素数;
② 支持加密、解密、同态加法、密文乘明文这4类操作。
③ 可以是单个加速核,也可以是多个加速核心
④ 可以使用DDR存储数据
⑤ 选择合适的总线结构,首要目标是获得最大吞吐量,在此基础上尽量减少输入到输出的latency。
在设计时,为简化工作,输入接口可以等效为位宽为256bit/Cycle@250MHz的AXI。需要对设计进行仿真和综合实现,不要求进行板上测试。
2.2 安全要求
在不降低算法安全性的情况下可对算法参数进行调整。
2.3 验证要求
输入格式:
AXI向0x00000000_00000000地址连续写入数据(突发模式),测试共4组,输入数据为:
第1组——加密:(2048bit明文+2048bit随机数)×100,000组;
第2组——解密:4096bit密文×100000组;
第3组——同态加法:(4096bit密文加数1+4096bit密文加数2)×100,000组;
第4组——密文乘明文:(4096bit密文+2048bit明文)×100,000组。
输出格式:
数据发送完成后,AXI从0x00000001_00000000连续读出数据(突发模式),数据格式为:
第1组——加密:4096bit密文×100,000组;
第2组——解密:2048bit明文×100000组;
第3组——同态加法:4096bit密文×100,000组;
第4组——密文乘明文:4096bit密文×100,000组。
4组分开进行,每组单独统计性能和结果是否正确。
2.4 输出要求
1)书面报告,需要包括:
a)算法调研和实现方案说明;
b)数字电路设计说明;
c)吞吐率及加速设计瓶颈分析。
2)RTL代码。
3)综合实现报告,包括:
a)时序报告;
b)资源利用率报告。
2.5 加分要求
1)使用procise且提供使用报告;
2)调研中分析或提出优化算法;
3)其它额外且有意义的工作。
初赛总分100分,评分标准如下
| 分类 | 项目 | 细则 | 分数 |
| 书面报告 | 总体 | 结构完整、内容和逻辑清晰,图文规范。 | 5 |
| 调研 | 算法及优化调研全面,理解准确。 | 5 | |
| 设计 | 系统方案合理,描述清晰,重点明确。 | 5 | |
| 算法模块设计合理,描述清晰。 | 5 | ||
| 功能[1] | 加密、解密、同态加法、密文乘明文功能正确 | 25 | |
| 性能[2] | 加密吞吐率优秀 | 10 | |
| 解密吞吐率优秀 | 10 | ||
| 同态加法吞吐率优秀 | 10 | ||
| 密文乘明文吞吐率优秀 | 10 | ||
| 代码 | 风格 | 模块划分清晰 | 3 |
| 注释丰富 | 2 | ||
| 综合报告 | 时序 | 时序通过,不存在违例情况 | 5 |
| 资源 | 资源利用充分和高效 | 5 | |
| 加分项 | 工具试用 | 如使用procise且提供使用报告,在调研中分析提出某些优化算法,但是基于FPGA资源无法实现 | (10) |
| 合计 | 100 (110) | ||
注释:
[1] 加密、解密、同态加法、密文乘明文每个功能5分,全部正确得25分。
[2] 性能得分的前提是对应计算功能正确。
问题
AXI总线接口也需要设计,参考PCIE XDMA接口,地址线64bit。 加密模块寄存器自己配置,100k组数据顺序输入。 不要求UVM和覆盖率,要求仿真全 n, pq位宽固定,但是p, q值需要可配置(指令或数据) 100k组数据p q 相同x
架构设计
AXI
Xilinx-FPGA-PCIe-XDMA-Tutorial: Xilinx FPGA PCIe 保姆级教程 ——基于 PCIe XDMA IP核 (gitee.com)