CN103401681A - 取模方法、取模装置及芯片 - Google Patents

取模方法、取模装置及芯片 Download PDF

Info

Publication number
CN103401681A
CN103401681A CN2013102748351A CN201310274835A CN103401681A CN 103401681 A CN103401681 A CN 103401681A CN 2013102748351 A CN2013102748351 A CN 2013102748351A CN 201310274835 A CN201310274835 A CN 201310274835A CN 103401681 A CN103401681 A CN 103401681A
Authority
CN
China
Prior art keywords
mod
modulus
random number
rsa
delivery
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.)
Granted
Application number
CN2013102748351A
Other languages
English (en)
Other versions
CN103401681B (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.)
BEIJING HUADA INFOSEC TECHNOLOGY Ltd
Original Assignee
BEIJING HUADA INFOSEC TECHNOLOGY 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 BEIJING HUADA INFOSEC TECHNOLOGY Ltd filed Critical BEIJING HUADA INFOSEC TECHNOLOGY Ltd
Priority to CN201310274835.1A priority Critical patent/CN103401681B/zh
Publication of CN103401681A publication Critical patent/CN103401681A/zh
Application granted granted Critical
Publication of CN103401681B publication Critical patent/CN103401681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明实施例公开了取模方法、取模装置及芯片。所述方法包括:接收待取模数据;根据RSA密钥的长度生成随机数;获取直接取模运算的一个等价运算,所述等价运算的参数包含所述随机数;使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模。所述取模装置包括:接收单元,生成单元,获取单元,取模单元。所述芯片包括取模装置。本发明取模方法、取模装置及芯片,提高了在采用RSA-CRT算法对数据进行签名或解密时芯片取模过程安全性。

Description

取模方法、取模装置及芯片
技术领域
本发明涉及信息安全领域,尤其涉及取模方法、取模装置及芯片。
背景技术
RSA算法作为一种公钥密码算法,在信息安全领域已经得到广泛应用。基于RSA算法的各种智能卡及智能密码钥匙等安全产品已经普遍应用于金融、通信、社保、交通等各个领域。在智能卡及智能密码钥匙的芯片采用RSA算法进行签名或者对采用RSA加密方式加密的数据进行解密时,通常会结合中国剩余定理(CRT,Chinese RemainderTheorem)对签名或解密的处理过程进行加速,即芯片采用通常所说的RSA-CRT算法对数据进行签名或解密。
芯片采用RSA-CRT算法对数据进行签名或解密时,需要使用RSA的私钥对待签名或待解密的数据进行取模。现有技术中,通常的做法是芯片采用直接取模运算方式进行取模,直接取模运算方式是指以设待签名或待解密的数据为被除数,以私钥为除数直接进行取模运算的方式进行取模。
发明人对芯片现有取模过程研究之后发现,在采用RSA-CRT算法对数据进行签名或解密时,如果芯片采用直接取模运算的方式进行取模,攻击者采用明文攻击(CPA,ChosenPlaintext Attack)结合简单功耗分析(SPA,Simple Power Attack/Analysis),可以分析出芯片执行RSA-CRT算法时所采用的一个RSA私钥,进而获取到整个RSA算法的全部私钥。由此可见,当采用RSA-CRT算法对数据进行签名或解密时,使用现有取模方法进行取模,芯片取模过程安全性低。
发明内容
本发明实施例提供了取模方法、取模装置及芯片,以解决在采用RSA-CRT算法对数据进行签名或解密时,使用现有取模方法进行取模,芯片取模过程安全性低的问题。
第一方面,本发明实施例提供了一种取模方法,该方法包括:接收待取模数据;根据RSA密钥的长度生成随机数;获取直接取模运算的一个等价运算,所述等价运算的参数包含所述随机数;使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模。
结合第一方面,在第一种可能的实现方式中,所述根据RSA密钥的长度生成随机数,包括:获取RSA的两个私钥;获取公钥模数,所述公钥模数为两个私钥的乘积;生成随机数,所述随机数为位长小于等于所述公钥模数的位长并且大于等于所述公钥模数的位长的一半的。
结合第一方面及第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取直接取模运算的一个等价运算,具体为,选择以下运算中的一个作为直接取模运算的等价运算:
(C+R*m)mod m,
(C-R*m)mod m,
((C+R)-R mod m)mod m,
((C-R)+R mod m)mod m,
((C+R)mod m-R)mod m,
((C-R)mod m+R)mod m,
((C+R)mod m-R mod m)mod m,
((C-R)mod m+R mod m)mod m,
其中C为所述待取模数据,R为所述随机数,m为RSA的私钥第一元素或私钥第二元素,即两个私钥之一。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模,具体为:使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模,使用蒙哥马利模乘器完成所述等价运算中的包含的取模运算。
第二方面,本发明实施例还提供了一种取模装置,所述装置包括:接收单元,用于接收待取模数据;生成单元,用于根据RSA密钥的长度生成随机数;获取单元,用于获取直接取模运算的一个等价运算,所述等价运算的参数包含所述生成单元生成的所述随机数;取模单元,用于使用所述获取单元获取的所述等价运算对所述接收单元接收到的所述待取模数据以RSA的私钥为模数进行取模。
结合第二方面,在第一种可能的实现方式中,所述生成单元包括:私钥获取子单元,用于获取RSA的两个私钥;公钥模数获取子单元,用于获取公钥模数,所述公钥模数为所述私钥获取子单元获取到的两个私钥的乘积;随机数生成子单元,用于生成随机数,所述随机数为位长小于等于所述公钥模数获取子单元获取到的所述公钥模数的位长并且大于等于所述公钥模数的位长的一半的。
结合第二方面及第二方面的第一种可能的实现方式,在第二种可能的实现方式中,获取单元,具体用于选择以下运算中的一个作为直接取模运算的等价运算:
(C+R*m)mod m,
(C-R*m)mod m,
((C+R)-R mod m)mod m,
((C-R)+R mod m)mod m,
((C+R)mod m-R)mod m,
((C-R)mod m+R)mod m,
((C+R)mod m-R mod m)mod m,
((C-R)mod m+R mod m)mod m,
其中C为所述待取模数据,R为所述随机数,m为RSA的私钥第一元素或私钥第二元素。
结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式,在第三种可能的实现方式中,取模单元,具体用于使用所述获取单元获取到的所述等价运算对所述接收单元接收到的所述待取模数据以RSA的私钥为模数进行取模,所述等价运算中的包含的取模运算使用蒙哥马利模乘器完成。
第三方面,本发明还提供了芯片,所述芯片包括如前述第二方面及第二方面的任意一种可能的实施方式所提供的取模装置。
与现有技术相比,本发明提供的取模方法、取模装置及芯片,提高了在采用RSA-CRT算法对数据进行签名或解密时,芯片取模过程安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
图1为本发明取模方法的一个实施例流程图;
图2为本发明取模装置的一个实施例框图;
图3为本发明取模装置的生成单元的一个实施例框图;
图4为本发明芯片的一个实施例框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
其次,本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示装置结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
参见图1,为本发明取模方法一个实施例的流程图,该方法包括如下步骤:
步骤101,接收待取模数据。
在芯片对接收到的数据进行签名或者解密时,芯片需要首先接收待取模数据及待解密数据或待签名的数据,待取模数据可以用C表示,芯片在接收到待取模数据C之后才能进行取模。为了方便数据的存储并适应芯片对数据处理的需求,芯片可以首先将接收到的数据转换为二进制数据,对数据的进一步处理都在二进制形式下进行。
步骤102,根据RSA密钥的长度生成随机数。
为防止攻击者采用CPA结合SPA对芯片取模运算的过程进行分析,进行获取芯片在使用的RSA算法所采用的密钥,最简单的方法就是在保证取模运算结果不变的前提下使用一个随机数参与取模过程,随机数可以用R表示,随机数R参与取模运算过程,可以有效的防止密钥的泄露。
随机数R可以根据RSA算法的密钥长度来设定,该随机数R的位长可以小于等于公钥模数N的位长并且大于等于所述公钥模数N的位长的一半的。小于等于公钥模数N的位长并且大于等于所述公钥模数N的位长的一半的的随机数R,既能保证芯片的取模速度,又能保证取模过程的安全性。
具体来说,由于RSA算法的密钥长度和RSA的公钥模数长度相同,因此可以首先获取RSA的两个私钥;然后根据RSA的两个私钥获取公钥模数,公钥模数即为两个私钥的乘积;然后根据公钥模数的位长生成随机数,随机数为位长要小于等于所述公钥模数的位长并且大于等于所述公钥模数的位长的一半。
在实际应用中,芯片在接收到待取模数据并将待取模数据转化为可处理格式后,首先获取与所述待取模数据对应RSA算法的私钥,该私钥为芯片在签名或解密过程中使用的私钥,所述私钥包括私钥第一元素p及私钥第二元素q,p与q即两个私钥;然后计算所述私钥第一元素p和私钥第二元素q的乘积,所述乘积即为RSA的公钥模数N;在获取到公钥模数N之后,生成一个随机数R,该随机数R的位长需要小于等于公钥模数N的位长并且大于等于所述公钥模数N的位长的一半。
生成随机数R的方式可以有多种,根据需要可以采用软件生成方式或硬件生成方式生成随机数R,生成随机数R的具体方式本发明不做限定。为了增加整个取模过程的安全性,生成随机数R的过程也可以包括取模过程,使用包括取模过程的随机数生成方法生成随机数可以有效防止攻击者采用CPA结合SPA对芯片进行攻击造成私钥泄露。生成随机数的过程包括取模过程时,可以使用蒙哥马利模乘器完成取模过程,例如,在获取X mod Y的结果时,首先根据需要把X分为若干段,然后将各个分段分别输入蒙哥马利模乘器,使用蒙哥马利模乘器计算出X mod Y的值。使用蒙哥马利模乘器完成取模的具体过程在此就不再赘述。
步骤103,获取直接取模运算的一个等价运算,所述等价运算的参数包含所述随机数。
芯片在接收到待取模数据并获取到私钥之后,为防止私钥的泄露,首先获取一个与C mod m等价的运算,其中随机数R为等价运算的参数,等价运算与直接取模运算结果,即无论随机数R为任何具体数据,只要待取模数据相同,使用等价运算对待取模数据进行处理的结果与使用直接取模运算对待取模数据进行处理所得的结果一致。在实际应用中,获取等价运算的方式有多种。芯片中可以根据需要生成所需的等价运算;或者也可以由技术人员预先选择一种以上的等价运算;然后将实现这些等价运算的代码写入到芯片中,或者实现这些等价运算的硬件加入到芯片中;芯片在需要进行取模时,按照预定的选择规则,例如随机选择,选择所需的代码或硬件生成随机数。
以待取模数据为C为被除数,私钥第一元素p或私钥第二元素q为除数m为例,芯片在获取C mod m的结果时,不直接进行C mod m运算,而是先将C与随机数R进行运算得到中间数据,并保证使用中间数据进行取模运算的结果与使用待取模数据进行取模运算的结果一致,然后再利用中间数据计算出C mod m的最终结果,即:将C mod m转化为等价的运算或运算序列,这些运算或运算序列中需要使用随机数R作为参数,
例如,可以将C mod m运算转化下列运算之一作为等价:
(C+R*m)mod m;
或(C-R*m)mod m;
或((C+R)-R mod m)mod m;
或((C-R)+R mod m)mod m;
或((C+R)mod m-R)mod m;
或((C-R)mod m+R)mod m;
或((C+R)mod m-R mod m)mod m;
或((C-R)mod m+R mod m)mod m。
从上述等价运算可以看出,无论参数R为什么数据,上述等价运算的结果都与C mod m的运算结果一致,实现了既有随机数参与,又能保证运算结果与直接取模运算的结果一致。在此需要说明的是,上述运算只是一些较常用C mod m运算可以转化的例子,实际使用中可以使用包括但不限于以上所列运算作为等价运算,只要实际使用的运算满足既有随机数参与,又能保证运算结果与直接取模运算的结果一致即可。
步骤104,使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模。
由于等价运算与直接取模运算C mod m是等价的,因此可以使用等价运算对所述待取模数据进行处理,处理的结果与直接取模运算的结果一致。
由于等价运算过程有随机数参与,会影响芯片取模的速度,增加芯片对数据处理的时间,为了加快数据处理速度,可以使用蒙哥马利模乘器对取模过程进行加速,由于随机数的生成方式各不相同,使用不同的等价运算对待取模数据进行取模的具体过程也各不相同,在此就不再赘述。
下面结合具体的例子对本发明使用所述等价运算对所述待取模数据进行取模进行进一步说明。
例如,在获取C mod m的结果时候,可以将C mod m转化为计算((C+R)mod m-R)mod m,其中m为私钥第一元素p或私钥第二元素q,R为随机数,N为根据私钥第一元素P和私钥第二元素q计算出公钥模数N,由于在采用RSA进行加密时,RSA密钥的长度及公钥模数N的位长为偶数,通常为512位或1024位,因此可以设RSA的模N的位长为2t,C的位长也为2t,当C的位长不足2t时,可以在C的最高位前补0;根据公钥模数N的位长生成位长大于等于t而小于等于2t,使用所述等价运算对所述待取模数据进行取模的具体过程如下:
计算(C+R)mod N,结果记为C1;
计算22t mod m,结果记为CR;
把C1等分成两部分C1H、C1L,其中C1H为高半部分,C1L为低半部分,C1L的位长为t,即C1=C1H||C1L;
C1H和CR输入到蒙哥马利模乘器中,模乘输出结果记为C1HR;
计算C1HR+C1L mod m,计算结果记为C2;
计算(C2-R)mod m,输出结果即为所需取模结果。
又例如,在获取C mod m的时候,也可以将C mod m运算转化为计算((C+R)mod m-R mod m)mod m,其中m为私钥第一元素p或私钥第二元素q,R为随机数,N为根据私钥第一元素P和私钥第二元素q计算出公钥模数N,由于在采用RSA进行加密时,RSA密钥的长度及公钥模数N的位长为偶数,通常为512位或1024位,因此可以设RSA的模N的位长为2t,C的位长也为2t,当C的位长不足2t时,可以在C的最高位前补0;根据公钥模数N的位长生成位长大于等于t而小于等于2t,使用所述等价运算对所述待取模数据进行取模的具体过程如下:
计算(C+R)mod N,结果记为C1;
计算22t mod m,结果记为CR;
把C1等分成等长的两部分C1H、C1L,其中C1H为高半部分,C1L为低半部分,C1L的位长为t,即C1=C1H||C1L;
C1H和CR输入到蒙哥马利模乘器中,模乘输出结果记为C1HR;
计算C1HR+C1L mod m,计算结果记为C2;
计算R mod m;
当R的位长小于等于2t时,将R等分成等长的两部分RH、RLRL,其中RH为高半部分,RL为低半部分,即R=RH||RL;
RH和CR输入到蒙哥马利模乘器中,模乘输出结果记为RHR RHR;
计算RHR+RL mod m,计算结果记为R1;
计算(C2-R1)mod m,输出结果即为C mod m。
从上述实施例可以看出,本发明提供的取模方法由于随机数R的参与,使得芯片在进行取模的过程中,运算的输入数据被随机化,输入的明文经过和随机数的运算,已经变成无任何特征的数据,使得攻击者无法使用CPA时结合SPA分析出芯片在采用RSA-CRT算法对数据进行签名或解密时使用的私钥,可以有效防止芯片私钥的泄露,提高了芯片取模过程安全性。
与本发明取模方法相对应,本发明还提供了取模装置。
参见图2,为本发明取模装置的一个实施例框图。
该装置包括:接收单元201,生成单元202,获取单元203,取模单元204。
其中,所述接接收元201,用于接收待取模数据。
在芯片对接收到的数据进行签名或者解密时,芯片需要首先接收待取模数据及待解密数据或待签名的数据,待取模数据可以用C表示,接接收元201接收到待取模数据C之后才能进行取模。为了方便数据的存储并适应芯片对数据处理的需求,芯片可以首先将接接收元201接收到的数据转换为二进制数据,对数据的进一步处理都在二进制形式下进行。
所述生成单元202,用于根据RSA密钥的长度生成随机数;
生成单元202在生成随机数R时,可以根据RSA算法的密钥长度来设定,该随机数R的位长可以小于等于公钥模数N的位长并且大于等于所述公钥模数N的位长的一半的。小于等于公钥模数N的位长并且大于等于所述公钥模数N的位长的一半的的随机数R,既能保证芯片的取模速度,又能保证取模过程的安全性。
具体来说,由于RSA算法的密钥长度和RSA的公钥模数长度相同,因此生成单元202可以首先获取RSA的两个私钥;然后根据RSA的两个私钥获取公钥模数,公钥模数即为两个私钥的乘积;然后根据公钥模数的位长生成随机数,随机数为位长要小于等于所述公钥模数的位长并且大于等于所述公钥模数的位长的一半。
所述获取单元203,用于获取直接取模运算的一个等价运算,所述等价运算的参数包含所述随机数。
芯片在接收到待取模数据并获取到私钥只后,为防止私钥的泄露,获取单元203首先获取一个与C mod m等价的等价运算,其中随机数R为等价运算的参数,等价运算与直接取模运算结果,即无论随机数R为什么具体数据,只要待取模数据相同,使用等价运算对待取模数据进行处理的结果与使用直接取模运算对待取模数据进行处理所得的结果一致。
所述取模单元204,用于使用所述获取单元获取的所述等价运算对所述待取模数据以RSA的私钥为模数进行取模。
由于等价运算与直接取模运算C mod m是等价的,因此可以使用等价运算对所述待取模数据进行处理,处理的结果与直接取模运算的结果一致。
从上述实施例可以看出,本发明提供的取模方法由于随机数R的参与,使得芯片在进行取模的过程中,运算的输入数据被随机化,输入的明文经过和随机数的运算,已经变成无任何特征的数据,使得攻击者无法使用CPA时结合SPA分析出芯片在采用RSA-CRT算法对数据进行签名或解密时使用的私钥,可以有效防止芯片私钥的泄露,现有提高了芯片取模过程安全性。
参见图3,为本发明取模装置的生成单元的一个实施例框图。
该生成单元包括:私钥获取子单元301,公钥模数获取子单元302,随机数生成子单元303。
其中,所述私钥获取子单元301,用于获取与所述待取模数据对应的两个私钥;
所述公钥模数获取子单元302,用于获取模数,所述模数为所述私钥获取子单元302获取到的两个私钥的乘积;
所述随机数生成子单元303,用于生成随机数,所述随机数为位长小于等于所述公钥模数获取子单元302获取到的所述模数的位长并且大于等于所述模数的位长的一半的。
为了进一步增加取模过程的安全性,所述随机数生成子单元,具体用于采用包括取模运算过程的生成过程生成所述随机数,所述随机数为位长小于等于所述模数获取子单元获取到的所述模数的位长并且大于等于所述模数的位长的一半的。
从上述实施例可以看出,本发明提供的生成单元可以生成等价运算所需的随机数,为防止芯片私钥的泄露,提高了芯片取模过程安全性提供了条件。
与本发明取模装置相对应,本发明还提供了芯片。
参见图4,为本发明芯片的一个实施例框图。
所述芯片包括:取模装置401。
所述芯片为智能卡及智能密码钥匙的芯片,也可以为其他的芯片,芯片中包括如前述实施例中提供的取模装置401,取模装置401用于芯片采用RSA-CRT算法对数据进行签名或解密时,完成取模运算过程。
从上述实施例可以看出,本发明提供的芯片,取模过程安全性高,可以防止取模过程中RSA私钥的泄露。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种取模方法,其特征在于,所述方法包括:
接收待取模数据;
根据RSA密钥的长度生成随机数;
获取直接取模运算的一个等价运算,所述等价运算的参数包含所述随机数;
使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模。
2.如权利要求1所述的方法,其特征在于,所述根据RSA密钥的长度生成随机数,包括:
获取RSA的两个私钥;
获取公钥模数,所述公钥模数为两个私钥的乘积;
生成随机数,所述随机数为位长小于等于所述公钥模数的位长并且大于等于所述公钥模数的位长的一半的。
3.如权利要求1或2所述的方法,其特征在于,所述获取直接取模运算的一个等价运算,具体为:选择以下运算中的一个作为直接取模运算的等价运算:
(C+R*m)mod m,
(C-R*m)mod m,
((C+R)-R mod m)mod m,
((C-R)+R mod m)mod m,
((C+R)mod m-R)mod m,
((C-R)mod m+R)mod m,
((C+R)mod m-R mod m)mod m,
((C-R)mod m+R mod m)mod m,
其中C为所述待取模数据,R为所述随机数,m为RSA的私钥第一元素或私钥第二元素。
4.如权利要求1至3任意一项权利要求所述的方法,其特征在于,所述使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模,具体为:
使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模,使用蒙哥马利模乘器完成所述等价运算中的包含的取模运算。
5.一种取模装置,其特征在于,所述装置包括:
接收单元,用于接收待取模数据;
生成单元,用于根据RSA密钥的长度生成随机数;
获取单元,用于获取直接取模运算的一个等价运算,所述等价运算的参数包含所述生成单元生成的所述随机数;
取模单元,用于使用所述获取单元获取的所述等价运算对所述接收单元接收到的所述待取模数据以RSA的私钥为模数进行取模。
6.如权利要求5所述的取模装置,其特征在于,所述生成单元包括:
私钥获取子单元,用于获取RSA的两个私钥;
公钥模数获取子单元,用于获取公钥模数,所述公钥模数为所述私钥获取子单元获取到的两个私钥的乘积;
随机数生成子单元,用于生成随机数,所述随机数为位长小于等于所述公钥模数获取子单元获取到的所述公钥模数的位长并且大于等于所述公钥模数的位长的一半的。
7.如权利要求5或6所述的取模装置,其特征在于,
所述获取单元,具体用于选择以下运算中的一个作为直接取模运算的等价运算:
(C+R*m)mod m,
(C-R*m)mod m,
((C+R)-R mod m)mod m,
((C-R)+R mod m)mod m,
((C+R)mod m-R)mod m,
((C-R)mod m+R)mod m,
((C+R)mod m-R mod m)mod m,
((C-R)mod m+R mod m)mod m,
其中C为所述待取模数据,R为所述随机数,m为RSA的私钥第一元素或私钥第二元素。
8.如权利要求5至7任意一项权利要求所述的取模装置,其特征在于,
所述取模单元,具体用于使用所述获取单元获取到的所述等价运算对所述接收单元接收到的所述待取模数据以RSA的私钥为模数进行取模,所述等价运算中的包含的取模运算使用蒙哥马利模乘器完成。
9.一种芯片,其特征在于,所述芯片包括如权利要求5至8任意一项权利要求所述的取模装置。
CN201310274835.1A 2013-07-02 2013-07-02 取模方法、取模装置及芯片 Active CN103401681B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310274835.1A CN103401681B (zh) 2013-07-02 2013-07-02 取模方法、取模装置及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310274835.1A CN103401681B (zh) 2013-07-02 2013-07-02 取模方法、取模装置及芯片

Publications (2)

Publication Number Publication Date
CN103401681A true CN103401681A (zh) 2013-11-20
CN103401681B CN103401681B (zh) 2016-08-31

Family

ID=49565212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310274835.1A Active CN103401681B (zh) 2013-07-02 2013-07-02 取模方法、取模装置及芯片

Country Status (1)

Country Link
CN (1) CN103401681B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104660400A (zh) * 2013-11-25 2015-05-27 上海复旦微电子集团股份有限公司 一种rsa模幂运算方法和装置
CN104753684A (zh) * 2015-04-15 2015-07-01 飞天诚信科技股份有限公司 一种实现数字签名和验签的方法
CN106506487A (zh) * 2016-11-03 2017-03-15 武汉斗鱼网络科技有限公司 一种信息加、解密方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018126A (zh) * 2006-02-06 2007-08-15 郑建德 一种无指数运算的快速数字签名技术
CN101558600A (zh) * 2006-12-18 2009-10-14 微软公司 快速rsa签名验证
CN101834723A (zh) * 2009-03-10 2010-09-15 上海爱信诺航芯电子科技有限公司 一种rsa算法及其ip核
CN102571342A (zh) * 2010-12-27 2012-07-11 北京中电华大电子设计有限责任公司 一种rsa算法数字签名方法
US20120224695A1 (en) * 2011-03-03 2012-09-06 Kabushiki Kaisha Toshiba Communicating device and communicating method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018126A (zh) * 2006-02-06 2007-08-15 郑建德 一种无指数运算的快速数字签名技术
CN101558600A (zh) * 2006-12-18 2009-10-14 微软公司 快速rsa签名验证
CN101834723A (zh) * 2009-03-10 2010-09-15 上海爱信诺航芯电子科技有限公司 一种rsa算法及其ip核
CN102571342A (zh) * 2010-12-27 2012-07-11 北京中电华大电子设计有限责任公司 一种rsa算法数字签名方法
US20120224695A1 (en) * 2011-03-03 2012-09-06 Kabushiki Kaisha Toshiba Communicating device and communicating method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KOJI NAKANO ET AL.: "《RSA Encryption and Decryption using the Redundant Number System on the FPGA》", 《IEEE》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104660400A (zh) * 2013-11-25 2015-05-27 上海复旦微电子集团股份有限公司 一种rsa模幂运算方法和装置
CN104753684A (zh) * 2015-04-15 2015-07-01 飞天诚信科技股份有限公司 一种实现数字签名和验签的方法
CN104753684B (zh) * 2015-04-15 2018-01-05 飞天诚信科技股份有限公司 一种实现数字签名和验签的方法
CN106506487A (zh) * 2016-11-03 2017-03-15 武汉斗鱼网络科技有限公司 一种信息加、解密方法及装置

Also Published As

Publication number Publication date
CN103401681B (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
Xian et al. Image encryption based on chaotic sub-block scrambling and chaotic digit selection diffusion
Kanso et al. An efficient and robust image encryption scheme for medical applications
CN102546181B (zh) 基于密钥池的云存储加解密方法
CN103473733B (zh) 基于dna编码和混沌映射的图像加密算法
Kanso et al. A fast and efficient chaos-based keyed hash function
Murillo-Escobar et al. A novel symmetric text encryption algorithm based on logistic map
CN108964872B (zh) 一种基于aes的加密方法及装置
CN110663215B (zh) 在白盒场景中的椭圆曲线点乘设备和方法
CN105406969A (zh) 数据加密装置及方法
CN109039640A (zh) 一种基于rsa密码算法的加解密硬件系统及方法
CN103414549A (zh) 一种qr二维码二值图像分区变密钥混沌加密方法
CN110505054B (zh) 一种基于动态白盒的数据处理方法、装置及设备
CN103916248A (zh) 一种全同态加密公钥空间压缩方法
Wang et al. Image encryption algorithm based on bit-level permutation and dynamic overlap diffusion
Ge et al. Fast chaotic image encryption algorithm using a novel divide and conquer diffusion strategy
JunLi et al. Email encryption system based on hybrid AES and ECC
CN103401681A (zh) 取模方法、取模装置及芯片
CN114826587A (zh) 一种数据加密方法、解密方法及其装置、设备
CN111526000B (zh) 一种基于混淆模投影的并行部分同态加密方法和系统
Stam Speeding up subgroup cryptosystems
CN107317669B (zh) 基于二元截断多项式环的无噪音全同态公钥加密方法
Srichavengsup et al. Data encryption scheme based on rules of cellular automata and chaotic map function for information security.
CN110113169B (zh) 基于rsa的协同数字签名方法、装置及电子设备
CN106936822A (zh) 针对sms4抗高阶旁路分析的掩码实现方法及系统
CN115766190A (zh) 一种任意集合元素加密方法、解密方法及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant