摘要
密码算法的白盒实现是保护密钥安全的一种重要技术.当前,对称密码的白盒实现已有不少成果,但是公钥密码的此类成果极少.除去商业保护的原因,公钥密码运算通常需要较大规模的数学计算,导致其白盒设计难度更大.本文针对椭圆曲线倍点运算设计了一种新型白盒实现方法,具有安全、高效、低存储等优点.该方法的基本策略是,首先将倍数表示成特殊的形式,然后通过构造查找表保护其中每个分量,通过网络化查表消除单表的掩码并实现最终结果正确计算的目的,使得倍数信息在整个计算过程中不被泄露.我们选择恰当的余数系统分解模乘、模加等大数运算,以此降低查找表的规模,同时也提高了查表效率.基于该方法,我们设计了标准I/O接口的SM2/9解密算法白盒实现方案,方案可以有效隐藏解密私钥,有助于加强SM2/9解密算法在不可信平台上的安全防护.进一步地,我们将该设计策略推广到模幂运算,构造了RSA算法的白盒实现方案.本文所提出的设计思路也可应用于其它公钥密码算法的白盒实现.
-
单位成都卫士通信息产业股份有限公司