论文部分内容阅读
个人数字证书的存储是信息安全体系中的重要环节。应用于USB Key的加密安全芯片是解决证书载体的关键。密钥和敏感数据的存储、密钥的使用、密码运算都需要在芯片内进行才能足够安全。加密安全芯片能够内部生成公私密钥对和导入并存储数字证书,利用芯片内部的密码算法认证用户身份。关键信息都存在硬件内部,技术上无法读取,确保了身份认证的安全性。本文目标是设计并实现一款密码运算全面、性能优秀、低成本的的加密安全芯片。设计的关键在于如何用有限的硬件代价获取较多的性能收益。作者完成的主要工作包括以下几个方面:1.本文采用自顶向下的设计思路,搭建出芯片的整体架构。为后文的密码算法模块设计打下基础。2.RSA协处理器的设计与实现。通过一系列数学变换,将模幂运算变换成多次模乘运算。为了解决模乘运算,引入并改进蒙哥马利算法,将模乘运算进一步简化变换成标量乘法、移位和加减法等等。接着,采用软硬件协同的方式实现出RSA算法。应用256位超长字宽处理技术,合理安排乘法和模运算之间的流水线操作,比非流水线方式速度提高近一倍。3.本文完整的设计并实现了DES、SM4、SHA256、SM3算法。其中对称算法的运算复杂度在于置换运算。本文采用硬件实现可以有效的减少运算时间。散列算法的运算复杂度一方面在于多次循环中的循环移位和异或,采用硬件实现达到仅付出很小的面积获得较大性能提升。另一方面,主流程的迭代过程均有多次的数据不经过计算的直接赋值,本文采用了巧妙的方式避免真实的进行赋值,有效的减少了每一轮迭代的指令数,提高了运算性能。最终,本文实现了满足应用需求的USB Key加密安全芯片。芯片的测试结果达到设计目标,充分验证了作者的主要工作,即芯片整体框架和密码算法模块设计。本文的研究成果,为USB Key提供了芯片级解决方案,同时也为信息安全技术的发展做出重要贡献。