CN1965524B - 增进加密引擎的操作速度的方法 - Google Patents
增进加密引擎的操作速度的方法 Download PDFInfo
- Publication number
- CN1965524B CN1965524B CN200580018329.XA CN200580018329A CN1965524B CN 1965524 B CN1965524 B CN 1965524B CN 200580018329 A CN200580018329 A CN 200580018329A CN 1965524 B CN1965524 B CN 1965524B
- Authority
- CN
- China
- Prior art keywords
- variable
- input
- logical blocks
- buffer
- value
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 239000000872 buffer Substances 0.000 claims description 85
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 12
- VUFOSBDICLTFMS-UHFFFAOYSA-M ethyl-hexadecyl-dimethylazanium;bromide Chemical compound [Br-].CCCCCCCCCCCCCCCC[N+](C)(C)CC VUFOSBDICLTFMS-UHFFFAOYSA-M 0.000 description 7
- WPWLFFMSSOAORQ-UHFFFAOYSA-N 5-bromo-4-chloro-3-indolyl acetate Chemical compound C1=C(Br)C(Cl)=C2C(OC(=O)C)=CNC2=C1 WPWLFFMSSOAORQ-UHFFFAOYSA-N 0.000 description 5
- 239000012141 concentrate Substances 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04K—SECRET COMMUNICATION; JAMMING OF COMMUNICATION
- H04K1/00—Secret communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Logic Circuits (AREA)
- Executing Machine-Instructions (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Complex Calculations (AREA)
Abstract
在实施加密引擎的工作的本发明的方法中,提供了复数个逻辑区块(LB1至LB32),而系将每一逻辑区块用来执行函数(F,G,H,I)。根据三个变量(B,C,D)而执行每一个函数,而每一变量可具有第一或第二值。在选择该第一变量值(B)具有其第一值且使该第二及第三变量(C,D)具有其实际值的情形下,执行该函数。再度在选择该第一变量值(B)具有其第二值且使该第二及第三变量(C,D)具有其实际值的情形下,执行该函数。决定该第一变量(B)的实际值,且以该第一变量(B)的该实际值决定该逻辑区块的输出。
Description
技术领域
本发明系大致有关加密领域中之操作速度的提高。
背景技术
Computer Science and RSA Data Security,Inc.的R.Rivest,MITLaboratory于1992年4月所发布的文件“RFC 1321-The MD5-Message-Digest Algorithm”的第1至18页揭示了一种由图1所示结构所代表之操作方法,而本发明特此引用该文件以供参照。在此种操作中,系以多达32位(A31,A30,...A0)构成的资料填满缓存器A,以多达32位(B31,B30,...B0)构成的资料填满缓存器B,以多达32位(C31,C30,...C0)构成的资料填满缓存器C,并以多达32位(D31,D30,...D0)构成的资料填满缓存器D。此外,以512位的资料填满缓存器(5),且以512位的资料填满缓存器(6)。缓存器A、B、C、D、5、及6中之每一位可具有0或1之其中一值。
根据该文件,系将四个辅助函数定义为:
F(B,C,D)=BC v not(B)D
G(B,C,D)=BD v C not(D)
H(B,C,D)=B xor C xor D
I(B,C,D)=C xor(B v not(D))
此外,缓存器(5)中之512个位被分成16个个别的组(k=0至15),其中每一组有32位,且函数X(k)操作,以便选择由k值决定的该等组中之一组。缓存器(6)中之512个位被分成16个个别的组(i=1至16),其中每一组有32位,且函数T(i)操作,以便选择由i值决定的该等组中之一组。函数CLS(s)旋转器(11)操作,以便旋转由s值(s=1至64)决定的若干位所呈现之内容。
以[ABCD ksi]表示下列各轮中之每一轮(round)的作业:
/*轮1.*/
result=b+((a+F(b,c,d)+X[k]+T[i])<<<s).*/
/*进行下列16个作业.*/
[ABCD 071][DABC112 2][CDAB217 3][BCDA322 4]
[ABCD47 5][DABC512 6][CDAB617 7][BCDA722 8]
[ABCD 879][DABC912 10][CDAB 10 17 11][BCDA 11 22 12]
[ABCD 12713][DABC 13 12 14][CDAB 14 17 15][BCDA 15 2216]
/*轮2.*/
result=b+((a+G(b,c,d)+X[k]+T[i])<<<s).*/
/*执行下列16个作业.*/
[ABCD15 17][DABC69 18][CDAB 11 14 19][BCDA020 20]
[ABCD55 21][DABC 10922][CDAB514 23][BCDA420 24]
[ABCD 9525][DABC 14926][CDAB314 27][BCDA820 28]
[ABCD 13529][DABC29 30][CDAB714 31][BCDA 12 20 32]
/*轮3.*/
result=b+((a+H(b,c,d)+X[k]+T[i])<<<s).*/
/*执行下列16个作业.*/
[ABCD 5433][DABC811 34][CDAB 11 16 35][BCDA 14 23 36]
[ABCD14 37][DABC411 38][CDAB716 39][BCDA 10 23 40]
[ABCD 13441][DABC011 42][CDAB316 43][BCDA623 44]
[ABCD 9445][DABC 12 11 46][CDAB 15 16 47][BCDA223 48]
/*轮4.*/
result=b+((a+I(b,c,d)+X[k]+T[i])<<<s).*/
/*执行下列16个作业.*/
[ABCD 0649][DABC710 50][CDAB 14 15 51][BCDA521 52]
[ABCD 12653][DABC310 54][CDAB 10 15 35][BCDA121 56]
[ABCD 8657][DABC 15 10 58][CDAB615 59][BCDA13 21 60]
[ABCD46 61][DABC 11 10 62][CDAB215 63][BCDA921 64]
请参阅图1及图2,现在将说明第一轮的第一作业,亦即,[ABCD071]。
开始时,将缓存器A中之32位资料集施加到加法器(7)。施加缓存器B的资料集中之第一变量(亦即,位B31)、缓存器C的资料集中之第一变量(亦即,位C31)、以及缓存器D的资料集中之第一变量(亦即,位D31)(第一组变量B31,C31,D31),作为逻辑区块(8)的输入,而逻辑区块(8)可将函数F、G、H、及I施加到这些变量。在此同时,也施加缓存器B的资料集中之第二变量(亦即,位B30)、缓存器C的资料集中之第二变量(亦即,位C30)、以及缓存器D的资料集中之第二变量(亦即,位D30)(第二组变量B30,C30,D30),作为逻辑区块(8)的输入;针对每一组变量而依此类推。在该特定的例子中,函数F被施加到这些变量(图2)。系以并行之方式对32组的三位之每一组执行该程序,而产生了将施加到加法器(7)的32位输出。在逻辑区块(8)的32位输出施加到加法器(7)之情形下,缓存器B的内容被施加到缓存器C及加法器(12),缓存器C的内容被施加到缓存器D,且缓存器D的内容施加到缓存器A。加法器(7)将施加到加法器(7)的逻辑区块(8)的输入及缓存器A的该资料集相加,而将32位的输出提供给加法器(9)。k值=0指示:缓存器(5)的32位群组0被施加作为加法器(9)的输入,且加法器(9)将从加法器(7)的输入及缓存器(5)的32位群组0相加。加法器(9)的输出施加到加法器(10),且i值=1时指示缓存器(6)的32位群组1施加到加法器(10)作为输入,且加法器(10)将来自加法器(9)的输入及缓存器(6)的32位群组1相加。数目s决定的旋转器CLS(s)(11)旋转加法器(10)的32位输出,而在该例子中,s=7。经过旋转的内容施加到加法器(12),且与已施加到加法器(12)的缓存器B之内容相加。加法器(12)的输出施加到缓存器B。
针对第一轮的第二作业(亦即,[DABC112 2])而重复该程序,因而再度施加该函数F,且针对第一轮的所有16个作业而重复该程序,而每一作业都施加该函数F。
针对第二轮的第一作业(亦即,[ABCD15 17])而施加前文所述的作业,然而,逻辑区块(8)将函数G施加到提供给该逻辑区块的输入(图4)。与前文所述者类似,是根据上述图表而进行第二轮的16个 作业。
仍然根据上述图表,而分别使用函数H(图5)及函数I(图6),以类似之方式进行第三轮及第四轮。
我们将可了解,逻辑区块(8)对函数的施加系取决于来自缓存器B、C、及D的输入。在每一作业中,逻辑区块(8)可直接使用缓存器C及D的内容,而在第一轮的第一作业之后,将要施加到逻辑区块(8)的缓存器B的内容经由其中涉及加法器(7)、缓存器(5)、加法器(9)、加法器(10)、缓存器(6)、旋转器(11)、及加法器(12)的若干计算而到达。此种耗时的程序使整体系统的操作速度比所需的慢,这是因为逻辑区块(8)必须先等候来自所有缓存器B、C、及D的输入,然后才能将函数施加到该等输入。
因此,目前需要一种可加速前文所述的作业的速度之方法。
发明内容
在执行加密引擎的功能的本发明之方法中,提供了第一及第二逻辑区块,而系将每一逻辑区块用来执行一函数,其中第一逻辑区块的函数的执行是根据可具有第一或第二值的第一变量的输入、以及可具有第一或第二值的第二变量的输入,第二逻辑区块的函数的执行是根据可具有该第一或第二值的该第一变量的输入、以及可具有第一或第二值的第三变量的输入。提供了该第二变量的实际值。是根据设定在该第一变量的该第一值的该第一变量的输入以及根据该第二变量的该实际值的该第二变量的输入,而执行该第一逻辑区块的函数,以便提供第一输出。是根据设定在该第一变量的该第二值的该第一变量的输入以及根据该第二变量的该实际值的该第二变量的输入,而执行该第一逻辑区块的函数,以便提供第二输出。提供了该第三变量的实际值。是根据设定在该第一变量的该第一值的该第一变量的输入以及根据该第三变量的该实际值的该第三变量的输入,而执行该第二逻辑区块的函数,以便提供第三输出。是根据设定在该第一变量的该第二值的该第一变量的输入以及根据该第三变量的该实际值的该第三变量的输入,而执行该第二逻辑区块的函数,以便提供第四输出。
若参照下文中之详细说明并配合各附图,将可更易于了解本发明。 熟习此项技术者在参阅下文中之说明之后将可易于了解:只是以举例说明用来实施本发明的最佳模式之方式而示出并说明本发明的实施例。我们将可了解,在不脱离本发明的范围下,本发明可以有其它的实施例,且本发明的数项细节可以有一些修改及各种明显的态样。因此,将把该等图式及详细说明视为在本质上具有例示性而非限制性。
附图说明
最后的申请专利范围中述及了被认为是本发明的特征之新颖特征。然而,若参阅前文中对实施例的详细说明,并配合各附图,将可对本发明本身、以及该较佳使用模式、及本发明的其它目的及优点有最佳的了解,这些附图有:
图1至图6示出先前技术方法之作业;以及
图7至图14示出本发明的方法之作业。
主要组件符号说明
5、6、A、B、C、D 缓存器
7、9、10、12 加法器
8 逻辑区块
11 旋转器
具体实施方式
现在将详细参照本发明的特定实施例,而该特定实施例解说了发明人目前认为用来实施本发明的最佳模式。
图7示出本发明的此实施例。如图所示,设有32个个别的逻辑区块LB1、LB2、LB3、...LB32,而这些逻辑区块LB1、LB2、LB3、...LB32取代了图1所示之单一逻辑区块(8)。在图1所示之实施例中,缓存器B、C、及D中之每一缓存器具有并行通到该单一逻辑区块(8)的32个连接。在本实施例中,如图7所示,缓存器B具有通到逻辑区块LB1至LB32中之每一逻辑区块的个别连接,缓存器C具有通到逻辑区块LB1至LB32中之每一逻辑区块的个别连接,且缓存器D具有通到逻辑区块LB1至LB32中之每一逻辑区块的个别连接。逻辑区块LB1至LB32在组态及组态细节上是相同的,例如,图8至图11 示出逻辑区块LB1、LB2、LB3、及LB32。每一逻辑区块包含用来执行选择的函数F、G、H、I之两个函数区块,亦即,逻辑区块LB1包含函数区块LB1FB1、LB1FB2,逻辑区块LB2包含函数区块LB2FB1、LB2FB2,其它依此类推。同时,施加位C31、D31的实际值,作为逻辑区块LB1的两个函数区块LB1FB1、LB1FB2的输入(图8),施加位C30、D30的实际值,作为逻辑区块LB2的两个函数区块LB2FB1、LB2FB2的输入(图9),施加位C29、D29的实际值,作为逻辑区块LB3的两个函数区块LB3FB1、LB3FB2的输入(图10),而所有其它的逻辑区块依此类推,且施加位C0、D0的实际值,作为逻辑区块LB32的两个函数区块LB32FB1、LB32FB2的输入(图11)。在每一逻辑区块内,将额外的输入提供给每一函数区块,使其中一函数区块的输入设定在0,且使另一函数区块的输入设定在1。例如,如图8所示,函数区块LB1FB1的额外输入设定在0,且函数区块LB1FB2的额外输入设定在1。此种方式呈现了缓存器B中之个别位的两个可能值。
在作业中,逻辑区块LB1的函数区块LB1FB1以输C31、D31、B=0执行函数F,而逻辑区块LB1的函数区块LB1FB2以输入C31、D31、B=1执行函数F(图8)。同时,逻辑区块LB2的函数区块LB2FB1以输入C30、D30、B=0执行函数F,而逻辑区块LB2的函数区块LB2FB2以输入C30、D30、B=1执行函数F(图9);逻辑区块LB3的函数区块LB3FB1以输入C29、D20、B=0执行函数F,而逻辑区块LB3的函数区块LB3FB2以输入C29、D20、B=1执行函数F(图10);所有其它的逻辑区块依此类推;且逻辑区块LB32的函数区块LB32FB1以输入C0、D0、B=0执行函数F,而逻辑区块LB32的函数区块LB32FB2以输入C0、D0、B=1执行函数F(图11)。在每一逻辑区块内,将该对函数区块的输出提供给多任务器(例如,在逻辑区块LB1中,将函数区块LB1FB1、LB1FB2的输出提供给多任务器M1,在逻辑区块LB2中,将函数区块LB2FB1、LB2FB2的输出提供给多任务器M2,其它依此类推)。在自缓存器B提供资料之前,先进行所有这些作业,而如前文所述,该等资料可能延迟到达缓存器B。然而,在预期要到达缓存器B的这些资料时,所进行的 计算是根据将提供给缓存器B的资料的每一个别位之二个值。然后,当这些(32位)资料的确到达且置于缓存器B时,施加缓存器B中之位B31的实际值,作为多任务器M1的输入,而多任务器M1根据该输入而选择函数区块(函数区块LB1FB1或函数区块LB1FB2)的输出作为实际输出,而函数区块输出的选择是根据缓存器B中之位B31的实际值,亦即,如果位B31的实际值等于0,则选择函数区块LB1FB1的输出作为逻辑区块LB1的输出,而如果位B31的实际值等于0,则选择函数区块LB1FB1的输出作为逻辑区块LB1的输出。同样地,第二逻辑区块LB2的实际输出将根据缓存器B中之位B30的实际值,第三逻辑区块LB3的实际输出将根据缓存器B中之位B29的实际值,其它依此类推。
逻辑区块LB1至LB32的个别输出构成了施加到图1所示的加法器(7)之32位资料的个别位,而先前系由逻辑区块(8)供应该等32位。根据函数F,而以前文所述之方式(请参阅前文之图表)进行第一轮的所有16个作业。与前文所述者类似,根据函数G(图12),而依据前文之图表进行第二轮的16个作业。然后根据前文之图表,而分别使用函数H(图13)及函数I(图14)且以类似之方式进行第三及第四轮。
我们将可了解:对于每一逻辑区块而言,是根据来自缓存器C的输入之实际值、来自缓存器D的输入之实际值、以及来自缓存器B的输入之两个可能值,而执行函数,其中当缓存器B的特定位之实际值施加到多任务器时,是根据该实际值而决定逻辑区块的输出。因此,无须等候B31至B0的实际值存在于缓存器B,即可先进行其中涵盖到达缓存器B的这些位的所有可能值的计算。一旦该等实际位到达缓存器B之后,即由直接路径将每一位的值提供给多任务器。将把上述之情形与只有在将来自缓存器B、C、及D的输入的三个实际值提供给逻辑区块(8)之后才能进行函数的执行之先前技术的系统比较。在本发明的情形中,系以与前文所述的将资料提供给缓存器B的该等步骤并行之方式进行函数的执行,且只需要进行使用自缓存器B至多任务器的直接路径而根据缓存器B中之一位的实际值以选择输出的简单步骤。
为了例示及说明而在前文中已提供了对本发明的实施例之说明。该说明并无法表现出本发明之所有特征或将本发明限制在所揭示的明确形式。根据前文的揭示事项而形成的其它修改或变化也是可行的。
已选择并说明了该实施例,而提供了对本发明的原理及其实际应用的最佳解说,以便使对此项技术具有一般知识者能够将本发明用于各种实施例,且能够进行适于所考虑的特定用途之各种修改。当根据最后的申请专利范围在公平、合法、且公正之情形下所具有的广度而进行诠释时,所有此类修改及变化都是在该等申请专利范围所决定的本发明之范围内。
Claims (10)
1.一种利用逻辑区块以接收来自多个缓存器的输入而实施辅助加密函数的方法,该函数的执行是根据来自第一缓存器可具有第一或第二值的第一变量(B)的输入、以及来自第二缓存器可具有第一或第二值的第二变量(C)的输入,该方法包含下列步骤:
提供来自该第二缓存器的该第二变量(C)的实际值至该逻辑区块;
根据设定在该第一变量(B)的该第一值的该第一变量(B)的输入以及具有该第二变量(C)的该实际值的该第二变量(C)的输入,而在该逻辑区块执行该辅助加密函数,以便提供第一输出;以及
根据设定在该第一变量(B)的该第二值的该第一变量(B)的输入以及具有该第二变量(C)的该实际值的该第二变量(C)的输入,而在该逻辑区块执行该辅助加密函数,以便提供第二输出。
2.如权利要求1所述的方法,进一步包含下列步骤:提供该第一变量(B)的实际值至该逻辑区块。
3.如权利要求2所述的方法,进一步包含下列步骤:从该逻辑区块中选择该第一或该第二输出其中任一,而如果该第一变量(B)具有该第一变量(B)的实际第一值,则选择该第一输出,如果该第一变量(B)具有该第一变量(B)的实际第二值,则选择该第二输出。
4.一种利用并行连接的多个逻辑区块以接收来自多个缓存器的输入而实施辅助加密函数的方法,其中每一个缓存器具有个别的连接到该多个逻辑区块的每一个,该函数的执行是根据来自第一缓存器可具有第一或第二值的第一变量(B)的输入、来自第二缓存器可具有第一或第二值的第二变量(C)的输入、以及来自第三缓存器可具有第一或第二值的第三变量(D)的输入,该方法包含下列步骤:
提供该第二及第三变量(C,D)的实际值至该多个逻辑区块;
根据设定在该第一变量(B)的该第一值的该第一变量(B)的输入、具有该第二变量(C)的该实际值的该第二变量(C)的输入、以及具有该第三变量(D)的该实际值的该第三变量(D)的输入,而在该多个逻辑区块执行该辅助加密函数,以便提供第一输出;以及
根据设定在该第一变量(B)的该第二值的该第一变量(B)的输入、具有该第二变量(C)的该实际值的该第二变量(C)的输入、以及具有该第三变量(D)的该实际值的该第三变量(D)的输入,而在该多个逻辑区块执行该辅助加密函数,以便提供第二输出。
5.如权利要求4所述的方法,进一步包含下列步骤:提供该第一变量(B)的实际值至该多个逻辑区块的每一个。
6.如权利要求5所述的方法,进一步包含下列步骤:从该多个逻辑区块的每一个选择该第一或该第二输出的其中任一,而如果该第一变量(B)的该实际值是该第一变量(B)的该第一值,则选择该第一输出,如果该第一变量(B)的该实际值是该第一变量(B)的该第二值,则选择该第二输出。
7.一种利用逻辑区块以接收来自多个缓存器的输入而实施加密引擎的工作的方法,包含下列步骤:
提供第一及第二逻辑区块,而将每一逻辑区块用来执行辅助加密函数;其中该第一逻辑区块的该辅助加密函数的执行是根据来自第一缓存器可具有第一或第二值的第一变量(B)的输入、以及来自第二缓存器可具有第一或第二值的第二变量(C)的输入,第二逻辑区块的该辅助加密函数的执行是根据来自该第一缓存器可具有该第一或该第二值的该第一变量(B)的输入、以及来自第三缓存器可具有第一或第二值的第三变量(D)的输入;
提供该第二变量(C)的实际值至该第一逻辑区块;
根据设定在来自该第一缓存器的该第一变量(B)的该第一值的该第一变量(B)的输入、以及根据来自该第二缓存器的该第二变量(C)的该实际值的该第二变量(C)的输入,而执行该第一逻辑区块的该辅助加密函数,以便提供第一输出;
根据设定在来自该第一缓存器的该第一变量(B)的该第二值的该第一变量(B)的输入、以及根据来自该第二缓存器的该第二变量(C)的该实际值的该第二变量(C)的输入,而执行该第一逻辑区块的该辅助加密函数,以便提供第二输出;
提供来自该第三缓存器的该第三变量(D)的实际值至该第二逻辑区块;
根据设定在来自该第一缓存器的该第一变量(B)的该第一值的该第一变量(B)的输入、以及根据来自该第三缓存器的该第三变量(D)的该实际值的该第三变量(D)的输入,而执行该第二逻辑区块的该辅助加密函数,以便提供第三输出;以及
根据设定在来自该第一缓存器的该第一变量(B)的该第二值的该第一变量(B)的输入、以及根据来自该第三缓存器的该第三变量(D)的该实际值的该第三变量(D)的输入,而执行该第二逻辑区块的该辅助加密函数,以便提供第四输出。
8.如权利要求7所述的方法,进一步包含下列步骤:提供该第一变量(B)的实际值至该第一及第二逻辑区块的每一个。
9.如权利要求8所述的方法,进一步包含下列步骤:从该第一逻辑区块中选择该第一或该第二输出,而如果该第一变量(B)具有该第一变量(B)的实际第一值,则选择该第一输出,如果该第一变量(B)具有该第一变量(B)的实际第二值,则选择该第二输出。
10.如权利要求9所述的方法,进一步包含下列步骤:从该第二逻辑区块中选择该第三或该第四输出,而如果该第一变量(B)具有该第一变量(B)的实际第一值,则选择该第四输出,如果该第一变量(B)具有该第一变量(B)的实际第二值,则选择该第二输出。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/818,017 | 2004-04-05 | ||
US10/818,017 US8526601B2 (en) | 2004-04-05 | 2004-04-05 | Method of improving operational speed of encryption engine |
PCT/US2005/010576 WO2005101728A1 (en) | 2004-04-05 | 2005-03-28 | Method of improving operational speed of encryption engine |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1965524A CN1965524A (zh) | 2007-05-16 |
CN1965524B true CN1965524B (zh) | 2014-10-29 |
Family
ID=34964859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580018329.XA Expired - Fee Related CN1965524B (zh) | 2004-04-05 | 2005-03-28 | 增进加密引擎的操作速度的方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8526601B2 (zh) |
JP (1) | JP4754555B2 (zh) |
KR (1) | KR101147520B1 (zh) |
CN (1) | CN1965524B (zh) |
DE (1) | DE112005000776T5 (zh) |
GB (1) | GB2429615B (zh) |
TW (1) | TWI401936B (zh) |
WO (1) | WO2005101728A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700932B (zh) * | 2014-11-25 | 2019-02-05 | 财团法人资讯工业策进会 | 针对软件程序的变量推论系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1106187A (zh) * | 1994-01-31 | 1995-08-02 | 陈寿峦 | 由白炽灯、电子线路和特种荧光灯组成的一体化电光源 |
EP0778518A1 (fr) * | 1995-12-04 | 1997-06-11 | STMicroelectronics S.A. | Procédé de production d'un paramètre J0 associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery |
US6199162B1 (en) * | 1997-09-17 | 2001-03-06 | Frank C. Luyster | Block cipher method |
US6536016B1 (en) * | 2000-07-27 | 2003-03-18 | Lsi Logic Corporation | Method and apparatus for locating constants in combinational circuits |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3634658A (en) * | 1970-03-19 | 1972-01-11 | Sperry Rand Corp | Parallel bit counter |
US3902056A (en) * | 1974-05-15 | 1975-08-26 | Julian Borisovich Aizenberg | Interior lighting fixture |
GB1552128A (en) * | 1975-06-28 | 1979-09-05 | Square D Co | Computer based control systems including a protection circuit |
US4584640A (en) * | 1984-06-27 | 1986-04-22 | Motorola, Inc. | Method and apparatus for a compare and swap instruction |
JPS6292029A (ja) * | 1985-10-18 | 1987-04-27 | Hitachi Ltd | マイクロプログラム制御回路 |
US5008935A (en) * | 1989-06-30 | 1991-04-16 | At&T Bell Laboratories | Efficient method for encrypting superblocks of data |
US6317769B1 (en) * | 1996-09-18 | 2001-11-13 | International Business Machines Corporation | Apparatus for calculating of Bc (mod n) with repeatedly shifting a holding value |
US5946369A (en) | 1997-07-30 | 1999-08-31 | Lucent Technologies Inc. | High-speed binary synchronous counter with precomputation of carry-independent terms |
US6961846B1 (en) * | 1997-09-12 | 2005-11-01 | Infineon Technologies North America Corp. | Data processing unit, microprocessor, and method for performing an instruction |
US6820105B2 (en) * | 2000-05-11 | 2004-11-16 | Cyberguard Corporation | Accelerated montgomery exponentiation using plural multipliers |
US6580296B1 (en) * | 2000-09-22 | 2003-06-17 | Rn2R, L.L.C. | Low power differential conductance-based logic gate and method of operation thereof |
JP3732450B2 (ja) * | 2002-03-19 | 2006-01-05 | 沖電気工業株式会社 | 剰余演算器 |
US7197527B2 (en) * | 2002-10-17 | 2007-03-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient arithmetic in finite fields of odd characteristic on binary hardware |
US6888372B1 (en) * | 2002-12-20 | 2005-05-03 | Altera Corporation | Programmable logic device with soft multiplier |
-
2004
- 2004-04-05 US US10/818,017 patent/US8526601B2/en active Active
-
2005
- 2005-03-28 CN CN200580018329.XA patent/CN1965524B/zh not_active Expired - Fee Related
- 2005-03-28 GB GB0620264A patent/GB2429615B/en active Active
- 2005-03-28 JP JP2007507362A patent/JP4754555B2/ja active Active
- 2005-03-28 KR KR1020067022771A patent/KR101147520B1/ko active IP Right Grant
- 2005-03-28 WO PCT/US2005/010576 patent/WO2005101728A1/en active Application Filing
- 2005-03-28 DE DE112005000776T patent/DE112005000776T5/de not_active Withdrawn
- 2005-04-04 TW TW094110693A patent/TWI401936B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1106187A (zh) * | 1994-01-31 | 1995-08-02 | 陈寿峦 | 由白炽灯、电子线路和特种荧光灯组成的一体化电光源 |
EP0778518A1 (fr) * | 1995-12-04 | 1997-06-11 | STMicroelectronics S.A. | Procédé de production d'un paramètre J0 associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery |
US6199162B1 (en) * | 1997-09-17 | 2001-03-06 | Frank C. Luyster | Block cipher method |
US6536016B1 (en) * | 2000-07-27 | 2003-03-18 | Lsi Logic Corporation | Method and apparatus for locating constants in combinational circuits |
Non-Patent Citations (4)
Title |
---|
BEHROOZ PARHAMI.Computer Arithemetic.《Computer Arithemetic,2000》.OXFORD UNIVARSITY PRESS , NEW YORK OXFORD,2000,第114-第120页全文. |
BEHROOZ PARHAMI.Computer Arithemetic.《Computer Arithemetic,2000》.OXFORD UNIVARSITY PRESS, NEW YORK OXFORD,2000,第114-第120页全文. * |
R. RIVEST.RFC 1321- The MD5 Message Digest Algorithm.《[Online]URL:http://www.faqs.org/rfcs/rfc1321.html》.MIT LABORATORY FOR COMPUTER SCIENCE AND RSA DATA SECURITY, INC.,1992, |
RFC 1321- The MD5 Message Digest Algorithm;R. RIVEST;《[Online]URL:http://www.faqs.org/rfcs/rfc1321.html》;MIT LABORATORY FOR COMPUTER SCIENCE AND RSA DATA SECURITY, INC.;19920430;全文 * |
Also Published As
Publication number | Publication date |
---|---|
KR101147520B1 (ko) | 2012-05-21 |
KR20060133072A (ko) | 2006-12-22 |
TW200541287A (en) | 2005-12-16 |
WO2005101728A1 (en) | 2005-10-27 |
DE112005000776T5 (de) | 2007-02-22 |
GB2429615A (en) | 2007-02-28 |
JP4754555B2 (ja) | 2011-08-24 |
CN1965524A (zh) | 2007-05-16 |
US20050226409A1 (en) | 2005-10-13 |
GB0620264D0 (en) | 2006-11-22 |
TWI401936B (zh) | 2013-07-11 |
JP2007532082A (ja) | 2007-11-08 |
GB2429615B (en) | 2008-08-20 |
US8526601B2 (en) | 2013-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11308026B1 (en) | Multiple busses interleaved in a systolic array | |
CN107967228B (zh) | 用于对总线进行布线的计算系统及方法以及布线系统 | |
WO2003091872A1 (fr) | Dispositif de tri par fusion en parallele, procede et programme y relatifs | |
US4817029A (en) | Multiple-precision Booth's recode multiplier | |
CN106295670A (zh) | 数据处理方法及数据处理装置 | |
Arun Sekar et al. | Implementation of FIR filter using reversible modified carry select adder | |
CN1965524B (zh) | 增进加密引擎的操作速度的方法 | |
CN110502799B (zh) | 一种芯片引脚自动化配置方法与装置 | |
US4389723A (en) | High-speed pattern generator | |
CN114153808A (zh) | 一种基于秘密分享的排序方法和系统 | |
JP4255475B2 (ja) | データ駆動型情報処理装置 | |
CN105515761B (zh) | 一种高速多模式循环移位的电路 | |
WO1994012928A1 (en) | Enhanced fast multiplier | |
US20130018933A1 (en) | Data Shifter and Control Method Thereof, Multiplexer, Data Sifter, and Data Sorter | |
Zhang et al. | Application of 3D DNA self-assembly for graph coloring problem | |
CN105260334A (zh) | 仲裁和多路复用电路系统 | |
CN110598175B (zh) | 一种基于图计算加速器的稀疏矩阵列向量比较装置 | |
JP7004083B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JPH08153129A (ja) | 再利用容易化装置 | |
JPS62237523A (ja) | ソ−テイング回路 | |
EP1099159A1 (en) | Layered counterflow pipeline processor with anticipatory control | |
Lai et al. | Triangulation on reconfigurable meshes: a natural decomposition approach | |
CN100428666C (zh) | 一种密码芯片密钥快速更换方法 | |
SU1649545A1 (ru) | Устройство дл предсказани четности результата сдвигател | |
JPH07191830A (ja) | 演算装置 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141029 Termination date: 20150328 |
|
EXPY | Termination of patent right or utility model |