CN1273876C - 密码处理器 - Google Patents

密码处理器 Download PDF

Info

Publication number
CN1273876C
CN1273876C CNB018205658A CN01820565A CN1273876C CN 1273876 C CN1273876 C CN 1273876C CN B018205658 A CNB018205658 A CN B018205658A CN 01820565 A CN01820565 A CN 01820565A CN 1273876 C CN1273876 C CN 1273876C
Authority
CN
China
Prior art keywords
cell
sub
computing
calculating
cipher processor
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
Application number
CNB018205658A
Other languages
English (en)
Other versions
CN1481524A (zh
Inventor
A·埃尔贝
H·塞德拉克
N·詹森
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1481524A publication Critical patent/CN1481524A/zh
Application granted granted Critical
Publication of CN1273876C publication Critical patent/CN1273876C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation

Abstract

一种密码处理器,包括一中央处理单元及一协处理器,该协处理器包括多个计算次单元以及一单一控制单元耦合至每一该多个计算次单元。一密码运算以次运算的形式被所述控制单元分布于该多个计算次单元之中。该中央处理单元,该多个计算次单元以及所述控制单元系集成于一单一芯片上,该芯片包括一共同提供电流端(122)用以提供电流给该多个计算次单元以及该控制单元。由于平行的计算次单元的设计,一方面,密码处理器的处理量增加。但另一方面,可能在供应电流存取被侦测之电流轮廓是随机的,其程度达到一攻击者不再能够推断个别计算次单元中处理的数目。

Description

密码处理器
技术领域
本发明关于密码技术,尤其是关于密码应用的密码处理器。
背景技术
随着非现金金钱交易,经由公众网络的电子数据传输,经由公众网络的信用卡号码的交换,以付款,识别或存取为目的之所谓智能卡的使用等的用途的广泛增加,存在着密码技术需求的增加。密码技术一方面包括密码算法,另一方面包括执行由密码算法所指定之计算的合适处理器解决方案。在以前,当密码算法藉由一般目的计算器而被执行时,关于不同的外部攻击者的成本,计算时间需求以及安全性并未扮演如今日般的重要角色,其中密码算法为特定需求而逐渐在芯片卡上或特定安全ICs上执行。因此,在另一方面,随着智能卡的大量生产,此种智能卡必须以具有成本效益的方式而可被利用,然而,另一方面,当它们完全受控于潜在攻击者的情况下,它们必须对外部攻击者展示高度的安全性。
此外,密码处理器必须提供相当的计算能力,尤其是因为许多密码算法,例如已知的RSA算法的安全性基本上是依据所使用的键(key)的长度而定。换句话说,这表示增加的被处理数目的长度,安全性也随之增加,因为基于尝试所有可能性的攻击因为相关计算时间的理由而变得不可能。
如图式中所表示,这表示密码处理系统必须处理可能具有长度为,例如1024位(bit)、2048位或甚至更多的整数。相较之下,典型的PC处理器是处理32位或64位整数。
然而,高度的计算消耗也表示大量的计算时间,因此密码处理器的必要需求是同时达成高度的计算处理量(throughput),因此,例如,识别,对建筑物的进出,付款的交换或信用卡的传输不需花费太多时间,这对市场接受度有绝对的决定性。
综言之,因此,可以说明密码处理器必须是机密的、快速的,且因此具有高性能。
一种经由处理器增加处理量的可能性是提供具有一或多个平行工作的协处理器(co-processors),例如现代的PC或图形卡的情况。此种方案被描述于图7表示一种计算机电路板800,于其上设置一CPU802,一随机存取内存(RAM)804、第一协处理器806、第二协处理器808以及第三协处理器810。CPU 802经由总线812与三个协处理器806,808,810连接。此外,每一协处理器具有自己的内存,它仅是用于所述协处理器的运作服务,亦即,协处理器1的内存1 814,协处理器2的内存2 816,协处理器3的内存3 818。
此外,图7所示之设置于计算机电路板800上的每一芯片经由其本身的电流及/或电压供应端I1-I8被提供独立组件内之电子零件执行功能所需的电源。另外,仅存在一个电路板用的供应电源,所述电源随后横越电路板被分布至电路板上的个别芯片。然而,于此情况中,导引至个别芯片的电源线可被攻击者所利用。
图7所示之典型的计算机应用,由于许多理由,对于密码处理器而言是适合的。另一方面,所有短整数算术用的组件被列出,然而,密码处理器必须执行长整数运算。
此外,计算机电路板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)加法。因此,模乘法被分解为一串部份乘积的运算。在叠代的开始,形成二部份乘积,且之后在模降低的考虑下加在一起以便获得中间结果。之后,再次形成另一个部份乘积,其于模降低的考虑下被加到所述中间结果。此叠代持续进行直到所有乘数的数目皆被处理完成为止。为三操作数加法而言,密码处理器包括加法单元,其于流动的叠代步骤中执行新部份乘积至处理中之叠代步骤之中间结果的相加。
因此,图7的每一协处理器可具有其本身的ZDN单元,以便平行执行数个模乘法,因而增加特定应用的处理量。然而,此解决方案将因为攻击者可能能够决定每一个别芯片的电流轮廓的事实而不成功,因此处理量的增加确已达成,然而,是在增加密码计算机安全性成本的情况下。
技术文献「A Design for Modular ExponentiationCoprocessor In Mobile Telecommunication Terminals」,Kato T等人,Cryptographic Hardware And Embedded Systems,2000年8月17,18日2nd International Workshop,Proceedings,LectureNote in Computer Science,第215-228页表示一种执行行动电信通信终端模指数法用之协处理器的设计。为执行模指数法,使用所谓的平方及相乘算法(square-and-multiply)。一左至右电路(LRC)及右至左电路(RLC)将被检查。尤其是,其建议藉由一共同控制单元选择模平方用之单元以及模乘法用之单元。此外,除了模平方电路之外提供另一模乘法电路,其亦由一共同控制连接。另一方式是,其建议藉由一共同控制来控制三模乘法。此三模乘法平行运算,二乘法单元执行右至左计算,而第三乘法单元执行哑运算。另一方式是,二乘法单元执行左至右计算,而第三乘法单元执行哑运算。同样另一种方式,由二乘法单元执行执行一特定算法,而第三乘法单元执行哑运算。
公开技术「High-Speed RSA Hardware Based On Barret’sModular Reduction Method」,J.GroBschaedl,2ND InternationalWorkshop,Ches 2000,Proceedings,Lecture Note in ComputerScience,Vol.1965,第191-203页,2000年8月17日,揭露具有接口/控制单元,乘法器核(core),以及一1056位之E/O缓存器之RSA密码芯片。此乘法核系一次平行乘法器,除了累积器及其它组件之外,具有不同缓存器,进位储存加法器,二进制先看加法器。此接口/控制单元提供16位标准微控接口,经其可产生资料交换及指令呼叫。所述控制单元控制所述乘法器核。所述缓存器支持与接口单元之16位的资料交换以及与乘法器核之1056位平行资料交换。
发明内容
本发明之目的在于提供一种快速及机密的密码处理器。
因此,本发明的目的在于提供一种执行密码应用运算的密码处理器,包括一中央处理单元和与它相耦合的一协处理器,所述中央处理单元是用来获得执行一运算以及输出一运算的结果用的指令,而所述协处理器包括多个计算次单元和单一控制单元,其中每一计算次单元包括至少一个算术单元,而所述控制单元耦与所述每一计算次单元耦合,并用以将一运算分割为次运算,以便分布多个计算次单元中的次运算并藉由所述多个计算次单元控制所述运算的执行,其特征在于所述多个计算次单元以及所述控制单元是集成于一单一芯片上,以及所述芯片包括一提供电流端用以提供电流给所述多个计算次单元以及所述控制单元。
本发明是基于发现快速的密码处理器可仅于密码计算运算被分解为次运算时以及当这些次运算藉由被平行设置之次单元运算时达成。另一方面,安全性,尤其是电源拦截的攻击,可以仅藉由当所有计算次单元,包括计算次单元的控制单元及中央处理单元被设计在单一芯片上时达成,因此个别组件的电源存取将不会被外部攻击者所利用。
换句话说,中央处理单元及具有单一控制单元及多个计算次单元的协处理器被集成于单一芯片上。此外,此单一芯片仅展示提供多个计算次单元,控制单元以及中央处理单元用之电流的单一电源存取。
将这些组件集成于单一芯片上并提供此芯片电源电流存取产生与计算次单元相关的电流轮廓与密码处理器的电流端重叠在一起的优点。如果,例如,二计算次单元平行工作,此二计算次单元的电流轮廓重叠在一起,因此攻击者很难藉由电源供应的轮廓决定那一运算同时由二计算次单元以及以那些数目执行。如果计算次单元的数目增加,单一电源端之电流轮廓均一地增加。然而,由于以并行计算次单元的增加数目而增加的平行处理,处理量也提升,因此,在所发明的概念中,安全性也随着处理量的增加而上升。在习知技术中则非此种情况,相反地,安全性将随处理量的增加而降低。
当与分割计算次单元中之次运算相关以及与驱动个别计算次单元相关之控制单元见到强烈的增加时,可以达成平行处理的限制。然而,对于相当长期间的运算,例如二个极长整数的乘法,计算次单元中的计算时间与组织及管理工作用之控制单元的时间的比例很高,因此并行计算的合理程度可以达成,不需要消耗疑难的管理工作。
然而,并行计算的程度是需要的,以便增加足够的处理量,因此,在逻辑模块以及内存模块在集成于相同芯片时发生的逻辑单元的速度损失,可以获得补偿。通常,此意图是在于设计逻辑模块及内存模块于分离的芯片上,因为此二模块的技术不同。换句话说,用以产生逻辑模块的计忆体模块的内存技术不允许与特别适用于逻辑模块之技术所产生之逻辑模块一样快速的逻辑模块。因此,在不同协处理器之简易平行连接之例中,如图7所示,内存及计算单元总是被设计在不同模块。
然而,很确实的是攻击者不能拦截对高安全性而言很重要的计算单元与缓存器(register)之间的通信。
附图说明
本发明之较佳实施例将参照所附图式而被详细说明,其中:
图1表示集成于单一芯片上之本发明之密码处理器;
图2表示展示具有不同长度缓存器之计算次单元之协处理器之更多细节;
图3表示适用于三操作数加法之计算次单元之更多细节;
图4a表示串行/平行方式之执行模乘法之流程图;
图4b表示使用乘法范例之计算单元之运算的串行/平行模式的数目范例;
图5表示将一模指数法(exponentiation)分割为数个模乘法之范例;
图6表示在不同计算次单元中分割一模乘法之另一范例;
图7表示具有多个电源模块之点脑电路板。
具体实施方式
在详细描述个别图式之前,以下将详细说明为何藉由平行连接数个设置于一芯片上之次单元且由设置于相同芯片上之一控制单元驱动可以达到较高的安全性。
密码处理器系用于安全方面重要的应用,例如数字签字,授权,或加密工作。例如,攻击者希望找出机密键以便破解密码方法。密码处理器被使用于芯片卡中,例如已经揭露过的,包括法律上结合的电子签字,家庭银行或以行动电话付款用等等之智能卡或签名卡。另一种方式是,此种密码处理器也被使用于计算机中,并且被当成安全ICs使用,以便直行授权或能够执行加密工作,其可包含例如,经由网际网络,在所谓的SSL期间(SSL=Secure Socket Layer)的安全付款,亦即,安全地传输信用卡号码。
典型的实体攻击测量电流消耗(SPA,DPA,时间攻击)或电磁幅射。就有关的攻击的进一步解释,将参考一开始提及的文字片断。
因为今日半导体技术达到一般250纳米(nanometer)或更小范围的结构,使得攻击者很难执行区域的电流测量,而这是整个芯片卡的一般电流消耗,包括CPU及协处理器,例如,由CPU,ROM,E2PROM,闪存,时间控制单元,随机数产生器(RNG),DES模块,以及密码协处理器之个别的电流消耗的总合所构成,这在攻击中将会被测量出。
因为密码协处理器通常展现最高的电流消耗,攻击者可以看见密码协处理器开始计算的时候。为避免这样的请况,目标将是让电流消耗在任何时间完全保持固定;攻击者将不再发现密码协处理器开始计算的时候。即使不能达成此理想的目标,目的将是藉由平行连接计算次单元达成尽可能均匀的噪声并使其集中在一平均值。
在CMOS技术中产生的芯片的电流消耗,是在切换中从”0”改变到”1”。因此,电流消耗是基于数据及CPU所使用的指令以及密码协处理器。
如果数个计算次单元被平行连接且如果令它们平行处理数个运算或次运算,或如果一个运算被分布在多个次单元之中,从数据及指令处理所产生的电流的轮廓将重叠,如已经讨论的内容。
越多的计算次单元一起平行工作,越难推论个别计算次单元及/或控制单元中的数据及指令,因为每一计算次单元中的数据及指令一般会不同,而攻击者将只看到不同指令的重叠。
图1表示执行密码应用之本发明的密码处理器。此密码处理器被设置于一单一芯片100之上并包括一中央处理单元(CPU)102以及一协处理器104。协处理器104,如图1所示,被设置于与中央处理单元102相同的芯片上。此协处理器包括多个计算次单元106,108,110及112,每一计算次单元106至112包括其本身的算术单元AU。较佳者,每一次计算单元106至112包括,除了AU之外,有至少一缓存器(REG)以便能够储存中间乘积,如同参照图2所解释者。
典型的密码处理器包括输入接口114及输出接口116,其为资料之输入及输出而与分别外部端点以及CPU 102连接。通常,CPU 102具有其本身的内存118,其由图1中的RAM所指示。在其它方面,密码处理器也可包括一时脉产生器120,其它内存,随机数产生器等等,其并未被表示于图1。
应指出的是,在图1中所指出的所有组件被设置于单一芯片上,并由单一电流提供端122供应电源。芯片100内部包括引导至所有图1所示组件之电流供应线,其因上述之理由而无法被拦截。相反地,可以容易地拦截电流提供端122的电流。不像图7所示之每一个别组件之电流供应端很容易被拦截,且因此具有极”有特征”的电流轮廓的电路板,在电流提供端122的电流轮廓几乎固定及/或展现尽量均一之环绕一固定值得噪声。这是因为贡献大部份电流消耗之协处理器104展示多个平行设置的计算次单元,例如,独立地从”0”切换至”1”,因此互不关联地消耗电流的事实。
个别计算次单元的平行连接导致密码处理器之处理量可增加的事实,因此,在芯片上内存实施的情况中,伴随的由于内存及计算单元所使用之不同技术所造成的速度损失可被补偿。
依据本发明之较佳实施例,二或多个计算次单元可被结合以形成所谓的串(cluster),因此,例如,第一串执行第一运算的次运算,而第二串执行第二密码运算的次运算。因此,例如,包括计算次单元106及108之第一串可以执行每一情况之一半长度的二模指数法,其系从整体长度之单一模指数法所导出,而包括计算次单元110及112之第二串可执行如图6所示之模乘法。
另一种情况是,一个串可以执行RSA运算,而另一串执行一DES运算,而又一个串计算,例如,杂乱总合(hash sum)。
此处应该解释的是所提及之密码算法已于文献中为人所知,且因此不再解释任何的细节。应该同时指出的是,仅以例示方法指出,例如,处理长度为2048之RSA密码操作数。在解密中,藉由中国余数理论(Chinese Reminder Theorem,CRT)可以以长度的一半以及二次运算工作。如果一密码处理器仅为此种算法而设计,计算次单元的数目为2,且算术单元的长度将仅为1024,而非在单一算术单元中的2048。依据中国余数理论的次运算被平行处理,且因此由控制单元控制,在计算次单元中的一个被结合,以获得结果。
图2说明图1所示之协处理器104之较详细的表示。除了算术单元106a之外计算次单元106包括,例如,三个缓存器106b,106c,106d。同样的,计算次单元108包括算术单元108a以及,例如三缓存器108b,108c,108d。对计算次单元112也是相同的情况。如图2所示,计算次单元之缓存器的长度可以和不同计算次单元之缓存器的长度不同,因此长度L1之数的运算可以由例如,计算次单元106执行,而长度L2的数的运算可以由计算次单元108执行。
例如,控制单元105可以进一步驱动二计算次单元106及102因此算术单元AU1及AU2以随后形成一串之二计算次单元将执行长度为L1+L2之数的运算的方式互相耦合。因此,二计算次单元之缓存器可互相连接。
另一方式是,计算次单元可以专属地被指定缓存器的数目,该数目够大以便让操作数满足数个次运算,例如模乘法或模指数法。为避免信息漏出,次运算随后可被重叠或甚至随机混合,例如藉由变化相同的次序,由图2的200所指示,以便达到电流轮廓的进一步隐藏。这是特别有利的,譬如当仅存在二计算次单元及/或仅二个计算次单元在工作,而密码处理器的其它计算次单元同时处于闲置的情况时。
依据本发明之较佳实施例,控制单元105更包括一装置,未表示于图2中,用以于不需要时关闭计算次单元及/或计算次单元的缓存器,尤其是对于电池驱动应用时,以便节省整体电路的电流消耗。即使CMOS模块仅于切换进行时需要相当的电流量,它们也展示关闭的电路电流消耗,其于可用电源受限时变得有意义。
如已经解释的内容,由于必须处理的长数目,密码处理器显示如图4a及4b所示之例如串行/平行乘法的次运算需要相当大量的时间的特性。较佳者,计算次单元被实施,以便它们在控制单元以经提供足够的指令给计算单元之后,能够执行此种独立次运算而不需要控制单元105部份的介入。为达成此目的,计算次单元通常需要储存中间结果的缓存器。
由于计算次单元在没有控制单元105之输入的情况下工作一段相当长的时间的事实,此控制单元105可以提供多个具有序列形式的必要指令的独立计算次单元,也就是属于一个接一个的形式,因此所有计算次单元是平行工作,然而,是以交错的方式,也就是是属于一个与另一个相关的方式。
举例而言,第一计算次单元在特定时间点被驱动。一旦控制单元105已完成第一计算次单元的驱动,其立刻驱动第二计算次单元,而第一计算次单元已开始工作。一旦第二计算次单元的驱动完成后,第三计算次单元将被驱动。这表示在第三计算次单元驱动期间,第一及第二计算次单元已经在计算。如果对所有n个计算次单元执行这样的情况,所有计算次单元于时间交错的方式中工作。如果所有的计算次单元以其次运算花费相等时间的方式工作,第一计算次单元将首先完成。现在,控制单元可以传输来自第一计算次单元之结果给中央处理单元,且理想状况下在第二计算次单元完成之前完成此传输。因此,处理量可大幅增加,同时达成控制单元105之计算容量之最佳利用。如果所有的计算次单元执行相同的运算,将产生强烈的隐藏电流轮廓,因为所有的计算次单元在时间交错的方式中运作。如果所有的计算次单元在相同的时间被控制单元驱动并工作,亦即完全同步,情况将会不同。然后,将产生非隐藏的电流轮廓,甚至是加强的电流轮廓。因此,连续驱动计算次单元与密码处理器之安全性而言是有利的。
以下将处理图3,其表示执行三操作数加法,如同以图3右侧所示之公式所指,的装置。图3右边的公式表示加法及减法被相等执行,因为一操作数必须简单地被乘上因子”-1”以获得一减法。三操作数加法藉由以不具有进位(carry),亦即,一半加器(half adder),的三位加法器以及以一进位,亦即全加器(full adder),之下游二位加法器而被执行。或者是,也可能有当仅有操作数N,仅有操作数P或没有操作数将被加至或从操作数Z减去的情况。在图三,这藉由正/负符号下方的”0”表示,并且由图4A所示之每一叠代步骤中重新进行之所谓的先看参数,a1,b1表示。
图3表示此种加法单元之所谓的位切片(bit-slice)。例如对于具有1024数字位置的三个数的加法而言,图3所示之设计将在完整平行运算之计算单元106之算术单元中出现1024次。
在本发明之较佳实施例中,每一计算次单元106至112(图1)被设计成使用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可以表示第一先看参数。在简单的实施中当所考虑的乘数0为1时,a的值为1。所考虑的乘数0为0时,a的值为0。
方块S12所表示的运算为所有来执行,例如1024位。之后,在步骤S14在最简单的情况中执行向右偏移一位置的运算,以考虑第二部份乘积的最大有效位(most significant bit)比第一部份乘积之最大有效位低。如果乘数0的数个连续位显示为0,则向右偏移数个位置。最后,平行三操作数加法在步骤S16再次被执行,例如使用图3所示的加法器链。
此程序被继续直到所有像1024部份乘积已被加总为止。串行/平行也表示方块S12或S16中的平行执行以及串行处理,以便结合所有的部份乘积与其它连续的每一乘积。
在下文将参考图5至图7以提供一运算如何被分为数个特定运算的例子。考虑图5中的xd mod N的运算。为分解此模指数法,指数d以二进制指示被表示。如图五所示,这产生模乘法之一链,其中,同样如图5所示,每一个别模运算可以分别被指定一计算次单元,因此所有的模运算藉由图一所示的密码处理器被平行运算。所获得的中间乘积随被乘,在它们已被平行决定之后,以便获得此结果。于此过程中,控制单元105控制个别计算次单元之中的分割,以及之后个别中间结果CP1至CPk的最终相乘。
另一个(a*b)mod c至数个模运算之运算的分割表示于图6。再次,计算次单元(图1中的106)可以决定一第一中间结果CP1。计算次单元(图1中的106至112)也可计算中间结果CP1至CPn,之后,在获得中间乘积后,控制单元105是控制中间结果的乘法。例如,此控制单元控制以选择随后将接收加总用之结果之计算次单元的方式控制加总。这表示此处之运算也被分割为数个互相独立的运算。
应指出的是,有许多分割一或其它运算为次运算的可能。图5及图6所示的例子仅为说明将一运算分割为多个次运算的可能性,可以存在与达成效能有关之更适合的分割。因此,此范例重要的不在于处理器的性能,而是分割存在因此每一计算次单元执行独立的次运算的事实,以及多个次运算被一控制单元控制,以便在进入芯片之电流输入,获得尽可能被隐藏的电流轮廓的事实。
参考标号表
100                       芯片
102                       CPU
104                       协处理器
105                       控制单元
106                       计算次单元1
108                       计算次单元2
110                       计算次单元3
112                       计算次单元n
114                       输入接口
116                       输出接口
118                       RAM
120                       时脉产生器
122                       电流提供端
106a                      算术单元1
106b                      缓存器1
106c                      缓存器2
106d                      缓存器3
108a                      算术单元2
108b                      缓存器1
108c                      缓存器2
108d                      缓存器3
200                       变化次序的装置
800                       计算机电路板
803                       CPU
804                       第一协处理器
806                       第二协处理器
808                       第三协处理器
810                       总线
812                            内存1
814                            内存2
816                            内存3
I1-I8                          电流供应端

Claims (16)

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所述的密码处理器,其中每一计算次单元被设计以处理具有至少512位数的二进位数。
4.如权利要求3的密码处理器,其中每一计算次单元被设计以处理具有至少1024或2048位数二进位数。
5.如权利要求1所述的密码处理器,更包括仅与所述中央处理单元(102)相关的一内存(118)。
6.如前述权利要求1所述的密码处理器,更包括以下:
一时脉产生器(120)用以传递一时脉至所述处理装置(102),所述多个计算次单元,以及所述控制单元(105),所述时脉产生器也被集成于所述单一芯片上。
7.如前述权利要求1所述的密码处理器,其中每一计算次单元更包括多个缓存器(106b,106c,106d,108b,108c,108d)专属指定给所述个别计算次单元之算术单元(AU1,AU2,AU3,AUn)。
8.如权利要求7所述的密码处理器,
其中被指定给一计算次单元之多个缓存器的长度(L1,L2),以及与其它计算次单元相关的多个缓存器的长度不同,因此所述计算次单元可以执行每一情况中不同长度数目的算术计算。
9.如权利要求7所述的密码处理器,
其中与一计算次单元相关的缓存器之数目是足够的以便维持至少二次运算的操作数域,因此对于至少二次运算不需要协处理器(104)与中央处理单元(102)之间的操作数转移。
10.如权利要求9所述的密码处理器,其中每一个运算至少具有两个次运算,且所述控制单元(105)更包括:
一变化次序的装置(200),用以在时间方面控制所述计算次单元的运算,因此储存在一计算次单元的缓存器中至少二个次运算的次序是可调整的。
11.如权利要求7所述的密码处理器,更包括:
一切换装置,用以关闭一计算次单元,如果一控制装置决定没有所述计算次单元的次运算存在的话,以便降低所述处理器的电流消耗。
12.如权利要求7所述的密码处理器,其中每一计算次单元包括由所述算术单元数目宽度所指定的长度,且其中所述控制单元(105)配置为便以互相连接的计算次单元可执行长度等于互相连接计算次单元的数目宽度总合的计算方式与至少二个计算次单元连接。
13.如前述权利要求1所述的密码处理器,其中所述控制单元(105)配置为结合至少二个计算次单元为一串,因此一个次运算被指定给所述串,因此所述次运算可藉由所述串的所述的计算次单元一起被执行。
14.如权利要求1所述的密码处理器,其中所述至少一个计算次单元的算术单元包括一串行/并行计算单元,使得一些数目的计算于一循环中被平行执行,所述数目是等于计算中使用数目的数字,且与第一循环相同的计算在一个不同和随后的循环中使用所述循环的结果以串行方式被执行。
15.如权利要求14所述的密码处理器,其中所述计算次单元系由一模乘法而实施,以便于一循环中加一部份乘积至前一循环的一结果,并于另一循环中加所述最后循环之结果至一下一部份乘积。
16.如权利要求15所述的密码处理器,其中所述算术单元包括模乘法之一三操作数加法器,所述三操作数加法器包括以下一处理中的数目之每一位数:
一半加器,用于不进位的加法,具有三输入及二输出;以及
一下游全加器,具有二输入及一输出。
CNB018205658A 2000-12-13 2001-12-06 密码处理器 Expired - Fee Related CN1273876C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10061997.5 2000-12-13
DE10061997A DE10061997A1 (de) 2000-12-13 2000-12-13 Kryptographieprozessor

Publications (2)

Publication Number Publication Date
CN1481524A CN1481524A (zh) 2004-03-10
CN1273876C true CN1273876C (zh) 2006-09-06

Family

ID=7666917

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018205658A Expired - Fee Related CN1273876C (zh) 2000-12-13 2001-12-06 密码处理器

Country Status (8)

Country Link
US (2) US7430293B2 (zh)
EP (2) EP1589413B1 (zh)
KR (1) KR20030062422A (zh)
CN (1) CN1273876C (zh)
AT (1) ATE467172T1 (zh)
AU (1) AU2002231668A1 (zh)
DE (2) DE10061997A1 (zh)
WO (1) WO2002048845A2 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10253285B4 (de) * 2002-11-15 2018-11-15 Giesecke+Devrient Mobile Security Gmbh Verschleierung eines geheimen Wertes
US20040230813A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Cryptographic coprocessor on a general purpose microprocessor
KR100680025B1 (ko) * 2005-07-05 2007-02-07 한국전자통신연구원 멀티세션 고속암복호화 처리 장치 및 방법
US7916864B2 (en) * 2006-02-08 2011-03-29 Nvidia Corporation Graphics processing unit used for cryptographic processing
CN100369074C (zh) * 2006-03-02 2008-02-13 西安西电捷通无线网络通信有限公司 一种实现sms4密码算法中加解密处理的方法
US7826612B2 (en) * 2006-06-29 2010-11-02 Intel Corporation System, method and apparatus for an incremental modular process including modular multiplication and modular eduction
DE102007007699A1 (de) 2007-02-09 2008-08-14 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
EP2000936A1 (en) 2007-05-29 2008-12-10 Gemplus Electronic token comprising several microprocessors and method of managing command execution on several microprocessors
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US7929707B1 (en) * 2007-09-06 2011-04-19 Elcomsoft Co. Ltd. Use of graphics processors as parallel math co-processors for password recovery
US8670557B2 (en) * 2007-09-10 2014-03-11 Spansion Llc Cryptographic system with modular randomization of exponentiation
US8139763B2 (en) * 2007-10-10 2012-03-20 Spansion Llc Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks
IL187043A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure pipeline manager
US20090183161A1 (en) * 2008-01-16 2009-07-16 Pasi Kolinummi Co-processor for stream data processing
JP5146156B2 (ja) * 2008-06-30 2013-02-20 富士通株式会社 演算処理装置
ITMI20082364A1 (it) * 2008-12-31 2010-07-01 Incard Sa Metodo per proteggere un dispositivo crittografico contro attacchi spa, dpa e temporali
US20100177889A1 (en) * 2009-01-15 2010-07-15 Kabushiki Kaisha Toshiba Image forming apparatus and encryption process control method
US20100306553A1 (en) * 2009-06-01 2010-12-02 Poletti Iii Joseph William High-throughput cryptographic processing using parallel processing
EP2293185A1 (en) * 2009-09-04 2011-03-09 Thomson Licensing Exponentiation method resistant against skipping attacks and apparatus for performing the method
US20140032917A1 (en) * 2010-10-29 2014-01-30 Nec Corporation Group signature processing device for processing a plurality of group signatures simultaneously
DE102011007976A1 (de) 2011-01-03 2012-07-05 Giesecke & Devrient Gmbh Verfahren zur gesicherten Ausführung einer Kryptographischen Berechnung
JP5776927B2 (ja) * 2011-03-28 2015-09-09 ソニー株式会社 情報処理装置及び方法、並びにプログラム
EP2523385B1 (en) * 2011-05-05 2017-07-12 Proton World International N.V. Method and circuit for cryptographic operation
EP2700256B1 (en) 2011-05-20 2017-11-29 BlackBerry Limited Verifying passwords on a mobile device
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
WO2014028005A1 (en) * 2012-08-14 2014-02-20 Empire Technology Development Llc Software-based side-channel attack prevention
EP2733654A1 (en) * 2012-11-20 2014-05-21 Nagravision S.A. Electronic payment method, system and device for securely exchanging payment information
WO2015088525A1 (en) * 2013-12-12 2015-06-18 Empire Technology Development, Llc Randomization of processor subunit timing to enhance security
KR101927858B1 (ko) 2013-12-28 2018-12-11 인텔 코포레이션 Rsa 알고리즘 가속 프로세서들, 방법들, 시스템들 및 명령어들
EP3152859A1 (en) 2014-06-04 2017-04-12 Giesecke & Devrient GmbH Method for enhanced security of computational device with multiple cores
US9798521B2 (en) * 2014-08-27 2017-10-24 Schlage Lock Company Llc System, method and apparatus for random number generation
EP3279826A1 (en) * 2016-08-04 2018-02-07 Nagravision SA Sequence verification
CN107294719A (zh) * 2017-06-19 2017-10-24 北京万协通信息技术有限公司 一种双线性对运算的加解密协处理器
FR3076925B1 (fr) 2018-01-16 2020-01-24 Proton World International N.V. Fonction cryptographique

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2130405B (en) 1980-08-30 1984-11-21 British Aerospace Electronic calculator
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
EP0239749B1 (de) 1986-03-05 1990-07-25 Holger Sedlak Kryptographie-Verfahren und Kryptographie-Prozessor zur Durchführung des Verfahrens
US5752071A (en) * 1995-07-17 1998-05-12 Intel Corporation Function coprocessor
DE19539700C1 (de) * 1995-10-25 1996-11-28 Siemens Ag Sicherheitschip
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US6219420B1 (en) * 1998-09-02 2001-04-17 Motorola, Inc. High assurance encryption system and method
US6408075B1 (en) * 1998-11-30 2002-06-18 Hitachi, Ltd. Information processing equipment and IC card
FR2787900B1 (fr) * 1998-12-28 2001-02-09 Bull Cp8 Circuit integre intelligent
FR2789535B1 (fr) * 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique

Also Published As

Publication number Publication date
EP1342148B1 (de) 2013-07-03
EP1589413B1 (de) 2010-05-05
EP1342148A2 (de) 2003-09-10
US20040105541A1 (en) 2004-06-03
DE10061997A1 (de) 2002-07-18
EP1342148B9 (de) 2014-02-26
ATE467172T1 (de) 2010-05-15
KR20030062422A (ko) 2003-07-25
AU2002231668A1 (en) 2002-06-24
WO2002048845A2 (de) 2002-06-20
EP1589413A3 (de) 2007-04-04
US20080140739A1 (en) 2008-06-12
CN1481524A (zh) 2004-03-10
WO2002048845A3 (de) 2002-11-14
US7430293B2 (en) 2008-09-30
DE50115478D1 (de) 2010-06-17
US8369520B2 (en) 2013-02-05
EP1589413A2 (de) 2005-10-26

Similar Documents

Publication Publication Date Title
CN1273876C (zh) 密码处理器
CN1481526A (zh) 密码处理器
CN102509036B (zh) 一种可重构密码处理器及抗功耗攻击方法
Kuang et al. Energy-efficient high-throughput Montgomery modular multipliers for RSA cryptosystems
May et al. Random register renaming to foil DPA
CN1248102C (zh) 模乘法的电路及其方法
Furbass et al. ECC processor with low die size for RFID applications
Eslami et al. An area-efficient universal cryptography processor for smart cards
CN102207847A (zh) 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN102468956A (zh) 适用于rsa模幂计算的方法
Rodríguez-Flores et al. Compact FPGA hardware architecture for public key encryption in embedded devices
CN101213512A (zh) 保护数据处理设备以抵御攻击或分析的装置和方法
CN107896142B (zh) 一种执行模幂运算的方法及装置、计算机可读存储介质
Aigner et al. A low-cost ECC coprocessor for smartcards
CN1968085A (zh) 一种实现智能卡高速安全通讯的方法
KR20130128695A (ko) 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템
CN1568457A (zh) 一种安全的模数取幂运算方法
WO2023141934A1 (en) Efficient masking of secure data in ladder-type cryptographic computations
Eberle et al. Accelerating next-generation public-key cryptosystems on general-purpose CPUs
Seo et al. SIKE in 32-bit ARM processors based on redundant number system for NIST level-II
Zimmermann et al. High-performance integer factoring with reconfigurable devices
Baba et al. Multiple-valued constant-power adder for cryptographic processors
CN106897628B (zh) 一种防止被加数侧信道信息泄露的安全处理装置及方法
Guo et al. Programmable and parallel ecc coprocessor architecture: Tradeoffs between area, speed and security
Mesquita et al. An efficient implementation of montgomery powering ladder in reconfigurable hardware

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: 20060906

Termination date: 20181206

CF01 Termination of patent right due to non-payment of annual fee