微处理器及其数据保密方法技术领域
本发明为一种微处理器及其数据保密方法,指一种应用于电子产品中保护
微处理器的数据的方法及装置。
背景技术
微处理器(MicrocontrollerUnit)通常包含有中央处理单元(CPU)、存储
器(RAM及ROM)、输出输入端口(I/O)、模拟数字转换单元(A/D)等,可
搭配各种电子产品,具有不同的记忆与运算功能。各家厂商可通过多种可能的
方式将主程序代码写入微处理器中,以执行所需的功能,一般而言,为了达到
不同的功能,各家厂商需要投入研发资源以开发不同的程序代码,为了保护程
序代码不被有心人士盜取,现有技术的微处理器上设有保密机制。
现有技术的微处理器中,在写入主程序代码的同时,可同时于功能选项表
(Codeoption)中选择是否将主程序代码加以保密,存储器中具有预设地址用
来储存保护位值。在微处理器尚未被使用过时,保护位值中的预设数据代表不
保密的指令;当使用者选择将主程序代码加以保密时,保护位值将会写入代表
保密指令的数据。例如一微处理器中预设三个地址来储存保护位值,而假设代
表不保密指令的数据为[1][0][1],则通常代表保密指令的数据就为[1][0][1]以外
的数据,如[0][0][0]、[0][0][1]、[0][1][0]等,则当使用者选择保密时,将会写
入[0][0][0]、[0][0][1]、或[0][1][0]等数据于预设地址中,当使用者选择不保密
时,将会写入[1][0][1]于预设地址中。当使用者选择保密时,若使用者通过外
部装置(例如烧录器等)要求读取该微处理器的主程序代码时,该微处理器将
不会输出主程序代码于该外部装置,以达到对主程序代码保密的效果。
但当使用者通过外部装置要求读取功能选项表的程序代码时,该外部装置
将会在显示保护位值时,仅显示与真实数据相异的错误数据或预设的特定数
据,以防止他人获得保护位值的真实数据,进而避免他人通过原始出厂的微处
理器获得代表不保密指令的保护位值,而利用来将已写入主程序代码的微处理
器修改为不保密状态,达到盜取主程序代码的目的。现有技术中,外部装置读
取该功能选项表时,该微处理器仍会输出该功能选项表中所有地址的真实值给
外部装置,并藉由该外部装置来将保护位值的数据改变后再显示。例如保护位
值为[1][0][1],则该微处理器输出的值仍为[1][0][1],但经外部装置处理后所显
示的值则可能为[*][*][*]、[0][0][0]、[-][-][-]等错误数据,则他人无法于外部装
置的显示内容中得知保护位值的真实数据;但若他人不通过外部装置的显示内
容,而由微处理器的输出端直接通过仪器测量该微处理器所输出的数据,则仍
能取得保护位值的真实数据。因此,现有技术的微处理器的保密机制有其疏漏
之处。
发明内容
有鉴于此,本发明发展一种微处理器及其数据保密方法,以解决现有技术
中通过仪器仍能测量得知保护位的真实值的缺点。
为达到上述的发明目的,本发明所采用的技术手段为设计一种微处理器的
数据保密方法,该微处理器包含一中央处理单元及一存储器,该存储器具有至
少一预设地址,各个预设地址用来储存有一保护位值,所述数据保密方法包括:
a.根据一外部装置的要求读取该存储器;
b.判断该要求所欲读取的地址是否对应该至少一预设地址;以及
c.若是,输出一读取结果给该外部装置,其中该读取结果包括至少一特定
位值,在该读取结果中该至少一特定位值代表该至少一预设地址的数据,且该
至少一特定位值不同于该至少一预设地址的保护位值。
再者,本发明设计一种微处理器,包括:
一存储器,具有至少一预设地址,各个预设地址用来储存一保护位值;
一中央处理单元,与该存储器连接;其中该中央处理单元于收到读取该存
储器的指令时,该中央处理单元判断所欲读取的地址是否对应该至少一预设地
址,若是,则输出一读取结果,该读取结果包括至少一特定位值,在该读取结
果中该至少一特定位值代表该至少一预设地址的数据,且该至少一特定位值不
同于该至少一预设地址的保护位值。
进一步而言,本发明设计一种微处理器的数据保密方法,该微处理器包含
一中央处理单元及一存储器,所述数据保密方法包括:当该中央处理单元收到
读取该存储器的一功能选项指令表的一读取指令时,将该功能选项指令表中的
至少一预设地址的数据予以改变后再输出,其中各个预设地址用来储存一保护
位值。
本发明的优点在于,通过该微处理器输出时就不输出保护位值的真实数
据,而改为输出特定值,则无论外部装置所得到的值、或在微处理器的输出接
口所测量到的值,均非保护位的真实数据,而能确实的防止他人取得保护位的
真实值。
进一步而言,该存储器包括一预设区段,该预设区段包括数多个该预设地
址,该些预设区段储存有一组保护位参数,该保护位参数由数多个该保护位值
所构成,该步骤c输出的该读取结果包括一组特定参数来代表该预设区段的数
据,且该特定参数不同于该组保护位参数。藉此,来将与保护位值位于相同区
段内的其他位值一并输出为特定值,更进一步让读取者无法判断保护位值的地
址。
附图说明
图1为本发明的微处理器与外部装置连接的方块图;
图2A至图2C为本发明的存储器的位示意图;
图3为本发明的数据保密方法的流程图。
其中,附图标记:
10微处理器11中央处理单元
12存储器13连接端口
20外部装置
具体实施方式
以下配合图式及本发明的较佳实施例,进一步阐述本发明为达成预定发明
目的所采取的技术手段。
请参阅图1及图2A所示,本发明的微处理器10包含有一中央处理单元11及
一存储器12。该中央处理单元11通过一连接端口13与一外部装置20相连接,该
中央处理器11中可具有一上查表(lookuptable)或一标志信息(flagtag)。该
存储器12与该中央处理单元11相连接,该存储器12具有数多个地址121,该数
多个地址121中包含有至少一个预设地址1211,该至少一预设地址1211的位置
信息可储存于该中央处理器的上查表或标志信息中,各该预设地址1211中分別
储存有一保护位值,该保护位值供该中央处理单元11判断是否依照外部装置20
的要求来输出其程序信息,亦即对主程序代码的保密指令由该保护位值所组
成。该保护位值的数量越多及/或该预设地址1211所位在的行数越分散,则该
保护位值被猜测出真实值的难度越高,进而代表保密程度越高,例如图2A表
示位在同一行的三个保护位值,图2B表示位在二相异行的五个保护位值,图
2C表示位在三相异行的六个保护位值,则就保密程度而言,图2C所示的保密
程度为较佳。
请参阅图1至图3所示,本发明的数据保密方法包含以下步骤:
根据一外部装置20的要求读取该存储器12(S1):该外部装置20可能为烧
录器等可读写微处理器10的存储器12的内部数据的装置,该外部装置20可能要
求读取该存储器12中的所有地址或指定地址。
判断该要求所欲读取的地址121是否对应该至少一预设地址1211(S2):较
佳者由该中央处理单元11判断该外部装置20的读取指令中,是否包含读取该预
设地址1211的指令。
若步骤S2判断为是,则输出特定位值(S31):若欲读取的地址121中包含
该预设地址1211,则所输出的读取结果中以该特定位值来代表该预设地址1211
的数据,且该特定位值不同于该预设地址的保护位值,以使该保护位值的真实
数据不被输出。该特定位值可能为相异于该保护位值的数据,例如保护位值为
[0],则该特定位值为[1]。在较佳实施例中,存储器12包含有一预设区段,该
预设区段包含有数多个预设地址1211,该些预设地址1211储存有一组保护位参
数,该保护位参数由数多个保护位值所构成,则输出的读取结果包含一组特定
参数来代表该预设区段的数据,且该特定参数不同于该组保护位参数,例如图
2C所示,保护位参数为[001101],则输出的特定参数可能为[000000]、[111111]、
[010101]等值。
进一步而言,该步骤S2中判断该要求所欲读取的地址121是否与该至少一
预设地址1211为同一行,若是,则该步骤S31输出的读取结果包括一组特定参
数来代表所欲读取的地址121的数据。例如图2C所示,word0行中的真实数据
为[0…10101],则输出的特定参数可能为[0000…0000]、[1111…1111]等不同于
该真实数据的特定参数,故除了该保护位值的真实值被隐藏之外,更将同一行
的数据均以该特定参数输出,以进一步隐藏该保护位值的真实地址。
若步骤S2判断为否,则输出真实值(S32):若所欲读取的地址121未对应
至少一预设地址1211,则将所欲读取的地址121的数据直接输出,意即输出其
真实值。进一步而言,若所欲读取的地址121并未与至少一预设地址1211位于
同一行,则所欲读取的地址121被直接输出,即输出其真实值。例如图2C所示,
word2中不包含有任何的保护位值,故若所欲读取的地址121位于word2该行
时,则将输出该地址121的真实值。
藉由该微处理器10在输出数据时,就至少将该保护位值予以改变为该特定
位值后再输出,则无论在该微处理器10的输出端口13所量测到的数值,或在该
外部装置20所读取或显示的数值,均为该特定位值而非真实值,因此,本发明
可使该保护位值的真实值无法被读取出,以达到最佳的保密效果。
以上所述仅是本发明的较佳实施例而已,并非对本发明做任何形式上的限
制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何所
属技术领域中具有通常知识者,在不脱离本发明技术方案的范围内,当可利用
上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未
脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何
简单修改、等同变化与修饰,均仍属于本发明权利要求保护的范围内。