CN110048840B - 一种基于rsa算法的信息处理方法、系统及相关组件 - Google Patents

一种基于rsa算法的信息处理方法、系统及相关组件 Download PDF

Info

Publication number
CN110048840B
CN110048840B CN201910349279.7A CN201910349279A CN110048840B CN 110048840 B CN110048840 B CN 110048840B CN 201910349279 A CN201910349279 A CN 201910349279A CN 110048840 B CN110048840 B CN 110048840B
Authority
CN
China
Prior art keywords
processing
result
formula
information
modular
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910349279.7A
Other languages
English (en)
Other versions
CN110048840A (zh
Inventor
郑茳
肖佐楠
万刘蝉
匡启和
汪建强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCore Technology Suzhou Co Ltd
Original Assignee
CCore Technology Suzhou Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CCore Technology Suzhou Co Ltd filed Critical CCore Technology Suzhou Co Ltd
Priority to CN201910349279.7A priority Critical patent/CN110048840B/zh
Publication of CN110048840A publication Critical patent/CN110048840A/zh
Application granted granted Critical
Publication of CN110048840B publication Critical patent/CN110048840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种基于RSA算法的信息处理方法,所述信息处理方法包括当接收到信息处理指令时,根据信息处理指令确定目标信息m,模数n、私钥d、第一素数p和第二素数q;对目标信息m执行掩码处理得到掩码信息m',根据第一素数p和第二素数q对掩码信息m'执行基于盲化操作的模幂运算得到第一处理结果和第二处理结果;当第一处理结果和第二处理结果的幂指数为0或1时,执行相应的一致性处理操作,以便加入随机噪声;根据加入随机噪声后的第一处理结果和第二处理结果生成目标信息的解密结果或签名结果。本方法能够有效防御侧信道攻击,提高信息处理过程的安全性。本申请还公开了一种电子设备,具有以上有益效果。

Description

一种基于RSA算法的信息处理方法、系统及相关组件
技术领域
本发明涉及信息安全技术领域,特别涉及一种基于RSA算法的信息处理方法及一种电子设备。
背景技术
RSA公钥加密算法是由Ron Rivest,Adi Shamirh和Len Adleman于1977年开发的,是一个安全且实用的公钥密码算法,既能用于数据的加密也能用于数字签名,是目前应用最广泛的公钥密码算法。该算法已经经受住了多年的传统数学上的密码分析,但由于计算机的发展以及侧信道攻击的兴起,使得搭载该算法的安全芯片在密码设备中的应用面临着严重威胁。
目前,对于RSA公钥加密算法的侧信道攻击方法有简单功耗分析SPA,差分功耗分析DPA,相关功耗分析RDA以及错误注入攻击FA等。这些攻击均是利用RSA算法在芯片等的密码设备中运算过程中不同的运算步骤而泄露的功耗,时间,电磁以及错误值的信息来恢复密钥。因此面对兴起的侧信道攻击,RSA在芯片中的设计必须要能够抵抗上述攻击。
因此,如何有效防御侧信道攻击,提高信息处理过程的安全性是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种基于RSA算法的信息处理方法及一种电子设备,能够有效防御侧信道攻击,提高信息加密过程的安全性。
为解决上述技术问题,本申请提供一种基于RSA算法的信息处理方法,该信息处理方法包括:
当接收到信息处理指令时,根据所述信息处理指令确定目标信息m,模数n、私钥d、第一素数p和第二素数q;
对所述目标信息m执行掩码处理得到掩码信息m',根据所述第一素数p和所述第二素数q对所述掩码信息m'执行基于盲化操作的模幂运算得到第一处理结果和第二处理结果;其中,m'=m·ra mod n,ra为随机数;
当所述第一处理结果和所述第二处理结果的幂指数为0或1时,执行相应的一致性处理操作,以便加入随机噪声;
根据加入随机噪声后的第一处理结果和第二处理结果生成所述目标信息的解密结果或签名结果。
可选的,所述执行相应的一致性处理操作包括:
当所述幂指数为1时,依次对掩码信息m'的模p运算结果执行模平方运算和第一模乘运算;
当所述幂指数为0时,依次对掩码信息m'的模p运算结果执行所述模平方运算和第二模乘运算;
其中,所述模平方运算为m'p=m'p×m'p,所述第一模乘运算为m'p=m'p×m_tmp,所述第二模乘运算为m_rb=m'p×m_rb,rb为长度为p比特的随机数。
可选的,在生成所述目标信息的解密结果或签名结果的过程中,还包括:
利用第一公式对S1=Invq×(Sp-Sq)模乘操作进行掩码处理,以便增加模乘功耗;
其中,所述第一公式为S1=Invq×(Sp-Sq)=rc×(Sp-Sq)+(Invq-rc)(Sp-Sq),rc为长度为p比特的随机数。
可选的,还包括:
利用第二公式对S2=q×S1模乘操作进行掩码处理,以便增加模乘功耗;
其中,所述第二公式为S2=q×S1=rd×S1+(q-rd)S1,rd为长度为p比特的随机数。
可选的,还包括:
利用第三公式计算所述目标信息m和所述随机数ra对应的解密结果或签名结果S_D1;其中,所述第三公式为S_D1=CRT(Sp,Sq)=Sq+S2
利用第四公式对mra=mp×ra2进行掩码处理,以便增加模乘功耗;
其中,所述第四公式为mra=mp×ra2=ra×ra2+(mp-ra)×ra2;
Figure BDA0002043400330000021
ep=e mod(p-1),ra1=ra d mod n。
可选的,还包括:
执行基于盲化操作的模幂运算得到S_D2=S_D1 mod p和
Figure BDA0002043400330000022
判断所述S_D3是否等于mra;若否,则生成检测到错误注入攻击的提示信息。
可选的,还包括:
利用第三公式计算所述目标信息m和所述随机数ra对应的解密结果或签名结果;其中,所述第三公式为S_D1=CRT(Sp,Sq)=Sq+S2
利用第五公式对mra=mq×ra2进行掩码处理,以便增加模乘功耗;
其中,所述第五公式为mra=mq×ra2=ra×ra2+(mq-ra)×ra2;
Figure BDA0002043400330000031
eq=emod(q-1),ra1=ra d mod n。
可选的,还包括:
执行基于盲化操作的模幂运算得到S_D2=S_D1 mod q和
Figure BDA0002043400330000032
判断所述S_D3是否等于mra;若否,则生成检测到错误注入攻击的提示信息。
可选的,还包括:
对ra1执行求逆运算得到ra1-1;其中,ra1-1=inv(ra1)mod n;
利用第六公式对S_D=S_D1×ra1-1 mod n进行掩码处理,以便增加模乘功耗;
其中,所述第六公式为S_D=re×ra1-1+(S_D1-re)×ra1-1 mod n,re为长度为n比特的随机数。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述基于RSA算法的信息处理方法执行的步骤。
本申请提供了一种基于RSA算法的信息处理方法,包括当接收到信息处理指令时,根据所述信息处理指令确定目标信息m,模数n、私钥d、第一素数p和第二素数q;对所述目标信息m执行掩码处理得到掩码信息m',根据所述第一素数p和所述第二素数q对所述掩码信息m'执行基于盲化操作的模幂运算得到第一处理结果和第二处理结果;其中,m'=m·ramod n,ra为随机数;当所述第一处理结果和所述第二处理结果的幂指数为0或1时,执行相应的一致性处理操作,以便加入随机噪声;根据加入随机噪声后的第一处理结果和第二处理结果生成所述目标信息的解密结果或签名结果。
本申请通过对掩码信息执行基于盲化操作的模幂运算使得对幂指数的分析更困难,提高了侧信道防护能力。本申请还在第一处理结果和第二处理结果的幂指数为0或1时对执行已执行处理加入随机噪声,使得幂指数为0和1的计算功耗均衡,达到了功耗掩盖的目的,可有效抵抗功耗类型的侧信道攻击。本申请能够有效防御侧信道攻击,提高信息处理过程的安全性。本申请同时还提供了一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种基于RSA算法的信息处理方法的流程图;
图2为本实施例整体电路结构示意图;
图3为本实施例整体抗侧信道防护结构示意图;
图4为本实施例模幂运算防护结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种基于RSA算法的信息处理方法的流程图。
具体步骤可以包括:
S101:当接收到信息处理指令时,根据所述信息处理指令确定目标信息m,模数n、私钥d、第一素数p和第二素数q;
其中,第一素数p和第二素数q可以为大于1024位的大素数,可以利用第一素数p和第二素数q计算模数n。本实施例中的信息处理指令可以为解密指令,也可以为签名指令,此处不进行限定。目标信息为需要执行解密操作或签名操作的信息。
S102:对所述目标信息m执行掩码处理得到掩码信息m',根据所述第一素数p和所述第二素数q对所述掩码信息m'执行基于盲化操作的模幂运算得到第一处理结果和第二处理结果;
其中,m'=m·ra mod n,ra为随机数。在执行模幂运算时,先对幂指数进行盲化操作,即把幂指数进行特殊的处理,从而使得对幂指数的分析更困难。具体的方式如下:首先随机生成一个长为p比特的随机数r;其次,计算dp1=dp+r×φ(p),其中φ(p)为p的欧拉函数,最后计算Sp=m'p dp1 mod p=m'p dp+r×φ(p)mod p=m'p dp mod p×m'p r×φ(p)mod p=m'p dpmod p。然后对幂指数为0和1的运算操作进行一致性处理,在执行模幂运算时,使用的是LR算法,当幂指数为0和为1时,执行相同的两次操作,都执行一次模平方和一次模乘运算,使得功耗均衡。具体的方式如下:
1)m_tmp=m'p,m_r=r;2)dp1的第i比特为1,即dp1[i]=1,执行m'p=m'p×m'p,m'p=m'p×m_tmp;3)dp1的第i比特为0,即dp1[i]=0,执行m'p=m'p×m'p,m_r=m'p×m_r,后面的模乘运算为无效的模乘,是加入的随机噪声,目的是掩盖功耗在dp1的第i比特为1和0的不一致性,可有效抵抗功耗攻击(如SPA,DPA,RDA)。最后插入随机的操作,在执行完1比特幂指数的操作时进行一次随机的模乘操作,从而对功耗和计时进行随机的干扰。具体的方式如下:
r的第i比特为1,即r[i]=1,m_r=m'p×m'p,m_r=m'p×m_r。
S103:当所述第一处理结果和所述第二处理结果的幂指数为0或1时,执行相应的一致性处理操作,以便加入随机噪声;
其中,本步骤中执行相应的一致性处理操作可以具体为:当所述幂指数为1时,依次对掩码信息m'的模p运算结果执行模平方运算和第一模乘运算;当所述幂指数为0时,依次对掩码信息m'的模p运算结果执行所述模平方运算和第二模乘运算;所述模平方运算为m'p=m'p×m'p,所述第一模乘运算为m'p=m'p×m_tmp,所述第二模乘运算为m_rb=m'p×m_rb,rb为长度为p比特的随机数。
S104:根据加入随机噪声后的第一处理结果和第二处理结果生成所述目标信息的解密结果或签名结果。
作为一种可行的实施方式,在生成所述目标信息的解密结果或签名结果的过程中,还包括以下操作:利用第一公式对S1=Invq×(Sp-Sq)模乘操作进行掩码处理,以便增加模乘功耗;
其中,所述第一公式为S1=Invq×(Sp-Sq)=rc×(Sp-Sq)+(Invq-rc)(Sp-Sq),rc为长度为p比特的随机数。
本申请通过对掩码信息执行基于盲化操作的模幂运算使得对幂指数的分析更困难,提高了侧信道防护能力。本申请还在第一处理结果和第二处理结果的幂指数为0或1时对执行已执行处理加入随机噪声,使得幂指数为0和1的计算功耗均衡,达到了功耗掩盖的目的,可有效抵抗功耗类型的侧信道攻击。本申请能够有效防御侧信道攻击,提高信息处理过程的安全性。
作为对图1对应的实施例的进一步补充,图1对应的实施例还可以包括以下步骤:利用第二公式对S2=q×S1模乘操作进行掩码处理,以便增加模乘功耗;其中,所述第二公式为S2=q×S1=rd×S1+(q-rd)S1,rd为长度为p比特的随机数。由于乘法的功耗较大,因此可以通过第二公式构建两个乘法处理的过程,增加模乘运算的功耗。
作为对图1对应的实施例的进一步补充,图1对应的实施例还可以包括以下步骤:利用第三公式计算所述目标信息m和所述随机数ra对应的解密结果或签名结果;其中,所述第三公式为S_D1=CRT(Sp,Sq)=Sq+S2;CRT为中国剩余定理。利用第四公式对mra=mp×ra2进行掩码处理,以便增加模乘功耗;其中,所述第四公式为mra=mp×ra2=ra×ra2+(mp-ra)×ra2;
Figure BDA0002043400330000061
ep=e mod(p-1),ra1=ra d mod n。由于乘法的功耗较大,因此可以通过第四公式构建两个乘法处理的过程,增加模乘运算的功耗。
作为对图1对应的实施例的进一步补充,图1对应的实施例还可以包括以下步骤:执行基于盲化操作的模幂运算得到S_D2=S_D1 mod p和
Figure BDA0002043400330000071
判断所述S_D3是否等于mra;若否,则生成检测到错误注入攻击的提示信息。
作为对图1对应的实施例的进一步补充,图1对应的实施例还可以包括以下步骤:利用第三公式计算所述目标信息m和所述随机数ra对应的解密结果或签名结果;其中,所述第三公式为S_D1=CRT(Sp,Sq)=Sq+S2;利用第五公式对mra=mq×ra2进行掩码处理,以便增加模乘功耗;其中,所述第五公式为mra=mq×ra 2=ra×ra 2+(mq-ra)×ra 2;
Figure BDA0002043400330000072
eq=e mod(q-1),ra1=ra d mod n。由于乘法的功耗较大,因此可以通过第五公式构建两个乘法处理的过程,增加模乘运算的功耗。
作为对图1对应的实施例的进一步补充,图1对应的实施例还可以包括以下步骤:执行基于盲化操作的模幂运算得到S_D2=S_D1 mod q和
Figure BDA0002043400330000073
判断所述S_D3是否等于mra;若否,则生成检测到错误注入攻击的提示信息。
作为对图1对应的实施例的进一步补充,图1对应的实施例还可以包括以下步骤:对ra1执行求逆运算得到ra1-1;其中,ra1-1=inv(ra1)mod n;利用第六公式对S_D=S_D1×ra1-1 mod n进行掩码处理,以便增加模乘功耗;其中,所述第六公式为S_D=re×ra1-1+(S_D1-re)×ra1-1 mod n,re为长度为n比特的随机数。由于乘法的功耗较大,因此可以通过第六公式构建两个乘法处理的过程,增加模乘运算的功耗。
将上述补充与图1对应的实施例相结合可以得到更为优选的实施方式,这种优选的实施方式通过采用对明文和指数的掩码以及指数0和1运算相同的方法,使其能够有效抵抗功耗分析,随机插入相同模式运算,使其能够有效抵抗功耗和计时分析,同时增加一些操作来抵抗错误注入攻击。
下面通过在实际应用中的一种基于安全芯片RSA算法抗侧信道攻击的方法说明上述实施例描述的流程。请参见图2、图3和图4,图2为本实施例整体电路结构示意图;图3为本实施例整体抗侧信道防护结构示意图;图4为本实施例模幂运算防护结构示意图。图3中左侧流程为相关技术中的信道防护流程,右侧流程为本申请实施例提供的新的信道防护流程,本实施例可以包括以下步骤:
加密抗侧信道攻击过程:
(解密/签名)抗侧信道攻击过程:
步骤一、输入消息m,模数n,私密d,大素数p,大素数q。对私钥进行模p-1运算dp=dmod(p-1),对私钥进行模q-1运算dq=d mod(q-1)。
步骤二、对消息m进行模p运算mp=m mod p,运算后的结果再进行模幂运算Sp=mp dpmod p,再对消息m进行模q运算mq=m mod q,运算后的结果再进行模幂运算Sq=mq dq mod q。
步骤三、计算t=Sp-Sq,并判断t是否小于0,如果小于0,则t=t+p,再计算Invq=q-1mod p,后计算出最终的解密/签名结果S_D=CRT(Sp,Sq)=Sq+q×((t×Invq)mod p)。
步骤四、对整个上述整个解密/签名的过程进行抗侧信道防护:对消息m进行掩码处理,即取随机数r对m进行计算m'=m×r mod n,再计算m'p=m'mod p,再对模运算后的结果再进行模幂运算计算Sp=m'p dp mod p,在执行模幂运算时,先对幂指数进行盲化操作,即把幂指数进行特殊的处理,从而使得对幂指数的分析更困难。具体的方式如下:
1)首先随机生成一个长为p比特的随机数r
2)计算dp1=dp+r×φ(p),其中φ(p)为p的欧拉函数
3)计算Sp=m'p dp1 mod p=m'p dp+r×φ(p)mod p=m'p dp mod p×m'p r×φ(p)mod p=m'p dpmod p。然后对幂指数为0和1的运算操作进行一致性处理,在执行模幂运算时,使用的是LR算法,当幂指数为0和为1时,执行相同的两次操作,都执行一次模平方和一次模乘运算,使得功耗均衡。具体的方式如下:
1)m_tmp=m'p,m_r=r;
2)dp1的第i比特为1,即dp1[i]=1,执行m'p=m'p×m'p,m'p=m'p×m_tmp;
3)dp1的第i比特为0,即dp1[i]=0,执行m'p=m'p×m'p,m_r=m'p×m_r,后面的模乘运算为无效的模乘,是加入的随机噪声,目的是掩盖功耗在dp1的第i比特为1和0的不一致性,可有效抵抗功耗攻击(SPA,DPA,RDA)。
最后插入随机的操作,在执行完1比特幂指数的操作时进行一次随机的模乘操作,从而对功耗和计时进行随机的干扰。具体的方式如下:
r的第i比特为1,即r[i]=1,m_r=m'p×m'p,m_r=m'p×m_r。
步骤五、计算m'q=m'mod q,再对模运算后的结果再进行模幂运算计算Sq=m'q dqmod q,在执行模幂运算时,采用步骤四同样的抗侧信道防护处理。
步骤六、对S1=Invq×(Sp-Sq)模乘操作进行掩码,首先随机生成一个长为p比特的随机数r,计算r×(Sp-Sq),再计算(Invq-r)×(Sp-Sq),最后再进行模加操作,即S1=Invq×(Sp-Sq)=r×(Sp-Sq)+(Invq-r)(Sp-Sq)。此处掩码操作可有效掩盖模乘中的功耗。
步骤七、对S2=q×S1模乘操作进行掩码,首先随机生成一个长为p比特的随机数r,计算r×S1,再计算(q-r)×S1,最后再进行模加操作,即S2=q×S1=r×S1+(q-r)S1。此处掩码操作可有效掩盖模乘中的功耗。
步骤八、计算S_D1=CRT(Sp,Sq)=Sq+S2,此时签名/解密的最终结果是对消息m和随机数r的签名/解密。对步骤四的消息掩码随机数r进行模幂运算,即r1=rd mod n,在执行模幂运算时,采用步骤四同样的抗侧信道防护处理。
步骤九、对公钥进行模p-1运算ep=e mod(p-1),对公钥进行模q-1运算eq=e mod(q-1)。计算
Figure BDA0002043400330000091
在执行模幂运算时,采用步骤四同样的抗侧信道防护处理。再计算mr=mp×r2 mod p,先随机生成一个长为p比特的随机数r,计算r×r2,再计算(mp-r)×r2,最后再进行模加操作,即mr=mp×r2=r×r2+(mp-r)×r2。此处掩码操作可有效掩盖模乘中的功耗。
步骤十、计算S_D2=S_D1 mod p,再计算
Figure BDA0002043400330000092
在执行模幂运算时,采用步骤四同样的抗侧信道防护处理。最后比较S_D3是否等于mr,如果不等于,则运算过程中遭到了错误注入攻击(FA),则运算直接退出。
步骤十一、计算
Figure BDA0002043400330000093
在执行模幂运算时,采用步骤四同样的抗侧信道防护处理。再计算mr=mq×r2 mod q,先随机生成一个长为q比特的随机数r,计算r×r2,再计算(mq-r)×r2,最后再进行模加操作,即mr=mq×r2=r×r2+(mq-r)×r2。此处掩码操作可有效掩盖模乘中的功耗。
步骤十二、计算S_D2=S_D1 mod q,再计算
Figure BDA0002043400330000101
在执行模幂运算时,采用步骤四同样的抗侧信道防护处理。最后比较S_D3是否等于mr,如果不等于,则运算过程中遭到了错误注入攻击(FA),则运算直接。
步骤十三、对步骤八随机数r1进行求逆运算,即r1-1=inv(r1)mod n,结果再与S_D1进行模乘即可得出最终的签名/解密结果S_D=S_D1×r1-1 mod n,先随机生成一个长为n比特的随机数r,计算r×r1-1,再计算(S_D1-r)×r1-1,最后再进行模加操作,即S_D=r×r1-1+(S_D1-r)×r1-1 mod n。此处掩码操作可有效掩盖模乘中的功耗。
由于上述技术方案运用,本实施例与现有技术相比具有下列优点和效果:
首先,本实施例通过加入随机数对消息和指数进行盲化,对指数0和1的操作一致性和插入随机无效的相同操作,可有效的平滑功耗和随机插入功耗噪声,从而可有效抵抗功耗分析(SPA,DPA,RDA),同时加入验证错误注入攻击的操作(FA),有效地抵抗了错误注入攻击。从而达到整个解密、验证过程的防护,能有效抵抗目前已知的侧信道攻击。其次,电路实现简洁,整体运算简洁,防护目的明确,没有额外增加复杂的运算逻辑,防护所采用的操作均可复用原有的电路。因此该算法实现时硬件的利用率更高,且有利于整个算法在相对更小的电路面积上实现。
本申请实施例还可以所提供的一种基于RSA算法的信息处理系统,该系统可以包括:
信息确定模块,用于当接收到信息处理指令时,根据所述信息处理指令确定目标信息m,模数n、私钥d、第一素数p和第二素数q;
掩码模块,用于对所述目标信息m执行掩码处理得到掩码信息m',根据所述第一素数p和所述第二素数q对所述掩码信息m'执行基于盲化操作的模幂运算得到第一处理结果和第二处理结果;其中,m'=m·ra mod n,ra为随机数;
噪声模块,用于当所述第一处理结果和所述第二处理结果的幂指数为0或1时,执行相应的一致性处理操作,以便加入随机噪声;
处理模块,用于根据加入随机噪声后的第一处理结果和第二处理结果生成所述目标信息的解密结果或签名结果。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (2)

1.一种基于RSA算法的信息处理方法,其特征在于,包括:
当接收到信息处理指令时,根据所述信息处理指令确定目标信息m,模数n、私钥d、第一素数p和第二素数q;
对所述目标信息m执行掩码处理得到掩码信息m',根据所述第一素数p和所述第二素数q对所述掩码信息m'执行基于盲化操作的模幂运算得到第一处理结果和第二处理结果;其中,m'=m·ramodn,ra为随机数;
当所述第一处理结果和所述第二处理结果的幂指数为0或1时,执行相应的一致性处理操作,以便加入随机噪声;
根据加入随机噪声后的第一处理结果和第二处理结果生成所述目标信息的解密结果或签名结果;
其中,所述执行相应的一致性处理操作包括:
当所述幂指数为1时,依次对掩码信息m'的模p运算结果执行模平方运算和第一模乘运算;
当所述幂指数为0时,依次对掩码信息m'的模p运算结果执行所述模平方运算和第二模乘运算;
其中,所述模平方运算为m'p=m'p×m'p,所述第一模乘运算为m'p=m'p×m_tmp,所述第二模乘运算为m_rb=m'p×m_rb,rb为长度为p比特的随机数;
其中,在生成所述目标信息的解密结果或签名结果的过程中,还包括:
利用第一公式对S1=Invq×(Sp-Sq)模乘操作进行掩码处理,以便增加模乘功耗;
其中,所述第一公式为S1=Invq×(Sp-Sq)=rc×(Sp-Sq)+(Invq-rc)(Sp-Sq),rc为长度为p比特的随机数;
其中,还包括:
利用第二公式对S2=q×S1模乘操作进行掩码处理,以便增加模乘功耗;
其中,所述第二公式为S2=q×S1=rd×S1+(q-rd)S1,rd为长度为p比特的随机数;
其中,还包括:
利用第三公式计算所述目标信息m和所述随机数ra对应的解密结果或签名结果S_D1;其中,所述第三公式为S_D1=CRT(Sp,Sq)=Sq+S2
利用第四公式对mra=mp×ra2进行掩码处理,以便增加模乘功耗;
其中,所述第四公式为mra=mp×ra2=ra×ra2+(mp-ra)×ra2;
Figure FDA0003196306960000021
ep=emod(p-1),ra1=ra dmodn;
其中,还包括:
执行基于盲化操作的模幂运算得到S_D2=S_D1modp和
Figure FDA0003196306960000022
判断所述S_D3是否等于mra;若否,则生成检测到错误注入攻击的提示信息;
其中,还包括:
利用第三公式计算所述目标信息m和所述随机数ra对应的解密结果或签名结果S_D1;其中,所述第三公式为S_D1=CRT(Sp,Sq)=Sq+S2
利用第五公式对mra=mq×ra2进行掩码处理,以便增加模乘功耗;
其中,所述第五公式为mra=mq×ra2=ra×ra2+(mq-ra)×ra2;
Figure FDA0003196306960000023
eq=emod(q-1),ra1=ra dmodn;
其中,还包括:
执行基于盲化操作的模幂运算得到S_D2=S_D1modq和
Figure FDA0003196306960000024
判断所述S_D3是否等于mra;若否,则生成检测到错误注入攻击的提示信息;
其中,还包括:
对ra1执行求逆运算得到ra1-1;其中,ra1-1=inv(ra1)modn;
利用第六公式对S_D=S_D1×ra1-1modn进行掩码处理,以便增加模乘功耗;
其中,所述第六公式为S_D=re×ra1-1+(S_D1-re)×ra1-1modn,re为长度为n比特的随机数。
2.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1所述基于RSA算法的信息处理方法的步骤。
CN201910349279.7A 2019-04-28 2019-04-28 一种基于rsa算法的信息处理方法、系统及相关组件 Active CN110048840B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910349279.7A CN110048840B (zh) 2019-04-28 2019-04-28 一种基于rsa算法的信息处理方法、系统及相关组件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910349279.7A CN110048840B (zh) 2019-04-28 2019-04-28 一种基于rsa算法的信息处理方法、系统及相关组件

Publications (2)

Publication Number Publication Date
CN110048840A CN110048840A (zh) 2019-07-23
CN110048840B true CN110048840B (zh) 2021-10-15

Family

ID=67279928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910349279.7A Active CN110048840B (zh) 2019-04-28 2019-04-28 一种基于rsa算法的信息处理方法、系统及相关组件

Country Status (1)

Country Link
CN (1) CN110048840B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111351992B (zh) * 2020-02-20 2022-08-02 南方电网科学研究院有限责任公司 一种基于电磁侧信道分析的芯片安全评估方法和相关装置
CN111723388A (zh) * 2020-06-23 2020-09-29 湖南国科微电子股份有限公司 一种密码运算防护方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254059A (zh) * 2016-07-26 2016-12-21 华为技术有限公司 一种运算方法和安全芯片
CN106452789A (zh) * 2016-11-02 2017-02-22 北京宏思电子技术有限责任公司 一种多方位防侧信道攻击的签名方法
CN108111309A (zh) * 2018-02-28 2018-06-01 北京融通高科微电子科技有限公司 Rsa私钥掩码运算方法、协处理器及rsa运算装置
CN108173657A (zh) * 2017-12-01 2018-06-15 上海华虹集成电路有限责任公司 一种高效抗差分功耗分析rsa实现方法
CN108959980A (zh) * 2018-07-25 2018-12-07 北京智芯微电子科技有限公司 安全芯片的公钥防护方法及公钥防护系统
CN109379185A (zh) * 2018-10-22 2019-02-22 飞天诚信科技股份有限公司 一种安全的rsa运算实现方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3069993B1 (fr) * 2017-08-07 2020-09-18 Maxim Integrated Products Dispositifs et procedes de masquage d'operations de chiffrement rsa

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254059A (zh) * 2016-07-26 2016-12-21 华为技术有限公司 一种运算方法和安全芯片
CN106452789A (zh) * 2016-11-02 2017-02-22 北京宏思电子技术有限责任公司 一种多方位防侧信道攻击的签名方法
CN108173657A (zh) * 2017-12-01 2018-06-15 上海华虹集成电路有限责任公司 一种高效抗差分功耗分析rsa实现方法
CN108111309A (zh) * 2018-02-28 2018-06-01 北京融通高科微电子科技有限公司 Rsa私钥掩码运算方法、协处理器及rsa运算装置
CN108959980A (zh) * 2018-07-25 2018-12-07 北京智芯微电子科技有限公司 安全芯片的公钥防护方法及公钥防护系统
CN109379185A (zh) * 2018-10-22 2019-02-22 飞天诚信科技股份有限公司 一种安全的rsa运算实现方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"RSA差分功耗分析攻击及防护措施";孙海洋等;《吉林大学学报(信息科技版)》;20090515;第27卷(第3期);第309-313页 *
"基于RSA_CRT算法智能卡抗DPA攻击防御策略设计与实现";才晓玉;《中国优秀硕士学位论文全文数据库信息科技辑》;20131215(第S2期);第I135-382页 *
"基于同态特性侧信道攻击防御技术的研究";孙亚飞;《中国优秀硕士学位论文全文数据库信息科技辑》;20190215;第I136-431页 *

Also Published As

Publication number Publication date
CN110048840A (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
Yen et al. Power analysis by exploiting chosen message and internal collisions–vulnerability of checking mechanism for RSA-decryption
US8402287B2 (en) Protection against side channel attacks
Vigilant RSA with CRT: A new cost-effective solution to thwart fault attacks
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
US20170187529A1 (en) Modular multiplication device and method
EP2332040B1 (en) Countermeasure securing exponentiation based cryptography
WO2012041942A1 (en) Protecting modular exponentiation in cryptographic operations
EP3452897B1 (en) Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
JP2009500710A (ja) 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
CN110048840B (zh) 一种基于rsa算法的信息处理方法、系统及相关组件
JP2011510579A (ja) 署名ダイアグラムを用いた非対称暗号方式のための対策方法およびデバイス
Fournaris et al. Protecting CRT RSA against fault and power side channel attacks
Boscher et al. Blinded fault resistant exponentiation revisited
US20090028323A1 (en) Enhancing the security of public key cryptosystem implementations
Kabin et al. Evaluation of resistance of ECC designs protected by different randomization countermeasures against horizontal DPA attacks
US20100146029A1 (en) Method and apparatus for modular operation
Yin et al. A randomized binary modular exponentiation based RSA algorithm against the comparative power analysis
KR100772550B1 (ko) 전력분석공격에 안전한 메시지 블라인딩 방법
Muller et al. High-order attacks against the exponent splitting protection
Mahanta et al. Modular exponentiation with inner product to resist higher-order DPA attacks
CN1985458A (zh) 增强的自然蒙哥马利指数掩蔽
Leadbitter et al. Attacking DSA under a repeated bits assumption
KR101891898B1 (ko) 수평 상관 전력 분석 공격에 안전한 rsa 암호화 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant