240 likes | 494 Views
一个椭圆曲线密码学在 VLIW 微处理结构媒体处理器上的有效执行工具. Efficient Implementation of Elliptic Curve Cryptography (ECC) on VLIW-Micro-Architecture Media Processor. 摘要.
E N D
一个椭圆曲线密码学在VLIW微处理结构媒体处理器上的有效执行工具一个椭圆曲线密码学在VLIW微处理结构媒体处理器上的有效执行工具 Efficient Implementation of Elliptic Curve Cryptography (ECC) on VLIW-Micro-Architecture Media Processor
摘要 • 椭圆曲线密码学服务作为一个出色的保证嵌入式多媒体应用安全的候选人。归因于他的小的钥匙的尺寸和高安全保护。正如描述的一样,一些主要的瓶颈对于ECC工具来说。是身份确认和一些合适的集成的应用方案在VLIW和SIMD结构之上被提出。特别是,基于FIR的乘法使用了TM1300提供的专门的FIR指令。建议的方案的性能改进被报告和讨论。
1 引言。 • 嵌入式移动多媒体系统已经变成了一个研究热点在数字通信的时代里。私密性和数据集成的保护的需求要求一个小尺寸和资源有限的嵌入式系统但还要带有多媒体和安全函数。椭圆曲线密码是一个优秀的选择对于保护嵌入式多媒体应用。由于它的小钥匙和高的安全保护
这个ECC算法的执行和优化可以被整理成三个阶段。第一个是调整椭圆曲线的参数来改进性能比如领域选择。这个ECC算法的执行和优化可以被整理成三个阶段。第一个是调整椭圆曲线的参数来改进性能比如领域选择。 • 尽管VLIW和SIDM结构在嵌入式媒体处理器里是比较流行的而且这里存在一个更大的安全要求在嵌入式多媒体应用领域里。工作的目的是去获取一个有效的ECC执行工具并去发现一个方法去提高ECC在VLIW和SIMD结构下的性能。
为了达到这个目的,我们做了以下工作,首先,ECC的工作量通过TM1300一个新的媒体处理器,显示了ECC的在VLIW上的瓶颈。我们采用了两个大数量的乘法器来优化ECC的性能。一些乘法方案被比较,基于FIR的乘法被选择为SIMD结构。试验结果表明我们的工具可以加速ECC以1.5到2的倍数取决于钥匙的大小。主要加速ECC的方法被使用。为了达到这个目的,我们做了以下工作,首先,ECC的工作量通过TM1300一个新的媒体处理器,显示了ECC的在VLIW上的瓶颈。我们采用了两个大数量的乘法器来优化ECC的性能。一些乘法方案被比较,基于FIR的乘法被选择为SIMD结构。试验结果表明我们的工具可以加速ECC以1.5到2的倍数取决于钥匙的大小。主要加速ECC的方法被使用。 • 首先第二段我们介绍了多媒体处理器的背景和ECC执行工具被给出。第三段是性能分析。第四段提供了一些大数目的优化乘法器。最后,第五部分给出了试验结果和结论描述
2 ECC在嵌入式媒体处理器上 • 很多的嵌入式多媒体结构采用了单指令多数据和最长指令字微结构。对于SIMD结构可以被平行使用数据在多媒体应用中。带有VLIW结构的处理器和完成多指令在一个循环周期里。拿我们的试验平台TM1300来说,它可以同时发出5条指令。VLIW的优点是平行的执行指令(ILP)为了充分的利用这种特性,它经常要求一些来自汇编或者是程序的优化。
2.2ECC执行工具 • 在最近几年里,ECC已经收到了更大的关注由于他的更小的钥匙尺寸和一个与以前算法比如RSA一样的保护性能。例如,ECC带有160位的钥匙大小可以有相同的保护水平和RSA的1024个位的。ECC协议是最普遍的基于椭圆曲线的公共钥匙密码算法协议。例如,ECDH方案是一个DH算法加一个椭圆曲线数字标签算法。在他们中间,最多的用于试验中的是ECDSA。
3 媒体处理器上的ECC描述。 • 我们把兴趣放在VLIW和SIMD结构上的媒体处理器上的ECC工作量描述为了确定最耗时的部分。遵循186-2协议,在我们的实验中。实验数据表明两个函数模型“redc”和“multiply”对于5个主要领域里占了指令数的大的比例。这两个函数的百分百对于整个指令数带有不同的钥匙尺寸被列在了表1中。
对于VLIW微结构,指令执行率是一个很重要的指标对于程序性能来说。越高的执行率越高的程序性能。执行率对于两个函数和所有的程序在表2中被给出。注意到仅仅192位的钥匙的执行率对于主要区域被给出在表2中,因为指令执行率并不变化太多随着钥匙的增加在标签和验证阶段。对于VLIW微结构,指令执行率是一个很重要的指标对于程序性能来说。越高的执行率越高的程序性能。执行率对于两个函数和所有的程序在表2中被给出。注意到仅仅192位的钥匙的执行率对于主要区域被给出在表2中,因为指令执行率并不变化太多随着钥匙的增加在标签和验证阶段。
考虑到由TM1300提供的5个执行管道的能力,ECC执行工具很明显效率很低,并且吞吐量也是很低。正如我们在后边显示的一样。开发的ILP和分开数据处理是解决这个问题的关键。乘法的有效执行工具在下一段我们确定了两个耗时函数中的一个。考虑到由TM1300提供的5个执行管道的能力,ECC执行工具很明显效率很低,并且吞吐量也是很低。正如我们在后边显示的一样。开发的ILP和分开数据处理是解决这个问题的关键。乘法的有效执行工具在下一段我们确定了两个耗时函数中的一个。
4嵌入式媒体处理器上的有效乘法器。 • 我们要找出一个有效的执行工具两个大数量的乘法器为ECC由于乘法操作在执行时间的高百分比。而且,我们有兴趣在VLIW和SIMD结构对于ECC的影响。我们将找一种方式去提高ECC的性能在这种结构之下的。 • 两个大的集成的乘法器可以被看做多项式的乘法。对于两个大数量x和y,我们呢设X和Y的输出是z。首先我们规定x,y,z如下:
X,y,和z被存在了三个阵列里,每个列被32位的集成。也就是说g在上面的等式里是被看做232.通常情况下,嵌入式媒体处理器要用更多的循环来执行两个32位寄存器的乘法指令比起通常目的的处理器。TM1300不能存储64位结果在32位的寄存器里。相反,乘法器被一个两阶的乘法器来处理:使用“mul”来计算少的32位结果,用“mulm”来计算大意义的32位结果。最后,我们应该认真的执行两个大的集成在嵌入式媒体处理器上的乘法器。一些执行方案对于乘法器被讨论在下面。X,y,和z被存在了三个阵列里,每个列被32位的集成。也就是说g在上面的等式里是被看做232.通常情况下,嵌入式媒体处理器要用更多的循环来执行两个32位寄存器的乘法指令比起通常目的的处理器。TM1300不能存储64位结果在32位的寄存器里。相反,乘法器被一个两阶的乘法器来处理:使用“mul”来计算少的32位结果,用“mulm”来计算大意义的32位结果。最后,我们应该认真的执行两个大的集成在嵌入式媒体处理器上的乘法器。一些执行方案对于乘法器被讨论在下面。
矩形乘法器的优点是对于循环来说是定长的。而他的缺点是数据的依赖性在各个环之间。例如在每一步都需要前一个的计算结果。这个矩形方法采用了内部依赖的特性不能被带有非滚动环解决矩形乘法器的优点是对于循环来说是定长的。而他的缺点是数据的依赖性在各个环之间。例如在每一步都需要前一个的计算结果。这个矩形方法采用了内部依赖的特性不能被带有非滚动环解决
最开始的对角线风格的执行工具计算了所有的结果在内环形成了相同的数字基于g的大小在每个独立的环里。这种方法的缺点是对角变化的长度。在我们的试验中,我们没有滚动内环补偿了变化相对于固定长度的环。在图1(b)中的方案2中,在每个环中,队列x的成分在变换的t中转移。这里还有一些数据依赖性。这种依赖性可以被隐藏在平行指令中。使用守护选项可以很容易的设置t0。由大多数媒体处理器。通过试验结果表明了方案2有最好的性能。最开始的对角线风格的执行工具计算了所有的结果在内环形成了相同的数字基于g的大小在每个独立的环里。这种方法的缺点是对角变化的长度。在我们的试验中,我们没有滚动内环补偿了变化相对于固定长度的环。在图1(b)中的方案2中,在每个环中,队列x的成分在变换的t中转移。这里还有一些数据依赖性。这种依赖性可以被隐藏在平行指令中。使用守护选项可以很容易的设置t0。由大多数媒体处理器。通过试验结果表明了方案2有最好的性能。
在上面的代码里所有的变量有32位长度包括x,y,z和r。存在FIR结果的四个和里。事实上,这个方案已经打开了四次环来确定装载的因子。因此,通过x,y和z可以被对准集成处理。但这种算法的缺点是另外的移位操作和包操作被需要。而移位和包操作通常被认为是快操作和这两个操作可以在其它的管道使用。我们没有用到全打开的Comba的建议在方案里,因为缓存和存储资源在嵌入式系统里是有限的,而且大的代码会降低性能。在上面的代码里所有的变量有32位长度包括x,y,z和r。存在FIR结果的四个和里。事实上,这个方案已经打开了四次环来确定装载的因子。因此,通过x,y和z可以被对准集成处理。但这种算法的缺点是另外的移位操作和包操作被需要。而移位和包操作通常被认为是快操作和这两个操作可以在其它的管道使用。我们没有用到全打开的Comba的建议在方案里,因为缓存和存储资源在嵌入式系统里是有限的,而且大的代码会降低性能。
5,试验结果和结论 • 表3给出了性能的对比192位钥匙在各个不同的乘法方案在第四部分讨论的。打开的对角线方式的乘法器和基于、FIR的乘法器比起方案1和4来有更好的性能。方案2有最好的性能。因为指令乘法执行器有更高的执行性能比起FIR指令来。为了完成两个32位整数的乘法。我们不但调用了两次的乘法指令而且还调用了四次的FIR指令。尽管FIR指令能保存在额外指令的循环,他不是最耗时的。
表四,显示了方案2比方案1在不同的钥匙大小下的性能改进。正如表中所示,执行率对于建议的乘法算法是更高的性能比起在方案1中的通常的乘法。这是因为方案2是四次打开的而且指令的变化类型包括了FIR,包,移位和装载指令,加等等被用于TM130的五个通道。而且,执行率会随着钥匙大小的增加而增加的。正如上面的讨论的一样,更多的寄存器将被用于代表变量组t为了更多的指令将驻留在每个环中。最后,我们能得到一个更高的执行率在更长的钥匙大小下。表四,显示了方案2比方案1在不同的钥匙大小下的性能改进。正如表中所示,执行率对于建议的乘法算法是更高的性能比起在方案1中的通常的乘法。这是因为方案2是四次打开的而且指令的变化类型包括了FIR,包,移位和装载指令,加等等被用于TM130的五个通道。而且,执行率会随着钥匙大小的增加而增加的。正如上面的讨论的一样,更多的寄存器将被用于代表变量组t为了更多的指令将驻留在每个环中。最后,我们能得到一个更高的执行率在更长的钥匙大小下。
结论 • 我们可以得出下面的结论对于进行的试验。SIMD结构对于密码算法的作用并不像对于媒体处理应用一样有用。因为在多媒体应用里经典的数据类型是8位的或者是16位整数。大的数据被用于ECC,因为很多操作是用于更大的数量。因此,我们要尽量长的指令长度。这个也说明了为什么基于FIR的乘法算法会比基于打开对角线方式的乘法器慢的原因。一旦环被打开,汇编器会发现足够的指令来满足性能的优化。性能将被很好的提高如果32位乘法和加法指令被很好的支持在嵌入式多媒体处理器里。例如,两个32位整数的乘法结果可以被存在两个32位寄存器里,而不是调用两次乘法指令。