zoukankan      html  css  js  c++  java
  • NTRU算法

      NTRU是Hoffstem、Pipher和silverman在1998年提出的一种新的公钥密码体制。该体制是建立在多项式环的基础之上的,其安全性基于格上最短向量问题。由于NTRU运算简洁快速,与目前广泛使用的公钥密码系统RSA及椭圆曲线密码系统相比较,在安全要求相同的情况下,NTRU产生密钥对更快,在加密和加密效率上也具有一定的优势。但NTRU的原始方案的安全性一直没有得到严格的证明。2011年,Stehle D,SteinfeldR在理想格上基于R-LWE问题构造了选择明文攻击安全的NTRU加密体制。2012年,Ron Steinfeld等人在理想格上提出了选择密文攻击安全的NTRU加密体制。

      下面分别介绍基于格上最短向量问题的NTRU的原始加密方案的整个过程。以及为了达到CPA安全性,给出的一种新型的基于R-LWE问题的NTRU改进方案

    NTRU原始方案

    NTRU原始方案的公开参数如下:

    n:次数参数,为正整数。经典取值为素数n=251。

    g:大模数,为正整数。经典取值为2的幂q=256。

    p:小模数,为小的奇素数或多项式。经典取值为素数p=3。

    d:用来限制非0系数的个数,为整数。当n=251时,d=72。

    f(x):模多项式,为n次整系数多项式。模多项式f(x)将格Zn构造成了环z[x]/f(x)。经典取值为f(x)=xn-1。

      NTRU原始方案的一个说明:中心化处理,即模q运算或模p运算的结果以0为中心。比如模3运算的结果属于{-1,0,1}而不是{0,1,2},模256运算的结果属于{-127,-126,…,128}而不是{0,1…,255}。这样的中心化处理在代数上没有任何不同,但使得尺寸变小了。环Zq[x]/f(x)和环zp[x]/f(x)都经过这样的中心化处理。

    下面以经典参数值(n,q,p,d,f(x))=(251,256,3,72,xn-1)来叙述NTRU原始方案,其中(n,g)是方案的安全参数。

     

    NTRU改进方案

      NTRU的改进方案中最主要的贡献就是对密钥生成算法的改进和分析。私钥是由两个次数小于n的多项式构成,在NTRU原始方案中尽管公钥在环中有“好”的分布,但它在整个环中不是均匀分布的。这就不能充分地表现它的密码的伪随机性。

      为了达到CPA安全性,对NTUR的原始方案做了如下改进:

     

     

    摘自论文《基于理想格的公钥密码中模多项式的应用研究》

    https://blog.csdn.net/sinat_36742186/article/details/83689529

  • 相关阅读:
    倍增
    「BZOJ 2152」聪聪可可
    「POJ 1741」Tree
    点分治
    高斯消元
    网络流24题之餐巾计划问题
    网络流24题之骑士共存问题
    网络流24题之方格取数问题
    网络流24题之负载平衡问题
    网络流24题之分配问题
  • 原文地址:https://www.cnblogs.com/xdyixia/p/12597290.html
Copyright © 2011-2022 走看看