CN1024087C - 光擦除只读存贮器的加密方法 - Google Patents
光擦除只读存贮器的加密方法 Download PDFInfo
- Publication number
- CN1024087C CN1024087C CN 92108303 CN92108303A CN1024087C CN 1024087 C CN1024087 C CN 1024087C CN 92108303 CN92108303 CN 92108303 CN 92108303 A CN92108303 A CN 92108303A CN 1024087 C CN1024087 C CN 1024087C
- Authority
- CN
- China
- Prior art keywords
- special bit
- programming
- data block
- randomness
- programmed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Read Only Memory (AREA)
- Storage Device Security (AREA)
Abstract
一种光擦除只读存贮器的方案方法,加密芯片除有正常工作程序外,还有作为加密指纹的特殊位数据块和检查特殊位读出随机性的程序,该加密芯片的加密方法是利用变荷编程法将特殊位数据块中特定的存贮单元编制成特殊位。这种特殊位不能用普遍的编程器,拷贝机复制,从而可防止EPROM的非法复制。这种加密方法是将加密指纹直接作在EPROM芯片上的,具有经济、方便、可靠的特点。
Description
本发明涉及计算机软件记录载体,特别是有关光擦除只读存贮器(以下简称EPROM)芯片防复制的加密。
在EPROM芯片上制作加密指纹是非常困难的,武汉大学姚琥、宋光爱在“单片机、单板机实用程序加密方法”(微计算机应用第12卷第3期第33页,1991年5月)一文中介绍了一种“混合加密”的方法,即将加密指纹制作在计算机系统的其他部位,如损坏了的RAM芯片,然后利用软件进行检查。有的人则是将EPROM芯片中某几位地址、数据线对换,某几位地址、数据线通过某些加密器件(如GAL、PAL等可编程逻辑器件等)变换后再接入EPROM芯片。这些虽对加密有一定作用,但很难从根本上解决防复制的问题,甚至提高了计算机系统的成本,增加了系统的复杂性。
本发明的目的是提供一种EPROM的加密方法。
本发明的EPROM加密芯片,除含有正常工作程序外,还有作为加密指纹的特殊位数据块和检查特殊位数据中特殊位读出随机性的程序。
人们知道,在EPROM芯片中,信息是存贮在带浮栅的MOS晶体管中,即存贮单元。浮栅上不带电荷表示逻辑“1”状态,浮栅上带足电荷,表示逻辑“0”状态,这两种状态,既能在计算机内被CPU读取,又能被EPROM编程器、拷贝机读取,从而可以复制出同样内容的EPROM芯片。本发明所说的特殊位系指EPROM中存贮单元浮栅上所带电荷量处于正常逻辑“1”态最低电荷和逻辑“0”态最高电荷之间某种电荷量的存贮单元。
当带有特殊位的EPROM芯片加上读出电压时,处于临界状况的特殊位的输出电平没有确定的逻辑电平,即呈现读出“0”或“1”的随机性。这样,CPU在对这些特殊位读取时,逻辑电平“0”和“1”不定。利用多次重复读出特殊位数据块中特殊位是否呈现随机性即可判断是原片还是非法复制片,而用EPROM编程器、拷贝机复制的EPROM,由于他们读出时没有检验有无随机性的能力,故不可能读出“特殊位”同样,在一般情况下,编程器和拷贝机也没有写入“特殊位”的能力,故无法复制出带有特殊位的EPROM,从而防止了EPROM的非法复制。
本发明的EPROM加密芯片工作时,先通过引导程序进入检查特殊位数据块中特殊位读出随机性的程序,检查特殊位读出有随机性后进入正常工作程序工作,否则不进入正常工作程序。
编制本发明的EPROM加密芯片的加密方法的核心是在EPROM芯片(简称芯片)中先利用本发明的变荷编程法将特殊位数据块中设定的存贮单元编制成特殊位,再用普通编程法,即按EPROM生产厂家说明书要求的条件编程方法对非特殊位和检查特殊位数据块中特殊位读出随机性的程序进行编程。
所说的编制特殊位的变荷编程方法至少有下列几种:
1.辐照减荷编程法,其步骤是:
(1)根据加密要求,确定特殊位数据块和待编成特殊位的特定单元;
(2)用普通编程法对每个特定单元编程;
(3)用紫外光辐照芯片,使具有逻辑“0”的特定单元的MOS晶体管的浮栅上的电荷减少,直到这些特定单元有相当数量的读出随机性,特殊位数据块即编制完成。
2.因为随着时间的推移,存贮单元的浮栅上的电荷总是要不断衰减的。为了保证特殊位数据块的全部特殊位的浮栅电荷衰变过程中,始终有随机性的状态读出,作为特殊位的特定单元的浮栅需要获得均匀分布的电荷等级。因此辐照减荷编程法最好改成下述步骤:
(1)根据加密要求,确定特殊位数据块待编成特殊位的特定单元;
(2)根据特殊位数据块的设计,选定特定单元浮栅上的电荷等级;
(3)对所需电荷最少的一批特定单元先用普通方法编程,用紫外光辐照芯片一定时间,再对所需电荷次少的一批特定单元用普通方法编程,再用紫外光辐照芯片一定时间,如此多次编程,辐照,直到全部特定单元编程,辐照完毕;
(4)在最后一次辐照的同时,对特殊位进行检查,直到先写入的特殊位具有相当数量的读出随机性为止。
3.欠荷编程法,其步骤是:
(1)根据加密要求,选定特殊位数据块和待编成特殊位的特定单元;
(2)用窄脉冲(即从编程机输出的最窄脉冲开始)对特定单元试探编程,并测试其读出随机性、确定其产生读出随机性的临界编程条件;
(3)从临界条件开始,逐步地增加编程脉冲宽度和编程脉冲个数分批地对所有特定单元编程,以获得特殊位合适的电荷等级。
4.综合编程法,即同时采用欠荷编程法和减荷编程法进行特殊位数据块中特殊位的编程方法,其步骤如下:
(1)根据加密要求,选定特殊位数据块和待编成特殊位的特定单元;
(2)自适应地选取一个编程脉冲宽度和编程脉冲个数对一批特定单元进行编程。所谓自适应,就是根据特殊位编程的工作经验,适当地选取初始编程脉冲宽度或编程脉冲个数,并非一定满足临界编程条件,然后逐步地增加编程,脉冲宽度或编程脉冲个数分批地对特定单元进行编程,以获得特殊位合适的电荷等级;
(3)用紫外光辐照芯片;
(4)在第三步的同时,进行检查,直到特殊位具有一定量的读出随机性。
为了提高加密的防复制的能力,上述所说的特殊位数据块最好是分散(非连续)在其他工作程序中。
用上述方法在EPROM芯片上编制含有特殊位的特殊位数据块作为加密指纹的EPROM加密芯片中,由于特殊位的浮栅上存在着不同的电荷等级,只有那些处于临界电荷等级的特殊位,在加上读出电压时,才呈现读出随机性,这是特殊位数据块中特殊位很少的一部分,未呈现读出随机性的特殊位就有很强的隐蔽性,是无法在一般条件下读出的。另外由于特殊位可制作到某一字节的某一位,其他位仍是特定的“0”或“1”,这样的字节集合才构成特定的加密指纹,用EPROM芯片合法性检验程序对EPROM作合法性检验时,除了检验特殊位外,还检测其他位的“0”或“1”状态,是否与规定的密码相匹配。这种加密是很可靠的。而且防止了加密复制机“增加”特殊位的非法复制,即使使用加密复制机,也无法将特殊位全部复制,复制的芯片,无法可靠工作。
由于这种加密是直接在EPROM芯片上进行的,与EPROM芯片为程序加密的其他加密方法相比,具有经济、方便、可靠的特点。
下面结合附图对本发明及实施例进一步阐明。
图1,EPROM芯片外部引脚示意图。
图2,EPROM加密芯片合法性检验程序示意
流程图,又称检查特殊位数据块中特殊,读出随机性的程序示意框图。
图3,S=256字节,N=16,DT=15秒,T2=10秒的特殊位数据块特殊位辐照,读出随机性的结果。
图4,S=128字节,N=8,DT=30秒,T2=15秒的特殊位数据块特殊位辐照,读出随机性的结果。
图5,S=64字节,N=16,DT=20秒,T2=20秒的特殊位数据块特殊位辐照,读出随机性的结果。
图6,对一个字节用欠荷编程法进行特殊位编程的程序框图。
图7,用欠荷编程法编制的特殊位数据块中特殊位辐照,读出随机性的结果。
图8,用综合编程法编制的特殊位数据块中特殊位辐照,读出随机性的结果。
在图1中,1为EPROM芯片,其引脚分别为接地(GND)2,编程允许(PGM)3,读出允许(OE)4,片选(CE)5,数据(Do-Dn)6,地址(Ao-Am)7,编程电压(Vpp)8,电压(Vcc)9。对EPROM芯片进行普通编程时,人们知道应将编程电压加到Vpp引脚上,使片先CE有效,读出允许OE无效,送入地址和数据,并根据EPROM芯片的生产厂家的要求条件在PGM引脚上施加一规定次数的指定的脉冲宽度的编程脉冲才能完成指定单元的普通编程。上述任何一个或多个编程条件的改变,都将影响特定单元MOS晶体管浮栅上的电荷。例如改变编程脉冲宽度、脉冲个数,或同时改变编程脉冲宽度和脉冲个数,改变编程电压Vpp等都可改变MOS晶体管浮栅上的电荷。因此改变编程电压Vpp等编制特殊位从而对EPROM芯片实现加密的变荷编程法都属本发明的保护范围。
本发明的EPROM加密芯片,除含有正常工作程序外,还有特殊位数据块和如图2所示类似的检查特殊位数据块中特殊位读出随机性的程序。
下面列举特殊位编制方法的实施例:
实施例1,选用ALL-03万能编程器,用50毫秒/字节的速度对EPROM芯片的特殊位编程,用15瓦紫外灯管在1厘米处对芯片辐照。选定特殊位数据块长度为S字节,电荷等级为N,即将特殊位分作N批,每次写完一批特殊位的特定单元的数据后用紫外光辐照的时间为DT=Tm/N(Tm为最大辐照时间,即“0”状态变成“1”状态的擦除时间)。制作特殊位时,先对所需电荷最少的一批特殊单元用普通编程方法写入一批数据,打开紫外灯辐照芯片DT时间,再写入第二批数据,再打开紫外灯辐照芯片DT时间,……直到最后第N批数据写完,打开紫外灯辐照芯片,同时读取所有写入的数据,检查读出随机性,若读出随机性的数量较少,再辐照T2时间,到出现较多读出随机性,特殊位即制作完成。
检查读出随机性的方法是在ALL-03万能编程器上,先用Read读出EPROM中数据到缓冲区Buffer,然后用Compare and display error比较EPROM中数据与缓冲区Buffer中数据的一致性,不一致则为具有读出随机性的字节单元。
特殊位数据块作为加密可靠性,是对具有特殊位数据块即加密的芯片用紫外灯辐照实验来验证的。边辐照,边检验读出随机性,结果见图3、图4、图5,特殊位写入的字节数据为0AAH,55H,0FH,0F0H,75H,0E4H,22H,90H的重复。从图3、图4、图5可见,特殊位中最高一个电荷等级的存贮单元出现读出随机性(即基本上是用普通编程方法编写的数据丢失的情况)之前,特殊位中必存在读出随机性,即特殊位的加密标志没有丢失。还可看到特殊位读出随机性的分布基本上是均匀的。
用图4所示条件制作的特殊位,配以图2所示的EPROM芯片合法性检验程序,在8031单片计算机应用系统上实验,实验证明能进入正常工作程序,但用ALL-03万能编程器复制的EPROM芯片,则不能正常工作。
实施例2,欠荷编程法编特殊位可一批一批对特定单元编程,也可一个一个特殊位编程,对后一方法编程是采用图6的流程器自动实现的。
对一个字节进行特殊位的编程算法是这样实现的:先对一指定字节,给出编程该字节的地址,编程数据(编程数据中的“1”位为不编程,“0”位为产生特殊位)。然后用脉冲宽度为△T的窄脉冲试探编程,读出该字节,检查有无读出随机性,若无读出随机性,则再试探编程一次,……直到出现读出随机性的试探编程次数为n1。当增加编程脉冲宽
度△T试探编程,直到△T=Te(普通编程脉宽)仍无读出随机性,则该单元无法编程,编程失败,在试探编程中,一旦未出现读出随机性,即将编程数据写入,则作出无读随机性标志。试探编程找出具有读出随机性的临界点后,根据不同电荷等级要求,再编程(k1n1+k2)次△T,这样便完成了一个字节中特殊位的编程。
对一批特殊位的制作是选定特殊位数据块的长度S,电荷等级N,每个等级的K1和K2,反复用对一个字节进行特殊位编程算法完成的。
图7是用上述方法,选取S=32字节,N=8,Vpp=13.5伏,50毫秒/字节速度,K1=0.2,对电荷等级为1,2,3,4,5,6,7,8的K2分别为1,3,10,30,100,300,1000,3000的情况下编制的特殊位数据块中特殊位辐照读出随机性的结果。
实施例3,用综合编程法编制的特殊位数据块的特殊位辐照,读出随机性的结果如图8所示,其中特殊位数据块长度S=64字节,电荷等级数N=8,编程速度50毫秒/字节,K1=0.2,对电荷等级为1,2,3,4,5,6,7,8的K2分别为1,3,10,30,100,300,1000,3000,紫外灯辐照的时间T2为15秒。
用上述方法编制的特殊位数据块作加密标志的EPROM加密芯片实施例2和3分别在8031单片计算机应用系统上实验,实验证明都能进入正常工作程序,用ALL-03万能编程器和拷贝机复制的EPROM芯片,都不能正常工作。证明这种加密的方法对EPROM芯片加密是可靠的。实现了发明的目的。
Claims (4)
1、一种光擦除只读存贮器的加密方法,其特征是编制步骤如下:
(1)根据加密要求,确定光擦除只读存贮器中的特殊位数据块和待编成特殊位的特定单元,引导程序和检查特殊位数据块中特殊位读出随机性的程序;
(2)根据特殊位置数据块的设计,选定特定单元浮栅上的电荷等级;
(3)利用辐照减荷编程法对全部特殊位编程:即首先对所需电荷最少的一批特定单元先用普通编程方法编程,用紫外光辐照芯片一定时间,再对所需电荷次少的一批特定单元用普通编程方法编程,再用紫外光辐照芯片一定时间,如此多次编程、辐照,直到全部特定单元编程、辐照完成,在最后一次辐照的同时进行检查,直到先写入的特殊位具有相当数量的读出随机性为止,
(4)用普通编程法对特殊位数据块中非特殊位和引导程序、检查特殊位数据块中特殊位读出随机性的程序编程。
2、按照权利要求1的加密方法,其特征是所说编制步骤中的第(3)步是利用欠荷编程法对全部特殊位编程,即首先用窄脉冲试探对特定单元编程,并测试其读出随机性,确定其产生读出随机性的临界编程条件,再从临界条件开始,逐步地增加编程脉冲宽度和编程脉冲个数分批地对特定单元进行编程,以获得特殊位合适的电荷等级。
3、按照权利要求1的加密方法,其特征是所说编制步骤的第(3)步是采用下列步骤完成的:
(1)用自适应方法,并逐步增加编程脉冲宽度或编程脉冲个数分批地对特定单元进行编程,以获得特殊位合适的电荷等级;
(2)紫外光辐照芯片,同时进行检查,直到特殊位数据块中具有一定数量的读出随机性。
4、按照权利要求1至3的加密方法,其特征在于所说的特殊位数据块分散在其他工作程序中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 92108303 CN1024087C (zh) | 1992-01-08 | 1992-01-08 | 光擦除只读存贮器的加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 92108303 CN1024087C (zh) | 1992-01-08 | 1992-01-08 | 光擦除只读存贮器的加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1063372A CN1063372A (zh) | 1992-08-05 |
CN1024087C true CN1024087C (zh) | 1994-03-23 |
Family
ID=4943416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 92108303 Expired - Fee Related CN1024087C (zh) | 1992-01-08 | 1992-01-08 | 光擦除只读存贮器的加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1024087C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3649537B2 (ja) * | 1996-11-27 | 2005-05-18 | 日本アイ・ビー・エム株式会社 | データハイディング方法及びデータ抽出方法 |
CN1085359C (zh) * | 1996-12-11 | 2002-05-22 | 中国科学院长春光学精密机械研究所 | 一种应用程序的加密方法及装置 |
CN106326780B (zh) * | 2016-08-18 | 2019-05-17 | 佛山中科芯蔚科技有限公司 | 一种物理芯片指纹生成方法及系统 |
-
1992
- 1992-01-08 CN CN 92108303 patent/CN1024087C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1063372A (zh) | 1992-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6988175B2 (en) | Flash memory management method that is resistant to data corruption by power loss | |
DE602004003275T2 (de) | Nichtflüchtiger Speicher mit Seiten-Kopierfunktion und entsprechendes Verfahren | |
EP0910826B1 (en) | Block erasable memory system defect handling | |
KR0128218B1 (ko) | 일괄 소거형 비휘발성 메모리 | |
US6388919B2 (en) | Memory controller for flash memory system and method for writing data to flash memory device | |
US7872922B2 (en) | Memory system and method of writing into nonvolatile semiconductor memory | |
US6112314A (en) | Apparatus and method for detecting over-programming condition in multistate memory device | |
US7089350B2 (en) | Methods of sanitizing a flash-based data storage device | |
EP1365326A1 (en) | Method of controlling flash memory | |
JP4596715B2 (ja) | 別個のメモリ領域におけるデータの組の種々のバージョンを記憶する配列及びメモリ内のデータの組を更新する方法 | |
CN1223947C (zh) | 安全存储系统及提供安全存储元件的方法 | |
CN107918588A (zh) | 数据储存装置及其数据写入方法 | |
US20090235017A1 (en) | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | |
EP0851358A2 (en) | Processing system security | |
CN101031895A (zh) | 快擦写存储装置中内编程期间的同时外读取操作 | |
CN101599305A (zh) | 具有数据修复功能的储存系统及其数据修复方法 | |
US20080002469A1 (en) | Non-volatile memory | |
CN110335635A (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
CN110111832A (zh) | 半导体存储器装置及其操作方法 | |
CN1024087C (zh) | 光擦除只读存贮器的加密方法 | |
Feng et al. | Mapping granularity adaptive ftl based on flash page re-programming | |
CN1532713A (zh) | 非易失性存储器的存取控制系统 | |
Feng et al. | Multiple subpage writing FTL in MLC by exploiting dual mode operations | |
CN114625323A (zh) | 一种安全nand闪存设备 | |
US20200319805A1 (en) | Method for Writing Non-Volatile Memory of System-on-Chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |