解密装置、方法及电路与流程

文档序号:20081816发布日期:2020-03-10 10:47阅读:243来源:国知局
解密装置、方法及电路与流程
本案涉及一种装置、方法与电路。具体而言,本案涉及一种解密装置、方法及电路。
背景技术
:rsa加密演算法是一种非对称加密演算法。加密装置可利用rsa公钥对讯息进行加密,且解密装置在接收到加密后的讯息后,可利用rsa私钥对此一加密后的讯息进行解密。然而,在解密装置进行解密时,攻击者可藉由量测解密装置的相关讯号,以判断解密装置所进行的运算,进而得知解密装置所使用的rsa私钥。技术实现要素:为解决上述问题,本案的一实施态样涉及一种解密方法,包括:接收经rsa公钥加密的加密资料;以及根据rsa私钥与加密资料依序进行复数笔运算以获得一解密资料,其中运算包括复数笔解密运算以及至少一伪运算,解密运算包括至少一解密乘法运算以及至少一解密平方运算,伪运算包括至少一第一伪乘法运算及至少一第一伪平方运算中的至少一者。本案的一实施态样涉及一种解密装置,包括通讯模块以及解密元件。解密元件用以透过通讯模块接收经rsa公钥加密的加密资料;根据rsa私钥与加密资料依序进行复数笔运算,以获得解密资料,其中运算包括复数笔解密运算以及至少一伪运算,解密运算包括至少一解密乘法运算以及至少一解密平方运算,伪运算包括至少一第一伪乘法运算及至少一第一伪平方运算中的至少一者。本案的另一实施态样涉及一种解密电路,包括运算电路以及控制电路。运算电路用以根据rsa私钥与加密资料依序进行复数笔运算并产生复数笔运算结果,其中该些笔运算包括复数笔解密运算以及至少一伪运算,解密运算包括至少一解密乘法运算以及至少一解密平方运算,至少一伪运算包括至少一第一伪乘法运算及至少一第一伪平方运算中的至少一者。控制电路用以依序接收运算结果,提供解密运算的运算结果至运算电路,并阻止至少一伪运算的运算结果提供至运算电路。透过应用上述一实施例,即可在进行解密时防御量测攻击。附图说明图1为根据本案一实施例所绘示的解密系统的示意图;图2为根据本案一实施例所绘示的解密方法的流程图;图3为根据本案一实施例所绘示的解密方法的示意图;图4为根据本案一实施例所绘示的解密电路的示意图;图5为根据本案一实施例所绘示的解密方法的示意图;以及图6为根据本案一实施例所绘示的解密电路的示意图。符号说明10:解密系统20:加密装置100:解密装置110:解密元件112:解密电路112a:运算电路112b:控制电路114:解密电路114a:运算电路114b:控制电路120:通讯模块200:解密方法s1-s2:步骤2、22、24、26:序列sq、mt、sq’、mt’、sq"、mt":运算a1、a2:特征值mux:多工器mtc:乘法器sqc:平方器reg:暂存器ctl:控制器n:加密资料cs:控制讯号ops:操作讯号t1-t8、q1-q4:期间dcr1-dcr3:解密运算dum1-dum3:伪运算具体实施方式图1为根据本案一实施例所绘示的解密系统10的示意图。解密系统10包括解密装置100与加密装置20。加密装置20用以利用rsa公钥对原始讯息加密,以产生加密资料n,解密装置100用以接收加密资料n,并对其进行解密。解密装置100包括相互电性连接的解密元件110及通讯模块120。通讯模块120用以接收来自加密装置20的加密资料n,并将加密资料n传送至解密元件110。解密元件110用以对加密资料n进行解密,以取得原始讯息。解密元件110可用处理器或其它适当计算元件执行特定指令或程式所实现,或可用电路实现。在一实施例中,通讯模块120可用有线或无线的通讯元件实现。一并参照图2,图2中的解密方法200可应用于相同或相似于图1中所示的解密装置100。以下将以图1中的解密装置100为例进行对解密方法200叙述。步骤s1:解密元件110透过通讯模块120接收来自加密装置20的加密资料n,加密资料n是经rsa公钥加密。步骤s2:解密元件110对加密资料n进行解密,以获得一解密资料(即加密前的原始讯息)。解密元件110可根据对应于前述rsa公钥的rsa私钥与加密资料n,依序进行复数笔运算,以获得解密资料。在一实施例中,此些运算可包括复数笔解密运算及至少一第一伪运算(在后详述)。此些解密运算可用以将加密资料n解密为解密资料。在一实施例中,此些解密运算包括至少一解密乘法运算以及至少一解密平方运算。举例而言,参照表一,在前述rsa私钥的数值为123时,其二进位形式为2’b1111011。因此,在进行解密时,是依序进行对应于每一位元的解密乘法运算及/或解密平方运算。以另一角度观之,在进行解密时,解密元件110是计算n^123=((((((n^2)*n)^2*n)^2*n)^2)^2*n)^2*n,以获得出解密资料。表一二進位形式1111011解密乘法運算-ˇˇˇ-ˇˇ解密平方運算ˇˇˇˇˇˇ-在前述复数笔解密运算中,前述解密乘法运算所进行的次数是相应于rsa私钥的二进位形式中数值为1的数量。例如,在表一中,由于rsa私钥的二进位形式中,除了左数第一位元(即最高有效位元(msb))外,数值为1的位元的数量为5,故进行5次解密乘法运算。此外,前述解密平方运算所进行的次数相应于前述rsa私钥的二进位位元长度(bitlength)。例如,前述rsa私钥的二进位位元长度为7位元,解密元件110需执行7-1=6次解密平方运算。在一实施例中,第一伪运算并不用以产生解密资料。在一实施例中,第一伪运算可执行于解密运算之前、之间或之后。在一实施例中,第一伪运算可包括至少一第一伪乘法运算及/或至少一第一伪平方运算。在一实施例中,第一伪乘法运算与解密乘法运算的量测特征相同(如图3的a2),且第一伪平方运算与解密平方运算的量测特征相同(如图3的a1)。其中,量测特征是指在解密装置100进行一笔运算时,其可被量测到的相关讯号(如功率、电流、电压、温度、频率等)。藉由上述的操作,攻击者即难以藉由量测解密装置100的相关讯号,得知前述复数笔解密运算及其对应的rsa私钥。在一实施例中,在进行两次第一伪乘法运算之间或在进行一次第一伪乘法运算与一次解密乘法运算之间,解密元件110至少进行一次解密平方运算或第一伪平方运算。如此一来,可避免因插入第一伪平方运算或第一伪乘法运算后的运算序列异常,而使攻击者得知额外资讯。以下将搭配图3提供一操作例,在本操作例中,rsa私钥的数值为123,其二进位形式为2’b1111011。在解密过程中,解密元件110依序执行运算序列2中的复数笔运算,包括解密平方运算sq、解密乘法运算mt、第一伪平方运算sq"及第一伪乘法运算mt"。其中,解密元件110是透过依序执行运算序列2中的解密运算dcr1~3,以产生解密资料。在解密运算dcr1之前执行的第一伪运算dum1、在解密运算dcr1ˉ2之间执行的第一伪运算dum2以及在解密运算dcr3之后执行的第一伪运算dum3,皆不用以产生解密资料。在本操作例,即便攻击者量测解密装置100的相关讯号以得知解密装置100执行运算序列2中的运算,攻击者也无法辨识出解密运算dcr及其相应的rsa私钥。在一实施例中,解密元件110可包括一解密电路112,用以进行前述解密过程。图4为根据本发明一实施例的解密电路112的示意图,解密电路112包括运算电路112a与控制电路112b。运算电路112a用以接收加密资料n,并根据rsa私钥与加密资料n依序产生复数笔运算结果,运算可包括复数笔解密运算以及至少一第一伪运算。控制电路112b用以依序接收运算电路112a产生的复数笔运算结果,控制电路112b可提供前述解密运算的运算结果至运算电路112a,并阻止第一伪运算的运算结果提供至运算电路112a。在一实施例中,运算电路112a包括乘法器mtc与多工器mux。多工器mux的第一输入端电性连接暂存器reg的输出端以及加密资料n的来源端,第二输入端接收加密资料n,控制端接收相应于rsa私钥的控制讯号cs,且输出端电性连接乘法器mtc的第一输入端。多工器mux用以根据rsa私钥输出接收到的输入资料或加密资料n,作为多工器输出。在进行解密乘法运算或第一伪乘法运算时,多工器mux输出加密资料n作为多工器输出;在进行解密平方运算或第一伪平方运算时,多工器mux输出输入资料作为多工器输出。乘法器mtc的第二输入端电性连接暂存器reg的输出端以及加密资料n的来源端,输出端电性连接控制电路112b。乘法器mtc用以对输入数值及多工器输出进行乘法运算,以产生乘法器输出。控制电路112b包括暂存器reg以及控制器ctl。暂存器reg用以选择性暂存乘法器输出,并选择性提供乘法器输出至多工器mux与乘法器mtc,作为一新的输入数值(如次一轮运算中新的输入数值)。控制器ctl电性连接暂存器reg,用以提供一操作讯号ops至暂存器reg,以令暂存器reg根据操作讯号ops选择性提供乘法器输出至多工器mux与乘法器mtc。举例来说,在第一操作状态下,控制器ctl藉由操作讯号ops阻止暂存器reg提供乘法器输出至运算电路112a;在第二操作状态下,控制器ctl藉由操作讯号ops控制暂存器reg以提供乘法器输出至运算电路112a。举例来说,一并参照图3,在期间p1中,输入数值皆为n,多工器mux根据控制讯号cs选择输入数值做为多工器输出。乘法器mtc输出n^2作为第一乘法器输出。控制器ctl藉由操作讯号ops控制暂存器reg保持原始数值(例如为空数值),并在次一轮运算中提供原始数值作为输入数值。在期间p2中,由于暂存器reg的输出为原始数值,故输入数值皆仍为n,多工器mux根据控制讯号cs选择加密资料n做为多工器输出。乘法器mtc输出n^2作为第二乘法器输出。控制器ctl藉由操作讯号ops控制暂存器reg保持原始数值,并在次一轮运算中提供原始数值作为输入数值。期间p3与期间p1中的操作相彷,在此不赘述。在期间p4中,由于暂存器reg的输出为原始数值,多工器mux根据控制讯号cs选择输入数值做为多工器输出。乘法器mtc输出n^2作为第四乘法器输出。控制器ctl藉由操作讯号ops控制暂存器reg暂存第四乘法器输出,并在次一轮运算中提供第四乘法器输出作为输入数值。在期间p5中,多工器mux与乘法器mtc的输入数值为n^2。多工器mux根据控制讯号cs选择加密资料n做为多工器输出。乘法器mtc输出n^3作为第五乘法器输出。控制器ctl藉由操作讯号ops控制暂存器reg暂存第五乘法器输出,并在次一轮运算中提供第五乘法器输出作为输入数值。其余步骤以此类推。藉由上述操作,即可使攻击者无法藉由量测解密装置100的相关讯号,得知解密装置100于解密时所进行的操作及其对应的rsa私钥。再者,在本案的一些实施例中,在进行解密运算的同时,解密元件110可更根据加密资料n进行至少一第二伪运算。在一实施例中,在进行前述复数笔解密运算中的解密乘法运算的同时,解密元件110可更根据加密资料n进行至少一第二伪平方运算。在一实施例中,在进行解密运算中的解密平方运算的同时,解密元件110可更根据加密资料n进行至少一第二伪乘法运算。在一实施例中,第二伪平方运算的运算结果或第二伪乘法运算的运算结果不用以产生解密资料。在一实施例中,在解密过程中,第二伪乘法运算所进行的次数可相同于或小于进行解密平方运算的次数。相似地,在一实施例中,在解密过程中,第二伪平方运算所进行的次数可相同于或小于进行解密乘法运算的次数。参照图5,在本案的一些实施例中,在进行解密运算以及第一伪运算的同时,解密元件110更根据加密资料n进行至少一第二伪运算。进一步来说,解密元件110可进行插入第一伪平方运算sq"及第一伪乘法运算mt"的运算序列22。其中,在进行运算序列22的同时,解密元件110亦可进行运算序列24,以在进行运算序列22中解密平方运算sq及第一伪平方运算sq"中的至少一者的同时,进行相应的第二伪乘法运算mt',并在进行运算序列22中的解密乘法运算mt及第一伪乘法运算mt"中的至少一者的同时,进行相应的第二伪平方运算sq'。如此一来,在解密过程中,攻击者仅能得到序列26,而难以从量测结果中辨识出rsa私钥。在本案一实施例中,解密元件110可包括一解密电路114(如图6所示),用以进行前述解密过程。解密电路114包括运算电路114a与控制电路114b,运算电路114a包括平方器sqc、乘法器mtc以及多工器mux。控制电路114b的元件及功能类似于图4的控制电路112b。平方器sqc的输入端电性连接控制电路114b的输出端以及加密资料n的来源端,且输出端电性连接多工器mux的第一输入端。乘法器mtc的第一输入端电性连接控制电路114b的输出端以及加密资料n的来源端,第二输入端接收加密资料n,且输出端电性连接多工器mux的第二输入端。平方器sqc用以根据输入数值产生平方器输出。其中输入数值可为加密资料n或为控制电路114b的输出。乘法器mtc用以对输入数值以及加密资料n进行解密乘法运算或第二伪乘法运算,以产生乘法器输出。平方器sqc与乘法器mtc是同时进行解密平方运算(或第一伪平方运算)以及第二伪乘法运算,或同时进行第二伪平方运算以及解密乘法运算(或第一伪乘法运算),以使攻击者无法藉由量测解密装置100的相关讯号得知解密运算及其对应的rsa私钥。举例而言,同时参照图5,在期间q1,输入数值皆为n。平方器sqc进行解密平方运算并输出n^2,同时乘法器mtc进行第二伪乘法运算并输出n^2。多工器mux根据控制讯号cs选择平方器输出做为第一多工器输出。控制器ctl透过操作讯号ops控制暂存器reg暂存第一多工器输出,并在次一轮运算中,提供第一多工器输出至平方器sqc与乘法器mtc,做为输入数值。在期间q2中,输入数值皆为n^2。平方器sqc进行第二伪平方运算并输出n^4,且同时乘法器mtc进行第一伪乘法运算并输出n^3。多工器mux根据控制讯号cs选择乘法器输出做为第二多工器输出。控制器ctl透过操作讯号ops控制暂存器reg保存第一多工器输出,并在次一轮运算中,提供第一多工器输出做为新的输入数值。在期间q3、q4的步骤将以此类推。藉由上述操作,即可使攻击者无法藉由量测解密装置100的相关讯号得知解密装置100于解密时所进行的操作及其对应的rsa私钥。虽然本案已以实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1