当前位置: 首页 > 专利查询>吕伟建专利>正文

防拷贝只读存储器制造技术

技术编号:3087793 阅读:274 留言:0更新日期:2012-04-11 18:40
本发明专利技术是一种用于电子计算机系统中的防拷贝只读存储器器件。它由主存储器,“闩锁”存储器,三D触发器,解码表存储器等构成,程序在运行时,可利用“密钥”自动启动“闩锁”存储器,将“锁”状态锁存在三D触发器中,并依此选择正确的解码表解密,工作时,可动态地在八种加密结构中改变状态,是一种保密性极强的器件,由于全部工作在一个脉冲沿的过程中完成,故不增加运行时间。(*该技术在2012年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术是一种防止非法拷贝的只读存储器器件,应用于电子计算机系统中。在电子计算机系统中,基础软件一般固化在只读存储器(ROM或EPROM)中,因而很容易被拷贝,致使其关键的软件技术得不到保护。如何防止对ROM(或EPROM)的非法拷贝,一直是一个未解决的问题。这一问题,广泛影响了软件版权、计算机安全性及隐私权的保护。过去曾有人研制了一种被称为KEPROM的器件。这种器件在程序运行前,首先要对关键字进行访问,而随机产生的关键字分别存放于两块KEPROM内。关键字访问成功后,KEPROM才允许进行程序的读出操作。它虽然阻止了对只读存储器的直接拷贝,但若借助于一个含有微处理机探头的分析器或开发系统,在关键字访问成功后,仍可读出全部程序,导致关键的软件技术外泄。本专利技术的目的,就是提出一种全新的只读存储器(ROM或EPROM)器件,来防止对软件的非法拷贝。在这项专利技术中即使借助于有微处理机探头的分析器或开发系统,也无法得到存储器中的全部软件。这项专利技术,在此称为防拷贝只读存储器。本专利技术的结构框图见附图说明图1。图中1是主存储器,用来存放加密后的用户程序或数据。A0~Ai是它的地址总线(ADDBUS),Q0~Q7是它的输出,CS是片选线。在CS=1(高电平)时,地址总线A0~Ai选中的存储单元中存放的数据由Q0~Q7输出,送至2和4的a0~a7端,在CS=0(低电平)时,1的输出端Q0~Q7全部无效。2是一个容量为256×3bit的存储器,用来设定用户规定的密码锁,在此称为“闩锁”存储器。它的地址输入口a0~a7接至1的输出端Q0~Q7,2的输出口Q0~Q2接至三D触发器3的输入端(D0~D2)。3是一个三D触发器,用来锁存2的输出状态。在3的CLOCK端出现脉冲上升沿时,把2的输出状态(Q0~Q2)锁存入3,并反映在3的输出Q0、Q1、Q2上。图1中的Aj是“密钥”控制线,当它是高电平时,在OE的作用下,与门6向3的CLOCK端发出时钟信号,把2的“锁数据”锁存在3中。RESET信号用来在加电或复位时,使三D触发器3进入初始状态(Q0=O,Q1=O,Q2=O)。4是解码表存贮器,它的容量是2048×8bit。4的低八位地址输入线a0~a7接至1的输出端Q0~Q7,高三位地址线a8、a9、a10则分别接至3的Q0、Q1、Q2端。在3的Q0、Q1、Q2的控制下,4的整个存储空间被均分成八个容量相等的地址区间(每组为256×8bit),用来存放八组不同的解码表。这八组解码表分别与1中各段加密程序相对应。例如,在程序运行的某一时刻,3的Q0~Q2已选中4的某一组解码表,存放于1中的一条加密指令(或加密字节)由1的Q0~Q7送入4的a0~a7,而4的a0~a7指定的单元内存放的与该加密指令(或加密字节)相对应的一个解码表数据即由4的Q0~Q7输出,完成了解码的工作。使用正确时,在3的控制下,4的Q0~Q7一步步的输出解密后的原码程序(或数据),并经过三态控制门5把它们传递到数据总线(DATA BUS)上。而在非法操作或拷贝时,3的工作不正常,4的八位解码表无法正确选择,只能输出错误的程序或数据。5是一个八组的三态控制门,CS是片选信号,OE是输出控制信号。在CS=1,OE=1时,它把出现在输入端i0~i7的信号传送至数据总线上。若CS=O或OE=O,5的输出端O0~O7将是悬空状态。非门7的作用是向5的OE端提供三态控制信号,并经过与门6和Aj一齐向3提供CLOCK信号。在OE有效(低电平)时,7的输出变为高电平“1”,此时5的OE有效。若“密钥”控制线Aj=1,则6的输出将变为“1”,向3发出CLOCK信号,把2的输出Q0~Q2锁存入3。8是一个反相缓冲器,若它的输入CS为低电平“O”,则表示该专利器件被选中,否则即处在“挂起”状态。使用时,用户把程序按自己规定的密码格式分段编码后存放于主存储存器1中,这些程序最多可按八种编码方式编制,每一种编码方式中都有256种编码组合,与这八种编码方式相对应的八组解码表存放于4的八个地址区间内,这八种编码方式可跳跃使用,也可重复使用。1中用不同编码方式加密的程序段之间,要用“密钥指令”来链接。“密钥指令”的功能,就是要用规定的“密钥”,打开相应的“锁”,以便随时跟踪运行中的程序,来选用正确的解码表工作。实际上,2的输出Q0~Q2所代表的八个状态,即是这八个“锁”。它们对应着4中的八组解码表。而“锁”的密钥,则是2中存放锁数据的单元地址,它们隐含在2的a0~a7之中。因为只有八个“锁”,所以,在2的256个单元地址中,只任选其中8个就可以了,其它空余单元内可存入无关的任何数据。在执行“密钥指令”时,要先使Aj=1,1的Q0~Q7端输出相关的“密钥”数据,这个数据送至2的a0~a7端,将相对应的“锁”数据由2的Q0~Q2送出。此时,因Aj=1,在OE信号到来时,3将2的输出状态锁定,并确定4中对应的那组解码表。而后,应使Aj=0,“换锁”工作完毕,一条“密钥指令”执行结束。在下次Aj=1出现之前,“锁”的状态将锁定在3中,以保证后面的程序能正确运行。显然,“密钥指令”的时序关系应符合下述条件1、使Aj=1。2、在1的Q0~Q7送出相应的“密钥”数据。3、OE有效时将“锁”数据锁定在3中。4、使Aj=0。这在不同的计算机系统中,可用不同的语言结构来实现。例如,在一个由MCS-51单片机构成的系统中,主存储器(图1中的1)容量为32K×8bit,占用的地址空间为A0~A14(即图1中的AO~Ai线),用地址线A15做“密钥”控制线Aj,MCS-51的PSEN控制线接至图1的OE端。在主存储器1中存储了若干段加密程序,并用“密钥程序”将它们链接起来。其中第一段程序用第一种编码方法加密,运行时选用4中的第一组解码表(用3的Q2、Q1、Q0=000来选中)解密;第二段用第四种编码方法加密,运行时选用4的第四组解码表(用3的Q2、Q1、Q0=011来选中)解密;第三段用第五种编码方法加密,运行时选用4中的第五组解码表(用3的Q2、Q1、Q0=100选中)解密。此时,程序的编制方式如下 在本例中,ROOM4和ROOM5都是十六位的地址数据,它表示主存储器1中存储“密钥4”及“密钥5”的单元地址(A0~A15)。图1中A0~A14接至1的地址总线(A0~Ai),而A15位接至密钥控制线Aj,因而在这个地址数据有效时,导致Aj=1。ROOM4和ROOM5的存放的数据是换用第四组和第五组解码表的“密钥”。在运行MOVC A,@A+DPTR这条指令时,ROOM4或ROOM5地址数据送至地址总线(ADD BUS)上,A15使Aj=1,而ROOM4或ROOM5的A0~A14位指定的单元内的数据经由1的Q0~Q7送至2的地址输入线a0~a7上这个数是2的“密钥”开启数,在它指定的单元内,必然存在着011或100,用来选用4的第四组或第五组解码表。当MCS-51的PSEN信号有效时,图1中的OE信号把2的输出(011或100)状态锁存入3,以便对4中的第四组或第五组解码表定位。在这同时,1的输出也经由4和5送至数据总线上输出。但因1的输出数据(即ROOM4或ROOM5中的内容)是按前一种编码方式本文档来自技高网...

【技术保护点】
本专利技术是一种用于电子计算机系统中的防拷贝只读存储器器件。它由主存储器,“闩锁”存储器,三D触发器,解码表存储器等构成,程序在运行时,可利用“密钥”自动启动“闩锁”存储器,将“锁”状态锁存在三D触发器中,并依此选择正确的解码表解密,工作时,可动态地在八种加密结构中改变状态,是一种保密性极强的器件,由于全部工作在一个脉冲沿的过程中完成,故不增加运行时间。

【技术特征摘要】
1.一种防止对程序进行非法拷贝的只读存储器器件,其特征是在主存储器(1)后设置了“闩锁”存储器(2)、解码表存储器(4)、三D触发器(3),用来改变(3)、(4)工作状态的“密钥”是一组存放于主存储器(1)中的数据,在“密钥”的选择控制下,通过(2)和(3)动态的选用(4)中的不同解码表,来解出(1)中按不同编...

【专利技术属性】
技术研发人员:吕伟建
申请(专利权)人:吕伟建
类型:发明
国别省市:37[中国|山东]

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

1