发明名称 乘法之方法及装置以及加上椭圆曲线之方法及装置
摘要 本发明揭示一种乘法之方法及装置,及加上椭圆曲线之方法及装置。在一种加密演算法中由一椭圆曲线y2=x3+a*x+b上的点来乘以一数目,x为该椭圆曲线的第一座标,y为该椭圆曲线的第二座标,而该第三椭圆曲线系定义在具有大于3之特征的本体上,其使用一递回演算法,其中在另一个依序处理之后的该数目的一个数字,其中一第一更新的辅助点,如果该数目的数字等于1,其系等于该原始第一辅助点的两倍,而一第二更新的辅助点系等于该原始第一及原始第二辅助点(22)之总和,且其中如果该数目的数字具有一个1(14)时,该第一更新的辅助点等于该原始第一及该原始第二辅助点(16)之总和,而该更新的第二辅助点系等于该原始第二辅助点(18)之两倍。在递回处理该数目(24、26)的所有数字之后,该更新的第一辅助点代表在该椭圆曲线(10)上的乘法运算之结果(28)。为了计算该第一及该第二辅助点,其分别给定有效率的明确加法及乘法公式,其可平行地实施,所以一具有一同质的目前轮廓之有效率演算法,及无关于该数目的一同质效能轮廓,其基本上为一安全金钥,藉此可防护来自外部的攻击。
申请公布号 TW580654 申请公布日期 2004.03.21
申请号 TW091123940 申请日期 2002.10.17
申请人 亿恒科技公司 发明人 威兰 菲斯崔;贞 皮尔 席菲特
分类号 G09C1/00 主分类号 G09C1/00
代理机构 代理人 陈长文 台北市松山区敦化北路二○一号七楼
主权项 1.一种在一加密演算法中将在具有形式为y2=x3+a*x+b之椭圆曲线上的一点乘以一数目(d)之方法,x及y为在该椭圆曲线上的点之座标,该椭圆曲线系在一具有特征値大于3之本体上所定义,该点系由一第一座标xB所提供,且该数目(d)具有一数目为n的二元化数字,其包含以下步骤:初始化在该椭圆曲线上一第一辅助点(P)之座标;初始化在该椭圆曲线上一第二辅助点(Q)之座标;连续地处理该数目(d)的二元化数字,- 其中该第一辅助点(P)之座标在当该数目的一数字等于0时,即等于该椭圆曲线上一点的座标,其造成当该第一辅助点乘以一因数2时,且其中该第二辅助点(Q)的座标等于该椭圆曲线上一点的座标,其造成当该第一辅助点与该第二辅助点相加时的结果,且- 其中该第一辅助点(P)的座标在当该数目的数字等于1时,其等于该椭圆曲线上一点的座标,其结果为当该第一辅助点(P)及该第二辅助点(Q)相加时,且其中该第二辅助点(Q)的座标等于在该椭圆曲线上一点的座标,其结果为当该第二辅助点(Q)乘以一因数2时;且输出(28)该第一辅助点(P)之座标,其由当该数目(d)的所有二元化数字已经处理时由连续处理的步骤造成的结果。2.如申请专利范围第1项之方法,其中该数目的数字在该连续处理的步骤中由一最高有效数字到一最低有效数字来处理。3.如申请专利范围第2项之方法,其中仅有该第一辅助量(B)之座标系在该连续处理的步骤中处理该最低有效位元来计算,但并非该第二辅助量(Q)之座标。4.如申请专利范围第1项之方法,进一步包括以下步骤:计算该第一辅助点(P)之另一个座标(yp)当该数目的所有二元化数字已经处理时由该连续处理的步骤得到,其使用以下的公式:yk为该第一辅助点(P)的另一个座标,a及b为该椭圆曲线的参数,Zk为该第一辅助点(P)之投影z座标,其由该连续处理的步骤所造成,Zk+1为该第二辅助点(Q)之投影z座标,及xP为该输出点(B)之仿射x座标,xk为由该连续处理的步骤所得到的该第一辅助点之投影x座标,而y为该原点(B)之仿射y座标。5.一种在一加密演算法中加入第二点在一椭圆曲线y2=x3+a*x+b上之方法,x及y为该椭圆曲线上的点之座标,该椭圆曲线系在具有一特征値大于3之本体上所定义,该两个点中的第一点具有一第一投影座标XP及一第三投影座标ZP,该第二点具有一第一投影座标XQ及一第三投影座标ZQ,其包含以下步骤:由下式计算(31)在该椭圆曲线上所得到的点之第一投影座标XP':XP'=2(XPZQ+XQZP)(XPXQ+aZPZQ)+4bZ2PZ2Q-xD(XPZQ-XQZP)2;及由下式计算(30)在该椭圆曲线上所得到的点之第三投影座标ZP':ZP'=(XPZQ+XQZP)2a及b为该椭圆曲线之参数,xD为在该椭圆曲线上一点的仿射座标,其系当计算该第一点(P)及该第二点(Q)之差値时所得到。6.一种在一加密演算法中将在具有形式为y2=x3+a*x+b之椭圆曲线上的一点乘以一因数2之方法,x及y为在该椭圆曲线上的点之座标,该椭圆曲线系在一具有特征値大于3之本体上所定义,该点系由一第一投影座标XP所及一第三投影座标ZP所提供,其包含以下步骤:由下式计算(32)一所得到的点之第一投影座标XQ':XQ'-(X2Q-aZ2Q)2-8bXQZ3Q;及由下式计算(34)一所得到的点(Q')之第三投影座标ZQ':ZQ'=4(XQZQ(X2Q+aZ2Q)+bZ4Q)a及b为该椭圆曲线的参数。7.一种在一加密演算法中加入两个点在具有形式为y2=x3+a*x+b之椭圆曲线上之装置,x及y为在该椭圆曲线上的点之座标,该椭圆曲线系在一具有特征値大于3之本体上所定义,一第一点(P)系由一投影x座标XP及一投影z座标ZP所提供,而该第二点系由一投影x座标XQ及一投影z座标ZQ所提供,并乘以该第二点(Q)一参数2来由该加法的结果得到由一第一投影x座标XP'及由一投影z座标ZP'所给定的一第一结果点(P'),并由该乘法的结果得到由一投影x座标XQ'及由一投影z座标ZQ'所给定的一第二结果点(Q'),其包含:用以相乘、相加及减去两个输入値的一计算单元(40);一个数目的8个暂存器R0.R1.R2.R3.R4.R5.R6.R7;及一流程控制(46),用以根据以下步骤来控制该暂存器及该计算单元:(0)利用XP初始化该暂存器R0,利用ZP初始化该暂存器R1,利用XQ初始化该暂存器R2,及利用ZQ初始化该暂存器R3;(1) R6←R2R1;(2) R7←R3R0;(3) R4←R7+R6;(4) R5←R7-R6;(5) R5←R5R5;(6) R7←R1R3;(7) R1←aR7;(8) R6←R7R7;(9) R0←R0R2;(10) R6←bR6;(11) R0←R0+R1;(12) R6←R6+R6;(13) R0←R0R4;(14) R1←xDR5;(15) R4←R0+R6;(16) R4←R4+R4;(17) R6←R2+R2;(18) R4←R4-R1;(19) R7←R3+R3;(20) R0←R6R7;(21) R1←R3R3;(22) R2←R2R2;(23) R3←aR1;(24) R6←R2-R3;(25) R7←R2+R3;(26) R1←R1+R1;(27) R2←bR1;(28) R7←R7R0;(29) R1←R2R1;(30) R0←R0R2;(31) R6←R6R6;(32) R6←R6-R0;(33) R7←R7+R1;(34) 输出R4的内容来得到该加法的结果点之投影x座标XP',输出R5的内容来得到该加法之投影z座标ZP',输出R6的内容来得到该乘法的结果点之投影x座标XQ',输出R7的内容来得到该乘法的结果点之投影z座标ZQ',该符号""代表一乘法,该符号"+"代表一加法,该符号"-"代表一减法,a、b为该椭圆曲线的参数,xD为一点的仿射x座标,其系当该第一点P由该第二点Q减去时所得到,而该符号"←"代表该箭头所指引朝向的暂存器系载入有位在该箭头尾部之算术运算所得到的数値。8.如申请专利范围第7项之装置,进一步包含另一个计算单元,且其中该流程控制(46)系配置来使得该计算单元(SUB-ALU 1)及该另一个计算单元(SUB-ALU 2)来平行地执行以下的步骤:- 步骤(1)平行于步骤(2);- 步骤(3)平行于步骤(4);- 步骤(5)平行于步骤(6);- 步骤(7)平行于步骤(8);- 步骤(9)平行于步骤(10);- 步骤(11)平行于步骤(12);- 步骤(13)平行于步骤(14);- 步骤(16)平行于步骤(17);- 步骤(18)平行于步骤(19);- 步骤(20)平行于步骤(21);- 步骤(22)平行于步骤(23);- 步骤(24)平行于步骤(25);- 步骤(27)平行于步骤(28);- 步骤(29)平行于步骤(30);及- 步骤(32)平行于步骤(33)。9.一种在一加密演算法中将在具有形式为y2=x3+a*x+b之椭圆曲线上的一点乘以一数目(d)之装置,x及y为在该椭圆曲线上的点之座标,该椭圆曲线系在一具有特征値大于3之本体上所定义,该点系由一第一座标xB所提供,且该数目(d)具有一数目为n的二元化数字,其包含:用以初始化在该椭圆曲线上一第一辅助点(P)之第一座标的装置;用以初始化在该椭圆曲线上一第二辅助点(Q)之第一座标的装置;用以连续地处理该数目(d)的二元化数字之装置,- 其中该第一辅助点(P)的第一座标在当该数目的一数字等于0时,即等于在该椭圆曲线上一点的第一座标,其系当该第一辅助点乘以一因数2所造成,及其中该第二辅助点(Q)的第一座标等于在该椭圆曲线上的一第一座标,其系当该第一辅助点及第二辅助点相加时所得到,及- 其中该第一辅助点(P)之第一座标在当该数目的一数字等于1时,即等于在该椭圆曲线上一点的第一座标,其系当该第一辅助点(P)及该第二辅助点(Q)相加时所得到,及其中该第二辅助点(Q)的第一座标等于在该椭圆曲线上的一点之第一座标其系当该第二辅助点(Q)乘以一因数2时所得到;及用于输出(28a)该第一辅助点(P)的第一座标之装置,其系由该数目(d)的所有二元化数字已经处理时连续处理的步骤所得到。10.一种在一加密演算法中加入第二点在一椭圆曲线y2=x3+a*x+b上的装置,x及y为在该椭圆曲线上的点之座标,该椭圆曲线系在具有一特征値大于3之本体上所定义,该两个点之第一点具有一第一投影座标XP及一第三投影座标ZP,该第二点具有一第一投影座标XQ及一第三投影座标ZQ'其包含:用于由以下等式计算(31)在该椭圆曲线上一结果点之第一投影座标XP'之装置:XP'=2(XPZQ+XQZP)(XPXQ+aZPZQ)+4bZ2PZ2Q-xD(XPZQ-XQZP)2;及用于由以下等式计算在该椭圆曲线上一结果点之第三投影座标ZP'之装置(30):ZP'=(XPZQ+XQZP)2a及b为该椭圆曲线之参数,xD为在该椭圆曲线上一点的一仿射座标,其系当计算出该第一点(P)及该第二点(Q)之差値时所得到。11.一种在一加密演算法中将一椭圆曲线y2=x3+a*x+b上的点乘以一因数2之装置,x及y为在该椭圆曲线上的点之座标,该椭圆曲线系在具有一特征値大于3之本体上所定义,该点具有一第一投影座标XP及一第三投影座标ZP,其包含:由下式计算(32)一所得到的点之第一投影座标XQ':XQ'=(X2Q-aZ2Q)2-8bXQZ3Q;及由下式计算(32)所得到的点(Q')之第三投影座标ZQ':ZQ'=4(XQZQ(X2Q+aZ2Q)+bZ4Q)a及b为该椭圆曲线之参数。12.一种在一加密演算法中加入两个点在一椭圆曲线y2=x3+a*x+b上之方法,x及y为在该椭圆曲线上的点之座标,该椭圆曲线系在具有一特征値大于3之本体上所定义,一第一点(P)由一投影x座标XP及一投影z座标ZP所给定,该第二点由一投影x座标XQ及一投影z座标ZQ所给定,并用于乘以该第二点(Q)一因数2,由该加法的结果得到一第一结果点(P'),其由一第一投影x座标XP'及一投影z座标ZP'所给定,并由该乘法的结果得到一第二结果点(Q'),其由一第一投影x座标XQ'及一投影z座标ZQ'所给定,其使用了8个暂存器R0.R1.R2.R3.R4.R5.R6及R7,其包含以下步骤:(0)利用XP初始化该暂存器R0,利用ZP初始化该暂存器R1,利用XQ初始化该暂存器R2,及利用ZQ初始化该暂存器R3;执行以下的暂存器运作:(1) R6←R2R1;(2) R7←R3R0;(3) R4←R7+R6;(4) R5←R7-R6;(5) R5←R5R5;(6) R7←R1R3;(7) R1←aR7;(8) R6←R7R7;(9) R0←R0R2;(10) R6←bR6;(11) R0←R0+R1;(12) R6←R6+R6;(13) R0←R0R4;(14) R1←xDR5;(15) R4←R0+R6;(16) R4←R4+R4;(17) R6←R2+R2;(18) R4←R4-R1;(19) R7←R3+R3;(20) R0←R6R7;(21) R1←R3R3;(22) R2←R2R2;(23) R3←aR1;(24) R6←R2-R3;(25) R7←R2+R3;(26) R1←R1+R1;(27) R2←bR1;(28) R7←R7R0;(29) R1←R2R1;(30) R0←R0R2;(31) R6←R6R6;(32) R6←R6-R0;(33) R7←R7+R1;且(34) 输出R4的内容来得到该加法之结果点的该投影x座标,输出R5的内容来得到该加法的该投影z座标ZP',输出该暂存器R6来得到该乘法之结果点的该投影x座标XQ',并输出该暂存器R7之内容来得到该乘法之结果点之投影z座标ZQ',该符号""代表乘法,该符号"+"代表加法,该符号"-"代表减法,a、b为该椭圆曲线的参数,xD为当该第一点P由该第二点Q减除时所得到的点之仿射x座标,而该符号"←"表示该箭头所导引朝向的暂存器系载入由位在该箭头尾部之算术运算所得到的一数値。13.如申请专利范围第12项之方法,其中以下的步骤系平行地执行:- 步骤(1)平行于步骤(2);- 步骤(3)平行于步骤(4);- 步骤(5)平行于步骤(6);- 步骤(7)平行于步骤(8);- 步骤(9)平行于步骤(10);- 步骤(11)平行于步骤(12);- 步骤(13)平行于步骤(14);- 步骤(16)平行于步骤(17);- 步骤(18)平行于步骤(19);- 步骤(20)平行于步骤(21);- 步骤(22)平行于步骤(23);- 步骤(24)平行于步骤(25);- 步骤(27)平行于步骤(28);- 步骤(29)平行于步骤(30);- 步骤(32)平行于步骤(33)。14.如申请专利范围第12项之方法,其中在一加法、乘法及/或减法之后,即执行具有如同一模组之椭圆曲线之特性之模数约化。图式简单说明:图1所示为求发明方法中将一数目乘以一椭圆曲线上的点之方块图;图2所示为一加法器之架构性方块图,用于相加在该椭圆曲线上的两个点来得到该第一辅助点;图3所示为一乘法之原理性方块图,用于将在该椭圆曲线上的点乘以该因数2来得到该第二辅助点;图4所示为一计算单元之方块图,用于相加及相乘一因数2,及一平行化的功能;图5所示为图4之流程控制之功能的概略图;图6所示为该加倍及相加演算法不具有仿制加法及具有仿制加法之概略图。
地址 德国