微控制器和用于处理微控制器的编程的相关方法技术

技术编号:2856993 阅读:143 留言:0更新日期:2012-04-11 18:40
一种微控制器(100),其中所述微控制器的编程是依照至少一种与机器相关的汇编语言来进行的,其中除条件程序分支之外,汇编命令可实质上独立于数据被执行,    在已实现的分支条件、例如至少一个已实现的状态标志的情况下,至少一个程序计数器(10)能够装载新的地址和/或新值,并且    在未实现的分支条件、例如至少一个未实现的状态标志的情况下,结束所述指令,    其特征在于,在未实现的分支条件的情况下,所述程序计数器(10)可有选择地重新装载其先前的地址和/或其先前的值,而不是结束所述指令。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种微控制器,所述微控制器的编程是依照至少一种与机器相关的汇编语言来进行的,在如下的情况下,除条件程序分支之外,其汇编命令可基本上独立于数据被执行,所述情况为在已实现的分支条件、例如至少一个已实现的状态标志的情况下,至少一个程序计数器能够装载新的地址和/或新值,并且在未实现的分支条件、例如至少一个未实现的状态标志的情况下,所述指令被结束。本专利技术还涉及一种处理上述类型的微控制器编程的方法,所述微控制器的编程是依照至少一种与机器相关的汇编语言来进行的。把通常用于控制设备并且其中中央处理单元CUP、存储器和端口被集成到一个芯片上的单片微型计算机称为微控制器。微控制器的编程是依照与机器相关的汇编语言来进行的。在已知的汇编语言中,除条件程序分支之外,所有的汇编命令是独立于数据执行的。条件程序分支总体上是如下来实现的测试检验的条件,通常是至少一个状态标志。如果发现分支应该出现,那么所述程序计数器装载新的程序地址(=具有新的“值”)。如果没有分支将会出现,那么结束指令,因为所述程序计数器当然自动地包含了下一值,即,下一地址。在条件程序分支的情况下,这种过程要求在执行指令过程中出现时间差。执行指令过程中的时间差的原因在于在分支的情况下,所述程序计数器另外被设定为新值(设定为新的程序地址),然而在非分支的情况下,在条件测试之后结束所述指令。这意味着在微控制器程序中用于条件分支的命令的执行通常具有不同的执行时间,并且因此也具有不同的电流值,这可以根据是否执行条件分支、借助于动态电流测定来确定。软件分析的现有方法包括借助于专用定时分析来识别条件程序分支并且使用所识别的程序流来得出涉及所处理数据的结果,但软件分析也例如可被黑客滥用来确定加密密钥。因此可以借助于条件分支指令的时序来单独得出涉及此指令中测试的数据的结果,例如在对微控制器程序的特别的安全敏感区,诸如密钥进行未经授权的攻击的情况下,这是非常不利的。从上述缺点和缺陷着手,并且考虑已经拟定的现有技术水平,本专利技术的一个目的在于进一步开发上述类型的微控制器,以及上述类型的方法,由此在条件程序分支的情况下,无论是否已经实际出现分支都无法通过外界看到它。此目的是通过具有在权利要求1中具体说明的特征的微控制器来实现的,和通过具有在权利要求5中具体说明的特征的方法来实现的。在相应的从属权利要求中描述了本专利技术的有益实施例和有用的进一步细节的特征。因此,本专利技术的教导将引入微控制器的操作,特别是智能卡控制器的操作,其相对于条件程序分支是安全的。为此目的,如下依照本专利技术来修改条件分支的指令处理的内部流在分支的情况下,与微控制器相关联的程序计数器(在下文也称为程序计数器)以某种已知的方式装载了新值。然而现在,在非分支的情况下,所述程序计数器被重新装载而不是结束所述分支指令,不过此时装载的是其自身的值,尤其装载的是包含的至少一个附加逻辑。换言之,根据本专利技术的过程意味着测试条件的结果不再用于结束或没有结束的内部程序处理;而优选的是,把测试条件的结果用于激活至少一个多路复用器,根据所述测试结果,所述多路复用器可以把新的地址提供给程序计数器输入端,或者可以把用于存储的程序计数器输出端连接至程序计数器输入端。因此,所述程序计数器在所有情况中就装载了新的地址,即,装载新值,而无论分支是否应该出现。这样对于两种情况产生了相同的时间流行为。依照尤其有创造性的细节,如果分支条件的测试和程序计数器的装载都利用互补数据(=所谓的因互补程序计数器的“电流堵塞”)来执行,那么在使条件分支隐藏的过程中可以获得进一步的改善,这是因为使用动态电流测量攻击微控制器的人员由此无法再区别是否已经执行了分支。在本专利技术的有益的实施例中,条件程序分支的顺序可以由此得以优化,以便条件分支的处理可以依照上述方式(程序计数器始终被重新装载)或者依照已知的方式(=非分支结束指令)来有选择地执行。此选项或选择的可能性的控制会受到至少一个特殊位(=所谓的“选择位”)的影响。上述选项或者选择的可能性可以被有利地用于如下目的(i)在微控制器编程的非关键部分中,如果把选择位选项设定为常用处理,那么可以抑制由装载程序计数器引起的性能损失(→在非分支的情况下更长的执行时间);(ii)如果所述选择位选项依照任意所期望的顺序被接通和关闭,例如通过随机函数或者依照其他适当的位序列被接通和关闭,那么所有非分支有时将作为“很短”的执行时间被察觉,并且有时作为“很长”的执行时间被察觉;由此,会明显给基于用于条件分支的指令执行时间的数据分析带来更大困难,从而在条件指令的非分支情况下,因对于相同的数据有不同的执行时间,而使得攻击者被故意地蒙蔽并且被引入歧途,总之,可以从如下内容看出本专利技术值得考虑的优势进行与条件分支有关的数据分析是相当困难的实事;在所有情况下,经过程序计数器装载后的条件分支有相同的执行时间;和/或在非分支的情况下,无论存在较短命令执行时间还是较长命令执行时间的自由可选变化。因此,无论所述(微控制器)程序的结构如何,本专利技术都始终产生相同的动态电流值,并且由此防止以时间为条件的动态电流分析的滥用和未经授权的探测。本专利技术最后涉及一种借助于至少一个上述类型的微控制器控制的电气或者电子设备。如上文已述的那样,存在各种可能的方式来具体实现和进一步开发本专利技术的教导。关于这一点,可以参考权利要求1和权利要求5的从属权利要求。将参照下文所描述的实施例来阐明本专利技术的这些以及其他方面,并且使本专利技术更加显而易见。在附图中附图说明图1以示意图表示方法来示出了根据本专利技术的微控制器的实施例的框图,所述微控制器是使用根据本专利技术的方法来操作的。图1举例说明了微控制器100的实施例,所述微控制器100被配置为智能卡控制器,其编程是依照与机器相关的汇编语言来进行并且处理的。在此处理中,除条件程序分支之外,所述汇编命令依照独立于数据的过程来执行。在已实现分支条件,例如,已实现的状态标志的情况下,与微控制器100相关联的程序计数器10装载有新的地址和/或新值;所述微控制器100的特殊特征可以从如下实事看出,采用微控制器100,在未实现的分支条件,例如未实现的状态标志的情况下,不必结束所述指令,但是在未实现的分支条件的情况下,程序计数器10可以有选择地重新装载其先前值,而不是结束指令。为此目的,所述微控制器100包括多路复用单元20,其可以借助于分支条件的测试结果触发,在已实现的分支条件的情况下,所述新的地址和/或所述新值,并且在未实现的分支条件的情况下,程序计数器10输出端的地址和/或向程序计数器10输入端提供的程序计数器10输出端的值。因此,不再把测试条件的实际结果用于结束或没有结束的内部程序处理;而是,把测试条件的结果用于激活多路复用器20,根据所述测试结果,所述多路复用器可以把新的地址(在该情况下是已实现的分支条件)提供给程序计数器10的输入端,或者可以把用于存储的程序计数器10的输出端(在该情况下是未实现的分支条件)连接至程序计数器10的输入端。据此,所述程序计数器10在所有情况中就被装载新的地址,即,装载新值,而无论分支是否存在分支。这样在两种情况下都导致了相同的时间流行为,从而使得依照图1的微控制器100的过程始终导致相同的动态电流值,而无论所述(微控本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:D·米勒
申请(专利权)人:皇家飞利浦电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利