差分功率分析对策的制作方法

文档序号:11162053阅读:405来源:国知局
差分功率分析对策的制造方法与工艺
本公开与密码设备相关。技术背景渐增地,电子设备实现密码技术来保护易受影响的数据。电子设备可以包括安全、嵌入式系统(诸如硬件和/或软件),其根据加密标准来保护由电子设备所采用的易受影响的数据。例如,电子设备(诸如智能卡、手机设备、电视单元等等)可以被配置以执行加密来加密易受影响的数据或执行解密来解密所加密的易受影响的数据。加密或解密可以与高级加密标准(AES)、数据加密标准(DES)或其他密码索引相关联。密码术典型地用密钥来加密和解密数据,并且这些密钥大体上仅仅被执行密码技术的(一个或多个)设备知道。重要的是确保这些密钥不容易被包括计算机黑客与网络攻击者的未经授权的人检测。附图说明图1示出了用于所加强的密码术的包括具有两个逻辑单元的密码设备的示例的系统。图2示出了用于所加强的密码术的包括具有三个逻辑单元的密码设备的示例的系统。图3示出了描绘实现所加强的密码术的密码设备的操作的示例的流程图。图4示出了被配置以实现所加强的密码术的密码设备的示例的框图。具体实施方式概述本文所描述的实施例提供了包括被安排在环形拓扑结构中的多个逻辑单元的电子设备。本文所使用的与在下列实施例中所示出的术语“环形拓扑结构”,意指逻辑单元的每一个的输出被耦接到其他逻辑单元的输出。逻辑单元的每一个包括与其他逻辑单元的处理逻辑相同的、并且与同步地操作的相应的处理逻辑。在每一个周期,在逻辑单元的每一个中的处理逻辑用储存在设备中的至少一个秘密值来处理相应的数据。在设备的初始周期,逻辑单元接收互不相关的不同的相应的输入值。在每一个随后周期,逻辑单元的每一个接收并且操作被其他逻辑单元所输出的中间值,直到输出值在一定数量的周期后被生成。在所公开的实施例中,电子设备包括被耦接来接收第一输入值的设备输入,以及设备输出。包含至少第一和第二逻辑单元的逻辑核心被耦接到设备输入,以这种方式来接收和处理这个第一输入值,并且最后地在设备输出处提供输出值。逻辑核心包括提供与第一输入值不相关的至少一个的第二输入值的输入生成器,并且典型地是设备以外不可得到的。第一逻辑单元包括耦接来接收来自设备输入的第一输入值的第一逻辑输入,以及被配置以用秘密值来操作由第一逻辑输入所提供的第一数据值的第一处理逻辑。第二逻辑单元包括被耦接来接收来自输入生成器的第二输入值的第二逻辑单元,以及与第一处理逻辑相同并的并且被配置以与第一处理逻辑同步地来处理由第二逻辑输入所提供的第二数据值的第二处理逻辑。采用如所公开的实施例所提供的相同的处理逻辑,用环形拓扑结构中的两个(或更多个)逻辑单元来同步地处理不同的、不相关的值,对于基于差分功率分析(DPA)的阻止攻击是有用的。因为仅仅第一输入值可以被外部地选择,所选择的输入值与一个逻辑单元中由于比特转换导致的功率消耗之间的任何关系将由于其他输入值导致的不相关值的交叉而被掩盖。因此,攻击者找到在输入值与功率消耗之间的相关(并由此找到在设备中的秘密值)的尝试将会失败。典型地,输入生成器包括随机数据生成器,从而第二输入值是随机值。替代地,可以采用第二输入值的其他源,只要它们与第一输入值是不相关的并且是攻击者不可得到的。如上所述的,在所公开的实施例中,逻辑单元的每一个的输出供给另一个逻辑单元的输入。在一些实施例中,第二逻辑输入被耦接来在设备的初始周期接收第二输入值,并且在设备的随后周期接收由第一处理逻辑所生成的第一中间值用于被第二处理逻辑的处理。同时,第一逻辑输入可以被耦接来在设备的初始周期接收第一输入值,并且在设备的随后周期接收由第二处理逻辑所生成的第二中间值用于被第一处理逻辑的处理。替代地,这个种类的三个或多个逻辑单元可以被采用。这种配置在阻止更高阶的DPA攻击是尤其有用的。在一个这种实施例的中,包括第三逻辑输入的第三逻辑单元被耦接来接收由第二个处理逻辑所生成的第二中间值。与第一和第二处理逻辑相同的第三处理逻辑被配置以与第一与第二处理逻辑同步地操作被第三逻辑输入所提供的第三数据值。第一逻辑输入可以被耦接来在设备的初始周期接收第一输入值,并且在设备的随后周期接收由第三处理逻辑所生成的中间值用于被第一处理逻辑的处理。第二处理逻辑(以及在其他处理单元中的处理逻辑,如果存在的话)可以被配置以用与第一处理逻辑相同的秘密值或与被第一处理逻辑所采用的秘密值不同的其他秘密值来操作第二数据值。示例性实施例本文所公开的技术与用于密码设备的所加强的加密和解密相关。具体地,这些技术使得用于密码设备的所加强的密码术能够实现。如本文所采用的术语“密码设备”定义了被配置以执行加密操作和/或解密操作(通常被称作“密码操作”)的电子设备。在接收输入数据之后,密码设备可以加密输入数据并且生成作为密文数据的输出数据,也被称作“密文”。替代地或者另外,密码设备可以接收密文并且解密密文来生成原始输入数据。这些加密和解密技术将在后文更详细地描述。通常地,密码设备通过采用加密/解密算法以及秘密值(本文被称作“密钥”)来执行加密和/或解密技术。针对加密情境,密钥被密码设备所采用来加密文或加密与加密算法相关联的输入数据来创造密文。相似的,针对解密情境,密钥被密码设备所采用来解密密文或解密与解密算法相关联的密文。例如,密钥可以是被配置来执行与加密解密算法(用于简化在下文中也被称作“算法”)相关联的加密和/或解密操作的256比特(32字节)密钥。算法的示例包括高级加密标准(AES)、数据加密标准(DES)等等。换言之,对于加密技术,输入数据被密码设备所接收,并且密钥被用来采用算法加密输入数据。在此示例中,密码设备在加密之后输出密文,并且密文是输入数据被加密的版本。例如输入数据可以是32字节输入以及密文可以是输入数据的32字节的被加密的版本。相似地,对于解密技术,密文被密码设备所接收,并且密钥被用来用密码算法(诸如AES或DES)解密密文。在解密密文之后,密码设备输出原始的输入数据。密钥是保持由密码设备所执行的加密操作的安全的重要方面。总体上,外部组织为了破坏由加密设备所执行的加密/解密技术,外部组织必须知道由加密设备所使用的密钥和算法。经常地,由加密设备所使用的算法是已知的或易于猜到或易得到的。例如,加密设备可以用AES或DES作为加密算法,并且AES与DES算法的定义可以是对于外部组织公开地可得到的。因为密钥不是对于外部组织公开地可得到的,即使外部组织有关于所执行密码的类型的信息,外部组织也不能够解码密码文档并且不能加密输入数据。因此,密钥的保密对于保持加密和解密的操作的安全是至关重要的。然而,外部组织(诸如“攻击者”)可以瞄准密码设备以尝试获取或学习其中所包含的密钥。攻击者可以用一些技术来尝试获取密码设备的密钥。例如,如上所述的,密钥可以是256比特的密钥,并且攻击者可以尝试用“蛮力”技术来猜测正确的密钥值。然而,由于攻击者需要猜测在2256的可能性中的正确的256比特的密钥组合,对于攻击者来说这种“蛮力”方法会是难于计算的。在其他方法中,攻击者可以尝试猜测在比特段中的密钥。例如,攻击者可以尝试猜测在8比特段中的密钥(诸如密钥字节),因此将可能的数量减少到8192(28*(256/8))。从攻击者的角度,由于可能的样本数量显著地少于蛮力方法,尝试猜测在比特段中的密钥是有利的。存在攻击者可以用来尝试获取密码设备的密钥的一些已知的方法。例如,在称为功率分析的技术中,攻击者可以供给输入数据到加密设备,并且攻击者可以测量由于密码设备执行密码操作从而被密码设备所耗散的功率。更具体地,密码设备包括由单独的晶体管所构建的集成电路。例如当电荷被采用到或从晶体管的栅极中移除的时候,晶体管作为由电压控制的开关并且电流流经晶体管。然后电流传递电荷到其他晶体管的栅极、互连以及其他电路负载。电荷的移动消耗功率并且产生电磁辐射,这两者都可以被外部实体所检测。因此,具有合适的装置的攻击者可以测量由于密码设备执行密码操作的诸如一段时间的(诸如在时钟周期的时期)被密码设备所消散的功率的密码设备的电表现。攻击者可以用这些测量来尝试确定密码设备的密钥。总体上,密码设备的硬件设计包括诸如通常作为触发阵列被实现的数据寄存器,以及其他逻辑组件。逻辑组件执行数据的逻辑操作。例如,逻辑组件可以执行诸如“与(AND)”、“或(OR)”、“异或(XOR)”等操作的一系列逻辑操作。因此,一系列的逻辑组件被称作“组合逻辑”。每一个组合逻辑接收来自用于储存数据的(一个或多个)触发阵列的它的输入,并且每一个时钟周期的组合逻辑的输出被储存到触发阵列。组合逻辑与输入触发阵列一起在下文中被称作“逻辑单元”或“多状态逻辑单元”。密码设备可以具有一个或多个逻辑单元。例如,如在本文中显而易见的,密码设备可以具有是彼此相同的复制的以及逻辑上相等的一个或多个逻辑单元。如本文中的技术所描述的,这些逻辑单元提供了用于密码设备的所加强的密码术。在一个示例中,在每一个时钟周期,输入数据被密码设备的一个组合逻辑在逻辑单元中所修改,并且作为密码操作(诸如加密)的一部分被储存到触发阵列。例如,如在下文中所更加详细描述的,在第一时钟周期,输入数据被密码设备的第一组合逻辑(作为密码操作的一部分)在第一逻辑单元中修改并且被储存在触发阵列的第一集合中,并且被修改的输入数据在随后的时钟周期从第一逻辑单元被发送到第二逻辑单元、并且在第二逻辑单元处被第二组合逻辑修改并作为密码操作的一部分被储存在触发阵列的第二集合中。总体上,当输入数据在逻辑单元中被修改时,在组合逻辑中的设备的一个或多个栅极可以改变状态。例如,当输入数据被一个组合逻辑修改时,在组合逻辑中的一个或多个设备的栅极可以改变它的状态从“关”的状态到“开”的状态,或者更简单地从“0”的状态到“1”的状态。由于栅极改变状态,密码设备消耗功率。如上所述的,外部实体监控密码设备的功率消耗简档(诸如“功率简档”)是可能的。密码设备的功率简档描述密码设备在一段时间(在时钟周期的时期)针对给定的输入的功率消耗。诸如攻击者的外部实体,提供输入数据(“输入数据A”)到密码设备,并且攻击者测量在时钟周期的时期由密码设备所消耗的功率来获得功率简档(“功率简档A”)。功率简档A包括在对应密码设备的时钟周期的不同时间间隔的一系列功率测量。例如,当密码设备执行输入数据A的加密/解密操作时,密码设备随时间而消耗一定数量的功率(由功率简档A表示),可以被攻击者所测量。功率简档A对于输入数据是独特的,并且不同的输入数据将得出不同的功率简档。攻击者可以提供其他输入数据(“输入数据B”)来获取其他功率简档(“功率简档B”)等等。通过获取多个功率简档,当已知输入数据的时候,攻击者可以尝试用差分功率技术来猜测密码设备的密钥。例如,攻击者可以假设加密设备的总体功率消耗与密码操作中在组合逻辑中的栅极的数量相关。一种功率分析技术被称为简单功率分析(SPA)。在SPA攻击中,攻击者分析功率简档并且假设被密码设备所消耗的功率的数量根据由密码设备所执行的微处理器指令而变化。换言之,攻击者可以通过假设不同的加密/解密操作消耗不同数量的功率从AES操作的功率简档特性来标识。例如,攻击者可以用SPA分析来揭示在由密码设备所执行的乘法与平方操作之间的差别来执行加密/解密技术。然而,用SPA来尝试获取密钥的攻击者依赖功率简档的目测来标识相关的功率波动。因此SPA攻击可以通过在功率简档中加入噪声而被阻止。针对更具侵略性的攻击,攻击者可以用被称作差分功率分析(DPA)的其他类型的功率分析。DPA依赖多个功率简档的统计分析,由于在功率简档中伴随的随机噪声可能无法破坏DPA攻击,因此DPA攻击比SPA攻击更有力量。然而DPA攻击比SPA攻击更加耗时。在一个典型的DPA攻击中,攻击者提供一系列的输入数据并且获取相应系列的功率简档。攻击者通过猜测在一个时刻的密钥的段来尝试猜测密码设备的密钥。为了便于解释,在本示例中,攻击者可以猜测在某时刻的8比特段中的密钥。当执行DPA攻击时攻击者做一些假设。首先,攻击者假设密码设备使用具体的密码标准(诸如AES)。替代地,攻击者假设攻击者尝试确定的密钥的8比特段的具体值。例如,当尝试用DPA来获取密钥时,攻击者假设密码设备执行AES解密并且还假设针对所感兴趣的8比特密钥段的第一个值。攻击者用所假设的8比特密钥段的值以及基于所假设的AES加密标准,针对每一个所给定的输入数据,攻击者能够模拟被密码设备所执行的加密操作的所期望的中间结果的一部分。即,针对每个输入,攻击者可以模拟当用所假设的8比特密钥值的输入经过AES加密的时候得到的所期望的部分的中间结果。所期望的部分的中间结果被称为“中间值”,并且这些结果是用所假设的8比特密钥值的输入所模拟的AES加密的中间结果。例如,下表1示出了用所假设的8比特加密值的AES加密所模拟的所期望的结果的示例列表。表1:针对第一个所假设的密钥值的用中间结果所模拟的AES加密例如,攻击者可以尝试确定密钥的第五个字节(诸如第五个8比特密钥段)。攻击者假设在某个时钟周期,S框的输入(在表1中作为y5被标出)在一些栅极处,下一个时钟周期从S框的输出(在表1中作为z5被标出)在同样的栅极处,并且因此在表1中的值反映被攻击者用来尝试和确定密钥的第五个字节的所模拟的AES加密的相关部分。在表1中示出的所有被模拟的结果是对于密钥的第五个字节的针对相同密钥值的假设。换言之,攻击者假设密钥的第五个字节具有某值(攻击者所猜测的),并且攻击者针对这个密钥值的假设模拟一系列的AES加密。表1示出了针对所猜测的第五个字节的密钥值k5的所模拟的AES加密。然后攻击者针对密钥的第五个字节做出了其他假设,并且基于这个假设来进行其他模拟。最后,攻击者尝试确定哪个密钥值假设是正确的。通过针对密钥的全部字节来重复这种分析,攻击者可以最后获取密码设备的整个密钥。例如,在表1中第一个实验的输入数据在值“x5”处被示出以代表总体输入数据的第五个字节。如领域技术一般人员所意识到的,值x5作为对应二进制值“00111000”的十六进制值“0x38”在示例中被示出。由于攻击者已知输入值x5(因为攻击者提供了输入值),并且由于攻击者假设密码设备执行AES加密,攻击者可以针对密钥字节的假设k5来模拟中间值y5和z5。例如,在AES加密中,输入数据的x5字节可以与密码设备的密钥的第五个字节(在表1中作为k5示出)相异或。如上所述的,攻击者针对k5的密钥值做出假设,并且因此能够模拟XOR操作的值来确定针对给定输入x5的所期望的中间值y5。例如,在表1中,中间值y5作为对应二进制值“00101111”的十六进制值“0x2F”被示出。攻击者还能够确定由AES(例如从在y5上采用的字节到字节的“S框”函数)得出的所期望的中间值z5。在表1中,中间值z5被示出,在一个示例中作为对应二进制值“00010101”的十六进制值“0x15”被示出。因此如表1中所示出的,攻击者已知输入数据x5(他供给密码设备的),并且攻击者可以针对所假设的密钥k5(他假设的)生成AES加密操作的中间值y5与z5。攻击者还可以计算中间值y5与中间值z5之间的汉明距离。中间值之间的汉明距离代表在z5与y5之间的不同的比特的数量。因此,针对第一个实验,中间值y5与中间值z5之间的汉明距离是4(即在“00101111”与“00010101”之间的不同的比特的数量)。攻击者针对不同的输入数据来重复这个步骤并且获取对应不同输入数据的一系列结果。因此,对于n输入,攻击者可以获取n汉明距离值。每一个汉明距离值对应针对每一个给定的输入的中间值y5与中间值z5之间的不同数量的比特。这些汉明距离值对应针对k5的单独密钥的假设,并且如上述的,攻击者针对他针对k5做出的不同密钥的假设来执行不同的模拟。因此,对于针对k5的每一个密钥假设,攻击者可以获取一系列的汉明距离值,其每一个对应具体的输入数据。最后,用表1中的信息,攻击者将尝试核实是否针对系列的输入数据的密钥假设k5是正确的。为了做这种确定,攻击者假设在时钟周期的功率消耗与在密码设备中改变了它们状态的栅极的个数相关。换言之,攻击者假设在密码设备用组合逻辑来执行密码操作,并且攻击者假设密码设备的功率消耗与在时钟周期的之前和之后的组合逻辑中的栅极的状态之间的汉明距离相关。换言之,攻击者假设,例如在一个时钟周期的第一逻辑单元的组合逻辑中的栅极在一个状态集合而在时钟周期执行密码操作,并且在第二时钟周期,相同组合逻辑中的栅极在其他状态集合来在下一个时钟周期执行密码操作。当密码设备与本文所描述的技术相关地被设计与操作时,然而在第二时钟周期,第二逻辑单元(替代初始逻辑单元)的其他(相同的)组合逻辑可以执行密码操作,但是在初始组合逻辑中的相同栅极的计算与攻击者不知道的输入的其他计算是相关的。因此,在连续的时钟周期的第一逻辑单元的初始组合逻辑中改变的栅极的数量可以不与汉明距离值相关。即攻击者假设中间值代表在连续的时钟值的相同组合逻辑中的中间值。因此,攻击者具有针对代表在中间值之间的差别的n输入数据的n汉明距离值,并且因此攻击者尝试用汉明距离测量来确定它是否与连续时钟周期的功率消耗相关。例如,在下列表2中示出的,针对每一个密钥段假设,攻击者可以生成n、x、m表。表2中的行代表针对给定密钥段假设的n输入的每一个。表2中的列代表在具体时钟周期的功率测量。表2:针对m时钟周期的n输入的功率简档表2中的每一个项目代表被攻击者所获取的功率消耗测量。例如,项目Pn,m代表针对在时钟周期m的输入n被密码设备所消耗的功率。同样地,联系以上在表1中所描述的,针对每一个输入n攻击者可以生成(由离线计算)在所假设的加密技术的中间值之间的汉明距离值。因此,如表3中所示出的,针对每一个密钥段假设,攻击者可以生成针对n输入的每一个的汉明距离值的1×n阵列。输入汉明距离输入1H1输入2H2输入3H3输入nHn表3:针对示出对于m时钟周期的每一个n输入的功率简档的密钥段k5的汉明距离在表3中的每个值代表针对给定输入的中间值之间的汉明距离的计算。攻击者可以生成针对每个密钥段假设的汉明距离的n×1阵列。如上所述的,攻击者可以尝试用汉明距离值与功率测量相关来核实密钥段猜测的精确。表2中攻击者假设在给定时钟周期的功率值代表在来自刚才前一时钟周期的组合逻辑中有多少栅极改变了状态。因此,例如在时钟周期2针对输入1攻击者假设中间值y5出现在第一组合逻辑中并且中间值z5出现在同样的组合逻辑中。事实上,当本文所描述的技术被采用时,在第二时钟周期,中间值z5出现在其他(相同的)组合逻辑中。因此,在时钟周期2处攻击者假设功率值P1,2与来自刚刚前一时钟周期(例如时钟周期1)的第一组合逻辑中有多少个改变状态的栅极相关。换言之,攻击者假设功率值P1,2与在y5与z5之间的汉明距离相关。由于攻击者具有针对时钟周期2的n功率测量,并且由于攻击者具有n汉明距离值(针对每一个n输入,如表3所示),攻击者执行在表3中的n×1汉明距离阵列与代表时钟周期2的n×1列的相关。如果任何相关值是统计上显著的,则攻击者意识到所猜测的密钥部分k5是正确的。如果不是,攻击者重复针对其他密钥段猜测(例如,如上所述生成表1、表2以及表3,并且确定针对每个密钥段猜测的m相关值)的上述操作,以及关于哪个中间值出现在连续时钟周期的相同的栅极的其他假定。如上所述的,为了用汉明距离相关技术来正确地猜测密钥段,攻击者假设中间值出现在连续时钟周期的相同的逻辑单元的相同的组合逻辑中。然而,本技术破坏了这种中心假设,并且相应地,在本文所描述的技术中,攻击者并不能够用汉明距离相关技术正确地猜测密钥段。本文所描述的技术,因此被设计来挫败利用汉明距离相关技术的攻击(诸如DPA攻击)。根据本文所描述的技术,如果中间值在连续时钟值的不同逻辑单元的相同的组合逻辑的不同示例之间被交换,则攻击者可能并不能够依赖汉明距离相关技术来确定密钥段值。现在参考图1,其中示出了被特别地加强以阻止DPA攻击的密码设备。图1中的密码设备包括接收输入值的设备输入308,以及输出由逻辑核心102所生成的数据的设备输出312。逻辑核心包括多逻辑核心302,包括第一逻辑单元302(a)(“逻辑单元A”)以及第二逻辑单元302(b)(“逻辑单元B”)。如上所述的,逻辑单元的每一个包括(可以包括一个或多个触发阵列304的)逻辑输入以及诸如组合逻辑306(用储存在逻辑核心102中的诸如密码密钥(未在图中示出)的秘密值来操作由相应的逻辑输入所提供的数据值)的处理逻辑。不同的逻辑单元302(a)和302(b)可以采用相同的秘密值或不同的相应的秘密值。例如,逻辑单元A被描绘成具有第一触发阵列304(a)(“触发阵列A”)以及第一组合逻辑306(a)(“组合逻辑A”)。相似地,逻辑单元B被描绘成具有第二触发阵列304(b)(“触发阵列B”)以及第二组合逻辑306(b)(“组合逻辑B”)。在核心102的每一个操作周期,逻辑306(a)的输出在逻辑(b)的输入处供给中间值到阵列304(b),然而逻辑306(b)的输出在逻辑单元A的输入处供给中间值到阵列304(a)。应当意识到逻辑A和逻辑B可以包括任何数量的逻辑组件,并且更进一步地,逻辑核心102可以包括在图1和图2中示出的可以被有利地安排在环形拓扑结构中的这个种类的多于两个的逻辑单元。逻辑单元A和逻辑单元B是彼此的复制。换言之,逻辑单元A与逻辑单元B在功能上与逻辑上彼此相同。同样地,应该意识到逻辑单元A与逻辑单元B同步运行,即执行相同的类型的同时发生的计算,如本文所描述的其中针对逻辑单元的每一个的输入数据在每一个时钟周期是不同的。例如,如图1的标号308示出的,第一时钟周期,输入数据通过(来自合法的源或攻击者的)设备输入308被提供到密码设备的逻辑单元A。相似地,如图1所示,诸如随机数字生成器310的不被攻击者所知道的输入生成器在第一时钟周期提供不被攻击者所知道的其他输入。生成器310提供与输入308不相关的数据(诸如随机的或伪随机的数据)作为到逻辑单元B的输入。根据设备配置或装置的需求,逻辑单元B可以选择性地供给(除设备输出312之外的或替代设备输出312的)设备输出314。一般地,在本领域内所知的实现,逻辑单元A执行输入数据在第一时钟周期与第二时钟周期、第三时钟周期等等的密码操作。换言之,在现存的实现中,逻辑单元A具有对自身的反馈回路来执行输入数据在每一个时钟周期的密码操作。与这种现存的实现相反,本文所描述的技术通过用被密码设备所执行的不同的操作使得所加强的加密术成为可能。如图1中所示出的,逻辑单元A在第一时钟周期执行来自输入308的在第一时钟周期的密码操作。相似地,逻辑单元B在第一时钟周期执行由生成器310所提供的随机数据输入的操作。数据生成器310提供与在输入308处的输入数据不相关的数据值。在第二时钟周期,由逻辑单元A所生成的输出数据从逻辑单元A发送到逻辑单元B。换言之,逻辑单元A的输出节点(“输出节点A”)作为逻辑单元B的输入节点(“输入节点B”)操作。逻辑单元B执行输入数据的密码操作(由于逻辑单元B是逻辑单元A的复制,相同的密码操作被逻辑单元A在第二时钟周期所执行)。相似地,在第二时钟周期,由逻辑单元B所生成的输出数据被发送到逻辑单元A。即逻辑单元B的输出节点(“输出节点B”)作为逻辑单元A的输入节点(“输入节点A”)来操作。逻辑单元A执行随机数据输入的操作。在第三时钟周期,输入数据从逻辑单元B被发送到逻辑单元A,并且逻辑单元A再次执行输入数据的密码操作,然而随机数据输入从逻辑单元A被发送到逻辑单元B,并且逻辑单元B再次执行随机数据输入的操作。处理一直持续到输入数据的密码操作完成,并且结果通过设备输出312或314被输出。下列是阻止DPA攻击的本文所描述的技术的效力的示例。在示例中,在本领域所已知的实现中,其中逻辑单元A反馈到自身来执行密码操作,在执行输入数据的密码操作之后,在第一时钟周期,逻辑单元A的栅极可以在“001”的状态,并且在第二时钟周期,再次执行输入数据的密码操作之后,逻辑单元A的栅极在可以在“100”的状态。因此,在连续的时钟周期,在逻辑单元A中改变的栅极(诸如从“001”改变到“100”)反映在密码操作的中间值的改变(由于逻辑单元A是执行输入数据的密码操作的唯一逻辑单元)。因此,攻击者将能够通过假设功率测量与连续时钟周期中的栅极的状态变化相关来有效地使用汉明距离相关技术。然而,在这个相同的示例中,根据本文所公开的技术,在执行通过输入308所接收的输入数据的密码操作之后,逻辑单元A的栅极在第一时钟周期可以在“001”的状态,并且在执行由输入生成器310所提供的随机数据的密码操作之后,逻辑单元B中的栅极在第一时钟周期可以在“111”的状态。在第二时钟周期,在执行随机数据的密码操作之后,逻辑单元A中的栅极可以在“110”的状态,并且在执行输入数据的密码操作之后,逻辑单元B的栅极可以在“100”的状态。因此,在连续时钟周期,逻辑单元A中改变的栅极并不反映密码操作的中间结果的链(chain)。替代地,在连续时钟周期的逻辑单元A中变化的栅极从“001”(输入数据的密码操作)变化到“110”(随机数据输入的操作)。即逻辑单元A并不执行连续时钟周期的输入数据的密码操作。因此,攻击者并不能够有效地用汉明距离相关技术,由于在任何两个连续时钟周期的逻辑单元的栅极的状态涉及不同的操作(即在输入数据的密码操作以及在随机数据输入的操作)。因此,如下面表4中所描绘的密码操作的中间值因此在连续时钟周期在逻辑单元A与逻辑单元B之间交错。在表4中,“0”与“1”值描绘攻击者可以基于所知道的输入以及所假设的密钥值来计算的中间值的部分。“x”值描绘攻击者不能预测的值。如在图4中示出的,攻击者可以能够确定在中间值的大多数一定的部分。在逻辑A处的中间值在逻辑B处的中间值时钟周期101001101xxxxxxxxxxxxxxxxxxxxxxxx时钟周期2xxxxxxxxxxxxxxxx110001010xxxxxxxx时钟周期311101001xxxxxxxxxxxxxxxxxxxxxxxx时钟周期4xxxxxxxxxxxxxxxx10010100xxxxxxxx时钟周期51100100101xxxxxxxxxxxxxxxxxxxxxxxx时钟周期6xxxxxxxxxxxxxxxx00101101xxxxxxxx时钟周期711000101xxxxxxxxxxxxxxxxxxxxxxxx时钟周期mxxxxxxxxxxxxxxxx10000001xxxxxxxx表4:在加密序列之间交错的中间值应当意识到的是,然而本文所描述的技术并不增加所要求来执行密码操作的时钟周期的数量。虽然密码操作在连续时钟周期的逻辑单元A与逻辑单元B之间交错,逻辑单元A与逻辑单元B两者都执行输入数据(由于逻辑单元A与逻辑单元B是相同的)的密码操作。换言之,逻辑单元A与逻辑单元B交替执行在每个时钟周期的输入数据的密码操作。图2示出了包括被设计以提供所加强的密码术来挫败更高阶的DPA攻击的逻辑核心104的密码设备。在图2中的逻辑核心104包括在302(a)的逻辑单元A、在302(b)处的逻辑单元B以及在302(c)处的第三逻辑单元(“逻辑单元C”)。应到意识到在图2中的加密设备可以包括这种类别的甚至四个或更多的逻辑单元。在图2中,逻辑单元A包括触发阵列A以及组合逻辑A。被标注与图1中相同的指示数字的逻辑单元B包括触发阵列B以及组合逻辑B。逻辑单元C包括触发阵列304(c)(“触发阵列C”)以及第三组合逻辑306(c)(“组合逻辑C”)。在图2中,密码操作可以在这些三种逻辑单元之间交错,其中所有三种逻辑单元是彼此相同的(例如功能上以及逻辑上相等的)。如在图2中所示出的,逻辑单元A的输出节点作为逻辑单元B的输入节点操作。逻辑单元B的输出节点作为逻辑单元C的输入节点操作。在第一时钟周期,逻辑单元A执行输入数据的密码操作,逻辑单元B执行在第二时钟周期的输入数据上的密码操作,逻辑单元C执行在第三时钟周期的输入数据的密码操作。逻辑单元的每一个可以在不执行输入数据的密码操作的时钟周期内在随机数据上执行密码操作。(未在图中示出的另外的输入生成器可以在操作的初始周期提供不相关的输入到逻辑单元C。)这个实现可以被延伸到n逻辑单元来避免n阶的DPA攻击。参考图3示出了描绘在实现所加强的加密术的密码设备的操作的示例的流程图500。在操作505处,密码设备接收输入数据,在操作510处输入数据被发送到第一逻辑单元。在操作515处,随机数据被发送到第二逻辑单元,其中第二逻辑单元与第一逻辑单元是相同的。在操作520处,密码设备用第一逻辑单元执行输入数据的第一密码操作。在操作525处,密码设备用第二逻辑单元执行随机数据的第一处理操作。第一处理操作与第一密码操作同步地发生。在530处,由第一逻辑单元所生成的输出数据被发送到第二逻辑单元,并且在535处,由第二逻辑单元所生成的输出数据被发送到第一逻辑单元。在540处,密码设备用第一逻辑单元执行由第二逻辑单元所生成的输出数据的第二处理操作。在545处,密码设备用第二逻辑单元执行由第一逻辑单元所生成的输出数据的第二密码操作。第二密码操作与第二处理操作同步地发生。如果操作已经被完成,密码设备在550处输出结果。否则操作从530继续经历所要求的额外数量的互动,直到被完成。现在参考图4,示出了被配置来实现所加强的密码术的密码设备600的示例的框图。密码设备包括接口单元602、密码硬件608以及处理器606。接口单元602被配置来接收输入数据并且被配置来输出密文。如上所述的密码硬件608包括诸如核心102或104的包括多个密码逻辑单元(例如两个或多个逻辑单元A、逻辑单元B、逻辑单元C等等)的逻辑核心。接口单元602以及密码硬件被耦接到处理器606。处理器606是微处理器或者被配置以执行针对实行上文所描述的各种操作和任务的程序逻辑指令的微控制器。例如,如本文所述的处理器606可以使得硬件608来执行所加强的密码技术。处理器606的功能可以被编码在一个或多个有形的计算机可读介质(例如嵌入式逻辑,诸如专用集成电路、数字信号处理指令、由处理器所执行的软件等等)中的逻辑所实现。总之,所提供的方法包括:在被配置来执行密码术的电子设备中接收输入数据、发送输入数据到第一逻辑单元、发送随机数据到第二逻辑单元(其中第二逻辑单元与第一逻辑单元相同)、用第一逻辑单元执行输入数据的第一密码操作、用第二逻辑单元执行随机数据的第一处理操作(其中第一处理操作与第一密码操作同步发生)、发送由第一逻辑单元所生成的输出数据到第二逻辑单元、发送由第二逻辑单元所生成的输出数据到第一逻辑单元、用第一逻辑单元执行在由第二逻辑单元所生成的输出数据的第二处理操作、用第二逻辑单元执行在由第一逻辑单元所生成的输出数据的第二密码操作(其中第二密码操作与第二处理操作同步发生)。这些操作可以被反复地按所要求的次数重复以得出所需求的密码结果。另外地,所提供的装置包括:包括第一触发阵列与第一组合逻辑的第一逻辑单元、与第一逻辑单元相同地被配置并且包括第二触发阵列和第二组合逻辑的第二逻辑单元(其中第一逻辑单元的输出节点被配置以作为第二逻辑单元的输入节点操作,以这种方式将来自第一逻辑单元的输出被输入到第二逻辑单元,并且其中第二逻辑单元的输出节点被配置以作为第一逻辑单元的输入节点操作,以这种方式第二逻辑单元的输出被输入到第一逻辑单元)。更进一步地,被提供的装置包括:包括第一触发阵列与第一组合逻辑的第一逻辑单元、与第一逻辑单元相同地被配置的并且包括第三触发阵列以及第三组合逻辑的第二逻辑单元(其中,第一逻辑单元的输出节点被配置以作为第二逻辑单元的输入节点来操作,以这种方式来自第一逻辑单元的输出被输入到第二逻辑单元)、被配置以作为第三逻辑单元的输入节点的第二逻辑单元的输出节点(以这种方式来自第二逻辑单元的输出被输入到第三逻辑单元)、以及被配置以作为第一逻辑单元的输入节点操作的第三逻辑单元的输出节点(以这种方式来自第三逻辑单元的输出被输入到第一逻辑单元)。以上描述意在作为仅仅示例的方法。各种修改以及结构的改变可以在不离开本文所描述的概念的范围以及在与权利要求相等的范围与领域内而被做出。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1