编码装置 本发明涉及一种编码装置,尤其涉及一种用于实现密码编码和/或访问授权的编码装置。
大多数密码系统需要安全地处理在密码处理过程中所采用的密钥。在具有所谓的公共密钥的安全系统中,必须如此地保护有关的专用密钥,使得可能的入侵者无论如何也不能读出或破译所述的一个或多个密钥,因为否则的话譬如可能篡改数字签名、修改数据和译解秘密信息。
在此,主要区分为对称和非对称的算法或密码协议,借助它们来防止对秘密或保密数据的非理想的数据入侵。
譬如当处于可能被入侵的环境中时,用于实现编码和/或访问授权的密码编码装置必须安全地保护其密钥。作为这类密码编码装置,譬如已知有所谓的芯片卡、智能卡或安全性紧要的模块等等,这种安全性紧要的模块譬如可以在自动取款机、KFZ驾驶锁中实现可靠的访问授权或对数据可靠地编码。
图5简要地示出了这类用于实现密码编码和/或访问授权的编码装置,它主要由密码数据处理单元1组成,并通过采用密钥PK(专用密钥)对输入或输入的数据进行密码处理。被如此处理的数据随后输出到输出端上,由此实现密码编码或可靠的访问授权。图5所示地状态自动机ZA譬如被实施为芯片卡、智能卡、安全微处理器单元或其类似物。由此,所述的密码编码装置ZA使用密钥PK来处理输入的信息,并输出或产生一些信息,其中,通常如此地设计所述的密码算法或协议,使得可以防止在输入或输出接口上对需编码或保密的数据进行入侵。
但已经表明,还可以通过所谓的漏信息对密码编码装置或编码方法及其密钥进行有效的入侵。如图5所示,这譬如是电流消耗、电磁辐射或其类似物等,它们可以在密码数据处理过程中推断出所使用的密钥或所使用的密码方法。
本发明在此尤其是针对通过所谓的电流样式分析所进行的入侵。对此,在分析所述状态自动机ZA的电流样式时利用了如下情况,即集成电路由许多单个的晶体管组成,而这些晶体管基本上工作为压控开关。在该情形下,一旦给门极施加或去掉电荷,则有电流流经晶体管基片。该电流又给其它晶体管的门极提供电荷,由此再次接通其它电路段或负载。因此,可以通过给状态自动机ZA进行供电来测试这类尤其在处理密码算法时所实现的开关特性,由此譬如使入侵者能读出所述的密钥PK。
在此,大家最为熟悉的电流样式分析有:简单的电流样式分析(SPA)、差分电流样式分析(DPA)、以及高阶的差分电流样式分析(HO-DPA)。简单的电流样式分析SPA主要是考虑对电流消耗的波动进行视觉监视,而利用差分电流样式分析DPA的入侵则是使用统计的分析方法和纠错方法来提取与密钥有关的信息。高阶的差分电流样式分析(HO-DPA)改善了入侵的可能性,以借助可测试的电流消耗来提取密钥,但在大多数情况下所述的差分电流样式分析就已经足够了。
为了防止对密码编码装置的这种入侵,在文献WO 99/35782中公开过一种密码方法和密码装置,利用它们来无效掉所述的电流样式分析。其中主要讲述了如下的方法和装置,即通过不断地改变密码数据处理的基本步骤来“自愈”地清除入侵者可读的漏信息。由此尤其防止了统计分析,并可靠地阻碍了利用状态自动机的电流消耗或利用电磁辐射所进行的入侵。
但这种防止入侵的实现具有如下缺点,即必须严重地干预系统或状态自动机的密码软件。准确地说,这类保护只有在知道相应密码算法或协议的情况下才能实现,而这种算法或协议是相应变化的,且有时会自动地变化。然而,对密码数据处理的直接软件的这种干预需要极高的费用,而且只有专家才能实现,这是每个用户所经常不希望的。
因此本发明所基于的任务在于创造一种用于实现密码编码和/或访问授权的编码装置,它无需修改所述的密码状态过程就能尤其可靠地防止电流样式分析。
根据本发明,该任务由权利要求1的特征来解决。
尤其通过使用一种产生干扰电流样式的电流样式发生器单元而在状态自动机的电流样式上叠加一个干扰电流样式,由此便不可能利用电流样式分析来提取密钥或保密数据。
优选地,所述的电流样式发生器单元在此具有一种用于产生辅助时钟信号的辅助时钟供给单元,该辅助时钟信号被用来控制一个电流样式发生器,以接通许多负载来产生所述的干扰电流样式。因此,该干扰电流样式发生器利用一个与主时钟信号无关的辅助时钟信号进行工作,由此可以尤其防止高阶的电流样式分析。
另外,所述的电流样式发生器单元具有一种随机数发生器,它可以相互独立和随机地改变所述的辅助时钟信号以及主时钟信号。通过该方式尤其可以可靠地防止统计的(差分)电流样式分析。
此外,所述的电流样式发生器单元还具有一种同步电路,以用于根据所述的主时钟信号和辅助时钟信号产生一个电流样式发生器时钟信号,由此可以实现同所述随机产生的主时钟信号和辅助时钟信号进一步去耦。
所述的同步电路阻碍了在所述主时钟信号和电流样式发生器时钟信号之间进行时域和频域内的相关,且通过使用该同步电路可以排除各种类型的高阶电流样式分析,因为无论如何也不能推断出原来的密码数据处理过程。
另外,所述的同步电路阻碍了可在所述供电接口上看见的、所述主时钟信号和辅助时钟信号的差拍,通过设立这种同步电路便可以获得一种不受目前已知电流样式分析的影响的密码编码装置。
此外,所述的电流样式发生器单元是可以关断的,这种关断优选地是在安全性非紧要的操作中执行的。由此可以大大降低编码装置的电流消耗。
本发明的其它优选改进方案由从属权利要求给出。
下面参考附图并借助实施例来进一步讲述本发明。其中:
图1用简单的框图示出了本发明的密码编码装置;
图2用简图示出了图1所示的电流样式发生器;
图3用简单的时间图示出了在图1所示的编码装置内所产生的电流样式;
图4用简图示出了图1所示的同步电路;以及
图5用简图示出了根据现有技术利用电流样式分析所进行的入侵。
图1示出了用于实现密码编码和/或访问授权的编码装置的简要框图,正如它譬如在所谓的芯片卡或智能卡中所实现的一样。所述智能卡或芯片卡的逻辑单元在此被优选地构造在一个半导体模块上,并被包括在状态自动机ZA内。
所述的状态自动机ZA或所述半导体模块的逻辑元件具有一个输入/输出接口I/O,用于输入和输出所述需要编码的或其它的数据。供电接口SV用于给所述的状态自动机ZA或编码装置提供供电,也就是说在利用电流样式分析进行入侵时该供电接口表现为一个薄弱位置。所述的供电接口SV基本上给状态自动机ZA的所有元件都供电,其中为简化图示只画出了与数据处理单元1、1’和电流样式发生器4的连接。
所述的数据处理单元通常由一个用于处理数据的中央单元1(CPU,中央处理单元)组成,也可选择地包含一个附加的协处理单元1’,它尤其执行非对称或对称的编码操作。但这种密码操作也可以无需所述的协处理单元1’而只在所述的中央单元1内执行。
由所述中央单元1或附加协处理单元1’所执行的密码方法或协议譬如可以表现为对称的鉴别、Diffie-Hellmann指数密钥协定、具有公共密钥的ElGamal密码术、ElGamal签名、数字标准签名、RSA以及其它编码算法等等。这类方法或编码协议通常是已知的,因此下面不再详细讲述它。
具体地说,对本发明较重要的是在状态自动机ZA内使用电流样式发生器4,该发生器主要是产生干扰电流样式SP2,并将其叠加到原本在电流样式分析时可以使用的、中央单元1的电流样式SP1和可选协处理单元1’的电流样式SP1’。通过这种叠加便防止了利用可从外部提取的电流样式SP3来重新获得密钥或保密数据,这在下文还要借助图2和3进行详细讲述。
图2示出了譬如可以采用的电流样式发生器4的简要框图。在此,所述的电流样式发生器4主要由许多负载R1、C1、Rn~Cn组成,它们可选择性地通过开关S1、S2~Sn接通。开关S1~Sn优选地由控制单元SE进行控制。控制单元SE譬如可以通过电流样式发生器时钟信号CLK2*和/或随机数值RND3进行控制,但也可以设想所有其它的控制。对所述电流样式发生器4的控制而言,重要的只是如下事实:形式为负载电阻R1~Rn和负载电容C1~Cn的许多负载可以不可预见地接通,使得产生一个附加的电流消耗或干扰电流样式SP2。
图3简要地示出了用于解释防止电流样式分析的原理。如图3所示,由中央单元1产生电流样式SP1。同时由电流样式发生器4产生叠加到供电接口SV上的电流样式SP2。由此在利用电流样式分析的入侵者所经常使用的供电接口SV或供电电压输出端上产生一个电流样式SP3,该电流样式SP3由中央单元1的电流样式SP1和电流样式发生器4的电流样式SP2组成。由于这种叠加,原本包含有可被分析和反推出的密钥或密码方法的电流样式SP1(或SP1’)将再也不能、或很难被滤出或重新获得。
在此,优选地由所述的电流样式发生器4产生如下的干扰电流样式SP2,它具有与所述中央单元1的电流样式SP1或所述协处理单元SP1’的电流样式SP1’相似的最大振幅或“尖峰”。
为了更好地防止对这种密码编码装置进行电流样式分析,图1所示的状态自动机ZA还可以具有一种随机数发生器6。在此,由所述的随机数发生器6产生伪随机的随机数值RND3,然后譬如可以将其输入电流样式发生器4的控制单元SE中,并促使伪随机地产生所述的干扰电流样式SP2。
此外,还可以把随机数值RND1输入到主时钟供给单元3,由此可变地调节所述状态自动机ZA的主时钟信号CLK1。优选地,所述的主时钟供给单元3由一个可编程振荡器(PLL,锁相环)组成,它譬如在4MHz的中心频率处振荡,并可以通过随机数值RND1在范围3~7MHz之间可变地调节。显然也可以设想其它的可编程振荡器以作为主时钟供给单元3,其中还可以根据相应的处理器类型来选择所述的时钟频率。
为了将外部数据接口I/O同内部数据接口IB去耦,使用了常规的去耦单元2。这类去耦单元2以UARTS而为大家所公知,并且既表现为发射部分又表现为接收部分,它能够对两种不同的接口、也即外部数据接口I/O和内部数据接口IB或其不同的时钟信号进行相互匹配。这种去耦单元通常是已知的,因此下面不再详细讲述它。
由于在主时钟信号CLK1内引入了伪随机振荡,所以进一步加难了对供电接口SV的电流样式分析,由此进一步改善了状态自动机ZA相对于借助电流样式分析进行入侵的安全性。
如图1所示,如果除了主时钟供给单元3之外还使用另一个与同步电路5相连的辅助时钟供给单元7,那么便可以得出一种能非常可靠地防止利用电流样式分析进行入侵的装置。根据图1,此处的辅助时钟供给单元7同样也通过随机数值RND2由随机数发生器6进行控制,使得它产生一个伪随机的辅助时钟信号CLK2。优选地,所述的辅助时钟供给单元7由一个类似于主时钟供给单元3的可编程振荡器(PLL,锁相环)组成,但其中心频率优选地是相互不同的。同样,辅助时钟供给单元7与主时钟供给单元3的频率范围也是不同的,但它们也可以具有相同的中心频率和相同的频率范围。然而,由于不同的随机数值RND1和RND2,主时钟供给单元3和辅助时钟供给单元7将会产生基本不同的、被输入到同步电路5中的时钟信号CLK1和CLK2。
同步电路5主要是用于阻碍如下的效应,即根据该效应可以在供电接口SV的电流样式SP3中看出两个振荡器的差拍。另外,所述的同步电路5还阻碍了在主时钟信号CLK1和由该同步电路5所产生的电流样式发生器时钟信号CLK2*之间进行时域和频域内的相关,其中所述的时钟信号CLK2*被有利地用来控制电流样式发生器4或其控制单元SE。
图4示出了同步电路5的优选结构的简图。图4所示的同步电路5基本上表现为一种边沿触发的、具有死寂时间延迟的“与”门。因此,为了使主时钟信号CLK1延迟一个死寂时间τ,所述的同步电路5具有一个死寂时间元件51。另外,所述用于产生电流样式发生器时钟信号CLK2*的同步电路5还具有一个边沿触发的“与”门52,以用于接通所述的辅助时钟信号CLK2。准确地说,只有当在主时钟供给单元3内恰好不产生新的时钟信号CLK1时,同步电路5才把辅助时钟供给单元7的辅助时钟信号CLK2接通到所述的电流样式发生器4,以作为电流样式发生器时钟信号CLK2*。因此,所述的同步电路5通过主时钟供给单元3的主时钟信号CLK1来触发,并只有在死寂时间τ之后才让辅助时钟供给单元7的辅助时钟信号CLK2通过,该死寂时间根据工艺或其它参数来进行选择,或可以调整。优选地,由死寂时间元件51所产生的死寂时间τ是可以配置和调整的。
尤其通过把所述的另一振荡器或辅助时钟供给单元7与所述的同步电路5结合起来,便可以获得一种用于实现密码编码和/或访问授权的状态自动机ZA或编码装置,借助电流样式的相关性分析是不能入侵该装置的。因此尤其可以防止密钥(专用密钥)、签名、电子钱包、写保护等被非法访问。
因为由中央单元1和协处理单元1’组成的数据处理单元不是连续地执行安全性紧要的操作,所以可以暂时关闭所述的保护措施,以降低电流消耗和进一步改善安全性。准确地说,当由中央单元1或其协处理器单元1’执行安全性不紧要的操作时,便譬如可以暂时关断所述的随机数发生器6、辅助时钟供给单元7、同步电路5和/或电流样式发生器4。
尤其在使用与同步电路5相连的辅助时钟供给单元7的情况下,可以可靠地防止借助统计分析和/或时域和/或频域内的电流样式分析所进行的入侵。
上文是借助芯片卡或智能卡内的状态自动机来讲述本发明的。但本发明并不局限于此,具体地说,它包含有所有其它的状态自动机,正如它们可以应用于安全性紧要的微处理器单元或其它安全模块一样。同样,本发明不仅可以用于非对称的编码方法,而且可以用于所有其它的、尤其是对称的编码方法(密码术)。