CN1129098C - 一种安全存储卡 - Google Patents
一种安全存储卡 Download PDFInfo
- Publication number
- CN1129098C CN1129098C CN 94192020 CN94192020A CN1129098C CN 1129098 C CN1129098 C CN 1129098C CN 94192020 CN94192020 CN 94192020 CN 94192020 A CN94192020 A CN 94192020A CN 1129098 C CN1129098 C CN 1129098C
- Authority
- CN
- China
- Prior art keywords
- storage
- memory
- microprocessor
- lock
- card
- 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
- Storage Device Security (AREA)
Abstract
一种安全存储卡,包括在一片半导体芯片上的微处理器和一个或多个非易失可寻址存储器芯片。微处理器芯片和非易失存储器芯片共同与卡内部的总线相连。微处理器包括可寻址的非易失存储器。每个芯片的存储器由若干块或组构成,并且每个存储器芯片包括安全控制逻辑电路。这些电路包括若干非易失的和易失的存储装置,只有在微处理器已经确定用户已与主计算机成功地完成了预定的辨认处理后,所述存储装置才在微处理器控制下装入键和配置信息。
Description
技术领域
本发明涉及便携式个人计算机领域,更具体地说,涉及一种在可移动的数字信息环境中保持数据安全性的系统。
背景技术
个人信息的安全性一直受到不断地关注。已经通过锁、代码和保密包(pockets)保证安全性。随着信息采取了新的形式,要求有新的方法来满足这一变化的情况。
从历史上看,信息的安全性一直通过使用签名、凭证和相片来保证。电子设备例如自动取款机在保密方法中增加了编码卡和个人识别码(PINs)。计算机系统继续使用口令。
最近,一种“智能卡”被用作保密工具。这种“智能卡”是一种小的微型计算机,具有可写的非易失存储器和简单的输入/输出接口,它被制成单片形式并包在塑料的“信用卡”内。它有一些外焊点(pads),使其可以连接到专门设计的设备上。包含在卡的微机中的程序和这一设备相互配合,使卡中非易失存储器的数据可被读取或按照所需的算法进行修改,包括改变口令。已实现了专门的技术用来保护存储信息并根据情况作出各种许可。例如,在名称为“SingleChip Microprocessor with On-Chip ModifiableMemory”的美国专利4,382,279中,披露了一种允许非易失存储器自动编程的结构,它被包括在同一芯片上作为处理和控制单元,如同其它系统一样,微处理器只保护同一芯片上的存储器。
“智能卡”已被用于简化识别处理并作为有价值信息的实际存放地。在这种情况下,与过去大部分情况一样,“键”的实际存在以及某些专门知识被用作证实或辨认处理的一部分。在上述情况下,识别是希望进入的人和固定的装置例如安全保护装置或自动出纳机之间的对话。
独立式的计算设备的可携带性的当前状况使得实际的键和辨认装置变得更小、更易携带,因而更易丢失或被窃。而且,计算设备能够进行重复的试探来猜试或推论与识别处理有关的专门知识或口令。如果辨认装置或设备也在盗窃者的控制之下,情况特别如此。更槽糕的是,现在技术允许并鼓励随身携带大量的易于被窃的机密信息。
现在,笔记本或亚笔记本(subnotebook)大小的计算机提供了一种功能强的独立环境,它允许进行大量的计算,因而需要附加的数据存储容量。这最初是通过装有程序和数据的小型化硬盘设备来满足。虽然在这些系统中经常使用口令保护,但这不能完全地保护住机密的数据。这是因为:首先,辨认装置本身是易受损害的。不过,更重要的是,含有这些数据的盘驱动器可被移走从而在一个更易进行数据分析的设置中被存取。在这种情况下,只有某种形式的加密能够保护数据。盘存取的性质使得这是可能的,而没有性能和成本障碍。这种系统的一个例子披露于名称为“Integrated Circuit Card”的美国专利4,985,920中。
最近出现的快速存储器(flash memory)和可移动的“存储卡”使得便携计算机的体积和功率消耗大为减小。快速存储器把随机存取存储器(RAM)的灵活性和盘的性能结合起来。现在,这些技术的结合允许包含高达20兆字节的数据而不需要电源,并采用信用卡大小的可携带封装。这些数据可以出现在主机系统中,或者好象是被含在常规的盘驱动器中,或者好象是主存储器的扩展。这些技术的发展可使系统体积减少到这样的程度,即可把其放在口袋里而不放在手袋或手提箱中。
因而,数据及其主机系统就更容易丢失或被窃,同时利用加密来保护存储数据就更加困难,因为这成为性能和成本的主要障碍。
发明内容
因而,本发明的主要目的在于提供一种具有安全存储器子系统的便携式数字系统。
本发明的另一个目的在于提供一种存储卡,如果把其从便携数字系统中移出,它仍可以受到保护。
本发明的另一个目的在于提供一种存储卡,其中如果把卡的芯片从这种卡中移出,卡的芯片仍可以受到保护。
根据本发明第一方面,提供一种用于便携式主计算机的安全存储卡,所述存储卡包括:用来向所述主机传送并自所述主机接收地址、数据和控制信息的被连接的微处理器,且所述微处理器包括:一个第一可寻址的非易失存储器,用来存储包括多个键值和配置信息的信息;与所述微处理器相连的内部总线,用于传送地址、数据和控制信息,这些信息限定所述卡要进行的存储操作;以及一组第二可寻址的非易失存储器,其包括至少一个第二非易失的可寻址存储器,和所述微处理器一起与所述内部总线相连,用来接收所述地址、数据和控制信息,所述存储器包括非易失存储部分和安全控制部分,所述存储部分含有由若干块组成的存储阵列,每个块具有多个可寻址单元,该存储部分还含有控制逻辑装置,用来进行所述存储操作,并且所述安全控制部分被连接到所述内部总线、所述控制逻辑装置以及所述存储阵列,所述安全控制部分包括:多个非易失和易失存储装置,用来存储至少一个所述键值和与所述块相关的配置信息;以及,存取控制逻辑装置,它与所述控制逻辑装置、所述存储装置相连,所述存取控制逻辑装置只有在所述微处理器已经确定预定的辨认处理已由所述主计算机完成,并已经启动所述存取控制逻辑装置从而允许从所述存储阵列中按照所述配置信息读出所述信息之后,才允许按所述配置信息读取存储在所述存储阵列中所述块中被寻址的一个所存储的信息。
根据本发明第二方面,提供一种用于构成可装在主计算机内的安全存储卡的方法,所述安全存储卡包括多个非易失存储芯片,每个存储芯片包括由可寻址位置的块构成的存储阵列和用于产生进行存储操作的指令信号的控制逻辑电路,所述方法包括下列步骤:(a)将一微处理器加入所述卡内,当把卡装于主计算机内时,它和主计算机相连而进行通信,所述微处理器包括可寻址的非易失存储器,用来存储包括用于限定用户对存储区的可存取性的多个键值的信息以及限定对所述存储区的可存取性的存储配置信息;(b)在每个非易失存储芯片中装入安全逻辑电路,所述安全逻辑电路包括用来存储与所述键值中的一个匹配的一个预定的锁值的非易失锁存储器、与所述锁存储器相连的存取控制逻辑装置,以及可寻址的易失存取控制存储器,它具有在数量上和所述块数相应的多个位置,用来按照所述配置信息存储可存取位信息;(c)把所述微处理器和每个存储芯片互连,以便向每个存储芯片传送地址、数据和控制信息;(d)修改所述控制逻辑电路,使其响应用于操作所述安全逻辑电路的多个指令;(e)将所述微处理器配置成当用户请求存取所述块时利用所述主计算机进行开始预先建立的用户辨认操作;将所述微处理器配置成只有当在步骤(e)中的辨认操作已被成功地完成时,才借助于所述微处理器传送给所述每一芯片一些所述指令中的专用指令以允许存储在不同块中的所述信息按照在所述存取控制存储器中存储的所述可存取位信息被读出,从而使能所述安全逻辑电路。
根据本发明第三方面,提供一种包括非易失的存储部分和安全控制部分的非易失存储芯片,所述存储部分包含由若干块组成的存储阵列,每个块具有多个可寻址单元,该存储部分还包含控制逻辑装置,用于执行所述存储操作,并且所述安全控制部分被连接到所述控制逻辑装置和存储阵列,所述安全控制部分包括:多个非易失和易失存储装置,用来存储至少一个键值和与所述块相关的配置信息;以及存取控制逻辑装置,它与所述控制逻辑装置、所述存储装置相连,所述存取控制逻辑装置只有在所述存储芯片已从一个外部处理器接收到一个信号时才允许按所述配置信息读取存储在所述存储阵列中所述块中被寻址的一个所存储的信息,该信号表示已由一个用户完成了预定的辨认处理,并且启动所述存取控制逻辑装置从而允许从所述存储阵列中按照所述配置信息读出所述信息。
上述目的由本发明的最佳实施例中的安全卡来实现。这种安全存储卡包括:装在一单个半导体芯片上的微处理器,以及一个或多个非易失的可寻址的存储器芯件。微处理器芯片和非易失存储器芯片共同连接到用来向这种非易失的存储芯片传送地址、数据和控制信息的内部卡总线上。微处理器包括可寻址的非易失存储器,用来存储包括若干键值的信息、配置信息以及用来在内部总线上控制地址、数据和控制信息传送的程序指令信息。芯片存储器由若干块或组(banks)构成,每块具有多个可寻址的位置。
按照本发明,每个存储芯片包括安全控制逻辑电路。在最佳实施例中,这些电路包括非易失锁存储器,非易失锁存启动元件和易失的存取控制存储器,它们各自都可在微处理器的控制下被加载。更具体地说,微处理器首先在非易失锁存储器中装入锁值,并重置锁存储启动元件禁止存取。此后,微处理器按照配置信息的规定对存取控制存储器进行加载。这种信息只有在微处理器已确定用户已成功地完成了与主计算机预定的辨认处理之后才被加载。每个存储器的安全逻辑电路根据装载在存储芯片的存取控制存储器中的配置信息来允许对存储在快速存储器的选定地址块中的信息的读取。周期性地要求用户成功地执行与主计算机的辨认处理,并根据存取控制存储器的允许,使用户继续读取信息。在最佳实施例中,通过标准接口,例如符合个人计算机存储卡国际协会(PCMCIA)标准的接口,将主计算机与存储卡相联。
本发明结合了“智能卡”和“存储卡”技术,它对于在已经实现了电子小型化的“严格安全”的环境中利用快速存储技术来保护大量数据来说,是关键的。此外,本发明能够利用这两种技术的改善和提高。
此外,本发明的安全逻辑电路通过减少对快速存储器的基本逻辑电路的改变量的方式,被结合在快速存储器中并与其一起操作。更具体地说,快速存储器可以以安全的方式进行操作,也可以以非安全的方式被操作,此时安全逻辑电路被旁路,从而使快速存储器在好象不存在这种电路的情况下被操作。当快速存储器的非易失锁存储器的内容被消除时,就进入非安全方式。这一般表示一个未编程的或完全抹掉的快速存储器,它通常抹成预定状态(即全部为“1”状态)。
由于对快速存储器和“存取控制处理器”(ACP)增加了少量的逻辑,快速存储器的内容就成为安全的而无需数据加密。因此,本发明去掉了对大块数据来说相当费时的加密数据和解密数据的操作。
在操作中,ACP定期地促使用户进入某些辨认形式。这可以是口令、PIN、在书写面上的特定点所进行的特定笔计算机的“手势”、语音指令或“用户的声音打印”。方法随系统而变化。可编程的ACP使用户可以改变辨认的具体内容和提醒的频率。用于辨认的代码以及锁和存取控制存储器所需的数据被存储在ACP的非易失存储器内,该存储器和ACP在同一芯片上,因而受到保护。
如上所述,成功的辨认使ACP启动或连续地启动用于存取的快速存储器的全部的或选定的块。失败则使得无法进行对快速存储器的存取。这样,和“死人窒息”相似,没有成功地完成辨认的任何失败将使得快速存储器的数据受到保护。此外,由用户发出的指令也可以使存取被禁止。而且,当第一次从断电情况下加上电源时,存取被封锁,从而保护存储器的内容直到第一次辨认被成功地完成为止。
这样,如果存储卡或它的主处理器丢失、被窃、断电或无人管理,存储器的数据就被立即或是在当前周期的辨认结束之后马上被保护以不能存取。在被窃情况下,即使存储卡被打开并进行电子试探,或是存储器芯片被移走并放在另一装置中,存储器数据也可以受到保护以防止存取。
附图说明
本发明的上述目的和优点从下面结合附图的说明中将被更好地理解。其中:
图1是本发明的含有存储卡的系统的总体方块图。
图2是图1中的包括非易失存储器的存取控制处理器(ACP)的详图。
图3是本发明图1的标准快速存储器的改型的详细方块图。
图4和图5是本发明的存储卡进行各种辨认处理的流程图。
具体实施方式
图1是安全便携式手持计算系统1的框图,它能用作个人计算机或作为事务处理器。系统1包括按照本发明构成的存储卡3,它通过总线102和主处理器5相连。主处理器5可以是掌上个人机的形式,例如由Hewlett-Packard制造的HP95LX。主处理器5包括液晶显示器(LCD)5-2、键盘5-4、微处理器5-6、存储器5-8以及串行接口5-10,它们全部连结于总线106。存储器5-8包括一个1兆字节只读存储器(ROM)和一个512K字节的随机存储器(RAM)。
存储卡3和主处理器5之间的连接通过标准总线接口建立。在最佳实施例中,总线102符合个人计算机存储卡国际协会(PCM-CIA)的标准。接口102提供通过标准接口芯片104和存储卡总线105在主处理器5和存储卡系统3之间传送地址、控制和数据信息的通路。总线102、105和106各自都包括数据总线、控制总线和地址总线并通过所有此类总线提供连续的信号通路。例如,总线105包括地址总线105a、数据总线105b和控制总线105c。
PCMCIA总线标准已从在存储卡上支持盘模拟的标准发展到允许随机存取存储数据的另一完全不同和标准。本发明的存储卡借助于对随机存储位置的快速存取提供支持这一新标准的保护技术,而不用加密技术。通过控制把数据从存储阵列送到主机的数据通路,本发明的存储卡不用附加任何费时的缓冲、解密或其它的在这一通路中的串行处理,就可以保护数据。
典型地说,用户从键盘5-4操作系统1来进行典型的操作,例如执行在显示器5-2上显示信息并更新在存储卡3中的文件中存储的信息的列表(spreadsheet)和数据库功能。主处理机5就通过总线102发出地址信息,以便检索信息,且如果需要就将其更新,并将它与必要的地址和控制信息一道将这一信息发回存储卡3。
如图1所示,本发明的存储卡3包括和总线105相连的存取控制处理器(ACP)10,以及若干(n)个CMOS快速存储器芯片103a到103n,其每个都与总线105相连。ACP10一般和“智能卡”中使用的处理元件的类型相同。CMOS快速存储器103a到103n可采用In-tel公司制造的快速存储芯片的形式。例如,可以采用指定为Intel28F001BX 1M的Intel快速存储芯片的形式,它包括8个128K字节×8CMOS快速存储器。这样,一个4M的快速存储卡可以包括32个CMOS快速存储器。即“n”=32。
图2是本发明最佳实施例的存取控制处理器(ACP)的方块图。如图所示,ACP10包括被保护的非易失存储器10-2、随机存储器(RAM)10-4、微处理器10-6、间隔计数器10-8以及与总线105相连的接口方块10-10。非易失存储器具有若干地址位置,其中存储着辨认信息和程序。更具体地说,存储位置10-2a存储一个或多个个人辨认数(PINs)、协议顺序或其它辨认信息,用来证实用户对系统的存取,并用来识别用户在除去用于再辨认所用的时间间隔值之外可以存取的在快速存储器103a到103n中的块。
存储位置10-2b存储用来保护每个快速存储器103a到103n的键值或用来保护每个快速存储器103a到103n的每个块的代码。
存储位置10-2c存储程序指令序列,用来进行所需的辨认操作,并用来清除系统,如果预置的失败条件满足的话。某些程序指令使用户控制间隔计数器10-8的设定,它在当发生用户再辨认时建立。再辨认间隔限定中断之间的时间,并用来对主机5发出需要使用户再输入PIN或其它口令来进行用户身份识别的中断。间隔计数10-8通过总线102接收来自主机5的时钟脉冲,并由用户根据其工作环境设置。例如,在家里,用户可以断开计时器(即把其置为最大值),或设定时间间隔为1小时。在飞机上,用户可以设定它为10分钟以加强保护。如此处所述,用户在每次电源接通时被提醒再检查这一间隔的设定,从而强制进行定期的再辨认,以确保安全。
图3是快速存储器103a到103n的详细的方块图。只示出了存储器103a的详细的逻辑电路,因为103b到103n的结构和103a相同。
快速存储器103a基本上包括两部分,一部分含有本发明的安全存取控制电路,另一部分含有快速存储器的基本的或标准的逻辑电路。
由图3可见,本发明的安全控制电路包括32位键寄存器、32位易失锁寄存器33、12位延迟计数器32、比较器电路39、全部为1(ONES)的检查信号电路38、非易失锁存储器35、一位非易失锁存储启动元件36、易失的存取控制存储器43、存取修正允许与门34以及输出或门45,其布置如图所示。将会注意到,这部分接收来自包括在基本逻辑部分中的指令寄存器50的由不同16进制值(例如31H到38H)表示的指令控制信号。这些信号表明通过数据总线105b由指令寄存器50从ACP10接收的指令组的不同数据值。这些指令对由快速存储器通常使用的指令组是一种重要的扩充。标准的快速存储器指令采用由28F001BX快速存储器利用的指令形式。这些指令在已经公开的由Intel公司出版的“存储器产品”中描述过,在此用作参考。本发明用的指令如表1所示。
参看表1,所示的第一指令是装载锁存储器指令,它用来使随机数产生的锁值装进每个存储器103a到103n中的非易失锁存储器(LM)35中。每个存储器103a到103n可以具有不同的锁值或相同的锁值,由用户的安全需要而定。锁值通过键(K)寄存器31在1位的非易失存储元件36控制下装进LM35。表1的重置锁存储启动指令用于重置存储元件36。这防止了存储在LM35中的锁值被改变,因为存储元件36一旦被重置锁存储启动指令重置,就不能再被设置。LM35的非易失内容在接通电源时被传送到L寄存器33。将会注意到锁存储器35的位置和地点是由设计决定的。例如,存储器35可以作为对于存储阵列54的扩充来实现。
表1的装载键寄存器指令被用于装载键寄存器31并设置延迟计数器32。减少延迟计数器指令用来通过ACP对延迟计数器32的内容减1。允许读存储块和禁止读存储块指令由ACP10使用,以便在存取控制存储器43的装载期间允许或禁止对存储器阵列54的不同的存储块的存取。
表1
指令 | 第一总线周期操作 | 地址数据 | 第二总线周期地址 | 数据 |
装载锁存储器重置锁存储启动装载键寄存器减小延迟计数器允许读存储块禁止读存储块 | 写写写写写写 | 31H33H32H35HMBA34HMBA38H | 写无法用写无法用写写 | 无法用无法用键数据无法用MBAMBA |
装载锁存储器(31H)
这一指令当并且只当锁存储启动36输出信号为TRUE时,才把键寄存器31的内容复制到非易失锁存储器35中。
重置锁存储启动(33H)
这一指令重置锁存储启动逻辑元件36,从而禁止装载或改变锁存储器35。
装载键寄存器(32H)
这一指令使键寄存器31的原有内容移动一个字节(从LSB向MSB)并把“键值”从ACP10装入键存储的LSB。
此外,它把延迟计数器32设定为其最大值,即全部为1。
减小延迟计数器(35H)
这一指令使延迟计数器32的内容减1。延迟计数器必须等于零以允许对存储器阵列54的随后的读取。
允许读存储块(34H)
这一指令当并且仅当地址修正允许信号37为TRUE时才设置地地址控制存储器43中的相应于存储器块地址(MBA)的位。这允许对选定块的读存取。
禁止读存储块(38H)
这一指令重置在地址控制存储器43中的相应于存储器块地址的位。
详细地研究表1之后可以看出,表1也表示用于每个附加指令的总线周期操作。对于需要两个总线周期的每个指令在每个第一总线周期期间,指令寄存器50接收由ACP10产生的通过总线105的数据总线105a和输入缓冲器51发出的8位指令。指令寄存器50调整所选的逻辑元件,从而从数据总线105b接收在第二总线周期期间执行指令所需的信息。如图所示,第二总线周期被规定为无法用(N/A),因为重置锁存储启动和减少延迟计数器指令仅需一个周期。
在正常操作期间,K寄存器31用装载键寄存器指令用从存储位置10-2b收到的键值装载,并且延迟计数器被置为其最大值。延迟计数器32响应于由ACP10接收到的连续的减小延迟计数器指令,被全部减小到零,并产生零计数输出信号41,将它加到与门34的输入端。
每个延迟计数器32限制当窃贼把芯片移出并将其放在“非法卡”上并给处理器或设备编程以重复试探猜测每个存储芯片的键入值时对快速存储器103a到103n进行存取试探的次数。换句话说,计数器32确保必须进行足够多的尝试才能非法进入快速存储器。选择键和延迟计数器的参数使得这种测试占用不合理的时间。
更具体地说,键寄存器31存储大约4千兆(232)个不同的组合。在最佳实施例中,延迟计数器32是一个12位计数器。假定延迟计数器32每微秒减少1,在猜测键值时的每次试探将需要212次或4毫秒。ACP10知道正确的键值后,在首次建立时只发生4毫秒延迟。猜测键值的随机试探对于50%的成功概率将需要231次偿试。这将需要231×212毫秒或102天来猜测键值。这时间足能阻止大多数窃贼。当然,通过改变键和延迟计数器32的参数可以提供更长或较短的时间。
在本发明的存储卡被盗,并被放入“非法主机”中时,ACP10利用已知技术限制窃贼为猜测PIN而偿试的次数。这种技术可以包括锁住存取或者如果不正确的猜测次数的阈值被超过时就破坏数据。
在快速存储器103a首次辨认操作期间,响应4个连续的装载键寄存器指令(即数据总线105b是一个字节宽的总线),键值被装进32位K寄存器31中。延迟计数器32被强制为其最大值(全部为1),并由ACP10在连续的第一总线周期发出减小延迟计数器指令来减少。当延迟计数器被减为零时,则发出零计数信号41,它被加在与门34的一个输入端。
如果存储在K寄存器31中的键值等于存储在相应的L寄存器33中的锁值,则表示用户对主机5提供了正确的身份,然后比较逻辑39将比较相等信号42加到与门34的另一输入端。这便使与门34在其输出端产生存取改变允许信号37,它在ACP10的控制下启动对存取控制存储器43的写入。这又相应地允许对存储阵列54的读取。
存取控制存储器43的存储阵列54的每一块/组包括1位的易失存储。这些位作为快速存储器通电顺序的一部分被清为零。为了使数据从存储器103a中读出,相应于被寻址存储块的位必须为逻辑1。当并且仅当存取改变允许信号37是TRUE真时,这些位才由ACP10发出允许读存储块指令而被设置。
如表1所示,在允许读存储块指令的第二个总线周期期间,存储阵列54的被选定的存储块的三个高阶地址位通过地址总线105c被发出,并由数据总线105a向指令寄存器50重复发出十六进制的指令识别码。这导致在存取控制存储器43中的寻址位的位置被写为1。在最佳实施例中,允许读存储块指令序列被重复8次,因为存储阵列54由每块16K字节的8块构成。ACP10可以采用类似方式通过发出禁止读存储块指令序列来限制存取所选的块。
当存储阵列54的任一块的位置的内容被读出时,在每一快速存储读周期期间,本发明的存取控制存储器43的输出作为允许输入被送到输出缓冲器52。这就是说,可以发生读周期,然而,在没有合适的块存取控制存储门信号时,禁止通过输出缓中器52读出数据。更具体地说,在最佳实施例的情况中,存取控制存储器43包括8个可单独寻址的位存储元件、连接于每个存储元件的输入的3至8位地址译码器以及连接于每个存储元件的输出的1至8输出多路转换器电路。每个地址的三个高阶地址位被译码,并被用于为其内容要被改变的块选择存储元件。类似地,相同的三位被用来为含有被读出的快速存储器位置的块选择存储元件的输出。
如果锁存储器35被完全抹掉,即全部为1,如L寄存器33的内容全部为1所表示的那样,则输出缓冲器52总是被允许的。这就是说,当锁寄存器33含有“全为1”时,便从全为1检测元件38向或门15发出信号用来启动输出缓中器52。这将快速存储器103a置于非安全模式。这便使本发明所有的安全逻辑电路被旁路。因而,同样的快速存储芯片可用于安全的和非安全的应用,这导致降低成本。
如图3所示,快速存储基本逻辑电路包括存储阵列54、指令寄存器50、输入/输出逻辑电路60、地址锁存器56、写状态机61、清除电压系统62、输出多路转换器53、数据寄存器55、输入缓冲器51、输出缓冲器52和状态寄存器58,如图所示。如上所述的快速存储器103a的基本逻辑电路采取包括在由Intel公司制造的28F001BX的快速存储器中的电路形式。因为这种电路是常规的,它们特根据需要的程度进行说明。关于这种电路的其它信息,可以参考由Intel公司在1992年出版的名称为“存储器产品”、序列号为210830的出版物中3-109页到3-134页。如图3所示,快速存储器基本电路接收若干个输入信号(A0-A16)、地址、数据信号(D00-D07)以及控制信号(CE、WE、DE、PWD和VPP)。这些信号在表2中说明。
表2.信号说明符号 名称和功能A0-A16 存储器地址的地址输入。
在写周期内,地址在内部锁存D00-D07 数据输入/输出:在存储器写周期内输入数据和指
令;在存储和状态读周期内输出数据。当芯片未被选
择或输出被禁止时,数据指针为高时有作用并浮向
三态断。在写周期内,数据在内部被锁存。CE 芯片允许:启动装置的控制逻辑、输入缓冲区、译码
器和传感放大器。CE为低时有作用,CE为高时不
选择存储器装置并减少功率消耗到备用水平。PWD 功率下降:将装置置为深功率下降模式。PWD为低
时有作用;PWD为高时控制正常操作。PWD=
VHH允许存储块编程。PWD是低而起作用时,也
锁位清除或写操作,以在电源转换期间提供数据保
护。OE 输出允许:在读周期期间通过数据缓冲器控制装置
的输出。OE为低时起作用。WE 写允许。控制对指令寄存器和阵列块的写。WE为低
时起作用。地址和数据在WE脉冲的上升沿被锁
住。Vpp 清除/程序 电源。用于清除阵列的块或每个块的编
程字节。注意:当Vpp<Vpp Max时,存储器内容不
能改变。
如表2所示,芯片允许(CE),写允许处理器(WE)以及输出允许(OE)信号从主机5通过总线102和控制总线105b被加到指令寄存器50和I/O逻辑60,并被分开以控制专门的逻辑块。功率下降(PWD)信号也被加于指令寄存器50,以便使快速存储器完成表2规定的操作。这一信号可用于根据需要清除快速存储安全控制部分的易失存储元件,从而当正常操作再重新开始时迫使用户再辨认。
一般地,快速存储器的基本逻辑元件以下述方式操作。信息通过数据总线105a、输入缓冲器51和数据寄存器55存储在存储阵列54中,其地址位置是由地址逻辑56收到的来自地址总线105c的地址所规定的存储块之一的位置。信息从存储阵列54的块的特定地址位置读出,并通过输出多路传输器53、输出缓冲器52、数据总线105a和总线102送到主处理机5。状态寄存器58被用于存储写状态机的状态、错误挂起状态、清除状态、程序状态和Vpp状态。
写状态机61控制块清除并控制程序算法。程序/清除电压系统62随着Vpp值的变化用于清除存储阵列54的块或每个块的编程字节(即Vpp为高时,可以进行编程;如果Vpp为低时,存储器54作为只读存储器)。
本发明的安全存储卡的操作参照图4和图5的流程图描述如下。在详细说明这种操作之前,首先说明与存储卡的制造、规格化和操作有关的步骤。
作为第一步,在制造卡时,ACP10为在存储卡上的每个存储芯片设定锁值。通过把键值装进图3的锁存储器做到这一点。这些值被存放在ACP的受保护的非易失存储器10-2(即图2中的键1-n)中。然后把锁存储允许元件36设定为零,以禁止再改变或读取锁存储器的内容。因为这些元件是非易失的,除非整个快速存储芯片被清除,它们不能被改变。
作为第二步,在应用规格化时,因为写不受保护功能的影响,存储卡就可用其数据或应用软件装载。然后,ACP10利用与存储器的块结构以及对每一存储器的块所施加的保护程度有关的信息装载。
作为第三步,在用户规格化时,用户建立关于辨认方式和频率的参数以及所需的特定数据(例如个人识别码(PINS))。这些信息被存储在ACP的存储器中。
作为第四步,在接通电源时,“键寄存器”、“存取改变允许”信号以及“存取控制存储器”被初始化,从而禁止存取数据或对存取控制存储器43写入。第一辨认对话被起动。
在第一辨认对话时,ACP10使用其主机5的服务提醒用户并接收辨认信息。如果辨认没有成功,就不再进行操作;如果成功,每个存储芯片的键寄存器就用在ACP存储器中存储的值来装载。在这一操作期间,延迟计数器32在装载之后的一段时间周期内禁止芯片操作,从而使随机试探成为无效过程。键寄存器的装载使在每一芯片中的“存取改变允许”信号为TRUE。然后ACP10按照存储的信息配置来装载存取控制存储器,从而实现存取。
作为第六步,在以后按照用户的配置定期地执行辨认对话时,ACP10进行附加的用户辨认(再辨认)。在失败情况下,ACP10迫使全部存储芯片为通电状态,从而借助于清除存取控制存储43并清除键寄存器31的内容禁止对存储器中数据的任何存取。现在参照图4和图5,说明图1的系统的操作。
图4以方块图的形式表明各种操作模式。块402和401表示两个起动条件。在块402中,用户在预先加有电源的主机5中插入存储卡3。在块401,用户对已安有存储卡3的主机5通电。
在上述每个启动操作中,在块402期间,ACP10及其接口以常规方式被初始化,块403清除全部“n”个K寄存器31和“n”个存取控制存储器43,作为快速存储器103a到103n内部初始化序列的一部分。这便阻止了任何数据从存储器103a到103n中被读出,因为在每个存储器中的输出缓冲器52是禁止的。作为通电的结果,锁值从各个LMs35被装进“n”个L寄存器33。
此时,在块404,ACP10向主机5发出中断信号,主机5通过请求来自用户的PIN或其它辨认信息作出响应。在块405,ACP10由存储在存储位置10-2a中的程序检查PIN或其它识别信息和存储在存储位置10-2a中的信息是否一致。如果不一致,决定块406就计数一次错误,并且ACP10转向块404以重复试验。如果试验失败达到了预置的次数,决定块406就转向块407,使ACP10锁住或破坏存储器103a到103n的内容。
如果在决定块106中存在表明辨认成功的匹配,则随后在块408中,ACP10通过装载键寄存器指令用合适的键值从存储位置10-2b装载每个K寄存器31。块409也重复地减少延迟计数器32的内容,发出连续的减小延迟计数器指令,使其减少为二进制的零,从而产生图3中的零计数信号41。
在块410中,用允许读存储器组指令的信息装载每个存取控制存储器43的位置,从而允许存取所选的相应的快速存储器103a到103n中的块。
在块411,ACP10在请求用户再辨认之前,等待由间隔计数器10-8发出的并存储在存储器位置10-2a中的信息所建立的预置时间间隔的结束。然后,在块412,ACP10中断主机5,以便请求用户重新输入PIN或其它要求的识别。
决定块413核查PIN或从主机5收到的其它信息是否与存储在存储位置10-2a中的信息一致,并记录间隔计时器10-8的输出。用户一般有30秒的预置时间间隔,在这间隔内使辨认信息进入主机5。虽然时钟在运行,但如果决定块413测试失败,则块414将其作为一次错误记录下来。与此同时,它检查是否收到错误的最大次数,并转向重复块412和413。如果错误数等于最大次数,那么在块415中,APC10借助于连续加载键寄存器指令来清除快速存储器K寄存器31,并用连续禁止读存储器指令清除存取控制存储器43。然后,块415转向块404,从而允许进行新的“第一辨认”操作。
如果在块413中的试验成功,则K寄存器31保持不变(即保持以前由ACP加载的键值),并允许用户继续操作系统1。在30秒已过去而决定块413没有收到PIN或其它信息的情况下,ACP10则如前一样清除K寄存器31和存取控制存储器43。
图5是说明主机5如何响应来自APC10的中断请求以便响应图4的块404和412而进行辨认。如图所示,决定块501等待来自ACP10的请求用户再输入PIN或其它信息的中断。决定块501当收到来自块404或412的中断时,就转向块502。块502在主机显示器5-2上显示对于PIN或其它信息的请求。块503接收来自键盘的信息以及块504中断ACP10。块5则把PIN送至ACP10。
本领域的技术人员可以理解,对本发明的实施例可以作出各种改型而不脱离其构思。例如,本发明可以使用不同类型的非易失存储器和不同的接口等。
虽然按照结构和状态说明了本发明的最好的形式,但是可以作出某些变化而不脱离本发明权利要求中所提出的本发明的构思,并且在某些情况下,本发明的某些特点可被有利地使用。
Claims (21)
1.一种用于便携式主计算机的安全存储卡,所述存储卡包括:
用来向所述主机(5)传送并自所述主机(5)接收地址、数据和控制信息的被连接的微处理器(10-6),且所述微处理器包括:一个第一可寻址的非易失存储器(10-2),用来存储包括多个键值和配置信息的信息;
与所述微处理器相连的内部总线(105),用于传送地址、数据和控制信息,这些信息限定所述卡要进行的存储操作;以及
一组第二可寻址的非易失存储器,其包括至少一个第二非易失的可寻址存储器(103a),和所述微处理器一起与所述内部总线相连,用来接收所述地址、数据和控制信息,所述存储器包括非易失存储部分和安全控制部分,所述存储部分含有由若干块组成的存储阵列(54),每个块具有多个可寻址单元,该存储部分还含有控制逻辑装置(50),用来进行所述存储操作,并且所述安全控制部分被连接到所述内部总线、所述控制逻辑装置以及所述存储阵列,所述安全控制部分包括:
多个非易失(31,35)和易失(33,34)存储装置,用来存储至少一个所述键值和与所述块相关的配置信息;以及
存取控制逻辑装置(22,34,39),它与所述控制逻辑装置(50)、所述存储装置相连,所述存取控制逻辑装置只有在所述微处理器已经确定预定的辨认处理已由所述主计算机完成,并已经启动所述存取控制逻辑装置从而允许从所述存储阵列(54)中按照所述配置信息读出所述信息之后,才允许按所述配置信息读取存储在所述存储阵列(54)中所述块中被寻址的一个所存储的信息。
2.如权利要求1的存储卡,其中所述微处理器(10-6)和所述第二非易失存储器(103a)被包括在半导体芯片上。
3.如权利要求1的存储卡,其中所述卡还包括接口电路装置(104),它把所述卡(3)连接于所述主计算机(5),其中所述接口电路装置和所述微处理器被包括在同一半导体芯片上。
4.如权利要求1的存储卡,其中所述第二非易失存储器(103a)和所述非易失存储装置(31,35)是闪速存储器。
5.如权利要求1的存储卡,其中一个所述非易失存储装置是一种锁存储器(35),用来存储和所述一个键值相应的锁值,所述非易失存储装置的第二个是一个锁存储允许元件(36),它与所述锁存储器(35)相连,所述锁存储器最初用所述锁值装载,并且所述锁存储允许元件在所述微处理器的控制下转换成禁止修改所述锁值的状态。
6.如权利要求2的存储卡,其中所述锁值的存储和所述锁存储允许元件(36)的转换发生在所述存储卡的最初制造期间。
7.如权利要求5的存储卡,其中所述易失存储装置之一是可寻址的存取控制存储器(43),它具有多个在数量上相当于所述存储阵列(54)中所述块数的位置,用来存储所述配置信息,所述存取控制存储器连接于所述内部总线(105)和所述存取控制逻辑装置(32,34,39),所述存取控制存储器只有在所述微处理器已确定所述预定辨认处理已由所述主计算机(5)首次成功地完成从而使得所述存取控制逻辑装置允许所述存取控制存储器(43)之后,才在所述微处理器(10-6)的控制下被装载。
8.如权利要求7的存储卡,其中所述装进所述锁存储器(35)中的锁值全部为1,并且其中所述安全控制部分还包括全1检测器电路(38),它和所述锁存储器相连,所述检测器电路响应所述全为1的锁值产生一个信号,该信号有效地旁路所述安全控制部分。
9.如权利要求7的存储卡,其中当所述存储卡(3)被第一次连接以与所述主计算机(5)通信时,首先进行所述预定的辨认处理。
10.如权利要求9的存储卡,其中所述存取控制装置包括相连的用来接收来自所述锁存储器(35)的所述锁值的锁寄存器(33)、比较器电路(39)、用来存储由所述微处理器传送给所述键寄存器的键值的键寄存器(31)、用来存储确定预定时间间隔的计数的延迟计数器(32)以及与所述存取控制存储器(43)、所述比较器电路和所述延迟计数器相连的门装置(34),所述比较器电路被连接于所述锁和键寄存器以及所述门装置,且所述门装置和所述延迟计数器相连,用来响应所述比较器电路产生存取修改允许信号,所述比较器电路当所述延迟计数器(32)已经发出所述预定时间间隔结束的信号时,发出装进所述锁寄存器(33)的所述锁代码值之间的同一性比较信号,所述存取修改允许信号调整所述存取控制存储器(43),以便装载所述配置信息。
11.如权利要求10的存储卡,其中所述控制逻辑装置(50)包括用来响应由所述微处理器在控制每个存储器芯片的所述安全控制部分的操作时所用的预定的指令组,来产生指令信号的电路。
12.如权利要求11的存储卡,其中所述控制逻辑装置(50)响应由所述微处理器产生的第一组所述预定指令,产生用来把所述锁代码值装进所述锁存储器(35)的第一信号,所述第一个预定指令组在所述卡的最初制造期间产生。
13.如权利要求12的存储卡,其中所述控制逻辑装置(50)响应由所述微处理器产生的第二组所述预定指令,产生第二信号,用来使所述锁存储允许元件(36)转换为对所述存储在所述锁存储器(35)中的锁值禁止所述读出或所述修改的预定状态。
14.如权利要求12的存储卡,其中所述控制逻辑装置(50)响应由所述微处理器产生的第三组所述预定指令,产生第三信号,用来用预定的一个所述键值对键存储器(31)加载,所述第三组预定指令只有当所述微处理器已经确定所述预定的辨认处理已成功地完成之后才被所述微处理器产生。
15.如权利要求14的存储卡,其中由所述控制逻辑装置(50)产生的所述第三信号同时迫使所述延迟计数器(32)为一预定的计数值,用来建立所述预定时间间隔的开始,并且其中所述控制逻辑装置响应由所述微处理器产生的每个第四组所述预定指令使所述预定计数值减1,在所述预定指令组的第四组被执行一预定数量后,所述延迟计数器发出所述时间间隔结束的信号。
16.如权利要求11的存储卡,其中所述控制逻辑装置(50)响应由所述微处理器发出的若干个第五和第六所述预定指令组,产生第五、第六信号,用来按照所述配置信息,设置和重置在所述存取控制存储器(43)中的位置,从而确定所述块中的哪些块允许读出信息。
17.如权利要求1的存储卡,其中:
所述存储装置包括一个非易失锁存储器(35),用于初始地接收和永久地存储与所述键值中的一个匹配的预定锁值;
所述微处理器(10-6)被配置成如果已经由所述主机(5)成功地完成了所述辨认处理,就在所述内部总线上向所述第二非易失存储器(103a)传送所述键值中的一个;
所述存取控制逻辑装置(32,34,39)被配置成检测何时所述传送的键值中的一个与所述锁值匹配,并且用于当所述匹配被确认时能够读所述存储阵列(54)。
18.一种用于构成可装在主计算机(5)内的安全存储卡的方法,所述安全存储卡包括多个非易失存储芯片(103a,103b,......103n),每个存储芯片包括由可寻址位置的块构成的存储阵列(54)和用于产生进行存储操作的指令信号的控制逻辑电路(50),所述方法包括下列步骤:
(a)将一微处理器(10)加入所述卡内,当把卡装于主计算机内时,它和主计算机相连而进行通信,所述微处理器包括可寻址的非易失存储器(10-2),用来存储包括用于限定用户对存储区的可存取性的多个键值的信息以及限定对所述存储区的可存取性的存储配置信息;
(b)在每个非易失存储芯片中装入安全逻辑电路,所述安全逻辑电路包括用来存储与所述键值中的一个匹配的一个预定的锁值的非易失锁存储器(35)、与所述锁存储器相连的存取控制逻辑装置(32,34,39),以及可寻址的易失存取控制存储器(43),它具有在数量上和所述块数相应的多个位置,用来按照所述配置信息存储可存取位信息;
(c)把所述微处理器和每个存储芯片互连,以便向每个存储芯片传送地址、数据和控制信息;
(d)修改所述控制逻辑电路(50),使其响应用于操作所述安全逻辑电路的多个指令;
(e)将所述微处理器(10-6)配置成当用户请求存取所述块时利用所述主计算机(5)进行开始预先建立的用户辨认操作;以及
(f)将所述微处理器(10-6)配置成只有当在步骤(e)中的辨认操作已被成功地完成时,才借助于所述微处理器传送给所述每一芯片一些所述指令中的专用指令以允许存储在不同块中的所述信息按照在所述存取控制存储器中存储的所述可存取位信息被读出,从而使能所述安全逻辑电路。
19.如权利要求18的方法,其中所述微处理器非易失存储器(10-2)具有若干个部分,并且其中步骤(a)中还包括使所述微处理器对所述键值产生随机值的步骤,并把所述键值装进所述若干部分的第一个部分(10-2b)。
20.如权利要求19的方法,其中所述微处理器还包括与所述微处理器非易失存储器(10-2)相连的间隔计数器(10-8),并且其中步骤(a)还包括使所述微处理器产生用户选择时间间隔并把相应于所述用户选择的时间间隔值装进所述间隔计数器的步骤,并且其中所述方法还包括下列步骤:
(g)使所述微处理器在所述用户选择的时间间隔内,定期地启动所述步骤(e)中的用户辨认操作;以及,
(h)只要在步骤(e)中的所述辨认操作被成功地完成,就按照所述可存取位信息继续允许存储在所述块中的所述信息被读出。
21.一种包括非易失存储部分和安全控制部分的非易失存储芯片(103a),所述存储部分包含由若干块组成的存储阵列(54),每个块具有多个可寻址单元,该存储部分还包含控制逻辑装置(50),用于执行存储操作,并且所述安全控制部分被连接到所述控制逻辑装置和所述存储阵列,所述安全控制部分包括:
多个非易失(31,35)和易失(33,34)存储装置,用来存储至少一个键值和与所述块相关的配置信息;以及
存取控制逻辑装置(32,34,39),它与所述控制逻辑装置(50)、所述存储装置相连,所述存取控制逻辑装置只有在所述存储芯片(103a)已从一个外部处理器(10)接收到一个信号时才允许按所述配置信息读取存储在所述存储阵列(54)中所述块中被寻址的一个所存储的信息,该信号表示已由一个用户完成了预定的辨认处理,并且启动所述存取控制逻辑装置(32,34,39)从而允许从所述存储阵列(54)中按照所述配置信息读出所述信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 94192020 CN1129098C (zh) | 1994-03-07 | 1994-03-07 | 一种安全存储卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 94192020 CN1129098C (zh) | 1994-03-07 | 1994-03-07 | 一种安全存储卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1122634A CN1122634A (zh) | 1996-05-15 |
CN1129098C true CN1129098C (zh) | 2003-11-26 |
Family
ID=5039543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 94192020 Expired - Fee Related CN1129098C (zh) | 1994-03-07 | 1994-03-07 | 一种安全存储卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1129098C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101283381B (zh) * | 2005-09-08 | 2011-12-14 | 卡德赖博私人有限公司 | 动态交易卡和将信息写入其中的方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1332289C (zh) * | 2004-06-14 | 2007-08-15 | 张毅 | 一种多媒体存储卡 |
-
1994
- 1994-03-07 CN CN 94192020 patent/CN1129098C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101283381B (zh) * | 2005-09-08 | 2011-12-14 | 卡德赖博私人有限公司 | 动态交易卡和将信息写入其中的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1122634A (zh) | 1996-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1082215C (zh) | 采用程控安全性访问控制的一种安全存储器卡 | |
US5293424A (en) | Secure memory card | |
EP1150300B1 (en) | Semiconductor storage device, control device, and electronic apparatus | |
US8281411B2 (en) | Security memory device and method for making same | |
US7979720B2 (en) | Data security for digital data storage | |
US6182217B1 (en) | Electronic data-processing device and system | |
US20070297606A1 (en) | Multiple key security and method for electronic devices | |
EP1684182B1 (en) | Enhanced security memory access method and architecture | |
US20060031687A1 (en) | Encryption/decryption methods and devices utilizing the same | |
CN1193168A (zh) | 半导体装置及电子机器 | |
JPS63127335A (ja) | 機密保護方式 | |
US8745410B2 (en) | Method and apparatus to scramble data stored in memories accessed by microprocessors | |
US7353403B2 (en) | Computer systems such as smart cards having memory architectures that can protect security information, and methods of using same | |
CN1129098C (zh) | 一种安全存储卡 | |
US7464260B2 (en) | Method for alternatively activating a replaceable hardware unit | |
WO1995024698A1 (en) | A secure memory card | |
US7437572B2 (en) | Key management device and method for the encrypted storage of digital data words | |
RU2677366C1 (ru) | Устройство хранения данных и способ его работы | |
US11620108B1 (en) | Random number generation systems and methods | |
JP2677342B2 (ja) | 携帯形半導体記憶装置システム | |
GB2263348A (en) | Securing program code. | |
US20060282683A1 (en) | Flash array read, erase, and program security | |
JP2507588B2 (ja) | 携帯形半導体記憶装置 | |
KR20040000924A (ko) | 플래시 메모리에 기반한 시스템 가이드 디바이스 및가이드 실행 방법 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20031126 Termination date: 20110307 |