论文部分内容阅读
传统磁卡容易被复制,存在大量伪卡欺诈问题。因此国际的EMV组织大力推行传统磁卡向金融IC卡转移的“EMV”迁移运动;而中国央行则紧跟国际EMV组织的金融IC卡标准并提出了具有自主知识产权的基于国密的PBOC3.0金融IC卡标准,研究与设计实现符合PBOC3.0标准的金融IC芯片对我国的金融IC行业有重要意义。金融IC芯片的安全核心是密码引擎,研究与实现适合金融IC芯片应用的国家密码算法能够为金融IC芯片的安全保驾护航。本文首先对PBOC3.0标准进行了深入研究与分析,并对其所需的安全算法进行了复杂度分析。接着设计了金融IC芯片的硬件系统架构,并重点研究与实现了能满足PBOC3.0标准的小面积密码硬件加速引擎:国密算法SM2用作脱机数据认证,国密算法SM4用作安全报文协议。针对SM2的实现,首先,考虑到金融IC应用需要的高安全性,在标量乘算法选择上采用了能抵抗功耗攻击的Double-Add-Always算法;同时,本文采用了坐标转换的方式来减小点加点倍算法的实现复杂度,并基于此设计了有限指令状态机来实现点加点倍运算,优化了指令调度过程减少运算所需时钟周期;此外,考虑到金融IC芯片资源有限,综合考虑面积与速度,本文还优化设计了基于64位乘累加器的大数乘法器,并根据SM2的模参数优化设计了快速模约减单元;另外,设计了统一的模加减运算单元以减少逻辑电路数目;通过合理的数据通路设计,仅使用一个模乘器和两个模加减器就能够完成点加点倍运算。在设计SM4算法过程中,首先根据递推公式优化设计了SM4算法固定参数生成电路,采用实时生成的方法能够极大的减小电路面积;接着对S盒的实现方式进行了分析讨论与优化设计;最后,根据对SM4算法的分析,发现其加解密与密钥扩展具有相同的数据通路,因此可以进行数据通路的复用;采用数据通路共享的方式设计了4种不同的复用程度的数据通路结构,并分别对其进行了比较研究并给出了各自的应用场合。本文在设计完加密引擎后对其进行了安全功能仿真与FPGA验证,结果表明所设计的加密算法功能正确。本文还在SMIC 0.13μm EFlash工艺下完成了电路的ASIC实现。在ASIC实现中,SM2加密引擎占用面积278788μm2,折算成等效门约为68.8k等效门,最高运行频率为127.8MHz,完成一次标量乘算法所需时间为1347μs,吞吐率为190kbps;核心的模乘运算完成一次256bit的大数模乘所需周期为16,吞吐率达到了2.046Gbps。所设计的SM4算法电路在8bit串行化共享数据通路下能够实现最小面积为17987μm2,约3824个等效门,此时的电路最高运行频率为120.7MHz,吞吐率为60.38Mbps,适用于低功耗小面积的金融IC卡应用。本文设计的金融IC芯片最终进行了MPW流片,芯片整体面积为3200×2800μm2;样片通过了各项功能测试,且正常工作时功耗约5~8mA,休眠时功耗为900μA。