论文部分内容阅读
基于格的后量子密码(Lattice-Based Post-Quantum Cryptography)具备抗量子攻击、易于硬件实现和用途广泛等诸多优势,得到了国际学术界和工业界的广泛关注。本文以格密码的高效硬件实现为主要研究对象,围绕低成本、高硬件效率、灵活性和侧信道安全性等设计目标,在对模运算和高斯采样这两类格密码核心算子进行电路优化设计的基础上,提出了一种通用的环域误差学习(Ring Learning With Errors,Ring-LWE)密码处理器架构,并完成了对密钥交换协议New Hope-Simple的ASIC实现。全文的具体研究工作主要包括以下四个方面:首先,针对模加、模乘和多项式模乘这三种重要的模运算,分别研究了对应模运算单元的高效硬件实现技术。设计了一种基于进位保留加法器(Carry Save Adder,CSA)的模加法器结构,有效解决了传统模加法器中关键路径过长的问题。面向低资源开销和高运算性能这两种应用需求,采用基于CSA的模加法器,分别设计了基于循环移位模加的模乘法器结构和基于快速查找表的流水线模乘法器结构。根据格密码方案中模数q的不同类型,设计了对应的蝶形运算单元和“乒乓式”存储器访问方案,消除了对SRAM中数据的访问瓶颈,提升了数论变换(Number Theoretic Transform,NTT)运算的性能。同时解决了特殊模数下对应点乘(Point-Wise Multiplication,PWM)运算的计算问题,并优化了旋转因子所需的存储空间。在Xlinx Artix-7 FPGA平台上分别实现了使用负包裹卷积(Negative-Wrapped Convolution,NWC)的NTT运算单元和并行计算奇偶序列的NTT运算单元。与国际上相关的NTT硬件设计相比,在硬件资源开销和硬件效率等方面有着明显优势:减少了24%的触发器(FF)和50%的数字信号处理单元(DSP)使用量,并在面积时间积(Area-Time-Product,ATP)上有高达1.5倍的提升,可有效加速格密码方案中计算复杂的多项式模乘运算。其次,针对格密码系统中最容易遭受侧信道攻击的高斯采样器,对现有的侧信道攻击类型和相对应的防御机制进行了详尽的归纳总结,并对适用于格密码方案的高斯采样算法进行了全面的对比分析。提出了一种具有时间攻击防御机制的累积分布表(Cumulative Distribution Table,CDT)高斯采样器结构,将CDT所需的存储空间减少了接近65%,所设计的采样步骤保证了恒定的采样时间,并在基于Xilinx Spartan-3A FPGA芯片自主搭建的时间攻击测试板上验证了其抵御时间攻击的能力。通过建立数学函数模型,从算法上分析了基于二分查找的CDT(CDT via Binary Search,BS-CDT)高斯采样器易遭受简单功耗分析(Simple Power Analysis,SPA)攻击的可能性,并设计了一种选择输入SPA攻击方案。基于隐藏数据(Hiding)技术为BS-CDT高斯采样器加入了具有随机化功耗信息的额外电路结构,提出了一种具有SPA攻击防御机制的可配置BS-CDT高斯采样器结构,最后在自主搭建的SPA攻击测试平台上对其完成了SPA攻击防御机制的测试和验证。在112比特的采样精度和[-55,55]的采样范围下,相关设计的实现仅需消耗Xlinx Spartan-6 FPGA中122个逻辑片(Slice),最高可在8个时钟周期内完成一次高斯采样,并同时具备抵御时间攻击和SPA攻击的能力。再次,针对多样化应用场景中不同Ring-LWE格密码方案的硬件实现,基于模运算单元和高斯采样器,设计了能支持Ring-LWE格密码方案中任意安全参数下数据运算的可配置数据通路,并提出了一种高效的数据存储方案,可有效简化多项式模运算过程中数据地址的计算。通过分析Ring-LWE公钥加密方案的具体运算步骤,完成了数据配置和数据运算两类微指令的设计,可实现Ring-LWE格密码方案中所有的运算。采用了微指令与总线复用的设计思想,提出了一种能灵活配置安全参数、动态选择运算流程和支持多种Ring-LWE格密码方案的可重构Ring-LWE密码处理器架构。当配置安全参数为(n=256,q=7681,s=11.31)时,在Xlinx Spartan-6 FPGA平台上实现该Ring-LWE密码处理器仅使用了1307个查找表(LUT)、889个FF和4个块RAM(Block RAM),80MHz时钟下可分别在4.5ms和0.9ms内完成对256比特数据信息的加密和解密运算。最后,以低硬件资源消耗和高运算性能为优化目标,对后量子密钥交换协议New Hope-Simple这一特定的格密码方案进行了从FPGA原型系统到先进工艺下的ASIC实现。本文分析了New Hope-Simple的算法原理和具体运算步骤,论证了将流密码结构Trivium作为系统中伪随机数产生器的优势和可行性,并复用同一个64-bit的展开型Trivium结构(Trivium x64)设计了解析(Parse)运算单元和二项分布采样器,分别用于进行模q下的均匀分布采样和中心二项分布采样。完成了服务器端和客户端的电路架构设计,采用并行计算的思想对New Hope-Simple的运算流程进行了优化,可分别在25148和23887个时钟周期内完成密钥交换全部的运算步骤。基于TSMC 28nm HPC+CMOS工艺对由服务器端和客户端组成的后量子密钥交换系统进行了ASIC实现评估,总等效门数为472K,实际面积为0.504mm~2,最大工作频率为80MHz,平均功耗为86m W。