基于背包NTRU公钥密码码系统的几种概率加密市算法

经典密码体系下的公钥加密算法、抗量子加密算法与基于量子理论物理学的量子密码加密算法是接下来一段时期内信息安全与保密通信领域主要的研究内容之一从国防信息安全到商业、银行业应用,加密算法对国家安全、社会基本秩序与经济发展有着重要且基础性的巨大作用

基于数论中的大数分解难解问题与椭圆曲线中的离散对数难解问题,密码学家们创造了单向陷门函数为主体的现代NTRU公钥密码码体系但是,面对可预见的量子计算機的研究和构建基于计算复杂度的密码体系都是不安全的 [1] 。

由于纯粹的量子通信技术在实现上存在着许多技术难题经典密码中的NTRU公钥密码码体系仍然是今后一个时期内安全性最高和应用最为普遍的加密方式。面对量子计算不断发展带来的严峻密码破译威胁与网络安全、信息安全威胁通过量子密钥分配加强基于数学难题的经典密码中密码理论实现的安全性成为当前抗量子密码加密算法的主要研究方向。鈈过其数学难题的难解程度始终是保护NTRU公钥密码码体系安全性的核心。

本文第二节首先回顾经典NTRU公钥密码码RSA算法与其安全性;之后第三節从随机数、大数难解问题、离散对数难解问题和椭圆曲线上的离散对数难解问题的角度分析其安全性的数学基础;在第四节中正视量子計算危机的同时也看到量子计算的短板并针对基于子集和问题构架的OUT量子NTRU公钥密码码算法与基于最短格矢问题的NTRUNTRU公钥密码码算法进行抗量子安全性的分析。希望借此为基于抗量子公钥加密、量子密钥传输和严格单向函数的密码加密学提供研究方向参考

上世纪七十年代,對称密码体制的缺点随着通信网络的发展而逐渐凸显公开密钥加密算法体制的提出是为了解决对称密码体制的密钥分发问题和电子签名嘚问题。

2.1. 公钥加密典型算法基本原理

NTRU公钥密码码的典型构造是基于陷门单向函数的即正向求解容易实现而反向逆求解十分困难甚至在现囿技术条件下不可能实现 [2] 。NTRU公钥密码码体系中有很多的具体算法如早期的RSA算法、Rabin算法、和后来的ElGamal算法、椭圆曲线算法。从原理上看它們相当一致,而且十分简单都具有密钥由两个部分组成和数学上的潜在相关性的共同点。其中著名的RSA算法是较早提出、使用时间最长、应用范围最广公钥算法。

RSA加密算法的理论基础是一种特殊的可逆模指数运算首先把明文信息通过某种算法(最好是随机数算法使其具备統计学上的随机性)转化成一组数,将此作为明码对其进行加密

1) 在保密的情况下找两个大而互异的素数(质数)

其中,联系公钥和私钥的乘积 為模数是通信双方都知道的; 作为用于加密运算的指数,发送方是必须知道;而 为用于解密运算的指数只有接收方知道。

之后依据費马小定理,按照下面的公式解密读取明码

的情况下,难以通过密文 因此这是一个基于大数分解难解问题的陷门单向函数。即想要破譯整个密码必须对大整数 作素因子分解,而这在数学计算上是困难的

的简化剩余系,将存在某个 0 0 的简化剩余系的一个代表所以,取 0

這里选取的是两个较大的素数不等于2,于是它们也是奇数加密过程中,先对明文进行分组使每一组明文对应的数值小于

Rabin密码体制是對RSA密码体制的改进和修正 [3] 。设明文为M密文为C,加密过程为其中 为大整数。这是一个两次同余式对应的解密过程为 ,转化成求这个二佽同余式的平方根的问题这个问题就转化成了C是否是这个二次同余式的二次剩余问题:因为 ,于是等价于二次同余式组

和都是大素数哃时也是奇数,此二次同余式组有解等价于 是二次同余式的二次剩余根据欧拉判别条件,有 成立同时得出当大素数

由此得到解密后的哆解明文,还需增加额外的相关条件进一步甄别在数论理论中,求解二次同余式与分解大数

2.2. 优势与安全性

加密运算过程简单而快速能夠产生很多密钥组给不同的加密者使用。

公钥加密算法能够有效保证其产生的密文具有统计独立、均匀分布的特点只有知道密钥D的人才能够解密,连加密者自己也无法解密人为因素将不影响NTRU公钥密码码系统的安全性。

破解公钥加密最彻底的办法就是对 的唯一办法是穷举这对运算能力是一次考验,其计算用时为指数关系使得冯诺依曼结构下的计算机无法完成有效的破解。

3. 难解问题的数学基础

随机数可鉯理解为随机产生的数字或序列具有随机性与不可预测性两个显著的特征。

随机性由均匀分布和独立性两个具体的准则来描述均匀分咘是指序列中每个数的出现频率是近似相等的,符合最大熵独立性为正要出现的数 0 。而不可预测性即后面生成的数不受前面生成数的影響

3.1.1. 随机数的数学描述

严格条件下,无限序列的极限密度应当满足公式:

由于实际操作中很难实现无限序列在非严格条件下,通常需要滿足的公式为:

3.1.2. 量子比特序列与真随机数

产生量子随机数方法很多以下为通过单个粒子的量子比特产生随机数的方法:

个量子比特,每┅个都有形式 去测量每个量子比特结果是 个结果,由此形成随机数序列 由于量子噪声的存在,测量结果是一个概率出现的结果测量の前并不能对结果预测。当 以相同概率出现 [4]

由于经典噪声和测量仪器的影响,无法保证

同时读取两个比特去掉为11和00的结果。对于10和01的結果只输出前一个比特设

结果表明,考虑测量误差的前提下得到比特1和比特0的概率是相等的。

结合John von Neumann算法和Bell态每次从四个Bell态中随机选取一个,用Bell基来测量Bell态的两个粒子得到11、10、01和00,最后使用John von Neumann算法可以获得出现概率相通的比特0和比特1由此构成可靠的随机数序列。

3.2. 大数汾解难解问题

通过假设即可反证出“素数为有限多个”的命题是伪命题

构建大数分解难题的基础是进行大数的素性检验。RSA加密算法在实現过程中需要寻找两个足够大的质数在数足够大的时候,如何确定它是一个素数需要用到数论中关于素数(质数)的相关理论。

在Rabin密码体淛、Okamoto签名体制和ElGamal签名体制中同样需要使用大素数,同样需要素性检验的合理方式

采用Miller-Rabin素性检验方法检验的大整数,如果已经进行了t步迭代还没有出现非素数的判定结果,那么这个数是素数的概率不低于 当t充分大的时候,通过此方法检测的数为素数的概率已经足够可靠

费马素性检验的本质就是借助费马小定理来判定选出的大整数是素数还是合数。其本质与Miller-Rabin素性检验类似

对于一个大于2的素数n,由于 其中的b是否为二次剩余可借助欧拉判别法或者勒让德符号进行判定。而如果采用雅可比符号判定对整数b而言,计算 就能够确定n一定鈈是素数。

借助Eratosthenes筛选法给出一个正数x,满足 可以设计一种可行的确定性素性检验方法。

要判定其是否为素数的时候。首先把问题进荇转化变成确定一个常数 ,寻找比M小的素数的问题此时,借助Eratosthenes筛选法能够逐一得到一个比M小的素数,然后再进行判定如果m存在于這些寻找到的素数中,则能够确定 为素数如此一来,不论结果如何都能够一次性获得大整数m的确定性素性检验结果 [5] 。

这种类似于迭代嘚计算方式巧妙地借助了平方根的运算。同时借助整数的其他相关性质,此算法能够在计算机中有效实现并且具备很高的素性检验速度。

3.3. 离散对数难解问题

3.3.1. 离散对数问题描述

在有限循环群G中存在一个生成元a,对任意已知的整数n容易得到 。但是在情况相反时已知 囷有限循环群的生成元a,借助 计算出n是十分困难的构成数学基础上的计算复杂性难解问题。

之所以逆向计算整数n十分困难首先因为是囿限循环群,它的阶式有限的对应的同一个b,实际上可能有无数的解设 ,而如果要从这么多解中确定出某个值自然是不可能。此外如果并不知道相应循环群的阶m,求解n就更加困难了

3.3.2. 离散对数问题在数字签名中的应用

密码专家们设计了ElGamal、Okamoto等具体的数字签名认证方法 [6] 。其全过程可以分为系统参数设置、签名产生过程和签名验证过程三个部分

确定有限群换群的阶p。选取一个大素数p则构成一个有限循環群 0 。同时确定一个大素数q可以是

0 中随机选出生成元g,要求

签名方生成其持有的私钥n这个私钥可以被限制在一定范围内。同时生成公鑰K要求

设置需要签名的消息为m,由签名方计算关于的杂凑值

计算出对应的s值其中方程的系数a,bc与 之间存在着一定的关系,可以由签洺方决定由所得到的r值和s值,构建具体的签名

然后使用验证方程进行检验所收到的签名是否属实。一般情况下判定是否满足

在近期嘚研究中,基于多离散对数问题出现了MDLP公钥加密等算法,是此类难解问题基础上加密算法的有效改进但后来也被证明其算法应用是不嚴格安全的 [7] 。

3.4. K椭圆曲线上的离散对数难解问题

3.4.1. 椭圆曲线上的离散对数问题

椭圆曲线上的离散对数问题的本质就是把离散对数难解问题的数嘚问题放到由域上的Weierstrass方程所定义的椭圆等曲线上考虑具体而言,就是在已经知道素数p和 0 的阶是一个大素数的基础上解决下面问题:

是仳较容易的。而逆运算中已知点Q的情况,由 求s的值是几乎不可能实现的

3.4.2. 基于椭圆曲线离散对数问题的密码体制

目前已经成型的密码体淛有Diffie-hellmen密钥交换和ElGamal密码体制,它们是椭圆曲线密码体制的典型系统

,这个生成元应当是非常大的素数所谓

然后,事先通信双方密钥交换嘚过程:由甲选定一个小于n的整数 并作为公钥。同样乙也选定一个小于n的整数

,就是椭圆曲线离散对数问题同理,在不知道 也是椭圓曲线离散对数问题由此保证了安全性。

和两个小于该素数的随机数 则相应的加密过程为选定一个满足

ElGamal算法的解密过程的核心是通过

昰信息发送方生成的,接收方根据收到的密文通过 ,然后进行解密运算解密时要用到私钥

首先需要选择一个椭圆曲线 上面的点建立对應关系。其加密和解密过程也就转化为了在规定了 运算法则的Abel群中的运算其具体过程分析如下:

作为公开的参数。然后接收方根据 作為密钥。发送方选取一个正整数

非法的窃听者由于没有私钥 也就不能解密。另外如果要想根据 ,这显然是椭圆曲线上的离散对数问题安全性得到了保障。

椭圆曲线上的密码体制具有安全性高的特点同时,由于密钥量比较小密码设计者能够发挥的空间比较大。此外作为椭圆曲线的推广,已经出现了超椭圆曲线理论和超椭圆曲线上的离散对数难解问题为基础的密码体制HECC构成了椭圆曲线密码体制ECC理論的发展方向 [8] 。

由于量子计算的并行特性是量子图灵机的内禀属性经典计算中的难解问题可以通过量子计算化作可解问题。不过从当湔的情况来看,在量子计算中仍然存在难解问题

当然,由于采用量子密钥分配的密码算法和采用Hash函数构建的单向函数签名算法的安全性來自量子物理特性和严格单向函数不具备转化为求解广义离散傅里叶变换问题的条件,故不受量子计算的威胁 [9] 不过上述算法本身有显著的应用局限使其难以取代优化计算复杂度的抗量子密码。

4.1. 计算复杂性与问题分类

一个要求给出解答的一般提问称作一个问题记作 ,它通常由具体实例与询问两个部分组成问题

0 为一个特殊的符号——空白; 表示机器状态的有限符集合,s和h分别表示初始态和最终态; 为一個跃迁函数满足:

0

分别称为算法的时间复杂度和空间复杂度。假设 由此可以将算法简单分为两类,多项式时间算法和指数时间算法當算法的执行时间是 为常量),称算法为多项式时间算法或有效算法反之亦然。通常把具有多项式时间的算法简称P问题把找不到有效算法的问题称为难解问题。随着图灵机计算能力的大幅度提高某些难解问题正渐渐转化为易解问题。当前难解问题分NP问题、NPC问题(NP难题)、co-NP問题。

此外从空间的角度定义的难解问题有PSPACE问题、NPSPACE问题、PSPACE-c问题等。PSPACE问题是指在多项式空间内可解的问题包含NP问题和co-NP问题。

4.2. 子集和问题與OUT量子NTRU公钥密码码算法

虽然量子计算机比电子计算机的计算能力和储存能力更强能够将大整数因子分解、将离散对数等NP问题转化为QP问题。但是子集和问题对量子图灵机来说依然是难解问题。

0

日本NTT实验室的密码专家T. Okamoto、K. Tanaka和S. Uchiyama基于环上的子集和问题提出了量子NTRU公钥密码码算法這里简称OUT算法。

下面介绍该算法的密钥产生过程和加密方式

1) 确定适合系统的固定数域集和K,随机选取K中的一个数域

上乘法的生成子其Φ, 唯一地表示即对于任意的整数 0

为联合质数(co-prime)。对于整数集合 0

4) 利用Shor算法求解离散对数问题得到

5) 随机选取有理整数

分别为公钥和私钥,則有:

2) 将明文按照下列方式编码为二进制串 0 0 0

0

0

本质上OUT算法建立在背包体制上,其安全性又是基于图灵机的即能够抵御具有量子计算能力嘚攻击 [10] 。OUT密码算法是一个具有量子计算复杂度的NTRU公钥密码码算法即量子计算机并不能破解所有的公钥加密算法。

4.3. 最短格矢问题与NTRUNTRU公钥密碼码算法

NTRU算法是一种有效的NTRU公钥密码码算法已经被IEEE P1316工作组定为标准,其算法安全性的核心就是最短格矢问题(SVP) [11] 在一定条件下,最短格矢問题是NPC问题NTRU算法被认为是安全的。

给定维正整数域上的格矢(lattice子群)

最短格矢问题是一个NP问题,可以用 算法求解最短矢格问题该算法中

甴于最短格矢问题是一个搜索问题,那么就可以用Grove搜索算法求解与Koy的原始对偶方法所需的时间 相比,量子搜索算法的运行时间大约为Koy方法的8次方根也就是

有一个实验采用了Shoup NTL图书馆的400 MHz PC机以BKZ方法求解,计算用时情况为

由此可以估计出采用量子搜索算法求解最短格矢问题的执荇时间为

几种情况下的运算用时对比如所示

可见,借助量子搜索算法确实使求解最短格矢问题的计算用时急剧减少但其绝对时间仍然佷长。对于量子图灵机来说求解最短格矢问题的时间复杂度依然满足指数关系 [13] 。即量子搜索算法也不能完全解决最短格矢问题

从最初嘚RSA密码、Rabin加密算法到后来的Diffie-hellmen密钥交换和ElGamal密码体系,再到具备抗量子攻击能力的OUT量子NTRU公钥密码码算法和NTRUNTRU公钥密码码算法数学难解问题一直昰NTRU公钥密码码体系的安全核心。

从大数分解难解问题到离散对数难解问题、椭圆曲线上的离散对数难解问题乃至超椭圆曲线上的难解问题到后来被证明量子计算也无法有效破解的子集和问题、最短格矢问题,对这些难解问题背后的数学基础的研究也一直是推进NTRU公钥密码码算法不断改进的重要研究方向 [14] 此外,具备抗量子特性的生物DNA密码、量子密码、量子通信的研究与应用必然建立在数学、物理学乃至生物學基础理论的突破性进展之上显然这是一个漫长的过程。

与此同时基于能够在量子图灵机的攻击下依旧保持指数时间/空间计算复杂度——子集和问题、最短格矢问题、PSPACE问题、NPSPACE问题、PSPACE-c问题等——的难解问题,致力于通信安全的密码学家们也推出了OUT量子NTRU公钥密码码算法和NTRUNTRU公鑰密码码算法等抗量子攻击加密算法不断增强NTRU公钥密码码的抗量子安全性,从而为量子密码等新型密码体制的进一步发展提供了时间条件

国家自然科学基金项目(U1204602),数学工程与先进计算国家重点实验室开放课题项目(2013A14)

}

我要回帖

更多关于 NTRU公钥密码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信