密码处理器的制作方法

文档序号:6475848阅读:205来源:国知局
专利名称:密码处理器的制作方法
技术领域
本发明关于密码技术,尤其是关于密码应用的密码处理器。
随着非现金金钱交易,经由公众网络的电子数据传输,经由公众网络的信用卡号码的交换,以付款,识别或存取为目的之所谓智能卡的使用等的用途的广泛增加,存在着密码技术需求的增加。密码技术一方面包括密码算法,另一方面包括执行由密码算法所指定之计算的合适处理器解决方案。在以前,当密码算法藉由一般目的计算器而被执行时,关于不同的外部攻击者的成本,计算时间需求以及安全性并未扮演如今日般的重要角色,其中密码算法为特定需求而逐渐在芯片卡上或特定安全ICs上执行。因此,在另一方面,随着智能卡的大量生产,此种智能卡必须以具有成本效益的方式而可被利用,然而,另一方面,它们必须对外部攻击者展示高度的安全性,当它们完全受控于潜在攻击者的情况下。
此外,密码处理器必须提供相当的计算能力,尤其是因为许多密码算法,例如已知的RSA算法,的安全性基本上系依据所使用的键(key)的长度而定。换句话说,这表示,以增加的被处理数目的长度,安全性也随之增加,因为基于尝试所有可能性的攻击因为相关计算时间的理由而变得不可能。
如图式中所表示,这表示密码处理系统必须处理可能具有长度为,例如1024位(bit),2048位或甚至更多,的整数。相较之下,典型的PC处理器处理32位或64位整数。
然而,高度的计算消耗也表示大量的计算时间,因此密码处理器的必要需求是同时达成高度的计算处理量(throughput),因此,例如,识别,对建筑物的进出,付款的交换或信用卡的传输不需花费太多时间,这对市场接受度有绝对的决定性。
综言之,因此,可以说明密码处理器必须是机密的,快速的,且因此具有高性能。
一种经由处理器增加处理量的可能性是提供具有一或多个平行工作的共同处理器(co-processors),例如现代的PC或图形卡的情况。此种方案被描述于图七图七表示一种计算机电路板800,于其上设置一CPU 802,一随机存取内存(RAM)804,一第一共同处理器806,一第二共同处理器808以及一第三共同处理器810。CPU 802经由总线812与三个共同处理器806,808,810连接。此外,每一共同处理器可被具有其本身的内存,其仅为该共同处理器之运作服务,亦即,共同处理器1的内存1 814,共同处理器2的内存2 816,共同处理器3的内存3 818。
此外,图七所示之设置于计算机电路板800上的每一芯片经由其本身的电流及/或电压供应端I1-I8被提供独立组件内之电子零件执行功能所需的电源。另外,仅存在一个电路板用的供应电源,该电源随后横越电路板被分布至电路板上的个别芯片。然而,于此情况中,导引至个别芯片的电源线可被攻击者所利用。
图七所示之典型的计算机应用,由于许多理由,对于密码处理器而言是适合的。另一方面,所有短整数算术用的组件被列出,然而,密码处理器必须执行长整数运算。
此外,计算机电路板800上的每一芯片具有其本身的电流及/或电源存取,其可能快速地被攻击者存取,以便释放做为时间函数之功率轮廓(taping off power profile)或电流轮廓。释放做为时间函数之功率轮廓是大多数对密马处理器有效率攻击的基础。各种对于密码处理器攻击的进一步背景细节及/或更详细的描述参见2000年13日至15日的Eurosmart Security Conference,Hess等人的「Information Leakage Attacks Against Smart CardImplementations of Cryptographic」。做为对抗的手段,已提出基于不同的操作总是需要相同时间的基础的实施方式,因此攻击者不能从一电源轮廓决定密码处理器是否已执行乘法,加法或其它运算。
2000年13日至15日的Eurosmart Security Conference,Hess等人的「Design of Long Integer Arithmetical units forPublic-key Algorithms」描述必须由密码处理器执行之不同计算运作的细节。特别是描述如德国DE 36 31 992 C2专利之模(modular)乘法,模降低方法以及所谓的ZDN方法。
ZDN方法是以使用先看(look-ahead)算法之串行/平行架构为基础,其可为乘法及模降低而平行执行,因此将二进制数的乘法转换为使用乘法及模降低用之先看参数之叠代(iterative)三操作数(operand)加法。因此,模乘法被分解为一串部份乘积的运算。在叠代的开始,形成二部份乘积,且之后在模降低的考虑下加在一起以便获得中间结果。之后,再次形成另一个部份乘积,其于模降低的考虑下被加到该中间结果。此叠代持续进行直到所有乘数的数目皆被处理完成为止。为三操作数加法而言,密码处理器包括加法单元,其于流动的叠代步骤中执行新部份乘积至处理中之叠代步骤之中间结果的相加。
因此,图七的每一共同处理器可具有其本身的ZDN单元,以便平行执行数个模乘法,因而增加特定应用的处理量。然而,此解决方案将因为攻击者可能能够决定每一个别芯片的电流轮廓的事实而不成功,因此处理量的增加确已达成,然而,是在增加密码计算机安全性成本的情况下。
本发明之目的在于提供一种快速及机密的密码处理器。
本发明藉由申请专利范围第一项之密码处理器而达成。
本发明系基于发现快速的密码处理器可仅于密码计算运算被分解为次运算时以及当这些次运算藉由被平行设之次单元运算时达成。另一方面,安全性,尤其是电源拦截的攻击,可以仅藉由当所有计算次单元,包括计算次单元的控制单元及中央处理单元被设计在单一芯片上时达成,因此个别组件的电源存取将不会被外部攻击者所利用。
换句话说,中央处理装置及具有单一控制单元及复数计算次单元的共同处理器被集积于单一芯片上。此外,此单一芯片仅展示提供复数计算次单元,控制单元以及中央处理单元用之电流的单一电源存取。
将这些组件集积于单一芯片上并提供此芯片电源电流存取产生与计算次单元相关的电流轮廓与密码处理器的电流端重叠在一起的优点。如果,例如,二计算次单元平行工作,此二计算次单元的电流轮廓重叠在一起,因此攻击者很难藉由电源供应的轮廓决定那一运算同时由二计算次单元以及以那些数目执行。如果计算次单元的数目增加,单一电源端之电流轮廓均一地增加。然而,由于以并行计算次单元的增加数目而增加的平行处理,处理量也提升,因此,在所发明的概念中,安全性也随着处理量的增加而上升。在习知技术中则非此种情况,相反地,安全性将随处理量的增加而降低。
当与分割计算次单元中之次运算相关以及与驱动个别计算次单元相关之控制单元见到强烈的增加时,可以达成平行处理的限制。然而,对于相当长期间的运算,例如二个极长整数的乘法,计算次单元中的计算时间与组织及管理工作用之控制单元的时间的比例很高,因此并行计算的合理程度可以达成,不需要消耗疑难的管理工作。
然而,并行计算的程度是需要的,以便增加足够的处理量,因此,在逻辑模块以及内存模块在集积于相同芯片时发生的逻辑单元的速度损失,可以获得补偿。通常,此意图是在于设计逻辑模块及内存模块于分离的芯片上,因为此二模块的技术不同。换句话说,用以产生逻辑模块的计忆体模块的内存技术不允许与特别适用于逻辑模块之技术所产生之逻辑模块一样快速的逻辑模块。因此,在不同共同处理器之简易平行连接之例中,如图七所示,内存及计算单元总是被设计在不同模块。
然而,很确实的是攻击者不能拦截对高安全性而言很重要的计算单元与缓存器(register)之间的通信。
本发明之较佳实施例将参照所附图
式而被详细说明,其中第一图表示集积于单一芯片上之本发明之密码处理器;第二图表示展示具有不同长度缓存器之计算次单元之共同处理器之更多细节;第三图表示适用于三操作数加法之计算次单元之更多细节;第4a图表示串行/平行方式之执行模乘法之流程图;第4b图表示使用乘法范例之计算单元之运算的串行/平行模式的数目范例;第五图表示将一模指数法(exponentiation)分割为数个模乘法之范例;第六图表示在不同计算次单元中分割一模乘法之另一范例;第七图表示具有复数电源模块之点脑电路板。
在详细描述个别图式之前,以下将详细说明为何藉由平行连接数个设置于一芯片上之次单元且由设置于相同芯片上之一控制单元驱动可以达到较高的安全性。
密码处理器系用于安全方面重要的应用,例如数字签字,授权,或加密工作。例如,攻击者希望找出机密键以便破解密码方法。密码处理器被使用于芯片卡中,例如已经揭露过的,包括法律上结合的电子签字,家庭银行或以行动电话付款用等等之智能卡或签名卡。另一种方式是,此种密码处理器也被使用于计算机中,并且被当成安全ICs使用,以便直行授权或能够执行加密工作,其可包含例如,经由网际网络,在所谓的SSL期间(SSL=Secure Socket Layer)的安全付款,亦即,安全地传输信用卡号码。
典型的实体攻击测量电流消耗(SPA,DPA,时间攻击)或电磁幅射。就有关的攻击的进一步解释,将参考一开始提及的文字片断。
因为今日半导体技术达到一般250纳米(nanometer)或更小范围的结构,使得攻击者很难执行区域的电流测量,这一般是整个芯片卡得电流消耗,包括CPU及共同处理器,由,例如,CPU,ROM,E2PROM,闪存,时间控制单元,随机数产生器(RNG),DES模块,以及密码共同处理器之个别的电流消耗的总合所构成,其于一攻击中被测量。
因为密码共同处理器通常展现最高的电流消耗,攻击者可以看见密码共同处理器开始计算的时候。为避免这样的请况,目标将是让电流消耗在任何时间完全保持固定;攻击者将不再发现密码共同处理器开始计算的时候。即使不能达成此理想的目标,目的将是藉由平行连接计算次单元达成尽可能均匀的噪声并使其集中在一平均值。
在,例如CMOS技术中,所产生的芯片的电流消耗于切换中从”0”改变到”1”。因此,电流消耗系基于数据及CPU所使用的指令以及密码共同处理器。
如果数个计算次单元被平行连接且如果令它们平行处理数个运算或次运算,或如果一个运算被分布在多个次单元之中,从数据及指令处理所产生的电流的轮廓将重叠,如已经讨论的内容。
越多的计算次单元一起平行工作,越难推论个别计算次单元及/或控制单元中的数据及指令,因为每一计算次单元中的数据及指令一般会不同,而攻击者将只看到不同指令的重叠。
图一表示执行密码应用之本发明的密码处理器。此密码处理器被设置于一单一芯片100之上并包括一中央处理器(CPU)102以及一共同处理器104。共同处理器104,如图一所示,被设置于与中央处理单元102相同的芯片上。此共同处理器包括复数计算次单元106,108,110及112,每一计算次单元106至112包括其本身的算术单元AU。较佳者,每一次计算单元106至112包括,除了AU之外,有至少一缓存器(REG)以便能够储存中间乘积,如同参照图二所解释者。
典型的密码处理器包括输入接口114及输出接口116,其为资料之输入及输出而与分别外部端点以及CPU 102连接。通常,CPU 102具有其本身的内存118,其由图一中的RAM所指示。在其它方面,密码处理器也可包括一时脉产生器120,其它内存,随机数产生器等等,其并未被表示于图一。
应指出的是,在图一中所指出的所有组件被设置于单一芯片上,并由单一电流供应端122供应电源。芯片100内部包括引导至所有图一所示组件之电流供应线,其因上述之理由而无法被个拦截。相反地,可以容易地拦截电流供应端122的电流。不像图七所示之每一个别组件之电流供应端很容易被拦截,且因此具有极”有特征”的电流轮廓的电路板,在电流供应端122的电流轮廓几乎固定及/或展现尽量均一之环绕一固定值得噪声。这是因为贡献大部份电流消耗之共同处理器104展示复数平行设置的计算次单元,其,例如,独立地从”0”切换至”1”,因此互不关联地消耗电流的事实。
个别计算次单元的平行连接导致密码处理器之处理量可增加的事实,因此,在芯片上内存实施的情况中,伴随的由于内存及计算单元所使用之不同技术所造成的速度损失可被补偿。
依据本发明之较佳实施例,二或多个计算次单元可被结合以形成所谓的串(cluster),因此,例如,第一串执行第一运算的次运算,而第二串执行第二密码运算的次运算。因此,例如,包括计算次单元106及108之第一串可以执行每一情况之一半长度的二模指数法,其系从整体长度之单一模指数法所导出,而包括计算次单元110及1112之第二串可执行如图六所示之模乘法。
另一种情况是,一个串可以执行RSA运算,而另一串执行一DES运算,而又一个串计算,例如,杂乱总合(hash sum)。
此处应该解释的是所提及之密码算法已于文献中为人所知,且因此不再解释任何的细节。应该同时指出的是,仅以例示方法指出,例如,处理长度为2048之RSA密码操作数。在解密中,藉由中国余数理论(Chinese Reminder Theorem,CRT)可以以长度的一半以及二次运算工作。如果一密马处理器仅为此种算法而设计,计算次单元的数目为2,且算术单元的长度将仅为1024,而非在单一算术单元中的2048。依据中国余数理论的次运算被平行处理,且因此由空制单元控制,在计算次单元中的一个被结合,以获得结果。
图二说明图一所示之共同处理器104之较详细的表示。除了算术单元106a之外计算次单元106包括,例如,三个缓存器106b,106c,106d。同样的,计算次单元108包括算术单元108a以及,例如三缓存器108b,108c,108d。对计算次单元112也是相同的情况。如图二所示,计算次单元之缓存器的长度可以和不同计算次单元之缓存器的长度不同,因此长度L1之数的运算可以由例如,计算次单元106执行,而长度L2的数的运算可以由计算次单元108执行。
例如,控制单元105可以进一步驹动二计算次单元106及102因此算术单元AU1及AU2以随后形成一串之二计算次单元将执行长度为L1+L2之数的运算的方式互相耦合。因此,二计算次单元之缓存器可互相连接。
另一方式是,计算次单元可以专属地被指定缓存器的数目,该数目够大以便让操作数满足数个次运算,例如模乘法或模指数法。为避免信息漏出,次运算随后可被重叠或甚至随机混合,例如藉由变化相同的次序,由图二的200所指示,以便达到电流轮廓的进一步隐藏。这是特别有利的,当,例如仅存在二计算次单元及/或仅二个计算次单元在工作而密码处理器的其它计算次单元同时处于闲置的情况时。
依据本发明之较佳实施例,控制单元105更包括一装置,未表示于图二中,用以于不需要时关闭计算次单元及/或计算次单元的缓存器,尤其是对于电池驱动应用时,以便节省整体电路的电流消耗。即使CMOS模块仅于切换进行时需要相当的电流量,它们也展示关闭的电路电流消耗,其于可用电源受限时变得有意义。
如已经解释的内容,由于必须处理的长数目,密码处理器显示如图4a及4b所示之例如串行/平行乘法的次运算需要相当大量的时间的特性。较佳者,计算次单元被实施,以便它们在控制单元以经提供足够的指令给计算单元之后,能够执行此种独立次运算而不需要控制单元105部份的介入。为达成此目的,计算次单元通常需要储存中间结果的缓存器。
由于计算次单元在没有动指单元105之输入的情况下工作一段相当长的时间的事实,此控制单元105可以提供复数具有序列形式,亦即一个接一个,之必要指令的独立计算次单元,因此所有计算次单元平行工作,然而,以交错的方式,亦即一个与另一个相关。
举例而言,第一计算次单元在特定时间点被驱动。一旦控制单元105已完成第一计算次单元的驱动,其立刻驱动第二计算次单元,而第一计算次单元已开始工作。第三计算次单元将被驱动一旦第二计算次单元的驱动完成后。这表示在第三计算次单元驱动期间,第一及第二计算次单元已经在计算。如果对所有n个计算次单元执行这样的情况,所有计算次单元于时间交错的方式中工作。如果所有的计算次单元以其次运算花费相等时间的方式工作,第一计算次单元将首先完成。现在,控制单元可以传输来自第一计算次单元之结果给中央处理单元,且理想状况下在第二计算次单元完成之前完成此传输。因此,处理量可大幅增加,同时达成控制单元105之计算容量之最佳利用。如果所有的计算次单元执行相同的运算,将产生强烈的隐藏电流轮廓,因为所有的计算次单元在时间交错的方式中运作。如果所有的计算次单元在相同的时间被控制单元驱动并工作,亦即完全同步,情况将会不同。然后,将产生非隐藏的电流轮廓,甚至是加强的电流轮廓。因此,连续驱动计算次单元与密码处理器之安全性而言是有利的。
以下将处理图三,其表示执行三操作数加法,如同以图三右侧所示之公式所指,的装置。图三右边的公式表示加法及减法被相等执行,因为一操作数必须简单地被乘上因子”-1”以获得一减法。三操作数加法藉由以不具有进位(carry),亦即,一半加器(half adder),的三位加法器以及以一进位,亦即全加器(full adder),之下游二位加法器而被执行。或者是,也可能有当仅有操作数N,仅有操作数P或没有操作数将被加至或从操作数Z减去的情况。在图三,这藉由正/负符号下方的”0”表示,并且由图4a所示之每一叠代步骤中重新进行之所谓的先看参数,a1,b1表示。
图三表示此种加法单元之所谓的位切片(bit-slice)。对于,例如,具有1024数字位置的三个数的加法而言,图三所示之设计将在完整平行运算之计算单元106之算术单元中出现1024次。
在本发明之较佳实施例中,每一计算次单元106至112(图一)被设计成使用DE 36 31 992 C2所述之先看算法执行模指数法。
需要执行此运算的模乘法参照图4b解释。此工作是二进制(binary)数”111”与”101”相乘。此时,此乘法于一计算次单元中执行,藉由模拟依据已知的「正统数学」之二数的乘法,但以二进制数表示。以下,不使用先看算法及模降低的情况将为简便表示之故而被考虑。当此算法被执行时,第一部份乘积”111”将先被产生。此部份乘积随后将被向左移动一位置,以便考虑其意义。在第二叠代步骤中,第二部份乘积”000”将被加到已向左偏移之第一部份乘积,且可被视为第一叠代步骤中之一中间结果。此加法的结果随后将再次向左偏移一位置。此加法偏移后的结果随后是被更新的中间结果。部份乘积”111”随后被加到该更新后的中间乘积。所获得的结果将是乘法的最后结果。可以看见乘法已被分为二加法以及二偏移运算。
进一步可见的是,当乘数的位置被认为是二进制”1”时,被乘数代表该部份乘积。然而,当乘数的位置被认为是二进制”10时,此部份乘积是0。此外,部份乘积的位置及/或原子价(有效位)(valencies(significancies))经由个别偏移运作而被考虑。在图4b,这是藉由部份乘积的交错描绘而表示。以硬件而言,图4b的加法需要二个缓存器Z1,Z2。第一部份乘积可以被储存在缓存器Z1,且之后在此缓存器中向左偏移1位。第二部份乘积可以被储存在缓存器Z2。中间总合随后可再被储存在缓存器Z1,且之后再向左偏移1位。第三部份乘积可以被储存在缓存器Z2。最后结果随后将在缓存器Z1中发现。
显示于图4b之此方法之流程可以在图4a中发现。一开始,出现在计算次单元中的缓存器在步骤S10中被初始化。接着,在初始化之后,在步骤S12执行三操作数加法,以计算第一部份乘积。应指出的是,对图4b所示之例中,其代表不具有模运算的乘法,图S12所指的程序将仅包括Z,a1,及P1。a1可以表示第一先看参数。在简单的实施中当所考虑的乘数O为1时,a的值为1。所考虑的乘数O为0时,a的值为0。
方块S12所表示的运算为所有,例如1024位,执行。之后,在步骤S14在最简单的情况中执行向右偏移一位置的运算,以考虑第二部份乘积的最大有效位(most significant bit)比第一部份乘积之最大有效位低。如果乘数O的数个连续位显示为0,则向右偏移数个位置。最后,平行三操作数加法在步骤S16再次被执行,例如使用图三所示的加法器链。
此程序被继续直到所有,例如1024部份乘积已被加总为止。串行/平行也表示方块S12或S16中的平行执行以及串行处理,以便结合所有的部份乘积与其它连续的每一乘积。
在下文将参考图五至七以提供一运算如何被分为数个特定运算的例子。考虑图五中的xdmod N的运算。为分解此模指数法,指数d以二进制指示被表示。如图五所示,这产生模乘法之一链,其中,同样如图五所示,每一个别模运算可以分别被指定一计算次单元,因此所有的模运算藉由图一所示的密码处理器被平行运算。所获得的中间乘积随被乘,在它们已被平行决定之后,以便获得此结果。于此过程中,控制单元105控制个别计算次单元TRW1至TRWk之中的分割,以及之后个别中间结果的最终相乘。
另一个(a*b)mod c至数个模运算之运算的分割表示于图六。再次,计算次单元TRW1可以决定一第一中间结果。计算次单元TRW1至TRWn也计算中间结果,之后,在获得中间乘积之后控制单元105控制中间结果的乘法。例如,此控制单元控制以选择随后将接收加总用之结果之计算次单元的方式控制加总。这表示,此处之运算也被分割为数个互相独立的运算。
应指出的是,有许多分割一或其它运算为次运算的可能。图五及六所示的例子仅为说明将一运算分割为复数次运算的可能性,可以存在与达成效能有关之更适合的分割。因此,此范例重要的不在于处理器的性能,而是分割存在因此每一计算次单元执行独立的次运算的事实,以及复数次运算被一控制单元控制,以便在进入芯片之电流输入,获得尽能可隐藏的电流轮廓的事实。
参考标号表
100 芯片102 CPU104 共同处理器105 控制单元106 计算次单元1108 计算次单元2110 计算次单元3112 计算次单元n114 输入接口116 输出接口118 RAM120 时脉产生器122 电流提供端106a 算术单元1106b 缓存器1106c 缓存器2106d 缓存器3108a 算术单元2108b 缓存器1108c 缓存器2108d 缓存器3200 变化次序的装置800 计算机电路板803 CPU804 第一共同处理器806 第二共同处理器808 第三共同处理器810 总线812 内存1814 内存2816 内存3I1-I8 电流供应端
权利要求
1.一种密码处理器,用以执行密码应用之运算,包括一中央处理单元(102),用以获得执行一运算以及输出一运算之结果用之指令;一共同处理器(104),耦合至该中央处理单元(102),该共同处理器包括复数计算次单元(106,108,110,112),每一计算次单元包括至少一算术单元(AU1,AU2,AU3,AUn);以及一单一控制单元(105),耦合至每一该复数计算次单元,并用以将一运算分割为次运算,以便分布该复数计算次单元之中的次运算并藉由该复数计算次单元控制该运算之执行,该复数计算次单元(106,108,110,112)以及该控制单元(105)系集积于一单一芯片(100)上,以及该芯片(100)包括一共同提供电流存取(122)用以提供电流给该复数计算次单元以及该控制单元。
2.如申请专利第1项之密码处理器,其中该密码应用之运算包括一模指数法及/或一模乘法。
3.如申请专利第1或2项之密码处理器,其中每一计算次单元被设计以处理具有至少512数目之二进制数,且最好是至少1024或2048位数。
4.如前述申请专利范围任一项之密码处理器,更包括仅与该中央处理装置(102)相关之一内存(118)。
5.如前述申请专利范围任一项之密码处理器,更包括以下一时脉产生装置(120)用以传递一时脉至该处理装置(102),该复数计算次单元,以及该控制单元(105),该时脉产生装置也被集积于该单一芯片上。
6.如前述申请专利范围任一项之处理器,其中每一计算次单元更包括复数缓存器(106b,106c,106d,108b,108c,108d)专属指定给该个别计算次单元之算术单元(106a,108a)。
7.如申请专利第6项之密码处理器,其中被指定给一计算次单元之复数缓存器之长度(L1,L2),以及与其它计算次单元相关之复数缓存器之长度不同,因此该计算次单元可以执行每一情况中不同长度数目的算术计算。
8.如申请专利第6或7项之密码处理器,其中与一计算次单元相关之缓存器之数目是足够的以便维持至少二次运算的操作数域,因此对于至少二次运算不需要共同处理器(104)与中央处理装置(102)之间的操作数转移。
9.如申请专利第8项之密码处理器,其中该控制单元(105)更包括一装置(200)用以在时间方面控制该等计算次单元之运算,因此该至少二次运算之次序,储存于一计算次单元之缓存器中之运算是可调整的。
10.如申请专利第6至9项任一项之密码处理器,更包括一装置,用以关闭一计算次单元,如果控制装置决定没有该计算次单元之次运算存在的话,以便降低该处理器的电流消耗。
11.如前述申请专利范围任一项之密码处理器,其中该控制装置(105)被设计以结合至少二计算次单元为一串,因此一次运算被指定给该串,因此该次运算可藉由该串之该等计算次单元一起被执行
12.如申请专利第6至11项任一项之密码处理器,其中每一计算次单元包括由该算术单元数目宽度所指定之之字符(word)长度,且其中该控制单元(105)被设计以便以互相连接的计算次单元可执行字符长度等于互相连接计算次单元之数目宽度总合之计算的方式与至少二计算次单元连接。
13.如前述申请专利范围任一项之密码处理器,其中该至少一计算次单元之算术单元包括一串行/并行计算单元,使计算之数目于一循环中被平行执行,该数目等于计算中使用之一数目的位数,且与第一循环相同的计算于一不同.,稍后的循环中使用该循环之结果以串行方式被执行。
14.如申请专利第13项之密码处理器,其中该计算次单元系由一模乘法而实施,以便于一循环中加一部份乘积至前一循环之一结果,并于另一循环中加该最后循环之结果至一下一部份乘积。
15.如申请专利第14项之密码处理器,其中该算术单元包括模乘法之一三操作数加法器,该三操作数加法器包括以下一处理中之数目之每一位数一半加器,用于不进位之加法,具有三输入及二输出;以及一下游全加器,具有二输入及一输出。
全文摘要
一种密码处理器,包括一中央处理单元及一共同处理器,该共同处理器包括复数计算次单元以及一单一控制单元耦合至每一该复数计算次单元。一密码运算以次运算之形式被该控制单元分布于该复数计算次单元之中。该中央处理单元,该复数计算次单元以及该控制单元系集积于一单一芯片上,该芯片包括一共同提供电流存取(122)用以提供电流给该复数计算次单元以及该控制单元。由于平行的计算次单元的设计,一方面,密码处理器的处理量增加。但另一方面,可能在供应电流存取被侦测之电流轮廓是随机的,其程度达到一攻击者不再能够推断个别计算次单元中处理的数目。
文档编号G06F21/72GK1481524SQ01820565
公开日2004年3月10日 申请日期2001年12月6日 优先权日2000年12月13日
发明者A·埃尔贝, A 埃尔贝, H·塞德拉克, 吕, N·詹森 申请人:因芬尼昂技术股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1