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)其它额外且有意义的工作。