用于外部存储器的数据保护器和数据保护方法

文档序号:6340063阅读:185来源:国知局
专利名称:用于外部存储器的数据保护器和数据保护方法
技术领域
本发明涉及用于外部存储器的数据保护器和数据保护方法。
背景技术
片外存储器,或者称为外部存储器,是指位于主机部分之外的存储器,其与主机部分通过接口相连。随着计算机技术以及与其相关的数据处理技术的发展,外部存储器被越来越广泛地使用以适应越来越高的数据存储容量要求以及灵活地进行存储的要求。随着外部存储器的广泛使用,外部存储器的数据安全问题日益突显出来。数据保密性是互联网技术信息安全的一个重要方面。保密信息的泄密会使用户遭受巨大的损失。无论是企业用户还是个人用户都需要高的数据安全性。在工业生产制造过程中,各个环节都有数据保密性要求。目前,在诸如SDRAM (Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)的外部存储器的应用中,通常不对这些外部存储器采取数据保护措施,从而使得外部存储器的数据被直接暴露在外部存储器总线上。这样,窃密者无需任何解密技术即可容易地解读存储在外部存储器上的信息。对于既有使用外部存储器的要求又需要数据保密的系统来说,这是一个难题。因此,需要一种对外部存储器进行数据保护的方法和装置。

发明内容
为了解决上述问题中的至少一个,本发明提供一种用于外部存储器的数据保护器,其包括密钥发生器,用于产生对所述外部存储器进行数据保护所需的密钥;以及地址映射电路,用于利用所述密钥发生器产生的密钥对用于访问所述外部存储器的输入地址进行加密运算,以生成与所述输入地址对应的目标地址。该数据保护器通过使用密钥对输入的访问地址,例如写数据地址,进行加密运算而将访问地址重新映射。由于地址经过加密运算被随机地重新映射,载送连续信息的数据块被随机地存储到外部存储器的位置不连续的多个存储单元中。这样,即使窃密者获得了外部存储器上的数据,由于存储位置的不连续性,他也可能无法正确地解读该数据代表的信息。由此,外部存储器上的数据被保护。优选地,所述数据保护器还包括数据编码器,所述数据编码器利用所述密钥发生器产生的密钥对要写入所述外部存储器的所述目标地址的输入数据进行加密运算,以生成与所述输入数据相对应的目标数据。优选地,所述数据保护器还包括数据解码器,所述数据解码器利用所述密钥对从所述外部存储器的目标地址读出的被加密的数据进行解密运算,以将所述被加密的数据解密为源数据。通过对数据进行加密运算,存储在外部存储器上的数据变成了密文,从而除了写地址被重新映射外又多了一层保护。要想正确解读该外部存储器上的信息,既要正确地解密数据又要正确地还原存储地址。
优选地,所述密钥发生器为真随机数发生器,所述真随机数发生器产生真随机数据作为所述密钥。由于密钥是真随机数据,地址映射和数据映射具有完全不可预测性,从而难以破解。优选地,所述真随机数发生器包括
随机源获取电路,用于引入环境噪声作为随机源;以及
随机信号产生电路,用于对所述随机源进行采集并放大以形成所述真随机数据。优选地,所述真随机数发生器包括存储模块,所述存储模块将所述真随机数据存储为使得所述真随机数据对于逻辑电路来说可运算但不可读。由于作为密钥的真随机数据不可读,窃密者无法通过监视密钥的传递而获得密钥。优选地,所述密钥发生器还包括更新触发电路,用于定时地或在控制信号的控制下触发真随机数据的重新产生。优选地,所述数据保护器还包括
地址高速缓存模块,用于对输入地址进行缓冲,其输出端连接到所述地址映射电路; 写数据高速缓存模块,用于对要写入所述外部存储器的输入数据进行缓冲,其输出端连接到所述数据编码器;
读数据高速缓存模块,用于对从所述外部存储器读出的数据进行缓冲,其输出端连接到所述数据解码器。根据本发明的另一方面,提供一种用于外部存储器的控制器,其包括如上所述的数据保护器。根据本发明的又一方面,还提供一种用于外部存储器的数据保护方法,包括产生对所述外部存储器进行数据保护所需的密钥;以及利用所述密钥对用于访问所述外部存储器的输入地址进行加密运算,以生成与所述输入地址对应的目标地址。所述方法还包括使用所述目标地址访问所述外部存储器。所述方法还包括利用所述密钥对要写入所述外部存储器的输入数据进行加密运算,以生成与所述输入数据相对应的目标数据;以及将所述目标数据写入所述目标地址。所述方法还包括利用所述目标地址从所述外部存储器读出被加密的数据;以及利用所述密钥对所述被加密的数据进行解密运算,以将所述被加密的数据解密为源数据。优选地,所述密钥为真随机数据。优选地,产生对所述外部存储器进行数据保护所需的密钥的步骤包括引入环境噪声作为随机源;以及对所述随机源进行采集并放大以形成所述真随机数据作为所述密钥。优选地,产生对所述外部存储器进行数据保护所需的密钥的步骤还包括将所述真随机数据存储为使得所述真随机数据对于逻辑电路来说可运算但不可读。优选地,产生对所述外部存储器进行数据保护所需的密钥的步骤还包括定时地或在控制信号的控制下触发真随机数据的重新产生。优选地,所述加密运算采用的是散列算法。优选地,对所述输入数据进行的所述加密运算采用的是能够进行对称加密的多项式算法。优选地,所述多项式算法是改进的DES (Data Encryption Mandard,数据加密标准)算法。优选地,所述目标地址与所述输入地址是唯一地对应的。通过本发明的上述各个方面,改进了目前对存储器的控制技术,加强了对外部存储器、特别是专用的外部存储器的数据保护能力,从而可以防止外部存储器上的内容遭到强制读写和破解。


参照结合附图的以下详细描述,本发明实施例的各种特征可以更容易理解。贯穿附图,相同的附图标记表示相同或相似的元素,并且在附图中
图1示出了其中实现了本发明的原理的系统架构示意图; 图2是根据本发明的一个实施例的示出数据保护器的主要组成模块的框图; 图3是根据本发明的一个实施例的示出密钥发生器的主要组成模块的框图; 图4是根据本发明的另一实施例的示出数据保护器的主要组成模块的框图; 图5是根据本发明的一个实施例的示出产生真随机数据作为密钥的操作的流程图; 图6是根据本发明的一个实施例的示出将数据写入外部存储器的操作的流程图; 图7是根据本发明的一个实施例的示出从外部存储器读出数据的操作的流程图。
具体实施例方式在优选实施例的以下详细说明中,对附图进行参考,其构成本说明书的一部分,并且其中以举例说明的方式示出可以实施本发明的特定实施例。应理解的是,可以利用其它实施例,或者可以在不脱离本发明的范围的情况下进行结构上的或逻辑上的修改。因此,不应在限制性的意义上理解以下详细说明。图1示意性地示出了其中实现了本发明的原理的系统架构图。在该系统中,外部存储器200位于系统的主机部分100的外部,通过主机部分100的接口 101连接到主机部分100,以与主机部分100进行通信。主机部分100可以是任何具有控制或处理数据的能力的芯片、集成电路板或设备。外部存储器200可以是任何计算机可读存储介质。所述接口 101 诸如但并不限于 ATA (Advanced Technology Attachment,高级技术连接)、SCSI (Small Computer System hterface,小型计算机系统接口)、USB(通用串行总线)、以太网、 FC (Fiber Channel,光纤通道)和InfiniBand等。数据保护器300用于对外部存储器进行数据保护。例如,数据保护器300通过对外部存储器的读、写操作进行控制来实现该保护。 数据保护器300通常集成在对外部存储器进行控制的控制器(未示出)中。在本实施例中, 虽然数据保护器300被示出为被包含在主机部分100中,即位于片内,但本领域技术人员在阅读本说明书之后将容易地认识到,数据保护器300也可以作为一个独立部件而位于主机部分之外。图2的框图进一步详细示出了根据本发明的一个实施例的数据保护器300的主要组成模块。在本实施例中,数据保护器300通过对用于访问外部存储器200的地址利用密钥重新映射来对外部存储器200进行数据保护。数据保护器300包括密钥发生器301,其用于产生对所述外部存储器进行数据保护所需的密钥。密钥发生器301的非限制性的示例包括本领域已知的伪随机序列发生器,用于产生伪随机序列作为密钥。优选地,所述密钥发生器301为真随机数据发生器。所产生的密钥被存储在存储模块中以供加密时使用。优选地,所产生的密钥以不可读但可对其进行运算的方式存储在密钥发生器301的存储模块(未示出)中,以免密钥被窃取。所述不可读但可对其进行运算的方式是指密钥不可被从存储模块读取,但可以在控制信号的控制下被输入到进行加密/解密运算的单元(诸如下文中所述的地址映射电路 302、数据编码器406或数据解码器407)与被加密数据或地址一起被运算,在该过程中密钥无法通过软件读取或者人为主动读取。这可以通过不向该存储模块分配总线地址的方式来实现。所述控制信号可以由外部存储器的读写控制模块(未示出)发出。数据保护器300还包括地址映射电路302。该地址映射电路302利用密钥发生器 301所产生的密钥对用户输入的用于访问外部存储器200的某存储单元的地址进行加密运算,产生重新映射后的目标地址。基于密钥的加密算法通常有两类对称算法和公开密钥算法,这里主要介绍对称算法。对称算法就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何得到密钥的人都能对消息进行加/解密。对称算法可分为两类。序列密码(流密码)与分组密码。序列密码一直是军方和政府使用的主要密码技术之一。在常用的现有技术中,序列密码的主要原理是通过伪随机序列发生器产生性能优良的伪随机序列,然后使用该序列加密信息流(逐比特加密)以得到密文序列。所以,序列密码算法的安全强度完全决定于伪随机序列的好坏。伪随机序列发生器利用输入的真随机的较短的原始密钥(种子)通过某种复杂的运算产生大量的伪随机位流。序列密码算法将明文逐位地转换成密文。该算法最简单的应用如下所示。密钥流发生器(例如伪随机序列发生器)输出一系列比特流K1,K2,K3,……Ki作为密钥比特流。 将该密钥比特流与明文比特流Pl,Ρ2,Ρ3,……Pi进行异或运算产生密文比特流
Ci = Pi K i
在解密端,密文比特流与完全相同的密钥比特流异或运算恢复出明文比特流 Pi = Ci Ki
对于一个序列来说,如果对所有的i总有Ki+p=Ki,则该序列是以ρ为周期的,满足条件的最小的P称为序列的周期。密钥流发生器产生的序列周期应该足够的长。产生好的序列密码的主要途径之一是利用移位寄存器产生伪随机序列,典型的方法有
反馈移位寄存器采用非线性反馈函数产生大周期的非线性序列; 利用线性移位寄存器序列加非线性前馈函数,产生前馈序列;以及钟控序列,利用一个寄存器序列作为时钟控制另一寄存器序列(或自己控制自己)来产生钟控序列,这种序列具有大的线性复杂度。基于移位寄存器的序列密码应用十分广泛。一个反馈移位寄存器由两部分组成移位寄存器和反馈函数。移位寄存器的长度用位表示,如果是η位长,称为η位移位寄存器。移位寄存器每次向右移动一位,新的最左边的位根据反馈函数计算得到,移位寄存器输出的位是最低位。最简单的反馈移位寄存器是线形反馈移位寄存器,反馈函数是寄存器中某些位的简单异或。但是,基于伪随机算法的加密方法存在一定的弊端。例如,产生密钥和加密的算法为某种固定的形式,即使数列在一定的范围内随机,但总有一个最大的循环周期,因此容易被暴力破解。并且,密钥的传递过程容易被监视,导致密钥泄露,从而窃密者可以轻易获得数据。本发明优选实施例中的真随机数据发生器克服了以上缺点中的一个或多个。在该优选实施例中,真随机源为系统的电路环境中的噪声源信号,诸如静电、干扰或噪声等。该环境噪声源信号会随着温度、时间等因素而变化,且具有完全不可预测性。如图3所示,在本实施例中作为密钥发生器301的真随机数据发生器包括随机源获取电路3011和随机信号产生电路3012。随机源获取电路3011对系统中的电路环境噪声进行感测,并将所感测到的噪声信号输入到随机信号产生电路3012,随机信号产生电路3012继而对该噪声信号进行采样并进行诸如放大的信号处理以产生作为密钥的数据。所产生的密钥数据以不可读但可对其进行运算的方式被存储在存储模块(未示出)中。随机源获取电路3011的非限制性示例包括例如频率可受噪声源影响的时钟电路,或者对噪声源敏感的传感器。随机源获取电路3011可以对系统中的例如主机部分100的环境噪声进行感测以获得密钥数据。当然, 也可对主机部分100之外的环境噪声进行感测,例如对系统中与数据保护器200相连的其它电路部分的环境噪声进行感测。由于诸如静电、干扰或噪声等的环境噪声具有完全不可预测性,因此本实施例的密钥发生器产生的是真随机数据。使用完全不具有可预测性的真随机数据作为密钥,使得加密后的数据或地址更加难以破解,增强了系统的安全性。另外,如图3所示,真随机数据发生器还可以包括更新触发电路3013。随机源的获取可以在系统的每次复位或上电操作后在随机的时间进行。之后,当需要更新作为密钥的真随机数据时(例如需要更新目标地址映射集时),更新触发电路3013命令随机源获取电路3011重新获取随机噪声源以产生新的真随机数据。该操作可以定时地或在控制信号的控制下进行。在优选实施例中,在系统每次复位后,密钥是保持不变的,在系统完全丢弃存储器中的数据或者系统复位、掉电的时候会更新密钥。图5示出了根据上述实施例的用于产生真随机数据作为密钥的操作的流程图。在步骤501,随机源获取电路3011感测环境噪声以获取真随机源。在步骤502,随机信号产生电路3012对真随机源信号进行采样并进行信号处理以产生真随机数据。在步骤503,将所产生的真随机数据以不可读但可对其进行运算的方式存储作为密钥。在步骤504,响应于周期性的定时信号或用户的控制信号而触发密钥数据的更新。返回参考图2,地址映射电路302利用真随机数据作为密钥对输入地址进行加密运算。地址映射电路302以一种可进行对称加密的多项式算法为基础,将输入的源地址以密钥发生器产生的真随机数据为密钥进行多项式运算后,输出与输入地址唯一地对应的目标地址,完成地址映射。对地址进行加密的算法可以采用现有技术中已知的各种加密算法。作为加密算法的一个示例,地址映射电路302的多项式可以采用32位的对称算法,并采用并行电路实现。一个示例是32位的CRC(Cyclic Redundancy Check,循环冗余校验),它是一种对称的散列算法。以此算法为基础,将密钥作为每次运算的初值,将电路转化为并行运算,使得运算过程在一个周期内得到结果,从而保证了数据流的连续性。计算得到的目标地址与输入的源地址是一一对应的。由于密钥的真随机性,映射关系具有不确定性。这样,对应于一组连续源地址的数据块可被随机地分散存储在外部存储器200中不连续的位置中。在这种情况下,即使外部存储器200中的数据被窃取,由于存储位置的随机性和不连续性,要正确地解读信息也比较困难。因此,实现了对外部存储器 200的数据保护。如图2所示,数据保护器300还可以包括地址高速缓存模块303、写数据高速缓存模块304和读数据高速缓存模块305,用于分别对用于访问外部存储器200的输入地址、要写入外部存储器200的输入数据以及从外部存储器200读出的数据进行缓冲。地址高速缓存模块303的输出端连接到地址映射电路302。所述地址高速缓存模块303、写数据高速缓存模块304和读数据高速缓存模块305每个均由标志部分、数据部分和控制部分组成。每个标志部分均包括满标志、空标志和半满标志,用来标志当前写入该相应的高速缓存模块 303、304或305中且未被读出的数据占该缓存模块的容量的状态。各数据部分分别包括有效的地址、写数据或读数据的存储队列,地址、写数据或读数据以先进先出的顺序通过相应高速缓存模块的输出端。每个控制部分均包括读地址指针、读数据有效标志、写地址指针、 写数据有效标志。虽然在本实施例中将地址高速缓存模块303、写数据高速缓存模块304和读数据高速缓存模块305示出为被包括在数据保护器300中,但应当理解的是,这些模块并不是必须的,且这些模块可以位于数据保护器300之外。图4是示出根据本发明的另一实施例的数据保护器400的框图。在本实施例中,数据保护器400除了包含数据保护器300所具有的密钥发生器301、地址映射电路302、地址高速缓存模块303、写数据高速缓存模块304和读数据高速缓存模块305之外,还包括数据编码器406和数据解码器407。数据编码器406用于利用密钥发生器301产生的密钥对要写入外部存储器200的输入数据进行加密运算。数据解码器407利用密钥发生器301产生的密钥对从外部存储器200读出的被加密的数据进行解密运算,以将被加密的数据解密为源数据。其中,写数据高速缓存模块304的输出端连接到数据编码器406的输入端,数据解码器407的输出端连接到读数据高速缓存模块305的输入端。要写入外部存储器200的数据首先输入到写数据高速缓存模块304进行缓冲,然后输出到数据编码器406以进行加密。 从外部存储器200读出的数据被数据编码器406解密后输出到读数据高速缓存模块305进行缓冲,然后被发送到目标单元。数据保护器400还可以包括读写控制模块(未示出),其将加密后的写数据写入与用于写数据的重新映射的地址对应的存储单元中,以及根据用于读数据的重新映射的地址,从与该重新映射的地址相对应的存储单元中读出被加密的数据。当然,该读写控制模块也可以不集成在数据保护器400中,而是作为外部存储器200的控制器的一部分。在上面的实施例中,既对源地址进行了重新映射,又对要写入外部存储器的数据进行了加密,从而实现了对外部存储器的双重保护。但应当理解的是,上述两种手段并不必须同时使用。在只采用其中的一种的情况下,例如在仅对写数据进行加密的情况下,也可以达到对外部存储器进行数据保护的目的。对数据进行的加密运算可以应用现有技术中的各种加密算法。作为示例,加密运算的多项式算法采用改进的DES (Data Encryption Mandard,数据加密标准)算法,比如 TDES算法,其要求是可以进行对称加密的算法。这样在解密的时候可以采用同组随机密钥对存储器内的数据进行解密。诸如TDES的加密算法采用流水线技术对输入的数据进行逐次迭代,并保证数据流的连续性。在一个优选实施例中,可以将数据编码模块和数据解码模块实现为单个数据编/ 解码模块。该数据编/解码模块具有三个输入端口 密钥输入端口、数据输入端口、模式控制端口,以及一个数据输出端口。作为示例,采用8个字节共64位的密钥作为DES算法的工作密钥。要被加密或被解密的数据也是8个字节64位。该数据编/解码模块有两种工作模式加密或解密。当进行写操作时,通过模式控制端口将该数据编/解码模块置为加密模式,则数据编/解码模块用密钥把数据进行加密,生成数据的密文形式(64位)作为输出结果。当进行读操作时,通过模式控制端口将该数据编/解码模块置为解密模式,则数据编 /解码模块用密钥把密文形式的数据解密,还原为数据的明文形式(64位)作为输出结果。 由于DES算法是本领域中常见的算法,因此此处不再对其进行详细描述。图6示出了根据本发明的一个实施例的将数据写入外部存储器的操作的流程图。 当外部存储器控制器收到对外部存储器200进行写操作的命令后,写操作开始。在步骤 601,利用密钥将用于写数据的源地址经过加密运算重新映射成目标地址。在步骤602,利用密钥对与该源地址相对应的写数据进行加密运算,以得到加密后的目标数据。在步骤603, 将加密后的目标数据写入外部存储器200的目标地址。虽然在图6中将步骤601和602作为依次执行的步骤示出,但应当理解的是,步骤601和602可以同时进行,或者可以先执行步骤602,再执行步骤601。图7示出了根据本发明的一个实施例的从外部存储器读出数据的操作的流程图。 当外部存储器控制器收到对外部存储器进行读操作的命令后,写操作开始。在步骤701,利用密钥将用于读数据的源地址经过加密运算重新映射成目标地址。在步骤702,从外部存储器的该目标地址读出被加密的数据。在步骤703,利用密钥对所述被加密的数据进行解密运算,以得到相对应的源数据,即得到解密后的明文数据。这里,从源地址得到的目标地址与在该数据的写入期间所得到的目标地址是一致的。也就是说,如果在写入期间,与输入的源地址A对应的数据B被写入到了目标地址C中,那么在读出期间,由于使用的是同样的密钥,因此由源地址A得到的目标地址同样是C,从而读出的正是与源地址A对应的数据B。根据本发明的真随机数据发生电路具有不可逆性,即信号并不只依靠电路行为产生。该真随机数据发生电路的随机源由随机信号引起,该随机信号的电平具有不可重复性和不可预测性,完全随机,且不可读取。因此,对地址的重映射过程不可预测,从而在未知情况下将数据存储到片外存储器的某地址中,具有硬件不可追溯性。并且,基于地址随机重映射后的数据,位置不连续,具有应对物理强制读取的数据无序性。本发明在诸如SDRAM的外部存储器的控制器内引入基于真随机数的散列算法和基于真随机数的对称加密算法,使得数据的存储得到了很高的保密性,且其地址分配随机、 不可预测,使得数据加密具备随机性和不可预测性。在上文中针对外部存储器描述了本发明的原理,但应当理解的是,本发明的数据CN 102541762 A保护方法以及数据保护装置也适用于内部存储器。 虽然已相对于特定装置、配置、部件、系统和操作方法描述了本发明,但本领域普通技术人员在阅读本说明书后应认识到,可以在不脱离本发明的精神或范围的情况下对本文所述的实施例和/或其操作进行一定的变更或修改。因此,由所附的权利要求来定义本发明的适当范围。本文所公开的各种实施例、操作、部件和配置一般是示例性的,而并不意图限制范围。
权利要求
1.一种用于外部存储器的数据保护器,其特征在于,包括密钥发生器,用于产生对所述外部存储器进行数据保护所需的密钥;以及地址映射电路,用于利用所述密钥发生器产生的密钥对用于访问所述外部存储器的输入地址进行加密运算,以生成与所述输入地址对应的目标地址。
2.如权利要求1所述的数据保护器,其特征在于,还包括数据编码器,所述数据编码器利用所述密钥发生器产生的密钥对要写入所述外部存储器的所述目标地址的输入数据进行加密运算,以生成与所述输入数据相对应的目标数据。
3.如权利要求1一 2中任一项所述的数据保护器,其特征在于,所述密钥发生器为真随机数发生器,所述真随机数发生器产生真随机数据作为所述密钥。
4.如权利要求3所述的数据保护器,其特征在于,所述真随机数发生器包括存储模块, 所述存储模块将所述真随机数据存储为使得所述真随机数据不可读但可对所述真随机数据进行运算。
5.一种用于外部存储器的控制器,其包括如权利要求1 一 4中任一项所述的数据保护 ο
6.一种用于外部存储器的数据保护方法,包括产生对所述外部存储器进行数据保护所需的密钥;以及利用所述密钥对用于访问所述外部存储器的输入地址进行加密运算,以生成与所述输入地址对应的目标地址。
7.如权利要求6所述的方法,还包括使用所述目标地址访问所述外部存储器。
8.如权利要求6或7所述的方法,还包括利用所述密钥对要写入所述外部存储器的输入数据进行加密运算,以生成与所述输入数据相对应的目标数据;以及将所述目标数据写入所述目标地址。
9.如权利要求6所述的方法,其中所述密钥为真随机数据。
10.如权利要求9所述的方法,其中产生对所述外部存储器进行数据保护所需的密钥的步骤还包括将所述真随机数据存储为使得所述真随机数据不可读但可对所述真随机数据进行运算。
全文摘要
本发明涉及用于外部存储器的数据保护器和数据保护方法。根据本发明的一种用于外部存储器的数据保护器包括密钥发生器,用于产生对所述外部存储器进行数据保护所需的密钥;以及地址映射电路,用于利用所述密钥发生器产生的密钥对用于访问所述外部存储器的输入地址进行加密运算,以生成与所述输入地址对应的目标地址。通过本发明,可以对外部存储器进行有效的数据保护。
文档编号G06F12/14GK102541762SQ20101060723
公开日2012年7月4日 申请日期2010年12月27日 优先权日2010年12月27日
发明者郭旭 申请人:北京国睿中数科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1