可保护只读存储器数据的密码保护电路的制作方法

文档序号:6655480阅读:201来源:国知局
专利名称:可保护只读存储器数据的密码保护电路的制作方法
技术领域
本发明涉及密码保护电路,且特别是涉及一种可保护只读存储器数据的密码保护电路。它可以应用于微处理器及微控制器等内建有只读存储器的装置中,使其储存资料免于非法拷贝或使用。
目前,在8位单芯片微控制器中,密码保护电路通常是由64字节或32字节的密码表所组成。这些密码表在芯片中占去极大面积,使得芯片面积变大且生产成本提高。另外,一旦微控制器的密码表外泄,则芯片内储存的程序代码亦会有被盗用的危险。
为了克服现有技术的不足,本发明的主要目的在于提供一种可保护只读存储器资料的密码保护电路,其仅需要2字节的密码表,因此可大幅缩小芯片面积,使生产成本有效地降低。
本发明的另一目的在于提供一种可保护只读存储器数据的密码保护电路,其更具有一演算逻辑电路(伪随机产生器),其输出内容可同时参照初始值及只读存储器资料以进行扰乱,故加密动作的复杂性可进一步提高。并且,由于这种密码保护电路没有译码电路提供,因此加密结果无法破解、具有极佳的保密能力。
本发明的目的可以通过以下措施来达到一种可保护只读存储器数据的密码保护电路,包括一只读存储器,用以储存资料;一伪随机产生器,根据一初始值,加密该只读存储器资料;以及一加法器,将该伪随机产生器的加密结果,及该只读存储器资料相加,藉以得到一扰乱资料。
一种可保护只读存储器数据的密码保护电路,包括一初始值产生器,用以产生第一值域或第二值域的初始值;一移位缓存器,用以暂存该初始值、并选择性地加载该只读存储器资料,藉以改变其资料内容;一运算电路,计算该移位缓存器的资料、并将结果送回该移位缓存器以进行移位动作;一加法器,相加该只读存储器资料及该移位缓存器中相同长度的资料,藉以得到一扰乱资料;以及一闩锁电路,闩锁该加法器的输出。
本发明相比现有技术具有如下优点根据上述及其它目的,本发明乃同时以只读存储器的原始资料及初始值作为伪随机产生器的输入变量、并将伪随机产生器的输出与只读存储器的原始资料再进行一次加法运算,藉以扰乱原始资料,使加密结果无法破解。
在本发明中,可保护只读存储器数据的密码保护电路主要是由初始值产生装置、移位缓存器、运算电路、加法器及闩锁电路所组成。在这种密码保护电路中,初始值产生装置是用来产生两种值域互斥的初始值。移位缓存器是用来暂存上述值域、并选择性地加载只读存储器资料以变动其中内容。运算电路是用来计算移位缓存器的资料、并将结果送回移位缓存器以进行移位动作。加法器是用来相加只读存储器资料及移位缓存器中相同长度的资料,藉以得到一加密结果。而闩锁电路则是在特定情况下闩锁加法器,使其输出维持在固定的高电压或低电压。
在这种密码保护电路中,由于伪随机产生器同时以不具规则性的原始资料及初始值产生装置的初始值做为输入变量,因此加密动作极为复杂,其会随原始资料的改变而不同、且没有译码电路提供,藉以避免被破解的危险。
另外,在这种密码保护电路中,当移位缓存器及初始值均为16位时,运算电路可依f(x)=x15+x12+x7+x+1运算移位缓存器的内容、并将处理结果送回移位缓存器的最低位,同时,移位缓存器的其它内容则朝最高位方向平移。在这种结构下,当初始值为FFFFH的值域时,移位缓存器所储存的内容会维持不变(因为f(x)=1),而当初始值为OOOOH~FFFEH的值域时,移位缓存器的内容则会依据上述加密,使其中内容改变。
再者,在这种密码保护电路中,当移位缓存器储存的内容满足某一特定条件时,移位缓存器可加载只读存储器资料以改变其中内容,藉以提高加密动作的复杂性。而加法器及闩锁电路则分别用以相加只读存储器资料及移位缓存器中相同长度的内容,及用以闩锁加法器的输出,藉以进一步扰乱加密结果。
为了使本发明前述的目的、特征与优点得更易明了,乃列举较佳实施例,并结合附图,进一步予以说明如下。


图1是本发明可保护只读存储器数据的密码保护电路的方块图;以及图2是本发明可保护只读存储器数据的密码保护电路的电路图。
实施例为确保微控制器内部只读存储器所储存的原始程序代码或其它资料不为非法拷贝及使用、并保障原著作者的知识产权,微控制器通常会在内部设计有密码保护电路(Scramble circuit),用以加密被读取的程序代码,使其与原始程序代码不同、无法复制使用。
请参考图1,此为本发明可保护只读存储器数据的密码保护电路的方块图。
在这个实施例中,微控制器的内部只读存储器2中存放有欲保护的只读存储器资料(ROM DATA),如原始程序代码或其它资料。参考时钟产生器3是用以提供整个微控制器的系统时钟(CLOCK)。而密码保护电路1则用以加密欲保护的只读存储器数据(ROM DATA)、且具有初始值产生器10、伪随机产生器20、加法器30及闩锁电路40。
初始值产生器10是用以产生两种值域互斥的初始值(Seed1/Seed2),用以作为伪随机产生器20的输入变量。
伪随机产生器20则依据不同初始值(由初始值产生器10提供)产生不同序列的数值,用以与只读存储器资料(原始程序代码或其它资料)进行加密动作并得到一加密结果(Encryption pattern)。为提高伪随机产生器20在加密动作时的复杂性、使其无法提供译码电路,伪随机产生器20更以只读存储器资料(原始程序代码或其它资料)为另一变量。只读存储器资料(原始程序代码或其它资料)的内容无法预测,因此这种密码保护电路1并无法提供解密电路、且加密只读存储器资料(原始程序代码或其它资料)后,加密结果亦必须备分以利日后验证使用。
加法器30是用来相加伪随机产生器20的加密结果(Encryptionpattern)与只读存储器资料(原始程序代码或其它资料),藉以进一步扰乱伪随机产生器20的加密结果,用以作为被读取数据(READ DATA)。
闩锁电路40则根据一闩锁控制信号(LOCK)、在特定情况下闩锁加法器30,使其输出固定于高电压或低电压。
接着,配合图2仔细说明本发明的较佳实施例。请参考图2,此为本发明可保护只读存储器数据的密码保护电路的电路图。
与图1相同,在这个实施例中,微控制器的内部只读存储器(图中未示)是用来储存欲保护的只读存储器资料,如原始程序代码或其它资料。而密码保护电路则依据不同初始值以加密只读存储器资料、其具有初始值产生器10、伪随机产生器20、加法器30及闩锁电路40。
初始值产生器10是由两个8位输入单元Seed1/Seed2所组成,用以产生两种不同值域互斥的初始值,如FFFFH与OOOOH~FFFEH。
伪随机产生器20则由两个彼此串连的8位移位缓存器R1、R2,两个缓冲器B1、B2,多任务器M1,或门O1及反向器I1所构成。如图中所示,初始值产生电路10的两个输入单元Seed1/Seed2分别经由缓冲器B1及多任务器M1连接至8位移位缓存器R1、及经由缓冲器B2连接至8位移位缓存器R2。另外,或门O1及反向器I1构成的加载电路S1则设计于缓冲器B1与移位缓存器R1、R2之间。当加密动作开始时,初始控制脉冲P(Init Load)会使输入初始值产生器10输入单元Seed1/Seed2的内容经由多任务器M1、缓冲器B1传送至移位缓存器R1、以及经由缓冲器B2传送至移位缓存器R2。随后,缓冲器B1、B2便关闭,使运算电路L1得以根据两个移位缓存器R1、R2的内容进行处理、并将结果送回移位缓存器R1、R2的最低位,同时,两个移位缓存器R1、R2的其它位置内容则朝最高位方向平移。在这个实施例中,运算电路L1与两个移位缓存器R1、R2的内容的关系可以是f(x)=x15+x12+x7+x+1。亦即,当初始值为FFFFH时,两个移位缓存器R1、R2的内容在移位后仍维持不变,因为f(x)=1;而当初始值为OOOOH~FFFFEH时,两个移位缓存器R1、R2的内容则会依据初始值及加载只读存储器资料的改变而改变。
另外,为提高加密动作的复杂性,伪随机产生器20另外可设计一加载电路S1,用以在特定情况下将只读存储器资料加载移位缓存器R1、R2。在这个实施例中,若移位缓存器R1、R2的内容满足第6位等于0,则加载电路S1可控制多任务器M1及缓冲器B1、使8位的只读存储器资料传送至移位缓存器R1。由于只读存储器资料的顺序无法预测,因此,在这个实施例中的移位缓存器R1、R2内容可不规则地改变,使译码电路难以提供。
另外,加法器30则是相加8位只读存储器资料OD及自移位缓存器R1、R2中任意选取的等长度资料{0..5,7,8}ED、并输出一加密结果。
而闩锁电路40则可由或门(OR gate)或其它逻辑电路组成,用以在特定情况下闩锁加法器30,使其输出固定于高电压或低电压。在这个实施例中,闩锁电路40是以或门构成,其输入端分别连接加法器30输出及一闩锁控制信号L(LOCK)、而输出端则用以作为读取的资料RD(READ DATA)。
综上所述,本发明可保护只读存储器资料的密码保护电路仅需要2字节的密码表搭配一演算逻辑电路,因此可大幅缩小芯片面积,使生产成本有效地降低。另外,读取资料可同时参照初始值及只读存储器资料以进行扰乱加密,因此,加密动作的复杂性可进一步提高、并且难以提供译码电路,具有极佳的保密能力。
虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,任何熟习此项技艺者,在不脱离本发明的精神和范围内,当可作少许的更动与润饰,因此本发明的保护范围当视后附的权利要求并结合说明书和附图所界定者为准。
权利要求
1.一种可保护只读存储器数据的密码保护电路,其特征是包括一只读存储器,用以储存资料;一伪随机产生器,根据一初始值,加密该只读存储器资料;以及一加法器,将该伪随机产生器的加密结果,及该只读存储器资料相加,藉以得到一扰乱资料。
2.如权利要求1所述的可保护只读存储器数据的密码保护电路,其特征是其中,该伪随机产生器包括一移位缓存器,存放该初始值及该只读存储器资料;以及一运算电路,运算该移位缓存器存放的资料、并将处理结果送回该移位缓存器以进行移位动作。
3.如权利要求2所述的可保护只读存储器数据的密码保护电路,其特征是其中,当该移位缓存器及该初始值为16位时,该运算电路可根据f(x)=x16+x12+x7+x+1运算该移位缓存器的资料、并将处理结果送回该移位缓存器的最低位,如此,当该初始值为FFFFH时,该移位缓存器存放的资料会维持不变,而当该初始值为OOOOH~FFFEH时,该移位缓存器的资料则会加密而改变。
4.如权利要求3所述的可保护只读存储器数据的密码保护电路,其特征是其中,当该移位缓存器存放的资料满足一特定条件时,该只读存储器资料是加载该移位缓存器以改变其内容。
5.如权利要求1所述的可保护只读存储器数据的密码保护电路,其特征是其中,该加法器是相加该只读存储器资料及该移位缓存器中相同长度的资料,藉以得到该扰乱资料。
6.如权利要求1所述的可保护只读存储器数据的密码保护电路,其特征是更包括一闩锁电路,用以闩锁该加法器的输出。
7.一种可保护只读存储器数据的密码保护电路,其特征是包括一初始值产生器,用以产生第一值域或第二值域的初始值;一移位缓存器,用以暂存该初始值、并选择性地加载该只读存储器资料,藉以改变其资料内容;一运算电路,计算该移位缓存器的资料、并将结果送回该移位缓存器以进行移位动作;一加法器,相加该只读存储器资料及该移位缓存器中相同长度的资料,藉以得到一扰乱资料;以及一闩锁电路,闩锁该加法器的输出。
全文摘要
一种可保护只读存储器数据的密码保护电路,有初始值产生装置、移位缓存器、运算电路、加法器及闩锁电路。初始值产生器产生两种值域互斥的初始值。移位缓存器暂存上述初始值、并选择性地加载只读存储器资料变动其中内容。运算电路处理移位缓存器的内容、并将结果送回移位缓存器进行移位动作。加法器相加只读存储器资料及移位缓存器中相同长度的资料,藉以得到一加密资料。而闩锁电路在特定情况下闩锁加法器,使其输出固定维持在高电位或低电位。
文档编号G06F12/14GK1378144SQ0110954
公开日2002年11月6日 申请日期2001年3月30日 优先权日2001年3月30日
发明者许智仁, 黄裕钦, 许木机 申请人:华邦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1