[0074] 结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
[0075] 实施例一
[0076] 本发明提出了一种多核微处理器系统,其多核微处理器结构图,如图1所示。其中(1)是并行加解密算法功能模块,其由N个(若干个)加解密算法功能子模块组成,分别为加解密算法功能子模块1(2-1),加解密算法功能子模块2(2-2)到加解密算法功能子模块N(2-N),(3)是多核微处理器,由N个(若干个)微处理器组成,分别为微处理器1(4-1),微处理器2(4-2)到微处理器N(4-N),各个微处理器分别双向通讯连接加解密算法功能子模块,而且并行处理各个加解密算法功能子模块,即微处理器1(4-1)负责处理加解密算法功能子模块1(2-1),微处理器2(4-2)负责处理加解密算法功能子模块2(2-2),……,微处理器N(4-N)负责处理加解密算法功能子模块N(2-N),(5)是随机数产生模块,随机数产生模块(5) 和多核处理器系统通讯连接,多核处理器系统在每次运行并行加解密算法功能模块(1)前发出使能信号到随机数产生模块(5),使其产生随机数序列,根据随机数产生模块(5)产生的随机数序列,时钟产生模块(6)产生完全异步的N个(若干个)输出时钟信号,分别为时钟信号1,时钟信号2到时钟信号N。在多核处理器系统中(3)多核微处理器处理运行并行加解密算法功能模块(1)时,N个异步时钟信号分别作为N个微处理器的工作时钟,这N个输出工作时钟在相位和频率上完全异步(其中N>=1且为整数)。
[0077] 本发明中多核微处理器在完全异步的时钟信号下工作,异步工作时间由随机数产生模块(5),时钟产生模块(6)产生。其中时钟产生模块(6)由时钟源(6-1),相位偏移模块(6-2)和分频器模块(6-3)组成,如图2所示,其中相位偏移模块(6-2)能将输入的时钟信号进行相位偏移,偏移量由随机数产生模块(5)产生的随机数序列决定,分频器模块(6-3)能将输入的时钟信号进行重新的分频,且可改变时钟信号的占空比,其中分频数和占空比由随机数序列产生模块(5)产生的随机数决定,相位偏移模块(6-2)和分频器模块(6-3)连接顺序也可互换,如图3所示。由于随机数产生模块(5)产生的随机数序列的随机性,保证了N(若干)个时钟信号互为异步,在多核微处理器(3)运行并行加解密算法功能模块(1)时,N(若干)个微处理器产生的功耗互为干扰,且每次运行的干扰情况都不同,完全随机,从而达到防御差分功耗分析攻击的目的。
[0078] 实施例二
[0079] 图4为第一种相位偏移模块结构图;如图4所示,时钟信号产生模块共输出N个相位相互异步的时钟信号,每个时钟信号是通过由M(若干)个场效应管和M(若干)个阻值均不同的电阻并联组成的电路产生的,若场效应管导通,则并联的电阻不起作用,相反地,当场效应管处于关闭的状态,则处于此时钟信号相位偏移路径上的时钟信号相位会偏移,偏移量为和此关闭场效应管并联的电阻阻值。其中每个时钟信号相位偏移路径上的各个场效应管栅极控制端分别来自随机数产生模块(5)的M(若干)位随机数输出,只是每条时钟信号相位偏移路径上的场效应管与M(若干)位随机数序列连接顺序可以相同,也可以不同。当连接顺序相同时,每条时钟信号相位偏移路径上各个相应电阻的阻值须不同,例如:电阻1_1与电阻1_2与电阻1_3到电阻1_N各不相同,以此类推,电阻M_1与电阻M_2与电阻M_3到电阻M_N各不相同;这样才能保证各个时钟信号的相位异步,当连接顺序不同时,各个时钟信号相位偏移路径上的各个相应的电阻阻值可以相同,例如:在工作信号1相位偏移路径上RNS1_1,RNS2_1到RNSM_1对应的M位随机数序列为RN1,RN2到RNM,而在时钟信号2相位偏移路径上RNS1_2,RNS2_2到RNSM_2对应的M位随机数序列为RN4,RN6,……到RN1。所以随机数产生模块(5)输出一次M位随机数时,各个时钟信号相位偏移路径上打开和关闭的场效应管各不相同,因此各个输出时钟信号经过的电阻的阻值也不同,即相位偏移不同。系统在执行并行加解密算法功能模块(1)前会使能随机数产生模块(5),随机数产生模块(5)产生一M位随机 数序列作用于相位偏移模块(6-2),根据随机数序列产生的随机数,相位偏移模块(6-2)中相应的场效应管导通或断开,从而使源时钟经过不同的电阻,产生不同的相位,输出的时钟信号相位不同。(M为正整数)
[0080] 具体地,本实施例为三核微处理器结构(假设此时M=3,即随机数产生模块(5)输出3位随机数序列)为例,三个微处理器在三个相互异步的时钟信号下工作,分别设为时钟信号1,时钟信号2,时钟信号3。我们假设时钟信号1偏移路径上连接的电阻1_1,电阻2_1,电阻
3_1产生的相位偏移分别为5°,10°和15°;时钟信号2偏移路径上连接的电阻1_2,电阻2_2,电阻3_2产生的相位偏移分别为10°,15°和5°;时钟信号3偏移路径上连接的电阻1_3,电阻
2_3,电阻3_3产生的相位偏移分别为15°,20°和10°。
[0081] 第一次执行并行加解密算法功能模块(1)时,假设随机数产生模块(5)产生的随机数序列为010。输出时钟信号1的网络中场效应管1_1和场效应管3_1断开,场效应管2_1导通,此时源时钟经过电阻1_1和电阻3_1,产生的相位偏移为20°,时钟信号1相对源时钟的相位偏移为20°。输出的时钟信号2的网络中场效应管1_2和场效应管3_2断开,场效应管2_2导通,此时源时钟经过电阻1_2和电阻3_2,产生的相位偏移为15°,时钟信号2相对源时钟相位偏移为15°。输出时钟信号3的网络中场效应管1_3和场效应管3_3断开,场效应管2_3导通,此时源时钟经过电阻1_3和电阻3_3,产生的相位偏移为25°,时钟信号3相对源时钟相位偏移为25°;图5 为第一次运行并行加解密算法功能模块(1)时第一种相位偏移模块产生的三个时钟信号图。第二次执行并行加解密算法功能模块(1)时,假设随机数产生模块(5)产生的随机数序列为011。输出时钟信号1的网络中场效应管1_1断开,场效应管2_1和场效应管3_1导通,此时源时钟经过电阻1_1,产生的相位偏移为5°,时钟信号1相对源时钟的相位偏移为5°。输出时钟信号2的网络中场效应管1_2断开,场效应管2_2和场效应管3_2导通,此时源时钟经过电阻1_2,产生的相位偏移为10°,时钟信号2相对源时钟的相位偏移为10°。输出时钟信号3的网络中场效应管1_3断开,场效应管2_3和场效应管3_3导通,此时源时钟经过电阻1_3,产生的相位偏移为15°,时钟信号3相对源时钟的相位偏移为15°,图6为第二次运行并行加解密算法功能模块(1)时第一种相位偏移模块产生的三个时钟信号图。
[0082] 第三次执行并行加解密算法功能模块(1)时,假设随机数产生模块(5)产生的随机数序列为100。输出时钟信号1的网络中场效应管2_1和场效应管3_1断开,场效应管1_1导通,此时源时钟经过电阻2_1和电阻3_1,产生的相位偏移为25°,时钟信号1相对源时钟的相位偏移为25°。输出时钟信号2的网络中场效应管2_2和场效应管3_2断开,场效应管1_2导通,此时源时钟经过电阻2_2和电阻3_2,产生的相位偏移为20°,时钟信号2相对源时钟的相位偏移为20°。输出时钟信号3的网络中场效应管2_3和场效应管3_3断开,场效应管1_3导通,此时源时钟经过电阻2_3和电阻3_3,产生 的相位偏移为30°,时钟信号3相对源时钟的相位偏移为30°,具体的时钟信号及产生的相位偏移,如图7所示。
[0083] 三次运行并行加解密算法功能模块(1)时相位偏移模块(6-2)产生的三个时钟信号相对源时钟相位偏移情况如表1所示:
[0084]
[0085] 表1
[0086] 从表中可以看出,由于随机数序列的随机性,每次执行并行加解密算法功能模块(1)时,三个时钟信号的相位为随机的。相邻两次执行并行加解密算法功能模块(1)时相同微处理器的工作时钟信号相位也是随机的,因此时钟信号是相互相位异步的。
[0087] 实施例三
[0088] 图8为第二种相位偏移模块结构图;如图8所示,输出N个时钟信号,所述N个时钟信号经过由M个场效应管和M个电阻并联组成的网络产生的,其中各个电阻阻值可以相同也可以不同,连接在各条时钟信号相位偏移路径上各个场效应管栅极上的控制信号来自随 机数产生模块(5)的M位随机数输出,且连接顺序在每条时钟信号相位偏移路径上可以完全相同。系统在每次执行并行加解密算法功能模块(1)前会使能N次随机数产生模块(5),随机数产生模块(5)先后产生N个M位随机数序列,分别先后作用于N个时钟信号输出网络,由于作用于每个输出时钟信号的M位随机数序列不同,场效应管的导通和断开情况也不同,经过的电阻个数不同,最后造成时钟信号的延时也不同。
[0089] 本实施例通过三核微处理器结构(假设此时M=3)为例,三个微处理器在三个相互相位异步的时钟信号控制下工作,分别为时钟信号1,时钟信号2,时钟信号3。我们假设源时钟信号经过每个电阻产生的相位偏移为10°。
[0090] 第一次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的三个随机数序列为010,101,100,这三个随机数序列分别作用于时钟信号1相位偏移路径,时钟信号2相位偏移路径,时钟信号3相位偏移路径。输出时钟信号1的网络中场效应管1_1和场效应管3_1断开,场效应管2_1导通,源时钟经过两个电阻,即产生20°的相位偏移,因此输出时钟信号1相对源时钟有20°的相位偏移。输出时钟信号2的网络中场效应管2_2断开,场效应管1_2和场效应管3_2导通,源时钟经过一个电阻,即产生10°的相位偏移,此时输出时钟信号2相对源时钟有10°的相位偏移。输出时钟信号3的网络中场效应管2_3和场效应管3_3断开,场效应管1_3导通,源时钟经过两个电阻,即产生20°的相位偏移,此时输出时钟信号3 相对源时钟有20°的相位偏移,具体的时钟信号及产生的相位偏移如图9所示。
[0091] 第二次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的三个随机数序列为100,101,110,这三个随机数序列分别作用于时钟信号1相位偏移路径,时钟信号2相位偏移路径,时钟信号3相位偏移路径。输出时钟信号1的网络中场效应管2_1和场效应管3_1断开,场效应管1_1导通,源时钟经过两个电阻,即产生20°的相位偏移,因此输出时钟信号1相对源时钟有20°的相位偏移。输出时钟信号2的网络中场效应管2_2断开,场效应管1_2和场效应管3_2导通,源时钟经过一个电阻,即产生10°的相位偏移,此时输出时钟信号2相对源时钟有10°的相位偏移。输出时钟信号3的网络中场效应管3_3断开,场效应管1_3和场效应管2_3导通,源时钟经过一个电阻,即产生10°的相位偏移,此时输出时钟信号3相对源时钟有10°的相位偏移,具体的时钟信号及产生的相位偏移如图10所示。
[0092] 第三次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的三个随机数序列为011,100,010,这三个随机数序列分别作用于时钟信号1相位偏移路径,时钟信号2相位偏移路径,时钟信号3相位偏移路径。输出时钟信号1的网络中场效应管1_1断开,场效应管2_1和场效应管3_1导通,源时钟经过一个电阻,即产生10°的相位偏移,因此输出时钟信号1相对源时钟有10°的相位偏移。输出时钟信号2的网络中场效应管2_2和场效应管3_2断开,场 效应管1_2导通,源时钟经过两个电阻,即产生20°的相位偏移,此时输出时钟信号2相对源时钟有20°的相位偏移。输出时钟信号3的网络中场效应管1_3和场效应管3_3断开,场效应管2_3导通,源时钟经过两个电阻,即产生20°的相位偏移,此时输出时钟信号3相对源时钟有20°的相位偏移。具体的时钟信号及产生的相位偏移如图11所示。
[0093] 三次运行加解密算法功能模块(1)时相位偏移模块(6-2)产生的三个时钟信号相对源时钟信号相位偏移情况如表2所示:
[0094]
[0095] 表2
[0096] 从表2中可以看出,由于随机数序列的随机性,每次执行并行加解密算法功能模块(1)时,三个时钟信号的相位为随机的。相邻两次执行并行加解密算法功能模块(1)时相同微处理器工作时钟信号的相位也是随机的,因此时钟信号是相互相位异步的。
[0097] 实施例四
[0098] 图12为时钟信号分频模块结构图,如图12所示,分频器模块(6-3)根据随机数产生模块(5)产生的随机数序列,将输入时钟信号转为N个频率和占空比均不同的时钟信号输出。现举实例介绍分频器模块(6-3)产生时钟信号的两种方法。
[0099] 本实施例通过三核微处理器为例,分别说明时钟信号分频模块这两种产生时钟信号的工作原理。
[0100] 第一种方法是当每次执行并行加解密算法功能模块(1)时,随机数产生模块(5)产生一个随机数序列。假设随机数产生模块(5)产生的随机数序列为010时,时钟信号1,时钟信号2,时钟信号3分别为原来时钟信号频率的二分之一,三分之一,四分之一,占空比分别为20%,30%,40%;随机数产生模块(5)产生的随机数序列为011时,时钟信号1,时钟信号2,时钟信号3分别为原来时钟信号频率的三分之一,四分之一,五分之一,占空比分别为
30%,40%,50%;随机数产生模块(5)产生的随机数序列为100时,时钟信号1,时钟信号2,时钟信号3分别为原来时钟信号频率的四分之一,五分之一,六分之一,占空比分别为40%,
50%,60%。假设输入时钟信号频率为120M赫兹。
[0101] 第一次运行并行加解密算法功能模块(1)时,随机数产生模块(5)产生的随机数序列为010,时钟信号1,时钟信号2,时钟信号3的频率分别为60M赫兹,40M赫兹,30M赫兹,占空比分别为20%,30%,40%。具体的时钟信号及频率和占空比情况如附图13所 示。
[0102] 第二次运行并行加解密算法功能模块(1)时,随机数产生模块(5)产生的随机数序列为011,时钟信号1,时钟信号2,时钟信号3的频率分别为40M赫兹,30M赫兹,24M赫兹,占空比分别为30%,40%,50%。具体的时钟信号及频率和占空比情况如附图14所示。
[0103] 第三次运行并行加解密算法功能模块(1)时,随机数产生模块(5)产生的随机数序列为100,时钟信号1,时钟信号2,时钟信号3的频率分别为30M赫兹,24M赫兹,20M赫兹,占空比分别为40%,50%,60%。具体的时钟信号及频率和占空比情况如附图15所示。
[0104] 在三次执行并行加解密算法功能模块(1)时,分频器模块产生的三个时钟信号的频率和占空比如表3所示:
[0105]
[0106]
[0107] 表3
[0108] 从表3中可以看出每次运行并行加解密算法模块(1)时,时钟信号1,时钟信号2,时钟信号3的频率和占空比均不同,相邻两次运行并行加解密算法模块(1)时,相同时钟信号的频率和占空比也不相同。
[0109] 第二种方法是每次执行并行加解密算法功能模块(1)时随机数产生模块(5)先后产生N个M位随机数序列。假设随机数产生模块(5)先后产生的随机数序列为010,101,100时,时钟信号1,时钟信号2,时钟信号3的频率分别为输入时钟信号的二分之一,五分之一,四分之一,占空比分别为20%,50%,40%;随机数产生模块(5)先后产生的随机数序列为100,101,110时,时钟信号1,时钟信号2,时钟信号3的频率分别为输入时钟信号的四分之一,五分之一,六分之一,占空比分别为40%,50%,60%;随机数产生模块(5)产生的随机数序列为011,100,010时,时钟信号1,时钟信号2,时钟信号3的频率分别为输入时钟信号的三分之一,四分之一,二分之一,占空比分别为30%,40%,20%。假设输入时钟信号的频率为
120M赫 兹。
[0110] 第一次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的随机数序列为010,101,100,时钟信号1,时钟信号2,时钟信号3的频率分别为60M赫兹,24M赫兹,30M赫兹,占空比分别为20%,50%,40%。具体的时钟信号及频率和占空比情况如图16所示。
[0111] 第二次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的随机数序列为100,101,110,时钟信号1,时钟信号2,时钟信号3的频率分别为30M赫兹,24M赫兹,20M赫兹,占空比分别为40%,50%,60%。具体的时钟信号及频率和占空比情况如图17所示。
[0112] 第三次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的随机数序列为011,100,010,时钟信号1,时钟信号2,时钟信号3的频率分别为40M赫兹,30M赫兹,60M赫兹,占空比分别为30%,40%,20%。具体的时钟信号及频率和占空比情况如图18所示。
[0113] 在三次执行并行加解密算法功能模块(1)时,分频器模块(6-3)产生的三个时钟信号的频率和占空比如表4所示:
[0114]
[0115]
[0116] 表4
[0117] 从表4中可以看出每次运行并行加解密算法模块(1)时,时钟信号1,时钟信号2,时钟信号3的频率和占空比均不同,相邻两次执行并行加解密算法模块(1)时,相同时钟信号的频率和占空比是异步的(由随机数产生模块(5)的随机数输出决定)。
[0118] 实施例五
[0119] 本实施例将相位偏移模块(6-2)和分频器模块(6-3)的结果合起来,本实施例表明时钟信号产生模块(6)产生的时钟信号为完全异步的时钟信号。
[0120] 本实施例仍以三核微处理器(假设M=3)为例。在第一种情况下,三个微处理器在三个相互异步的时钟信号下工作,分别设为时钟信号1,时钟信号2,时钟信号3。我们设时钟信号1相位偏移路径上,电阻1_1,电阻2_1,电阻3_1产生的相位偏移分别为5°,10°15°;时钟信号2相位偏移路径上,电阻1_2,电阻2_2,电阻3_2 产生的相位偏移分别为10°,15°,5°;时钟信号3相位偏移路径上,电阻1_3,电阻2_3,电阻3_3产生的相位偏移分别为15°,20°,10°。假设随机数产生模块(5)产生的随机数序列为010时,时钟信号1,时钟信号2,时钟信号3分别为原来时钟信号频率的二分之一,三分之一,四分之一,占空比分别为20%,30%,40%;随机数产生模块(5)产生的随机数序列为011时,时钟信号1,时钟信号2,时钟信号3分别为原来时钟信号频率的三分之一,四分之一,五分之一,占空比分别为30%,40%,50%;随机数产生模块(5)产生的随机数序列为100时,时钟信号1,时钟信号2,时钟信号3分别为原来时钟信号频率的四分之一,五分之一,六分之一,占空比分别为40%,50%,60%。假设输入时钟信号频率为120M赫兹。
[0121] 第一次执行并行加解密算法功能模块(1)时,假设随机数产生模块(5)产生的随机数序列为010。由相位偏移模块(6-2)可知,时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为20°,15°,25°。由分频器模块(6-3)可知,时钟信号1,时钟信号2,时钟信号3的频率分别为60M赫兹,40M赫兹,30M赫兹,占空比分别为20%,30%,40%。具体的时钟信号相位和频率占空比情况如图19所示。
[0122] 第二次执行并行加解密算法功能模块(1)时,假设随机数产生模块(5)产生的随机数序列为011。由相位偏移模块(6-2)可知,时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为5°,10°,15°。由分频器模块(6-3)可知,时钟信号1, 时钟信号2,时钟信号3的频率分别为40M赫兹,30M赫兹,24M赫兹,占空比分别为30%,40%,50%。具体的时钟信号相位和频率占空比情况如图20所示。
[0123] 第三次执行并行加解密算法功能模块(1)时,假设随机数产生模块(5)产生的随机数序列为100。由相位偏移模块(6-2)可知,时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为25°,20°,30°。由分频器模块(6-3)可知,时钟信号1,时钟信号2,时钟信号3的频率分别为30M赫兹,24M赫兹,20M赫兹,占空比分别为40%,50%,60%。具体的时钟信号相位和频率占空比情况如图21所示。
[0124] 第二种情况下,三个微处理器在三个相互异步的时钟信号控制下工作,分别为时钟信号1,时钟信号2,时钟信号3。我们假设源时钟信号经过每个电阻产生的相位偏移为10°。假设随机数产生模块(5)先后产生的随机数序列为010,101,100时,时钟信号1,时钟信号2,时钟信号3的频率分别为输入时钟信号的二分之一,五分之一,四分之一,占空比分别为20%,50%,40%;随机数产生模块(5)先后产生的随机数序列为100,101,110时,时钟信号1,时钟信号2,时钟信号3的频率分别为输入时钟信号的四分之一,五分之一,六分之一,占空比分别为40%,50%,60%;随机数产生模块(5)先后产生的随机数序列为011,100,010时,时钟信号1,时钟信号2,时钟信号3的频率分别为输入时钟信号的三分之一,四分之一,二分之一,占空比分别为30%,40%,20%。假设输入时钟信号的频率为120M 赫兹。
[0125] 第一次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的三个随机数序列为010,101,100,由相位偏移模块(6-2)可知,时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为20°,10°,20°。由分频器模块(6-3)可知,时钟信号1,时钟信号2,时钟信号3的频率分别为60M赫兹,24M赫兹,30M赫兹,占空比分别为20%,
50%,40%。具体的时钟信号相位和频率占空比情况如图22所示。
[0126] 第二次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的三个随机数序列为100,101,110,由相位偏移模块(6-2)可知,时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为20°,10°,10°。由分频器模块(6-3)可知,时钟信号1,时钟信号2,时钟信号3的频率分别为30M赫兹,24M赫兹,20M赫兹,占空比分别为40%,
50%,60%。具体的时钟信号相位和频率占空比情况如图23所示。
[0127] 第三次运行并行加解密算法功能模块(1)时,随机数产生模块(5)先后产生的三个随机数序列为011,100,010,由相位偏移模块(6-2)可知,时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为10°,20°,20°。由分频器模块(6-3)可知,时钟信号1,时钟信号2,时钟信号3的频率分别为40M赫兹,30M赫兹,60M赫兹,占空比分别为30%,
40%,20%。具体的时钟信号相位和频率占空比情况如图24所示。
[0128] 实施例6
[0129] 一般防御差分功耗分析攻击的系统采用单核微处理器,加解密算法功能模块采用协处理器或者纯硬件或者纯软件实现。图25为单核微处理器以软件形式实现加解密算法功能模块结构图;此时加解密算法功能模块(1)用软件实现,该单核处理器系统由微处理器(2),本地存储器(3)构成,加解密算法功能模块(1)存储在本地存储器(3)中,当微处理器(2)执行加解密算法功能模块(1)时,从本地存储器(3)中调用。图26为单核微处理器以硬件形式实现加解密算法功能模块结构图;此时加解密算法功能模块(1)采用纯硬件实现,系统由微处理器(2),本地存储器(3)和加解密算法功能模块(1)组成,与采用软件实现加解密算法不同,采用纯硬件实现时,加解密算法并没有存储在本地存储器(3)中。
[0130] 对于本实施例中的智能卡,我们采用多核微处理器处理结构,通过硬件实现方式、软件实现方式或软硬件协同实现方式实现所述加解密算法功能子模块。图27为多核微处理器以软件形式实现并行加解密算法功能模块(1)结构图;如图27所示,我们将并行加解密算法功能模块(1)分为N个相互独立的部分,每个微处理器执行其中的一部分。系统由多核微处理器(3)即微处理器1(4-1),微处理器2(4-2),到微处理器N(4-N),本地存储器(7),随机数产生模块(5),时钟信号产生模块(6)构成,此时加解密算法存储在本地存储器(7)中。
[0131] 图28为多核微处理器以硬件形式实现并行加解密算法功能模块 (1)图;多核处理器系统由多核微处理器(3)即微处理器1(4-1),微处理器2(4-2),到微处理器N(4-N),本地存储器(7),随机数产生模块(5),时钟信号产生模块(6)构成,此时加解密算法由硬件实现,且运行时钟信号分别为时钟信号1,时钟信号2到时钟信号N。图29为本发明的具体操作流程;如图29所示,下面为本发明的具体的操作步骤:
[0132] 步骤1:多核处理器系统在准备调用并行加解密算法功能模块之前,多核处理器系统发出使能信号,使随机数产生模块和时钟信号产生模块产生N个互为异步的时钟信号,分别为时钟信号1,时钟信号2,时钟信号3,到时钟信号N,作为微处理器1,微处理器2,微处理器3到微处理器N的工作时钟信号;
[0133] 步骤2:微处理器1,微处理器2.微处理器3到微处理器N分别在互为异步的时钟信号1,时钟信号2,时钟信号3到时钟信号N下工作,分别处理N个并行的加解密算法功能子模块,即加解密算法子模块1,加解密算法功能子模块2,加解密算法功能子模块3到加解密算法功能子模块N;
[0134] 步骤3:系统调用完并行加解密算法功能模块后,系统可退出异步工作模式,处理其他工作。
[0135] 具体地,本实施例中的智能卡采用三核微处理器,图30为实施例6系统结构图;图31为实施例6操作流程图;如图30所示,多核微处理器系统由三个微处理器构成,分别为(1)微处理器1,(2)微处理器2,(3)微处理器3,其中微处理器1(1)为主微处理器, 微处理器2(2)和微处理器3(3)为从微处理器。主微处理器(1)可以访问智能卡对外通讯接口(4),随机数产生模块(5),智能卡存储器(7),其中智能卡对外通讯接口(4)可为7816接口等,智能卡存储器(7)中存储着并行加解密算法功能模块,(也可以存储在本地存储器中)并行加解密算法功能模块分为三个部分,分别为加解密算法功能子模块1,加解密算法功能子模块2和加解密算法功能子模块3。本地存储器1(8),本地存储器2(9),本地存储器3(10)分别为微处理器1(1),微处理器2(2)和微处理器3(3)的本地存储器,不能被其他微处理器访问。公共存储器(11)可被每个微处理器访问,其中存放着共享的数据。微处理器1(1),微处理器2(2)和微处理器3(3)的工作时钟信号分别为时钟信号1,时钟信号2和时钟信号3,由(6)时钟信号产生模块产生,其具体的相位和频率由随机数产生模块(5)产生随机数序列决定,且随机数产生模块(5)也可由主微处理器(1)访问,具体的工作步骤如图31所示:
[0136] 步骤1:微处理器(1)将存储在智能卡存储器(7)上的并行加解密算法功能子模块1,加解密算法子模块2和加解密算法子模块3分别放入本地存储器1(8),本地存储器2(9),本地存储器3(10)中;
[0137] 步骤2:微处理器1(1)使能随机数产生模块(5)产生随机数序列,从而使时钟信号产生模块(6)产生相位和频率均不同的三个异步时钟信号,分别为时钟信号1,时钟信号2,时钟信号3;
[0138] 步骤3:微处理器1(1)产生使能信号使微处理器2(2)和微 处理器3(3)有效,微处理器1(1),微处理器2(2)和微处理器3(3)在时钟信号1,时钟信号2和时钟信号3下处理加解密算法功能子模块1,加解密算法功能子模块2和加解密算法功能子模块3;
[0139] 步骤4:并行加解密算法运行完毕,微处理器1(1)关闭微处理器2(2)和微处理器3(3);
[0140] 步骤5:微处理器1(1)控制时钟信号产生模块(6),关闭时钟信号2和时钟信号3输出;
[0141] 步骤6:多核微处理器处理其他任务。
[0142] 实施例七
[0143] 本实施例中具体采用三核微处理器系统说明本发明防御差分功耗分析攻击的有效性。并行加解密算法功能模块分为三部分,分别为加解密算法功能子模块1,加解密算法功能子模块2和加解密算法功能子模块3,微处理器1(1)运行加解密算法功能子模块1,微处理器2(2)运行加解密算法功能子模块2,微处理器3处理加解密算法子模块3,在这里我们用软件实现加解密算法。三个微处理器在三个异步时钟信号下工作,即微处理器1(1)在时钟信号1下工作,微处理器2(2)在时钟信号2下工作,微处理器3(3)在时钟信号3下工作。时钟信号产生模块(6)根据第一种方法产生三个异步时钟信号,即每次运行并行加解密算法功能模块时,随机数产生模块(5)只产生一个随机数序列。我们假设源时钟信号频率为120M赫兹,由前面关于时钟信号产生模块(6)的分析可知,在第一种方法下,随机数产生模块产生的随机数序列为010,时钟信号1,时钟信号2, 时钟信号3相对源时钟信号产生的相位偏移分别为20°,15°,25°,时钟信号1,时钟信号2,时钟信号3的频率分别为60M赫兹,40M赫兹,30M赫兹,占空比分别为20%,30%,40%;随机数产生模块产生的随机数序列为011,时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为5°,10°,15°,时钟信号
1,时钟信号2,时钟信号3的频率分别为40M赫兹,30M赫兹,24M赫兹,占空比分别为30%,
40%,50%;随机数产生模块产生的随机数序列为100,时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为25°,20°,30°,时钟信号1,时钟信号2,时钟信号3的频率分别为30M赫兹,24M赫兹,20M赫兹,占空比分别为40%,50%,60%。微处理器1(1)在时钟信号1的第二个,第四个上升沿处理加解密算法子模块1时产生较大的功耗,微处理器2(2)在时钟信号2的第一个,第三个上升沿处理加解密算法子模块2时产生较大的功耗,微处理器3(3)在时钟信号3的第一个,第二个上升沿处理加解密算法子模块3时产生较大的功耗。
[0144] 第一次运行并行加解密算法功能模块时,随机数产生模块(5)产生的随机数序列为010,所以时钟信号产生模块(6)产生的三个异步时钟信号即时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为20°,15°,25°,时钟信号1,时钟信号2,时钟信号3的频率分别为60M赫兹,40M赫兹,30M赫兹,占空比分别为20%,30%,40%,所以第一次运行并行加解密算法时的 功耗曲线图如图32所示,我们可以看出系统功耗图上有3个峰值。
[0145] 第二次运行并行加解密算法功能模块时,随机数产生模块(5)产生的随机数序列为011,所以时钟信号产生模块(6)产生的三个异步时钟信号即时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为5°,10°,15°,时钟信号1,时钟信号2,时钟信号3的频率分别为40M赫兹,30M赫兹,24M赫兹,占空比分别为30%,40%,50%,第二次并行运行加解密算法时的功耗曲线图如附图33所示,我们可以看出系统功耗图上有3个峰值。
[0146] 第三次运行并行加解密算法功能模块时,随机数产生模块(5)产生的随机数序列为100,所以时钟信号产生模块(6)产生的三个异步时钟信号即时钟信号1,时钟信号2,时钟信号3相对源时钟信号产生的相位偏移分别为25°,20°,30°,时钟信号1,时钟信号2,时钟信号3的频率分别为30M赫兹,24M赫兹,20M赫兹,占空比分别为40%,50%,60%,第三次运行并行加解密算法时的功耗曲线图如图34所示,我们可以看出系统功耗图上有4个峰值。
[0147] 以此类推,由于片上随机数产生模块(5)产生的随机数序列不同,使片上时钟信号模块(6)产生的时钟信号完全异步,从而使每个微处理器在执行加解密算法功能子模块时功耗的曲线不同,最后的总功耗曲线也不同,出现峰值的个数,幅值和位置均不同,这样即使采集功耗曲线采集的再多,也无法破解出用户的密钥信息,因此本发明具有很好的防御差分功耗分析攻击的能力。
[0148] 本发明提出了一种智能卡多核处理器系统及其防御差分功耗分 析的方法,多核处理器系统运用多核微处理器来并行处理并行加解密算法和数据,各个多核微处理器在完全互为异步的时钟信号下工作,各个微处理器工作功耗互为干扰功耗,在处理其他非加解密算法任务时,多核处理器也可以被同时打开运行,即可以用更小的功耗达到相同或者超过单核智能卡的性能。虽然相对单核微处理器结构的智能卡来说,本发明增加了面积,但这些面积并不是冗余的,在任何包括加解密算法或其他工作模式时都可参与运作,而且在数据加解密工作时所产生的功耗也不是冗余的,每个焦耳都花在了数据加解密上,且具有防御差分功耗分析攻击的能力。
[0149] 以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所做出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。