密码处理器的制作方法

文档序号:7669522阅读:198来源:国知局
专利名称:密码处理器的制作方法
技术领域
本发明关于密码技术,尤其是关于密码应用所使用的密码处理器。
随着非现金金钱交易,经由公众网络的电子数据传输,经由公众网络的信用卡号码的交换,以付款,识别或存取为目的之所谓智能卡的使用等的用途的逐渐出现,存在着密码技术需求的增加。密码技术一方面包括密码算法,另一方面包括执行由密码算法所指定之计算的合适处理器解决方案。与往日相较,当密码算法藉由一般目的计算机而被执行时,关于不同的外部攻击者的成本,计算时间需求以及安全性并未扮演如今日般的重要角色,其中密码算法为特定需求而逐渐在芯片卡上或特定安全ICs上执行。因此,在另一方面,随着智能卡的大量生产,此种智能卡必须以具有成本效益的方式而可被利用,然而,另一方面,它们必须对外部攻击者展示高度的安全性,当它们完全在潜在攻击者力量的情况下。
此外,密码处理器必须提供相当的计算能力,尤其是因为许多密码算法,例如已知的RSA算法,的安全性基本上系依据所使用的键(key)的长度而定。换句话说,这表示,以增加的被处理数目的长度,安全性也随之增加,因为基于尝试所有可能性的攻击因为相关计算时间的理由而变得不可能。
以数目值的形式表示,这表示密码处理系统必须能够处理长度可能为,例如1024位(bit),2048位或甚至更多,的整数。相较之下,习知的PC处理器处理32位或64位整数。在使用椭圆曲线之计算的情况中较低数值的位置在160位置的范围内,然而,这依然明显超过习知PC中的位置数目。
然而,高度的计算消耗也表示大量的计算时间,因此密码处理器的必要需求是同时达成高度的计算处理量(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等人的「InformationLeakage Attacks Against Smaft Card Implementations ofCryptographic」。所提出的对策是基于不同的操作总是需要相同时间的基础的实施方式,因此攻击者不能从一电源轮廓决定密码处理器是否已执行乘法,加法或其它运算的事实。
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单元,以便平行执行数个模乘法,因而增加特定应用的处理量。然而,此解决方案将因为攻击者可能能够决定每一个别芯片的电流轮廓的事实而失败,因此处理量的增加确已达成,然而,是在增加密码计算机安全性成本的情况下。
WO 99/39745 A1文件揭露一种密码系统,包括一连接器,一总线接口以及其上一处理板,该处理板上设置有一密码处理器,可再组态(reconfigured)之共同处理器,二密码处理器,一RAM内存以及一EE内存。处理板上之密码处理器更被提供一电池。
美国第6,101,255号专利揭露一种可程序的密码处理系统,包括一键管理密码处理器,一密码控制以及具有一可程序密码处利器及一可组态密码处理器之一程序化处理器。所有被提及的组件被集积于一单一芯片上。键管理的安全性已经由于集积性而被获得,因为可被攻击者发现的结构是处于次微米的范围内。此外,提供一种使芯片表面上的图案恶化之保护的覆盖以便发现讯号。
本发明之目的在于产生一种快速及机密的密码处理器。
本发明藉由申请专利范围第一项之密码处理器而达成。
本发明系以必须脱离提供平行密码运算的习知方法的发现为基础。依据本发明之密码处理器被实施于一单一芯片上。复数共同处理器经由一总线被连接至一中央处理单元,所有的共同处理器具有来自一共同电源供应端之电源供应。因此可能可以使攻击者很难仅是,或完全不能藉由在电源供应端的电源轮廓「抽取」个别处理器的运算。为增加密码处理器的处理量,共同处理器经由总线被平行连接至中央处理单元,因此一算术运算可藉由中央处理单元(CPU)被分布到个别的共同处理器。
较佳者,有许多不同型态的共同处理器被集积在该单一芯片上,因此该密码处理器可被当成多功能的密码处理器利用。换句话说,这表示,一共同处理器或一群共同处理器分别是为了不对称的加密(encryption)处理,例如RSA算法,而设计。再次,所提供之密码共同处理器执行例如,DES加密处理,所需的算术运算其它的共同处理器或数个额外的共同处理器构成,例如,能够执行对称加密处理之AES模块,而其它共同处理器构成,例如计算杂凑数值(Hash value)的杂凑模块。于此方式中可获得机密的多功能处理器,当包括对应数目之密码共同处理器可为许多不同加密处理而被利用时。此种多功能密码处理器在许多种应用中尤其有用,例如,在网际网络中,达成让一服务器能够执行许多不同加密工作的效果。
然而,多功能对于智能卡也是有益处,尤其是当不同的加密概念平行存在或变得一般的时候。因此,如果与不同的智能卡执行不同运算的概念相较之下,智能卡能够执行许多不同功能,其将能够在市场上获得成功,因为智能卡的持有者只要能够在他的皮夹内放置单一智能卡,而不需要,例如,10种不同应用的10张智能卡。
此外,依据本发明的密码处理器不仅能够提供多功能性,还能提供较高安全性。此较高的安全性可以称为多功能性的「浪费产物」,因为不同的密码算法具有不同的运算,且因此,不同的功率轮廓。即使在一时间只有一密码共同处理器执行一同型态的算法且其它的密码共同处理器休息,因为它们并未被寻址,具有对攻击者的额外障碍,于攻击者能够分析各别功率轮廓之前,其必须先找出于该时间有那一特定型态的算法被驱动。情况对攻击者而严变得更加困难,如果有二个共同处理器平行运算的话,当二个完全不同型态的算法的功率轮廓随后在共同电源供应端上被相互重叠的时候。
此方案原则上总是能够被获得,当共同处理器被设计成使一种密码共同处理器的型态执行所谓的「哑」运算,即使只有一单一共同处理器型态被寻址。如果此「哑」共同处理器偶然被选择,对攻击者而言将依然难以发现「有用的」密码处理器算法的参数,因为他不知道,即使总是执行相同的有用算法,其它模块在特定的时间运算。安全性因此随着密码处理器上之不同密码共同处理器的数目而增加。
本发明之较佳实施例将参照所附图
式而被详细说明,其中第一图表示依据本发明集积于单一芯片上之密码处理器;第二图表示由一CPU控制之复数个别共同处理器之更多细节;第三图表示适用于三操作数加法之算术单元之更多细节;第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以及复数共同处理器104a,104b,104c。共同处理器,如图一所示,被设置于与中央处理单元102相同的芯片上。每一共同处理器包括其本身之一算术单元。较佳者,每一共同处理器104a,104b,104c,除了算术单元之外,包括至少一缓存器(REG)以便能够储存中间结果,如同参照图二所解释者。
典型的密码处理器包括输入接口114及输出接口116,其为资料之输入及输出而分别与外部端点以及CPU 102连接。通常,CPU 102具有其本身的内存118,其由图一中的RAM所指示。在其它方面,密码处理器也可包括一时脉产生器120,其它内存,随机数产生器等等,其并未被表示于图一。
应指出的是,在图一中所指出的所有组件被设置于单一芯片上,并由单一电源供应端122供应电源。芯片100内部具有连接所有图一所示组件之电源供应线,然而,其因上述之理由而无法被个别抽取。
相反地,可以容易地抽取电流供应端122的电流。不像图七所示之每一个别组件之电流供应端很容易被抽取,且因此具有极「有特征」的电流轮廓的印刷电路板,在电流供应端122的电流轮廓几乎固定或包含尽量均一之环绕一固定值的噪声。这是因为贡献大部份电流消耗之共同处理器104a,104b,104c在互相对应控制或对应实施中个别地从”0”切换至”1”,因此以互不关联的方式消耗电流的事实。
此外,个别共同处理器的平行连接导致密码处理器之处理量可被增加的事实,因此,在芯片上内存施的情况中,由于内存及算术逻辑单元所使用之不同技术所造成的损失可被补偿。
如已经指出之说明,图一的密码处理器包括一CPU 102经由总线101连接共同处理器104a,104b,104c。依据本发明,在共同电源供应端122之电源轮廓的均匀性已经藉由二互相分离,个别于密码处理器104a及104b的电源供应端而达成。如果二密码处理器104a及104b是不同的设计,亦即,每一者能够执行算术运算的不同部份的运算或具有不同密码算法,例如非对称加密处理(如RSA),对称加密处理(DES,3DES或AES),计算杂凑数值(Hash value)之杂凑模块(HashModule)及类似运算,的算术逻辑单元。如果复数密码共同处理器为Bach算法型态而被平行连接,处理量可以增加。例如,图一表示用以设计执行例如,RSA算法之运算,的密码共同处理器。图一的第二共同处理器线表示n2完全,个别的密码共同处理器,其皆为,例如,DES算法所需之算术运算,而被实施。最后,图一所示之第三密码共同处理器说明ni完全,个别的密码共同处理器,其皆为,例如,杂凑计算所需之运算,而被实施。因此可能获得不同密码算法及运算之处理量的增加,对于所有情况都需要,如果由密码算法设定的这些运算及工作可被平行分布,而个别于算术罗辑单元。
此种包括不同工作用之复数密码共同处理器之多功能密码处理器也可被有利地使用,如果被实施于,例如智能卡上,之图一所示之密码处理器被控制为必须仅处理一密码算法。较佳者,CPU被实施,结果驱使真实的静态密码共同处理器执行「哑」计算,因此在电源供应输入122的攻击者发现至少二重叠的电源轮廓。执行哑运算的密码共同处理器最好是以随机的方式选择,因此,攻击者,即使已经发现那一共同处理器型态执行有用的计算,将不会知道在特定时间那一密码处理器型态正执行哑运算;可以说,在共同电源供应端存在一个与「有用电源轮廓」重叠之「哑电源轮廓」。
图二表示密码共同处理器104a,104b及104c之更多细节。如图二所示,个别的密码共同处理器104a包括一算术单元106a,三缓存器(register)106b至106d以及其本身的控制单元106a。密码共同处理器104b具有相同的装置,其亦具有例如,一算术单元108a,三缓存器(register)108b至108d以及其本身的控制单元108e。密码共同处理器104c也具有类似的结构。
此外,图二表示做为CPU之部份之变化序列的装置。CPU包括一装置202用以控制哑计算,其亦被表示为CPU 102的一部份。于本发明之一较佳实施例中,装置202被设计成用来以随机的方式选择将与其它有用的密码共同处理器型态平行执行哑计算之密码共同处理器或密码共同处理器的型态。
关于各种密码算法及其实施用的硬件,请分别参照1997年,CRC Press,Menezes,van Oorschoot以及Vanstone的「Handbook ofApplied Cryptography」。
依据较佳实施例,控制单元105可以控制二共同处理器106及108,举例而言,因此算术单元AU1及AU2互相耦合,因此二处理器,其随后构成一串(cluster),执行长度为L1+L2的数目的算术运算。二共同处理器的缓存器因此可以被连接在一起。
另一方式是,共同处理器可以专属地被指定缓存器的数目,该数目够大以便让操作数满足数个部份运算,例如模乘法或模指数法。为避免信息漏出,部份运算随后可被重叠或甚至以随机方式混合,例如藉由变化其序列,其由图二的200所指示,以便获得电流轮廓的进一步隐藏。这是特别有利的,当,例如仅存在二共同处理器及/或仅二个共同处理器在工作,而密码处理器的其它共同处理器在特定时刻不运作的情况。
依据本发明之较佳实施例,控制单元105更包括一装置,未表示于图二中,用以于不需要时关闭共同处理器及/或共同处理器的缓存器,尤其是对于电池电源应用时,以便节省整体电路的电流消耗。这是真实的,即使CMOS模块仅于切换进行时需要相当的电流量,它们也具有静态的电流消耗,如果可用电源受限时,那是有意义的。
如已经解释的内容,由于必须处理的长数目,密码处理器显示如图4a及4b所示之,例如串行/平行乘法的部份运算,需要相当大量的时间的特性。较佳者,共同处理器被实施,以便它们在控制单元以经提供足够的指令给计算单元之后,能够执行此种个别部份运算而不需要控制单元105部份的介入。因此,共同处理器需要储存中间结果的缓存器。
由于共同处理器在没有CPU 102之输入的情况下工作一段相当长的时间的事实,此CPU 102可以以所谓串行的方式,亦即连续地,施加必要指令至多重的个别共同处理器,因此所有共同处理器平行工作,但相互间多少有时间的偏移。
举例而言,第一共同处理器在特定时间点被驱动。当CPU 102已完成第一共同处理器的驱动,其立刻驱动第二共同处理器,而第一共同处理器已开始工作。第三共同处理器于第二共同处理器的驱动完成时被驱动。这表示在第三共同处理器驱动期间,第一及第二共同处理器已经在计算。如果对所有n个共同处理器执行这样的情况,所有共同处理器于时间偏移的方式中工作。如果所有的共同处理器以其部份运算具有相等期间的方式工作,第一共同处理器将首先完成。
现在,CPU可以获得来自第一共同处理器之结果,且理想状况下在第二共同处理器完成之前完成此传输。因此,处理量可大幅增加,同时达成CPU 102之计算容量之最佳利用。虽然所有的共同处理器执行相同的运算,当所有共同处理器在时间偏移的方式中运作时将产生高度的隐藏电流轮廓。如果所有的共同处理器在相同的时间以完全同步的方式被CPU驱动并工作,情况将会不同。这将产生非隐藏的电流轮廓,甚至是加强的电流轮廓。因此,连续驱动共同处理器对密码处理器之安全性而言是有利的。
以下将处理图三,其表示执行三操作数加法,如同以图三右侧所示之公式所指,的装置。图三右边的公式表示加法及减法被相等执行,因为一操作数必须简单地被乘上因子”-1”以获得一减法。三操作数加法藉由以不具有进位(carry)工作,亦即,一半加器(halfadder),的三位加法器以及以一进位,亦即全加器(full adder)工作,之后续二位加法器而被执行。或者是,也可能有当仅有操作数N,仅有操作数P或没有操作数将被加至或从操作数Z减去的情况。这在图三藉由正/负符号下方的”0”表示,并且由图4a所示之每一叠代步骤中重新进行之所谓的先看(look-ahead)参数,a1,b1表示。
图三表示此种加法单元之所谓的位切片(bit-slice)。对于,例如,具有1024数字位置的三个数的加法而言,图三所示之设计将在完整平行运算之计算单元106之算术单元中出现1024次。
在本发明之较佳实施例中,每一共同处理器106至112(图一)被设计成使用DE 36 31 992 C2所述之先看算法执行模指数法。
需要执行此运算的模乘法参照图4b解释。此工作是二进制(binary)数”111”与”101”相乘。此时,此乘法于一共同处理器中执行,藉由模拟依据已知的「正统数学」之二数的乘法,但以二进制数表示。以下,不使用先看算法及模降低的情况将为简便表示之故而被考虑。当此算法被执行时,第一部份乘积”111”将先被产生。此部份乘积随后将被向左移动一位置,以便考虑其意义。在第二叠代步骤中,第二部份乘积”000”将被加到已向左偏移之第一部份乘积,且可被视为第一叠代步骤中之一中间结果。此加法的结果随后将再次向左偏移一位置。此加法偏移后的结果随后是被更新的中间结果。部份乘积”111”随后被加到该更新后的中间乘积。所获得的结果将是乘法的最后结果。可以看见乘法已被分为二加法以及二偏移运算。
进一步可见的是,如果乘数的位置被认为是二进制”1”,被乘数M代表该部份乘积。相反地,如果乘数的位置被认为是二进制”0”时,此部份乘积是0。此外,由于个别的偏移运算,部份乘积的位置或有效位(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的数个连续位示为00,则向右偏移数个位置。最后,平行三操作数加法在步骤S16再次被执行,例如使用图三所示的加法器链。
此程序被继续直到所有,例如1024部份乘积已被加总为止。串行/平行也表示方块S12或S16中的平行执行以及串行处理,以便结合所有的部份乘积与其它连续的每一乘积。
在下文将参考图五至七以提供一运算如何被分为数个特定运算的例子。图五表示xdmod N的运算。为分解此模指数法,指数d以二进制形示被表示。如图五所示,这产生模乘法之一链,其中,同样如图五所示,每一个别模运算可以分别被指定一共同处理器,因此所有的模运算藉由图一所示的密码处理器被平行运算。所获得的中间乘积在它们已被平行决定之后被相乘,以便获得此结果。CPU 102控制至个别共同处理器CP1至CPk的分割,以及个别中间结果的最终相乘。
图六表示另一个(a*b)mod c至数个模运算之运算的分割。再次,共同处理器TRW1可以决定一第一中间结果。共同处理器CP2至CPn也计算中间结果,之后,在获得中间0结果之后,CPU 102控制中间结果之间相互的的乘法。CPU控制加总,例如,因此其选择随后将被输入加总用之中间结果之一共同处理器。此处,一运算也被分割为数个互相个别的运算。
应指出的是,有许多分割一或其它运算为部份运算的可能。图五及六所示的例子仅为说明将一运算分割为复数部份运算的可能性,可以存在与达成效能有关之更适合的分割。因此,它并不是范例中必要的处理器的性能,而是分割存在,因此每一共同处理器执行个别的部份运算的事实,以及复数共同处理器被一中央处理单元控制,以便在芯片之电源输入获得可隐藏的电流轮廓。
参考标号表
100芯片101总线102CPU104a-104c 共同处理器106a 算术单元AU1106b 缓存器1106c 缓存器2106d 缓存器3106e 控制单元108e 算术单元AU2108b 缓存器1108c 缓存器2108d 缓存器3114输入接口116输出接口118RAM120时脉产生器122电源提供端200变化次序的装置202控制哑计算之装置800印刷电路计算机板802CPU804RAM806第一共同处理器808第二共同处理器810第三共同处理器812总线814内存1816内存2818内存3I1-I8 电源供应端
权利要求
1.一种密码处理器,用以执行密码应用之运算,包括复数共同处理器(104a,104b,104c),每一共同处理器具有一控制单元(106e,108e)以及一算术单元(106a,108a);一中央处理单元(102),用以控制该复数共同处理器;以及一总线(101),用以连接每一共同处理器至该中央处理单元,该中央处理单元,该复数共同处理器以及该总线被集积于一单一芯片(100)上,且该芯片具有一共同电源供应端(122)用以输入该复数共同处理器。
2.如申请专利第1项之密码处理器,其中该复数共同处理器(104a,104b,104c)之每一共同处理器被提供一其本身之密码算法之一型态,因此该密码处理器被设计为复数密码算法之硬件形式。
3.如申请专利第1项之密码处理器,其中该复数共同处理器包括平行连接之个别的共同处理器群,该每一群被提供其本身之密码算法之型态,因此该密码处理器适合复数密码算法。
4.如申请专利第2或3项之密码处理器,其中该密码算法之型态系从具有以下数目之群中所选出DES算法,对称加密处理之AES算法,非对称加密处理之RSA算法,以及计算杂凑数值(Hash value)之杂凑算法。
5.如前述申请专利范围任一项之密码处理器,其中一密码运算可被分离为复数部份运算,该中央处理单元被设计为分布该复数部份运算至该复数共同处理器之个别共同处理器(104a,104b,104c)。
6.如前述申请专利范围任一项之密码处理器,其中该共同处理器互不相同,因此硬件能够执行之密码处理器之不同的数学运算数目至少等于该共同处理器之数目。
7.如前述申请专利范围任一项之密码处理器,其中该密码应用之运算包括模指数法及/或一模乘法及/或模加法/减法。
8.如前述申请专利范围任一项之密码处理器,其中每一共同处理器被设计以处理具有至少160位置之二进制数,且最好是至少1024或2048位置。
9.如前述申请专利范围任一项之密码处理器,更包括仅与该中央处理单元(102)相关之一内存(118)。
10.如前述申请专利范围任一项之密码处理器,更包括一时脉产生装置(120)用以传递一时脉至该处理单元(102)以及该复数共同处理器,该时脉产生装置也被集积于该单一芯片上。
11.如前述申请专利范围任一项之密码处理器,其中每一共同处理器更包括复数缓存器(106b,106c,106d,108b,108c,108d)专属指定给该个别共同处理器之算术单元(106a,108a)。
12.如申请专利范围第11项之密码处理器,其中与一共同处理器相关之该复数缓存器之长度(L1,L2),以及与其它共同处理器相关之复数缓存器之长度彼此不同,因此该共同处理器可以执行具不同长度数目的算术计算。
13.如申请专利范围第11或12项之密码处理器,其中与一共同处理器相关之缓存器之数目是足够的以便维持至少二部份运算的操作数,因此对于至少二部份运算,不需要共同处理器(104a,104b,104c)与中央处理单元(102)之间的转让操作数。
14.如申请专利范围第13项之密码处理器,其中该中央处理单元(102)更包括一装置(200)用于该等共同处理器之运算的时间控制,因此该至少二部份运算之次序,其运算被储存于一共同处理器之一缓存器中,是可调整的。
15.如申请专利范围第11至14项之任一项之密码处理器,更包括一装置,用以解除驱动一共同处理器,如果中央控制单元决定没有该共同处理器之部份运算存在的话,以便降低该密码处理器的电源消耗。
16.如前述申请专利范围任一项之密码处理器,其中该中央处理装置(102)被设计以连接至少二共同处理器为一串,因此一部份运算被指定给该串,因此该部份运算可藉由该串之该等共同处理器一起被执行。
17.如申请专利范围第11至16项之任一项之密码处理器,其中每一共同处理器具有由该算术单元(106a,108a)之数目宽度所指定之字符(word)长度,且其中该中央处理单元(102)被设计为共同连接至少二共同处理器,以便共同连接之共同处理器可使用字符长度等于共同连接共同处理器之数目宽度总合的计算。
18.如前述申请专利范围任一项之密码处理器,其中该至少一共同处理器之算术单元具有一串行/平行算术逻辑单元,因此一数目之计算于一循环中被平行执行,该数目等于计算中使用之一数目的位置,且于另一后续循环中,同第一循环中之相同计算使用该一循环之结果以序列方式被执行。
19.如申请专利范围第18项之密码处理器,其中该共同处理器系为了一模乘法而设计,以便于一循环中加一部份乘积至前一循环之一结果,并于另一循环中加该最后循环之结果至一下一部份乘积。
20.如申请专利范围第19项之密码处理器,其中该算术单元包括模乘法之一三操作数加法器,其为被处理之一数目之每一位置包括一半加器,用于不进位之加法,具有三输入及二输出;以及一后续全加器,具有二输入及一输出。
21.如前述申请专利范围任一项之密码处理器,其中该中央处理单元(102)包括一装置用以控制执行一哑运算之一密码共同处理器。
22.如申请专利范围第18项之密码处理器,其中用以控制哑计算之该装置(202)被设计为随机选择执行一哑计算之密码处理器。
全文摘要
一种密码处理器用以执行密码应用之运算,包括复数共同处理器(104a,104b,104c),每一共同处理器具有一控制单元以及一算术单元,一中央处理单元(102),用以控制该复数共同处理器(104a,104b,104c),以及一总线(101),用以连接每一共同处理器(104a,104b,104c)至该中央处理单元(102)。该中央处理单元(102),该复数共同处理器(104a,104b,104c)以及该总线(101)被集积于一单一芯片(100)上。该芯片更包括一共同电源供应端(122)用以输入该复数共同处理器(104a,104b,104c)。藉由不同共同处理器之平行连接,一方面获得处理量的增加,另一方面相对于以评估密码处理器电源轮廓为基础之攻击者,增加密码处理器之安全性的改善,因为至少二共同处理器之电源轮廓被重叠。此外,本密码处理器,藉由不同共同处理器的使用,也被实施为多功能密码处理器,以便适合多重不同密码算法。
文档编号H04L9/14GK1481526SQ01820564
公开日2004年3月10日 申请日期2001年11月16日 优先权日2000年12月13日
发明者A·埃尔贝, N·詹森, H·塞德拉克, A 埃尔贝, 吕 申请人:因芬尼昂技术股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1