公开/公告号CN1570850A
专利类型发明专利
公开/公告日2005-01-26
原文格式PDF
申请/专利权人 凌阳科技股份有限公司;
申请/专利号CN03133062.2
发明设计人 梁伯嵩;
申请日2003-07-23
分类号G06F9/30;G06F13/38;
代理机构中科专利商标代理有限责任公司;
代理人陈桢
地址 台湾省新竹县科学园区
入库时间 2023-12-17 15:47:27
法律状态公告日
法律状态信息
法律状态
2016-09-07
未缴年费专利权终止 IPC(主分类):G06F9/30 授权公告日:20060405 终止日期:20150723 申请日:20030723
专利权的终止
2006-04-05
授权
授权
2005-03-30
实质审查的生效
实质审查的生效
2005-01-26
公开
公开
技术领域
本发明涉及处理器,尤其是指一种于处理器中使用地址线对资料进行混淆处理的装置及方法。
背景技术
在这重视智财权的时代,厂商为保护其辛苦开发的程序、资料等相关的知识产权,会于离线(off-line)时将这些资料、程序先进行一混淆(scrambling)处理,再将混淆后的资料予以储存至一非挥发性存储器或其他储存媒体,他人即使拿到存有该混淆资料的非挥发性存储器或其他储存媒体,由于无法知道该混淆处理的过程及处理方法,亦无法正确去还原这些资料、程序,通过此而达到保护的目的。
针对此种资料保护方式,于美国笫USP6,408,073号专利案公告中,使用一虚拟乱数产生器(Pseudo Random Generator),以依据一初始值(seed1/seed2)来对只读存储器(Read Only Memory,ROM)的资料(ROM data)进行编码以产生编码资料(Encoded data),然而此种资料保护方式因使用乱数做混淆处理的参数,需有同步的乱数产生器用以进行解码,而乱数产生与执行顺序相关,因为执行有一定顺序,故只能循序读出,不能随机读出,难以应付程序执行中动态分支跳跃,因此不能直接在此ROM上执行程序,图1即显示一段程序码,其程序码事先利用乱数顺序以加密后储存于一ROM,该段程序码所储存的地址是由1F00_0000H至1F00_0020H,若一处理器直接执行此段程序码,会在条件式分支上出现问题,例如当该处理器执行到位于1F00_000C的指令#3时,若指令#3为bz 1F00_0020H,此日若根据零旗标(zero flag)的值,决定该处理器跳跃到1F00_0020H地址处继续执行,此时会产生一问题,因为1F00_0020H地址处所储存的资料是将指令#8用虚拟乱码数产生器(Pseudo Random Generator)所产生的一数值78编码的结果,可是虚拟乱数产生器此时产生的却是60,而该处理器采用60来对储存于1F00_0020H地址处的资料做解码,会产生错误而无法正确执行,甚至会使该处理器当机,因此,采用乱数产生器或虚拟乱数产生器来做混淆处理仅能用于固定的循序资料读取的保护,不能用于储存在ROM、RAM或Flash等存储器中可执行程序的资料保护。
针对采用乱数产生器或虚拟乱数产生器来做混淆处理仅能用固定的循序资料读取的限制,于美国第USP5,943,283号专利案公告中,是使用一地址混淆处理装置以将顺序的输入地址转换成非顺序的实际地址,而达到对储存在RAM或Flash等随机读存存储器的资料的保护,然而此种资料保护方法中,若储存的有某段资料本身有明显易见的顺序性(如处理器的启动(Boot-up Strap)程序,或是常用的函数表格),容易由资料排列位置方式猜出所使用混淆处理方法而被破解,因此,公知资料的混淆处理方法的设计仍有诸多缺点而有予以改进的必要。
发明内容
本发明的目的是在提供一种于处理器中使用地址线对资料进行混淆处理的装置及方法,以避免公知技术仅能用于ROM的固定循序资料读取资料的保护,而能用于如RAM或Flash等随机读存存储器的资料保护。
为实现上述目的,本发明提供的一种于处理器中使用地址线对资料进行混淆处理的装置,该处理器具有一处理器核心以执行该处理器的相关指令,并利用一地址总线及资料总线以存取资料,该装置包含:一种子产生装置,是耦合至该地址总线,以依据该地址总线上的特定地址而产生一种子;一第一参数产生装置,是耦合至该种子产生装置,以依据该种子产生一第一参数;一资料混淆处理装置,其耦合至该资料总线,以当该处理器核心欲写出资料至特定地址时,依据该第一参数而对该资料进行混淆处理;一资料反混淆处理装置,其耦合至该资料总线,以当该处理器核心欲由特定地址读入资料时,依据该第一参数而对该资料进行反混淆处理。
所述的于处理器中使用地址线对资料进行混淆处理的装置,其更包含选择装置,用以当该处理器核心欲写出资料时,选择将欲写出的资料汇至该资料混淆处理装置进行混淆处理,之后再写至存储器,而当该处理器核心欲读入资料时,选择将欲读入的资料汇至该资料反混淆处理装置进行反混淆处理,之后再读至处理器核心。
所述的于处理器中使用地址线对资料进行混淆处理的装置,其更包含:一第二参数产生装置,以产生一第二参数,该资料混淆处理装置是依据该第一及第二参数而进行混淆处理,该资料反混淆处理装置是依据该第一及第二参数而进行反混淆处理。
所述的于处理器中使用地址线对资料进行混淆处理的装置,其更包含:一第三参数产生装置,以产生一第三参数;一地址混淆处理装置,其是耦合至该地址总线,当该处理器核心欲对特定地址存取资料时,依据该第三参数对该处理器核心的地址进行混淆处理。
所述的于处理器中使用地址线对资料进行混淆处理的装置,其中该种子产生装置是依据全部或部分的该地址总线上的地址以产生一种子。
所述的于处理器中使用地址线对资料进行混淆处理的装置,其中该地址混淆处理装置是依据全部或部分的该地址总线上的地址进行混淆处理,以产生一混淆处理的地址。
所述的于处理器中使用地址线对资料进行混淆处理的装置,其中该地址总线上的地址线数目等于该混淆处理后的地址线数目。
所述的于处理器中使用地址线对资料进行混淆处理的装置,其中该地址总线上的地址线数目不等于该混淆处理后的地址线数目。
为实现上述目的,本发明提供的一种于处理器中使用地址线对资料进行混淆处理的方法,该处理器包含一处理器核心,该处理器核心是执行该处理器的相关指令,并利用一地址总线及第一资料总线以存取资料,该方法包含下列步骤:
一种子产生步骤,是依据该地址总线上的特定地址以产生一种子;
一第一参数产生步骤,是依据该种子而产生一第一参数;
一资料混淆处理步骤,依据该第一参数以对该处理器核心欲写出至特定地址的资料进行混淆处理;
一资料反混淆处理步骤,依据该第一参数以对孩处理器核心由特定地址读入的资料进行反混淆处理。
所述的于处理器中使用地址线对资料进行混淆处理方法,其中于该第一参数产生步骤之后更包含一第二参数产生步骤,以产生一第二参数,而使该资料混淆处理步骤是依据该第一参数及第二参数而进行混淆处理,该资料反混淆处理步骤是依据该第一参数及第二参数而进行反混淆处理。
所述的于处理器中使用地址线对资料进行混淆处理方法,其更包含下列步骤:
一第三参数产生步骤,以产生一第三参数;
一地址混淆处理步骤,其是当该处理器核心欲对特定地址存取资料时,依据该第三参数对该处理器核心的地址进行混淆处理。
所述的于处理器中使用地址线对资料进行混淆处理方法,其中该种子产生步骤是依据全部或部分的该地址总线上的地址以产生一种子。
所述的于处理器中使用地址线对资料进行混淆处理方法,其中该地址混淆处理步骤是依据全部或部分的该地址总线上的地址进行混淆处理,以产生一混淆处理的地址。
所述的于处理器中使用地址线对资料进行混淆处理方法,其中该地址总线上的地址线数目等于该混淆处理后的地址线数目。
所述的于处理器中使用地址线对资料进行混淆处理方法,其中该地址总线上的地址线数目不等于该混淆处理后的地址线数目。
由上述的说明可知,本发明的技术由于使用依据存取地址进行资料混淆/反混淆处理,其具有唯一性,故可得到正确的指令或资料,故不仅可用于ROM的保护,亦能用于如RAM或Flash等随机读存存储器的资料保护。
附图说明
图1是一程序经由一虚拟乱数产生器依据一初始值进行编码的示意图;
图2是本发明的于处理器中使用地址线对资料进行混淆处理的装置的架构图;
图3是图1的程序经由本发明技术进行编码的示意图;
图4是本发明的于处理器中使用地址线对资料进行混淆处理的装置另一实施例的架构图;
图5是图3的程序经由本发明技术进行储存地址混淆处理的示意图。
具体实施方式
图2显示本发明的一种于处理器中使用地址线对资料进行混淆处理的装置的示意图,其中处理器核心200用以执行处理器的相关指令,并利用地址总线210及资料总线220来存取存储器290的资料,前述使用地址线对资料进行混淆处理的该装置是由种子产生装置230、第一参数产生装置240、资料混淆处理装置250、资料反混淆处理装置260、选择装置271、272及第二参数产生装置280所构成。
前述种子产生装置230是耦合至该地址总线210,当该处理器核心200使用该地址总线210及资料汇流220排对该存储器290存取资料时,该种子产生装置230依据该地址总线210上的全部或部分的地址,而以一随机程序产生而产生一种子。该第一参数产生装置240是耦合至该种子产生装置230,以依据该种子产生一第一参数。
该选择装置271是耦合至该资料总线220,当该处理器核心200欲写出资料时,该选择装置271选择将欲写出的资料汇至该资料混淆处理装置250进行混淆处理,当该处理器核心200欲读入资料时,该选择装置271选择将该资料反混淆处理装置260进行反混淆处理后的资料,汇至理器核心200。
该选择装置272是耦合至该存储器290的资料总线,当该处理器核心200欲写出资料时,该选择装置272选择将该资料混淆处理装置250进行混淆处理后的资料,汇至该存储器290的资料总线,当该处理器核心200欲读入资料时,该选择装置272选择将欲读入的资料汇至资料反混淆处理装置260进行反混淆处理。
该资料混淆处理装置250是耦合至该选择装置271,以当该处理器核心200欲写出资料至该存储器290的一特定地址时,依据该第一参数产生装置240所产生的第一参数而对该资料进行混淆处理。该混淆处理后的资料再经由该选择装置272而汇至该存储器290的资料总线。
该资料反混淆处理装置260是耦合至该选择装置272,以当该处理器核心200欲由该存储器290的一特定地址读入资料时,依据该第一参数产生装置240所产生的第一参数而对该存储器290的资料进行反混淆处理。该反混淆处理后的资料再经由该选择装置271而汇至该处理器核心200的资料总线220。
图3显示与图1相同的程序码,其程序码事先利用本发明的资料混淆处理装置250以加密后储存于一ROM,该段程序码所储存的地址是由1F00_0000H至1F00_0020H。其中,该种子产生装置230的种子(seed)可为地址总线210的部分的地址Address[4:2],亦即该种子为Address[4:2]。第一参数产生装置240是耦合至该种子产生装置230,以依据该种子产生一第一参数,本范例中该第一参数产生装置240可为一对应表,其对应关系如表1所示,
其中,x为该种子产生装置230所产生的种子,F1(x)为第一参数产生装置240所产生的第一参数。故当地址为1F00_0004时,seed=Address[4:2]=1,第一参数(Parameter1)=F1(1)=60。上述的第一参数产生装置240并不只有0~8个栏位,同时该第一参数产生装置240亦可为其他的对应函数,表格1仅是举例说明该第一参数产生装置装置240,并不能作为限定该第一参数产生装置240的依据。
若当该处理器执行到位于1F00_000C的指令#3时,若指令#3为bz1F00_0020H,此时若根据零旗标(zero flag)的值,决定该处理器跳跃到1F00_0020H地址处继续执行,此时该处理器会撷取1F00_0020H地址处所储存的混淆资料,以完成指令#3的跳跃动作,由于本发明的资料反混淆处理装置260会对该混淆资料进行反混淆处理,故可得到正确的指令#8,而不会如公知技术中该处理器采用60来对储存于1F00_0020H地址处的资料做解码。
虽然该种子产生装置230是以一随机程序产生而产生一种子,然而当该处理器核心200欲对位于某一特定存储器地址的资料进行存取时,该种子产生装置230是依据该地址总线210上的地址而产生一种子,故对同一特定存储器地址的资料进行存取时,会产生相同的种子,有一对一的关系,并不会产生如图1中的问题,因此,其不仅可用于ROM的保护,亦能用于如RAM或Flash等随机读存存储器的资料保护。
另为增加资料混淆处理后的乱度,以免被他人得知该混淆处理的过程,如图2所示,本发明更以该第二参数产生装置280以产生一第二参数,而该资料混淆处理装置250是同时依据该第一及第二参数而进行混淆处理,该资料反混淆处理装置260是依据该第一及第二参数而进行反混淆处理。
同时为增加资存取地址的乱度,如图4所示,本发明更包含一第三参数产生装置410及一地址混淆处理装置420以进行地址混淆处理,该第三参数产生装置410用以产生一第三参数,该地址混淆处理装置420是耦合至该地址总线,当该处理器核心欲对特定地址存取资料时,其依据该第三参数对该处理器核心的地址进行混淆处理,图5是图3中程序码再以地址混淆处理装置420对其储存地址进行混淆处理的结果,由图5可知储存在存储器中的程序码其前后并无相关性,他人即使拥有该存储器亦难以读出真正的程序码。
应注意的是,上述诸多实施例仅是便于说明而举例而已,本发明所主张的权利范围自应以根据权利要求所述为准,而非仅限于上述实施例。
机译: 基于地址信息的数据处理器限制访问,与数据处理器进行通信的信息处理器,地址信息的设置方法,控制信息处理器的方法和程序
机译: 通过微处理器地址/数据总线对空芯仪表进行时分多路控制
机译: 在多处理器装置中使用微处理器地址线协同处理器选择的系统