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

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

Info

Publication number
CN1331013C
CN1331013C CNB038023792A CN03802379A CN1331013C CN 1331013 C CN1331013 C CN 1331013C CN B038023792 A CNB038023792 A CN B038023792A CN 03802379 A CN03802379 A CN 03802379A CN 1331013 C CN1331013 C CN 1331013C
Authority
CN
China
Prior art keywords
computing
centerdot
overbar
operand
operation number
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
CNB038023792A
Other languages
English (en)
Other versions
CN1701294A (zh
Inventor
B·甘梅
F·克鲁格
O·克尼夫勒
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 CN1701294A publication Critical patent/CN1701294A/zh
Application granted granted Critical
Publication of CN1331013C publication Critical patent/CN1331013C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)
  • Image Processing (AREA)

Abstract

一种计算单元系包含:第一加密操作数(ak)的一具有一第一输入(12)的算术逻辑单元,第二加密操作数(bk)的一第二输入(14),一加密参数(k)的一第三输入(16),以及该运算之一加密结果的一输出(18);该算术逻辑单元系形成以利用算术子运算的方式来运算该第一输入(12)、该第二输入(14)与该第三输入(16),并考虑操作数的加密形式,若该第一操作数被以一非加密状态而进行该算术运算时,以及若该第二操作数被以一非加密状态而进行该算术运算时,该输出获得一等于一可获得的值之加密结果,以及一获得的结果被接随加密,而在该算术逻辑单元(10)中,没有任何操作数解密被执行,而排除该计算单元传输在线的一截取攻击。

Description

计算单元及以加密操作数执行算术运算之方法
技术领域
本发明涉及一种数据处理单元,特别是指需要在高度安全等级下进行一数据或地址处理程序以用来防止物理攻击和拦截之处理单元。
背景技术
在计算和/或处理安全性相关的数据,惯用的方式常以微处理器(microprocessor)或安全凭证(security tokens)或其它需要在高度安全等级下进行一数据或地址处理程序以用来防止物理攻击和拦截之处理单元(processing units)。高速缓存(Cache)或缓冲(Buffer)存储器、寄存器组(Register sets)与微处理器上的传输路径如总线(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上的操作数解密。而为了保护算数逻辑单元的操作结果,一加密装置ENC 826(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,以让明文数据传输线路尽可能的变短,以便使这方式暗中毁损攻击。或者是说,明文数据传输的传输线路也许可以用技术的措施隐藏在芯片上。例如,利用特定的杂质分布或大量的假性线路,而在假性线路上,根本没有任何数据、或仅有迂回的、或假的数据再传输,以致一攻击者实际发现明文数据传输的传输线路再次变得很困难。
这些用来防护计算单元对抗攻击的传统策略是有问题的,在于这些策略需要额外的花费以及限制算术逻辑单元设计的自由度。设计自由度的限制是不利的,特别是此一算术逻辑单元如果是高效能的算术逻辑单元,需要执行多重的计算,尤其是如长整数的计算。为了使计算时间仍然维持在合理的限制内,这一算术逻辑单元应该被设计成最佳效能的类型。一客户端当然会从任何安全***中预期一高等级的安全性。然而,这个客户同时也会预期尚可忍受以及最好是很短的计算时间。很短的计算时间对一被市场上接受的安全***是很重要的,因为在安全确认中,冗长的计算时间将被客户端部分被认为是非常恼人的。
发明内容
本发明的目的在提供一简单而且不昂贵的概念用于执行加密操作数的运算装置上,一用来加密数据的进位选择加法器以及一密码编译处理器仍然提供一高等级的安全以对抗攻击。
本发明的目的将配合下面说明书内容中所述的计算单元、进位选择器及密码编译处理器等装置的构思、以及通过以下所述的一种用于在操作数上执行运算的方法和/或一种用于形成于一计算单元的装置而加以实现。
本发明系根据在整个计算单元都在加密操作数下来运作,最高等级的安全可以被达成之调查结果。因此,在处理单元的输入,不会有解密的执行,在处理单元或算术逻辑单元的输出,不会有加密的执行。根据此一发明,算术逻辑单元达到除了具有作为第一加密操作数的输入及第二加密操作数的输入外,也包括一加密参数的第三输入,该算术逻辑单元达成了根据密码计算规格来联结加密操作数以及加密参数,而考虑两操作数被加密的类型,在输出所获得的一加密结果和如果第一操作数经由非加密的状态下根据一明文计算规格逻辑运算以及如果第二操作数经由非加密的状态下根据一明文计算规格逻辑运算,而且所获得的结果随后加密后所获得的值是一样的。换句话说,在两加密操作数之间所执行的算术运算,项是例如一OR运算系一明文计算规格,被以数算术子运算(arithmetic sub-operation)来取代而形成密文计算规格,这些这样被选择的算术子运算有加密操作数、否定加密操作数、加密参数或者是否定加密参数作为输入。
如果需要,更进一步存在由加密输入操作数以及由密钥所获得的中间结果作为输入的子运算,使得明文输入操作数它们自己不会出现在算术逻辑单元的任何位置。为了增加安全等级,也倾向于不要有由明文输入操作数中间结果的存在。以OR运算为例,这即是指加密操作数和加密参数经由数AND运算和数OR的运算,如果需要,经由否定运算,使得算术逻辑单元提供一结果与假如加密输入操作数最初被解密,然后经由一单一OR运算,然后再加密所获得的结果相等。
如果方法是以一包含一加密演算以及一密钥的加密方法所组成,一种用以算术运算之不同的算术逻辑单元结构针对每次加密演算因而产生。在这情况下,安全等级也许仅以在每一次的运算或每几次的运算中以改变加密算法的密钥即被提升,这具有不同的密钥也许可以被使用在一相等的算术逻辑单元结构的优势,例如这使得一攻击者更困难地由算术逻辑单元的结构中演绎出明文的数据。
换句话说,发明的计算单元之处理单元已完成执行一或数数学上的子运算,一起产生一由与非加密操作数(non-encrypted operands)运算的规格演绎出的计算规格,这样类型至少有一非加密操作数被加密,其中至少有一加密运算结果会被以一至少有一加密操作数以及加密参数之数学组合所取代,该数学组合是以加密操作数加密算法的逆运算。
利用数学组合,明文计算规格被转换成的密文计算规格,包括一或数数学子运算,该运算只获得加密操作数或是相同的否定类别、或是加密操作数以和/或是相同的否定类别以及其它的操作数的组合作为输入量值。非加密操作数本身不能以数学的子运算之一输入量值出现在任何地方因此,不会被拦截。
很明显的,由一或数数学子运算产生的密文计算规格也许能以任何一种想要的型态达成。也就是说,这个数学子运算共同形成密文计算规格的方式可以是任何形式。所需要的仅只是他们共同形成这一非常的密文计算规格,提供了相对应的明文计算规格再经过结果加密之后相同结果。
一更深层的先决条件是以至少一被加密过的操作数作加密算法是一可逆的加密算法。假使例如这个加密算法是一逐位的XOR函数或XNOR函数,这加密算法的逆运算是简单的,而再一次的XOR和/或XNOR也是一样的。
本发明之概念也许基本上可实行在任何可逆的加密运算,这视每一情况可被判断的复杂的程度而定。最简单的加密计算单元实行策略是利用逐位XOR运算以及一密钥作为加密算法,因为该加密算法的逆运算是再一次以一XOR以及相同密钥的运算。当然,发生在XNOR函数也会相同。
在本发明的较佳实施例中,加密算法本身再一次是一逐位的算术运算,项是一XOR或一XNOR运算。考虑算术运算的转换规则,可找到一算术方程式,而且由算术运算开始到被计算以及从加密算法中,这一方程式,没有明文操作数而是加密操作数出现,在逻辑上相互联结并且/或利用子运算与加密参数联结,使之再一次地提供与假使最初输入参数是被解密的,经由算术运算,然后再一次加密,获得相同的结果。
本发明之一优势系在此发明的计算单元中,不再有明文在任何地方出现,而是加密操作数。因此,不再可能让一攻击者在计算单元的任何位置中截取到明文操作数。
本发明之一更进一步之优势在于假如用于本发明的计算单元所实行之加密方法被利用于储存存储器内的数据,在计算机的任何位置不再会有明文的出现,而只有加密数据以及加密参数是可见到的。假如本发明的计算单元是在一不能一直被保证位在一安全环境之芯片卡上执行,但是相反的,在攻击者方面以及在随意的相同配置下,攻击者不能由芯片卡上以任何方式获取任何明文数据,因为那里只有加密数据。因此被处理的明文数据在芯片上被读取之前会在一安全环境下加密,一安全的环境系指如一是固定的终端机,也许项是如只有固定人员才被授权可进入的自动提款机。芯片卡的接口已被建构,致使一攻击者无法提取自动提款机的明文数据,因为安全的终端机在到达它的晶面卡接口之前,已将明文数据加密,以及是因为安全的终端机以这样的方式加密明文,特别是加密算法遵照芯片卡上算术逻辑单元的结构。因此,在任何位置并不需要来回地加密,使得真正地存在一封闭***。如果将明文数据导入***的地方是在一安全的环境中,这个封闭的***也许能够容易的被保护。
本发明的一更进一步的优势在于算术逻辑单元可以视芯片上可提供的技术,而以多个不同的方式来执行。例如,子运算也许能以很多不同的方式来选择,这取决于算术的同等规则,例如可以是二进制式,仍然可以提供相同的结果,也就是说相同的真值表(Truth table)。假如存在一完整的***如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到图9C表示发明的计算单元作加法器执行之方块图,其中操作数以不同的密钥加密而且每位不同地加密;
图10表示一先前技术之计算单元,其具有一算术逻辑单元之向上游的解密以及一算术逻辑单元向下游的加密;
图11A表示一发明的具有一发明的计算单元之密文编译处理器方块图之方块图;
图11B表示图11A中之INC/DEC单元更详细之描述;
图12A表示加法器的二个字元切片,每个字元切片包含一一位全加法器作为发明的计算单元;
图12B表示一用以加密数据的并行加法器之基本方块图;以及
图13表示一在缀字本文区域以进位选择来加密数据的进位选择加法器之基本方块图。
具体实施方式
图1表示一发明的指少在二个操作数上执行算术运算之计算单元,这至少两操作数系加密操作数ak以及bk。发明的计算单元包含一算术逻辑单元ALU 10,该算术逻辑单元包括除了一第一加密操作数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上都使用不同的密钥当然也是可行的。此外,使用逐位的加密并不是强制性的,例如,一以二位、一以四位、一以六位或者是一以八位,但是中间的位不加密。利用只加密一单一位之操作数,或者是常见的一操作数的单一位置而其它位置没有加密,达成某一安全等级。
即使在下面的图2A到图7B,一以一密钥Kn逐位的XOR加密一直是基本假设,不用证明的,任可何逆运算项是例如一XNOR运算也是适合于作为一加密算法。此外,任何更进一步之可逆加密算法可能会被用来当作加密算法。一先决条件就仅只是要找到某种历经逻辑处理之状态下的表示式,式中只有加密操作数ak、bk以及加密参数存在。例如是否定的或是联结的或是经常发生于当遵守数学定律时变得很明显之一数学方程式,例如项是以底下的那些例子模拟的算术计算之相等规则。
如上面所说明的,为了简化描述,一发明的算术逻辑单元10在下面之列举的操作中,已假设操作数a以及b是一逐位的XOR加密,该加密操作数以和/或是加密结果是以一指数k来标明,而且指数n是个别的操作数以和/或是密钥中的第n个位之一计算指数。该在发明的计算单元之输入之加密的n位被以下列方式计算:
a k n = a n ⊕ k n - - - ( 1 a )
b k n = b n ⊕ k n - - - ( 2 a )
方程式(1a)以及(2a)的逆运算(解密运算)如下:
a n = a k n ⊕ k n - - - ( 1 b )
b n = b k n ⊕ k n - - - ( 2 b )
下面的计算由用于XOR运算的结果产生,也就是说如果算术逻辑单元执行一XOR运算:
a n ⊕ b n ⊕ k n = a k n ⊕ b k n ⊕ k n - - - ( 3 )
下面方程式4提供方程式3的证明。
a n ⊕ b n ⊕ k n = a n ⊕ k n ⊕ k n ⊕ b n ⊕ k n = = a k n ⊕ b k n ⊕ k n - - - ( 4 )
方程式3在电路工程方面可以图2来指定。为了提供一与一非加密操作数a、b的XOR运算相等的结果以及一与随后的结果之加密相等之结果,在这一情况下,发明的算术逻辑单元10包含如算术子运算之一与加密的输入参数ak、bk以及k彼此相互联结的三阶的XOR门120。因此可以看到明文参数a以及b并不会在第2图标的发明的算术逻辑单元之任何位置中出现。
在该三阶XOR门的操作中,可以保证没有明文数据会在一内部线路中被看见。例如,二个串联的二阶XOR门是被禁止使用的,因为这情况下明文中间结果可能会发生。而三阶XOR门的操作中,一具有如图2B值的查表用于输入参数kn、akn以及bkn以及(anXOR bnXOR kn)作为输出参数因而比较适合。该表也许能够被执行的项是一ROM。
需要说明的是项图2A所示的XOR运算执行仅仅是一种例证。当然,方程式4中间所呈现的表示式也可用以执行在电路工程方面。在这个情形下,四个XOR门需要相对应地线接。即使这个执行方式在电路工程上以及在计算时间上是很耗费的,它仍然有可能被选择用来迷惑潜在的攻击者。
图2B表示一真值表。开头的三栏描述密钥k、第一操作数a以及第二操作数b所有可能的组合。第4栏与第5栏呈现所有可能字节合之加密输入操作数。第6栏是二个非加密的操作数a以及b经由XOR运算的结果。第7栏描述假如二个非加密操作数经过XOR运算结果再加密后所获得的结果,就项经如图10之电路826所执行的。
图2B的第8栏现在描述第一算术子运算120的结果。图2B的倒数第2栏描述第二算术子运算12的结果,第9栏与图2B的第7栏比较确认与算术子运算联结的正确性。
接下来,引文的参照将与图3A相关,其中,将呈现发明的计算单元用于AND运算之算术逻辑单元之执行。图3B,一样依序的描述相对应的真值表。接下来的方程式5,一样依序的描述一轨迹由非加密操作数a以及b的AND运算以及随后的XOR加密,项是图10所示电路之执行,到发明的执行方式如方程式5最后一栏所示。该AND算术逻辑单元包含全部五个运算子131到135,这些运算子是AND运算子以及OR运算子。图3B的真值表依序地以用来联结加密操作数以及密钥的几个算术逻辑子运算确认发明的算术逻辑单元执行的正确性。在这一观点必须指出的是方程式5中的任何中间线路也许能在路线工程方面被执行,这根据那一门是可提供给线路设计者以及根据那一计算花费是被允许的。图3A上在电路工程方面的执行在计算时间之项目是被假设成比起如方程式5之第4行在电路工程方面的执行在计算时间项目上更有效率。不过,这个执行可能也被用来制造对潜在攻击者的迷惑,就项前面所述那样。
( a n · b n ) ⊕ k n = ( a k n b k n k n ‾ + a k n ‾ · b k n ‾ k n ) ⊕ k n =
= a k n b k n k n ‾ + k n ( a k n b k n k n ‾ ‾ · a k n ‾ · b k n ‾ k n ‾ ) =
= a k n b k n k n ‾ + k n [ ( a k n ‾ + b k n ‾ + k n ) · ( a k n + b k n + k n ‾ ) ] =
= a k n b k n k n ‾ + k n [ a k n b k n ‾ + b k n a k n ‾ + a k n k n + b k n k n + a k n ‾ · k n ‾ + b k n ‾ · k n ‾ ] =
= a k n b k n k n ‾ + a k n b k n ‾ k n + b k n a k n ‾ k n + a k n k n + b k n k n = - - - ( 5 )
= a k n b k n k n ‾ + a k n k n + b k n k n =
= a k n ( b k n k n ‾ + k n ) + b k n ( a k n k n ‾ + k n ) =
= a k n ( b k n + k n ) + b k n ( a k n + k n ) =
= a k n b k n + a k n k n + b k n k n
接下来,引文的参照与方程式5相关并将以举例的方式呈现利用明文计算规格转换成暗码计算规格之一转换方法制造一计算单元装置的基本发明概念。此一AND的运算是被提供成一明文的计算规格。
如同在方程式5的情况下,一加密操作数akn更进一步被假设由一非加密操作数an以密钥kn经一XOR运算所产生。为了简化,操作数bn也做相同的假设。因此,bkn相当于非加密操作数an以密钥kn的XOR运算。在上面的例子中,明文的计算规格是:a AND b。密文计算规格由于几个数学子运算产生而且加密单元依照这些子运算来执行,下面的结果由方程式5的第一行产生:
a kn = a n ⊕ k n ; b kn = b n ⊕ k n
( a n · b n ) ⊕ k n = - - - ( 5 a )
[ ( a kn ⊕ k n ) · ( b kn ⊕ k n ) ] ⊕ k n ;
在方程式5a中,非加密的操作数an以及bn已经分别被以加密操作数akn与密钥kn以及bkn与密钥kn所取代,这个数学组合是加密算法的逆运算。因此,在方程式5a的右边代表随即地从明文计算规格中所获得的密文计算规格。
假如一XOR运算是被用来作加密算法,此加密算法的逆运算再一次会是一XOR的函数,也就是说,它将与加密运算相等。
为了真正的达成执行,在任何想要的型态中转换方程式5a中目前只有加密操作数与密钥存在的右式之一密文规格现在是可能的。此一转变可能会被适当的数学定律等所影响,而此处以一XOR或者是一XNOR加密的情形来表示。
当多个数学转换是执行时,最好是利用由方程式5a右式所得到的方程式5之最后一行作为一处理单元之一执行的基础。因此,由方程式5a可以看出用来与非加密操作数(an×bn)运算的明文规格如何被数学子运算利用加密操作数与加密参数的组合之方式来取代非加密操作数转而换成一密文计算规格(其中此一数学子运算能以任何想要的数学转换的方式来执行),以使精确的符合作为一输入值,没有任何加密操作数存在的子运算包括一明文操作数的先决条件。
假如只有一操作数被加密,先决条件即是对应该加密操作数之明文操作数不一定需要到处作为一数学子运算的一输入值。
接下来,引文的参照与图4A相关。图4A表示二操作数a与b之OR运算的执行。
( a n + b n ) ⊕ k n = a k n ‾ b k n k n ‾ + a k n b k n ‾ · k n ‾ + a k n b k n k n ‾ + a k n b k n k n =
= a k n k n ‾ + b k n k n ‾ + a k n b k n k n =
= a k n ( k n ‾ + b k n k n ) + b k n ( k n ‾ + a k n k k n ) = - - - ( 6 )
= a k n ( k n ‾ + b k n ) + b k n ( k n ‾ + a k n ) =
= a k n k n ‾ + b k n k n ‾ + a k n b k n
方程式6又再一次表示一可依序跟随之路径来获得一组多个子运算,从利用非加密操作数运算开始,并且随后加密,此组多个子运算使得它们现在仅包括加密操作数以及加密参数。图4A再一次显示在电路工程方面没有共同要素的最简易型式的OR加密运算,使用三个AND子运算141、142、143、二个OR子运算144、145以及一以密钥k之一否定与/或NOT之运算146之执行如何在图3A中被影响。如同方程式6中所示的各式各样的中间结果,此算术逻辑单元当然可以用各种不同的方式来执行,例如,在本情况下需要有第一操作数ak的、第二操作数bk的以和/或是密钥k的加密否定。
当比较图4B的第七栏与第八栏,此真值表依序的表示在电路工程方面图4A之算术逻辑单元之执行的正确性。
接下来,引文参照图5A显示一与加密操作数之NOR运算之执行,直到本段结束,引文的参照与接下来的方程式7有关。
( a n + b n ‾ ) ⊕ k n = a k n ‾ · b k n ‾ · k n ‾ + a k n ‾ · b k n ‾ · k n + a k n · b k n ‾ · k n + a k n ‾ · b k n k n = - - - ( 7 )
= a k n ‾ · b k n ‾ · + b k n ‾ · k n + a k n ‾ · k n
方程式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所用的算术。
( a n b n ‾ ) ⊕ k n = a k n · ‾ b k n ‾ · k n ‾ + a k n ‾ · b k n ‾ · k n + a k n · b k n · ‾ k n ‾ + a k n ‾ · b k n · k n = - - - ( 8 )
= a k n ‾ · b k n ‾ · + b k n ‾ · k n ‾ + a k n ‾ · k n ‾
发明的计算单元所用之图6A之算术逻辑单元再一次如算术子运算一样包含三AND运算161到163、三NOT运算164到166、以及二OR运算167、168,它们如同图6A所示彼此间是互相联结以和/或是与输入操作数联结来提供一介于非加密操作数a与b之NAND运算之加密结果。当比较第7栏与第8栏时,图6A所示之真值表在一次强调图6A运算之正确性。
接下来,引文的参照图7A来呈现一ADD运算作为介于三操作数a、b以及c之间之一三操作数运算之例。因此下面的方程式9将是界定的方程式。
s k n = a k n ⊕ b k n ⊕ c k n = a n ⊕ k n ⊕ b n ⊕ k n ⊕ c n ⊕ k n = - - - ( 9 )
= a n ⊕ b n ⊕ c n ⊕ k n
当考虑一加法器的字元切片时,三操作数以和/或是三位操作数之运算导向一进位(carry,c),其中,图7A所呈现的真值表中,在倒数第二栏以及倒数第三栏,介于非加密操作数a、b与c之间的ADD运算之进位被指定成cp,p代表是单存的,也就是相当于非加密的意思,而且其中发明之算术逻辑单元之ADD运算的进位ck被显示在倒数第二排。由方程式10所得出之进位ckn(n+1)
( c kn ) n + 1 = a k n b k n + a k n c k n + b k n c k n - - - ( 10 )
方程式10的执行被呈现在图7A中。一发明的计算单元所用的图7A之算术逻辑单元依序的包含多个算术子运算,来准确的吻合AND运算171到173以及OR运算179与180。依照图7B中所示之真值表,在输出侧,进位(ckn)n+1因三输入操作数之ADD运算而产生,此进位再一次匹配得上假如三操作数被以一非加密的型态相加而且随后加密之进位。特别是,(ckn)n+1表示下一以密钥kn加密、增加位置的(第(n+1)次)位置(字元切片)之进位,该进位与现在位置n的密钥一起,在下一增加位置没有以密钥kn+1加密。这表示从密钥kx到密钥kn+1,(ckn)n+1的再加密将会根据一字元切片的执行而发生。
方程式9与方程式10指示一加法器以加密操作数之执行,该加法器输出一加密聚集(aggregate)位或者是总计(sum)位s’(s’即skn)与一加密进位位c’(c’即是(ckn)n+1),除了二加密操作数外,加法器在输入侧得到一加密进位位。这样一加法器在技术上被称之为单一位全加法器。
一单一位全加法器是被用来设计成发明的计算单元之一n位宽的全加法器。在这种情况下,根据本发明的一实施例,该单一位全加法器是与一字元切片(bit slice)或是一字元切片装置有关。二个字元切片装置的关联图标在图12A。尤其图12A表示第n个顺序的位之第一字元切片1200以及第n+1个顺序的位之第二字元切片1202。每一字元切片的核心是加密操作数所用之计算单元,如同图12A之1204部分。如前所述,只要执行是利用加密的输入操作数以及一加密进位输入来创造一加密输出值,亦即加密聚集位以及加密进位位,任何其它的执行对一加密加法器是可行的。根据安全需要的程度,执行也可以用一明文与一加密聚集位或者是一加密进位位与一明码聚集位来组成。相较于一算术逻辑单元之全非加密执行,即使不是最高等级的安全防护之可能,这里已达成一安全等级的改善。
图12A所示之单一位的全加法器被下面的二个方程式所定义如下:
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,第二版,Morgan Kaufmann出版社,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位可以说也是被视为是加密位,而且当以图12A来看时,这些位被供给进所对应的加法器之字元切片的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 ‾ +
a · x - - - ( 13 )
与之模拟,一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’XOR k到方程式11,将导致下面2∶1复用器之密文计算规格产生,而几个转换已经被执行过,使之可标出一较佳的处理单元之执行方式:
2∶1 MUX:
m ′ = b ′ · x · ′ k +
a ′ · x - ′ · k +
a ′ · x ′ · k - + - - - ( 16 )
b ′ · x - ′ · k -
在第8图(b)所示之复用器系一3∶1之复用器,其中,控制信号包括二个位x、y。为了简化,该二控制位x、y被假设成系以相同的密钥加密,以得到加密控制位x’与y’。藉由分别***x’XOR k以及y’XORk到,定义的方程式12作为3∶1之复用器所用之非加密操作数,密文计算规格已经被转换以使之能直接被处理单元所执行:
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 - ′
一模拟的方法导致下面的图8C所示之4∶1复用器所用之密文计算规格结果,此密文计算规格系包括很多个数学子运算,说明如下面的方程式18:
4∶1MUX: m ′ = d ′ · x - ′ · y - ′ · k +
c ′ · x ′ y - ′ · k +
b ′ · x - ′ · y ′ · k +
a ′ · x ′ · y ′ · k +
d ′ · x ′ · y ′ · k - + - - - ( 18 )
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,differential power analysis)或(SPA,simple power analysis)都被相当的限制住。如同前面所说明的,密码本之原理被用来当作是加密技术。所有之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显示一额外的另一种变型,其中,进位输入以一另外的密钥1加密,而进位输出也以这个相同另外密钥1来加密。即使没有在这里出现,一种以非加密进位输入或一非加密进位输出之变形也是可能的。
下面的加密方程式应用到所有的密钥上:
a(i)=a XOR  i
b(j)=b XOR  j
r(k)=r XOR  k    (19)
cin (k)=cin XOR  k
cout (l)=cout XOR  l
方程式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,
逻辑运算:
明文计算规格  密文计算规格
OR: r ( k ) ← ( a + b ) ( k ) = ( a ′ + b ′ ) · k - + a ′ · b ′
AND:r(k)←(a·b)(k)=(a′+b′)·k+a′·b′
NOR: r ( k ) ← ( a + b ‾ ) ( k ) = a ′ + b ′ ‾ + a ′ + b ′ ‾ · k
NAND: r ( k ) ← ( a · b ‾ ) ( k ) = a ′ + b ′ ‾ + a ′ + b ′ ‾ · k ‾
XOR:r(k)←(ab)(k)=(a′b′)k
XNOR: r ( k ) ← ( a ⊕ b ‾ ) ( k ) = ( a ′ ⊕ b ′ ) ⊕ k ‾
图9A之变型:含总计与进位输出之全加法器:
辅助变数:a’=a(i)j,b’=b(j)i,c’=cin (k)
SUM:r(k)←a′b′c′
CARRY:cout (k)←a′·b′+a′·c′+b′·c′
图9B之变型:含总计与进位输出之全加法器:
辅助变数:a’=a(i)j,b’=b(j)i,c”=cin (i)
SUM:r(k)←a(i)b′c″
CARRY: c out ( k ) ← ( a ( i ) ⊕ c ' ' ) · b ′ + a ( i ) ‾ · c ' ' ‾ · j + a ( i ) · c ' ' · j ‾
图9C之变型:含总计与进位输出之全加法器:
辅助变数:a’=a(i)jl,b’=b(j)il,c’=cin (l)k
SUM:r(k)←a′b′cin (l)
CARRY:cout (l)←(a′·b′+a′·c′+b′·c′)k
接下来,上面那些最简易型态密文计算规格说明该规格也许可以被处理单元直接执行而且只有包含数学子运算,该子运算不会有明码电信报文数据来作为输入操作数。针对全加法器(总计、进位),下面只有显示图9A变型之计算规格。这些计算规格具有密钥k不会很明显地出现在任何地方因此不会被截取之优势。
AND: r ( k ) ← a ( i ) · b ( j ) · j ‾ + a ‾ ( i ) · b ‾ ( j ) · j + b ( j ) · i ‾ · j + b ‾ ( j ) · i · j ‾ - - - ( 20 )
OR: r ( k ) ← a ( i ) · b - ( j ) · j - + a - ( i ) · b ( j ) · j + b ( j ) · i - · j - + b - ( j ) · i · j - - - ( 21 )
NAND: r ( k ) ← a - ( i ) · b ( j ) · j - + a ( i ) · b - ( j ) · j + b ( j ) · i · j + b - ( j ) · i - · j - - - - ( 22 )
NOR: r ( k ) ← a - ( i ) · b - ( j ) · j - + a ( i ) · b ( j ) · j + b ( j ) · i · j - + b - ( j ) · i - · j ( 23 )
XOR:r(k)←a(i)b(j)    (24)
XNOR: r ( k ) ← a ( i ) ‾ ⊕ b ( j ) - - - ( 25 )
SUM:r(k)←(a(i)j)(b(j)i)cin (k)    (26)
CARRY:r(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再加密装置

Claims (37)

1.一种用于在操作数上执行运算的计算单元,其中,至少一操作数利用一加密算法与一加密参数予以加密,以便获得该运算的一加密结果,该计算单元包括:
一处理单元(10),其具有用于一操作数或该操作数的一否定版本的一输入,用于该至少一加密操作数或该至少一加密操作数的一否定版本的一输入,具有用于该至少一予以加密的操作数与该加密参数的一输入,以及用于该加密结果的一输出;
该处理单元(10)用于执行一或多个数学子运算,其共同导致由一明文计算规格所推导出的一密文计算规格用于未加密操作数的运算,使得该至少一加密操作数结果产生的明文规格中的该未加密操作数得以利用该至少一加密操作数与该加密参数的一数学组合而被置换,该数学组合为该加密算法的一逆运算,以及
该明文计算规格根据该数学组合而转换成代表该密文计算规格的该一或多个数学子运算,该数学子运算作为一输入值仅会获得该加密操作数或该加密操作数的一否定版本,或是该加密操作数或该加密操作数的该否定版本与其它操作数的一组合。
2.如权利要求1所述的计算单元,其中,该操作数为数字,以及其中该至少一操作数以一逐位的方式加密。
3.如权利要求1所述的计算单元,其中,该加密算法包括该操作数在一做为一加密参数的密钥上的一异或运算或是一反异或运算。
4.如权利要求1所述的计算单元,其中,该加密参数为可变动的。
5.如权利要求1所述的计算单元,其中,该操作数为一复用器运算,用于选择一或多个输入信号作为一或多个输出信号,该一或多个输出信号的数目小于该一或多个输入信号的数目,
该至少一加密操作数为控制信号。
6.如权利要求5所述的计算单元,其中,该运算是一2∶1复用器运算,以及其中该处理单元用于执行由下列方程式所提供的计算规格:
2 : 1 MUX : m ′ = b ′ · x ′ · k +
a ' · x ‾ ' · k +
a ' · x ' · k ‾ +
b ' · x ‾ ' · k ‾
其中m’是一加密输出信号,其中a’是一第一加密输入信号,以及b’是一第二加密输入信号,其中x’是一加密控制信号,以及其中k是是一加密参数。
7.如权利要求6所述的计算单元,其包括下述以执行该数学子运算:
一第一反向器(86a),用于否定该加密参数;
一第二反向器(86b),用于反向该加密控制信号;
第一、第二、第三、与第四与(84a至84d);以及
一或(85),用于对该第一至该第四与的输出信号值进行或运算,以获得该输出信号。
8.如权利要求5所述的计算单元,其中,该运算是一3∶1复用器运算,其中,该控制信号包括两加密位x’、y’,以及其中该处理单元用于执行下列计算规格:
3 : 1 MUX : 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 : 1 MUX : 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所述的计算单元,其中,该运算为至少两操作数上的一算术运算,该加密操作数为能够执行该算术运算的该操作数其中之一。
11.如权利要求10所述的计算单元,其中,该可执行该运算的更进一步的操作数亦经加密。
12.如权利要求11所述的计算单元,其中,该算术运算是一异或运算,其中,该加密操作数为二进制,且于加密时,以一逐位方式与一密钥进行异或运算,而其中该算术逻辑单元(10)包括下述以执行该数学子运算:
一异或运算装置(120),用于在该第一加密操作数、该第二加密操作数与该密钥上运算,以获得该加密结果。
13.如权利要求11所述的计算单元,其中,该算术运算是一与运算,其中,该操作数为二进制,且于加密时,以一逐位方式与一密钥进行异或运算,而其中该算术逻辑单元(10)包括下述以执行该数学子运算:
一与运算装置(131),用于在该第一加密操作数与该第二加密操作数上运算,以获得一第一中间结果;
一更进一步的与运算装置(132),用于在该第一加密操作数与该密钥上运算,以获得一第二中间结果;
一更进一步的与运算装置(133),用于在该第二加密操作数与该密钥上运算,以获得一第三中间结果;
一或运算装置(134),用于在该第一中间结果与该第二中间结果上运算,以获得一第四中间结果;
一或运算装置(135),用于在该第二中间结果与该第四中间结果上运算,以获得该加密结果;
14.如权利要求11所述的计算单元,其中,该算术运算是一或运算,其中该操作数为二进制,且于加密时,以一逐位方式与一密钥进行异或运算,以及其中该算术逻辑单元(10)包括下述以执行该数学子运算:
否定装置(146),用于否定该密钥,以获得一否定密钥;
第一与运算装置(141),用于在该加密的第一操作数与该否定密钥上运算,以获得一第一中间结果;
第二与运算装置(142),用于在该第二加密操作数与该否定密钥上运算,以获得一第二中间结果;
第三与运算装置(143),用于在该第一加密操作数与该第二加密操作数上运算,以获得一第三中间结果;
第一或运算装置(144),用于在该第一中间结果与该第二中间结果上运算,以获得一第四中间结果;以及
第二或运算装置(144),用于在该第三中间结果与该第四中间结果上运算,以获得该算术运算的该加密结果。
15.如权利要求11所述的计算单元,其中,该算术运算是一或非运算,其中,该操作数为二进制,且于加密时,以一逐位方式与一密钥进行异或运算,而其中该算术逻辑单元(10)包括下述以执行该数学子运算:
第一与运算装置(151),用于在该第一加密操作数与该第二加密操作数上运算,以获得一第一中间结果;
第一否定装置(158),用于否定该第一中间结果,以获得一否定第一中间结果;
第二否定装置(156),用于否定该第二加密操作数,以获得一否定第二加密操作数;
第二与运算装置(152),用于在该否定第二加密操作数与该密钥上运算,以获得一第三中间结果;
第三否定装置(157),用于否定该第一加密操作数,以获得一否定第一加密操作数;
第三与运算装置(153),用于在该否定第一加密操作数与该密钥上运算,以获得一第四中间结果;以及
第一或运算装置(154),用于在该否定第一中间结果与该第二中间结果上运算,以获得一第四中间结果;以及
第二或运算装置(155),用于在该第三中间结果与该第四中间结果上运算,以获得该算术运算的该加密结果。
16.如权利要求11所述的计算单元,其中,该算术运算是一反与运算,其中,该操作数为二进制,且于加密时,以一逐位方式与一密钥进行异或运算,而其中该算术逻辑单元(10)包括下述以执行该数学子运算:
第一与运算装置(161),用于在该第一加密操作数与该第二加密操作数上运算,以获得一第一中间结果;
第一否定装置(164),用于否定该第一中间结果,以获得一否定第一中间结果;
第二与运算装置(162),用于在该否定第二加密运算与该密钥上运算,以获得一第二中间结果;
第二否定装置(165),用于否定该第二加密操作数,以获得一否定第二加密操作数;
第三与运算装置(163),用于在该第一加密操作数与该密钥上运算,以获得一第三中间结果;
第三否定装置(166),用于否定该第三中间结果,以获得一否定第三中间结果;
第一或运算装置(167),用于在该否定第一中间结果与该第二中间结果上运算,以获得一第四中间结果;以及
第二或运算装置(168),用于在该第四中间结果与该第三中间结果上运算,以获得该算术运算的一加密结果。
17.如权利要求11所述的计算单元,其中,该算术运算是一加法运算,其中,该操作数为二进制,且于加密时,以一逐位方式与一密钥进行异或运算,以及其中该算术逻辑单元(10)包括下述以执行该数学子运算:
第一与运算装置(171),用于在该第一加密操作数与该第二加密操作数上运算,以获得一第一中间结果;
第二与运算装置(172),用于在该第一加密操作数与一第三加密操作数上运算;
第三与运算装置(173),用于在该第二加密操作数与该第三加密操作数上运算,以获得一第三中间结果;
第一或运算装置(179),用于在该第一中间结果与该第二中间结果上运算,以获得一第四中间结果;以及
第二或运算装置(180),用于在该第三中间结果与该第四中间结果上运算,以获得该算术加法运算的一加密进位。
18.如权利要求17所述的计算单元,其中,该算术运算为一否定运算,以及其中该算术逻辑单元更包括下述以执行该算术子运算:
额外的否定装置,用于否定该加密进位,以获得该否定运算的该加密结果。
19.如权利要求11所述的计算单元,其中,该第一加密操作数与该第二加密操作数以两种不同的加密算法及/或加密密钥进行加密,以及其中该算术逻辑单元(10)更包括:
一更进一步的输入,用于一更进一步的加密参数。
20.如权利要求1所述的计算单元,其中,该算术逻辑单元(10)使得仅分别具有两输入的与运算装置与或运算装置被使用。
21.如权利要求1所述的计算单元,其中,至少两操作数被加密,该第一加密操作数以第一加密算法与一第一加密参数予以加密,该第二加密操作数以第二加密算法与一第二加密参数予以加密,
其中该处理单元包括第二加密参数的又一输入;
及其中该密文计算规模由明文计算规格导出,而使得对应于该第二加密操作数的该非加密操作数由该第二加密操作数及该第二加密参数的又一数学组合所取代,而该又一组合是该第二加密算法的逆运算。
22.如权利要求21所述的计算单元,其中,该第一与该第二加密算法相同,以及该第一与该第二加密参数不相同。
23.如权利要求21所述的计算单元,其中,该运算的一结果以一第三加密算法与一第三加密参数予以加密,其中,由该多个数学子运算所导致的该密文计算规格得自与非加密操作数进行运算的明文计算规格,使得该运算的一非加密结果得以与一更进一步的该运算的非加密结果与该第三加密参数的数学组合来置换。
24.如权利要求23所述的计算单元,其中,该第三加密参数为该第一与该第二加密参数的一组合。
25.如权利要求24所述的计算单元,其中,所有的加密算法由一异或运算所提供,其中该数学组合由一异或运算所提供,以及其中该第三加密参数为该第一与该第二加密参数的一异或运算。
26.如权利要求25所述的计算单元,其中,该处理单元用于执行由下列密文计算规格所分别提供的多个数学子运算:
-针对一与运算:
AND: r ( k ) ← a ( i ) · b ( j ) · j ‾ + a ‾ ( i ) · b ‾ ( j ) · j + b ( j ) · i ‾ · j + b ‾ ( j ) · i · j ‾ ;
-针对一或运算:
OR: r ( k ) ← a ( i ) · b ‾ ( j ) · j ‾ + a ‾ ( j ) · j + b ( j ) · i ‾ · j ‾ + b ‾ ( j ) · i · j ;
-针对一反及运算:
NAND: r ( k ) ← a ‾ ( i ) · b ( j ) · j ‾ + a ( i ) · b ‾ ( j ) · i · j + b ‾ ( j ) · i ‾ · j ‾ ;
-针对一反或运算:
NOR: r ( k ) ← a ‾ ( i ) · b ‾ ( j ) · j ‾ + a ( i ) · b ( j ) · j + b ( j ) · i · j ‾ + b ‾ ( j ) · i ‾ · j ;
-针对一异或运算:
XOR:r(k)←a(i)b(j)
-针对一反异或运算:
XNOR: r ( k ) ← a ‾ ( i ) ⊕ b ( j ) ;
-针对借助下述总计位的一全加法器函数:
SUM:r(k)←(a(i)j)(b(j)i)cin (k);或
-针对借助一进位位的一全加法器函数:
CARRY:r(k)←(a(i)j)·(b(j)i)+(a(i)j)·cin (k)+(b(j)i)·cin (k)
其中a(i)为以该第一加密参数加密的该第一操作数,其中b(j)为以该第二加密参数加密的该第二操作数,其中i为该第一加密参数,其中j为该第二加密参数,其中k为该第三加密参数,其中该第三加密参数与该第一与该第二加密参数的该异或运算相同,其中r(k)为以该第三加密参数加密的该运算的该结果,以及其中cin (k)为以该第三加密参数加密的一进位输入。
27.一种进位选择加法器,用于累加第一与第二加密操作数,以获得一加密结果,该第一与第二加密操作数各包括多个字元,一加密参数被提供于具有相同阶的该操作数的各位,该进位选择加法器包括:
一第一并行加法器(1300),其具有多个字元切片装置(1200、1202),用于将自该操作数的一最无效位的该操作数的该加密位加至该操作数的一第一边界位,以产生该第一并行加法器的一加密进位输出位;
第一与第二并行加法器(1306、1308),其具有多个字元切片装置,用于将自一比该第一边界位更有效位置的一位的该操作数的该加密位加至一第二边界位,
其中,所有的字元片装置包括一如权利要求17或26所述的计算单元,该数学运算是一加法运算,在一进位输入利用该第一操作数的一加密位、该第二操作数的一加密位与一加密进位输入位,以产生一内部加密聚集位与一内部加密进位输出位,
其中,所有的字元切片装置更进一步包括相关的再加密装置(1206),以达成在该字元切片装置中利用一加密参数加密所得的该进位输入位的再加密,而得到现行的字元切片装置中具该加密参数的一加密,
其中,该第二并行加法器(1306)与该第三并行加法器(1308)为平行配置,其中,该第二并行加法器的该最无效的字元切片装置的一密钥能够用于成为该第二并行加法器(1306)的该最无效的字元切片装置的一进位输入位,以及其中该第三并行加法器的该最无效的字元切片装置的一反向密钥能够用于成为该第三并行加法器(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所述的密码编译处理器,其中,根据该第一加密算法的一加密运算比根据该第二加密算法的一加密运算需要更多的运算。
31.如权利要求28所述的密码处理器,其中,该第一解密装置(1102)与该第一加密装置(1108)被配置以较该第二解密装置(1108)与该第二加密装置(1104)为不频繁地执行密钥的变换。
32.如权利要求28所述的密码处编译理器,其中,该第二加密算法是根据下述形式的一Vernam算法:
c=(p+k)mod k,
其中,c是一加密的信息,其中p是一未加密的信息,其中k是一密钥,以及其中mod是一模数运算。
33.如权利要求32所述的密码处理器,其中,该密钥采用数值0或1,其中该明文信息与该加密信息为一位,以及其中,下列方程式适用于该第二加密算法:
c=p XOR k。
34.如权利要求33所述的密码处理器,其中,该第二加密算法的一独立密钥存在于各明文位。
35.一种用于在操作数上执行运算的方法,其中,至少一该操作数利用一加密算法与一加密参数予以加密,以便获得该运算的一加密结果,该方法包括:
执行一或多个数学子运算,其共同导致自一明文计算规格导出一密文计算规格于未加密操作数的运算,使得自该至少一加密操作数的该未加密操作数得以利用该至少一加密操作数与该加密参数的一数学组合而被置换,该数学组合为该加密算法的一逆运算,以及
该明文计算规格根据该数学组合而转换成代表该密文计算规格的该一或多个数学子运算,该数学子运算作为一输入值仅会获得该加密操作数或该加密操作数的一否定版本,或是该加密操作数或该加密操作数的该否定版本与其它操作数的一组合。
36.一种用于形成一计算单元装置,以于操作数上执行运算的方法,至少一该操作数利用一加密算法与一加密参数予以加密,以便获得该运算的一加密结果,该方法包括:
提供一明文计算规格于该运算;
置换在明文计算规格中的一对应于该加密操作数的一非加密操作数,为该加密操作数与该加密参数的一数学组合,以获得一密文计算规格,其中该数学组合为该加密算法的一逆运算;
转换所获得的该密文计算规格为一或多个数学子运算,该数学子运算作为一输入值仅会获得该加密操作数或该加密操作数的一否定版本,或是该加密操作数或该加密操作数的该否定版本与其它操作数的一组合;以及
执行该一或多个数学子运算以获得该计算单元装置。
37.一种用于形成一计算单元装置,以于操作数上执行运算的装置,至少一该操作数利用一加密算法与一加密参数予以加密,以便获得该运算的一加密结果,该装置包括:
用于提供该运算一明文计算规格的一装置;
用于置换在明文计算规格中的一对应于该加密操作数的一非加密操作数为该加密操作数与该加密参数的一数学组合的一装置,以获得一密文计算规格,其中该数学组合为该加密算法的一逆运算;
用于反向所获得的该密文计算规格为一或多个数学子运算的一装置,该数学子运算作为一输入值仅会获得该加密操作数或该加密操作数的一否定版本,或是该加密操作数或该加密操作数的该否定版本与其它操作数的一组合;以及
用于执行该一或多个数学子运算的一装置,以获得该计算单元装置。
CNB038023792A 2002-01-16 2003-01-10 计算单元及以加密操作数执行算术运算之方法 Expired - Fee Related CN1331013C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10201449A DE10201449C1 (de) 2002-01-16 2002-01-16 Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE10201449.3 2002-01-16

Publications (2)

Publication Number Publication Date
CN1701294A CN1701294A (zh) 2005-11-23
CN1331013C true CN1331013C (zh) 2007-08-08

Family

ID=7712274

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038023792A Expired - Fee Related CN1331013C (zh) 2002-01-16 2003-01-10 计算单元及以加密操作数执行算术运算之方法

Country Status (8)

Country Link
US (1) US7567668B2 (zh)
EP (1) EP1472587B1 (zh)
CN (1) CN1331013C (zh)
AU (1) AU2003206709A1 (zh)
DE (2) DE10201449C1 (zh)
RU (1) RU2279123C2 (zh)
TW (1) TW200415506A (zh)
WO (1) WO2003060691A2 (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101061906B1 (ko) * 2004-02-19 2011-09-02 삼성전자주식회사 전력분석공격에 안전한 기본 연산 장치 및 방법
EP1764762B1 (en) * 2004-07-07 2019-05-15 Mitsubishi Electric Corporation Electronic element and data processing method
JP2006071695A (ja) * 2004-08-31 2006-03-16 Yamatake Corp 暗号化、復号化プログラム及び暗号システム。
US8050402B2 (en) 2004-12-01 2011-11-01 Telecom Italia S.P.A. Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
US7686970B2 (en) * 2004-12-30 2010-03-30 Asml Netherlands B.V. Imprint lithography
JP2008530663A (ja) * 2005-02-11 2008-08-07 ユニバーサル データ プロテクション コーポレーション マイクロプロセッサのデータセキュリティの方法およびシステム
EP1717723A1 (en) * 2005-04-29 2006-11-02 ST Incard S.r.l. Improved virtual machine or hardware processor for IC-card portable electronic devices
US9191198B2 (en) * 2005-06-16 2015-11-17 Hewlett-Packard Development Company, L.P. Method and device using one-time pad data
AT502230A2 (de) * 2005-07-26 2007-02-15 Univ Graz Tech Verfahren und schaltung zur durchführung von rechenoperationen
US7881465B2 (en) * 2005-08-08 2011-02-01 Infineon Technologies Ag Circuit and method for calculating a logic combination of two encrypted input operands
DE102005037357B3 (de) * 2005-08-08 2007-02-01 Infineon Technologies Ag Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden
DE102006006057B4 (de) 2006-02-09 2007-12-27 Infineon Technologies Ag Datenverschlüsselungsvorrichtung und Verfahren zum Verschlüsseln von Daten
US7921148B2 (en) 2006-08-09 2011-04-05 Infineon Technologies Ag Standard cell for arithmetic logic unit and chip card controller
US20100281092A1 (en) * 2006-08-09 2010-11-04 Thomas Kuenemund Standard cell for arithmetic logic unit and chip card controller
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
US20100246808A1 (en) * 2007-12-05 2010-09-30 Nec Corporation Side channel attack tolerance evaluation apparatus, method and program
JP5173563B2 (ja) * 2008-05-02 2013-04-03 キヤノン株式会社 ライセンス管理装置及び方法
US20100177889A1 (en) * 2009-01-15 2010-07-15 Kabushiki Kaisha Toshiba Image forming apparatus and encryption process control method
US8406423B2 (en) * 2010-03-16 2013-03-26 Telcordia Technologies, Inc. Multi-bit cryptographically secure encryptor for M-ary spectral phase encoder optical code division multiple access
KR20120070873A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 부채널 방지 마스킹 덧셈 연산 장치
US9065626B2 (en) 2011-10-25 2015-06-23 Cavium, Inc. Bit error rate impact reduction
US8855248B2 (en) * 2011-10-25 2014-10-07 Cavium, Inc. Word boundary lock
WO2013095648A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Three input operand vector add instruction that does not raise arithmetic flags for cryptographic applications
MX366491B (es) * 2014-12-03 2019-07-10 Nagravision Sa Método criptográfico en bloques para encriptar/desencriptar mensajes y dispositivos criptográficos para implementar este método.
WO2016184695A1 (en) 2015-05-19 2016-11-24 Koninklijke Philips N.V. Computing with encrypted values
CN106339877A (zh) * 2015-07-13 2017-01-18 华中科技大学 一种基于产品特征变形组合与相互认证的防伪方法
US10083135B2 (en) * 2015-08-28 2018-09-25 Macronix International Co., Ltd. Cooperative overlay
DE102015116049B3 (de) 2015-09-23 2017-02-16 Infineon Technologies Ag Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
EP3208789B1 (en) * 2016-02-22 2020-08-05 Eshard Method of protecting a circuit against a side-channel analysis
RU2625049C1 (ru) * 2016-04-14 2017-07-11 ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ КАЗЕННОЕ ВОЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "Военная академия Ракетных войск стратегического назначения имени Петра Великого" МИНИСТЕРСТВА ОБОРОНЫ РОССИЙСКОЙ ФЕДЕРАЦИИ Устройство поддержки защищенных логических вычислений
US10210323B2 (en) * 2016-05-06 2019-02-19 The Boeing Company Information assurance system for secure program execution
CN106528043A (zh) * 2016-10-27 2017-03-22 李玮 一种数学运算***
US10642758B2 (en) * 2017-06-28 2020-05-05 Western Digital Technologies, Inc. Storage drive and method of executing a compare command
US11176278B2 (en) * 2018-12-29 2021-11-16 Intel Corporation Efficient rotate adder for implementing cryptographic basic operations
TWI700915B (zh) * 2019-02-01 2020-08-01 益力半導體股份有限公司 混合式雙重網路加密系統
CN112165380A (zh) * 2019-04-24 2021-01-01 吕志强 拆分式二进制数据加密法
TWI731407B (zh) * 2019-09-09 2021-06-21 新唐科技股份有限公司 具有旁通通道的金鑰管理裝置及處理器晶片
CN114143014B (zh) * 2020-08-12 2024-05-14 中国电信股份有限公司 媒体文件加密方法、解密方法、传输方法、装置和***
DE102021100538A1 (de) 2021-01-13 2022-07-14 Infineon Technologies Ag Schaltung und verfahren zur rotationsinvarianten ausführung einer oder mehrerer operationen mit mindestens einem operanden
CN113127911B (zh) * 2021-05-06 2022-05-20 国网河北省电力有限公司信息通信分公司 电力数据加密方法、装置及终端
US11726715B2 (en) 2021-10-11 2023-08-15 Western Digital Technologies, Inc. Efficient data path in compare command execution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479512A (en) * 1991-06-07 1995-12-26 Security Dynamics Technologies, Inc. Method and apparatus for performing concryption
WO2001040950A2 (de) * 1999-12-02 2001-06-07 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung
WO2001054083A1 (de) * 2000-01-18 2001-07-26 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3276444B2 (ja) * 1993-03-22 2002-04-22 三菱電機株式会社 除算回路
US5504915A (en) * 1993-08-05 1996-04-02 Hyundai Electronics America Modified Wallace-Tree adder for high-speed binary multiplier, structure and method
JPH11143685A (ja) * 1997-06-24 1999-05-28 Internatl Business Mach Corp <Ibm> キャリー・スキップ・アダー
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6356636B1 (en) * 1998-07-22 2002-03-12 Motorola, Inc. Circuit and method for fast modular multiplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479512A (en) * 1991-06-07 1995-12-26 Security Dynamics Technologies, Inc. Method and apparatus for performing concryption
WO2001040950A2 (de) * 1999-12-02 2001-06-07 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung
WO2001054083A1 (de) * 2000-01-18 2001-07-26 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung

Also Published As

Publication number Publication date
WO2003060691A2 (de) 2003-07-24
AU2003206709A8 (en) 2003-07-30
US7567668B2 (en) 2009-07-28
WO2003060691A3 (de) 2004-01-15
DE50300633D1 (de) 2005-07-14
RU2279123C2 (ru) 2006-06-27
RU2004121784A (ru) 2006-01-27
EP1472587A2 (de) 2004-11-03
EP1472587B1 (de) 2005-06-08
CN1701294A (zh) 2005-11-23
TW200415506A (en) 2004-08-16
DE10201449C1 (de) 2003-08-14
AU2003206709A1 (en) 2003-07-30
US20050036618A1 (en) 2005-02-17

Similar Documents

Publication Publication Date Title
CN1331013C (zh) 计算单元及以加密操作数执行算术运算之方法
Karpovsky et al. Robust protection against fault-injection attacks on smart cards implementing the advanced encryption standard
CN101206816B (zh) 运算处理装置和运算处理控制方法
CN101006677B (zh) 用于实施加密运算的方法和装置
JP5776113B2 (ja) 高次の観測攻撃から保護される暗号回路
Muir A tutorial on white-box AES
Li et al. Differential fault analysis on the ARIA algorithm
Mozaffari-Kermani et al. Reliable and error detection architectures of Pomaranch for false-alarm-sensitive cryptographic applications
CN108352981A (zh) 被布置用于计算目标块加密的密码设备
CN103595539A (zh) 保留格式的数值型个人识别信息的加密方法
CN102904716A (zh) 一种抗侧信道攻击的对策方法
CN104052595B (zh) 密码算法定制方法
CN115276947A (zh) 隐私数据处理方法、装置、***及存储介质
Kutzner et al. Enabling 3-share threshold implementations for all 4-bit s-boxes
EP3891925B1 (en) A computation device using shared shares
CN104301096A (zh) Aes轮运算方法和电路
Courtois Low-complexity key recovery attacks on GOST block cipher
Li et al. Fault analysis study of the block cipher FOX64
Azarderakhsh et al. Secure and efficient architectures for single exponentiations in finite fields suitable for high-performance cryptographic applications
Ghafoori et al. PNB based differential cryptanalysis of Salsa20 and Chacha
Berzati et al. A survey of differential fault analysis against classical RSA implementations
CN103238291A (zh) 代码处理装置、代码处理方法和程序
Dugardin et al. Using modular extension to provably protect Edwards curves against fault attacks
Courtois Cryptanalysis of two GOST variants with 128-bit keys
US10685096B2 (en) Hiding of a program execution

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

Termination date: 20220110

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