论文部分内容阅读
1985年,Miller和Koblitz分别独立地提出了椭圆曲线密码体制(elliptic curvecryptosystems,ECC)。相对于其它的公钥密码体制(如RSA),ECC只需较短的密钥就可以达到较高的安全级别。所以,近年来ECC受到广泛关注。短的密钥意味着更少的功耗、计算开销和存储空间,尤其适用于资源受限的便携式计算设备(例如智能卡)。所以,ECC的这种特性使得它们非常适用于资源受限的计算设备的密码服务。因此,具有广阔的应用前景。
ECC的研究主要包括安全和计算效率两方面。安全的问题在理论上主要围绕离散对数问题、椭圆曲线参数的选取及攻击算法研究等;而在嵌入式或硬件设备的实现上则涉及侧信道攻击(主要有功耗分析攻击和电磁分析攻击等)。虽然ECC在理论上已经可以保证很高的安全级别,但对于嵌入式或硬件实现(如智能卡等)上的安全性则很容易受到侧信道的攻击,且其安全性与ECC的密钥长度无关。计算效率问题主要是ECC中的标量乘dP计算问题(d为一个大整数,其二进制表示被称为“标量”,也是ECC的密钥,P为椭圆曲线上的一个点)。提高标量乘计算效率的研究主要包括:(1)变换标量的表现形式来减少标量乘中点加的数量;(2)标量乘方法的并行化等。而提高标量乘侧信道安全性的研究主要是在经典标量乘方法的基础上增加额外的操作来抵御侧信道攻击。
本文主要围绕ECC标量乘的侧信道安全与计算效率两个方面。基于对标量的折半变换,提出了既快速又能抵御侧信道攻击的标量乘方法,并进一步提出了快速安全且灵活的并行化标量乘方法来适应日益普及的嵌入式多核系统、多处理器系统、乃至大规模的并行系统。
实现安全的ECC标量乘方法来抵御侧信道攻击已有大量的研究。然而为了侧信道安全,它们都在经典标量乘方法(二进制方法)的基础上增加额外的操作,从而导致更高的计算成本。本文提出了一种标量折半模型,该模型划分标量为两个等长的子比特串,并从中抽取共同子比特串,以节省标量乘操作中为计算共同子比特串的操作次数。提出的侧信道安全的标量乘方法能达到与经典的二进制方法(侧信道不安全)几乎相同的计算效率,又能抵御所谓的侧信道攻击。进一步的复杂度评估表明,相对于二进制方法,现有的侧信道安全的标量乘方法平均增加了大约30%的复杂度。相对于二进制方法,本文提出的标量乘方法既没有增加复杂度,又能有效抵御侧信道攻击。
另一方面,现有的各类标量乘方法(包括二进制方法、快速的标量乘方法、以及侧信道安全的标量乘方法等)已经不能适应日益普及的各类并行系统。一些并行的标量乘方法也已经被提出。这些并行方法能有效的加速标量乘运算,并且有些方法还能进一步确保标量乘方法抵御侧信道攻击。但由于大多基于点或域操作级别的并行化,故它们大多局限于固定数量处理器的并行系统。并且,有些方法还局限于某些特殊的具有有效可计算自同态的椭圆曲线。基于标量折半思想,本文又提出了标量折半与伸展模型来并行化标量乘,由此提出了一种快速灵活的并行标量乘方法。标量折半与伸展模型没有针对任何特殊形式的椭圆曲线,因此该方法适用于任何Weierstrass形式的椭圆曲线,具有很好的通用性。并且,标量折半与伸展模型为标量乘算法级别的并行化,从而具有很好的灵活性。首先,该方法可灵活适应于不同规模的可扩展并行计算机系统。其次,现有的侧信道安全的标量乘方法都能集成到我们的并行标量乘方法,来抵御侧信道攻击。
本文成功实验了用智能卡实现的ECC标量乘方法的侧信道攻击,包括二进制方法、Montgomery方法、Double-and-add-always方法、以及提出的快速安全的标量折半方法的侧信道安全性验证。实验表明,本文提出的快速安全的标量折半方法能抵御侧信道攻击。
最后,本文采用可扩展的并行计算机曙光TC5000,实现了提出的并行方法。实验表明,提出的并行方法适用于可扩展的并行计算机,且相对于经典二进制方法,在通用的椭圆曲线情况下,能达到大约1.55的加速比,在Koblitz曲线下,能达到大约11.23的加速比。