论文部分内容阅读
随着云计算、大数据及网络等技术的快速发展,社会进入了信息化时代,各种信息系统成为人们日常生活的基础设施,人们的工作、学习、生活无不严重依赖于网络,信息安全日益成为焦点问题。密码学是信息安全的核心与支撑性技术,密码技术的应用对社会信息化的健康发展具有不可替代的作用。
信息化时代,数据规模不断扩大,巨大用户数量、海量数据规模、高并发处理性能,都对密码运算的加解密速度、数字签名和验证速度等性能指标提出了更高的要求。只有更高性能的密码运算,才能最大限度的降低密码运算在业务系统中带来的性能损耗,从而避免密码技术成为信息化时代社会发展的瓶颈。
本文重点研究椭圆曲线密码的优化实现算法及关键技术,分别提出了一种椭圆曲线标量乘以及双线性对密码的快速实现算法,并以此为基础实现了一款高性能密码芯片。最后针对移动互联网设计一种新型的椭圆曲线密码应用模式,便于椭圆曲线密码算法的应用与推广。主要成果如下:
第一、椭圆曲线标量乘的优化算法及实现
本文提出了一种新型的椭圆曲线标量乘优化实现算法,同时兼顾了面积和性能,在保证高性能的同时减少了资源的消耗。具体来说,根据椭圆曲线密码特殊素数的性质,设计了一款支持四级流水线的高速模乘器,完成一次模乘运算仅需要7个时钟周期,在不增加资源的情况下可以同时支持四次模乘运算;在模乘器的基础上设计了并行架构,通过分析相关性等操作设计了一种并行的点加和倍点算法,完成了点加和倍点运算的高速实现;基于前面的工作,采用了改进的滑动窗口的方法,实现了椭圆曲线的标量乘运算,在提升标量乘性能的同时,可以有效的抵御侧信道攻击。为了验证本文提出的优化算法,在Xilinx公司的Kintex-7FPGA平台上进行了实验。在该平台上,完成一次标量乘法共使用22938个LUTs,需要13652个周期,运行时间大概为0.15ms,吞吐量可达2.31Mbps。实验结果表明,本文提出的优化算法是真实有效的,而且优于其他同类型的优化算法。
第二、基于双线性对密码的优化算法及实现
本文针对基于双线性对的数字签名体制提出了一种快速的优化实现算法,可以大幅度提升数字签名算法的性能。具体来说,本文先利用Miller算法计算出双线性对;在此基础上,通过预计算和动态存储的机制,设计出一种快速的双线性对模幂算法,来达到加速数字签名的目的。为了验证本文提出的优化算法,在Xilinx公司的Kintex-7FPGA平台上进行了实验。在该平台上,完成模幂运算共使用了55818个查找表(LUT),同时使用了83.5个块RAM(Block RAM)以及64个DSP乘法器。完成一次数字签名的运行时间为2.46ms。实验结果表明,优化算法的性能大概是传统算法的2.3倍,而代价为增加了少量的存储空间能。
第三、分布式协同签名算法的设计与系统实现
本文基于椭圆曲线密码体制的数字签名标准,依托于密钥分割、签名代理的技术,设计开发出一种新型的分布式协同签名算法。该算法具有以下优点:签名私钥不会以明文的形式出现在任何过程中,保证绝对的安全;分布式协同签名要求双方必须同时进行签名,任何一方不能单独完成签名,安全性进一步提升;协议简单方便,只需要两次交互就能完成完整的签名,实现简单方便。本文以分布式协同签名算法为理论基础,设计出一种适用于移动终端(手机)的手机盾签名验证系统。该系统可以在保证应用便利的情况下,不降低签名私钥的安全性,便于椭圆曲线密码算法在移动互联网的推广与应用。
第四、密码安全芯片的实现与验证
为了便于密码算法的推广与使用,本文设计并实现了一款适用于云计算、大数据等环境的高性能密码安全芯片。该芯片主要对外提供高性能密码算法,而芯片中的密码算法模块是基于本文提出的密码快速实现算法来实现的。在芯片的设计实现过程中,先对密码算法进行FGPA仿真和实际验证,验证成功后集成到芯片的总体设计中。芯片的生产阶段,选择的代工厂为中芯国际,制造工艺为55nmCMOS工艺。目前芯片已经小批量试制成功,采用BGA324封装,工作频率为400MHz,正常运行时,芯片的电流约为2-2.5A。最终实测SM2数字签名算法性能可以达到40万次每秒,SM9签名算法性能可以达到1000次每秒,性能均达到国际国内领先水平,满足云计算、大数据等高性能场景的应用需求。
信息化时代,数据规模不断扩大,巨大用户数量、海量数据规模、高并发处理性能,都对密码运算的加解密速度、数字签名和验证速度等性能指标提出了更高的要求。只有更高性能的密码运算,才能最大限度的降低密码运算在业务系统中带来的性能损耗,从而避免密码技术成为信息化时代社会发展的瓶颈。
本文重点研究椭圆曲线密码的优化实现算法及关键技术,分别提出了一种椭圆曲线标量乘以及双线性对密码的快速实现算法,并以此为基础实现了一款高性能密码芯片。最后针对移动互联网设计一种新型的椭圆曲线密码应用模式,便于椭圆曲线密码算法的应用与推广。主要成果如下:
第一、椭圆曲线标量乘的优化算法及实现
本文提出了一种新型的椭圆曲线标量乘优化实现算法,同时兼顾了面积和性能,在保证高性能的同时减少了资源的消耗。具体来说,根据椭圆曲线密码特殊素数的性质,设计了一款支持四级流水线的高速模乘器,完成一次模乘运算仅需要7个时钟周期,在不增加资源的情况下可以同时支持四次模乘运算;在模乘器的基础上设计了并行架构,通过分析相关性等操作设计了一种并行的点加和倍点算法,完成了点加和倍点运算的高速实现;基于前面的工作,采用了改进的滑动窗口的方法,实现了椭圆曲线的标量乘运算,在提升标量乘性能的同时,可以有效的抵御侧信道攻击。为了验证本文提出的优化算法,在Xilinx公司的Kintex-7FPGA平台上进行了实验。在该平台上,完成一次标量乘法共使用22938个LUTs,需要13652个周期,运行时间大概为0.15ms,吞吐量可达2.31Mbps。实验结果表明,本文提出的优化算法是真实有效的,而且优于其他同类型的优化算法。
第二、基于双线性对密码的优化算法及实现
本文针对基于双线性对的数字签名体制提出了一种快速的优化实现算法,可以大幅度提升数字签名算法的性能。具体来说,本文先利用Miller算法计算出双线性对;在此基础上,通过预计算和动态存储的机制,设计出一种快速的双线性对模幂算法,来达到加速数字签名的目的。为了验证本文提出的优化算法,在Xilinx公司的Kintex-7FPGA平台上进行了实验。在该平台上,完成模幂运算共使用了55818个查找表(LUT),同时使用了83.5个块RAM(Block RAM)以及64个DSP乘法器。完成一次数字签名的运行时间为2.46ms。实验结果表明,优化算法的性能大概是传统算法的2.3倍,而代价为增加了少量的存储空间能。
第三、分布式协同签名算法的设计与系统实现
本文基于椭圆曲线密码体制的数字签名标准,依托于密钥分割、签名代理的技术,设计开发出一种新型的分布式协同签名算法。该算法具有以下优点:签名私钥不会以明文的形式出现在任何过程中,保证绝对的安全;分布式协同签名要求双方必须同时进行签名,任何一方不能单独完成签名,安全性进一步提升;协议简单方便,只需要两次交互就能完成完整的签名,实现简单方便。本文以分布式协同签名算法为理论基础,设计出一种适用于移动终端(手机)的手机盾签名验证系统。该系统可以在保证应用便利的情况下,不降低签名私钥的安全性,便于椭圆曲线密码算法在移动互联网的推广与应用。
第四、密码安全芯片的实现与验证
为了便于密码算法的推广与使用,本文设计并实现了一款适用于云计算、大数据等环境的高性能密码安全芯片。该芯片主要对外提供高性能密码算法,而芯片中的密码算法模块是基于本文提出的密码快速实现算法来实现的。在芯片的设计实现过程中,先对密码算法进行FGPA仿真和实际验证,验证成功后集成到芯片的总体设计中。芯片的生产阶段,选择的代工厂为中芯国际,制造工艺为55nmCMOS工艺。目前芯片已经小批量试制成功,采用BGA324封装,工作频率为400MHz,正常运行时,芯片的电流约为2-2.5A。最终实测SM2数字签名算法性能可以达到40万次每秒,SM9签名算法性能可以达到1000次每秒,性能均达到国际国内领先水平,满足云计算、大数据等高性能场景的应用需求。