计算单元及以加密操作数执行算术运算之方法

文档序号:6341749阅读:292来源:国知局

专利名称::计算单元及以加密操作数执行算术运算之方法
技术领域
:本发明关于一数据处理单元,特别是指需要在高度安全等级下进行一数据或地址处理程序以用来防止物理攻击和拦截之处理单元。在计算和/或处理安全性相关的数据,惯用的方式常以微处理器(microprocessor)或安全凭证(securitytokens)或其它需要在高度安全等级下进行一数据或地址处理程序以用来防止物理攻击和拦截之处理单元(processingunits)。高速缓存(Cache)或缓冲(Buffer)存储器、寄存器组(Registersets)与微处理器上的传输路径如总线(bus)的型式等,代表在一容易辨认的芯片上之标准架构。因此,他们也代表着易于被攻击的地点。这些攻击也许会出现于藉由识别码上攻击的方法来拦截或出现于电路文件的分析中。藉由加密的方法,外部存储器、缓冲存储器和总线能有效的被保护,因此处理的数据,如使用者数据或程序等在整个芯片上只较适合于以一加密型态来移动和储存。第10图是说明一计算单元之整体概略图标。该计算单元包括一算数逻辑单元800(ALU,arithmetic-logicunit)作为其中央单元。一能够执行二个操作数之运算之最小算数逻辑单元需要二个输入总线A、B(802、804)和一输出总线Z(806)。算数逻辑单元800之输入总线和输出总线均连接到中央总线F(808)。而其它另外二个总线D、E(810、812)也都连接到中央总线F上,总线810是连接到高速缓存M2(814),而高速缓存的另一端则是藉由一存储器总线C(816)连接到外部存储器M1(818)。除此之外,在第10图的实施例中,算数逻辑单元提供一寄存器组M3(820),该寄存器组包括寄存器来储存算数逻辑单元之输入数据或算数逻辑单元之输出数据,这些数据是(最初)不预计送进高速缓存814或外部存储器818之数据,或是那些直到相对较长的计算结束前,不会由寄存器取而送进外部存储器之数据。在一计算单元执行安全性紧要之计算时,这些数据在被存入从M1到M3的不同存储器之前已经加密。除此之外,为了要避免数据在总线线802、804、806、810、812以及816上被攻击,这些数据在通过这些总线在线最好是以加密的型态来传输。以这样的情况,比方说是在经由算数逻辑单元800处理之前的数据或地址,二个解密电路DEC(DEC=decrypt)822、824在二个算数逻辑单元的输入之前将总线A、B上的操作数解密。而为了保护算数逻辑单元的操作结果,一加密装置ENC826(ENC=encrypt)跟随着算数逻辑单元800的输出,以使加密过的数据能在总线802、804以及806上出现。虽然这一概念可以有效地抑制总线线(项是例如中央总线808以及存储器总线810、812、816)上的攻击,然而,未受保护的明文数据会在二解密电路822,824与加密电路826之间出现,因此,即使使得攻击者更困难地找到计算单元中的算数逻辑单元800的位置,不过他或她一但确定解密装置的起源,对攻击者仍然是一件很容易的工作,因为明文数据会出现在解密装置822以及824的输出上。另一方面,这些数据必须解密,因为算数逻辑单元的运算是以一例如算数基本运算型式,项是AND、OR、XOR、NAND、NOR、NOT或是ADD等,这些不能仅以加密的数据来执行,因为加密以及解密的运算和这些基本运算通常不会整流,这将导致结果的失真。为了要防护这个安全性的漏洞,通常会倾向于置放解密装置822、824和加密装置826尽可能的接近算数逻辑单元800,以让明文数据传输线路尽可能的变短,以便使这方式暗中毁损攻击。或者是说,明文数据传输的传输线路也许可以用技术的措施隐藏在芯片上。例如,利用特定的杂质分布或大量的假性线路,而在假性线路上,根本没有任何数据、或仅有迂回的、或假的数据再传输,以致一攻击者实际发现明文数据传输的传输线路再次变得很困难。这些用来防护计算单元对抗攻击的传统策略是有问题的,在于这些策略需要额外的花费以及限制算术逻辑单元设计的自由度。设计自由度的限制是不利的,特别是此一算术逻辑单元如果是高效能的算术逻辑单元,需要执行多重的计算,尤其是如长整数的计算。为了使计算时间仍然维持在合理的限制内,这一算术逻辑单元应该被设计成最佳效能的类型。一客户端当然会从任何安全系统中预期一高等级的安全性。然而,这个客户同时也会预期尚可忍受以及最好是很短的计算时间。很短的计算时间对一被市场上接受的安全系统是很重要的,因为在安全确认中,冗长的计算时间将被客户端部分被认为是非常恼人的。本发明的目的在提供一简单而且不昂贵的概念用于执行加密操作数的运算装置上,一用来加密数据的进位选择加法器以及一密码编译处理器仍然提供一高等级的安全以对抗攻击。此一目系藉由权利要求第1项之一计算单元、权利要求第35项之一方法、权利要求第27项之一进位选择加法器、权利要求第28项之一密码编译处理器、以及权利要求第36/37项之用来形成计算单元装置之一方法或一装置来达成。本发明系根据在整个计算单元都在加密操作数下来运作,最高等级的安全可以被达成之调查结果。因此,在处理单元的输入,不会有解密的执行,在处理单元或算术逻辑单元的输出,不会有加密的执行。根据此一发明,算术逻辑单元达到除了具有作为第一加密操作数的输入及第二加密操作数的输入外,也包括一加密参数的第三输入,该算术逻辑单元达成了根据密码计算规格来联结加密操作数以及加密参数,而考虑两操作数被加密的类型,在输出所获得的一加密结果和如果第一操作数经由非加密的状态下根据一明文计算规格逻辑运算以及如果第二操作数经由非加密的状态下根据一明文计算规格逻辑运算,而且所获得的结果随后加密后所获得的值是一样的。换句话说,在两加密操作数之间所执行的算术运算,项是例如一OR运算系一明文计算规格,被以数算术子运算(arithmeticsub-operation)来取代而形成密文计算规格,这些这样被选择的算术子运算有加密操作数、否定加密操作数、加密参数或者是否定加密参数作为输入。如果需要,更进一步存在由加密输入操作数以及由密钥所获得的中间结果作为输入的子运算,使得明文输入操作数它们自己不会出现在算术逻辑单元的任何位置。为了增加安全等级,也倾向于不要有由明文输入操作数中间结果的存在。以OR运算为例,这即是指加密操作数和加密参数经由数AND运算和数OR的运算,如果需要,经由否定运算,使得算术逻辑单元提供一结果与假如加密输入操作数最初被解密,然后经由一单一OR运算,然后再加密所获得的结果相等。如果方法是以一包含一加密演算以及一密钥的加密方法所组成,一种用以算术运算之不同的算术逻辑单元结构针对每次加密演算因而产生。在这情况下,安全等级也许仅以在每一次的运算或每几次的运算中以改变加密算法的密钥即被提升,这具有不同的密钥也许可以被使用在一相等的算术逻辑单元结构的优势,例如这使得一攻击者更困难地由算术逻辑单元的结构中演绎出明文的数据。换句话说,发明的计算单元之处理单元已完成执行一或数数学上的子运算,一起产生一由与非加密操作数(non-encryptedoperands)运算的规格演绎出的计算规格,这样类型至少有一非加密操作数被加密,其中至少有一加密运算结果会被以一至少有一加密操作数以及加密参数之数学组合所取代,该数学组合是以加密操作数加密算法的逆运算。藉由数学组合,明文计算规格被转换成的密文计算规格,包括一或数数学子运算,该运算只获得加密操作数或是相同的否定类别、或是加密操作数以及/或是相同的否定类别以及其它的操作数的组合作为输入量值。非加密操作数本身不能以数学的子运算之一输入量值出现在任何地方因此,不会被拦截。很明显的,由一或数数学子运算产生的密文计算规格也许能以任何一种想要的型态达成。也就是说,这个数学子运算共同形成密文计算规格的方式可以是任何形式。所需要的仅只是他们共同形成这一非常的密文计算规格,提供了相对应的明文计算规格再经过结果加密之后相同结果。一更深层的先决条件是以至少一被加密过的操作数作加密算法是一可逆的加密算法。假使例如这个加密算法是一逐位的XOR函数或XNOR函数,这加密算法的逆运算是简单的,而再一次的XOR和/或XNOR也是一样的。本发明之概念也许基本上可实行在任何可逆的加密运算,这视每一情况可被判断的复杂的程度而定。最简单的加密计算单元实行策略是利用逐位XOR运算以及一密钥作为加密算法,因为该加密算法的逆运算是再一次以一XOR以及相同密钥的运算。当然,发生在XNOR函数也会相同。在本发明的较佳实施例中,加密算法本身再一次是一逐位的算术运算,项是一XOR或一XNOR运算。考虑算术运算的转换规则,可找到一算术方程式,而且由算术运算开始到被计算以及从加密算法中,这一方程式,没有明文操作数而是加密操作数出现,在逻辑上相互联结并且/或利用子运算与加密参数联结,使之再一次地提供与假使最初输入参数是被解密的,经由算术运算,然后再一次加密,获得相同的结果。本发明之一优势系在此发明的计算单元中,不再有明文在任何地方出现,而是加密操作数。因此,不再可能让一攻击者在计算单元的任何位置中截取到明文操作数。本发明之一更进一步之优势在于假如用于本发明的计算单元所实行之加密方法系被利用于储存存储器内的数据,在计算机的任何位置不再会有明文的出现,而只有加密数据以及加密参数是可见到的。假如本发明的计算单元是在一不能一直被保证位在一安全环境之芯片卡上执行,但是相反的,在攻击者方面以及在随意的相同配置下,攻击者不能由芯片卡上以任何方式获取任何明文数据,因为那里只有加密数据。因此被处理的明文数据在芯片上被读取之前会在一安全环境下加密,一安全的环境系指如一是固定的终端机,也许项是如只有固定人员才被授权可进入的自动提款机。芯片卡的接口已被建构,致使一攻击者无法提取自动提款机的明文数据,因为安全的终端机在到达它的晶面卡接口之前,已将明文数据加密,以及是因为安全的终端机以这样的方式加密明文,特别是加密算法遵照芯片卡上算术逻辑单元的结构。因此,在任何位置并不需要来回地加密,使得真正地存在一封闭系统。如果将明文数据导入系统的地方是在一安全的环境中,这个封闭的系统也许能够容易的被保护。本发明的一更进一步的优势在于算术逻辑单元可以视芯片上可提供的技术,而以复数不同的方式来执行。例如,子运算也许能以很多不同的方式来选择,这取决于算术的同等规则,例如可以是二进制式,仍然可以提供相同的结果,也就是说相同的真值表(Truthtable)。假如存在一完整的系统如NAND或NOR,便可以找到一执行方式。如果,例如仅存在只有两输入的NAND门,便可以找到一执行方式,其中只有两输入的NAND门出现。然而,假如NAND门或NOR门呈现出具有复数输入,以及,除此之外,如果NOT运算可以用一简单的方式来执行,利用复数不同的联结和子运算,相同的真值表可以被用来执行。这样的弹性与变换性也许可以更进一步有益于找到电路工程项目上最喜欢的布局以及计算时间,或有益于使用和计算单元相等替代布局,以致能使潜在攻击者被更进一步的迷惑,这些潜在的攻击者通常想要比较(例如好几个芯片卡)来获取秘密的信息。在最一般的情况下,只有一加密操作数被计算单元所执行运算,而其它的操作数系明码电信报文操作数,这样已经提供了在一算术以及/或逻辑运算某一等级的安全防护,因为如果只有一第一参数”a”或一第二参数”b”是加密的,介于参数”a”以及参数”b”之间的一AND运算结果是已经加密的。或者是说,两操作数也可以是以相同以及/或不同的加密算法来加密,或者是以相同的加密算法但不同的密钥。本发明的计算单元更可以进一步被配置来执行一复用器运算,其中,至少有一被加密的操作数是控制信号。具有一加密控制信号的复用器可以一加密的方式传输非加密的输入数据或是一加密的方式传输加密的输入数据。依照复用器的大小,控制信号可以只是一位宽,也就是说在一2:1的复用器之情况下。而较大型的复用器,控制信号将可具有2个或几个位的宽度。依照想要的安全防护标准,控制信号的每一位能以它本身的密钥加密,或者是控制信号所有的位可以相同的密钥加密。第1图表示发明的计算单元之一概略的图样;第2A图表示发明的计算单元之操作数逐位XOR加密的执行方式以使算术逻辑单元XOR运算的执行;第2B图表示第2A图电路之真值表;第3A图表示发明的计算单元之一用来执行一AND运算之算术逻辑单元,操作数是以一XOR的运算方式来加密第3B图表示第3A图电路之真值表;第4A图表示发明的计算单元之一用来执行一OR运算之算术逻辑单元,操作数是以一XOR的运算方式来加密;第4B图表示第4A图电路之真值表;第5A图表示发明的计算单元之一用来执行一NOR运算之算术逻辑单元,操作数是以一XOR的运算方式来加密;第5B图表示第5A图电路之真值表;第6A图表示发明的计算单元之一用来执行一NAND运算之算术逻辑单元,操作数是以一XOR的运算方式来加密;第6B图表示第6A图电路之真值表;第7A图表示发明的计算单元之一用来执行一三个操作数之ADD运算之算术逻辑单元,三个操作数是以一XOR的运算方式来加密;第7B图表示第7A图电路之关于进位之真值表;第8A图表示一具有加密控制信号的2:1复用器之方块图;第8B图表示一具有加密控制信号的3:1复用器之方块图;第8C图表示一具有加密控制信号的4:1复用器之方块图;第8d图表示一具有加密控制信号的2:1复用器之执行例;第9A图到第9图c表示发明的计算单元作加法器执行之方块图,其中操作数以不同的密钥加密而且每位不同地加密;第10图表示一先前技术之计算单元,其具有一算术逻辑单元之向上游的解密以及一算术逻辑单元向下游的加密;第11A图表示一发明的具有一发明的计算单元之密文编译处理器方块图之方块图;第11B图表示第11A图中之INC/DEC单元更详细之描述;第12A图表示加法器的二个位片,每个位片包含一一位全加法器作为发明的计算单元;第12B图表示一用以加密数据的并行加法器之基本方块图;以及第13图表示一在缀字本文区域以进位选择来加密数据的进位选择加法器之基本方块图。第1图表示一发明的指少在二个操作数上执行算术运算之计算单元,这至少两操作数系加密操作数ak以及bk。发明的计算单元包含一算术逻辑单元ALU10,该算术逻辑单元包括除了一第一加密操作数ak的第一输入12外,还有一第二加密操作数bk之第二输入14。发明的算术逻辑单元更进一步包括一加密参数k之第三输入16以及一输出18用以输出一算术逻辑单元10算术运算OP执行之加密结果。算术逻辑单元10执行联结第一输入12、第二输入14以及加密参数k之第三输入16,而考虑操作数ak、bk的类型,在输出利用项算术子运算这样的方式以使能获得一与如果第一操作数a经由在非加密的状态下的算术运算OP与如果第二操作数b经由在非加密的状态下的算术运算OP,以及如果所获得的结果随后就项第1图的方括号以及指数k一样被加密的结果相等。操作数ak以及bk的解密不但没有在算术逻辑单元10被执行,而只有子运算被执行在加密操作数ak、bk上以及加密参数k上被执行的或在否定加密操作数或者否加密参数或者上述运算的中间结果中发生。根据本发明一算术逻辑单元被描述成允许算术逻辑运算被以加密数据直接执行并且也以一加密型态输出。这里也倾向于确认没有明文发在升任合中间结果。一以完全加密方式运算之处理器之配置结构与因此与加密储存共同被达成。本发明的算术逻辑单元10使得在一中央处理器(CPU)内以加密方式执行所有的操作变得可能。藉由只有举例方法、基本的算术逻辑单元运算的方法ADD、AND、OR、NOT、NAND、NOR以及XOR将在下面图中以加密的数据叙述。这里在所有总线上(第10图)以及在存储器M1到M3(第10图)的数据都被假设是加密的。只以举例的方式,一较适合于暂时性密钥Kn的一逐位的XOR运算在第10图的A到F总线中被用来当作一简单的的加密方法。然而,由于执行频繁的密钥改变的可能性,此一加密方法仍然是安全的。这里”n”代表密钥的指数。例如,密钥Kn较适合是暂时性的而且仅只一次或者随后的几次运算是有效的。第1图的二个输入线路12、14上之二个输入总线A、B一最小的中央处理单元所必需的。基于较简单表示的理由,二个总线上的数据是逐位的以相同的密钥Kn加密。不过,在第1图的二个输入12、14上都使用不同的密钥当然也是可行的。此外,使用逐位的加密并不是强制性的,例如,一以二位、一以四位、一以六位或者是一以八位,但是中间的位不加密。藉由只加密一单一位之操作数,或者是常见的一操作数的单一位置而其它位置没有加密,达成某一安全等级。即使在下面的第2图(a)到第7图(b),一以一密钥Kn逐位的XOR加密一直是基本假设,不用证明的,任可何逆运算项是例如一XNOR运算也是适合于作为一加密算法。此外,任何更进一步之可逆加密算法可能会被用来当作加密算法。一先决条件就仅只是要找到某种历经逻辑处理之状态下的表示式,式中只有加密操作数ak、bk以及加密参数存在。例如是否定的或是联结的或是经常发生于当遵守数学定律时变得很明显之一数学方程式,例如项是以底下的那些例子模拟的算术计算之相等规则。如上面所说明的,为了简化描述,一发明的算术逻辑单元10在下面之列举的操作中,已假设操作数a以及b是一逐位的XOR加密,该加密操作数以及/或是加密结果是以一指数k来标明,而且指数n是个别的操作数以及/或是密钥中的第n个位之一计算指数。该在发明的计算单元之输入之加密的n位被以下列方式计算akn=an⊕kn---(1a)]]>bkn=bn⊕kn---(2a)]]>方程式(1a)以及(2a)的逆运算(解密运算)如下an=akn⊕kn---(1b)]]>bn=bkn⊕kn---(2b)]]>下面的计算由用于XOR运算的结果产生,也就是说如果算术逻辑单元执行一XOR运算an⊕bn⊕kn=akn⊕bkn⊕kn---(3)]]>下面方程式4提供方程式3的证明。an⊕bn⊕kn=an⊕kn⊕kn⊕bn⊕kn=akn⊕bkn⊕kn---(4)]]>方程式3在电路工程方面可以第2图来指定。为了提供一与一非加密操作数a、b的XOR运算相等的结果以及一与随后的结果之加密相等之结果,在这一情况下,发明的算术逻辑单元10包含如算术子运算之一与加密的输入参数ak、bk以及k彼此相互联结的三阶的XOR门120。因此可以看到明文参数a以及b并不会在第2图标的发明的算术逻辑单元之任何位置中出现。在该三阶XOR门的操作中,可以保证没有明文数据会在一内部线路中被看见。例如,二个串联的二阶XOR门是被禁止使用的,因为这情况下明文中间结果可能会发生。而三阶XOR门的操作中,一具有如第2图(b)值的查表用于输入参数kn、akn以及bkn以及(anXORbnXORkn)作为输出参数因而比较适合。该表也许能够被执行的项是一ROM。需要说明的是项第2A图所示的XOR运算执行仅仅是一种例证。当然,方程式4中间所呈现的表示式也可用以执行在电路工程方面。在这个情形下,四个XOR门需要相对应地线接。即使这个执行方式在电路工程上以及在计算时间上是很耗费的,它仍然有可能被选择用来迷惑潜在的攻击者。第2B图表示一真值表。开头的三栏描述密钥k、第一操作数a以及第二操作数b所有可能的组合。第4栏与第5栏呈现所有可能字节合之加密输入操作数。第6栏是二个非加密的操作数a以及b经由XOR运算的结果。第7栏描述假如二个非加密操作数经过XOR运算结果再加密后所获得的结果,就项经如第10图之电路826所执行的。第2B图的第8栏现在描述第一算术子运算120的结果。第2B图的倒数第2栏描述第二算术子运算122的结果,第9栏与第2B图的第7栏比较确认与算术子运算联结的正确性。接下来,引文的参照将与第3A图相关,其中,将呈现发明的计算单元用于AND运算之算术逻辑单元之执行。第3B图,一样依序的描述相对应的真值表。接下来的方程式5,一样依序的描述一轨迹由非加密操作数a以及b的AND运算以及随后的XOR加密,项是第10图所示电路之执行,到发明的执行方式如方程式5最后一栏所示。该AND算术逻辑单元包含全部五个运算子131到135,这些运算子是AND运算子以及OR运算子。第3B图的真值表依序地以用来联结加密操作数以及密钥的几个算术逻辑子运算确认发明的算术逻辑单元执行的正确性。在这一观点必须指出的是方程式5中的任何中间线路也许能在路线工程方面被执行,这根据那一门是可提供给线路设计者以及根据那一计算花费是被允许的。第3A图上在电路工程方面的执行在计算时间之项目是被假设成比起如方程式5之第4行在电路工程方面的执行在计算时间项目上更有效率。不过,这个执行可能也被用来制造对潜在攻击者的迷惑,就项前面所述那样。(an·bn)⊕kn=(aknbknkn‾+akn‾·bkn‾kn)⊕kn=]]>=aknbknkn‾+kn(aknbknkn‾‾·akn‾·bkn‾kn‾)=]]>=aknbknkn‾+kn[(akn‾+bkn‾+kn)·(akn+bkn+kn‾)]=]]>=aknbknkn‾+kn[aknbkn‾+bknakn‾+aknkn+bknkn+akn‾·kn‾+bkn‾·kn‾]=]]>=aknbknkn‾+aknbkn‾kn+bknakn‾kn+aknkn+bknkn=---(5)]]>=aknbknkn‾+aknkn+bknkn=]]>akn(bknkn‾+kn)+bkn(aknkn‾+kn)=]]>=akn(bkn+kn)+bkn(akn+kn)=]]>=aknbkn+aknkn+bknkn]]>接下来,引文的参照与方程式5相关并将以举例的方式呈现藉由明文计算规格转换成暗码计算规格之一转换方法制造一计算单元装置的基本发明概念。此一AND的运算是被提供成一明文的计算规格。如同在方程式5的情况下,一加密操作数akn更进一步被假设由一非加密操作数an以密钥kn经一XOR运算所产生。为了简化,操作数bn也做相同的假设。因此,bkn相当于非加密操作数an以密钥kn的XOR运算。在上面的例子中,明文的计算规格是aANDb。密文计算规格由于几个数学子运算产生而且加密单元依照这些子运算来执行,下面的结果由方程式5的第一行产生akn=ankn;bkn=bnkn(an·bn)kn=(5a)[(aknkn)·(bknkn)]kn;在方程式5a中,非加密的操作数an以及bn已经分别被以加密操作数akn与密钥kn以及bkn与密钥kn所取代,这个数学组合是加密算法的逆运算。因此,在方程式5a的右边代表随即地从明文计算规格中所获得的密文计算规格。假如一XOR运算是被用来作加密算法,此加密算法的逆运算再一次会是一XOR的函数,也就是说,它将与加密运算相等为了真正的达成执行,在任何想要的型态中转换方程式5a中目前只有加密操作数与密钥存在的右式之一密文规格现在是可能的。此一转变可能会被适当的数学定律等所影响,而此处以一XOR或者是一XNOR加密的情形来表示。当复数数学转换是执行时,最好是利用由方程式5a右式所得到的方程式5之最后一行作为一处理单元之一执行的基础。因此,由方程式5a可以看出用来与非加密操作数(an×bn)运算的明文规格如何被数学子运算藉由加密操作数与加密参数的组合之方式来取代非加密操作数转而换成一密文计算规格(其中此一数学子运算能以任何想要的数学转换的方式来执行),以使精确的符合作为一输入值,没有任何加密操作数存在的子运算包括一明文操作数的先决条件。假如只有一操作数被加密,先决条件即是对应读加密操作数之明文操作数不一定需要到处作为一数学子运算的一输入值。接下来,引文的参照与第4A图相关。第4A图表示二操作数a与b之OR运算的执行。(an+bn)⊕kn=akn‾bknkn‾+aknbkn‾·kn‾+aknbknkn‾+aknbknkn=]]>=aknkn‾+bknkn‾+aknbknkn=]]>=akn(kn‾+bknkn)+bkn(kn‾+aknkn)=---(6)]]>=akn(kn‾+bkn)+bkn(kn‾+akn)=]]>=aknkn‾+bknkn‾+aknbkn]]>方程式6又再一次表示一可依序跟随之路径来获得一组复数子运算,从利用非加密操作数运算开始,并且随后加密,此组复数子运算使得它们现在仅包括加密操作数以及加密参数。第4A图再一次显示在电路工程方面没有共同要素的最简易型式的OR加密运算,使用三个AND子运算141、142、143、二个OR子运算144、145以及一以密钥k之一否定与/或NOT之运算146之执行如何在第3A图中被影响。如同方程式6中所示的各式各样的中间结果,此算术逻辑单元当然可以用各种不同的方式来执行,例如,在本情况下需要有第一操作数ak的、第二操作数bk的以及/或是密钥k的加密否定。当比较第4B图的第七栏与第八栏,此真值表依序的表示在电路工程方面第4A图之算术逻辑单元之执行的正确性。接下来,引文参照第5A图显示一与加密操作数之NOR运算之执行,直到本段结束,引文的参照与接下来的方程式7有关。(an+bn‾)⊕kn=akn‾·bkn‾·kn‾+akn‾·bkn‾·kn+akn·bkn‾·kn+akn‾·bkn·kn=]]>=akn‾·bkn‾·+bkn‾·kn+akn‾·kn]]>(7)方程式7在电路工程方面的执行又再一次以第5A图来显示。在第5A图所示之彼此相互配合与联结之AND运算151到153、OR运算154、155以及NOT运算156与157是被用来当作是算术子运算。这里必须再一次的指出的是在第5A图以及本发明的其它所有实施例中,不仅只有在输入侧被加密的操作数ak以及bk出现,而且还有所有其它的中间结果,例如在151到153门下游方向的是来自加密运算的中间结果而不是明文操作数,因此在发明的计算单元中,在任何地方都不会有明文数据出现,而每个地方就只有加密的数据以及/或是来自加密数据的结果会被呈现。第5B图而且尤其是第7栏与第8栏的比较再一次显示第5A图在电路工程方面的正确性。这里必须再一次指出方程式7所显示的中间结果也可以在电路工程方面被执行。接下来,引文的参照与第6A图,显示一利用加密参数k在加密操作数ak、bk之一NAND运算之执行。方程式8再一次显示第6A图所用的算术。(anbn‾)⊕kn=akn‾·bkn‾·kn‾+akn‾·bkn‾·kn+akn·bkn‾·kn‾+akn‾·bkn·kn=]]>=akn‾·bkn‾·+bkn‾·kn‾+akn‾·kn‾]]>(8)发明的计算单元所用之第6A图之算术逻辑单元再一次如算术子运算一样包含三AND运算161到163、三NOT运算164到166、以及二OR运算167、168,它们如同第6A图所示彼此间是互相联结以及/或是与输入操作数联结来提供一介于非加密操作数a与b之NAND运算之加密结果。当比较第7栏与第8栏时,第6A图所示之真值表在一次强调第6A图运算之正确性接下来,引文的参照第7A图来呈现一ADD运算作为介于三操作数a、b以及c之间之一三操作数运算之例。因此下面的方程式9将是界定的方程式。skn=akn⊕bkn⊕ckn=an⊕kn⊕bn⊕kn⊕cn⊕kn=]]>(9)=anbncnkn当考虑一加法器的位片时,三操作数以及/或是三位操作数之运算导向一进位(carry,c),其中,第7图(a)所呈现的真值表中,在倒数第二栏以及倒数第三栏,介于非加密操作数a、b与c之间的ADD运算之进位被指定成cp,p代表是单存的,也就是相当于非加密的意思,而且其中发明之算术逻辑单元之ADD运算的进位ck被显示在倒数第二排。由方程式10所得出之进位ckn(n+1)(ckn)n+1=aknbkn+aknckn+bknckn---(10)]]>方程式10的执行被呈现在第7A图中。一发明的计算单元所用的第7A图之算术逻辑单元依序的包含复数算术子运算,来准确的吻合AND运算171到173以及OR运算179与180。依照第七b图中所示之真值表,在输出侧,进位(ckn)n+1因三输入操作数之ADD运算而产生,此进位再一次匹配得上假如三操作数被以一非加密的型态相加而且随后加密之进位。特别是,(ckn)n+1表示下一以密钥kn加密、增加位置的(第(n+1)次)位置(位片)之进位,该进位与现在位置n的密钥一起,在下一增加位置没有以密钥kn+1加密。这表示从密钥kn到密钥kn+1,(ckn)n+1的再加密将会根据一位片的执行而发生。方程式9与方程式10指示一加法器以加密操作数之执行,该加法器输出一加密聚集(aggregate)位或者是总计(sum)位s’(s’即skn)与一加密进位位c’(c’即是(ckn)n+1),除了二加密操作数外,加法器在输入侧得到一加密进位位。这样一加法器在技术上被称之为单一位全加法器。一单一位全加法器是被用来设计成发明的计算单元之一n位宽的全加法器。在这种情况下,根据本发明的一实施例,该单一位全加法器是与一位片(bitslice)或是一位片装置有关。二个位片装置的关联图标在第12A图。尤其第12A图表示第n个顺序的位之第一位片1200以及第n+1个顺序的位之第二位片1202。每一位片的核心是加密操作数所用之计算单元,如同第12A图之1204部分。如前所述,只要执行是利用加密的输入操作数以及一加密进位输入来创造一加密输出值,亦即加密聚集位以及加密进位位,任何其它的执行对一加密加法器是可行的。根据安全需要的程度,执行也可以用一明文与一加密聚集位或者是一加密进位位与一明码聚集位来组成。相较于一算术逻辑单元之全非加密执行,即使不是最高等级的安全防护之可能,这里已达成一安全等级的改善。第12图(a)所示之单一位的全加法器被下面的二个方程式所定义如下s=xyz(11)c=x·y+z·x+z·y(12)这里的加法器是被精选出来的以使得没有加密的密钥必须输入该单一位全加法器1204本身,而是根据本发明的实施例必须输入位片1202或1204。此外,该单一位全加法器1204是被排列使得对一加法器函数而言,加密进位位c’本身不会被运送到接下来增加的位片装置上,而是反转加密的进位位被传送。加密操作数a当前的位,即a’n+1,针对第n+1位被输入到位片的单一位全加法器之第一输入x。第二操作数当前的加密位,即b’n+1,被输入第一输入y。一根据前述之位片1200的进位输出位c’n之位被输入第三输入z。必须注意的是因为不同的加密密钥kn+1、kn分别使用在二个不同的位片装置1200与1202上,前述之位片装置之进位输出位可能无法直接被使用。这是为什么一前述的位片装置的进位输出位之再加密从前述的位片装置之加密密钥kn到当前的位片装置的加密密钥kn+1需要被执行的原因。一以一XOR运算的加密事件中,一再加密可能只藉由对位片1200之加密进位输出位进行一XOR再加密运算而被达成。此以一XOR门1206来表示。根据再加密密钥的定义,再加密密钥tn+1被以与二位片相关的二密钥之XOR运算所计算,即位片1202之kn+1之XOR运算以及位片1200之kn之XOR运算。位片装置1202再一次输出一进位输出位,然而,该输出位被以密钥kn+1加密而且必须相对应的按照下一增级而再被加密。而在位片1200的位输入也是一样的应用。在这里,可以得到下一降级(n-1)之一进位输出位,该位具有被以加密之XOR门1206再加密。假如,如同第12A图所示,复数字元切片被串联的连接,通常这样的结果是一并行加法器(第12B图),该加法器得到二加密操作数a’、b’以及针对个别位ti作为输入值之再加密密钥。第12B图之并行加法器作为一输入信号时,更可进一步针对一普通的并行加法器在一加法模式之操作下获得一设定成0之进位输入信号。很明显的,下面所要解释的进位选择加法器说明了可以用1来取代0。在输出侧,第12B图的加法器提供了加密型态的聚集位,即s0’、s1’到sN’。此外,在第12B图所显示的加法器中,作为一输出的信号,如果一进位位已被制造,加法器提供了一在加法器内部之最高位片之进位位。如第13图所示,由分别如第12A图与第12B图所示之一用以加密数据的并行加法器建立了一用以加密数据的进位选择加法器。进位选择加法器操作比简单的并行加法器更快速并且在「计算机演算与数值方法」(Hennessy与Patterson,第二版,MorganKaufmann出版社,1996)书中的附录A中被描述。然而,在上述提及的文献中所描述之熟知的进位选择加法器只用来非加密操作数的运算并指提供一非加密的结果。接下来,发明的加密操作数所用之提供加密输出信号进位选择加法器将参照第13图来说明。首先,参照第12A图所描述,提供一第一并行加法器1300来建立复数字元切片。尤其是该第一加法器1300包含一复数字元切片装置用以与操作数a’与b’的加密位从该操作数之一最少涵义位到该预算域的一第一边界位加法运算。在输出侧,该第一并行加法器1300针对操作数从最少涵义的位到第一边界位之所有位提供加密聚集位r’。在加法器1300中第一边界位所用之位片之进位输出信号被以一线路302的方式来输出以及以一反向密钥Tkn+1(再加密装置1303)来再加密并且被供给进一复用器型态的选择装置1304。进位选择加法器更进一步包含一第二加法器1306以及一第三加法器1308,它们的内部也是架构成如第一加法器1300一样而且可以任何更进一步之加法器如1310与1312也可以出现。为了再加密输入进位位,一更进一步的再加密装置(如1315)在每一介于前述的复用器输出与下阶段的复用器输入1之间的情形下出现了。第二加法器1306与第三加法器1308在它们的位输入分别与NOT(kn+1)和kn+1而提供最少涵义的位片。经加法器1306与加法器1308(选择函数)计算之聚集位的选择是否发生是根据在第一加法器经过再加密之后之一位输出1302中,是否已经产生一0或一1。假如已经产生一0,第二加法器1306的结果位被选择成结果位r’。但是如果在经过再加密之后一1产生,加法器1308之结果位会被选择成结果位r’。假如进位选择加法器如同第13图所示包括更多阶段,在第二阶段之正确进位信号之选择将会利用一进位选择装置1314来产生。尤其是,一被选择的进位输出信号是第二阶段的加法器之输出信号、结果位,也就是说聚集位被选择成结果r’。这里要说明的是「位选择」之实际选择是在线路1302上以一加密进位位来执行。因此不会有明文出现。这是因为分别被输进第二阶段与第三阶段的二个加法器NOT(kn+1)以及kn+1与NOT(km+1)以及km+1位可以说也是被视为是加密位,而且当以第12图(a)来看时,这些位被供给进所对应的加法器之位片的XOR门1206,因此经过一再加密的方式来以实际加密方法之密钥来加密。即使第13图只显示加密密钥t被供进加法器,但要注意的是,用来计算再加密密钥的运算也可以在加法器的位片内被执行。在这情况下,针对个别位之每一加密参数将ki必须输进加法器,而且两邻近位片之加密参数之XOR运算必须在加法器内来执行。然而,为了考量速度,在位片外计算加密参数是较适切的。最后,必须注意的是,前面所说明的不一定是单一位全加法器1204,任何其它方式也可以用来执行一单一位全加法器,这些方式必须能够进行与加密操作数运算以及输出一加密结果位以及/或是一加密进位位而且不要制造没必要之明文之中间结果。接下来,一发明的计算单元之更进一步的实施例参照第8A图到第8d图来说明,其中,执行复数操作数之运算的是一复用器运算。例如第8A图所示,如果取得二个输入操作数a’、b’(这里的「’」代表加密值),输入操作数的运算不是包含通过a’到输出而变成符号m’,而且在b’没通过,不然就是在b’变成输出符号m’,而且在输入符号a’没通过。这个选择是根据以加密参数k加密之加密控制符号x’。发明的计算单元当然也可以利用加密控制符号x’来多任务运算非加密的操作数a、b。2:1复用器与非加密操作数运算之定义的方程式以及/或所用的是明文计算规格之如下所示m=b·x+(13)a·x与之模拟,一3:1复用器之定义的方程式以及/或是明文计算规格之非加密操作数运算如下所示m=c·x·y+b·x·y+(14)a·x·y+a·x·y在第8C图针对一4:1复用器,明文计算规格之非加密操作数运算如下所示m=d·x·y+c·x·y+(15)b·x·y+a·x·y藉由以一加密控制信号以及一加密参数的组合来取代方程式11到13中之控制信号,加密的复用器运算所用的密文计算规格如今由明文计划规格中取得。在本例中,加密算法系一结合密钥之XOR运算。加密控制信号以及加密参数(其中系一加密算法之逆运算)的组合也因此再一次又是XOR运算。插入x’XORk到方程式11,将导致下面2:1复用器之密文计算规格产生,而几个转换已经被执行过,使之可标出一较佳的处理单元之执行方式2:1MUX:m′=b′·x′·k+a′·x′·k+(16)a′·x′·k+b′·x′·k在第8图(b)所示之复用器系一3:1之复用器,其中,控制信号包括二个位x、y。为了简化,该二控制位x、y被假设成系以相同的密钥加密,以得到加密控制位x’与y’。藉由分别插入x’XORk以及y’XORk到,定义的方程式12作为3:1之复用器所用之非加密操作数,密文计算规格已经被转换以使之能直接被处理单元所执行3:1MUX:m′=c′·x′·y′·k+b′·x′·y′·k+c′·x′·y′·k+(17)b′·x′·y′·k+a′·x′·y′+a′·x′·y′一模拟的方法导致下面的第8C图所示之4:1复用器所用之密文计算规格结果,此密文计算规格系包括很多个数学子运算,说明如下面的方程式184:1MUX:m′=d′·x′·y′·k+c′·x′·y′·k+b′·x′·y′·k+a′·x′·y′·k+(18)d′·x′·y′·k+c′·x′·y′·k+b′·x′·y′·k+a′·x′·y′·k接下来,在线路工程方方面,方程式14所示之计算规格之执行应该对照第8d图来说明,其中系利用只有AND运算、OR运算以及NOT运算之组合来作为数学子运算如第8d图所示,加密复用器的线路系包含二个加密过而且被多任务运算过的数据流a’、b’所用之输入80、81。如第8d图所示之发明的复用器处理单元更进一步包含一加密控制信号所用的输入82以及一加密运算参数k所用之输入83。如方程式16所示,线路4包含AND门84a、84b、84c、84d以及OR门85以及二反向器86a与86b,使之分别来创造方程式16所需要的否定版本之加密控制信号与否定版本之加密参数。对于这些熟练的技艺,第8d图再线路工程方面系一方程式16的直接的执行方式。藉由想要以适当的数学定律以任何方式转换方程式16,其它任何想要的执行方式可以以第8d图的模拟方式而找来用于处理单元。所有不同的执行方式具有的共通点系它们执行了方程式16所呈现的计算规格给2:1复用器,该计算规格包含复数数学子运算(84a-84d,85,86a,86b),其中系包含项是指是加密控制信号与加密参数之输入值,但不是明文控制信号。这里要说明的是在电子电路,复用器代表一基本的且不可或缺的组件。不同的执行变异存在于n对1的复用器,按照速度、区域或科技来最佳化。感谢本发明之概念,执行一攻击的可行性,尤其是以编码的方式探查以及侧频攻击如能量攻击法(DPA,differentialpoweranalysis)或(SPA,simplepoweranalysis)都被相当的限制住。如同前面所说明的,密码本之原理被用来当作是加密技术。所有之N个输入信号,也就是用来多任务运算的数据ai(i=2,...,N)以及控制线路xn(n=1...[log2N];[x]代表比x大的最小整数)被以加密的型态来出现。为了加密,根据Vernam密码,一逐位的模数2加法较适合与连续的变化密钥ki共同使用,且该密钥系对应XOR的运算。运算的结果立刻再密文空间中被产生,而不会在明码通信电文空间中产生中间的结果。作为密钥的独立而且相当于随机分布的比特流随后将导出一完全随机的电流数据与一随机的位型态之结果。SPA与DPA攻击因此将更难以执行。而由于复用器的执行而造成复杂度/操作时间的增加,例如当比较方程式16与方程式13时,相较于安全的提升并不是很重要。为了提供一复用器之n位宽度输入到一n位宽度输出,第8d图所示之电路,例如是针对该2:1复用器的每一位,必须重复。因此第8d图显示一复用器之位片都是以比1位更宽的数入信号。在前面,特别是那些计算单元之执行,其中二个操作数a、b被一运算所联结,而该执行被以相同的密钥k来加密,如参照第1图到第7B图所示。更进一步假设该结果也是以相同密钥来加密,如同项方程式5与5a所示之定义方程式以及/或是计算规格。这里,伊可行的攻击目标也许在加密处理器之密钥产生器。藉由同步截取密钥顺序以及加密输出的数据流,一攻击者可能可以推论出一明文之结果。攻击的代价被公认为是很高的,因为例如在一32位的中央处理器CPU上,同时间为了达到完全解密需有有64位被观察到。为了消除仍旧的也有可能被一攻击者停止作用之密钥产生器型态之局部攻击点,在某些特别高安全标准的情况下,使用复数不同的加密算法,或者是使用相同的加密算法但不同的加密密钥是比较适当的。这样再一次的增加了实现一成功的攻击所需要之代价。例如,参照第2A图所示,用以运算的操作数不在以相同的密钥加密,而是以不同的密钥来加密。这里较适合使用针对每一操作数的使用不同的密钥,来作为操作数a的精确密钥i与操作数b的精确密钥j。更进一步,最好使用一另外之密钥来加密运算的结果,参照如这里的k所示。加密运算的结果所用的密钥k可以可以选择与i和j无关。不过,最好是利用一密钥i与j的XOR运算来作为密钥k。这个方法的一优势在于截取一别的密钥流不再有足以用来作为重现演算的输出数据流的论据事实。因此,攻击的门坎于是被进一步的提升,而在硬件方面的花费则仅是稍微的增加而已。复数独立密钥产生器的使用更进一步增加抵抗密码破解分析的安全性,因为真正的密钥产生器不能产生任何独立的以及均等分布的随机数密钥。此外,藉由加密不会因一使密钥产生器无效之物理攻击而完全失去作用之论证事实,安全也可以提升。第9A图到第9c图显示发明的计算单元(ALU)作为一输入操作数a、b之加法器之三种不同的变型,并且具有一额外的进位输入cin、一总计输出r以及一进位输出cout。在它第9A图到第9c图所显示的型态中,该发明的计算单元进一步包括i、j用以针对不同的加密参数输入i、j以用于分别针对操作数a、b之不同的密钥。第9A图到第9c图所显示之计算单元,也与单一位的全加法器有关,并且在原理上操作的项前面关于第7A图与第7B图所说明的方式,该加法器包不括一作为输出密钥k之输入,因为相同的事物以被定义上i与j之XOR运算所交付。这具有的优势,即用以解密结果r所需要的密钥不会很明显地被发现而因此不会很明显地被截取。在第9A图,进位输入cin更进一步以密钥k加密,而进位输出cout也以密钥k加密。在第9B图,进位输入cin以相同的密钥k加密而操作数a以i,然而进位输出以密钥k加密。在第9c图显示一额外的另一种变型,其中,进位输入以一另外的密钥l加密,而进位输出也以这个相同另外密钥l来加密。即使没有在这里出现,一种以非加密进位输入或一非加密进位输出之变形也是可能的。下面的加密方程式应用到所有的密钥上a(i)=aXORib(j)=bXORjr(k)=rXORk(19)cin(k)=cinXORkcout(l)=coutXORl方程式19的加密方程式之逆运算是相同的,因为前面已经说明好几次,XOR函数的逆运算也再一次还是XOR函数。接下来,针对第9A图到第9c图的版本,将以逻辑运算以及加法器函数SUM(聚集函数)与进位(进位位)来概述。输入操作数a(i)、b(j)以及进位输入cin(k)(a变型)以及/或是cin(i)(b变型)助变数k=ij,a’=a(i)j,b’=b(j)i,逻辑运算明文计算规格密文计算规格ORr(k)←(a+b)(k)=(a′+b′)·k+a′·b′ANDr(k)←(a·b)(k)=(a′+b′)·k+a′·b′NORr(k)←(a+b)(k)=a′+b′+a′+b′·kNANDr(k)←(a·b)(k)=a′+b′+a′+b′·kXORr(k)←(ab)(k)=(a′b′)kXNORr(k)←(ab)(k)=(a′b′)k第9A图之变型含总计与进位输出之全加法器辅助变数a’=a(i)j,b’=b(j)i,c’=cin(k)SUMr(k)←a′b′c′CARRYcout(k)←a′·b′+a′·c′+b′·c′第9B图之变型含总计与进位输出之全加法器辅助变数a’=a(i)j,b’=b(j)i,c”=cin(i)SUMr(k)←a(i)b′c″CARRYcout(k)←(ai⊕c′′)·b′+a(i)‾·c′′‾·j+a(i)·c′′·j‾]]>第9c图之变型含总计与进位榆出之全加法器辅助变数a’=a(i)jl,b’=b(j)il,c’=cin(l)kSUMr(k)←a′b′cin(l)CARRYcout(l)←(a′·b′+a′·c′+b′·c′)k接下来,上面那些最简易型态密文计算规格说明该规格也许可以被处理单元直接执行而且只有包含数学子运算,该子运算不会有明码电信报文数据来作为输入操作数。针对全加法器(总计、进位),下面只有显示第9A图变型之计算规格。这些计算规格具有密钥k不会很明显地出现在任何地方因此不会被截取之优势。ANDr(k)←a(i)·b(j)·j+a(i)·b(j)·j+b(j)·i·j+b(j)·i·j(20)ORr(k)←a(i)·b(j)·j+a(i)·b(j)·j+b(j)·i·j+b(j)·i·j(21)NANDr(k)←a(i)·b(j)·j+a(i)·b(j)·j+b(j)·i·j+b(j)·i·j(22)NORr(k)←a(i)·b(j)·j+a(i)·b(j)·j+b(j)·i·j+b(j)·i·j(23)XORr(k)←a(i)b(j)(24)XNORr(k)←a(i)‾⊕b(j)---(25)]]>SUMr(k)←(a(i)j)(b(j)i)cin(k)(26)CARRYr(k)←(a(i)j)·(b(j)i)+(a(i)j)·cin(k)+(b(j)i)·cin(k)(27)处理单元的执行可能很容易的由方程式20到27的这些熟悉的技艺中推导出来,这里所使用之仅有的这些数学子运算一起构成计算规格是一AND运算、一NOT运算、一OR运算以及一XOR运算。必须进一步说明的是密钥k,结果r以之加密,相当于i与j的XOR运算,因此,发明的计算单元之处理单元并不具有一明显的输入作为密钥k。当相对于第10图所示之「不安全」密码编译处理器,第11A图显示一发明的密文处理器之方块图,该处理器不包括任何操作数解密(算术逻辑单元800上游的方块822与方决824)以及没有结果加密(算术逻辑单元800下游的方块826)。读计算逻辑单元800’系一针对至少一加密探作数之计算单元用以执行一复用器运算、一依照逻辑基本运算之逻辑运算、一单一位全加法器函数或是一进位选择加法算术等,如同前面所解释或将在后面所要解释。在第11图所示之密码编译处理器包含一加密/解密单元1100排列在介于外部存储器818以及高速缓存814之间,或者是如果没有提供高速缓存,介于外部存储器808以及总线808之间。根据本发明,最好在存储器以第一加密算法加密数据,而该数据传输在808总线上或是储存在高速缓存814是以一第二加密算法来加密。该第一与第二加密算法最好是彼此间相互差异,在这情况下,用以加密排列在外部存储器818的数据之加密算法是一所谓的「硬性」加密算法,项是例如一以例如DES算术或AES算术型态之昂贵的加密算法器。用以加密被导入发明的计算单元800’之数据的第二加密算法,更可为一「软性」且较不昂贵的加密算法。例如,与一密钥逐位之XOR操作是这样一软性加密算法。然而用于硬性加密算法的密钥是从不或者是仅少改变的,但是软性加密算法的密钥是经常改变,或者甚至每一次加密都改变,以达到一高等级的安全而也用于一软性加密运算。第11B图显示第11A图之方块1100之一更详细的描述。在数据由存储器818到总线8082或者到高速缓存814之顺向路径,最先被配置的是一DES解密单元1102、紧跟着是一XOR加密单元1104。藉由这样模拟,在数据回流路径,最先被配置的是一XOR解密单元1106,紧跟着是一DES加密单元1108。因此,以硬性加密型态而被储存在存储器818之数据最初被解密而且随后被以第二软性加密算法加密来导入算术逻辑单元800’用以一加密数据。如果有来自算术逻辑单元之被储存在外部存储器818中之结果,该结果最初是根据软性加密算法(方块1106)解密以及随后根据硬性加密算法(方块1108)加密。这个程序确认在一密码编译处理器中,不会有非加密的数据会在任何地方经由一总线来传输。唯一非加密数据出现之位置分别位在装置1102与1104、以及1106与1108之间。然而,这不是一通讯的总线,由于它广泛的延伸结构,在有限的花费下也许会被接受以及更进一步的被拦截。根据本发明,双阶段是加密是比较适合的,因为针对在外部存储器所出现的数据,一也许只能以硬性加密算法来达成之高等级的安全是需要的。然而,假如一算术逻辑单元被设计成硬性加密算法,该硬性算术会导致一非常昂贵之电路,而且它因此会导致一非常显著的速度损失。因此,尽管是在加密的数据上执行,执行一数据的转译最好是从硬性加密算法到软性加密算法使得该算术逻辑单元结果依然可管理而且具有一合理的计算速度。参考数字列表10算术逻辑单元12第一输入14第二输入16第三输入18输出80第一输入信号之输入81第二输入信号之输入82加密控制信号之输入83加密参数之输入84a-84d与门85或门86a、86b非门120异或门131与门132与门133与门134或门135或门141与门142与门143与门144或门145或门146非门151与门152与门153与门154或门155或门156非门157非门161与门162与门163与门164非门165非门166非门167或门168或门171与门172与门173与门179或门180或门800计算逻辑单元802第一总线804第二总线806输出总线808中央总线810第一存储器总线812第二存储器总线814高速缓存816第三存储器总线818外部存储器820寄存器组822第一解密装置824第二解密装置826加密装置828指令译码器1100加密/解密单元1102DES解密单元1104异或门加密单元1106异或门解密单元1108DES加密单元1200第n位之位片1202第n+1位之位片1204加密数据之单一位全加法器1206再加密装置1300第一并行加法器1302进位输出信号线路1303再加密装置1304选择装置1306第二加法器1308第三加法器1310更进一步之加法器1312更进一步之加法器1314进位选择加法器1315再加密装置权利要求1.一种用于在操作数上执行运算的计算单元,其中,至少一操作数系利用一加密算法与一加密参数予以加密,以便获得该运算之一加密结果,该计算单元包括一处理单元(10),其具有用于一操作数或该操作数之一否定版本之一输入,用于该至少一加密操作数或该至少一加密操作数之一否定版本之一输入,具有用于该至少一予以加密的操作数与该加密参数之一输入,以及用于该加密结果之一输出;该处理单元(10)系用以执行一或复数数学子运算,其共同导致由一明文计算规格所推导出之一密文计算规格用于未加密操作数之运算,使得该至少一加密操作数结果产生之明文规格中之该未加密操作数得以藉由该至少一加密操作数与该加密参数之一数学组合。而被置换,该数学组合系为该加密算法之一逆运算,以及该明文计算规格系根据该数学组合而转换成代表该密文计算规格之该一或复数数学子运算,该数学子运算作为一输入值仅会获得该加密操作数或该加密操作数之一否定版本,或是该加密操作数或该加密操作数之该否定版本与其它操作数之一组合。2.如权利要求第1项所述之计算单元,其中,该操作数系为数字,以及其中该至少一操作数系以一逐位(bitwise)之方式加密。3.如权利要求第1项或第2项所述之计算单元,其中,该加密算法包括该操作数在一做为一加密参数之密钥(key,k)上之一异或门运算(XOR)或是一反异或门运算(XNOR)。4.如前述权利要求中任何一项所述之计算单元,其中,该加密参数系为可变动的。5.如前述权利要求中任何一项所述之计算单元,其中,该操作数系为一复用器运算,用以选择一或复数输入信号作为一或复数输出信号,该一或复数输出信号之数目系小于该一或复数个输入信号之数目,该至少一加密操作数系为控制信号。6.如权利要求第5项所述之计算单元,其中,该运算系一2:1复用器运算,以及其中该处理单元系用以执行由下列方程式所提供之计算规格2:1MUX:m′=b′·x′·k+a′·x′·k+a′·x′·k+b′·x′·k其中m’系一加密输出信号,其中a’系一第一加密输入信号,以及b’系一第二加密输入信号,其中x’系一加密控制信号,以及其中k系一加密参数。7.如权利要求第6项所述之计算单元,其包括下述以执行该数学子运算一第一反向器(86a),用以否定该加密参数;一第二反向器(86b),用以反向该加密控制信号;第一、第二、第三、与第四与门(ANDgate)(84a至84d);以及一或门(ORgate)(85),用以对该第一至该第四与门(84a至84d)之输出信号值进行或运算(ORing),以获得该输出信号。8.如权利要求第5项所述之计算单元,其中,该运算系一3:1复用器运算,其中,该控制信号系包括两加密位x’、y’,以及其中该处理单元系用以执行下列计算规格3:1MUX:m′=c′·x′·y′·k+b′·x′·y′·k+c′·x′·y′·k′+b′·x′·y′·k+a′·x′·y′+a′·x′·y′其中,m’系该加密输出信号,其中a’、b’、c’分别为该第一、第二、与第三加密输入信号,其中x’系为该控制信号之该第一加密位,其中y’系为该控制信号之该第二加密位,以及其中k系为用以加密该第一与该第二控制信号之该加密参数。9.如权利要求第5项所述之计算单元,其中,该运算系一4:1复用器运算,其中,该控制信号系包括两加密位x’、y’,以及其中该处理单元系用以执行下列计算规格4:1MUX:m′=d′·x′·y′·k+c′·x′·y′·k+b′·x′·y′·k+a′·x′·y′·k+d′·x′·y′·k+c′·x′·y′·k+b′·x′·y′·k+a′·x′·y′·k其中,m’系该加密输出信号,其中a’、b’、c’、d’分别为该第一、第二、第三、与第四加密输入信号,其中x’系为该控制信号之该第一加密位,其中y’系为该控制信号之该第二加密位,以及其中k系为用以加密该控制信号之第一与该第二位之该加密参数。10.如权利要求第1项至第4项中任何一项所述之计算单元,其中,该运算系为至少两操作数上之一算术运算,该加密操作数系为能够执行该算术运算之该操作数其中之一。11.如权利要求第10项所述之计算单元,其中,该可执行该运算之更进一部之操作数亦经加密。12.如权利要求第11项所述之计算单元,其中,该算术运算系一异或门(XOR)运算,其中,该加密操作数系为二进制制,且于加密时,系以一逐位(bitwise)方式与一密钥(key)进行异或门运算(XORed),而其中该算术逻辑单元(10)包括下述以执行该数学子运算一异或门(XOR)运算装置(120),用以在该第一加密操作数(ak)、该第二加密操作数(bk)与该金钥(k)上运算,以获得该加密结果。13.如权利要求第11项所述之计算单元,其中,该算术运算系一及(AND)运算,其中,该操作数系为二进制制,且于加密时,系以一逐位(bitwise)方式与一密钥(key)进行异或门运算(XORed),而其中该算术逻辑单元(10)包括下述以执行该数学子运算一及(AND)运算装置(131),系用以在该第一加密操作数(ak)与该第二加密操作数(bk)上运算,以获得一第一中间结果;一更进一步的及(AND)运算装置(132),系用以在该第一加密操作数(ak)与该金钥(k)上运算,以获得一第二中间结果;一更进一步的及(AND)运算装置(133),系用以在该第二加密操作数(bk)与该金钥(k)上运算,以获得一第三中间结果;一或(OR)运算装置(134),系用以在该第一中间结果与该第二中间结果上运算,以获得一第四中间结果;一或(OR)运算装置(135),系用以在该第二中间结果与该第四中间结果上运算,以获得该加密结果;14.如权利要求第11项所述之计算单元,其中,该算术运算系一或(OR)运算,其中该操作数系为二进制制,且于加密时,系以一逐位(bitwise)方式与一密钥(key)进行异或门运算(XORed),以及其中该算术逻辑单元(10)包括下述以执行该数学子运算否定装置(146),系用以否定该金钥(k),以获得一否定金钥;第一及(AND)运算装置(141),系用以在该加密的第一操作数与该否定金钥上运算,以获得一第一中间结果;第二及(AND)运算装置(142),系用以在该第二加密操作数与该否定金钥上运算,以获得一第二中间结果;第三及(AND)运算装置(143),系用以在该第一加密操作数与该第二加密操作数(bk)上运算,以获得一第三中间结果;第一或(OR)运算装置(144),系用以在该第一中间结果与该第二中间结果上运算,以获得一第四中间结果;以及第二或(OR)运算装置(144),系用以在该第三中间结果与该第四中间结果上运算,以获得该算术运算之该加密结果。15.如权利要求第11项所述之计算单元,其中,该算术运算系一或非运算(NOR),其中,该操作数系为二进制制,且于加密时,系以一逐位(bitwise)方式与一密钥(key)进行异或门运算(XORed),而其中该算术逻辑单元(10)包括下述以执行该数学子运算第一及(AND)运算装置(151),系用以在该第一加密操作数(ak)与该第二加密操作数(bk)上运算,以获得一第一中间结果;第一否定装置(158),系用以否定该第一中间结果,以获得一否定第一中间结果;第二否定装置(156),系用以否定该第二加密操作数,以获得一否定第二加密操作数;第二及(AND)运算装置(152),系用以在该否定第二加密操作数与该金钥上运算,以获得一第三中间结果;第三否定装置(157),系用以否定该第一加密操作数,以获得一否定第一加密操作数;第三及(AND)运算装置(153),系用以在该否定第一加密操作数与该金钥上运算,以获得一第四中间结果;以及第一或(OR)运算装置(154),系用以在该否定第一中间结果与该第二中间结果上运算,以获得一第四中间结果;以及第二或(OR)运算装置(155),系用以在该第三中间结果与该第四中间结果上运算,以获得该算术运算之该加密结果。16.如权利要求第11项所述之计算单元,其中,该算术运算系一反及运算(NAND),其中,该操作数系为二进制制,且于加密时,系以一逐位(bitwise)方式与一密钥(key)进行异或门运算(XORed),而其中该算术逻辑单元(10)包括下述以执行该数学子运算第一及(AND)运算装置(161),系用以在该第一加密操作数与该第二加密操作数上运算,以获得一第一中间结果;第一否定装置(164),系用以否定该第一中间结果,以获得一否定第一中间结果;第二及(AND)运算装置(162),系用以在该否定第二加密运算(bk)与该金钥(k)上运算,以获得一第二中间结果;第二否定装置(165),系用以否定该第二加密操作数,以获得一否定第二加密操作数;第三及(AND)运算装置(163),系用以在该第一加密操作数(ak)与该金钥上运算,以获得一第三中间结果;第三否定装置(166),系用以否定该第三中间结果,以获得一否定第三中间结果;第一或(OR)运算装置(167),系用以在该否定第一中间结果与该第二中间结果上运算,以获得一第四中间结果;以及第二或(OR)运算装置(168),系用以在该第四中间结果与该第三中间结果上运算,以获得该算术运算之一加密结果。17.如权利要求第11项所述之计算单元,其中,该算术运算系一加法运算(ADD),其中,该操作数系为二进制制,且于加密时,系以一逐位(bitwise)方式与一密钥(key)进行异或门运算(XORed),以及其中该算术逻辑单元(10)包括下述以执行该数学子运算第一及(AND)运算装置(171),系用以在该第一加密操作数(akn)与该第二加密操作数(bkn)上运算,以获得一第一中间结果;第二及(AND)运算装置(172),系用以在该第一加密操作数(akn)与一第三加密操作数(ckn)上运算;第三及(AND)运算装置(173),系用以在该第二加密操作数(bkn)与该第三加密操作数(ckn)上运算,以获得一第三中间结果;第一或(OR)运算装置(179),系用以在该第一中间结果与该第二中间结果上运算,以获得一第四中间结果;以及第二或(OR)运算装置(180),系用以在该第三中间结果与该第四中间结果上运算,以获得该算术加法运算之一加密进位(carry)((ckn)n+1)。18.如权利要求第17项所述之计算单元,其中,该算术运算系为一否定运算(NOT),以及其中该算术逻辑单元更包括下述以执行该算术子运算额外的否定装置,系用以否定该加密进位(carry)((ckn)n+1)),以获得该否定运算(NOT)之该加密结果。19.如权利要求第11项所述之计算单元,其中,该第一加密操作数与该第二加密操作数系以两种不同的加密算法及/或加密金钥进行加密,以及其中该算术逻辑单元(10)更包括一更进一步的输入,用于一更进一步的加密参数。20.如前述权利要求中任何一项所述之计算单元,其中,该算术逻辑单元(10)系使得仅分别具有两输入之及(AND)运算装置与或(OR)运算装置被使用。21.如权利要求第1项所述之计算单元,其中,至少两操作数系被加密,该第一加密操作数系以第一加密算法与一第一加密参数予以加密,该第二加密操作数系以第二加密算法与一第二加密参数予以加密,其中该处理单元包括第二加密参数之又一输入;及其中该密文计算规模系由明文计算规格导出,而使得对应于该第二加密操作数之该非加密操作数系由该第二加密操作数及该第二加密参数之又一数学组合所取代,而该又一组合系该第二加密算法之逆运算。22.如权利要求第21项所述之计算单元,其中,该第一与该第二加密算法系为相同,以及该第一与该第二加密参数系为不相同。23.如权利要求第21项或第22项所述之计算单元,其中,该运算之一结果系以一第三加密算法与一第三加密参数予以加密,其中,由该复数数学子运算所导致之该密文计算规格系得自与非加密操作数进行运算之明文计算规格,使得该运算之一非加密结果得以与一更进一步的该运算之非加密结果与该第三加密参数之数学组合来置换。24.如权利要求第23项所述之计算单元,其中,该第三加密参数系为该第一与该第二加密参数之一组合。25.如权利要求第24项所述之计算单元,其中,所有的加密算法系由一异或门(XOR)运算所提供,其中该数学组合系由一异或门(XOR)运算所提供,以及其中该第三加密参数系为该第一与该第二加密参数之一异或门(XOR)运算。26.如权利要求第25项所述之计算单元,其中,该处理单元系用以执行由下列密文计算规格所分别提供之复数数学子运算-针对一及(AND)运算ANDr(k)←a(i)·b(j)·j+a(i)·b(j)·j+b(j)·i·j+b(j)·i·j;-针对一或(OR)运算ORr(k)←a(i)·b(j)·j+a(i)·b(j)·j+b(j)·i·j+b(j)·i·j;-针对一反及(NAND)运算NANDr(k)←a(i)·b(j)·j+a(i)·b(j)·j+b(j)·i·j+b(j)·i·j;-针对一反或(NOR)运算NORr(k)←a(i)·b(j)·j+a(i)·b(j)·j+b(j)·i·j+b(j)·i·j;-针对一异或门(XOR)运算XORr(k)←a(i)b(j);-针对一反异或门(XNOR)运算XNORr(k)←a(i)b(j);-针对藉下述总计位之一全加法器函数SUMr(k)←(a(i)j)(b(j)i)cin(k);或-针对藉一进位位之一全加法器函数CARRYr(k)←(a(i)j)·(b(j)i)+(a(i)j)·cin(k)+(b(j)i)·cin(k);其中a(i)系为以该第一加密参数加密之该第一操作数,其中b(j)系为以该第二加密参数加密之该第二操作数,其中i为该第一加密参数,其中j为该第二加密参数,其中k为该第三加密参数,其中该第三加密参数系与该第一与该第二加密参数之该异或门(XOR)运算相同,其中r(k)系为以该第三加密参数加密之该运算之该结果,以及其中cin(k)系为以该第三加密参数加密之一进位输入。27.一进位选择加法器,系用以累加第一与第二加密操作数(a、b),以获得一加密结果,该第一与第二加密操作数各包括复数字元,一加密参数(ki)系被提供于具有相同阶的该操作数之各位,该进位选择加法器系包括一第一并行加法器(1300),其具有复数字元切片(bitslice)装置(1200、1202),系用以将自该操作数之一最无效位的该操作数之该加密位加至该操作数之一第一边界位,以产生该第一并行加法器之一加密进位输出位;第一与第二并行加法器(1306、1308),其具有复数字元切片(bitslice)装置,系用以将自一比该第一边界位更有效位置之一位的该操作数之该加密位加至一第二边界位,其中,所有的位片装置系包括一如权利要求第17项或第26项所述之计算单元,该数学运算系一加法运算,在一进位输入藉由该第一操作数之一加密位、该第二操作数之一加密位与一加密进位输入位,以产生一内部加密聚集位与一内部加密进位输出位,其中,所有的位片装置系更进一步包括相关的再加密装置(1206),以达成在该位片装置中藉由一加密参数加密所得之该进位输入位之再加密,而得到现行的位片装置中具该加密参数之一加密,其中,该第二并行加法器(1306)与该第三并行加法器(1308)系为平行配置,其中,该第二并行加法器之该最无效位片装置的一密钥(kn+1)能够用以成为该第二并行加法器(1306)之一最无效之位片装置的一进位输入位,以及其中该第三并行加法器之该最无效位片装置的一反向密钥(NOTkn+1)能够用以成为该第三并行加法器(1309)之一最无效之位片装置的一进位输入位;一再加密装置(1303),系用以再加密该第一并行加法器之该进位输出位于该第二并行加法器之该最无效位片装置的一密钥基础;以及一选择装置(1304),系用于当该第一并行加法器(1300)之该再加密进位输出位系与逻辑值“0”相同时,选择该第二并行加法器之该加密聚集位,或是当该第一并行加法器(1300)之该再加密进位输出位系与逻辑值“1”相同时,选择该第三并行加法器(1308)之该加密聚集位,为加密聚集位。28.一密码编译处理器,系包括一存储器(818),系用以储存以第一加密算法加密之数据;一第一解密装置(1102),系用以解密储存于该存储器并由该第一加密算法加密之该数据;一第二加密单元(1104),系用于以一第二加密算法加密自该第一解密单元(1102)所获得之数据;一如权利要求第1项至第26项中任何一项所述之计算单元(800’),其系配置用以自该第二加密单元(1104)获得数据输出;一第二解密装置(1106),系用以根据该第二加密算法,解密该计算单元(800’)之数据输出;以及一第一加密装置(1108),系用以依照该第一加密算法,加密一自该第二解密单元输出之该数据,该第一加密单元系耦合至该存储器,使得以该第一加密算法加密之该数据能够被馈送至该存储器。29.如权利要求第28项所述之密码编译处理器,其中一缓冲存储器(814)系被配置于该第二加密装置(1104)与该计算单元(800’)间及/或该计算单元(800’)与该第二解密装置(1106)间之一信号流之方向,其中,根据该第二加密算法所加密之缓冲存储器(814)数据能够被储存。30.如权利要求第28项或第29项所述之密码编译处理器,其中,根据该第一加密算法之一加密运算比根据该第二加密算法之一加密运算需要更多的运算。31.如权利要求第28项至第30项中任何一项所述之密码处理器,其中,该第一解密装置(1102)与该第一加密装置(1108)系配置以较该第二解密装置(1108)与该第二加密装置(1104)为不频繁地执行密钥之变换。32.如权利要求第28项至第31项中任何一项所述之密码处编译理器,其中,该第二加密算法系根据下述形式之一Vernam算法c=(p+k)modk,其中,c系一加密的信息,其中p系一未加密的信息,其中k系一密钥,以及其中mod系一模数运算。33.如权利要求第32项所述之密码处理器,其中,该密钥系采用数值0或1,其中该明文信息与该加密信息系为一位,以及其中,下列方程式适用于该第二加密算法c=pXORk。34.如权利要求第33项所述之密码处理器,其中,该第二加密算法之一独立密钥系存在于各明文位。35.一种用于在操作数上执行运算的方法,其中,至少一该操作数系利用一加密算法与一加密参数予以加密,以便获得该运算之一加密结果,该方法包括执行一或复数数学子运算,其共同导致自一明文计算规格导出一密文计算规格于未加密操作数之运算,使得自该至少一加密操作数之该未加密操作数得以藉由该至少一加密操作数与该加密参数之一数学组合。而被置换,该数学组合系为该加密算法之一逆运算,以及该明文计算规格系根据该数学组合而转换成代表该密文计算规格之该一或复数数学子运算,该数学子运算作为一输入值仅会获得该加密操作数或该加密操作数之一否定版本,或是该加密操作数或该加密操作数之该否定版本与其它操作数之一组合。36.一种用于形成一计算单元装置,以于操作数上执行运算的方法,至少一该操作数系利用一加密算法与一加密参数予以加密,以便获得该运算之一加密结果,该方法包括提供一明文计算规格于该运算;置换在明文计算规格中的一对应于该加密操作数之一非加密操作数,为该加密操作数与该加密参数之一数学组合,以获得一密文计算规格,其中该数学组合系为该加密算法之一逆运算;转换所获得之该密文计算规格为一或复数数学子运算,该数学子运算作为一输入值仅会获得该加密操作数或该加密操作数之一否定版本,或是该加密操作数或该加密操作数之该否定版本与其它操作数之一组合;以及执行该一或复数数学子运算以获得该计算单元装置。37.一种用于形成一计算单元装置,以于操作数上执行运算的装置,至少一该操作数系利用一加密算法与一加密参数予以加密,以便获得该运算之一加密结果,该装置包括用以提供该运算一明文计算规格之一装置;用以置换在明文计算规格中的一对应于该加密操作数之一非加密操作数为该加密操作数与该加密参数之一数学组合之一装置,以获得一密文计算规格,其中该数学组合系为该加密算法之一逆运算;用以反向所获得之该密文计算规格为一或复数数学子运算之一装置,该数学子运算作为一输入值仅会获得该加密操作数或该加密操作数之一否定版本,或是该加密操作数或该加密操作数之该否定版本与其它操作数之一组合;以及用以执行该一或复数数学子运算之一装置,以获得该计算单元装置。全文摘要一种计算单元系包含第一加密操作数(a文档编号G06F21/72GK1701294SQ03802379公开日2005年11月23日申请日期2003年1月10日优先权日2002年1月16日发明者B·甘梅,F·克鲁格,O·克尼夫勒申请人:因芬尼昂技术股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1