CN101901629B - 非易失性存储器保护***和保护方法 - Google Patents

非易失性存储器保护***和保护方法 Download PDF

Info

Publication number
CN101901629B
CN101901629B CN 200910098918 CN200910098918A CN101901629B CN 101901629 B CN101901629 B CN 101901629B CN 200910098918 CN200910098918 CN 200910098918 CN 200910098918 A CN200910098918 A CN 200910098918A CN 101901629 B CN101901629 B CN 101901629B
Authority
CN
China
Prior art keywords
address
data
control module
memory
programming
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.)
Active
Application number
CN 200910098918
Other languages
English (en)
Other versions
CN101901629A (zh
Inventor
徐国柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Silan Microelectronics Co Ltd
Original Assignee
Hangzhou Silan Microelectronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Silan Microelectronics Co Ltd filed Critical Hangzhou Silan Microelectronics Co Ltd
Priority to CN 200910098918 priority Critical patent/CN101901629B/zh
Publication of CN101901629A publication Critical patent/CN101901629A/zh
Application granted granted Critical
Publication of CN101901629B publication Critical patent/CN101901629B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供的非易失性存储器保护***和保护方法,通过控制单元从存储器中调出保护码,限制未授权用户对保护区数据/程序编程或校验,同时输入存储器的数据为加密数据,实现不同存储器具有不同的密钥,加密方法也不局限于一种,对于不同的地址也可以提供不同的密钥保护,如果需要对密钥进行修改,不需要更换硬件,只需要通过编程进行;本发明通过地址加密密钥对存储器地址加密,使未授权用户访问存储器地址存储器的数据为扰乱数据;通过数据/程序解密密钥对存储器数据/程序解密,防止未授权用户非法获得数据及后解析。

Description

非易失性存储器保护***和保护方法
技术领域
本发明涉及非易失性存储器的数据/程序编程、数据/程序校验、地址加密、数据/程序解密的保护***和保护方法。
背景技术
传统的非易失性存储器加密方式主要有以下三类:(1)通过编译器对存储器的数据进行软件加密,该方法实现的存储器加密容易通过信号和通讯协议的解析进行破解;(2)通过在存储器中设置硬件加密模块,加密模块采用固定的特定加密算法实现,该方法实现的存储器加密不够灵活,对于不同的存储器代码使用相同的加密方式;(3)通过掩模的方式将密钥固化在一个ROM存储器内部,该方法实现的存储器加密如果需要修改,必须在芯片级进行修正,相对第二种方式,改方法修改加密密钥的代价要小很多,可做到只修改掩模,从而改变密钥,但硬件修改对于批量产品而言,不能做到每一个产品使用不同密钥,同时密钥修改需要一定得时间和成本。
发明内容
本发明旨在解决现有技术的不足,提出了对存储器数据/程序编程、存储器数据/程序校验、存储器地址加密以及存储器数据/程序解密进行分级、多重保护,便于批量实现的非易失性存储器保护***。
本发明还提出了非易失性存储器的保护方法。
同时本发明还提出了用于存储器保护***和保护方法的控制单元。
一种非易失性存储器保护***为存储器编程/校验装置,其包括:编程/校验单元、控制单元和存储器:
所述的控制单元包括存储器控制模块、密钥/保护码寄存器组、存储器地址选择模块以及保护模块,其中:
存储器控制模块通过控制单元的控制输入端口一和第一输入控制信号线(W15c)连接编程/校验单元,接收编程/校验单元发出的存储器编程或者存储器校验指令;
存储器控制模块通过控制单元的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元,接收编程/校验单元发出的存储器寻址地址;
存储器地址选择模块通过控制单元的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元,接收编程/校验单元发出的存储器寻址地址;
保护模块通过控制单元的数据输入端口一和第一输入数据线(w13d)连接编程/校验单元,接收编程/校验单元输出的编程数据/程序;
保护模块通过控制单元的数据输出端口一和第一输出数据线(w37d)连接存储器,根据密钥/保护寄存器提供的对应编程地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向存储器输出编程数据/程序;(2)当保护码禁止访问时,向存储器输出经保护码保护后变更的,且不改变存储器内容的数据/程序;(3)当保护码禁止访问时,不向存储器输出编程数据/程序;
保护模块通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的校验地址,接收存储器提供校验数据/程序;
密钥/保护码寄存器组通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的保护码地址,接收存储器提供的对应地址的保护码,或者在进行编程/校验之前从存储器获得对应地址的保护码,保护码再通过保护码数据线(w43d)传递给保护模块;
保护模块通过控制单元的数据输出端口二和第二输出数据线(w31d)连接编程/校验单元,根据密钥/保护寄存器提供的对应校验地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向编程/校验单元输出校验数据/程序;(2)当保护码禁止访问时,向编程/校验单元输出经保护码保护后变更的数据;(3)当保护码禁止访问时,不向编程/校验单元输出校验数据/程序;
存储器控制模块通过控制单元的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行编程或校验;进一步当编程或者校验的地址是存储器保护区的地址时,存储器控制模块还可以禁止第一输入控制信号线(W15c)作用;
存储器地址选择模块通过控制单元的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口向存储器选择输出保护码地址或编程地址/校验寻址地址;
存储器控制模块通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块,控制地址选择模块选择输出保护码地址、编程地址或者校验地址;
存储器控制模块通过寄存器控制线(w54c)连接密钥/保护码寄存器组,控制密钥/保护码寄存器组更新保护码命令;
密钥/保护码寄存器组通过寄存器数据线(w45d)连接存储器控制模块,将更新后的保护码提供给存储器控制模块。
一种非易失性存储器保护***为存储器加密/解密装置,其包括:CPU、加密/解密单元、控制单元和存储器:
所述的加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器待加密地址或存储器待解密数据/程序的地址;加密/解密单元通过CPU数据线(w02d)将解密后的存储器数据/程序提供给CPU;
所述的控制单元包括存储器控制模块、密钥/保护码寄存器组以及存储器地址选择模块,其中:
存储器控制模块通过控制单元的控制输入端口二和第二输入控制信号线(W25c)连接加密/解密单元,接收加密/解密单元发出的存储器地址加密或者存储器数据解密指令;
存储器控制模块通过控制单元的地址输入端口二和第二输入地址线(W25a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
存储器地址选择模块通过控制单元的地址输入端口三和第三输入地址线(W26a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
密钥/保护码寄存器组通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的密钥地址,接收存储器提供的存储器地址加密密钥或者存储器数据/程序解密密钥;
密钥/保护码寄存器组通过控制单元的数据输出端口三和第三输出数据线(w42d)连接加密/解密单元,向加密/解密单元提供数据/程序解密密钥或地址加密密钥;
存储器控制模块通过控制单元的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行存储器地址加密或存储器数据/程序解密;
存储器地址选择模块通过控制单元的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口根据存储器控制模块向其发出的控制信号和地址信号,向存储器输出加密地址或者解密数据/程序地址;
存储器控制模块通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块,控制地址选择模块选择输出加密地址或者解密数据/程序地址;
存储器控制模块通过寄存器控制线(w54c)连接密钥/保护码寄存器组,控制密钥/保护码寄存器组更新密钥命令;
密钥/保护码寄存器组通过寄存器数据线(w45d)连接存储器控制模块,将更新后的密钥提供给存储器控制模块;
存储器通过第二输入数据线(w07d)连接加密/解密单元,向加密/解密单元提供需要解密数据/程序。
进一步,加密/解密单元从密钥/保护码寄存器组取得保护码,通过CPU控制信号线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问。
一种非易失性存储器保护***包括:编程/校验单元、CPU、加密/解密单元、控制单元和存储器:
存储器控制模块通过控制单元的控制输入端口一和第一输入控制信号线(W15c)连接编程/校验单元,接收编程/校验单元发出的存储器编程或者存储器校验指令;
存储器控制模块通过控制单元的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元,接收编程/校验单元发出的存储器寻址地址;
存储器地址选择模块通过控制单元的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元,接收编程/校验单元发出的存储器寻址地址;
保护模块通过控制单元的数据输入端口一和第一输入数据线(w13d)连接编程/校验单元,接收编程/校验单元输出的编程数据/程序;
保护模块通过控制单元的数据输出端口一和第一输出数据线(w37d)连接存储器,根据密钥/保护寄存器提供的对应编程地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向存储器输出编程数据/程序;(2)当保护码禁止访问时,向存储器输出经保护码保护后变更的,且不改变存储器内容的数据/程序;(3)当保护码禁止访问时,不向存储器输出编程数据/程序;
保护模块通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的校验地址,接收存储器提供校验数据/程序;
密钥/保护码寄存器组通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的保护码、密钥地址,接收存储器提供对应的保护码、密钥,或者在进行编程、校验、解密、加密之前从存储器获得编程数据/程序或者校验数据/程序对应的保护码、地址加密密钥、存储器数据解密密钥,保护码再通过保护码数据线(w43d)传递给保护模块;
保护模块通过控制单元的数据输出端口二和第二输出数据线(w31d)连接编程/校验单元,根据密钥/保护寄存器提供的对应校验地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向编程/校验单元输出校验数据/程序;(2)当保护码禁止访问时,向编程/校验单元输出经保护码保护后变更的数据;(3)当保护码禁止访问时,不向编程/校验单元输出校验数据/程序;
存储器控制模块通过控制单元的控制输入端口二和第二输入控制信号线(W25c)连接加密/解密单元,接收加密/解密单元发出的存储器地址加密或者存储器数据解密指令;
存储器控制模块通过控制单元的地址输入端口二和第二输入地址线(W25a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
存储器地址选择模块通过控制单元的地址输入端口三和第三输入地址线(W26a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
密钥/保护码寄存器组通过控制单元的数据输出端口三和第三输出数据线(w42d)连接加密/解密单元,向加密/解密单元提供数据/程序解密密钥或地址加密密钥;
存储器控制模块通过控制单元的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行编程、校验、地址加密或存储器数据/程序解密,进一步当编程或者校验的地址是存储器保护区的地址时,存储器控制模块还可以禁止第一输入控制信号线(W15c)作用;
存储器地址选择模块通过控制单元的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口根据存储器控制模块向其发出的控制信号和地址信号,在编程/校验状态下向存储器输出保护码地址或编程/校验寻址地址,在存储器地址加密/数据解密状态下向存储器输出加密地址或者解密数据/程序地址;
存储器控制模块通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块,在编程/校验状态下控制地址选择模块选择输出保护码地址、编程地址或者校验地址,在存储器地址加密或数据/程序解密状态下控制地址选择模块选择输出加密地址或者解密数据/程序地址;
存储器控制模块通过寄存器控制线(w54c)连接密钥/保护码寄存器组,控制密钥/保护码寄存器组更新保护码命令;
密钥/保护码寄存器组通过寄存器数据线(w45d)连接存储器控制模块,将更新后的保护码提供给存储器控制模块;
存储器通过第二输入数据线(w07d)连接加密/解密单元,向加密/解密单元提供需要解密数据/程序。
进一步,加密/解密单元从密钥/保护码寄存器组取得保护码,通过CPU控制信号线(W02c)和地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问。
一种非易失性存储器保护方法为存储器数据/程序编程方法,其包括如下步骤:
(1)编程/校验单元通过第一输入控制信号线(W15c)连接控制单元的存储器控制模块,向控制单元发出编程指令;编程/校验单元通过第一输入地址线(W16a)连接控制单元的存储器地址选择模块和存储器控制模块,输出编程数据/程序对应的寻址地址;编程/校验单元的编程数据/程序输出端通过第一输入数据线(w13d)连接控制单元的保护模块,输出编程数据/程序;
(2)控制单元的存储器控制模块接收到编程指令后,存储器控制模块通过选择地址线(w56a)向存储器地址选择模块输出保护码存储地址,存储器控制模块通过选择控制线(w56c)控制存储器地址选择模块向第一输出地址线(w67a)输出寻址地址对应的保护码存储地址,同时存储器控制模块通过控制线(w57c)控制存储器通过第二输入数据线(w07d)向密钥/保护码寄存器组提供对应地址的保护码,密钥/保护码寄存器组在寄存器控制线(w54c)的控制下更新保护码,更新后的保护码通过寄存器数据线(w45d)提供给存储器控制模块,并通过数据线(w43d)提供保护模块;
(3)存储器控制模块根据接收到的保护码判断编程/校验单元发出的寻址地址是否为存储器保护区的地址:如果寻址地址不是保护区地址,存储器控制模块通过选择控制线(w56c)通知存储器地址选择模块选择第一输入地址线(W16a)发出的编程地址,存储器地址选择模块通过第一输出地址线(w67a)将编程地址提供给存储器,保护模块将编程数据/程序通过第一输出数据线(w37d)提供给存储器,存储器在控制线(w57c)的控制下,将编程数据/程序存储在对应的存储器地址中;如果寻址地址是存储器保护区的地址,存储器控制模块屏蔽编程/校验单元第一输入控制信号线(W15c)发出的编程控制信号,或者密钥/保护码寄存器组输出保护码干扰保护模块输出的编程数据/程序,而不改变存储器的内容。
进一步,编程/校验单元提供的编程数据/程序为加密数据/程序。
一种非易失性存储器保护方法为存储器数据校验方法,其包括如下步骤:
(1)编程/校验单元通过第一输入控制信号线(W15c)连接控制单元的存储器控制模块,向控制单元发出校验指令;编程/校验单元通过第一输入地址线(W16a)连接控制单元的存储器地址选择模块和存储器控制模块,输出校验数据/程序对应的寻址地址;
(2)控制单元的存储器控制模块接收到校验指令后,存储器控制模块通过选择地址线(w56a)向存储器地址选择模块输出保护码存储地址,存储器控制模块通过选择控制线(w56c)控制存储器地址选择模块向第一输出地址线(w67a)输出寻址地址对应的保护码存储地址,同时存储器控制模块通过控制线(w57c)控制存储器通过第二输入数据线(w07d)向密钥/保护码寄存器组提供对应地址的保护码,密钥/保护码寄存器组在寄存器控制线(w54c)的控制下更新保护码,更新后的保护码通过寄存器数据线(w45d)提供给存储器控制模块,并通过数据线(w43d)提供给保护模块;
(3)存储器控制模块根据接收到的保护码判断编程/校验单元发出的寻址地址是否为存储器保护区的地址:如寻址地址不是保护区的地址,存储器控制模块通过选择控制线(w56c)通知存储器地址选择模块选择第一输入地址线(W16a)发出的校验地址,存储器地址选择模块通过第一输出地址线(w67a)将校验地址提供给存储器,存储器在控制线(w57c)的控制下将寻址地址对应的校验数据/程序通过数据线(w07d)提供给保护模块,保护模块通过第二输出数据线(w31d)提供给编程/校验单元进行校验;如果寻址地址是存储器保护区的地址,存储器控制模块屏蔽编程/校验单元通过第一输入控制信号线(W15c)发出的校验控制信号,或者密钥/保护码寄存器组输出保护码干扰保护模块输出的校验数据/程序。
存储器数据校验方法可以单独进行,也可以在存储器编程数据/程序之后进行。
一种存储器保护方法为存储器地址加密方法,其包括如下步骤:
(1)加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器待加密地址;
(2)加密/解密单元从控制单元的密钥/保护码寄存器组中获得对应地址的加密密钥,利用地址加密密钥对CPU发出的存储器待加密地址进行加密,加密/解密单元将加密后的地址通过第二输入地址信号线(w25a)输出给存储器控制模块,通过第三输入地址线(w26a)输出给存储器地址选择模块;加密/解密单元通过第二输入控制信号线(W25c)连接控制单元的存储控制模块,向存储器控制模块发出指令;
(3)若存储器控制模块接收到的加密后的地址为存储器保护区的地址,则存储器控制模块中断第二输出地址信号线(w25a)发出的加密地址,若存储器控制模块接收到的加密后地址为存储器非保护区的地址,存储器控制模块通过选择控制线(w56c)通知存储器地址选择模块选择加密/解密单元通过第三输入地址线(W26a)提供的加密后地址,存储器地址选择模块将加密地址通过第一输出地址线(w67a)提供给存储器;
进一步,步骤(1)还包括加密/解密单元从密钥/保护码寄存器组取得保护码,通过CPU控制信号线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问,如果是授权的用户操作程序,则继续步骤(2)。
一种非易失性存储器保护方法为存储器数据/程序解密方法,其包括如下步骤:
(1)加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的读取存储器数据指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器中需解密数据/程序对应的寻址地址;
(2)加密/解密单元通过第二输入控制信号线(W25c)连接控制单元的存储器控制模块,向控制单元发出读取存储器数据/程序指令;加密/解密单元通过第二输入地址线(W25a)连接控制单元的存储器控制模块,通过第三输入地址线(w26a)连接存储器地址选择模块,输出需解密数据/程序对应的寻址地址;
(3)存储器控制模块通过选择控制线(w56c)控制存储器地址选择模块选择加密/解密单元通过第三输入地址线(W26a)输出的寻址地址,存储器地址选择模块通过第一输出地址线(w67a)将寻址地址提供给存储器,存储器在第一输出控制信号线(w57c)的控制下,通过第二输入数据线(w07d)向加密/解密单元提供寻址地址对应的存储数据;
(4)加密/解密单元将第三输出数据线(w42d)输出的数据/程序解密密钥和接收到的存储器数据按照预先设定的方式解密,解密后的数据/程序提供给CPU。
进一步,步骤(1)还包括加密/解密单元从密钥/保护码寄存器组组取得保护码,通过CPU控制线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问,如果是授权的用户操作程序,则继续步骤(2)。
本发明所述的密钥和保护码的更新,除本发明上述所述的更新外,还可以在下列任意情况下更新:
(1)***复位或者读序列重新开始时,读出存储器保护区的保护码或密钥,将保护区的各个保护码或密钥调入到控制单元对应的密钥/保护码寄存器组;
(2)进行存储器数据/程序校验、存储器地址加密、存储器数据/程序解密前读出存储器保护区的保护码或密钥,将保护区的各个保护码或密钥调入到控制单元对应的密钥/保护码寄存器组,该种情况下的更新要求操作过程可以容忍密钥和保护码的获取时间;
(3)利用空闲时间,该空闲是比较长的一段时间,如***处于休眠或者待机的模式等不占用存储器的场合,读出存储器保护区的保护码或密钥,将保护区的各个保护码或密钥调入到控制单元对应的密钥/保护码寄存器组。
本发明所述的编程/校验单元连接外部控制,所述的外部控制为PC、CPU、FPGA、CPLD中的任意一种。
本发明的有益效果是:通过存储器数据/程序编程、存储器数据/程序校验、存储器地址加密以及存储器数据/程序解密实行了分级保护,其中:
本发明提供的存储器数据/程序编程装置及其编程方法,通过控制单元的控制从存储器中调出保护码,限制未授权用户对存储器的保护区地址中的数据/程序编程;输入存储器的数据为加密数据,加密的过程通过上位机进行,并将密钥一同编程到存储器,可以实现不同的存储器具有不同的密钥,加密方法也不局限于一种,对于不同的地址也可以提供不同的密钥保护,如果需要对密钥进行修改,不需要更换硬件,只需要通过编程进行。
本发明提供的存储器数据/程序校验装置及其校验方法,通过控制单元的控制从存储器中调出保护码,有效地限制未授权用户对存储器的保护区地址中的数据/程序校验。
本发明提供的存储器地址加密装置及其加密方法,通过地址加密密钥对存储器地址的加密,使得未授权用户访问存储器地址存储器的数据为扰乱数据。
本发明提供的存储器数据/程序解密装置及其解密方法,通过数据/程序解密密钥对存储器数据/程序的解密,防止未授权用户非法获得的数据后解析。
利用发明提供的非易失性存储器的存储控制单元可以同时实现上述的各种保护,其控制简单、节省成本。
附图说明
图1为本发明提出的一种非易失性存储器保护***,其实现存储器编程/校验;
图2为本发明提出的一种非易失性存储器保护***,其实现存储器加密/解密;
图3为本发明提出的一种非易失性存储器保护***,其实现存储器编程/校验以及存储器加密/解密;
图4为本发明提出的一种非易失性存储器保护***的密钥/寄存器保护码寄存器组
具体实施方式
以下结合附图对本发明内容进一步说明。
一种非易失性存储器保护***为存储器编程/校验装置如图1所示,其包括:编程/校验单元(01)、控制单元(02)和存储器(07):
所述的控制单元(02)包括存储器控制模块(05)、密钥/保护码寄存器组(04)、存储器地址选择模块(06)以及保护模块(03),其中:
存储器控制模块(05)通过控制单元(02)的控制输入端口一和第一输入控制信号线(W15c)连接编程/校验单元(01),接收编程/校验单元(01)发出的存储器编程或者存储器校验指令;
存储器控制模块(05)通过控制单元(02)的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元(01),接收编程/校验单元(01)发出的存储器寻址地址;
存储器地址选择模块(06)通过控制单元(02)的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元(01),接收编程/校验单元(01)发出的存储器寻址地址;
保护模块(03)通过控制单元(02)的数据输入端口一和第一输入数据线(w13d)连接编程/校验单元(01),接收编程/校验单元(01)输出的编程数据/程序;
保护模块(03)通过控制单元(02)的数据输出端口一和第一输出数据线(w37d)连接存储器,根据密钥/保护寄存器提供的对应编程地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向存储器输出编程数据/程序;(2)当保护码禁止访问时,向存储器输出经保护码保护后变更的,且不改变存储器内容的数据/程序;(3)当保护码禁止访问时,不向存储器输出编程数据/程序;
保护模块(03)通过控制单元(02)的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块(06)输出的校验地址,接收存储器提供校验数据/程序;
密钥/保护码寄存器组(04)通过控制单元(02)的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块(06)输出的保护码地址,接收存储器提供的对应地址的保护码,或者在进行编程/校验之前从存储器获得对应地址的保护码,保护码再通过保护码数据线(w43d)传递给保护模块(03)。
保护模块(03)通过控制单元(02)的数据输出端口二和第二输出数据线(w31d)连接编程/校验单元(01),根据密钥/保护寄存器提供的对应校验地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向编程/校验单元(01)输出校验数据/程序;(2)当保护码禁止访问时,向编程/校验单元(01)输出经保护码保护后变更的数据;(3)当保护码禁止访问时,不向编程/校验单元(01)输出校验数据/程序;
存储器控制模块(05)通过控制单元(02)的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行编程或校验;进一步当编程或者校验的地址是存储器保护区的地址时,存储器控制模块(05)还可以禁止第一输入控制信号线(W15c)作用;
存储器地址选择模块(06)通过控制单元(02)的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口向存储器选择输出保护码地址或编程地址/校验寻址地址;
存储器控制模块(05)通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块(06),控制地址选择模块选择输出保护码地址、编程地址或者校验地址。
存储器控制模块(05)通过寄存器控制线(w54c)连接密钥/保护码寄存器组(04),控制密钥/保护码寄存器组(04)更新保护码命令;
密钥/保护码寄存器组(04)通过寄存器数据线(w45d)连接存储器控制模块(05),将更新后的保护码提供给存储器控制模块(05)。
一种非易失性存储器保护***为存储器加密/解密装置,其包括:CPU、加密/解密单元、控制单元(02)和存储器:
所述的加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器待加密地址或存储器待解密数据/程序的地址;加密/解密单元通过CPU数据线(w02d)将解密后的存储器数据/程序提供给CPU;
所述的控制单元(02)包括存储器控制模块(05)、密钥/保护码寄存器组(04)以及存储器地址选择模块(06),其中:
存储器控制模块(05)通过控制单元(02)的控制输入端口二和第二输入控制信号线(W25c)连接加密/解密单元,接收加密/解密单元发出的存储器地址加密或者存储器数据解密指令;
存储器控制模块(05)通过控制单元(02)的地址输入端口二和第二输入地址线(W25a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
存储器地址选择模块(06)通过控制单元(02)的地址输入端口三和第三输入地址线(W26a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
密钥/保护码寄存器组(04)通过控制单元(02)的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块(06)输出的密钥地址,接收存储器提供的存储器地址加密密钥或者存储器数据/程序解密密钥。
密钥/保护码寄存器组(04)通过控制单元(02)的数据输出端口三和第三输出数据线(w42d)连接加密/解密单元,向加密/解密单元提供数据/程序解密密钥或地址加密密钥;
存储器控制模块(05)通过控制单元(02)的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行存储器地址加密或存储器数据/程序解密;
存储器地址选择模块(06)通过控制单元(02)的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口根据存储器控制模块(05)向其发出的控制信号和地址信号,向存储器输出加密地址或者解密数据/程序地址;
存储器控制模块(05)通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块(06),控制地址选择模块选择输出加密地址或者解密数据/程序地址。
存储器控制模块(05)通过寄存器控制线(w54c)连接密钥/保护码寄存器组(04),控制密钥/保护码寄存器组(04)更新密钥命令;
密钥/保护码寄存器组(04)通过寄存器数据线(w45d)连接存储器控制模块(05),将更新后的密钥提供给存储器控制模块(05)。
存储器通过第二输入数据线(w07d)连接加密/解密单元,向加密/解密单元提供需要解密数据/程序。
进一步,加密/解密单元从密钥/保护码寄存器组(04)取得保护码,通过CPU控制信号线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问。
一种非易失性存储器保护***包括:编程/校验单元(01)、CPU、加密/解密单元、控制单元(02)和存储器:
存储器控制模块(05)通过控制单元(02)的控制输入端口一和第一输入控制信号线(W15c)连接编程/校验单元(01),接收编程/校验单元(01)发出的存储器编程或者存储器校验指令;
存储器控制模块(05)通过控制单元(02)的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元(01),接收编程/校验单元(01)发出的存储器寻址地址;
存储器地址选择模块(06)通过控制单元(02)的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元(01),接收编程/校验单元(01)发出的存储器寻址地址;
保护模块(03)通过控制单元(02)的数据输入端口一和第一输入数据线(w13d)连接编程/校验单元(01),接收编程/校验单元(01)输出的编程数据/程序;
保护模块(03)通过控制单元(02)的数据输出端口一和第一输出数据线(w37d)连接存储器,根据密钥/保护寄存器提供的对应编程地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向存储器输出编程数据/程序;(2)当保护码禁止访问时,向存储器输出经保护码保护后变更的,且不改变存储器内容的数据/程序;(3)当保护码禁止访问时,不向存储器输出编程数据/程序;
保护模块(03)通过控制单元(02)的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块(06)输出的校验地址,接收存储器提供校验数据/程序;
密钥/保护码寄存器组(04)通过控制单元(02)的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块(06)输出的保护码、密钥地址,接收存储器提供对应的保护码、密钥,或者在进行编程、校验、解密、加密之前从存储器获得编程数据/程序或者校验数据/程序对应的保护码、地址加密密钥、存储器数据解密密钥,保护码再通过保护码数据线(w43d)传递给保护模块(03)。
保护模块(03)通过控制单元(02)的数据输出端口二和第二输出数据线(w31d)连接编程/校验单元(01),根据密钥/保护寄存器提供的对应校验地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向编程/校验单元(01)输出校验数据/程序;(2)当保护码禁止访问时,向编程/校验单元(01)输出经保护码保护后变更的数据;(3)当保护码禁止访问时,不向编程/校验单元(01)输出校验数据/程序;
存储器控制模块(05)通过控制单元(02)的控制输入端口二和第二输入控制信号线(W25c)连接加密/解密单元,接收加密/解密单元发出的存储器地址加密或者存储器数据解密指令;
存储器控制模块(05)通过控制单元(02)的地址输入端口二和第二输入地址线(W25a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
存储器地址选择模块(06)通过控制单元(02)的地址输入端口三和第三输入地址线(W26a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
密钥/保护码寄存器组(04)通过控制单元(02)的数据输出端口三和第三输出数据线(w42d)连接加密/解密单元,向加密/解密单元提供数据/程序解密密钥或地址加密密钥;
存储器控制模块(05)通过控制单元(02)的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行编程、校验、地址加密或存储器数据/程序解密,进一步当编程或者校验的地址是存储器保护区的地址时,存储器控制模块(05)还可以禁止第一输入控制信号线(W15c)作用;
存储器地址选择模块(06)通过控制单元(02)的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口根据存储器控制模块(05)向其发出的控制信号和地址信号,在编程/校验状态下向存储器输出保护码地址或编程/校验寻址地址,在存储器地址加密/数据解密状态下向存储器输出加密地址或者解密数据/程序地址;
存储器控制模块(05)通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块(06),在编程/校验状态下控制地址选择模块选择输出保护码地址、编程地址或者校验地址,,在存储器地址加密或数据/程序解密状态下控制地址选择模块选择输出加密地址或者解密数据/程序地址。
存储器控制模块(05)通过寄存器控制线(w54c)连接密钥/保护码寄存器组(04),控制密钥/保护码寄存器组(04)更新保护码命令;
密钥/保护码寄存器组(04)通过寄存器数据线(w45d)连接存储器控制模块(05),将更新后的保护码提供给存储器控制模块(05)。
存储器通过第二输入数据线(w07d)连接加密/解密单元,向加密/解密单元提供需要解密数据/程序。
进一步,加密/解密单元从密钥/保护码寄存器组(04)取得保护码,通过CPU控制信号线(W02c)和地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问。
一种非易失性存储器保护方法为存储器数据/程序编程方法,其包括如下步骤:
(4)编程/校验单元(01)通过第一输入控制信号线(W15c)连接控制单元(02)的存储器控制模块(05),向控制单元(02)发出编程指令;编程/校验单元(01)通过第一输入地址线(W16a)连接控制单元(02)的存储器地址选择模块(06)和存储器控制模块(05),输出编程数据/程序对应的寻址地址;编程/校验单元(01)的编程数据/程序输出端通过第一输入数据线(w13d)连接控制单元(02)的保护模块(03),输出编程数据/程序;
(5)控制单元(02)的存储器控制模块(05)接收到编程指令后,存储器控制模块(05)通过选择地址线(w56a)向存储器地址选择模块(06)输出保护码存储地址,存储器控制模块(05)通过选择控制线(w56c)控制存储器地址选择模块(06)向第一输出地址线(w67a)输出寻址地址对应的保护码存储地址,同时存储器控制模块(05)通过控制线(w57c)控制存储器通过第二输入数据线(w07d)向密钥/保护码寄存器组(04)提供对应地址的保护码,密钥/保护码寄存器组(04)在寄存器控制线(w54c)的控制下更新保护码,更新后的保护码通过寄存器数据线(w45d)提供给存储器控制模块(05),并通过数据线(w43d)提供保护模块(03);
(6)存储器控制模块(05)根据接收到的保护码判断编程/校验单元(01)发出的寻址地址是否为存储器保护区的地址:如果寻址地址不是保护区地址,存储器控制模块(05)通过选择控制线(w56c)通知存储器地址选择模块(06)选择第一输入地址线(W16a)发出的编程地址,存储器地址选择模块(06)通过第一输出地址线(w67a)将编程地址提供给存储器,保护模块(03)将编程数据/程序通过第一输出数据线(w37d)提供给存储器,存储器在控制线(w57c)的控制下,将编程数据/程序存储在对应的存储器地址中;如果寻址地址是存储器保护区的地址,存储器控制模块(05)屏蔽编程/校验单元(01)第一输入控制信号线(W15c)发出的编程控制信号,或者密钥/保护码寄存器组(04)输出保护码干扰保护模块(03)输出的编程数据/程序,而不改变存储器的内容。
进一步,编程/校验单元(01)提供的编程数据/程序为加密数据/程序。
一种非易失性存储器保护方法为存储器数据校验方法,其包括如下步骤:
(4)编程/校验单元(01)通过第一输入控制信号线(W15c)连接控制单元(02)的存储器控制模块(05),向控制单元(02)发出校验指令;编程/校验单元(01)通过第一输入地址线(W16a)连接控制单元(02)的存储器地址选择模块(06)和存储器控制模块(05),输出校验数据/程序对应的寻址地址;
(5)控制单元(02)的存储器控制模块(05)接收到校验指令后,存储器控制模块(05)通过选择地址线(w56a)向存储器地址选择模块(06)输出保护码存储地址,存储器控制模块(05)通过选择控制线(w56c)控制存储器地址选择模块(06)向第一输出地址线(w67a)输出寻址地址对应的保护码存储地址,同时存储器控制模块(05)通过控制线(w57c)控制存储器通过第二输入数据线(w07d)向密钥/保护码寄存器组(04)提供对应地址的保护码,密钥/保护码寄存器组(04)在寄存器控制线(w54c)的控制下更新保护码,更新后的保护码通过寄存器数据线(w45d)提供给存储器控制模块(05),并通过数据线(w43d)提供给保护模块(03);
(6)存储器控制模块(05)根据接收到的保护码判断编程/校验单元(01)发出的寻址地址是否为存储器保护区的地址:如寻址地址不是保护区的地址,存储器控制模块(05)通过选择控制线(w56c)通知存储器地址选择模块(06)选择第一输入地址线(W16a)发出的校验地址,存储器地址选择模块(06)通过第一输出地址线(w67a)将校验地址提供给存储器,存储器在控制线(w57c)的控制下将寻址地址对应的校验数据/程序通过数据线(w07d)提供给保护模块(03),保护模块(03)通过第二输出数据线(w31d)提供给编程/校验单元(01)进行校验;如果寻址地址是存储器保护区的地址,存储器控制模块(05)屏蔽编程/校验单元(01)通过第一输入控制信号线(W15c)发出的校验控制信号,或者密钥/保护码寄存器组(04)输出保护码干扰保护模块(03)输出的校验数据/程序。
存储器数据校验方法可以单独进行,也可以在存储器编程数据/程序之后进行。
一种存储器保护方法为存储器地址加密方法,其包括如下步骤:
(1)加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器待加密地址;
(2)加密/解密单元从控制单元(02)的密钥/保护码寄存器组(04)中获得对应地址的加密密钥,利用地址加密密钥对CPU发出的存储器待加密地址进行加密,加密/解密单元将加密后的地址通过第二输入地址信号线(w25a)输出给存储器控制模块(05),通过第三输入地址线(w26a)输出给存储器地址选择模块(06);加密/解密单元通过第二输入控制信号线(W25c)连接控制单元(02)的存储控制模块,向存储器控制模块(05)发出指令;
(3)若存储器控制模块(05)接收到的加密后的地址为存储器保护区的地址,则存储器控制模块(05)中断第二输出地址信号线(w25a)发出的加密地址,若存储器控制模块(05)接收到的加密后地址为存储器非保护区的地址,存储器控制模块(05)通过选择控制线(w56c)通知存储器地址选择模块(06)选择加密/解密单元通过第三输入地址线(W26a)提供的加密后地址,存储器地址选择模块(06)将加密地址通过第一输出地址线(w67a)提供给存储器;
进一步,步骤(1)还包括加密/解密单元从密钥/保护码寄存器组(04)取得保护码,通过CPU控制信号线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问,如果是授权的用户操作程序,则继续步骤(2)。
一种非易失性存储器保护方法为存储器数据/程序解密方法,其包括如下步骤:
(1)加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的读取存储器数据指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器中需解密数据/程序对应的寻址地址;
(2)加密/解密单元通过第二输入控制信号线(W25c)连接控制单元(02)的存储器控制模块(05),向控制单元(02)发出读取存储器数据/程序指令;加密/解密单元通过第二输入地址线(W25a)连接控制单元(02)的存储器控制模块(05),通过第三输入地址线(w26a)连接存储器地址选择模块(06),输出需解密数据/程序对应的寻址地址;(3)存储器控制模块(05)通过选择控制线(w56c)控制存储器地址选择模块(06)选择加密/解密单元通过第三输入地址线(W26a)输出的寻址地址,存储器地址选择模块(06)通过第一输出地址线(w67a)将寻址地址提供给存储器,存储器在第一输出控制信号线(w57c)的控制下,通过第二输入数据线(w07d)向加密/解密单元提供寻址地址对应的存储数据;
(4)加密/解密单元将第三输出数据线(w42d)输出的数据/程序解密密钥和接收到的存储器数据按照预先设定的方式解密,解密后的数据/程序提供给CPU。
进一步,步骤(1)还包括加密/解密单元从密钥/保护码寄存器组(04)组取得保护码,通过CPU控制线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问,如果是授权的用户操作程序,则继续步骤(2)。
如图4所示,本发明如上所述的存储器为非易失性存储器,如一次性可编程存储器、Flash等,其分为:
——保护区,用于存储存储器数据/程序解密密钥、存储器地址加密密钥以及保护码;
——非保护区,用于存储不需要保护的数据。
所述的保护区还可以进一步保护用户自定的需要保护的数据或程序。
所述的存储器数据/程序解密密钥、存储器地址加密密钥以及保护码编程在某个预先确定地址的存储器中;
所述的存储器不同的地址存储的数据或程序对应不同的保护码和密钥,也可以部分不同地址存储的数据或程序对应的相同的保护码和密钥,当然也可以存储器的所有地址存储的数据或程序对应相同的保护码和密钥。
应该理解到的是,上述实施例只是对本发明的说明,而不是对本发明的限制,任何不超出本发明实质精神范围内的发明创造,均落入本发明保护范围之内。

Claims (18)

1.非易失性存储器保护***,其特征在于实现存储器编程/校验,其包括:编程/校验单元、控制单元和存储器:
所述的控制单元包括存储器控制模块、密钥/保护码寄存器组、存储器地址选择模块以及保护模块,其中:
存储器控制模块通过控制单元的控制输入端口一和第一输入控制信号线(W15c)连接编程/校验单元,接收编程/校验单元发出的存储器编程或者存储器校验指令;
存储器控制模块通过控制单元的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元,接收编程/校验单元发出的存储器寻址地址;
存储器地址选择模块通过控制单元的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元,接收编程/校验单元发出的存储器寻址地址;
保护模块通过控制单元的数据输入端口一和第一输入数据线(w13d)连接编程/校验单元,接收编程/校验单元输出的编程数据/程序;
保护模块通过控制单元的数据输出端口一和第一输出数据线(w37d)连接存储器,根据密钥/保护寄存器提供的对应编程地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向存储器输出编程数据/程序;(2)当保护码禁止访问时,向存储器输出经保护码保护后变更的,且不改变存储器内容的数据/程序;(3)当保护码禁止访问时,不向存储器输出编程数据/程序;
保护模块通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的校验地址,接收存储器提供校验数据/程序;
密钥/保护码寄存器组通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的保护码地址,接收存储器提供的对应地址的保护码,或者在进行编程/校验之前从存储器获得对应地址的保护码,保护码再通过保护码数据线(w43d)传递给保护模块;
保护模块通过控制单元的数据输出端口二和第二输出数据线(w31d)连接编程/校验单元,根据密钥/保护寄存器提供的对应校验地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向编程/校验单元输出校验数据/程序;(2)当保护码禁止访问时,向编程/校验单元输出经保护码保护后变更的数据;(3)当保护码禁止访问时,不向编程/校验单元输出校验数据/程序;
存储器控制模块通过控制单元的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行编程或校验;
存储器地址选择模块通过控制单元的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口向存储器选择输出保护码地址或编程地址/校验寻址地址;
存储器控制模块通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块,控制地址选择模块选择输出保护码地址、编程地址或者校验地址;
存储器控制模块通过寄存器控制线(w54c)连接密钥/保护码寄存器组,控制密钥/保护码寄存器组更新保护码命令;
密钥/保护码寄存器组通过寄存器数据线(w45d)连接存储器控制模块,将更新后的保护码提供给存储器控制模块。
2.如权利要求1所述的非易失性存储器保护***,其特征在于当编程或者校验的地址是存储器保护区的地址时,存储器控制模块禁止第一输入控制信号线(W15c)作用。
3.如权利要求1所述的非易失性存储器保护***,其特征在于所述的编程/校验单元提供的编程数据/程序为加密数据/程序。
4.非易失性存储器保护***,其特征在于用于存储器加密/解密,其包括:CPU、加密/解密单元、控制单元和存储器:
所述的加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器待加密地址或存储器待解密数据/程序的地址;加密/解密单元通过CPU数据线(w02d)将解密后的存储器数据/程序提供给CPU;
所述的控制单元包括存储器控制模块、密钥/保护码寄存器组以及存储器地址选择模块,其中:
存储器控制模块通过控制单元的控制输入端口二和第二输入控制信号线(W25c)连接加密/解密单元,接收加密/解密单元发出的存储器地址加密或者存储器数据解密指令;
存储器控制模块通过控制单元的地址输入端口二和第二输入地址线(W25a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
存储器地址选择模块通过控制单元的地址输入端口三和第三输入地址线(W26a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
密钥/保护码寄存器组通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的密钥地址,接收存储器提供的存储器地址加密密钥或者存储器数据/程序解密密钥;
密钥/保护码寄存器组通过控制单元的数据输出端口三和第三输出数据线(w42d)连接加密/解密单元,向加密/解密单元提供数据/程序解密密钥或地址加密密钥;
存储器控制模块通过控制单元的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行存储器地址加密或存储器数据/程序解密;
存储器地址选择模块通过控制单元的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口根据存储器控制模块向其发出的控制信号和地址信号,向存储器输出加密地址或者解密数据/程序地址;
存储器控制模块通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块,控制地址选择模块选择输出加密地址或者解密数据/程序地址;
存储器控制模块通过寄存器控制线(w54c)连接密钥/保护码寄存器组,控制密钥/保护码寄存器组更新密钥命令;
密钥/保护码寄存器组通过寄存器数据线(w45d)连接存储器控制模块,将更新后的密钥提供给存储器控制模块;
存储器通过第二输入数据线(w07d)连接加密/解密单元,向加密/解密单元提供需要解密数据/程序。
5.如权利要求4所述的非易失性存储器保护***,其特征在于加密/解密单元从密钥/保护码寄存器组取得保护码,通过CPU控制信号线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问。
6.非易失性存储器保护***,其特征在于包括:编程/校验单元、CPU、加密/解密单元、控制单元和存储器:
存储器控制模块通过控制单元的控制输入端口一和第一输入控制信号线(W15c)连接编程/校验单元,接收编程/校验单元发出的存储器编程或者存储器校验指令;
存储器控制模块通过控制单元的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元,接收编程/校验单元发出的存储器寻址地址;
存储器地址选择模块通过控制单元的地址输入端口一和第一输入地址线(W16a)连接编程/校验单元,接收编程/校验单元发出的存储器寻址地址;
保护模块通过控制单元的数据输入端口一和第一输入数据线(w13d)连接编程/校验单元,接收编程/校验单元输出的编程数据/程序;
保护模块通过控制单元的数据输出端口一和第一输出数据线(w37d)连接存储器,根据密钥/保护寄存器提供的对应编程地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向存储器输出编程数据/程序;(2)当保护码禁止访问时,向存储器输出经保护码保护后变更的,且不改变存储器内容的数据/程序;(3)当保护码禁止访问时,不向存储器输出编程数据/程序;
保护模块通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的校验地址,接收存储器提供校验数据/程序;
密钥/保护码寄存器组通过控制单元的数据输入端口二和第二输入数据线(w07d)连接存储器,根据存储器地址选择模块输出的保护码、密钥地址,接收存储器提供对应的保护码、密钥,或者在进行编程、校验、解密、加密之前从存储器获得编程数据/程序或者校验数据/程序对应的保护码、地址加密密钥、存储器数据解密密钥,保护码再通过保护码数据线(w43d)传递给保护模块;
保护模块通过控制单元的数据输出端口二和第二输出数据线(w31d)连接编程/校验单元,根据密钥/保护寄存器提供的对应校验地址的保护码,进行下列操作中的一种:(1)当保护码允许访问时,向编程/校验单元输出校验数据/程序;(2)当保护码禁止访问时,向编程/校验单元输出经保护码保护后变更的数据;(3)当保护码禁止访问时,不向编程/校验单元输出校验数据/程序;
存储器控制模块通过控制单元的控制输入端口二和第二输入控制信号线(W25c)连接加密/解密单元,接收加密/解密单元发出的存储器地址加密或者存储器数据解密指令;
存储器控制模块通过控制单元的地址输入端口二和第二输入地址线(W25a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
存储器地址选择模块通过控制单元的地址输入端口三和第三输入地址线(W26a)连接加密/解密单元,接收加密/解密单元发出的存储器寻址地址;
密钥/保护码寄存器组通过控制单元的数据输出端口三和第三输出数据线(w42d)连接加密/解密单元,向加密/解密单元提供数据/程序解密密钥或地址加密密钥;
存储器控制模块通过控制单元的控制输出端口一和第一输出控制信号线(w57c)连接存储器,控制存储器进行编程、校验、地址加密或存储器数据/程序解密,进一步当编程或者校验的地址是存储器保护区的地址时,存储器控制模块还可以禁止第一输入控制信号线(W15c)作用;
存储器地址选择模块通过控制单元的地址输出端口一和第一输出地址线(w67a)连接存储器,地址输出端口根据存储器控制模块向其发出的控制信号和地址信号,在编程/校验状态下向存储器输出保护码地址或编程/校验寻址地址,在存储器地址加密/数据解密状态下向存储器输出加密地址或者解密数据/程序地址;
存储器控制模块通过选择控制线(w56c)和选择地址线(w56a)连接存储器地址选择模块,在编程/校验状态下控制地址选择模块选择输出保护码地址、编程地址或者校验地址,在存储器地址加密或数据/程序解密状态下控制地址选择模块选择输出加密地址或者解密数据/程序地址;
存储器控制模块通过寄存器控制线(w54c)连接密钥/保护码寄存器组,控制密钥/保护码寄存器组更新保护码命令;
密钥/保护码寄存器组通过寄存器数据线(w45d)连接存储器控制模块,将更新后的保护码提供给存储器控制模块;
存储器通过第二输入数据线(w07d)连接加密/解密单元,向加密/解密单元提供需要解密数据/程序。
7.如权利要求6所述的非易失性存储器保护***,其特征在于当编程或者校验的地址是存储器保护区的地址时,存储器控制模块禁止第一输入控制信号线(W15c)作用。
8.如权利要求6所述的非易失性存储器保护***,其特征在于所述的编程/校验单元提供的编程数据/程序为加密数据/程序。
9.如权利要求6所述的非易失性存储器保护***,其特征在于所述的加密/解密单元从密钥/保护码寄存器组取得保护码,通过CPU控制信号线(W02c)和地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问。
10.非易失性存储器保护方法,其特征在于进行存储器数据/程序编程,其包括如下步骤:
(1)编程/校验单元通过第一输入控制信号线(W15c)连接控制单元的存储器控制模块,向控制单元发出编程指令;编程/校验单元通过第一输入地址线(W16a)连接控制单元的存储器地址选择模块和存储器控制模块,输出编程数据/程序对应的寻址地址;编程/校验单元的编程数据/程序输出端通过第一输入数据线(w13d)连接控制单元的保护模块,输出编程数据/程序;
(2)控制单元的存储器控制模块接收到编程指令后,存储器控制模块通过选择地址线(w56a)向存储器地址选择模块输出保护码存储地址,存储器控制模块通过选择控制线(w56c)控制存储器地址选择模块向第一输出地址线(w67a)输出寻址地址对应的保护码存储地址,同时存储器控制模块通过控制线(w57c)控制存储器通过第二输入数据线(w07d)向密钥/保护码寄存器组提供对应地址的保护码,密钥/保护码寄存器组在寄存器控制线(w54c)的控制下更新保护码,更新后的保护码通过寄存器数据线(w45d)提供给存储器控制模块,并通过数据线(w43d)提供保护模块;
(3)存储器控制模块根据接收到的保护码判断编程/校验单元发出的寻址地址是否为存储器保护区的地址:如果寻址地址不是保护区地址,存储器控制模块通过选择控制线(w56c)通知存储器地址选择模块选择第一输入地址线(W16a)发出的编程地址,存储器地址选择模块通过第一输出地址线(w67a)将编程地址提供给存储器,保护模块将编程数据/程序通过第一输出数据线(w37d)提供给存储器,存储器在控制线(w57c)的控制下,将编程数据/程序存储在对应的存储器地址中;如果寻址地址是存储器保护区的地址,存储器控制模块屏蔽编程/校验单元第一输入控制信号线(W15c)发出的编程控制信号,或者密钥/保护码寄存器组输出保护码干扰保护模块输出的编程数据/程序,而不改变存储器的内容。
11.如权利要求10所述的非易失性存储器保护方法,其特征在于编程/校验单元提供的编程数据/程序为加密数据/程序。
12.非易失性存储器保护方法,其特征在于进行存储器数据校验方法,其包括如下步骤:
(1)编程/校验单元通过第一输入控制信号线(W15c)连接控制单元的存储器控制模块,向控制单元发出校验指令;编程/校验单元通过第一输入地址线(W16a)连接控制单元的存储器地址选择模块和存储器控制模块,输出校验数据/程序对应的寻址地址;
(2)控制单元的存储器控制模块接收到校验指令后,存储器控制模块通过选择地址线(w56a)向存储器地址选择模块输出保护码存储地址,存储器控制模块通过选择控制线(w56c)控制存储器地址选择模块向第一输出地址线(w67a)输出寻址地址对应的保护码存储地址,同时存储器控制模块通过控制线(w57c)控制存储器通过第二输入数据线(w07d)向密钥/保护码寄存器组提供对应地址的保护码,密钥/保护码寄存器组在寄存器控制线(w54c)的控制下更新保护码,更新后的保护码通过寄存器数据线(w45d)提供给存储器控制模块,并通过数据线(w43d)提供给保护模块;
(3)存储器控制模块根据接收到的保护码判断编程/校验单元发出的寻址地址是否为存储器保护区的地址:如寻址地址不是保护区的地址,存储器控制模块通过选择控制线(w56c)通知存储器地址选择模块选择第一输入地址线(W16a)发出的校验地址,存储器地址选择模块通过第一输出地址线(w67a)将校验地址提供给存储器,存储器在控制线(w57c)的控制下将寻址地址对应的校验数据/程序通过数据线(w07d)提供给保护模块,保护模块通过第二输出数据线(w31d)提供给编程/校验单元进行校验;如果寻址地址是存储器保护区的地址,存储器控制模块屏蔽编程/校验单元通过第一输入控制信号线(W15c)发出的校验控制信号,或者密钥/保护码寄存器组输出保护码干扰保护模块输出的校验数据/程序。
13.如权利要求12所述的非易失性存储器保护方法,其特征在步骤(2)所述的密钥/保护码寄存器组的更新方法作如下三种中的任意一种替换:
(1)***复位或者读序列重新开始时,读出存储器保护区的保护码,将保护区的各个保护码或密钥调入到控制单元对应的密钥/保护码寄存器组;
(2)进行存储器数据/程序校验前读出存储器保护区的保护码或密钥,将保护区的各个保护码调入到控制单元对应的密钥/保护码寄存器组;
(3)利用空闲时间,读出存储器保护区的保护码,将保护区的各个保护码调入到控制单元对应的密钥/保护码寄存器组。
14.如权利要求12所述的非易失性存储器保护方法,其特征在于该方法是权利要求10的存储器编程数据/程序之后进行。
15.一种用于如权利要求4所述非易失性存储器保护***的非易失性存储器保护方法,其特征在于进行存储器地址加密,其包括如下步骤:
(1)加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器待加密地址;
(2)加密/解密单元从控制单元的密钥/保护码寄存器组中获得对应地址的加密密钥,利用地址加密密钥对CPU发出的存储器待加密地址进行加密,加密/解密单元将加密后的地址通过第二输入地址信号线(w25a)输出给存储器控制模块,通过第三输入地址线(w26a)输出给存储器地址选择模块;加密/解密单元通过第二输入控制信号线(W25c)连接控制单元的存储控制模块,向存储器控制模块发出指令;
(3)若存储器控制模块接收到的加密后的地址为存储器保护区的地址,则存储器控制模块中断第二输出地址信号线(w25a)发出的加密地址,若存储器控制模块接收到的加密后地址为存储器非保护区的地址,存储器控制模块通过选择控制线(w56c)通知存储器地址选择模块选择加密/解密单元通过第三输入地址线(W26a)提供的加密后地址,存储器地址选择模块将加密地址通过第一输出地址线(w67a)提供给存储器。
16.如权利要求15所述的非易失性存储器保护方法,其特征在于步骤(1)还包括加密/解密单元从密钥/保护码寄存器组取得保护码,通过CPU控制信号线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问,如果是授权的用户操作程序,则继续步骤(2)。
17.一种用于如权利要求4所述非易失性存储器保护***的非易失性存储器保护方法,其特征在于进行存储器数据/程序解密方法,其包括如下步骤:
(1)加密/解密单元通过CPU控制信号线(w02c)连接CPU,接收CPU发出的读取存储器数据指令;加密/解密单元通过CPU地址线(W02a)连接CPU,接收CPU发出的存储器中需解密数据/程序对应的寻址地址;
(2)加密/解密单元通过第二输入控制信号线(W25c)连接控制单元的存储器控制模块,向控制单元发出读取存储器数据/程序指令;加密/解密单元通过第二输入地址线(W25a)连接控制单元的存储器控制模块,通过第三输入地址线(w26a)连接存储器地址选择模块,输出需解密数据/程序对应的寻址地址;
(3)存储器控制模块通过选择控制线(w56c)控制存储器地址选择模块选择加密/解密单元通过第三输入地址线(W26a)输出的寻址地址,存储器地址选择模块通过第一输出地址线(w67a)将寻址地址提供给存储器,存储器在第一输出控制信号线(w57c)的控制下,通过第二输入数据线(w07d)向加密/解密单元提供寻址地址对应的存储数据;
(4)加密/解密单元将第三输出数据线(w42d)输出的数据/程序解密密钥和接收到的存储器数据按照预先设定的方式解密,解密后的数据/程序提供给CPU。
18.如权利要求17所述的非易失性存储器保护方法,步骤(1)还包括加密/解密单元从密钥/保护码寄存器组组取得保护码,通过CPU控制线(W02c)和CPU地址线(W02a)判断是否是CPU输出用户操作程序是否是授权的用户操作程序,如果不是授权的用户程序,则禁止存储器访问,如果是授权的用户操作程序,则继续步骤(2)。
CN 200910098918 2009-05-25 2009-05-25 非易失性存储器保护***和保护方法 Active CN101901629B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910098918 CN101901629B (zh) 2009-05-25 2009-05-25 非易失性存储器保护***和保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910098918 CN101901629B (zh) 2009-05-25 2009-05-25 非易失性存储器保护***和保护方法

Publications (2)

Publication Number Publication Date
CN101901629A CN101901629A (zh) 2010-12-01
CN101901629B true CN101901629B (zh) 2013-12-25

Family

ID=43227105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910098918 Active CN101901629B (zh) 2009-05-25 2009-05-25 非易失性存储器保护***和保护方法

Country Status (1)

Country Link
CN (1) CN101901629B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2489405B (en) 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
CN103139366B (zh) * 2011-12-05 2014-09-24 希姆通信息技术(上海)有限公司 移动终端及其数据保护方法
CN103686351B (zh) * 2012-09-24 2017-04-19 晨星软件研发(深圳)有限公司 解扰装置及应用该解扰装置的电视***
US9245129B2 (en) * 2013-03-15 2016-01-26 Nvidia Corporation System and method for protecting data by returning a protect signal with the data
CN105046173A (zh) * 2015-07-02 2015-11-11 山东超越数控电子有限公司 一种快速可靠销毁ssd硬盘的设计方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1102265A (zh) * 1993-03-20 1995-05-03 莫托罗拉公司 数据存储装置
CN1316087A (zh) * 1999-04-27 2001-10-03 松下电器产业株式会社 半导体存储卡和数据读取装置
CN101246743A (zh) * 2007-02-14 2008-08-20 上海海尔集成电路有限公司 闪存接口
CN201655334U (zh) * 2009-05-25 2010-11-24 杭州士兰微电子股份有限公司 非易失性存储器保护***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113220A1 (en) * 2007-10-26 2009-04-30 Sang Han Lee Encrypted backup data storage device and storage system using the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1102265A (zh) * 1993-03-20 1995-05-03 莫托罗拉公司 数据存储装置
CN1316087A (zh) * 1999-04-27 2001-10-03 松下电器产业株式会社 半导体存储卡和数据读取装置
CN101246743A (zh) * 2007-02-14 2008-08-20 上海海尔集成电路有限公司 闪存接口
CN201655334U (zh) * 2009-05-25 2010-11-24 杭州士兰微电子股份有限公司 非易失性存储器保护***

Also Published As

Publication number Publication date
CN101901629A (zh) 2010-12-01

Similar Documents

Publication Publication Date Title
CN104156642B (zh) 一种基于安全触控屏控制芯片的安全密码输入***和方法
CN101031068B (zh) 用于多媒体数据处理的安全片上***结构的方法和***
EP0583140B1 (en) System for seamless processing of encrypted and non-encrypted data and instructions
US6345359B1 (en) In-line decryption for protecting embedded software
US8555015B2 (en) Multi-layer content protecting microcontroller
JP4865694B2 (ja) プロセッサ装置
CN101782956B (zh) 一种基于aes实时加密的数据保护方法及装置
US20110099387A1 (en) Method and apparatus for enforcing a predetermined memory mapping
US20080205651A1 (en) Secure processor system without need for manufacturer and user to know encryption information of each other
US9081724B2 (en) Method and device for protecting memory content using first and second addressable storage regions and first and second encryption keys
KR101303278B1 (ko) 비트스트림 보호를 위한 fpga 장치 및 그 방법
CN102436423B (zh) 通用片外NorFlash核心数据保护的控制器及方法
CN101901629B (zh) 非易失性存储器保护***和保护方法
KR20140019599A (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
CA2543572A1 (en) Tamper-resistant trusted virtual machine
CN100424611C (zh) 用于处理加密软件的方法和中央处理单元
CN102347834A (zh) 受信移动平台体系结构
CN204242180U (zh) 一种基于安全触控屏控制芯片的安全密码输入***
CN106503494A (zh) 一种带有片上闪存微控制器的固件保护单元及保护方法
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
EP3844647B1 (en) System and method for providing protected data storage in data memory
CN104506504A (zh) 一种无卡终端涉密信息的安全机制及安全装置
CN114785503B (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
CN103929312A (zh) 一种移动终端及其个人信息保护方法和***
CN108959129B (zh) 一种基于硬件的嵌入式***机密性保护方法

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