处理数据的方法和装置 本发明涉及处理数据的方法和装置。在一般的数据处理中,现在关系到安全性方面,因为考虑到从数据处理设备中得到非允许的数据。为了避免这个问题,使用了密钥拓扑的方法,其中对要保护的数据进行加密。对此例如使用了另外的“公共密钥方法”,其中一个系统的每一个用户具有一个密钥对,其是由公共密钥部分和私人密钥部分组成。用户的安全性在于,私人的密钥部分是不提供公共已知的。这种方法的实现现在经常使用在特别安全的器件中,例如一个芯片卡,但是也使用在一次性装入在设备中的电路中-例如已知的IC-,在其中本身实现了该方法。因此,密钥的私人部分不使用在这些安全部件中。
最近公开了一个进攻方式,其中考虑了在安全器件中进行窥视。例如这通过测量安全器件的电流消耗还是可能实现的。通过经常地重复地观察电流曲线和在已知例如实现加密过程的情况下,最后还是有可能将反馈密钥延伸到该密钥。
因此本发明地任务在于给出用于加密的方法和装置,其对私人的密钥字的窥视具有较高的安全性。
此任务按照本发明通过权利要求1或者权利要求3的措施和手段解决。
以此,该加密或者解密是如此控制的或者对此方法的操作是如此控制的,在经常重复地测量从外部接入的参数时,例如电流消耗时,没有将反馈密钥延伸到该所使用的密钥。
本发明另外有利的结构在从属权利要求中给出。下面本发明参考附图借助于实施例进行详细的解释。
在此示出了:
图1本发明的装置的第一个实施例,
图2本发明的装置的第二个实施例,借助于此也解释本发明的方法,和
图3本发明的第三个实施例。
通过1、2表示了要保护的电路,其例如是由微控制器2和计算网络1组成。微控制器2在此控制了计算网络1,其中例如实现了一个加密过程。此要加密的装置输出一个电流I,其借助于一个检测装置7可以是被检测的,以此将反馈密钥延伸到要保护的电路1、2的过程。现在还含有一个辅助电路装置6,其通过一个随机发生器3控制。此随机发生器能够例如作为一个序列发生器以线性反馈的移位寄存器实现,其被加载一个启动值,一个伪随机序列-零和一-产生。在此该启动值或者是随机传输的,或者由控制装置例如基于密钥字产生的,也可以考虑二者结合的可能性。以此由随机发生器产生的序列控制在辅助电路装置6中的开关,以使与开关S相串联的电容器相应地被各个直接产生的随机序列加载。以此方式,要保护的电路1、2的电流消耗通过辅助电路装置6,即电容器的负载电流,进行掩护。为了最小化此装置的整个的电流消耗,这不是必须的,即辅助电路装置6不间断地给电流消耗提供贡献。在进行加密或者解密的过程中能够在此方面存在很多的限制。
图2示出了本发明的另外一个实施例。在此该计算网络1和控制装置2、随机发生器3和存储装置5被连接到共同的总线4,该总线能够借助于一个接口9从外部接入。通过该接口9能够例如输入解密的或者加密的数据。在存储装置5中存储了共同的密钥字,其受控制地从控制装置2传输到计算网络1,以加密或者解密通过接口9从数据总线传输的数据。该随机发生器3产生一个随机数,其传输到控制装置2,该控制装置根据此随机数控制计算网络1。在此可以考虑两种可能性。
计算网络1根据随机数通过控制装置2如此被控制,即各自的随机数的加密或者解密算法相应地被调制。这意味着,如此在加密或者解密算法中实现了计算操作,该操作通过随机的数值进行运行,而没有作用到加密或者解密。
下面描述加密或者解密的变型的例子。
一个已知的方法是所谓的RSA方法。其在该组中工作在部分外来的剩余级模块N中,并且将乘法模块N组合成指数形式。用于椭圆曲线模块0的此协议的变型具有由模式的加法和乘法组合成的基本运算,即所谓的在椭圆曲线中的点组的加法和加倍,其组合成指数关系。第三级别的组含有关于终端的球体的椭圆曲线,它的单位数是一个素数的指数,经常是2的指数。这种结构作为GF(pn)表示。在此球体中的基本算法能够如此实现,其中该基本球体由具有基本球体GF(p)或者合适的中间球体组成的系数的多项式表示,其通过乘法模块将固定的球体多项式相互连接以及以系数的方式进行相加。在此意义上,在GF(pn)或者在关于此球体的椭圆曲线中的操作作为模块的计算操作理解。在此该随后的三个按照本发明的方法具有相应的变型可能性。
a)模块N用r*N替换,其中r是一个非0的随机数。在GF(pn)的情况下,该球体多项式通过它的值由随机数选择的非0的多项式替换。此步骤是实现在输入到算式之前或者在部分步骤中,并且随后通过降低结果或者部分结果对模块N进行补偿。
b)一个模块的计算操作的输入参数X通过值X+s*N替换,其中s是一个随机数。这能够在不同的计算步骤中实现。同一个操作的多个输入参数的相应的改变是可能的。
c)指数E通过E+t*q替换,其中t是一个随机数,并且q是根据所实现的指数关系的所谓的级,或者是适合的多倍。Q的实际值经常从系统参数中倒出。所以能够对于指数模块N q=φ(N)和对于电子曲线q作为此曲线的该点的数进行选择,其中给出了还在经常改善的选择可能性。
一个另外的可能性在于,替换的等值的加密或者解密算法能够在计算网络1中实现,该算法按照所给出的随机数随机地进行选择。
在之前描述的加密或者解密调制中,不只该装置的电流消耗通过随机数改变,而且同样是对于所需要的计算时间。这能够给出作为测量值的关于私人密钥的反馈密钥。同样这也适用于相当的计算操作的随机数控制的选择。
第三种可能性在于,相似于图1中的实施例还含有一个辅助电路装置6(划线所表示的),其同样与传输装置4相连接。该控制装置2按照从随机发生器3通过传输装置4所传输的随机数控制了辅助电路装置6。所表示的整个装置的电流消耗的分析以此不是通过在计算网络1中单独确定的运行,而是同样通过随机控制的辅助电路装置的电流消耗。
另外以此表示了,具有在“空-运行”中的辅助电路装置6的各自的算法的调制的组合是有意义的。
图3示出了本发明的第三个实施例。在此该控制装置2以CPU的形式通过数据端子D传输数据。同时该“等待状态端子”WS与随机发生器3相连接。此随机数发生器3现在在随机序列中产生“1”和“0”。根据程序,现在如果在输入端一直存在“1”或者“0”,那么该CPU的运行会停止或者重复进行。这导致了,该CPU的运行还是与没有表示的时钟发生器同步工作,而不再含有单元性的处理周期。因为以此方式不再存在固定的单元的框架,通过观察该CPU,它的运行过程能够不再是不能另外理解的并且只是使分析变得非常困难。这意味着,在CPU中要处理的过程是“消失”的。为了提高这种装置的理由,随机发生器3能够如此被编程,即是可以被确定的,在该时间范围内进行最大的处理。在另外的情况下这是必须的,以确定该系统是否整个地失效。
可以看到尤其有意义的是按照图3的装置与按照图1或者2的装置或者与这二者相组合,以使例如整个系统的处理的分析变得困难。