增速密码法与装置制造方法及图纸

技术编号:3527965 阅读:193 留言:0更新日期:2012-04-11 18:40
一种执行包括变换数字信息在内的密码运算的方法。该方法提供了一个数字运算符,其一个分量从大的元素集合中取值。该分量被分解成多个因子,每个因子具有一个低Hamming权。数字信息利用该数字运算符来变换。计算机可读介质载有该方法的说明资料。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术主要涉及一种能够有效地计算量的幂和倍数的方法和装置,其可用于诸如密钥生成、加密、解密、辨识、识别和数字签名等密码目的。
技术介绍
现代密码方法要求大量的基本算术运算,如加、减、乘、除、余、移位以及逻辑“与”、“或”和“异或”。这些方法中有许多需要计算幂Ak(或倍数k*A),其中值k从一个可能值集合中随机选取。迄今为止,人们业已就k取一指定值时幂Ak(或倍数k*A)的计算提出并使用了各种各样的方法(H.Cohen所著“计算数论教程”(A Course in Computational Number Theory),GTM 138,Springer-Verlag,1993(Section 1.2)),(D.Gordon所著“快速取幂法评述”(A survey of fast exponentiation methods),Journal of Algorithms17(1998),129-146),(D.Knuth所著“计算机编程技艺”(The Art ofComputer Programming),Volume 2,Semi-numerical Algorithms,3rded.,Addison-Vesley,1998(Section 6.4.3)),(A.J.Menezws等人所著“应用密码学手册”(Handbook of Applied Cryptography),CRC Press,1997(Section 14.6))。一种已用的快速计算方法是将k表示为2的幂之和,将计算化为乘法与平方(或加法与加倍)。第二种已用的快速计算方法是将k表示为2的正幂与负幂之和,将计算化为乘法、逆与平方(或加法、减法与加倍)。第三种已用的快速计算方法是将k表示为2的幂的小倍数之和,将计算化为乘法、小幂与平方(或加法、减法、小倍数与加倍)。第四种已用的快速计算方法是将k表示为一特殊乘子t的幂之和,其中t具有满足性质与乘法(或者加法或减法)相比,增高到t幂(或者乘以t)将占用非常少的时间。这种方法的一个特别情况是将k表示为群E(GF(pm))上的p-幂Frobenius映射的幂的和,其中E(GF(pm))是定义在有限域GF(p)上的一椭圆曲线E上的点所形成的群。第五种已用的快速计算方法(称作因子法(Knuth所著“计算机编程技艺”,(The Art of Computer Programming),Volume 2,Semi-numerical Algorithms,3rded.,Addison-Vesley,1998(Section4.6.3,page 463 and exercise 3)))是将一给定的整数k表示为数个因子的乘积,而各个因子则用前面所述方法进行表示。对于k的所有或大多数值,所有这些方法都能够对幂Ak(或倍数k*A)进行合理的快速计算,但许多使用者期望有一种方法,能够在k从一充分大的允许值集合中取值的情况下实现幂Ak(或倍数k*A)更加快速的计算。
技术实现思路
在许多密码运算中,要使用一个群或一个环中的一个元素的一个随机幂或倍数。本专利技术提供了一种方法、体制和装置来变换在某些重要情形下使用一种快速方法计算幂或倍数的数字信息,这些情形包括Galois域 中的幂,Koblitz椭圆曲线上的倍数,NTRU卷积多项式环中的倍数等。例如,根据本专利技术,一个指数或倍数将被表示为数个因子的乘积,其中的每个因子在被展开成某快速运算的幂的和时具有低Hamming权。这在许多密码运算中,如密钥生成、加密、解密、数字签名的创建、数字签名的验证、数字证书的创建、数字证书的辨识、识别等之中将是非常有用的,特别是在使用随机指数或乘子的情况下。因此,本专利技术提供了一种进行密码运算的方法、体制和装置,包括通过使用含有取自大元素集合的一个分量的数字运算符进行运算来变换数字信息,其中该分量具有一低Hamming权。通常选择该分量使其Hamming权约小于30,较佳约小于20,更佳约小于15,最佳则是约小于10。该数字运算符包含一个具有许多因子、每个因子具有一低Hamming权的分量较佳。与使用现有技术元素相比,按照本专利技术利用一个具有一个或多个分量的数字运算符,变换阶段将能以更快的速度完成。按照本专利技术,一个分量表示为数个因子的乘积,每个因子在展开成某快速运算的幂之和时具有低Hamming权(通过适当的计算设备如cpu、微处理器或计算机等来进行)。按照本专利技术,能够在k从一个大的可能元素集合中取值的情况下非常快速地计算幂Ak(或倍数k*A)。按照本专利技术的方法进行的计算通常比采用目前广泛使用的方法显著地快。在本专利技术的一实施例中,关于指数分量(或者多个元素相乘的分量)的计算技术使用特别选取的元素的乘积,以提高指数计算(或乘法计算)的速度。尽管可能的幂(或倍数)的个数约等于k(1),k(2),…,k(r)的容许值个数的乘积,但计算一个幂Ak(1)k(2)…k(r)(或一个倍数k(1)k(2)…k(r)*A)的计算复杂性与计算幂A1k(1),A2k(2),…,Ark(r)(或倍数k(1)*A1,k(2)*A2,…,k(r)*Ar)的复杂性成正比。虽然Ak(或k*A)的可能值的集合的大小随k(1)k(2),…,k(r)的容许值个数的乘积正比例增加、但计算复杂性随各个计算复杂性的和正比例增加这样一个事实有助于解释为什么本专利技术提供了一种改进的计算方法。本专利技术之方法特别适用于含有一个使幂At能够快速计算的元素t的情况。k(1),k(2),…,k(r)取作元素t的低Hamming权多项式较佳。本专利技术还提供一套计算机可读介质,其包含使用本专利技术的上述方法的说明资料。定义以下定义用于对本专利技术进行说明。计算机可读介质应理解为含有可被计算机读取的数据的制品或载有可被计算机读取的数据的载波信号。这类计算机可读介质包括但不限于,磁介质,如软盘、硬盘、卷带式磁带、盒式磁带或磁卡;光介质,如CD-ROM、可写光盘;盘、带或卡形式的磁光介质;纸介质,如穿孔卡和纸带;或者通过网络、无线网络或调制解调器中接收的载波信号,包括射频信号和红外信号。本文使用的术语“大集合”应理解为这样的一个元素集合,即它足够大,能够防止有人在预定时间内或在预定最小运算次数以下通过检查该集合的元素来找到密码运算中使用的一个随机选取的元素。找到选用的元素需要的时间越长或最小运算次数越大,密码运算就越安全。具体实施例方式有许多密码方法都需要一个随机幂Ak或随机倍数k*A,其中k是一个环R的一个元素,A是一个R-模M的一个元素。需要这种随机幂或随机倍数的典型方法有Diffie-Hellman密钥交换(美国专利号4,200,770),(Menezes,同前文,第12.6.1节),ElGamal公钥密码技术(Menezes,同前文,第8.4节),数字签名标准(DSS),(Menezes,同前文,第11.5.1节),NTRU公钥密码体制(美国专利号6,081,597),(J.Hoffstein等人所著“NTRU一种新的高速公钥密码体制”(NTRUA new high speed public keycryptosystem),in Algorithmic Number Theory(ANTS III)本文档来自技高网
...

【技术保护点】
一种方法,该方法用于执行一种包括变换数字信息在内的密码运算,该方法包括:提供数字信息;提供一个数字运算符,其含有一个取自大元素集的分量;将该分量分解成多个因子,每个因子具有一个低Hamming权;以及利用数字运算符变换数字信 息。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:J霍夫斯腾JH西尔弗曼
申请(专利权)人:NTRU保密系统公司
类型:发明
国别省市:US[美国]

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利