说明书时钟充电域逻辑
背景技术
如今有许多安全应用,其中保护电子存储和/或处理数据是十分重要的。现今的安全应 用可在许多领域进行,包括ATM卡,身份证,储值卡,信用卡,移动电话(例如,SIM卡), 计算机访问控制,付费电视,以及医学信息存储。这些卡和应用的安全经常依赖于嵌入卡的 存储器(或其它电路)的密钥的密码计算。攻击者试图从卡中抽取这些密钥,以便修改卡的 内容,创建一复制的卡,或产生一未授权的交易。主动攻击会留下清晰可见的干涉的标记, 而被动攻击通常不会留下标记。
在一个被动攻击中,在信息与阅读器交互时,信息从卡中收集。被动攻击可以是旁路攻 击的形式。旁路攻击包括基于卡或电路的物理实现中破译密钥,这是通过注意时间信息,功 率消耗,电磁场,甚至声音来实现的。例如,在逻辑门的切换期间的电流改变(以及导致的 功率信号)可以通过供电线路监视,并用于解码密钥,其中逻辑门是智能卡的组成部分。此 类型的攻击,也被称为差分功率分析(DPA),对智能卡的持有者具有许多负面影响(例如, 一ATM卡可被侵入,并用于从卡拥有者的账户,未经卡拥有者的授权,提取现金)。保持 数据安全,并保护它免于旁路攻击,包括DPA攻击,持续成为一个重要的设计考量。
发明内容
本发明公开了一种系统和方法,用于提供安全逻辑块。逻辑单元可保护不同应用的安全, 包括提供运行加密算法的加密块。
根据本发明,提供了一时钟充电机制,它从电源中隔离了逻辑单元,并以一种不呈现漏 电的方式,为逻辑单元充电,这避免了逻辑单元的状态被破译。逻辑单元的时钟充电机制抑 制了逻辑单元的功率信号被读出,这是通过从外部包括电源电压和接地连接中,同时隔离逻 辑单元的高和低电源电线来实现的。
本发明的实施例提供电容式的充电,用于运行一逻辑单元。电容式的充电通过至少一个 逻辑转换或切换周期,以一种充足的方式建立,以运行逻辑块的设备。提供至少两个时钟, 一个时钟用于以某一速度执行单元的逻辑,而另一个时钟用于在逻辑运算之间为一电荷存储 器件充放电。
本发明的实施例的一个数字逻辑单元可包括一电容,电容可受控的充电和放电,以便在 数字逻辑单元的逻辑块和电源间提供一个“隔离”或“去耦”。
控制电容充放电的方法可通过切换操作进行,包括如下步骤:当电容从逻辑块和电源中 断开时,连接电容的两端,以便短路电容,并允许电容放电;在电容放电完成后,连接电容 至电源,以为电容充电;在电源为电容充电完成后,把电容从电源中断开;以及在电源为电 容充电完成后,连接电容至逻辑块,以为逻辑块提供至少一个时钟周期/信号跃迁的电力。
此说明以一种简化的方式有选择的介绍了一些概念,这些概念会在下面进一步的详细描 述。此说明并未试图标出本主题的关键特征或本质特征,也未试图用于限制本主题的范围。
附图说明
根据本发明,图1是一个时钟充电域逻辑(CCDL)单元的示意图。
图2A-2C显示了本发明的某些实施例的使用金属氧化物半导体场效应晶体管 (MOSFET)放电开关的例子。
根据本发明,图3A-3D说明了一个时钟充电域逻辑单元操作方法。
根据本发明,图4是一个时钟充电域逻辑单元例子的示意图。
根据本发明,图5是逻辑单元的时钟序列。
根据本发明,图6是逻辑单元的结构仿真图。
图7一个电容放电图。
根据本发明,图8是一个电路图。
根据本发明,图9A-9D组合起来是一个2bit加密块实施的电路图。
图10是图11的加密块操作的信号图。
根据本发明,图11是在一个CCDL单元内内部逻辑电线的输出信号图。
根据本发明,图12是组成CCDL单元的一个AES加密核心电源信号图。
具体实施方式
本发明公开了一种系统和方法,用于提供安全的逻辑块。逻辑单元可保证各种应用,包 括加密块的安全。
根据一个实施例,提供了一种时钟充电机制,它从电源中隔离了一逻辑单元,并且以一 种不显示漏电的方式,为逻辑电源充电,以避免逻辑单元的状态被破译。逻辑单元的时钟充 电机制抑制了逻辑单元的功率信号被读出,这是通过从外部包括电源电压和接地连接中,同 时隔离逻辑单元的高和低电源电线来实现的。
本发明的实施例提供电容式的充电,用于运行一逻辑单元。电容式的充电通过至少一个 逻辑转换或切换周期,以一种充足的方式建立,以运行逻辑块的设备。提供至少两个时钟, 一个时钟用于以某一速度执行单元的逻辑,而另一个时钟用于在逻辑运算之间为一电荷存储 器件充放电。
硬件中的加密块,如智能卡,现场可编程门阵列(FPGA),以及专用集成电路,通常由 可运行加密算法的逻辑块组成。
在带有标准静态逻辑电路的加密块内,这些电路内的逻辑状态的转换可由为加密块供电 的电源(和接地)线而检测到。此外,逻辑块从低至高的的逻辑状态的转换具有不同于由高 至低转换的功率信号。因此,通过监视为加密块供电的供电线,加密块的操作可被解码。此 方法可称为差分功率分析(DPA)。类似的,逻辑转换期间的电磁泄漏可被加密块内的解码 操作所监视。使用这种旁路攻击,加密块中的加密密钥可内破译,这产生了加密块中数据处 理的一个安全缺口。
本发明的实施例可提供在保护逻辑块免于揭露逻辑状态的转换时,最小的区域经费。此 外,不仅是实施例隔离了逻辑单元的操作,以至于在逻辑单元的操作期间阻止了从输电线中 感知功率消耗,而且本发明的系统和方法也保护了充电免于从地线中被读取。也可以保护I/O 总线和其它信号线免于旁路攻击探测器的威胁,这是通过阻止破译信号线上的转换信号来实 现的。
在一个实施例中,电荷存储器件用于为一逻辑单元提供一运行电压,并被设置为在电源 和逻辑块中的媒介。在某些实施例中,每个逻辑单元块可包括它自身的电荷存储器件,用于 独立的抬升或降低电压。在一个实施例中,电荷存储器件是一个电容;然而,实施例并不仅 限于此。
因为在电荷存储器件,例如电容上的每套逻辑运算之后,剩下的电荷包含由逻辑块在每 套逻辑运算期间的完整的电力消耗信息,只从电源上的逻辑块(或者使用时,一个充电电容) 断开的系统容易通过地线受到被动攻击(例如DPA)。本发明的实施例通过同时从地线部分 去耦逻辑块和充电电容,免于遭受这样一种易受攻击的危险。
根据本发明的不同的实施例,伴随着逻辑块的每个逻辑转换(或伴随着一个预设数量的 逻辑转换),电荷存储器件通过让它的终端短路而进行放电。
在一个实施例中,可提供一个或多个数字逻辑单元。每个数字逻辑单元可包括一电荷存 储器件,电源连接器,以及一逻辑块。每个逻辑块可设置用于连接相同的电源。
一个数字逻辑单元可如此设置,以至于它的电荷存储器件可从电源和逻辑块中断开,以 为电荷存储器件放电。电荷存储器件可从两个电线中断开(例如,电源线和地线)。电荷存 储器件可随后连接至电源,而仍然从逻辑块中断开,以为电荷存储器件充电。接着,电荷存 储器件可从电源中断开,并连接至逻辑块,以作为逻辑块的电源。随后,逻辑块的输入可允 许进行转换,并转换需要的电力可由电荷存储器件提供。此过程可在任何点开始和/或可在一 个周期内持续。
每当电荷存储器件从电源中断开时,电荷存储器件从电源的接地连接中断开。电荷存储 器件可使用任何已知的合适的方式同电源连接和断开,包括一个或多个开关。并且,电荷存 储器件可使用任何已知的合适的方式同逻辑块连接和断开,包括一个或多个开关。
在某些实施例中,可使用晶体管作为开关,以连接电荷存储器件,并把电荷存储器件从 电源和/或逻辑块中断开。可使用任何已知的合适的晶体管,例如,一个双极面结型晶体管, 一个金属氧化物半导体场效应晶体管(MOSFET),或是它们的一个组合。每个使用的MOSFET 可以即是一个p型MOSFET(PMOS),或是一个n型MOSFET(NMOS)。在一个实施例 中,可使用一个传输门配置。在另一个实施例中,可使用二极管作为一个或多个开关。在另 一个实施例中,可使用基于微电子机械系统的开关。
在某些实施例中,可使用一个MOSFET晶体管作为一个电荷存储器件。在一个实施例 中,电荷存储器件是MOSFET晶体管,当从电源和逻辑块中断开电容,以为电容放电时, MOSFET的栅极可连接至MOSFET的源极,漏极和/或基极,以允许电容完全放电。电容 MOSFET的栅极可使用已知的任何合适的方式连接至MOSFET的源极,漏极和(中某些情况 下)基极,包括一个或多个开关,开关可以是此中描述的晶体管。随后,当电容连接电源, 而仍保持从逻辑块中断开,以为电容充电时,电容的栅极可从作为电容使用的MOSFET的源 极,漏极和基极中断开。
在另一个实施例中,电荷存储器件可以是一个离散的电容。在另一个实施例中,电荷存 储器件可以是电荷耦合器件,或其它的主动的电荷存储器件。
每个逻辑块可以是任何已知的合适的逻辑块,并可包括一个或多个输入端,一个或多个 输出端,一个或多个电线端,和/或一个或多个接地端。
逻辑块可以是任何已知的合适的逻辑门配置。例如,逻辑块可使用一个NAND逻辑门, 一个AND逻辑门,一个NOR逻辑门,一个OR逻辑门,一个XOR逻辑门,一个XNOR逻 辑门,一个NOT逻辑门,一个ONE逻辑门,一个ZERO逻辑门,或它们的一个组合。此至 少一个的逻辑块可使用任何和是的逻辑器件,包括晶体管进行装配。晶体管可以为场效应晶 体管,具有源极,漏极,基极和栅极。
在一个实施例中,逻辑块可如此配置,以至于每个晶体管的基极可耦合至电容,而输入 连接到至少一个逻辑块转换,并且基极耦合至电容(例如漂浮),而电容可进行放电和充电。
在另一个实施例中,这样的一个晶体管不在普通的大块CMOS处理中装配,至少一个 晶体管可在隔离阱中形成。例如,N沟道器件的p阱可从一n阱层的基底中隔离。
根据本发明,图1是一个时钟充电域逻辑(CCDL)单元的示意图。参考图1,在一个 实施例中,一个数字逻辑单元可包括:一逻辑块10和一电荷存储器件(在此实施例中以电容 12表示),电荷存储器件用于为逻辑块10供电,而完全的从电源14中去耦逻辑块10。电容 12通过使用放电开关16从电源14中去耦逻辑块10;一开关18,连接电容12至一个电源连 接(例如,高电压电线);一开关20,连接电容12至另一个电源连接(例如,低电压电线 或接地);以及两个开关22,24,连接电容12于逻辑块10的电源线和接地线。
为了给电容12放电,放电开关16可以关闭,而其它开关18,20,22,24可以打开, 以至于电容12从逻辑块10和电源14中断开,包括从电源14的接地连接中断开。为了给电 容12充电,放电开关16可以连同开关22,24一起打开,并且开关18和20可以关闭,以至 于电容12连接至电源14,而仍然从逻辑块10中断开。随后,开关18和20可以打开,以从 电源14中断开电容12,而开关22和24可以关闭,以连接电容12至逻辑块10。在开关22 和26关闭前,开关18和20可以打开,因而确保了逻辑块10没有直接的连接电源14或逻辑 单元的电源连接。
接着,逻辑块10的输入可允许进行转换,并转换需要的电力可由电容12提供。此过程 可在任意点开始,和/或在一个周期内持续。
开关16,18,20,22和24可以受控制的通过一时钟信号发生器提供信号至开关。一时 钟计划可包含三个时钟信号—一个控制开关16,一个控制开关18和20,以及一个控制开关 22和24。
虽然电荷存储器件被描述为电容12,应当理解电荷存储器件可以为任何合适的电荷存 储器件,包括主动或被动的元件。
每个开关16,18,20,22,26可以是任何已知的合适的开关。在某些实施例中,晶体 管,二级管,基于MEMS的开关,等可以用于一个或所有的开关。对于使用晶体管作为开关 的实施例,可使用任何已知的合适的晶体管,例如,双极面结型晶体管,MOSFET,或它们 的一个组合。根据本发明不同的实施例,图2A-2C显示了放电开关(16)的实例。参考图2A-2C, 放电开关16可以是,例如,一个PMOS(图2A),NMOS(图2B),或一个使用PMOS和 NMOS晶体管的传输门(图2C)。
根据本发明的一种实施例,图3A是在第一阶段期间的CCDL单元的示意图。参考图3A, 电容C1(或其它电荷存储器件)可从电源V1和逻辑块中断开,以为电容C1充电。电容C1 的两端可互相连接,以帮助电容C1放电。这可以通过使用,例如,开关,比如晶体管来完 成。电容C1可以使用任何已知的合适的方式从电源V1中断开,包括一个或多个开关。并且, 电容C1可以使用任何已知的合适的方式从逻辑块中断开,包括一个或多个开关。
电容C1可从电源V1和逻辑块中断开一段时间,以足够使电容C1放电至一已知的电荷 水平,它可以为0伏(V)或非常接近0V。根据某个实施例,电容被放电至一低于最大放电 水平的电压,以用于逻辑转换,并可放电至大约0V。并且,当电容C1从电源V1中断开时, 电容C1从电源V1的接地连接中断开。
电容可以从电源和逻辑块中断开以允许电容放电的时间可以是,例如任何下述的值,任 何大约下述的值,至少任何下述的值,至多任何下述的值,或把任何下述的值作为临界点的 任何范围内,虽然实施例并不仅限于此(所有值都以纳米为单位):0.0001,0.001,0.01,0.1,1, 2,3,4,5,6,7,8,9,10,15,20,25,30,40,50,100,150,200,250,300,350,400,410,420,430,440, 450,460,470,480,490,500,550,600,650,700,750,800,850,900,950,1000,1500,2000,3000, 4000,5000,6000,7000,8000,9000,104,105,106,107,108,或109。例如,电容可以从电源和逻 辑块中断开以允许电容放电的时间可以为约3纳秒或约455纳秒。在某些实施例中,电容C1 的两端可以在此放电过程中互相连接。
根据本发明的实施例,图3B是在一第二相期间的CCDL单元的示意图。参考图3B, 电容C1可以连接电源V1,而仍然保持从逻辑块中断开,以为电容C1充电。电容C1可使用 任何已知的合适的方式连接电源V1,包括一个或多个开关。在一个实施例中,电容C1可同 连接电源V1并联。电容C1可连接电源V1足够长的时间,以为电容C1充电,使之能为逻 辑块充电。
电容可以连接电源以允许为电容充电的时间可以是,例如任何下述的值,任何大约下述 的值,至少任何下述的值,至多任何下述的值,或把任何下述的值作为临界点的任何范围内, 虽然实施例并不仅限于此(所有值都以纳米为单位):0.0001,0.001,0.01,0.1,1,2,3,4,5,6,7, 8,9,10,15,20,25,30,40,50,100,150,200,250,300,350,400,410,420,430,440,450,460,470, 480,490,500,550,600,650,700,750,800,850,900,950,1000,1500,2000,3000,4000,5000, 6000,7000,8000,9000,104,105,106,107,108,或109。
在一个实施例中,一个MOSFET可作为电容C1,并且当电容C1从电源V1和逻辑块 中断开,以为电容C1放电时,电容C1的栅极可连接至MOSFET的源极,漏极和基极,MOSFET 可用作电容C1,以允许电容完全放电。电容C1的栅极可使用已知的任何合适的方式连接至 MOSFET的源极,漏极和基极,包括一个或多个开关,开关可以是此中描述的晶体管。随后, 当电容C1连接电源V1,而仍保持从逻辑块中断开,以为电容C1充电时,电容C1的栅极可 从作为电容C1使用的MOSFET的源极,漏极和基极中断开。在另一个实施例中,MOSFET 作为电容使用的基极连接至逻辑单元的接地连接(例如,图4的CP_GD)。随后,作为电容 C1使用的MOSFET的栅极连接至它的源极和漏极,它的基极仍保持同逻辑单元的接地连接 相连接。
根据本发明的实施例,图3C是在一第三相期间的CCDL单元的示意图。参考图3C, 电容C1可从电源V1中断开,并连接逻辑块,以充当逻辑块的电源。电容C1可以使用任何 已知的合适的方式连接逻辑块,包括一个或多个开关。在一个实施例中,电容C1可同逻辑 块并联。并且,当电容C1从电源V1中断开时,电容C1也从电源V1的接地连接中断开。
根据本发明的实施例,图3D是在一第四相期间的电路示意图。参考图3D,逻辑块的 输入可允许被转换(例如,可提供信号输入),并且需要进行转换的电力可由电容C1提供。
在某些实施例中,例如大块CMOS应用中,在逻辑转换期间,逻辑块内每个晶体管的 基极可以被连接至电容,因而抑制了从电源中流入或流出的基底的电流(对于NMOS晶体管) 或N阱电流(对于PMOS晶体管)。否则这些电流可能用于辨别逻辑块内的逻辑转换。在另 一个实施例中,孤立的阱,其中至少焊接了一个晶体管,可用于抑制基底的电流。
电容可以连接逻辑块以允许逻辑块的输入进行转换的时间可以是,例如任何下述的值, 任何大约下述的值,至少任何下述的值,至多任何下述的值,或把任何下述的值作为临界点 的任何范围内,虽然实施例并不仅限于此(所有值都以纳米为单位):10-6,10-5,10-4,10-3,0.01, 0.1,1,2,3,4,5,6,7,8,9,10,15,20,25,30,40,50,100,150,200,250,300,350,400,410,420, 430,440,450,460,470,480,490,500,550,600,650,700,750,800,850,900,950,1000,1500, 2000,3000,4000,5000,6000,7000,8000,9000,104,105,106,107,108,或109。
参考图3A-3D,本发明的实施例的CCDL逻辑单元的基本操作已经被描述了。在第一 阶段中,时间=T1,电源V1和逻辑块可从电容C1中断开。电容C1的两端可以互相连接, 并且电容C1可以放电。此步骤在CCDL逻辑电路操作的每个周期内,把电容C1放电至一个 已知的电量水平。
在第二阶段中,时间=T2,逻辑块保持从CCDL的剩余电路中断开。电容C1的两端可 以互相断开,并同电源V1并联。电容C1保持并联电源V1足够长的时间,以允许电容C1 充电至一需要的电势,例如同电源V1的电压相等或接近的电势。
在第三阶段中,时间=T3,电容C1可从电源V1中断开并连接至逻辑块。以此方式,电 容C1可作为逻辑块的电源。
在第四阶段中,时间=T4,逻辑块的输入可允许被转换,并且转换所需要的电力可由电 容C1提供。逻辑块内每个晶体管的基极可以被连接至电容,因而抑制了从电源中流入或流 出的基底的电流(对于NMOS晶体管)或N阱电流(对于PMOS晶体管)。否则这些电流 可能用于辨别逻辑块内的逻辑转换。操作周期可随后返回至第一阶段,此过程可重复。此过 程可在任何阶段开始和/或可在一个周期内持续。
通过在第一阶段内为电容C1放电,由于在第四阶段后剩余在电容C1中的电荷被从在 第一阶段(其中电容在接回电源前已经放电)期间的电容C1中移除,在一个逻辑转换期间 从电容C1中移除的电荷水平被从电源中隔离,以防止被感觉到。本发明的实施例提供的这 个配置可解决电容中的不同电量的问题,因为在第一阶段期间电容C1中被逻辑块每次消耗 的电量可随逻辑块内转换的发生而改变,而逻辑块内的转换根据逻辑块内的输入而改变,这 导致了从电容C1中移除了不同数量的电量,由此可提供一些信息,这些信息可能揭露逻辑 块内进行的操作类型。
此外,使用CCDL方法,至电源的正极和回路都可从逻辑电路中断开,因而有助于移 除逻辑块内来自电源的充电或放电节点电流的任何路径。所有被逻辑块使用的逻辑操作的电 量都源于或归于电容。
本发明的实施例可在一个AES加密块中进行。此外,一个非重叠性时钟电路,产生了 五个非重叠性时钟信号以驱动一CCDL逻辑单元的充电周期,可被使用。当然,不同的实施 例可使用或多或少的时钟信号。例如,可使用至少两个时钟信号,一个时钟用于以某一速度 执行单元的逻辑,而另一个时钟用于在电源和逻辑块之间连接或断开一电荷存储器件。在某 些实施例中,无需为每个独立的逻辑单元计时。这可能允许了基本静态逻辑单元与一个CCDL 电源切换单元核心配对。
图4和图6是类似的图表,显示了逻辑单元的实例结构,其中基本静态逻辑单元(例子 中的AND)可与一个CCDL电源切换单元核心配对。参考图6,左圈显示了单元的CCDL电 源切换核心。一个单个NMOS晶体管(图4)可由电力电容提供,以为它放电,因而限定了 电容放电至NMOS器件的门限电压(Vth)的数量,NMOS器件用于短路电力电容的两端。 附加的PMOS器件,因而作为一个传输门(图6),可允许电压施加在电力电容上,以在每 个放电周期内,完全的放电至0V(或非常接近至0V)。
图7是一个电容放电图。参考图7,其中显示了电容放电水平的改善。中心区域(指出 为“电容放电”)显示了在CCDL单元的再充电周期的放电部分期间,由于电容被短路而在 电力电容上的每侧电压。在在放电周期内,电力电容的每侧达到了相同的电压电势(例如, 没有或几乎没有电量在电力电容中剩余)。这确保了在CCDL单元的每个周期内,需要相同 的电量,以为电力电容充电。
图6右侧的环绕区域显示了CCDL单元的逻辑部分。在此情况下,逻辑电路作为一个 基本双输入的AND门使用。在CCDL单元内同静态逻辑运行逻辑的能力允许了一个已存的, 低功率的,低区域消耗的逻辑系列的使用。因此,一个唯一的逻辑电路,用于执行AES核心 需要的基本逻辑功能,不是必需的。
在一个实施例中,可使用保护环,围绕在一个AES核心周围,以提供一些水平的结绝 缘,以进一步减少基底电流抵达电源的能力。在一个进一步的实施例中,在非大块处理中, 在CCDL单元的部分之下的N阱澡盆(一个在p型基底内的相对深的n型作用区)可提供进 一步的从逻辑运算的电源的隔离,逻辑运算从CCDL单元的基底电流中产生。
在一个实施例中,可在CCDL电路接口,同标准CMOS静态逻辑块(例如,那些在一 个测试集成电路中使用的静态逻辑块)使用具有内部迟滞作用的一个Schmitt触发器。迟滞作 用产生的抗干扰性可抑制CCDL输出信号免于错误的触发一个具有接口标准的CMOS逻辑单 元。
出现在一块数字逻辑单元内的数字逻辑单元的数目可以是,例如任何下述的值,任何大 约下述的值,至少任何下述的值,至多任何下述的值,或把任何下述的值作为临界点的任何 范围内,虽然实施例并不仅限于此:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, 25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,150,200,250,300,350,400,450,500, 550,600,650,700,750,800,850,900,950,1000,1500,2000,3000,4000,5000,6000,7000,8000, 9000,或10000。例如,一块数字逻辑单元内可包含20个如此中描述的数字逻辑单元。
数字逻辑单元内的时钟频率可以是,例如任何下述的值,任何大约下述的值,至少任何 下述的值,至多任何下述的值,或把任何下述的值作为临界点的任何范围内,虽然实施例并 不仅限于此(所有数值都以兆赫表示):10-6,10-5,10-4,10-3,0.01,0.1,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100, 150,200,250,300,350,400,450,500,550,600,650,700,750,800,850,900,950,1000,1500, 2000,3000,4000,5000,6000,7000,8000,9000,或10000。例如,一个数字逻辑单元的时钟频 率可以为10MHz或大约10MHz。
在一些实施例中,电荷存储器件在每个时钟周期内更新(例如,充电)一次,并且再充 电周期从系统时钟的下降沿开始。因此,在数字逻辑单元的时钟周期为10MHz的情况下,所 有AES单元内的逻辑转换都在小于50ns内完成。假设时钟缘的触发器在AES加密核心中使 用,在此条件下,在一个AES加密块内的每个传输的逻辑转换必需在25ns内完成。在其它 的实施例中,电荷存储器件在预设数量的时钟周期后更新,以便可以在电荷存储器件一单个 充电中进行多个逻辑转换。在一个这样的实施例中,时钟周期的数字可随机的或按一种式样 转变。例如,在充电期间的时钟周期的数字可通过一随机数字发生器控制(因此充电以随机 的间隔发生)。
在本发明的一个实施例中,一种数字逻辑单元的方法可包括一电荷存储器件的形成,一 电源的连接,以及如此中描述的一逻辑块。此方法可进一步包括在一电线(或金属互连)上 形成一开关,用于互相连接电荷存储器件两端,也包括在电荷存储器件的终端和电源间的开 关,以及电荷存储器件的终端和逻辑电路间的开关。每个开关可以是,例如一个MOSFET。 在一个特别的实施例中,通过形成一MOS电容(或以某种方式连接以提供电容),一个 MOSFET可被用作电荷存储器件,并且在电线(或金属互连)上连接电容终端的开关可由连 接MOSFET的栅极至MOSFET的源极,漏极和(可选的)基极的电线来提供。此方法也可 包括形成一电源,以连接电源连接。可形成多个这样的数字逻辑单元。在一个实施例中,可 形成一单个电源,以连接所有的逻辑单元。在另一个实施例中,一个或多个逻辑单元可共享 相同的电源(例如,所有的逻辑单元可共享相同的电源)。
根据本发明的实施例,可配置数字逻辑单元的一个系列,以便在单元的每个逻辑转换期 间,每个单元由一个电容(或其它电荷存储器件)供电。伴随每个逻辑转换(或一个预设数 量的逻辑转换),电容的两端互相连接,而电容从逻辑单元和任何电源中断开,因而允许了 电容放电至一个已知的水平(例如,0V或非常接近0V)。电容可随后连接至一电源,以再 次为电容充电。在逻辑单元的所有逻辑转换期间,此过程从电源中断开每个逻辑单元,因而 在电压为逻辑单元提供电力时避免了功率消耗被感觉到,并且极大的抑制了在逻辑单元上的 旁路攻击,例如DPA。
根据本发明的实施例,逻辑单元被完全从电源上解耦,并只连接至一电荷存储器件。在 逻辑块内的逻辑转换进行后,电荷存储器件的放电是一种掩饰在每个CCDL逻辑操作周期内 电量消耗的优选的方式。在逻辑转换期间,逻辑块内每个晶体管的基极可连接电荷存储器件, 因而抑制了从电源中流入或流出的基底的电流(对于NMOS晶体管)或N阱电流(对于PMOS 晶体管)。否则这些电流可能用于辨别逻辑块内的逻辑转换。
下列的实施例用于列举可在本发明中使用的一些配置。下列实施例的举例不可解释为穷 尽的,并且几乎不用户说明一些典型配置。其它配置也可包含在本发明的范围和精神内。
在第一实施例中,提供了一个安全数字逻辑单元,包括一逻辑单元;以及一电荷存储器 件,用于在逻辑操作期间,为逻辑单元提供电力,电荷存储器件可控制的在一充电操作期间 连接至一电源,并在一逻辑操作期间连接逻辑单元,其中在逻辑操作期间,电荷存储器件未 连接电源以及电源的接地连接。电荷存储器件可以是一离散的电容,一MOS电容,一MOS 晶体管,一电荷耦合器件,等。
在第二实施例中,第一实施例的安全数字逻辑单元进一步包括一第一开关,用于为电荷 存储器件放电。第一开关可以是,例如一个晶体管或一个传输门。
在第三实施例中,第一或第二实施例的电荷存储器件在逻辑单元的每个逻辑操作之间, 或在逻辑单元的预设数量的逻辑操作期间,被周期性的完全的放电。
在第四实施例中,第一至第三实施例中任意一个的安全数字逻辑单元进一步包括一第二 开关,用于连接或断开电荷存储器件与电源的电源连接;一第三开关,用于连接或断开电荷 存储器件与电源的接地连接;一第四开关,用于连接或断开电荷存储器件与逻辑单元的电源 连接;以及一第五开关,用于连接或断开电荷存储器件与逻辑单元的接地连接。此第一,第 二,第三,第四和第五开关每个可包含一晶体管。
在第五实施例中,第一至第四实施例中任意一个的安全数字逻辑单元进一步包括额外的 隔离开关,位于供电线路和电源之间,以及接地电线,连接安全数字逻辑单元。隔离开关可 至少为六分之一的串联开关,连接电源连接和第二开关,以及至少为七分之一的串联开关, 连接接地连接和第三开关。
在第六实施例中,第一至第五实施例中任意一个的逻辑单元可包括多个晶体管,每个具 有一个基极,以及其中在每个逻辑单元内的每个晶体管的所述基极至少连接逻辑单元的电源 连接和逻辑单元的接地连接中的其中之一。
在第七实施例中,提供了一种为一个数字逻辑单元的一个逻辑块供电的方法,其中数字 逻辑单元包含逻辑块,以及一电荷存储器件,此方法包括如下步骤:
(a)从逻辑块和电源以及电源的接地连接中断开电荷存储器件;
(b)连接电荷存储器件与电源;
(c)从电源中断开电荷存储器件,包括从电源的接地连接中断开电荷存储器件;以及
(d)连接电荷存储器件与逻辑块,用于为逻辑块提供电源。电荷存储器件可以是一离散 的电容,一MOS电容,一MOS晶体管,一电荷耦合器件,等。
在第八实施例中,第七实施例的方法可进一步包括一个步骤(e),以允许当电荷存储器件 连接逻辑块时,逻辑块的输入可以转换。
在第九实施例中,第八实施例中使用的逻辑块包括多个晶体管,每个具有一基极,并且 其中在步骤(e)期间,在逻辑块内的每个晶体管的基极连接电荷存储器件。
在第十实施例中,第八实施例中使用的逻辑块是如此制造,以便至少一个晶体管位于一 隔离阱中。例如,可使用一个PN结,以从基底中隔离一个阱,以便一个n阱被一个p形层 从基底中隔离,和/或一个p阱被一个n形层从基底中隔离。
在第十一实施例中,第七至第十实施例中任意一个的方法进一步包含一步骤(f),用于在 允许逻辑块的输入转换后从逻辑块中断开电荷存储器件。在断开之前,电荷存储器件可连接 逻辑块进行预设数量的转换。
在第十二实施例中,第七至第十一实施例中任意一个的方法可进一步包含重复所有的步 骤(例如步骤(a)至(f)),只要逻辑块被供电。
在第十三实施例中,第七至第十二实施例中任意一个的方法中,步骤(a)可包含断开电荷 存储器件,而电荷存储器件从逻辑块和电源以及电源的接地连接中断开。
在第十四实施例中,第七至第十三实施例中任意一个的方法中,步骤(b)用于在电荷存 储器件被放电后,为电荷存储器件充电;以及在电荷存储器件被电源充电后,步骤(c)被执行 了。
在第十五实施例中,第七至第十四实施例中任意一个的方法中,电荷存储器件可包括至 少两个端点,并且其中电荷存储器件的放电包含互相连接电荷存储器件的两个端点,而电荷 存储器件仍保持从逻辑块和电源的断开。电荷存储器件的两个端点可以互相连接,而电荷存 储器件仍保持从逻辑块和电源的断开一段足够长的时间,以基本上,完整的或有效的为电荷 存储器件放电。
在第十六实施例中,第十二至第十五实施例中任意一个的方法中,互相连接电荷存储器 件两个端点包括闭合一第一开关,第一开关连接电荷存储器件的两个端点,并且其中互相断 开电荷存储器件两个端点包括打开一第一开关。第一开关可以是一晶体管,传输门,等。
在第十七实施例中,第七至第十六实施例中任意一个的方法中,连接电荷存储器件至电 源包括闭合一第二开关和一第三开关,第二和第三开关连接电荷存储器件与电源,其中断开 电荷存储器件与电源包括打开一第二开关和一第三开关,并且其中连接电荷存储器件与逻辑 块包括闭合一第四开关和一第五开关,第四和第五开关连接电荷存储器件与逻辑块。第二, 第三,第四和第五开关每个可包括一晶体管,二极管,MEMS开关装置,等。
在第十八实施例中,第八至第十七实施例中任意一个的方法中,步骤(e)可进一步包括从 电源的电源连接中隔离数字逻辑单元,这是通过打开所有位于电源的电源连接和第二开关之 间的至少六分之一串联开关达到的;并从电源的接地连接中隔离数字逻辑单元,这是通过打 开所有位于电源的接地连接和第三开关之间的至少七分之一串联开关达到的。
本发明的实施例可用于安全应用。
在本发明的某些实施例中,可在一个智能卡或类似设备之上或之内,提供如此中描述的 一个或多个电路。如此一个智能卡或类似设备可用于,例如ATM卡,身份证,储值卡,信 用卡,移动电话,计算机访问控制,付费电视,和/或医学信息存储。
在本发明的某些实施例中,可在一个智能卡或类似设备之上或之内,提供如此中描述的 一个或多个方法。如此一个智能卡或类似设备可用于,例如ATM卡,身份证,储值卡,信 用卡,移动电话,计算机访问控制,付费电视,和/或医学信息存储。
为了更好的理解本发明以及它可能具有的许多优点,下述例子被举出。下述例子用于说 明本发明的一些方法,应用,实施例及其改变。它们因而不被认为是本发明的任何限制。对 于本发明,可进行的改变和修改不胜枚举。
例子1
根据本发明的实施例,图4是CCDL电路的实施的示意图。参考图4,使用了MOSFET M1,M2,M11,M12和M13以作为如图1和图3A-3D中所示的开关。MOSFET M5用于作 为电容C1。MOSFET M3,M4,M6,M7,M8和M10作为一静态逻辑“AND门”。
在第一阶段内,MOSFET M1,M2,M11和M12不能(被关闭)从电容M5中去耦逻 辑块和电源。紧接着,M13可以(被打开)连接M5的栅极至M5的源极和漏极,因而允许 M5放电。
在第二阶段内,M2,M11和M13不能从逻辑块中去耦M5。MOSFET M11和M12随 后可以连接M5至电源线VDD和VSS,因而允许M5充电。
在第三阶段内,MOSFET M1,M2和M13不能从电源线VDD和VSS中断开M5。紧 接着,MOSFET M2和M11被启用,因而连接M5至逻辑块。
在第四阶段内,如果可以,输入A和B被允许转换,并且允许逻辑块内的逻辑状态的 转换所需要的电量源于M5。应当注意,逻辑快内每个PMOS器件的基极连接内部接线端 (CP_RL),并且逻辑快内每个PMOS器件的基极连接内部接地端(CP_GD)。每根供电线, 例如CP_RL和CP_GD,位于每个CCDL逻辑单元内,并可连接至一个更大的CCDL块内的 另一个CCDL逻辑单元内的相应的供电线。因此,在一个CCDL操作周期内,逻辑单元内的 器件和它们的基极连接可交替的悬空,例如在第一和第二阶段,并随后连接供给电容M5,例 如在第三和第四阶段。在逻辑转换期间基极的隔离移除了电流流入为一个CCDL单元供电的 电源的重要路径,其中电流在逻辑快内发生转换时产生。
图中还未描述的是MOSFET M9。一个组件,例如M9可以在某些实施例中出现。这里, M9用于存储一些电量,以在逻辑块从电荷存储器件中断开时,帮助维持在CP_RL和CP_GD 电压电势差。
例子2
图5显示了一个CCDL逻辑块的时钟序列。信号SL_CLK代表了至一个CCDL单元的 输出,输出可引起逻辑转换。信号CLK1和CLK1B的转换从供给电容和电源中断开逻辑块。 决定一个CCDL单元或一个基于CCDL的电路块的最大运行速度的限制因素是所有在CCDL 块内的逻辑转换的必要性决定的,其中逻辑转换在CLK1和CLK1B信号从为逻辑块供电的 供给电容中与CCDL单元内的逻辑块断开之前完成。
一旦CLK1和CLK1B信号从供给电容中去耦逻辑块,CLK3可转换并未供给电容放电。 最后,CLK2和CLK2B信号转换,以允许供给电容被电源充电。应当注意,每个CLK信号 的转换边缘不是重叠的。此非重叠的时钟抑制了,例如随时的耦合逻辑块的电源线或当电源 盖的端点被短路时,连接电源线的电源盖。
例子3
图6中,检测了一个CCDL单元。此例子中,单元的放电开关利用了NMOS晶体管 M13和PMOS晶体管M14的传输门。在一个更大电路内CCDL单元的检测演示了一个小而 精致水平的电流,例如数十安培,在CCDL逻辑的切换期间,通过电路的基底流入电源。虽 然很小,一些水平的信息可能从这些关于CCDL电路的逻辑操作的电流中提取出来。有两种 方法可以减少这种影响。首先,在CCDL逻辑单元(右侧圆圈)内的每个器件的基极连接被 束缚在CCDL单元的内部电源线上,例如CP_RL和CP_GND。这试图使尽可能多的在逻辑 操作期间产生的基底的电流流入和/或流出电力电容。
第二种用于减少电源上和接地线上电流的方法在图8中显示。根据本发明的实施例,图 8时一个电路示意图,显示了在逻辑切换期间的一系列开关,开关用于从为CCDL电路提供 电力的外部电源中隔离CCDL单元的VDD和VSS电线,因而抑制了从两者之间流入的基底 电源。虽然图8种显示的两个电容(开关)用于每根电线,实施例并不仅限于此,并且可包 括更多或更少的开关。
例子4
产生了带有CCDL单元的两比特加密块,以检测在一个更大电路内的CCDL单元的功 能。结合图9A-9D,它是一个两比特加密块的CCDL实施例的示意图。图10是关于加密块 的运行的一些信号。
图10中上部的两个信号是传至为两比特加密块供电的电源的电流输出和接地返回电 流。图10中下部的两个信号是加密块的两个输出比特。参考图10,有一个大量的波纹倚靠 在数字输出信号的顶端。虽然波纹较大,假设CCDL单元有一个低噪音容限,这是由于涉及 接地电源的两个输出信号导致的。由于在CCDL运行的再充电期间每个CCDL单元内的逻辑 块是悬空的,单元内的逻辑块不再涉及电源。
图11显示了涉及CCDL单元内内部逻辑电线的相同的两比特输出信号。参考图11,当 以此种方式观看时,噪声容限被极大的增加了。由于每个CCDL的内部电源线被一起连接在 加密块内,图11中的信号更清楚的表示了CCDL电路内一个CCDL信号的噪声容限。
根据本发明的一个实施例,图12是一个AES加密核心的电源信号图,AES加密核心由 CCDL单元制成。
任何涉及本说明书的“一个实施例”,“举例实施例”等都意味着同实施例相关的一个 特别的特征,结构或属性,此实施例至少包含在本发明的一个实施例中。本说明书中的不同 位置的这些阶段的出现,对于所有相同的实施例不是必须的。此外,任何本发明或其中的实 施例的任何元素或限制可同任何其它发明或其中的实施例的任何元素或限制(独立的或以任 何方式结合)结合,并且所有的这些结合都不受限制的涵盖在本发明的范围内。
应当理解,此中描述的例子和实施例只是用于说明,并且对于本领域的技术人员,不同 的修改和改变都应包含在本申请的精神和范围之内。
权利要求书(按照条约第19条的修改)
1.一安全数字逻辑单元,包括
一逻辑单元,以及
一电荷存储器件,用于在逻辑操作期间,为逻辑单元提供电力,电荷存储器件可控制 的在一充电操作期间连接至一电源,并在一逻辑操作期间连接逻辑单元,其中在逻辑操作期 间,电荷存储器件未连接电源以及电源的接地连接。
2.如权利要求1所述的安全数字逻辑单元,进一步包括一第一开关,用于为所述电荷 存储器件放电。
3.如权利要求2所述的安全数字逻辑单元,其特征在于,所述电荷存储器件在逻辑单 元的每个逻辑操作之间,或在逻辑单元的预设数量的逻辑操作期间,被周期性的完全的放电。
4.如权利要求2所述的安全数字逻辑单元,进一步包括:
一第二开关,用于连接或断开所述电荷存储器件与电源的电源连接;
一第三开关,用于连接或断开所述电荷存储器件与电源的接地连接;
一第四开关,用于连接或断开所述电荷存储器件与逻辑单元的电源连接;以及
一第五开关,用于连接或断开电荷存储器件与逻辑单元的接地连接。
5.如权利要求4所述的安全数字逻辑单元,其特征在于,所述第一,第二,第三,第 四和第五开关中的每个包含一晶体管。
6.如权利要求4所述的安全数字逻辑单元,其特征在于,所述第一开关包含一传输门。
7.如权利要求4所述的安全数字逻辑单元,进一步包括至少为六分之一的串联开关, 连接电源连接和第二开关,以及至少为七分之一的串联开关,连接接地连接和第三开关。
8.如权利要求1所述的安全数字逻辑单元,其特征在于,所述逻辑单元包括多个晶体 管,每个具有一个基极,以及其特征在于,在每个逻辑单元内的每个晶体管的所述基极至少 连接逻辑单元的电源连接和逻辑单元的接地连接中的其中之一。
9.如权利要求1所述的安全数字逻辑单元,其特征在于,所述逻辑单元包含至少一个 晶体管,形成于一隔离阱中。
10.如权利要求1所述的安全数字逻辑单元,其特征在于,所述电荷存储器件是一离 散的电容,一MOS电容,一MOS晶体管,或一电荷耦合器件。
11.一种为一数字逻辑单元的一逻辑块供电的方法,其特征在于,所述数字逻辑单元包 含逻辑块和一电荷存储器件,其特征在于,所述方法包括如下步骤:
(a)从逻辑块和电源以及电源的接地连接中断开电荷存储器件;
(b)连接电荷存储器件与电源;
(c)从电源中断开电荷存储器件,包括从电源的接地连接中断开电荷存储器件;以及
(d)连接电荷存储器件与逻辑块,用于为逻辑块提供电源。
12.如权利要求11所述的方法,进一步包括:
(e)允许当电荷存储器件连接逻辑块时,逻辑块的输入可以转换。
13.如权利要求11所述的方法,其特征在于,所述逻辑块包括多个晶体管,每个具有 一基极,并且其特征在于,在步骤(e)期间,在逻辑块内的每个晶体管的基极连接所述电荷存 储器件。
14.如权利要求12所述的方法,进一步包括:
(f)在允许逻辑块的输入转换后从逻辑块中断开所述电荷存储器件。
15.如权利要求14所述的方法,其特征在于,在断开之前,所述电荷存储器件连接逻 辑块进行预设数量的转换。
16.如权利要求14所述的方法,进一步包括:
只要逻辑块被供电,重复步骤(a)至步骤(f)。
17.如权利要求11所述的方法,其特征在于,所述步骤(a)包含断开电荷存储器件,而 电荷存储器件从逻辑块和电源以及电源的接地连接中断开。
18.如权利要求17所述的方法,其特征在于,所述步骤(b)用于在电荷存储器件被放电 后,为电荷存储器件充电;以及在电荷存储器件被电源充电后,执行步骤(c)。
19.如权利要求17所述的方法,其特征在于,所述电荷存储器件包括至少两个端点, 并且其特征在于,所述电荷存储器件的放电包含互相连接电荷存储器件的两个端点,而电荷 存储器件仍保持从逻辑块和电源的断开。
20.如权利要求19所述的方法,其特征在于,所述电荷存储器件的两个端点互相连接, 而电荷存储器件仍从逻辑块和电源的断开一段足够长的时间,以为电荷存储器件完全的放电。
21.如权利要求19所述的方法,其特征在于,互相连接所述电荷存储器件的两个端点 包括闭合一第一开关,所述第一开关连接电荷存储器件的两个端点,以及
其特征在于,互相断开所述电荷存储器件的两个端点包括打开一第一开关。
22.如权利要求21所述的方法,其特征在于,所述第一开关包含一传输门。
23.如权利要求14所述的方法,其特征在于,连接电荷存储器件至电源包括闭合一第 二开关和一第三开关,所述第二和第三开关连接电荷存储器件与电源,
其特征在于,断开电荷存储器件与电源包括打开一第二开关和一第三开关,以及
其特征在于,连接电荷存储器件与逻辑块包括闭合一第四开关和一第五开关,所述第 四和第五开关连接电荷存储器件与逻辑块。
24.如权利要求23所述的方法,其特征在于,所述第二,第三,第四和第五开关中的 每个包括一晶体管。
25.如权利要求23所述的方法,其特征在于,步骤(e)进一步包括:
从电源的电源连接中隔离数字逻辑单元,这是通过打开所有位于电源的电源连接和第 二开关之间的至少六分之一串联开关达到的;以及
从电源的接地连接中隔离数字逻辑单元,这是通过打开所有位于电源的接地连接和第 三开关之间的至少七分之一串联开关达到的。
26.如权利要求11所述的方法,其特征在于,所述电荷存储器件可以是一离散的电容, 一MOS电容,一MOS晶体管,或一电荷耦合器件。