专利名称:基于椭圆曲线的新陷门单向函数及其用于较短签名和非对称加密的应用的利记博彩app
技术领域:
本发明涉及陷门单向加密函数以及利用此类函数的密码系统。
背景技术:
陷门单向函数(TOWF)是公开可计算函数,仅一个实体可对其 反演(invert)。需要称为私钥的专用密码来计算TOWF的逆(inverse)。
TOWF的经典实例是基于Med三M (mod N)这一关系的RSA函 数。公共RSA函数w计算如下W(x) = xe mod N。数字e和N是公 共值。选择数字N为两个加密的不同质数p和q的积。用私钥运算w 反演RSA函数,可计算如下W"(y) = yd mod N,其中d = (1/e) mod (p-l)(q-l)并为私钥。
无私钥而反演RSA函数被认为是难题。对于大值的N来说,对 N因式分解得到质数p、 q是计算上不可实行的,而因此私钥w = (p-l)(q-l)也保持秘密。实际中,当前所作的许多在线银行业务的安全 性依赖于无私钥则难以反演的RSA函数。换句话说,人们通常认为 RSA是TOWF。
作为TOWF, RSA函数可用作执行数字签名和公钥加密的密码系 统的基础。为了用陷门单向函数W对消息M数字签名,需要利用私 钥运算W-1和公共散列函数H计算S = W、H(M))。散列函数有两个 用途将M压缩到W"可处理的摘要(digest)大小,以及防止一些潜在 攻击,这些潜在攻击涉及从一条消息签名向相关的但未授权的消息的 转换。为了用陷门单向函数检验消息M的签名S,需要核查H(M)二 W(S)。
用TOWF进行公钥加密有点与签名相反。不进行散列,而使用编 码方案E。为了对消息M加密,需要计算密码C二W(E(M))。为了对
密码C解密,需要计算M = E"(W"(C))。编码函数用于使M适合应 用于w所需的大小,并且防止某些种类相关消息的攻击。
一种可选的密码系统针对离散对数问题的难点而建立。将安全性 建立在离散对数问题的基础上的特别牢固的密码系统利用椭圆曲线,
并且与RSATOWF密码系统相比具有减小的带宽的优势。
尽管与RSA TOWF密码系统相比椭圆曲线密码系统减小带宽, 其在保持现有系统的理想属性的同时仍需要使带宽最小化。而且 TOWF不依赖随机数发生器,因此即使所需带宽较大,在某些环境下 更易于执行。
因此本发明的目的是提供一种TOWF密码系统来消除或减轻上 述的缺点。
为了便于理解本发明的基本原理,下面回顾一下这些原理的数学
>^础o
椭圆曲线E是满足椭圓曲线定义方程的点(x, y)的集合。定义 方程对y是二次方的和对x是三次方的,并且是非奇异的。坐标x和 y是域的元素,是可被加、减、乘和除(0除外)的一组元素。域的 例子包括有理数和实数。还有有限域,它们是密码系统中最常用的域。 有限域的例子是以质数q为模的整数集。
不失一般性,椭圆曲线的定义方程可为Weierstrass形式。当域F 取自以质数q〉3为模的整数时,那么Weierstrass方程采取这种形式 y2 = x3 + ax + b,其中a和b是域F的元素。
椭圓曲线E包4舌点(x, y)和另 一点即无穷点(point at infinity) 0, 其中点(x,y)是定义方程的所有解。椭圓曲线E还有群结构,意指在曲 线上的两个点P和Q可估支加法而形成第三点P + Q。点0是群的恒等 式,意指对所有的点P,有P + C^O + P二P。加法是结合的,因此P + (Q + R) = (P + Q) + R,并且是可交换的,因此对所有的点P、 Q和R, 有P + Q二Q + R。每一点P有负点-P,使得P + (-P)二0。当曲线方程 是y2 = x3 + ax + b形式的Weierstrass方程时,P = (x, y)的负点很容易 确定为-P = (x, -y)。根据坐标对点P和Q做加法的公式只适度复杂,
只涉及少量定义E的域中的域运算。
域上二变量有理函数r(x, y)是相同域上的两个二变量多项式的 比。因此r(x,y)二p(x,y)/q(x,y),其中p和q是x和y的多项式。x和 y的多项式是a^yn形式的项的和,其中a是域元素(可能取决于m 和n),而m和n非负整数。例如,x2y國3y4 + 1是x和y的多项式。 对于任意有理函数r(x, y)和域元素u和v,在点(u, v)有有理函数数r(x, y)的值。该值是域元素或无穷点,并写为r(u, v)。 ^又通过用域元素u 代换每次出现的变量x,用v代换每一y,并而后计算所有的域运算, 例如乘法、加法和除法。有时候除以O的结果通常表示值r(u, v)实际 上是无穷的,因为该值不在域中而认为是例外。因此对于曲线上的点 (x, y)计算r(x, y)是可能的。在点O定义r(x, y)的值也是可能的,这样 能够计算关于曲线的每一点的r。
椭圆曲线E上的有理映射是一对有理函数r(x, y)和s(x, y),使得 如果(u,v)是E上的点,那么(t,w)-(r(u,v),s(u,v))也是E上的点。更 一般而言,如果(u, v)由O取代,而且如果(t, w)为O是可接受的,这 对应于t和w都是无穷大,那么这种情况还需保持成立。
就^^曲线上的点一样,椭圓曲线上的有理映射实际上可啦支加法。 除了不用域元素做运算,而用有理函数即用x和y的符号函数做运算 之外,加法少见则相同。
作为E的有理函数,如果r等于r'并且s等于s',则E上的有理 映射(r, s)等于另一个有理映射(r', s')。
特定类的有理映射是自同态。自同态e是具有加法特性的有理映 射e^(r,s),即对于任意两个点P和Q,有e(P + Q) = e(P) + e(Q)。椭 圆曲线理论中一个重要的定理表示,如果e是具有这种特性e(O) = O 的有理映射,那么e也是自同态。这个定理大大简化了对给定有理映 射是否是自同态的确定。
自同态的重要例子是e二[m],由e(P)二mP定义,即m个点P的 和。因为曲线E的加法法则由有理函数定义,那么m个P的迭代和 mP也是如此,因为这些有理函数可以迭代。因而e(P)是有理映射。
因为关于曲线E的加法运算是结合的,对于e = [m],有e(P + Q)= m(P+Q) = m(P) + m(Q) = e(P) + e(Q)。因而,因为e有加法特性,所以 e是自同态。
如果有不同于[m]的自同态,那么说E有复数乘法。有限域上定 义的椭圓曲线总有复数乘法。换句话说,对于所有的整数m,这些椭 圆曲线总有不同于[m]的自同态e。
椭圆曲线理论的有效的定理表示,任何自同态e相当于(r(x), cyr'(x))形式的唯一映射,其中r(x)是单个变量的有理函数,c是常量 域元素,而r'(x)是r(x)导数。这个结果根本不明显,但是如果e是(f(x, y),g(x,y))形式,那么如下所述,不难确定r(x)。
为了举例说明,用线性或y的常量多项式代换f(x, y)中每次出现 的y2。例如,如果该曲线的定义方程是^-xS + ax + b那么yS可由x3 十ax + b代换,其为y的常量。按需要这样运用多次,使得分子和分 母中的y没有任何高于1的幂,换句话说,它们对y是线性的。修改 的f(x, y)具有(a(x) + b(x) y)/ (c(x) + d(x)y)这个形式,其中a、 b、 c和d 是多项式函数,不与前面使用的这些变量混淆。通过用(c(x) - d(x) y) 乘上端和下端可从分母中消去y,得出下端中c(x)2 - d(x)2 y2 = c(x)2 -d(x)2 (x3 + ax + b)。分子中的y2也可消去。这样给出 一种形式g(x) + h(x) y,其中g(x)和h(x)是x的有理函数。因为当e是自同态时有e(-P)= -e(P),因而对于曲线上的所有(x, y), e(x,-y) = -e(x, y),因此g(x) + h(x) y = g(x) - h(x) y,可证明h(x)= 0。因此现在我们得到r(x)为g(x)。显 然用这种方法得到的r(x)是唯一的。
同样地,有理函数g(x, y)可表示为线性函数h(x) + y k(x),其中 h(x)和k(x)是x的有理函数,而通过相同的理由可显示h(x) = 0。这样 意味着可确定k(x),其提供一种得到(r(x), cyr'(x))形式中的常量c方法。 可选地,c可由对r(x)微分得到,并而后在某点P计算e而解出c。
每一自同态对椭圆曲线群有一作用,该椭圆曲线群对应于二次代 数整数。二次代数整数z是复数,使得对于某整数u和v,有z2 + uz + v = 0。如果eZ + [u]z+[v]二
,那么自同态e对应于该代数整数,其
中如上所述,此处的加法是有理映射的相加。这时,我们可写e二[z], 其中[]表示对应于有理整数的有理映射。
所有实数整数是二次代数整数,而自同态[m]对应于整数m。不 是实数整数的二次代数整数是复数纟,-1的平方根,其满足二次方程 /2+1=0。对于每一不是实数整数的二次代数整数,只有有限的具有 自同态[z]的椭圓曲线。已知的结果给出确定这类曲线的理^仑程序,以 及确定[z]为有理映射的方法。
通常,自同态e的次数是点P的数量,使得e(P)-0。更确切地, 这称为e的可分离次数。实际次数是可分次数和其他某些称为不可分 次数的积。当e表示为其标准形式(r(x), cyr'(x))时,r(x)的分子的次数 是e的次数,而r(x)的分母的次数少1次。(这里我们假设r(x)的分子 和分母是互质的)而且,对于e-[z],通常有e的次数为lzl2。例如, 自同态[m]的次数因此为lm卩二m2。
在传统椭圆曲线密码系统中,经常计算自同态[m]。数m代表私 钥,而[m]P二mP代表公钥。即使对于大m值,可有效计算函数[m], 比对出现在[m]的r(x)的分子和分母的完全展开多项式形式中的1112项 求和快得多。此处关键的结果是可有效计算高次数的自同态。
下面例子列出了任意椭圓曲线上的每一可能的2次自同态。该列 表完全等效于有理映射和椭圆曲线。这些选自Silverman的算术椭圓 曲线高等概i仑(Silverman )。
首先是e二[z]二[l+i],定义在曲线E上
注意z作为定义e的作用的有理函数出现,因此当E定义在含有 对应于z的值的域F上时,^f又定义e。(该注解也适用下面的两个自同 态e)
第二是6=[2]=[々(-2)],定义在E上 x2 y
第三是6 = [2] = [(1+々(-7))/2],定义在E上 / =x3 -35jc + 98,贝'J:
(4
z2(jc + z2—2) , ?(:c + z2—2)
发明内容
发明人公认可使用椭圆密码系统的属性获得TOWF,该TOWF 提供有着减小的宽带的牢固的密码系统。
一方面,本发明提供一种在n阶椭圆曲线E上运算的密码系统。 该密码系统具有与二次代数整数z相应的自同态[z],该二次代数整数 z有形式z2 + uz + v二0,其中u和v是秘密整数,并且v与n是互质 数;公钥运算,用于对加密数据x应用所述自同态[z]从而得到修改的 数据x';以及私钥运算,用于对修改的数据x'应用[-w] [u] + [z]从而 得到数据x,其中w是整数,而wv = 1 mod n。
另 一方面,本发明提供用于在密码系统中执行密码运算的方法, 该密码系统在n阶椭圆曲线E上运算。该方法包括以下步骤导出对 应于二次代数整数z的自同态[z],该二次代数整数z有形式z2 + uz + v =0,其中u和v是秘密整数,并且v与n是互质数;利用自同态[z] 对加密数据x应用公钥运算以便得到修改的数据x';以及利用[-w] [u] + [z]对修改的数据x'应用私钥运算以便得到数据x,其中w是整数, 而wv = 1 mod n。
现在将仅通过实例参照附图描述本发明的实施例,其中: 图l是密码交换方案的图示;
图2是显示了陷门单向函数的应用系统的图示;
图3是显示了图2中陷门单向函数用于加密的应用系统的图示; 图4是显示了图2中陷门单向函数用于数字签名的应用系统的图
示;
图5是显示了图2中陷门单向函数用于聚合签名的应用系统的图
示;
图6是一图示,示出了图2中陷门单向函数用于具有单个消息的聚
合签名以及多个签名者的多重陷门单向函数的应用系统。
具体实施例方式
因而参照图1,密码系统10具有经信道16通信的第一实体12 和第二实体14。第一实体12和第二实体14各具有密码模块15,该 密码才莫块将可用的公钥函数或私钥函数18应用于两个实体12、 14。 各实体12、 14将利用带有TOWF的密钥函数18实现如上所述的加密 /解密或签名/认证。
为了实现这种系统,必须确定具有对应的公钥函数和私钥函数的 合适的TOWF。发明人已认识到利用二次代数整数z可得到合适的 TOWF。然后找到曲线E和在E上定义[z]的有理映射。该有理映射[z] 是TOWF。 Z的明智选择将确保其有必要的密码属性,即
(a) 可有效计算[z];
(b) 难以反演[z];
(c) 从定义[z]的有理函数难以确定z;以及
(d) 对z的了解使得可以基于某组椭圆曲线点反演[z]。 更一般而言,某人可以^吏用两个不同曲线E和E'之间的有理映射
r。该有理映射可用作TOWF。然而,为了易于^丸行,使用E二E'更方 便。优选执行从E到E的有理映射。
因为每一有理映射(即从E到E)是平移和自同态的组合,其中 平移易于确定和反演,有理映射最安全的部分是自同态。因而执行有 理映射时优选自同态。 发明人已认识到,为了反演Z计算陷门的逆的一种潜在方法是使
用z的二次方程z2 + uz + v = 0,其中u和v是整数。该方程除以vz 得出(z+u)/v + (l/z)二0。从而(l/z):-(z + u)/v。此时,(1/z)通常不是 二次代数整数。更准确地,如果z的次数大于l,那么(l/z)不是二次 代数整数。因而,没有反演[z]的自同态。反而,有双重自同态(dual endomorphism) [z']=[國(z + u)],其满足[z][z'] = [v]。在特定域F中, 椭圆曲线E的阶n有时可与v互质数,这意味着有一整数w使得wv = 1 modn。这意p未着对于定义在F上的E的点来i兌[w]用作[v]的逆。
这时,E(F)上[z]的作用(action )是通过自同态[w][z'] = [-w( z + u)] 可逆的。如果可有效找到[z],那么[-w(z + u)]也是可能找到的。其可 选表达式为[-w]([u] + [z])。
从而,可利用自同态[z]作为公钥运算以及关系[-w] [w] + [z]作为
私钥运算。
整数U, V保持加密并且只对执行私用函数的实体可用。
应该了解这对域F是特定的并且对于定义在另 一个域F上的E是 不正确的。定义在F上的E的点有时表示为E(F)以强调坐标在F之外 的点不在考虑之中。
对于[z]为了是陷门单向函数,从[z]的公共定义确定u和v应该是 计算上不可行的,否则其E(F)上的逆被有效计算为[-w]([u] + [z])。因 而,需要给出不允许容易确定u和v的[z]的形式。
通过将[z]设为一对有理函数,认为不易确定u和v。典型地,第 一坐标仅是x的函数,因此[z]有点为规范形式(r(x), g(x, y)),然后计 算r(x)的说明可潜在地暴露r(x)的分子的次数,尽管因大量的项而作 为两个多项式的比的r(x)的完全展开可能是不可实行的。由于[z]的次 数是v, [z]的说明有可能将暴露v。因而,为了确保[z]是单向陷门, 重要的是确保也不暴露u,否则可如上所述将[z]反演。
根据Silverman,确定通用椭圓曲线的自同态环是非平凡问题。 由于v和u本质上确定自同态环,基于(upto)整数因子,仅从椭圆 曲线的说明确定v和u通常不可行。因而,根据单个复数自同态的说 明,确定自同态环仍是非平凡问题,这似乎可信。尤其,这意味着根 据作为 一对有理函数的[Z]的说明来确定U是非平凡问题,也似乎可信。 因而,应该选择Z的次数使得其有适当大的阶。这样有助于确保
利用关系u2 < 4v不会耗尽所有的可能u值。这是从上面得出的,因
为Z必须为虚数复数。的一个可能构造基于下面结论。如上所述,如果e = [z] = (r(x), cyr'(x))为m次,那么r(x) = p(x)/q(x),其中p和q分别是m和m-1次 的多项式。e的核是m个点的集合,椭圓0 = Zi,Z2, ... ,Zm,使得对 于j从l到m有e(Zj)二O。如果对于j从2到m,有4 = (&》),那么 可假定q(x) = (x - z2) (x -z3)…(x画zm)。而且,由于[z'][z〗=[m],所以 mZj = O,其中当如上确定为mZj = [m] Zj = [z'][z] Zj = [z'] O = O时, z'是z的共轭。此外,e的核是椭圓曲线E中的阶m的子群,尽管不 必须为E(F)的一部分。总体上,该椭圆曲线通常至少有m+l个此类 子群。
接着,考虑含有点B^(0,A/b)的椭圆曲线。假定有某点W,使得 [z]W = B。对于j从l到m,让Wj:W + Zj。(注意W广W + Z,W十 0 = W)。布支定对于j从l到m,有Wj:(wj,uj)。那么对于某常量d,
有p(X) = d (X國WO (X-W2) ... (X國Wm)。
注意p(x) = d (x - Wl) u(x), u(x)的根实质为q(x)的根的有理函数。 当两个多项式的根具有像这种筒单关系时,有多项式系数变换。例如, 如果u(x)的根是q(x)的根的平方,那么u(x) = q(々x) q(-々x) (-l)degq(x)。 这样,可看到计算q(x)能够提供计算u(x)的方法。
应用上面结论,可以搜索某椭圓曲线E中的阶m的子群,其有 限x坐标是低汉明权多项式q(x)的零点。最好具有低汉明权多项式 q(x),因为它们对计算有效。然后将找到如上所述的点W,如上概述, 其允许人们有效计算分子p(x)。 一旦算出p(x)和q(x),那么可算出r(x)。
如下说明如何找到这种多项式p(x)、 q(x)。注意如果Zj在[z]的核 中,那么-Zj也在其中,并因此Zj可作为q(x)的二重根出现。假定q(x) 有m次,m为质数。进一步假定m是Elkies质数,其确切含义不涉
及下面讨论。这意味着对s(x)的(m-l)/2次多项式q(x) = s(x)2,其为m 次除法多项式(division polynomial)的因子。对椭圆曲线E(F)上的点 计数的Schoof-Elkies-Atkin (SEA)算法包括找到s(x)形式多项式的步 骤。通过递推方程找到多项式v(x)的系数。从而,构造这种多项式的 方法是众所周知的。在SEA算法中,找到针对较小m值的这种s(x), 但对于本发明的目的,使m值增大有利。
另一种可能的方法是选择低汉明权的不可约分多项式s(x)。使z 为其一个根,其中z是椭圆曲线E上某点的x坐标。该点可以具有有 限阶m。通过应用Galois自同构,该有限阶将对s(x)的任何根z有效 (hold)。如果这时来自s(x)的根的这些点是之内有界的,即它们形成E 的子群,那么s(x)具有理想的形式。为此(For this to happen),我们 基本需要Galois自同构g和E上的点P使得g(P) = 2P。通过搜索g、 P以及E,使得能够找到理想形式的多项式s(x)。实际中,因为只采 用两个il之一,所以可忽略y坐才示。
如果自同态的核只在点O与群E(F)相交,那么群E(F)上自同态e 的作用是可逆的。这种情况下,自同态e是群E(F)的自同构。通常群 E(F)是循环的,并在下面讨论中,我们假定群E(F)是循环的。如果e 是n阶循环群的自同构,那么由发明人实现的算法确定整数d,使得 e(G) = dG,其中对于该群使用加号(additive notation)。该算法的代 价取决于n-l的因式分解。公知n的随机值通常具有约为n^的因子f。 给定这个大小的因子,该算法可用f的常量多倍的方式确定d。这样 比给出dG找d的通用算法快得多。通用算法采用111/2方式。
因而,最好群E(F)有n阶使得n-1没有接近n1/3的因子。用这种 方法选择n的可选方法是仅选择较大的n,以便攻击111/3的代价是考 虑中的对手所无法达到的。例如,在80位安全级别,可选择这种较 大的n以便使得n约为224G,并且在128位安全级别,可选择n使得 n约为2384。然而,出于效率的理由,优选使用较小的n,而因此推测 将釆取必要的额外工作,以确保n-l的大小近似于n"3。
在图2中主要示出了使用自同态e的方式。第一实体12取一x
值。其可从两个相应y值中任意选择一个。然后将应用公钥函数[Z]
作为有理映射e = (r(x), g(x, y))并计算e(x, y)从而得到某值(x', y')。这 将是基本公钥运算。第二实体14接收消息(x', y')并接着应用e"从而 得到值(x, y)。这将是基本私钥运算[-w] [u] + [z]。注意如果y改为-y, y'改为-y', zf旦不影响x'和x。因而实际上差不多可以忽略y。
如图3中所示将此方法用于加密,第一实体12通过应用/>钥函 数[z]设定x为明码以及x'为密码。公钥加密的公知复杂方法通常对明 码x进行一些随机化填充,以便尤其对相同明码的重复加密给出不同 密码。第二实体14利用私钥函数对密码x'解密从而得到明码x。
如图4中所示将此方法用于签名,第二实体将x'设定为有待签名 的消息,并且通过应用私钥函数计算作为签名的x。通常使用一定的 散列来创建来自较长消息的x',这是数字签名的标准方法。第一实体 12使用公钥运算e来确认e(x,y)^(x', y')。散列函数是单向的,因此 第一实体不能从(x, y)开始伪造签名以及应用e得到(x', y'),因为下一 步将找到消息M,使得x^Hash(M),对于单向散列函数这被认为不 可实行。
如果反演[z]的问题与E中离散对数问题一样难,那么密码群的大 小可以小于用于RSA TOWF的群。例如,粗略认为3072位RSA系 数与定义在256位域上的椭圆曲线一样安全。认为两种目标的安全级 别都是128位,这是目前经互联网使用最广泛的商业级安全级别,例 如网上银行业务。椭圆曲线陷门单向函数[z],签名x或基本密码x' 的大小是256位,但对于RSA大小为3072位。
与传统椭圓曲线密码编码系统(ECC)相比,256位椭圆曲线的 签名大约长512位,其为椭圆曲线TOWF的签名大小的两倍。对于加 密可能有类似的节省。
在另一个实施例和本发明的应用中,TOWF应用于签名或密码的 聚合。下面将解释签名,但应该了解密码的细节完全类似。
签名聚合意指单个签名表示由单个签名者签名的多个消息,或由 多个签名者签名的单个消息,或由多个签名者签名的多个消息。
现在参照图5,为了对t个消息mi、 m2.....mt签名,签名者(例
如,第一实体12)对每个消息进行散列并且将每个散列转换为椭圆曲
线点,产生(yield) t个点Pi.....Pt,而后加起来从而产生一点P =
Pi+…+Pt。而后签名者应用反函数e"从而得到签名S = e4(P),其为 对于多个消息的单个消息。而后另一个实体(例如,第二实体14)的 认证包括对消息进行散列、将每个散列转换为一点、求和得到整个P, 而接着通过检验是否e(S) = P将公钥18运算e应用于S。这样做相比 于仅并联这些消息的做法的优势在于,因为签名是加性的,为希望改 变部分消息的签名者实现较大的灵活性。
上述程序不强制对个体消息部分签名的顺序,即签名认证和由相 同实体签名的一组(无序)签名有关。然而应该注意,假如通过认证 实体可取回或导出个体纯量倍数(scalar multiples )("权"),该程序可
易于概括为个体签名的加权和,而非个体签名部分Si..... St的和。
这将允许在这t个消息的签名过程中规定顺序,通过使权数依赖于可 应用的顺序。
现在参照图6,如果t个不同的签名者(例如,集体第一实体12)
使用相同的椭圆曲线群,并且具有不同的TOWF ..... et,那么它
们可以如下形成单个消息的聚合签名。为了签名消息m,第一实体12 的第 一个签名者计算消息的散列并且将该散列转换为椭圆曲线点P。 接着它们(即第一实体12的所有签名者)通过每个应用其私钥运算
共同计算et(et/(…(e^(P)))),其中由实体l、 2.....t按顺序进行签
名。认证(例如,由第二实体14)包括按相反的顺序应用各相应的公 钥18操作,并检验合成点P (resulting point)是否对应于被签名消息 m的散列值。
通常,椭圆曲线自同态交换(commut),因此由多个实体对单个 消息签名的顺序好像不相关。然而应该注意,该程序易于一i^化使得 在签名过程中强制顺序。如下所述可实现这一点,例如,通过使每个 签名实体向被计算的签名施加一个偏移。
假定由实体i在点P的个体签名是e,(P + Ai),其中椭圓曲线点A,对实体i是唯一的。那么通过对m进行散列和将该散列转换为椭圆
曲线点P (如前),可得到实体1、 2.....t对消息m的有序聚合签
致S产e, (P+AO, S2= e2" (S美),...,St= et" (S"+At),其中St是合成
聚合签名。假如个体偏移(individual offsets ) .....At可通过认证
实体取回或导出,并且取决于计算顺序 St-尸et(St)-At, St-2二et(Sw)-Aw, ... , S尸e2(S2)-A2, P^e"S0-Ai以及检验椭圆曲线点P是 否对应于被签名的消息m的散列值,现在签名认证是上述程序的细微 》务正(trivial modification),。
上面描述了原始方案的修正,从而利用偏移Ai强制签名过程的顺 序,其中每个偏移Ai对各签名实体是唯一的。应明白在此其可以有变 化,例如定义S尸ei—乂f(P,i))而非S^ei"(P + Ai),其中f是E上的映射, 属性为可从f(P, i)以及与签名实体i相关的公共信息有效重新计算P。 多个实体对单个消息的有序签名对签定(signing off)例如大机构中的 项目有用,其中要求多个签名并且项目需要由所涉及的授权方以特别 分级顺序(例如,颠倒)签定。
尽管参照一定的特定实施例描述了本发明,对本领域技术人员来 说其多种修改是显然的,而不脱离如其所附权利要求概括的本发明实 质和范围。通过引用将上面所引用的所有参考文献的整个公开内容并 入此处。
权利要求
1.在n阶椭圆曲线E上运算的密码系统,所述密码系统具有与二次代数整数z相应的自同态[z],所述二次代数整数z有形式z2+uz+v=0,其中u和v是秘密整数,并且v与n是互质数;具有公钥运算,用以对加密数据x应用所述自同态[z]从而得到修改的数据x′;以及具有私钥运算,用以对所述修改的数据x′应用[-w][u]+[z]从而得到数据x,其中w是整数,而wv=1 mod n。
2. 根据权利要求1所述的密码系统,其特征在于,所述整数z是具 有实部和虚部的复数。
3. 根据权利要求1所述的密码系统,其特征在于,所述自同态[z]表 现为有理映射。
4. 根据权利要求1所述的密码系统,其特征在于,所述密码数据x 包括消息m,所述公钥运算对所述消息m进行加密从而得到加密消息m', 以及所述私钥运算对所述加密消息m'进行解密从而得到所述消息m,所 述公钥运算由第一实体执行,而所述私钥运算由第二实体执行,所述第 一和第二实体是所述密码系统的一部分。
5. 根据权利要求1所述的密码系统,其特征在于,所述数据x'包括 用于由所述密码系统的第一实体签名的消息m,所述私钥运算对所述消 息m运算从而得到签名s,以及所述7>钥运算由所述密码系统的第二实 体对所述签名s运算从而认证所述签名,所述消息m最初由所述第二实 体生成。
6. 才艮据权利要求5所述的密码系统,其特征在于,所述消息m由应 用于原始消息M的散列函数生成。
7. 根据权利要求1所述的密码系统,其特征在于,所述密码数据x 包括多个消息,以便接收所述密码系统的第一实体的签名,所述私钥运 算对所述多个消息的组合运算从而得到所述签名,以及由所述密码系统 的第二实体使用所述公钥运算,从而认证所述签名,并由此认证所述多个消息的每一个消息。
8. 用于在密码系统中执行密码运算的方法,所述密码系统在n阶椭 圆曲线E上运算,所述方法包括以下步骤导出对应于二次代数整数Z 的自同态[Z],所述二次代数整数2有形式22 + 112 +V = 0,其中U和V是秘密整数,并且v与n是互质数;利用所述自同态[z]对加密数据x应用 公钥运算以便得到修改的数据x';以及利用[-w] [u] + [z]对所述修改的数 据x'应用私钥运算以便得到所述数据x,其中w是整数,而wv= 1 modn。
9. 根据权利要求8所述的方法,其特征在于,所述整数z是具有实 部和虚部的复数。
10. 根据权利要求8所述的方法,其特征在于,所述自同态[z]表现为 有理映射。
11. 根据权利要求8所述的方法,其特征在于,所述密码数据x包括 消息m,应用所述公钥运算对所述消息m加密从而得到加密消息m',以 及应用所述私钥运算/人所述加密消息m'中解出所述消息m。
12. 根据权利要求8所述的方法,其特征在于,所述数据x'包括用于 签名的消息m;所述私钥运算对所述消息m运算从而得到签名s,以及 所述公钥运算对所述签名s运算从而认证所述签名。
13. 根据权利要求12所述的方法,其特征在于,所述消息m由应用 于原始消息M的散列函数生成。
14. 根据权利要求8所述的方法,其特征在于,所述密码数据x包括 多个消息,以便接收签名,所述私钥运算对所述多个消息的组合运算从并由此认证所述多个消息的每一个消息。
15. 根据权利要求8所述的方法,其特征在于,所述数据x包括将由 多个签名者签名的消息,所述私钥运算包括对应于每一所述签名者的多 个运算,对所述消息连续应用所述私钥运算从而得到签名,所述公钥运 算包括对应于各所述签名者的多个运算,按相反的顺序对所述私钥运算 连续应用所述公钥运算,从而认证所述签名。
全文摘要
本发明提供一种新的陷门单向函数。通常,使用某二次代数整数z。接着可以找到曲线E和在E上定义[z]的有理映射。该有理映射[z]是陷门单向函数。z的明智选择将确保可有效计算[z],难以反演[z],从由[z]定义的有理函数难以确定z,以及对z的了解使得可以基于某组椭圆曲线点反演[z]。每一有理映射是平移和自同态的组合,因为平移易于反演,有理映射最安全的部分是自同态。如果反演自同态从而[z]的问题与E中离散对数问题一样难,那么密码群的大小可以小于用于RSA陷门单向函数的群。
文档编号H04L9/30GK101099329SQ200580046426
公开日2008年1月2日 申请日期2005年11月14日 优先权日2004年11月11日
发明者丹尼尔·R.·L.·布朗, 斯科特·A.·万斯通, 罗伯特·P.·加朗特, 马里纳斯·斯特罗伊克 申请人:塞尔蒂卡姆公司