处理器、存储器装置、计算机系统以及传输数据的方法

文档序号:6556952阅读:178来源:国知局
专利名称:处理器、存储器装置、计算机系统以及传输数据的方法
技术领域
本发明涉及处理器、用于存储处理器利用的数据的存储器、包括处理器和存储器的计算机系统、以及用于在计算机系统中传输数据的方法。
背景技术
计算机结合在许多产品中,例如数码相机、数字电视、DVD播放器、DVD/HDD记录器、游戏机、蜂窝电话、便携音频播放器、交通工具的控制单元等。结合计算机的这些装置和系统具有版权保护内容。这些装置和系统也处理重要信息,例如私人信息和会计信息。
不正当的活动已经成为这些装置和系统的问题,所述活动包括解密后的内容的未经授权的复制,以及运行未经授权的程序时私人信息的获取和会计信息的篡改。
作为通过观察连接处理器和存储器的总线上的信号防止数据(包括程序)的非法获取的方法,例如日本专利申请特开号2003-298569公开了处理器在存储器中写入数据时加密并进行处理,在从存储器读取加密数据之后解密并进行处理。这样,因为加密数据只在连接处理器和存储器的总线上流动,在没有获知解密密钥的情况下不可能读取数据。
然而,在加密数据时使用强加密例如公共密钥加密成为必需,以防止第三方的密码分析。然而,这种强加密需要较高的处理成本用于加密和解密,并成为增加处理速度的障碍。

发明内容
根据本发明的一个方面,一种连接至存储器装置的处理器,包括随机数产生器,产生与在所述存储器装置中产生的随机数相同的随机数;XOR逻辑单元,执行所述随机数与所述存储器装置中将被访问的地址的XOR运算;以及运算后地址发送单元,发送表明所述XOR运算的结果的运算后地址。
根据本发明的另一个方面,一种用于存储处理器利用的数据的存储器装置,包括运算后地址获取单元,从所述处理器获取运算后地址,所述运算后地址表明所述存储器装置中将被所述处理器访问的地址与所述处理器产生的随机数的XOR运算的结果;随机数产生器,产生与所述处理器产生的随机数相同的随机数;XOR逻辑单元,通过执行所述运算后地址与所述随机数产生器产生的随机数的XOR运算,指定所述数据的地址;以及控制单元,允许访问指定地址。
根据本发明的另一个方面,一种计算机系统包括处理器,执行运算;以及存储器装置,存储所述处理器利用的数据。所述处理器包括随机数产生器,产生与在所述存储器装置中产生的随机数相同的随机数;第一XOR逻辑单元,执行所述随机数与所述存储器装置中将被访问的地址的XOR运算;以及运算后地址发送单元,发送表明所述XOR运算的结果的运算后地址。所述存储器装置包括运算后地址获取单元,从所述处理器获取运算后地址;随机数产生器,产生与在所述处理器中产生的随机数相同的随机数;第二XOR逻辑单元,通过执行所述运算后地址获取单元获取的所述运算后地址与所述存储器装置的所述随机数产生器产生的随机数的XOR运算,确定所述存储器装置中将被访问的地址;以及控制单元,允许访问指定地址。
根据本发明的另一个方面,一种用于在处理器和存储器装置之间传输数据的方法,所述存储器装置用于存储操作处理器利用的数据,包括以下步骤通过所述处理器产生与在所述存储器装置中产生的随机数相同的随机数;通过所述处理器执行所述产生的随机数与所述存储器装置中将被所述处理器访问的地址的XOR运算;发送表明所述运算的结果的运算后地址;通过所述存储器装置从所述处理器获取运算后地址;通过所述存储器装置产生与所述处理器产生的随机数相同的随机数;在执行所述运算后地址与所述存储器装置产生的随机数的XOR运算时,确定将被所述存储器装置访问的地址;以及允许访问所述存储器装置指定的地址。


图1是示出根据本发明的第一实施例的计算机系统的整个结构的框图;图2是示出根据本发明的第二实施例的计算机系统的整个结构的框图;图3是示出根据本发明的第三实施例的计算机系统的整个结构的框图;图4是示出根据本发明的第四实施例的计算机系统的整个结构的框图;图5是示出根据本发明的第五实施例的计算机系统的存储器控制单元的详细功能结构的框图;以及图6是示出根据本发明的第五实施例的计算机系统中的高速缓冲行和存储器之间的数据传输期间的典型总线操作条件的图。
具体实施例方式
下面,将参考附图详细说明根据本发明的处理器、存储器装置、计算机系统以及传输数据的方法的示例性实施例。然而,本发明并不限于这些实施例。
图1是示出根据本发明的第一实施例的计算机系统1000的整个结构的框图。计算机系统1000包括处理器10和存储器20。处理器10包括存储器控制单元100、处理单元110、控制单元120、随机数产生器130、以及异或(XOR)逻辑单元140。存储器20包括存储器装置200、随机数产生器230、以及XOR逻辑单元240。处理器10和存储器20通过总线相互连接。
作为总线,有地址总线300、数据总线310、以及控制总线320。指定存储单元的地址信号在地址总线300中流动。与指定地址相对应的数据信号在数据总线310中流动。指定以读取和写入的控制信号在控制总线320中流动。
处理器10的存储器控制单元100读取来自存储器20的数据并将数据写入存储器20。处理单元110具有用于临时存储数据的寄存器。处理单元110通过存储器控制单元100获取来自存储器20的数据,并使用寄存器处理数据。控制单元120管理在处理单元110中运行的程序。
随机数产生器130产生基于种子(seed)即初始值确定的随机数序列。根据该实施例的随机数产生器130产生与地址的位长度相同位长度的随机数。具体,线性反馈移位寄存器(LFSR)用作随机数产生器130。
XOR逻辑单元140进行通过随机数产生器130产生的随机数与通过存储器控制单元100获取的地址的XOR运算。也就是说,执行地址将要在地址总线300上输出的XOR运算。
XOR逻辑单元140可以称为运算后地址发送单元。
存储器20的存储器装置200存储例如处理单元110利用的数据。随机数产生器230产生基于如在随机数产生器130中设定的种子确定的随机数序列。XOR逻辑单元240进行通过随机数产生器230产生的随机数与从处理器10接收的运算后地址的XOR运算,象XOR逻辑单元140那样。随机数产生器130和随机数产生器230产生与相同种子对应的随机数序列XOR逻辑单元240也可以称为运算后地址获取单元。
例如,当通过地址总线300将地址“A”从处理器10发送到存储器20时,XOR逻辑单元140进行所讨论的地址“A”和随机数“B”的XOR运算,并得到值“C”。然后,通过地址总线300将该XOR值“C”发送到存储器20。
存储器20接收该XOR值“C”。然后,XOR逻辑单元240进行接收值“C”和通过随机数产生器230产生的随机数“B”的XOR运算。随机数产生器130和随机数产生器230产生相同的随机数。由此,通过XOR逻辑单元240的运算获取的值是地址“A”。
然后,相对于通过在存储器装置200获取的地址“A”指定的数据进行通过控制信号指定的读取/写入处理。
这样,表明XOR值“C”的信号只在地址总线300中流动,这防止具有不正当意图的第三方确定真实地址,即使他们读取了在地址总线300中流动的地址。
考虑安全性的提高,随机数产生器130和随机数产生器230优选在从处理器10访问存储器20的任何时候产生新的随机数。此时,通过随机数产生器130和随机数产生器230同时产生的随机数是相同的随机数。
这样,通过加密地址,即使通过监视地址总线300获取数据,不能确定相应的地址,并因此不能复制存储器内容。
此外,在计算机中使用的数据的值经常为零,而地址很少为零。对于指定为按较高级别和较低级别地址划分地址的存储器例如DRAM,例如,当在地址正在增加时访问时,较高级别地址与较低级别地址交织,其不允许简单增加地址序列。因此,地址加密比数据加密显示出对密码分析的更强抵抗。
上面说明了本发明的一个实施例;然而,可以对上述实施例进行改变和修改。
作为第一修改,当随机数产生器130和随机数产生器230共享种子时,处理器10和存储器20安全地需要共享相同的种子。由此,例如,处理器10确定种子并加密种子,以将其传输到存储器20的XOR逻辑单元240。
此时使用常规密钥加密作为加密方法。也可以使用公共密钥加密。与在开始时在处理器和存储器之间简单共享随机数的种子不同,优选改变随机数产生序列,如在运算期间改变为新种子。
对于该实施例的第二修改,该实施例已经描述了加密在处理器10和存储器20之间的总线中流动的地址;然而,并不限于此。例如,可以在视频处理器或输入输出装置和存储器或处理器之间的总线中进行加密。
图2是示出根据本发明的第二实施例的计算机系统2000的整个结构的框图。根据第二实施例的计算机系统2000的处理器2010除了根据本发明的第一实施例的处理器10的部件之外,包括加密/解密单元150。此外,根据第二实施例的计算机系统2000的存储器2020除了根据第一实施例的存储器20的部件之外,包括加密/解密单元250。
加密/解密单元150在XOR逻辑单元140进行XOR运算之前使用地址或其部分加密将要发送到数据总线310的数据。加密/解密单元250使用地址或其部分作为通过XOR逻辑单元240确定的密钥解密。使用常规密钥解密方法用于加密和解密。
这样,根据第二实施例将XOR运算的值而不是地址的值发送到计算机系统2000中的地址总线300。也就是说,地址被加密发送。由此,监视地址总线300不能确定地址的值。
具体地,当处理器2010将数据写入存储器2020时,加密/解密单元150加密数据并将加密数据发送到数据总线310。然后,加密/解密单元250使用通过XOR逻辑单元240获取的地址或其部分解密通过数据总线310接收的加密数据。
与上述相反,当处理器2010读取存储器2020时,加密/解密单元250加密数据并将加密数据发送到数据总线310。然后,加密/解密单元150使用地址或其部分解密通过数据总线310接收的加密数据。
这样,除了将加密地址传输到地址总线300之外,还将数据加密并发送到数据总线310,提高了安全性。
根据第二实施例的计算机系统2000的其它结构和处理与根据第一实施例的计算机系统1000相同。
作为另一实例,该实施例使用常规密钥加密方法作为加密方法,但是它不限于常规密钥加密,可以采用公共密钥加密。
图3是示出根据本发明的第三实施例的计算机系统3000的整个结构的框图。根据第三实施例的计算机系统3000的处理器3010具有置换/反转置换电路160而不是加密/解密单元150。此外,计算机系统3000的存储器3020具有置换/反转置换电路260而不是加密/解密单元250。
根据第三实施例的计算机系统3000的置换/反转置换电路160按数据的每位或字置换,并还进行置换数据的反转置换,即返回初始顺序。置换/反转置换电路260也按数据的每位或字置换或反转置换。
例如,如图3所示,当在存储器3020中写入包括四个字节“A”、“B”、“C”和“D”的一个字时,置换/反转置换电路160置换四个字节的顺序。具体地,根据置换/反转置换方法,根据在XOR运算之前地址的值,每字节替换位置。此外,更具体地,置换/反转置换电路160基于地址存储用于确定置换方法的规则,并基于规则确定置换方法。例如,置换/反转置换电路160存储使地址和置换方法相关联的关联表。
在图3的实例中,置换/反转置换电路160将“A”、“B”、“C”和“D”的顺序置换为“C”、“A”、“D”和“B”。将置换后的数据发送到数据总线310。
置换/反转置换电路260从数据总线310接收置换后的数据。然后,根据通过XOR逻辑单元240获取的地址确定的置换方法设定的置换方法,即与置换/反转置换电路160置换的置换方法相同的置换方法,进行反转置换,从而获得置换前的数据“A”、“B”、“C”和“D”。将数据写入存储器3020。
对于第三实施例,计算机系统3000的其它结构和处理与其它实施例中的计算机系统相同。
作为另一实例,在该实施例中,以包括四个字节的一个字为每个单位进行数据置换;然而,本发明并不限于此。例如,可以使用两个字作为一个单位进行数据置换。
图4是示出根据本发明的第四实施例的计算机系统4000的整个结构的框图。根据本发明的第四实施例的计算机系统4000与根据第二实施例的计算机系统2000相同,除了第四实施例不包括加密/解密单元250。
在根据第四实施例的计算机系统4000中,处理器4010将通过加密/解密单元150加密的数据发送到数据总线310。然后,存储器4020在存储器装置200中记录从数据总线310接收的加密数据作为加密的数据。当处理器4010读取数据时,处理器4010的加密/解密单元150再次通过用于加密的地址解密。
这样,通过在存储器装置200中记录加密数据,具有不正当意图的第三方不能确定数据,即使他们试图读取在存储器装置200中存储的数据,从而提高了安全性。
在第四实施例中说明的结构也可以在第三实施例中使用。
下面将说明根据第五实施例的计算机系统。根据第五实施例的计算机系统的整个结构与参考图1说明的第一实施例中的相同。根据第五实施例的计算机系统与第一实施例的计算机系统1000的不同在于存储器控制单元100的详细结构和处理。
图5是示出根据本发明的第五实施例的计算机系统的存储器控制单元100的详细功能结构的框图。存储器控制单元100包括高速缓冲存储器102、高速缓冲管理单元104、传输序列改变单元106、以及随机数产生器108。
高速缓冲存储器102在与存储器20、2020、3020、4020中的一个对应的存储器(下文称为“存储器20”作为他们的代表)中存储数据。按每单元即高速缓冲行(例如四个字或八个字的尺寸)来进行高速缓冲存储器102和存储器20之间的数据传输。通常,高速缓冲行的尺寸大于读取/写入存储器20的数据尺寸。因此,可以通过相对于多个连续地址读取/写入存储器20,进行读取/写入一个高速缓冲行。
高速缓冲管理单元104管理高速缓冲存储器102,并还指示相对于传输序列改变单元106每高速缓冲行从存储器读取或写入存储器。
传输序列改变单元106基于高速缓冲管理单元104的指示,当连续访问存储器时置换访问顺序。也就是说,传输序列改变单元106将读取连续数据的顺序从存储器20中的指定地址置换成指定高速缓冲行。可选地,传输序列改变单元106在存储器20中指定地址之后置换连续写入指定高速缓冲行的数据的顺序。
更具体地,不是在存储器的连续区域中顺序访问指定地址,而是基于随机数产生器108产生的随机数确定访问顺序。传输序列改变单元106基于随机数存储用于确定顺序的规则。传输序列改变单元106基于规则确定顺序。随机数产生器108产生用于在传输序列改变单元106中确定传输顺序的随机数。
例如,即使加密存储器总线的地址,进行相对于连续地址的读取/写入,同时读取/写入高速缓冲行。在根据该实施例的计算机系统中,当连续访问存储器时,例如当读取/写入高速缓冲行时,置换存储器访问顺序,从而防止具有不正当意图的第三方猜测访问顺序。
图6是示出根据本发明的第五实施例的计算机系统中在高速缓冲行和存储器之间的数据传输期间的总线操作的实例图。在图6所示的实例中,高速缓冲行比存储器的数据宽度大四倍,以及对于一个高速缓冲行数据传输,存储器需要被访问四次。这里,将高速缓冲行的四个字的数据传输到从地址A0起始的四个字的区域。
图6示出了传输序列改变单元106分别确定传输顺序即“A2”、“A0”、“A3”和“A1”的实例。此时,作为加密“A2”的“A2′”、作为加密“A0”的“A0′”、作为加密“A3”的“A3′”和作为加密“A1”的“A1′”以此顺序分别在总线上的地址信号上流动。
此外,在数据总线310中,数据以“D2”、“D0”、“D3”和“D1”的顺序流动。也就是说,“D2”在循环n中传输,“D0”在循环n+1中传输,“D3”在循环n+2中传输,以及“D1”在循环n+3中传输。
这里,在此实施例中,第五实施例的存储器控制单元100具有传输序列改变单元106;然而,传输序列改变单元106可以设置在不同于存储器控制单元100的装置中。
传输序列改变单元106使用这样的信号,该信号表明存储器访问在存储器访问处具有一个字或多个字以指定是否具有一个字存储器访问或多个字存储器访问。当它是多个字存储器访问时,存储器访问的顺序将被置换以发送到数据总线310。另一方面,如果它是一个字存储器访问,当它到达数据总线310时所述顺序将被发送。读取数据可以遵循相同过程。也就是说,如果具有多个字存储器访问,数据将以置换顺序获取。
在该实施例中,基于随机数产生器108产生的随机数置换传输顺序;然而,可以使用不同于随机数的其它信息。例如,可以在处理器中加载预设值。此外,考虑到安全性,如实施例所述,优选在传输数据的每个时刻产生随机数,并基于产生的随机数改变传输顺序。
同样,尽管该实施例说明了高速缓冲和存储器之间的数据传输,数据传输不限于它们之间。例如,它可以用于各种连续数据传输例如DMA(直接存储器访问)。
如上所述,这些实施例的处理器、存储器、计算机系统以及用于数据传输的方法具有的优点是防止了处理速度的降低以及不正当活动例如对计算机的不正当访问。
其它优点和修改对于本领域的技术人员显而易见。因此,本发明在其较宽方面不限于这里示出和描述的具体细节和代表性实施例。因此,只要不脱离由所附权利要求和它们的等同物限定的总发明构思的精神或范围,可以进行各种修改。
权利要求
1.一种连接至存储器装置的处理器,包括随机数产生器,产生与在所述存储器装置中产生的随机数相同的随机数;XOR逻辑单元,执行所述随机数与所述存储器装置中将被访问的地址的XOR运算;以及运算后地址发送单元,发送表明所述XOR运算的结果的运算后地址。
2.根据权利要求1的处理器,还包括加密单元,利用对于所述处理器发送的数据的在所述存储器装置中的所述地址加密所述数据,以获得加密数据;以及加密数据发送单元,发送所述加密数据。
3.根据权利要求2的处理器,其中所述加密单元通过基于数据的地址置换所述数据中包含的多个部分数据的阵列,获取所述加密数据。
4.根据权利要求1的处理器,还包括高速缓冲存储器,临时存储数据;以及访问顺序确定单元,基于预定信息,确定所述存储器装置的连续地址的访问顺序,以按在所述高速缓冲存储器中存储的每个高速缓冲行来存储数据,其中所述运算后地址发送单元以所述确定的访问顺序发送所述运算后地址。
5.根据权利要求1的处理器,还包括高速缓冲存储器,临时存储数据;以及访问顺序确定单元,基于预定信息,确定多个连续地址的访问顺序,在所述多个连续地址中存储在所述高速缓冲存储器中的每个高速缓冲行的数据,其中所述运算后地址发送单元以所述确定的访问顺序发送所述运算后地址。
6.根据权利要求1的处理器,还包括加密数据获取单元,获取利用所述地址加密的加密数据;以及解密单元,通过利用所述地址解密所述获取的加密数据获取数据。
7.根据权利要求6的处理器,其中所述加密数据获取单元获取所述加密数据,在所述加密数据中基于所述地址置换在所述数据中包含的部分数据阵列,以及所述解密单元通过基于所述地址置换在所述获取的加密数据中包含的所述部分数据阵列,获取所述数据。
8.一种用于存储处理器利用的数据的存储器装置,包括运算后地址获取单元,从所述处理器获取运算后地址,所述运算后地址表明所述存储器装置中将被所述处理器访问的地址与所述处理器产生的随机数的XOR运算的结果;随机数产生器,产生与所述处理器产生的随机数相同的随机数;XOR逻辑单元,通过执行所述运算后地址与所述随机数产生器产生的随机数的XOR运算,确定所述数据的地址;以及控制单元,允许访问指定地址。
9.根据权利要求8的存储器装置,还包括加密数据获取单元,从所述处理器获取利用所述数据的所述地址加密的加密数据;以及解密单元,利用所述XOR逻辑单元指定的地址解密所述加密数据。
10.根据权利要求8的存储器装置,还包括加密数据获取单元,从所述处理器获取利用所述数据的所述地址加密的加密数据,其中所述控制单元在所述地址中存储所述加密数据。
11.根据权利要求9的存储器装置,其中所述加密数据获取单元获取所述加密数据,在所述加密数据中基于所述地址置换在所述数据中包含的多个部分数据阵列。
12.一种计算机系统,包括处理器,执行运算;以及存储器装置,存储所述处理器利用的数据,其中所述处理器包括随机数产生器,产生与在所述存储器装置中产生的随机数相同的随机数;第一XOR逻辑单元,执行所述随机数与所述存储器装置中将被访问的地址的XOR运算;以及运算后地址发送单元,发送表明所述运算的结果的运算后地址,以及所述存储器装置包括运算后地址获取单元,从所述处理器获取运算后地址;随机数产生器,产生与所述随机数相同的随机数;第二XOR逻辑单元,通过执行所述运算后地址获取单元获取的所述运算后地址与所述存储器装置的所述随机数产生器产生的随机数的XOR运算,确定将被访问的地址;以及控制单元,允许访问指定地址。
13.一种用于在处理器和存储器装置之间传输数据的方法,所述存储器装置用于存储操作处理器所利用的数据,所述方法包括以下步骤通过所述处理器产生与在所述存储器装置中产生的随机数相同的随机数;通过所述处理器执行所述产生的随机数与所述存储器装置中将被所述处理器访问的地址的XOR运算;发送表明所述运算的结果的运算后地址;通过所述存储器装置从所述处理器获取所述运算后地址;通过所述存储器装置产生与所述处理器产生的随机数相同的随机数;在执行所述运算后地址与所述存储器装置产生的随机数的XOR运算时,确定将被所述存储器装置访问的地址;以及允许访问所述存储器装置指定的地址。
全文摘要
一种连接至存储器装置的处理器,包括随机数产生器,产生与在所述存储器装置中产生的随机数相同的随机数;XOR逻辑单元,执行所述随机数与所述存储器装置中将被访问的地址的XOR运算;以及运算后地址发送单元,发送表明所述XOR运算的结果的运算后地址。
文档编号G06F12/08GK1841346SQ20061005975
公开日2006年10月4日 申请日期2006年3月6日 优先权日2005年3月29日
发明者金井达德 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1