一个椭圆曲线密码学在 vliw 微处理结构媒体处理器上的有效执行工具

24
个个个个个个个个个 VLIW 个个个个个个 个个个个 个个个个个个个 Efficient Implementation of Elliptic Curve Cryptography (ECC) on VLIW-Micro-Architecture Media Processor

Upload: tad

Post on 11-Jan-2016

186 views

Category:

Documents


3 download

DESCRIPTION

一个椭圆曲线密码学在 VLIW 微处理结构媒体处理器上的有效执行工具. Efficient Implementation of Elliptic Curve Cryptography (ECC) on VLIW-Micro-Architecture Media Processor. 摘要. - PowerPoint PPT Presentation

TRANSCRIPT

一个椭圆曲线密码学在 VLIW微处理结构媒体处理器上的有效执行工具

Efficient Implementation of Elliptic Curve Cryptography (ECC) onVLIW-Micro-Architecture Media Processor

摘要•椭圆曲线密码学服务作为一个出色的保证嵌入式多媒体应用安全的候选人。归因于他的小的钥匙的尺寸和高安全保护。正如描述的一样,一些主要的瓶颈对于 ECC工具来说。是身份确认和一些合适的集成的应用方案在 VLIW和 SIMD结构之上被提出。特别是,基于 FIR的乘法使用了TM1300提供的专门的 FIR指令。建议的方案的性能改进被报告和讨论。

1 引言。•嵌入式移动多媒体系统已经变成了一个研究热点在数字通信的时代里。私密性和数据集成的保护的需求要求一个小尺寸和资源有限的嵌入式系统但还要带有多媒体和安全函数。椭圆曲线密码是一个优秀的选择对于保护嵌入式多媒体应用。由于它的小钥匙和高的安全保护

•这个 ECC算法的执行和优化可以被整理成三个阶段。第一个是调整椭圆曲线的参数来改进性能比如领域选择。

•尽管 VLIW和 SIDM结构在嵌入式媒体处理器里是比较流行的而且这里存在一个更大的安全要求在嵌入式多媒体应用领域里。工作的目的是去获取一个有效的 ECC执行工具并去发现一个方法去提高 ECC在 VLIW和 SIMD结构下的性能。

•为了达到这个目的,我们做了以下工作,首先, 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 中,因为指令执行率并不变化太多随着钥匙的增加在标签和验证阶段。

• 

考虑到由 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位结果。最后,我们应该认真的执行两个大的集成在嵌入式媒体处理器上的乘法器。一些执行方案对于乘法器被讨论在下面。

•矩形乘法器的优点是对于循环来说是定长的。而他的缺点是数据的依赖性在各个环之间。例如在每一步都需要前一个的计算结果。这个矩形方法采用了内部依赖的特性不能被带有非滚动环解决

•最开始的对角线风格的执行工具计算了所有的结果在内环形成了相同的数字基于 g 的大小在每个独立的环里。这种方法的缺点是对角变化的长度。在我们的试验中,我们没有滚动内环补偿了变化相对于固定长度的环。在图 1 ( b)中的方案 2中,在每个环中,队列 x的成分在变换的 t中转移。这里还有一些数据依赖性。这种依赖性可以被隐藏在平行指令中。使用守护选项可以很容易的设置 t0。由大多数媒体处理器。通过试验结果表明了方案 2 有最好的性能。

•在上面的代码里所有的变量有 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为了更多的指令将驻留在每个环中。最后,我们能得到一个更高的执行率在更长的钥匙大小下。

结论•我们可以得出下面的结论对于进行的试验。 SIMD结构对于密码算法的作用并不像对于媒体处理应用一样有用。因为在多媒体应用里经典的数据类型是 8 位的或者是 16位整数。大的数据被用于 ECC,因为很多操作是用于更大的数量。因此,我们要尽量长的指令长度。这个也说明了为什么基于 FIR的乘法算法会比基于打开对角线方式的乘法器慢的原因。一旦环被打开,汇编器会发现足够的指令来满足性能的优化。性能将被很好的提高如果 32位乘法和加法指令被很好的支持在嵌入式多媒体处理器里。例如,两个32位整数的乘法结果可以被存在两个 32位寄存器里,而不是调用两次乘法指令。

•