CN107451072B - 具有即时加密器的计算系统及其操作方法 - Google Patents
具有即时加密器的计算系统及其操作方法 Download PDFInfo
- Publication number
- CN107451072B CN107451072B CN201710345730.9A CN201710345730A CN107451072B CN 107451072 B CN107451072 B CN 107451072B CN 201710345730 A CN201710345730 A CN 201710345730A CN 107451072 B CN107451072 B CN 107451072B
- Authority
- CN
- China
- Prior art keywords
- encryptor
- data
- cpu
- instant
- memory
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
用于发送加密数据的路径与用于发送未加密数据的路径完全分离。为此,在地址空间上创建虚拟安全存储器。如果中央处理单元(CPU)在虚拟安全存储器中写入数据,则硬件在自动地对数据进行加密之后将数据存储在动态随机存取存储器(DRAM)的特定区域中。在CPU意图读取数据的情况下,硬件在自动地对从DRAM的特定区域读取的数据进行解密之后将数据发送到CPU。
Description
技术领域
本文公开的发明构思的实施例涉及一种具有即时加密器的计算系统及其操作方法。
背景技术
动态随机存取存储器(DRAM)是一种将数据的每一个比特存储在集成电路内的单独电容器中的存储器。DRAM通常用作系统的主存储器,因此影响系统的整体性能。为了保护DRAM避免其数据被探测,已经开发了各种方法。例如,中央处理单元(CPU)和DRAM可以用硅制造,并且通过一个管芯上的硅通孔(TSV)彼此附接。然而,这种方法是相当昂贵的。在另一种方法中,可以对存储在DRAM中的重要数据的全部或一部分进行加密。然而,如果加密逻辑被布置在CPU和DRAM之间,则系统的速度整体降低。
发明内容
本发明构思的实施例提供了一种防止系统性能下降并且昂贵地对DRAM进行加密的计算系统及其操作方法。
根据示例性实施例的一个方面,一种计算系统的操作方法,该方法包括:在即时加密器处,从中央处理单元接收用于访问伪安全存储器的地址和数据;在所述即时加密器处,将所述地址转换为用于访问主存储器的存储器地址;在即时加密器处,基于加密算法对所述数据进行加密;以及在存储器控制器处,将所加密的数据存储在与所述存储器地址相对应的主存储器中。
根据示例性实施例的一个方面,一种集成电路的操作方法,该方法包括:在连接到第一层总线的中央处理单元处,通过连接到第一层总线的多层总线向即时加密器下发读取事务;在所述即时加密器处,通过所述多层总线或第二多层总线向连接到所述第一层总线的存储器控制器下发相应的读取事务;在即时加密器处,通过所述多层总线从存储器控制器接收与读取事务相对应的数据;在即时加密器处,对所接收的数据进行解密;以及在所述即时加密器处,通过所述多层总线和所述第一层总线将所解密的数据传送到所述中央处理单元。
根据示例性实施例的一个方面,一种集成电路的操作方法,该方法包括:在连接到第一层总线的中央处理单元处,通过连接到第一层总线的第二层总线将安全数据传送到即时加密器;在即时加密器处,对安全数据进行加密;在所述即时加密器处,通过所述第二层总线或另一第二层总线将所加密的数据传送到连接到所述第一层总线的第一存储器控制器;将所加密的数据存储在连接到所述第一存储器控制器的第一存储器的加密数据区域中;在中央处理单元处,将非安全数据传送到连接到第一层总线的第二存储器控制器;以及将非安全数据存储在连接到第二存储器控制器的第二存储器的非加密数据区域中,其中第一存储器控制器与第二存储器控制器相同或不同。
根据示例性实施例的一个方面,一种集成电路,包括:第一层总线;第二层控制总线,该第二层控制总线连接到第一层总线;第三层控制总线,该第三层控制总线连接到第二层控制总线;第二层数据总线,该第二层数据总线连接到第一层总线;第三层数据总线,该第三层数据总线连接到第二层数据总线;中央处理单元,该中央处理单元连接到第一层总线;至少一个存储器控制器,该至少一个存储器控制器连接到第一层总线;以及即时加密器,该即时加密器通过第二层控制总线和第三层控制总线接收写入事务或读取事务,并执行伪安全存储器的功能,其中,该即时加密器被配置为:在所述伪安全存储器的写入操作期间,响应于所述写入事务对从所述中央处理单元传送的数据进行加密,并且通过所述第二层数据总线和所述第三层数据总线将所加密的数据传送到所述至少一个存储器控制器;或在伪安全存储器的读取操作期间,响应于读取事务,接收从至少一个存储器控制器传送的加密数据,并对所接收的加密数据进行解密。
根据示例性实施例的一个方面,一种计算系统的操作方法包括:在中央处理单元(CPU)处,向即时加密器发送对数据的写入请求,在即时加密器处,通过总线接收从CPU输出的数据,在即时加密器处,响应于写入请求,对所述数据进行加密,通过总线将所加密的数据发送到相应存储器控制器,以及将所加密的数据存储在连接到所述相应存储器控制器的存储器中。
根据示例性实施例的一个方面,一种计算系统的操作方法包括:在CPU处,通过总线将安全数据发送到即时加密器,在即时加密器处,对安全数据进行加密,通过总线将所加密的数据发送到第一存储器控制器,将所加密的数据存储在连接到第一存储器控制器的第一存储器的加密数据区域中,通过总线将正常数据从CPU发送到第二存储器控制器,以及将正常数据存储在连接到第二存储器控制器的第二存储器的未加密数据区域中。
根据示例性实施例的一个方面,一种计算系统包括:集成电路;以及多个存储器,其连接到集成电路。集成电路包括:CPU,其连接到总线;即时加密器,其连接到总线以用作伪安全存储器;以及多个存储器控制器,其连接到总线并分别与所述多个存储器相对应。在伪安全存储器的写入操作期间,即时加密器通过使用加密算法对数据进行加密,并且通过总线将所加密的数据发送到相应的存储器控制器。在伪安全存储器的读取操作期间,即时加密器通过使用加密算法来对从所述多个存储器中的一个存储器读取的数据进行解密,并且通过总线将所解密的数据发送到CPU。
根据示例性实施例的一个方面,一种计算系统包括:CPU;即时加密器,其被配置为用作伪安全存储器并且对未加密的数据进行加密或对加密的数据进行解密;以及至少一个主存储器。CPU通过使用第一地址访问即时加密器,即时加密器接收第一地址,并且通过使用通过对第一地址进行转换而获得的第二地址来访问所述至少一个主存储器。
根据示例性实施例的一个方面,一种片上系统包括:系统总线;CPU,其连接到系统总线;内部只读存储器,其连接到系统总线;即时加密器,其连接到系统总线;以及至少一个存储器控制器,其连接到系统总线。即时加密器通过系统总线从CPU接收未加密的数据,通过使用加密算法对未加密的数据进行加密,并通过系统总线将所加密的数据发送到所述至少一个存储器控制器。即时加密器通过系统总线从所述至少一个存储器控制器接收加密的数据,通过使用加密算法对加密的数据进行解密,并通过系统总线将所解密的数据发送到CPU。
附图说明
从以下结合附图的描述中,本发明构思的上述和其他特征将变得显而易见,在附图中:
图1示出了根据本发明构思的示例性实施例的计算系统;
图2示出了根据本发明构思的示例性实施例的计算系统的地址空间;
图3示出了根据本发明构思的示例性实施例的计算系统写入安全数据的过程;
图4示出了根据本发明构思的示例性实施例的计算系统读取安全数据的过程;
图5示出了根据本发明构思的示例性实施例的即时加密器转换地址的过程;
图6示出了根据本发明构思的示例性实施例的用于即时加密器的地址转换的基地址;
图7示出了根据本发明构思的示例性实施例的即时加密器转换地址的过程;
图8示出了根据本发明构思的示例性实施例的计算系统;
图9示出了根据本发明构思的示例性实施例的计算系统;
图10示出了根据本发明构思的示例性实施例的图9的计算系统的系统地址空间;
图11示出了根据本发明构思的示例性实施例的图9的计算系统写入加密数据的过程;
图12示出了根据本发明构思的示例性实施例的图9的计算系统从加密数据区域读取加密数据的过程;
图13示出了根据本发明构思的示例性实施例的应用于图9的计算系统的基地址;
图14示出了根据本发明构思的示例性实施例的图9的计算系统中的即时动态随机存取存储器(DRAM)加密硬件的地址转换;
图15示出了根据本发明构思的示例性实施例的计算系统的数据路径;
图16示出了根据本发明构思的示例性实施例的添加了加扰功能的计算系统的数据路径;
图17示出了根据本发明构思的示例性实施例的计算系统中的正常数据/安全数据的写入路径;
图18示出了根据本发明构思的示例性实施例的计算系统中的正常数据/安全数据的读取路径;
图19示出了根据本发明构思的示例性实施例的计算系统的地址分配方法;
图20示出了根据本发明构思的示例性实施例的计算系统的安全操作系统驱动方法;
图21示出了根据本发明构思的示例性实施例的计算系统封装;
图22示出了根据本发明构思的示例性实施例的存储设备;
图23从主设备访问从设备的角度示出了根据本发明构思的示例性实施例的计算系统;
图24示出了根据本发明构思的示例性实施例的计算系统;
图25示出了根据本发明构思的另一实施例的计算系统70;
图26示出了图25中所示的即时加密器72的示例性实施例;
图27示出了根据本发明构思的示例性实施例的加密/解密过程;
图28示出了图25中所示的即时加密器72的另一实施例;
图29示出了根据本发明构思的示例性实施例的片上系统800;以及
图30示出了根据本发明构思的示例性实施例的包括多层总线结构的集成电路900的计算系统90。
具体实施方式
图1示出了根据本发明构思的示例性实施例的计算系统。参考图1,计算系统10可以包括集成电路(IC)100和与其连接的多个存储器(MEM1、MEM2、MEM3和MEM4)210、220、230和240。为了便于描述,在图1中示出了四个存储器210至240。然而,存储器的数量可以不限于此。
集成电路100可以包括CPU 110、即时加密器120和多个存储器控制器(MC1、MC2、MC3、MC4)131、132、133和134。即时加密器120和存储器控制器131至134共同连接到总线101。在示例性实施例中,集成电路100可以用片上系统(SoC)来实现。应当理解,总线101可以具有多层总线架构。
CPU 110可以通过驱动操作系统来控制集成电路110的操作。CPU 110可以被实现为执行算术逻辑运算或者基于指令执行数据处理。虽然图1中未示出,但是CPU 110可以包括程序计数器、算术逻辑单元(ALU)、寄存器等。
即时加密器120可以被实现为对通过总线101从CPU 110发送的数据进行加密或者对通过总线101从至少一个存储器控制器131/132/133/134发送的加密数据进行解密。在示例性实施例中,即时加密器120可以通过加密算法来实现。
例如,加密算法可以是高级加密标准(AES)、数据加密标准(DES)、三重DES、SEED、高安全性和轻量级(HIGHT)、ARIA、轻量级加密算法(LEA)等。在示例性实施例中,加密算法可以以块加密模式执行加密/解密操作。这里,块加密模式可以是电子码本(ECB)模式、密码块链接(CBC)模式、计数器(CTR)模式、传播密码块链接(PCBC)模式、密码反馈(CFB)模式等。
在示例性实施例中,即时加密器120可以是关于CPU 110的从设备。
在示例性实施例中,即时加密器120可以是关于存储器控制器131至134的主设备。
即时加密器120可以被CPU 110识别为一种安全存储器。足以执行安全存储器功能的地址空间可以被分配给即时加密器120。为此,即时加密器120可以被称为“伪安全存储器”。
此外,CPU 110针对用作伪安全存储器的即时加密器120执行写入操作的过程如下。CPU 110可以通过使用分配给即时加密器120的地址通过总线101向即时加密器120发送数据写入请求。即时加密器120可以响应于写入请求而对数据进行加密,并且可以通过总线101将所加密的数据发送到相应的存储器控制器。所加密的数据可以存储在相应存储器的加密数据区域214中。应当理解,使用术语“即时”在于所加密的数据被直接存储在存储器的加密数据区域214中,而不存储在即时加密器120中。
此外,CPU 110针对用作伪安全存储器的即时加密器120执行读取操作的过程如下。CPU 110可以通过使用分配给即时加密器120的地址通过总线101向即时加密器120发送数据读取请求。即时加密器120可以响应于读取请求而向相应的存储器控制器发送存储器读取请求。存储器控制器可以响应于存储器读取请求而读取存储在加密数据区域214中的加密数据,并且可以通过总线101将读取的加密数据发送到即时加密器120。即时加密器120可以对加密数据进行解密,并且可以通过总线101将所解密的数据发送到CPU 110。
在相应的存储器控制器131至134的控制下,CPU 110可以向未加密数据区域212直接请求对存储器210至240中的每一个的读取/写入操作,而不通过即时加密器120。
存储器210至240可以分别连接到存储器控制器131至134。在示例性实施例中,存储器210至240和存储器控制器131至134可以通过双倍数据速率(DDR)接口连接。然而,应当理解,用于连接存储器210至240和存储器控制器131至134的接口不限于DDR接口。
存储器210至214中的每一个可以被实现为存储CPU 110的操作所需的数据(加密的数据和未加密的数据)。在示例性实施例中,存储器210至240中的每一个可以用以下各项来实现:DRAM、同步DRAM(SDRAM)、DDR SDRAM、低功率DDR(LPDDR)SDRAM、Rambus DRAM(RDRAM)、双列直插式存储器模块(DIMM)、非易失性DIMM(NVDIMM)、相变随机存取存储器(PRAM)等。
在示例性实施例中,存储器210至240中的每一个可以包括存储未加密的数据的未加密数据区域212和存储加密的数据的加密数据区域214。在示例性实施例中,未加密数据区域212和加密数据区域214可以是固定的。在另一实施例中,未加密数据区域212和加密数据区域214可以是可变的。
在示例性实施例中,数据可以以交织的方式存储在存储器210至240中。
根据本发明构思的示例性实施例的计算系统10可以通过将CPU 110和主存储器200之间的加密数据的传输路径与CPU 110和主存储器200之间的未加密数据的传输路径进行分离来使性能的下降最小化。
此外,根据本发明构思的示例性实施例的计算系统10可以通过经由与未加密数据的路径不同的路径发送加密数据而不引起与未加密数据的传输相关联的附加延迟。
另外,与常规计算系统相比,根据本发明构思的示例性实施例的计算系统10可以通过仅使用一个即时加密器120进行数据加密来相对减小芯片尺寸同时支持交织功能。
根据本发明构思的示例性实施例的计算系统10还可以通过对数据的一部分进行加密来改进数据相关的安全功能同时不影响计算系统10的整体性能。
图2示出了根据本发明构思的示例性实施例的计算系统10的地址空间的示例。参考图2,系统地址空间300可以包括伪安全存储器(PSM)地址空间310和交织存储器地址空间320。在示例性实施例中,系统地址空间300可以是从CPU 110的角度来看的逻辑地址空间。
伪安全存储器地址空间310可以包括即时加密器区域312。作为分配给即时加密器120的地址空间的伪安全存储器地址空间310可以被CPU 110识别为存储器空间。
交织存储器地址空间320可以包括未加密数据区域322和加密数据区域324。在示例性实施例中,可以分配与交织存储器地址空间320相对应的地址,以对存储器MEM1至MEM4进行交织。
在示例性实施例中,加密数据区域324的大小可以被确定为与即时加密器区域312的大小相对应。例如,加密数据区域324的大小可以与即时加密器区域312的大小相同。
在示例性实施例中,加密数据区域324可以是固定的或可变的。
图3示出了根据本发明构思的示例性实施例的计算系统10写入需要安全性的数据(以下称为“安全数据”)的过程。参考图1至图3,可以通过以下过程写入安全数据。
CPU 110可以向即时加密器120提供用于在伪安全存储器中写入未加密数据的写入请求。这里,与写入请求一起提供的地址可以是属于即时加密器区域312的地址。即时加密器120可以从CPU 110接收写入请求、地址和未加密的数据,可以通过使用加密算法对未加密的数据进行加密,并且可以将地址转换为加密数据区域324的地址。存储器MEM1(参考图1)可以响应于即时加密器120的写入请求而将加密的数据存储在相应的空间中。
图4示出了根据本发明构思的示例性实施例的计算系统10读取安全数据的过程。参考图1至图4,可以通过以下过程来读取安全数据。
CPU 110可以向即时加密器120提供用于从伪安全存储器读取未加密数据的读取请求。这里,与读取请求一起提供的地址可以是属于即时加密器区域312的地址。即时加密器120可以从CPU 110接收读取请求和地址,并且可以将地址转换为加密数据区域324的地址。为了便于描述,假设转换的地址指向加密数据区域324的第一存储器MEM1。第一存储器MEM1可以响应于读取请求而读取加密数据,并且可以将读取的加密数据发送到即时加密器120。即时加密器120可以接收加密数据,并且可以通过使用加密算法来对加密数据进行解密。解密的数据(即,未加密的数据)可以被提供给CPU 110。
图5示出了根据本发明构思的示例性实施例的即时加密器120转换地址的过程的示例。参考图5,即时加密器120可以通过将偏移地址与即时加密器地址相加来生成加密数据地址。这里,即时加密器地址可以是CPU 110访问即时加密器120所需的地址。此外,加密数据地址可以是属于由图2至图5所示的存储器MEM1至MEM4构成的加密数据区域324的地址。
在示例性实施例中,偏移地址可以是由芯片制造商固定的。在另一个实施例中,偏移地址可以通过软件而可变。
根据本发明构思的示例性实施例的即时加密器120的地址转换操作可以不限于上述描述。即时加密器120可以通过使用基地址概念来转换地址。
图6示出了根据本发明构思的示例性实施例的即时加密器120的地址转换所需的基地址。参考图6,即时加密器区域312存在于未映射区域301之间,并且即时加密器区域312的起始地址是即时加密器基地址。此外,加密数据区域324存在于未加密数据区域322与未映射区域301之间,并且加密数据区域324的起始地址是加密数据基地址。
图7示出了根据本发明构思的示例性实施例的即时加密器120转换地址的过程的另一示例。参考图7,即时加密器120可以通过将基于加密数据的地址与通过从即时加密器地址中减去即时加密器基地址而获得的地址相加来生成加密数据地址。
同时,根据本发明构思的示例性实施例的计算系统10还可以包括控制对加密数据区域的访问的访问控制逻辑。
图8示出了根据本发明构思的另一实施例的计算系统20。参考图8,与图1的计算系统10相比,计算系统20可以使用进一步包括访问控制逻辑141至144的集成电路100a来实现。
访问控制逻辑141至144可以分别控制CPU 110a对存储器210至240的加密数据区域214的访问。例如,访问控制逻辑141至144中的每一个可以被实现为阻止CPU 110a对加密数据区域的访问。访问控制逻辑141至144中的每一个可以被实现为仅允许即时加密器120a对加密数据区域的访问。
在示例性实施例中,访问控制逻辑141至144中的每一个可以使用ARM的信任区域地址访问控制器(TZASC)来实现。
图8中所示的访问控制逻辑141至144的数量可以与分别连接至存储器210至240的存储器控制器131a至134a的数量相同。然而,访问控制逻辑的数量可以不限于此。根据本发明构思的示例性实施例的计算系统20可以被实现为包括连接到一个访问控制逻辑的多个存储器控制器。
同时,访问控制逻辑141至144被布置在存储器控制器131至134的前面。然而,实施例不限于此。访问控制逻辑141至144中的每一个可以位于相应的存储器控制器的内部。
在图1至图8中,实施例被例示为计算系统包括多个存储器控制器MC1至MC4。然而,实施例不限于此。例如,根据本发明构思的示例性实施例的计算系统可以被实现为包括连接到一个存储器控制器的存储器MEM1至MEM4。
同时,根据本发明构思的示例性实施例的计算系统还可以包括用于执行各种功能的知识产权(IP)。
图9是示出了根据本发明构思的示例性实施例的计算系统30的框图。参考图9,计算系统30可以包括SOC 100b以及多个DRAM 210b、220b、230b和240b,其中SOC 100b包括CPU110a、即时DRAM加密硬件120b、DRAM存储器控制器131b至134b、内部SRAM(iRAM)141、内部ROM(iROM)142、图形处理单元(GPU)143、多媒体芯片144、直接存储器存取(DMA)芯片145、调制解调器146和全球导航卫星系统(GNSS)芯片147。
连接到总线101b的CPU 110b、即时DRAM加密硬件120b、DRAM存储器控制器131b至134b和DRAM 210b至240b可以与CPU 110、即时加密器120、存储器控制器131至134和DRAM210至240基本上相同,因此这里将不重复其描述。
SOC 110b可以包括用于执行各种功能的IP,即,内部RAM(iRAM)141、内部ROM(iROM)142、GPU 143、多媒体芯片144、DMA芯片145、调制解调器146、GNSS芯片147等。
内部RAM 141可以被实现为临时存储CPU 110b的操作所需的数据。例如,内部RAM141可以是同步随机存取存储器(SRAM)。内部ROM 142可以被实现为存储CPU 110b的操作系统/程序相关代码(指令)。例如,内部ROM 142可以用非易失性存储器来实现。GPU 143可以是图形专用芯片。多媒体芯片144可以是多媒体数据专用芯片。DMA芯片145可以被实现为直接访问DRAM 210b至240b,而不通过CPU 110b。调制解调器146可以被实现为执行与外部的有线和/或无线通信。GNSS芯片147可以被实现为基于卫星定位数据来确定计算系统30的位置。同时,应当理解,根据本发明构思的示例性实施例的SOC 110b不包括图9中所示的IP中的至少一个,并且还包括图9中未示出的至少一个IP。同时,应当理解,图9中所示的SOC11Ob的IP中的至少两个用一个芯片来实现。
图10示出了图9的计算系统30的系统地址空间。参考图10,系统地址空间400可以包括未映射区域401、内部ROM地址空间402、内部RAM地址空间404、伪安全存储器地址空间410和交织DRAM地址空间420。
交织DRAM地址空间420可以包括加密数据区域424。这里,加密数据区域424的大小可以与伪安全存储器地址空间410的大小相对应。
如图10所示,系统地址空间400可以包括分别分配给多个IP的地址。这里,所指派的地址的最小大小可以是高速缓存单元。在示例性实施例中,高速缓存单元可以是64个字节。然而,本发明构思的示例性实施例不限于此。
图11示出了图9的计算系统30写入加密数据的过程。参考图9至图11,下面将描述写入加密数据的过程。
CPU 110b可以下发用于将数据写入伪安全存储器的数据写入请求。在这种情况下,所下发的写入请求和写入数据可以通过总线101b被提供给即时DRAM加密硬件120b。这里,写入数据是未加密的数据。即时DRAM加密硬件120b可以接收未加密的数据(或明文数据),可以通过使用加密算法对未加密的数据进行加密,并且可以生成相应DRAM的写入请求和写入地址,使得加密的数据被存储在加密数据区域424中。这里,写入地址可以是指示加密数据区域424的地址。相应DRAM可以响应于写入请求和写入地址而存储加密的数据。
图12示出了图9的计算系统30从加密数据区域424读取加密数据的过程。参考图9至图12,下面将描述读取加密数据的过程。
CPU 110b可以下发用于从伪安全存储器读取数据的数据读取请求。即时DRAM加密硬件120b可以接收读取请求,并且可以生成相应DRAM的读取请求和读取地址,使得从加密数据区域424读取加密数据。这里,读取地址可以是指示存储加密数据的加密数据区域424的地址。相应DRAM可以响应于读取请求和读取地址而读取加密数据,并且可以通过总线101b将读取的数据发送到即时DRAM加密硬件120b。即时DRAM加密硬件120b可以接收加密数据,可以通过使用加密算法对加密数据进行解密,并且可以通过总线101b将所解密的数据(即,未加密的数据)发送到CPU 110b。
图13示出了将基地址概念应用于图9的计算系统30的示例性实施例。参考图13,系统地址空间400可以包括内部RAM地址空间404、伪安全存储器地址空间410、加密数据区域424和任何其他DRAM区域426。
可以在伪安全存储器地址空间410和加密数据区域424之间交换加密的数据和未加密的数据。也就是说,存储在伪安全存储器地址空间410中的未加密的数据可以由即时DRAM加密硬件120b加密,并且加密的数据可以存储在加密数据区域424中。此外,存储在加密数据区域424中的加密的数据可以由即时DRAM加密硬件120b解密,并且解密的数据(即,未加密的数据)可以存储在伪安全存储器地址空间410中。
同时,伪安全存储器地址空间410和加密数据区域424之间的地址映射关系可以通过即时DRAM加密硬件120b的地址转换操作来确定。如图13所示,伪安全存储器地址空间410的起始地址是伪安全存储器基地址,并且加密数据区域424的起始地址可以是加密数据基地址。可以通过使用伪安全存储器基地址和加密数据基地址来执行地址转换操作。
图14示出了图9的计算系统30中的即时DRAM加密硬件120b的地址转换。参考图9至图14,即时DRAM加密硬件120可以通过将基于加密数据的地址与通过从伪安全存储器地址中减去伪安全存储器基地址而获得的地址相加来生成加密数据地址。然而,即时DRAM加密硬件120b的地址转换不限于此。
下面可以从数据路径的角度来描述根据本发明构思的示例性实施例的计算系统。
图15示出了根据本发明构思的示例性实施例的计算系统40的数据路径。参考图15,计算系统40可以被实现为使得来自CPU 41的未加密的数据在未修改的情况下被发送的第一路径和未加密的数据在加密之后被发送的第二路径彼此分离。
在第一路径中,CPU 41是第一主设备,并且存储器控制器(MC)44是第一从设备。在CPU 41的控制下,存储器控制器44可以将未加密的数据存储在存储器46的未加密数据区域46-2中,或者可以从未加密数据区域46-2读取未加密的数据。在示例性实施例中,可以通过CPU 41和存储器控制器44之间的系统总线交换未加密的数据。
在第二路径中,CPU 41可以是第一主设备,即时加密器42可以是第二从设备或第二主设备,并且存储器控制器44可以是第三从设备。在CPU 41的控制下,即时加密器42可以对未加密的数据进行加密或可以对加密的数据进行解密。此外,在即时加密器42的控制下,存储器控制器44可以将加密的数据存储在存储器46的加密数据区域46-4中,或者可以从加密数据区域46-4读取加密的数据。在示例性实施例中,可以通过CPU 41和即时加密器42之间的系统总线交换未加密的数据,或可以通过即时加密器42和存储器控制器44之间的系统总线交换加密的数据。
同时,根据本发明构思的示例性实施例的计算系统可以将加扰功能添加到数据路径。
图16示出了根据本发明构思的示例性实施例的添加了加扰功能的计算系统50的数据路径。参考图16,计算系统50可以被实现为使得对未加密数据进行加扰和发送的路径与对加密数据进行发送的路径彼此分离。
在示例性实施例中,未加密的数据可以由存储器控制器(MC)54的加扰/解扰逻辑54-1加扰。加扰的数据可以存储在存储器(MEM)56的未加密数据区域56-2中。此外,存储在未加密数据区域56-2中的加扰的数据可以由加扰/解扰逻辑54-1解扰。解扰的数据可以作为未加密的数据输出到CPU。
同时,加密数据的路径可以与图15的路径相同,因此这里将不再重复其描述。
下面可以从包括总线的正常数据(或“非安全数据”)/安全数据的路径的角度来描述根据本发明构思的示例性实施例的计算系统。这里,正常数据可以是不需要加密的数据,并且安全数据可以是需要加密的数据。
图17示出了根据本发明构思的示例性实施例的计算系统中的正常数据/安全数据的写入路径。参考图17,计算系统可以将用于写入正常数据的路径与用于写入安全数据的路径分离。
首先,正常数据的写入路径如下。从CPU输出的正常数据可以通过总线发送到存储器控制器MC。存储器控制器MC可以将正常数据存储在相应存储器MEM的正常数据区域中。
接下来,安全数据的写入路径如下。从CPU输出的安全数据可以通过总线发送到即时加密器。这里,即时加密器可以通过使用加密算法来对安全数据进行加密。加密的数据可以通过总线发送到存储器控制器MC。存储器控制器MC可以将加密的数据存储在相应存储器MEM的加密数据区域中。
图18示出了根据本发明构思的示例性实施例的计算系统中的正常数据/安全数据的读取路径。参考图18,计算系统可以将用于读取安全数据的路径与用于读取正常数据的路径分离。
首先,正常数据的读取路径如下。存储器控制器MC可以响应于对正常数据的读取请求而读取存储在存储器MEM的正常数据区域中的正常数据,并且可以通过总线将读取的数据发送到CPU。这里,可以通过总线从CPU接收读取请求。
接下来,安全数据的读取路径如下。即时加密器可以响应于对安全数据的读取请求,通过总线将存储器读取请求发送到存储器控制器MC。存储器控制器MC可以响应于存储器读取请求而读取存储在存储器MEM的加密数据区域中的加密数据,并且可以通过总线将读取的加密数据发送到即时加密器。即时加密器可以通过使用加密算法来对加密数据进行解密,并且可以通过总线将所解密的数据(即,安全数据)发送到CPU。
图19是示出了根据本发明构思的示例性实施例的计算系统的地址分配方法的流程图。参考图19,地址分配方法可以包括分配即时加密器地址的操作(S110)和分配与即时加密器地址相对应的加密数据地址的操作(S120)。这里,加密数据地址可以由芯片制造商固定或者可以由芯片用户来改变。
图20是示出了根据本发明构思的示例性实施例的计算系统的安全操作系统(OS)驱动方法的流程图。将参考图20描述主机的安全OS驱动方法。可以读取存储在内部ROMiROM中的安全OS(S210)。可以通过使用即时加密器地址在主存储器MEM的加密数据区域上加载读取的安全OS(S220)。CPU可以通过使用即时加密器地址来执行加密数据区域的安全OS(S230)。
同时,根据本发明构思的示例性实施例的计算系统可以以堆叠式封装(POP)的形式来实现。
图21示出了根据本发明构思的示例性实施例的计算系统封装。参考图21,计算系统封装1000可以包括SOC 1100和顺序堆叠在SOC 1100上的DRAM芯片1210、1220、1230和1240。这里,SOC 1100可以与图9中所示的SOC 100b相同地实现。此外,堆叠的DRAM芯片1210、1220、1230和1240可以与图9中所示的DRAM 210b、220b、230b和240b相同地实现。
同时,根据本发明构思的示例性实施例的计算系统可以适用于移动设备。
图22示出了根据本发明构思的示例性实施例的移动设备2000。参考图22,移动设备2000可以包括处理器(AP/ModAP)2100、缓冲存储器2200、显示/触摸模块2300和存储设备2400。
处理器2100可以被实现为控制移动设备2000的整体操作和与外部的有线/无线通信。例如,处理器2100可以是应用处理器(AP)、集成调制解调器应用处理器(ModAP)等。
处理器2100可以包括安全芯片2120和访问控制逻辑2140。
安全芯片2120可以由软件和/或防篡改硬件实现,可以允许高级安全性,并且可以工作以在处理器2100的可信执行环境(TEE)上协作。
安全芯片2120可以包括本地操作系统(OS)、作为内部数据存储单元的安全存储设备、控制访问安全芯片1020的权限的访问控制块、以及用于更新安全芯片1020的固件的固件更新块和用于执行所有权管理、密钥管理、数字签名、加密/解密等的安全功能块。例如,安全芯片2120可以是通用集成电路卡(UICC)(例如,USIM、CSIM和ISIM)、订户标识模块(SIM)卡、嵌入式安全元件(eSE)、microSD、标贴等。
访问控制逻辑2140可以被实现为控制对缓冲存储器2200的加密数据区域的访问。访问控制逻辑2140可以被实现为执行与图8中所示的访问控制逻辑141至144相同的功能,或者可以用与图8中所示的访问控制逻辑141至144相同的配置来实现。
缓冲存储器2200可以被实现为临时存储执行移动设备2000的操作所需的数据。在示例性实施例中,缓冲存储器2200可以用DRAM、SDRAM、磁阻RAM(MRAM)等来实现。缓冲存储器2200可以包括未加密数据区域和加密数据区域。这里,加密数据区域可以存储由安全芯片2120加密的数据。
显示/触摸模块2300可以被实现为显示由处理器2100处理的数据或者从触摸面板接收数据。
存储设备2400可以被实现为存储用户的数据。存储设备2400可以是嵌入式多媒体卡(eMMC)、固态驱动器(SSD)、通用闪存存储器(UFS)等。存储设备2400可以包括至少一个非易失性存储器设备。
非易失性存储器设备可以是NAND闪存、垂直NAND闪存(VNAND)、NOR闪存、电阻随机存取存储器(RRAM)、相变存储器(PRAM)、MRAM、铁电随机存取存储器(FRAM)、自旋转移扭矩随机存取存储器(STT-RAM)、3Dxpoint存储器等。
此外,非易失性存储器可以被实现为具有三维(3D)阵列结构。在本发明构思的示例性实施例中,提供了一种3D存储器阵列。该3D存储器阵列在存储器单元阵列的一个或多个物理层级中单片地形成,所述存储器单元阵列具有布置于硅衬底上的有源区域和与那些存储器单元的操作相关联的电路,无论这种相关联的电路是在这种衬底上还是内部。与存储器单元的操作相关的电路可以位于衬底中或衬底上。术语“单片”意指阵列的每一层级的层直接沉积在阵列的每一下层级的层上。
在本发明构思的示例性实施例中,该3D存储器阵列包括垂直取向的垂直NAND串,使得至少一个存储器单元位于另一存储器单元之上。至少一个存储器单元可以包括电荷陷阱层。每个垂直NAND串可以包括位于存储器单元之上的至少一个选择晶体管。至少一个选择晶体管可以具有与存储器单元相同的结构,并且与存储器单元一起单片地形成。
三维存储器阵列由多个层级形成,并且具有在层级之间共享的字线或位线。以下专利文献(其通过引用并入本文)描述了用于三维存储器阵列的合适配置,其中由三星电子株式会社应用的三维存储器阵列被配置为具有在层级之间共享的字线和/或位线的多个层级:美国专利No.7,679,133、8,553,466、8,654,587、8,559,235和美国专利公开No.2011/0233648。根据本发明构思的示例性实施例的非易失性存储器可以适用于将绝缘层用作电荷存储层的电荷陷阱闪存(CTF)以及将导电浮栅用作电荷存储层的闪存设备。
根据本发明构思的示例性实施例的移动设备2000可以将安全数据路径与正常数据路径分离,从而显著地改善安全功能,同时保持整体性能。
同时,下面可以从主设备的访问的角度来描述根据本发明构思的示例性实施例的计算系统。
图23是从主设备对从设备的访问的角度来描述根据本发明构思的示例性实施例的计算系统的图。参考图23,CPU 110是关于即时加密器120和主存储器200的主设备,即时加密器120是关于CPU 110的从设备以及关于主存储器200的主设备,并且主存储器200是关于即时加密器120的从设备。
CPU 110可以被实现为通过使用伪安全存储器地址ADDR_PSM来访问即时加密器120。可能看起来好像安全数据存储在伪安全存储器地址(ADDR_PSM)空间中。这里,伪安全存储器地址空间可以与主存储器200的安全区域相对应。
此外,CPU 110可以被实现为通过使用正常地址ADDR来访问主存储器200的未加密数据区域,即非安全区域。
即时加密器120可以被实现为通过使用主存储器地址ADDR_MM来访问主存储器200的加密数据区域,即安全区域。存储在伪安全存储器地址空间中的未加密的数据可以在由即时加密器120加密之后存储在主存储器200的加密数据区域中。
在图1至图23中,实施例被例示为执行加密功能的即时加密器120位于CPU 110的外部。然而,实施例不限于此。即时加密器120可以位于CPU 110的内部。
图24示出了根据本发明构思的另一实施例的计算系统60。参考图24,计算系统60可以包括CPU 61和主存储器62。CPU 61可以包括对数据进行实时加密或解密的即时加密器61-2。即时加密器61-2可以被设计为在内部被视为伪安全存储器。需要安全性的数据可以在由即时加密器61-2加密/解密之后与主存储器62进行交换。可以与主存储器62正常地交换正常数据。
在示例性实施例中,即时加密器61-2可以通过专用数据路径连接到主存储器62。在示例性实施例中,即时加密器61-2可以通过存储器控制器(未示出)将数据存储在主存储器62中,或者可以通过存储器控制器从主存储器62读取数据。
根据本发明构思的实施例,用于发送加密数据的路径可以与用于发送未加密数据的路径完全分离。为此,可以在地址空间上创建虚拟安全存储器。如果CPU在虚拟安全存储器中写入数据,则硬件可以在自动地对数据进行加密之后将数据存储在DRAM的特定区域中。在CPU意图读取数据的情况下,硬件可以在自动地对从DRAM的特定区域读取的数据进行解密之后将数据发送到CPU。因此,可以通过加密来保护数据的一部分,而不会影响系统的整体性能。
根据本发明构思的示例性实施例的计算系统可以通过将CPU和主存储器之间的加密数据的传输路径与CPU和主存储器之间的未加密数据的传输路径分离来使性能的下降最小化。
此外,根据本发明构思的示例性实施例的计算系统可以通过经由与未加密数据的路径不同的路径发送加密数据而不引起与未加密数据的传输相关联的附加延迟。
另外,与常规计算系统相比,根据本发明构思的示例性实施例的计算系统可以通过仅使用一个即时加密器进行数据加密来相对减小芯片尺寸同时支持交织功能。
根据本发明构思的示例性实施例的计算系统还可以通过对数据的一部分进行加密来改进数据相关的安全功能,同时不影响计算系统的整体性能。
图25示出了根据本发明构思的另一实施例的计算系统70。参考图25,计算机系统70可以包括CPU 71、即时加密器72和多个DRAM 74。即时加密器72可以被实现为处理来自CPU 71和/或DRAM 74的事务(加密/解密操作)。这里,事务可以由CPU 71下发。在示例性实施例中,事务可以是写入事务或读取事务。这里,可以对写入事务执行数据加密操作,并且可以对读取事务执行数据解密操作。
在示例性实施例中,事务可以由即时加密器72同时处理。在另一实施例中,事务可以由即时加密器72并行处理。
图25示出了六个事务,但是本发明构思的实施例可以不限于此。
在示例性实施例中,即时加密器72可以从CPU 71接收事务并且可以下发与DRAM74相对应的DRAM的事务。
在示例性实施例中,输入到DRAM 74的数据和从DRAM 74输出的数据可以交织。在另一实施例中,输入到DRAM 74的数据和从DRAM 74输出的数据可以不交织。
图26示出了图25中所示的即时加密器72的示例性实施例。参考图26,即时加密器72可以包括地址转换器721、加密电路(AES)722、解复用器723、重排序缓冲器724、复用器725、计数器726和异或(XOR)运算器727。
地址转换器721可以被实现为将从CPU 71接收的地址ARADDR转换为DRAM专用地址ARADDR_DRAM。此外,地址转换器721可以被实现为通过使用包括在事务中的地址ARADDR来生成地址序列。在示例性实施例中,地址序列的大小可以是64个比特。然而,根据本发明构思的实施例,地址序列的大小可以不限于此。
加密电路722可以被实现为从地址转换器721接收地址序列,并且基于加密算法生成与地址相对应的密钥流。在示例性实施例中,加密算法可以包括高级加密标准(AES)算法。然而,根据本发明构思的实施例,加密算法可以不限于此。在示例性实施例中,密钥流的密钥值可以具有128个比特的大小。然而,根据本发明构思的实施例,密钥值的大小可以不限于此。
复用器725可以被实现为响应于读取标识符RID从DRAM 74接收数据并且传送所接收的数据,所接收的数据被提供给重排序缓冲器724,其中重排序缓冲器724与包括在所接收的数据中的标签值相对应。这里,读取标识符RID可以是传送所接收的数据的DRAM的标识号。在示例性实施例中,读取标识符RID可以具有3个比特的大小。然而,根据本发明构思的实施例,读取标识符RID的大小可以不限于此。
即使在加密顺序改变的状态下从DRAM 74传送数据RDATA_ENC,也可以基于解复用器723的选择操作,将接收的数据RDATA_ENC排列并传送到相应的重排序缓冲器724。这里,每个重排序缓冲器724可以连接到复用器725以适合加密顺序。
复用器725可以被实现为响应于计数值来选择存储在重排序缓冲器724中的值,以适合加密顺序。这里,计数值可以由计数器726生成。在示例性实施例中,计数值可以具有3个比特的大小。然而,根据本发明构思的实施例,计数值的大小可以不限于此。
XOR运算器727可以被实现为通过对来自加密电路722的密钥值和复用器725的输出值执行XOR运算来执行解密操作。解密的数据RDATA可以作为读取数据传送到CPU 71。
图27示出了根据本发明构思的示例性实施例的加密/解密过程。参考图27,加密电路722可以被实现为接收128比特的随机数和地址以及128比特的密钥,并基于加密算法生成128比特的密钥流。这里,随机数和密钥可以是预先确定的值。
在示例性实施例中,地址可以是所接收的地址ARADDR的全部或一部分。
XOR运算器727可以被实现为通过对来自加密电路722的128比特的密钥流和128比特的输入数据DIN执行XOR运算来生成128比特的输出数据DOUT。
同时,示例性实施例被例示为图27中的操作过程所需的每条数据(随机数和地址、密钥、密钥流、输入数据和输出数据)具有128个比特的大小。然而,本发明构思的实施例可以不限于此。
同时,在图26中,即时加密器72在数据输入阶段执行数据重排序以设置加密操作的顺序。然而,本发明构思的实施例可以不限于此。根据本发明构思的实施例,可以与加密操作的顺序相对应地输出与所接收的数据相对应的密钥流。
图28示出了图25中所示的即时加密器72的另一实施例。参考图28,即时加密器72a可以包括地址转换器721a、加密电路(AES)722a、解复用器723a、计数器724a、缓冲器725a、复用器726a和XOR运算器727a。
地址转换器721a和加密电路722a可以与图26中所示的地址转换器721和加密电路722相同地实现。
解复用器723a可以被实现为响应于计数值来选择与从加密电路722a输出的密钥流相对应的缓冲器725a。要用于加密/解密的密钥值可以存储在所选择的缓冲器725a中。这里,计数值可以由计数器724a生成。
复用器726a可以被实现为响应于读取标识符RID将存储在任何一个缓冲器725a中的密钥值输出到XOR运算器727a。
XOR运算器727a可以被实现为通过对来自复用器726a的密钥值和来自DRAM 74的数据RDATA_ENC执行XOR运算来执行解密操作。
同时,根据本发明构思的示例性实施例,即时加密器可以应用于多层总线(或多级总线)结构的片上系统(SOC)。
图29示出了根据本发明构思的示例性实施例的片上系统800。参考图29,片上系统800可以包括连接到第一层总线(即,主干总线801)的CPU 810、至少一个DRAM控制器820、连接到第一层总线801的第二层控制总线802-1、连接到第一层总线801的第二层数据总线802-2、连接到第二层控制总线802-1的第三层控制总线803-1、连接到第二层数据总线802-2的第三层数据总线803-2、连接到第三层控制总线803-1和第三层数据总线803-2的即时加密器830、以及内部SRAM 840。
在示例性实施例中,示例性实施例在图29中被示出为控制总线802-1和803-1由两个层形成。然而,应当理解,控制总线由三个或更多个层形成。在示例性实施例中,示例性实施例在图29中被示出为数据总线802-2和803-2由两个层形成。然而,应当理解,数据总线由三个或更多个层形成。
在示例性实施例中,即时加密器830可以通过第一层总线801、第二层控制总线802-1和第三层控制总线803-1从CPU 810接收事务。在示例性实施例中,即时加密器830可以通过第三层控制总线803-1、第二层控制总线802-1和第一层总线801将与所接收的事务相对应的DRAM的事务传送到DRAM控制器820。在另一实施例中,即时加密器830可以通过图29中未示出的层控制总线将与所接收的事务相对应的DRAM的事务传送到DRAM控制器820。
在示例性实施例中,即时加密器830可以通过第一层总线801、第二层数据总线802-2和第三层数据总线803-2从CPU 810接收写入数据。在示例性实施例中,即时加密器830可以对写入数据进行加密,并且可以通过第三层数据总线803-2、第二层数据总线802-2和第一层总线801将加密的数据传送到DRAM控制器820。在另一实施例中,即时加密器830可以通过图29中未示出的层数据总线将加密的数据传送到DRAM控制器820。用于读取操作的数据路径可以被实现为类似于上述写入操作的数据路径。
如图29所示,在CPU 810和至少一个DRAM 200a之间可以存在两种类型的数据路径。第一数据路径是通过第一层总线801在CPU 810和DRAM控制器820之间直接交换数据的路径。第二数据路径是通过第一层总线801、第二层总线802-1和802-2以及第三层总线803-1和803-2在CPU 810和DRAM控制器820之间穿过即时加密器830的路径。
图30示出了根据本发明构思的示例性实施例的包括多层总线结构的集成电路900的计算系统90。参考图30,计算系统90可以包括集成电路900和多个存储器设备210、220、230和240。
与图1中所示的集成电路100相比,集成电路900包括连接到多层总线902的即时加密器920。多层总线902可以连接到第一层总线901。在图30中示出了一个多层总线902,但集成电路900可以包括两个或更多个多层总线。CPU 910和多个存储器控制器931、932、933和934可以连接到第一层总线901。
同时,根据本发明构思的示例性实施例,可以应用即时加密器简单地实现应用处理器中的可信执行环境。
根据本发明构思的示例性实施例,为了使性能的下降最小化,计算系统可以被实现为使得需要加密的数据的传输路径与不需要加密的数据的传输路径彼此完全分离。为此,可以在地址空间上创建虚拟安全存储器。当CPU在虚拟安全存储器中写入数据时,硬件可以自动地对数据进行加密并且可以将加密的数据存储在DRAM的特定区域中。当CPU读取数据时,硬件可以自动地从DRAM的特定区域读取数据,可以对读取的数据进行解密,并且可以将解密的数据传送到CPU。因此,可以仅保护需要加密的数据,同时不影响系统的整体性能。
尽管已经参照示例性实施例描述了本发明构思,但是对于本领域技术人员来说显而易见的是,在不脱离本发明构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述实施例不是限制性的,而是示例性的。
Claims (15)
1.一种计算系统的操作方法,所述计算系统包括中央处理单元CPU、通过系统总线连接到所述CPU的即时加密器和通过所述系统总线连接到所述CPU的存储器控制器,所述操作方法包括:
由所述CPU通过所述系统总线向所述即时加密器发送安全数据;
由所述即时加密器对通过所述系统总线接收的所述安全数据进行加密;
由所述存储器控制器将通过所述系统总线接收的加密数据存储在存储器设备的加密数据区域中;
由所述CPU通过所述系统总线向所述存储器控制器发送正常数据,而不经过所述即时加密器;以及
由所述存储器控制器将通过所述系统总线接收的所述正常数据存储在所述存储器设备的非加密数据区域中。
2.根据权利要求1所述的操作方法,还包括:
由所述存储器控制器读取存储在所述加密数据区域中的所述加密数据;
由所述存储器控制器通过所述系统总线向所述即时加密器发送所述加密数据;
由所述即时加密器对所述加密数据进行解密以生成所述安全数据;
由所述即时加密器通过所述系统总线向所述CPU发送所述安全数据;
由所述存储器控制器读取存储在所述非加密数据区域中的所述正常数据;以及
由所述存储器控制器通过所述系统总线向所述CPU发送所述正常数据,而不经过所述即时加密器。
3.根据权利要求1所述的操作方法,还包括:
由所述CPU通过所述系统总线向所述即时加密器发送安全读取请求;
由所述即时加密器响应于所述安全读取请求而通过所述系统总线向所述存储器控制器发送存储器读取请求;
由所述存储器控制器响应于所述存储器读取请求而通过所述系统总线向所述即时加密器发送来自所述存储器设备的所述加密数据区域的所述加密数据;
由所述即时加密器对所述加密数据进行解密以生成所述安全数据;以及
由所述即时加密器通过所述系统总线向所述CPU发送所述安全数据。
4.根据权利要求3所述的操作方法,还包括:
由所述CPU通过所述系统总线向所述存储器控制器发送正常读取请求,而不经过所述即时加密器;以及
由所述存储器控制器通过所述系统总线向所述CPU发送来自所述存储器设备的所述非加密数据区域的所述正常数据,而不经过所述即时加密器。
5.根据权利要求1所述的操作方法,还包括:
由所述即时加密器通过将偏移地址与通过所述系统总线从所述CPU接收的地址相加,来生成加密数据地址,
其中,所述加密数据地址对应于所述加密数据区域。
6.根据权利要求1所述的操作方法,还包括:
阻止所述CPU在不经过所述即时加密器的情况下对所述加密数据区域的直接访问。
7.根据权利要求1所述的操作方法,其中,所述计算系统还包括连接到所述系统总线的知识产权IP块,
其中,所述操作方法还包括:
由所述IP块通过所述系统总线向所述即时加密器发送安全读取请求;
由所述即时加密器响应于所述安全读取请求而通过所述系统总线向所述存储器控制器发送存储器读取请求;
由所述存储器控制器响应于所述存储器读取请求而通过所述系统总线向所述即时加密器发送来自所述存储器设备的所述加密数据区域的所述加密数据;
由所述即时加密器对所述加密数据进行解密;以及
由所述即时加密器通过所述系统总线向所述IP块发送解密数据。
8.根据权利要求1所述的操作方法,其中,由所述存储器控制器将通过所述系统总线接收的所述正常数据存储在所述存储器设备的非加密数据区域中包括:
由所述存储器控制器对所述正常数据进行加扰;以及
由所述存储器控制器将加扰的正常数据存储在所述非加密数据区域中。
9.一种计算系统的操作方法,所述计算系统包括中央处理单元CPU、通过系统总线连接到所述CPU的即时加密器和通过所述系统总线连接到所述CPU的存储器控制器,所述操作方法包括:
由所述CPU通过所述系统总线向所述即时加密器发送安全读取请求;
由所述即时加密器响应于所述安全读取请求而向所述存储器控制器发送存储器读取请求;
由所述存储器控制器响应于所述存储器读取请求而从存储器设备的加密数据区域读取加密数据;
由所述存储器控制器通过所述系统总线向所述即时加密器发送所述加密数据;
由所述即时加密器对所述加密数据进行解密以生成安全数据;
由所述即时加密器通过所述系统总线向所述CPU发送所述安全数据;
由所述CPU向所述存储器控制器发送正常读取请求,而不经过所述即时加密器;
由所述存储器控制器响应于所述正常读取请求而从所述存储器设备的非加密数据区域读取正常数据;以及
由所述存储器控制器通过所述系统总线向所述CPU发送所述正常数据,而不经过所述即时加密器。
10.根据权利要求9所述的操作方法,还包括:
阻止所述CPU在不经过所述即时加密器的情况下对所述加密数据区域的直接访问。
11.根据权利要求9所述的操作方法,其中,由所述存储器控制器读取正常数据包括:对来自所述非加密数据区域的加扰数据进行解扰以生成所述正常数据。
12.一种计算系统,包括:
系统总线;
中央处理单元CPU,所述CPU连接到所述系统总线;
存储器控制器,所述存储器控制器连接到所述系统总线;
即时加密器,所述即时加密器连接到所述系统总线;以及
存储器设备,所述存储器设备包括加密数据区域和非加密数据区域,
其中,当所述CPU访问所述存储器设备的所述加密数据区域时:
所述CPU被配置为通过所述系统总线访问所述即时加密器;
所述即时加密器被配置为响应于所述CPU的访问而通过所述系统总线访问所述存储器控制器;以及
所述存储器控制器被配置为响应于所述即时加密器的访问而访问所述加密数据区域;
其中,当所述CPU访问所述存储器设备的所述非加密数据区域时:
所述CPU被配置为直接访问所述存储器控制器而不经过所述即时加密器;以及
所述存储器控制器被配置为响应于所述CPU的直接访问而访问所述存储器设备的所述非加密数据区域。
13.根据权利要求12所述的计算系统,还包括:
访问控制逻辑,所述访问控制逻辑在所述存储器控制器和所述系统总线之间,并且被配置为阻止所述CPU在不经过所述即时加密器的情况下对所述存储器设备的所述加密数据区域的直接访问。
14.根据权利要求12所述的计算系统,其中,所述CPU还被配置为基于系统地址空间访问所述存储器设备的所述加密数据区域和所述非加密数据区域,
所述系统地址空间包括伪安全存储器地址空间和存储器地址空间,以及
所述存储器地址空间包括与所述加密数据区域相对应的空间和与所述非加密数据区域相对应的空间。
15.根据权利要求14所述的计算系统,其中,所述CPU还被配置为通过使用所述伪安全存储器地址空间的地址来访问所述存储器设备的所述加密数据区域,以及
所述CPU还被配置为通过使用与所述非加密数据区域相对应的所述空间的地址来访问所述存储器设备的所述非加密数据区域。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2016-0066143 | 2016-05-30 | ||
KR20160066143 | 2016-05-30 | ||
KR10-2016-0093582 | 2016-07-22 | ||
KR20160093582 | 2016-07-22 | ||
KR1020160144663A KR102588733B1 (ko) | 2016-05-30 | 2016-11-01 | 온-더-플라이 인크립터를 갖는 집적회로, 그것을 포함하는 컴퓨팅 시스템 및 그것의 동작 방법 |
KR10-2016-0144663 | 2016-11-01 | ||
US15/585,253 US10749672B2 (en) | 2016-05-30 | 2017-05-03 | Computing system having an on-the-fly encryptor and an operating method thereof |
US15/585,253 | 2017-05-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451072A CN107451072A (zh) | 2017-12-08 |
CN107451072B true CN107451072B (zh) | 2022-06-24 |
Family
ID=58632191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710345730.9A Active CN107451072B (zh) | 2016-05-30 | 2017-05-16 | 具有即时加密器的计算系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10749672B2 (zh) |
EP (1) | EP3252651A1 (zh) |
CN (1) | CN107451072B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102488636B1 (ko) | 2017-11-23 | 2023-01-17 | 삼성전자주식회사 | 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치 |
US11520933B2 (en) * | 2019-01-30 | 2022-12-06 | Macronix International Co., Ltd. | Memory chip having security verification function and memory device |
US20200396054A1 (en) * | 2019-06-17 | 2020-12-17 | Macronix International Co., Ltd. | Secure Memory Read |
WO2020252791A1 (zh) * | 2019-06-21 | 2020-12-24 | 华为技术有限公司 | 一种集成芯片及数据处理方法 |
US11704443B2 (en) * | 2019-11-19 | 2023-07-18 | Silicon Laboratories Inc. | Block cipher side-channel attack mitigation for secure devices |
CN111600867B (zh) * | 2020-05-12 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 一种数据加密方法和相关设备 |
US11782127B2 (en) | 2021-02-05 | 2023-10-10 | Nxp Usa, Inc. | Stop criterion for greedy target detection algorithms in radar applications using sparse phased arrays |
US11567676B2 (en) | 2021-04-30 | 2023-01-31 | Nxp B.V. | Inline encryption/decryption for a memory controller |
US11620184B2 (en) | 2021-08-16 | 2023-04-04 | Nxp B.V. | Runtime integrity checking for a memory system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101051892A (zh) * | 2007-03-14 | 2007-10-10 | 江中尧 | 一种cpu专用数据的加密装置及方法 |
JP2011180778A (ja) * | 2010-02-26 | 2011-09-15 | Toshiba Corp | データ記憶装置のコントローラ、データ記憶装置及びその制御方法 |
CN103164666A (zh) * | 2011-12-16 | 2013-06-19 | 三星电子株式会社 | 保护安全数据的存储器装置及认证存储器装置的方法 |
CN104871169A (zh) * | 2012-12-06 | 2015-08-26 | 三星电子株式会社 | 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226736B1 (en) * | 1997-03-10 | 2001-05-01 | Philips Semiconductors, Inc. | Microprocessor configuration arrangement for selecting an external bus width |
US6272637B1 (en) * | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US10326798B2 (en) * | 1998-07-16 | 2019-06-18 | Grid7, LLC | System and method for secure data transmission and storage |
DE60210416T2 (de) | 2002-02-28 | 2006-09-07 | Matsushita Electric Industrial Co., Ltd., Kadoma | Speicherkarte |
US8135962B2 (en) | 2002-03-27 | 2012-03-13 | Globalfoundries Inc. | System and method providing region-granular, hardware-controlled memory encryption |
US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US8060756B2 (en) | 2003-08-07 | 2011-11-15 | Rao G R Mohan | Data security and digital rights management system |
US7346755B2 (en) | 2003-09-16 | 2008-03-18 | Hewlett-Packard Development, L.P. | Memory quality assurance |
KR101022473B1 (ko) * | 2004-02-13 | 2011-03-15 | 삼성전자주식회사 | 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치 |
EP1870814B1 (en) | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US20060143454A1 (en) | 2004-05-27 | 2006-06-29 | Silverbrook Research Pty Ltd | Storage of multiple keys in memory |
US20060005047A1 (en) | 2004-06-16 | 2006-01-05 | Nec Laboratories America, Inc. | Memory encryption architecture |
US7444523B2 (en) | 2004-08-27 | 2008-10-28 | Microsoft Corporation | System and method for using address bits to signal security attributes of data in the address space |
US7734926B2 (en) * | 2004-08-27 | 2010-06-08 | Microsoft Corporation | System and method for applying security to memory reads and writes |
US7920701B1 (en) | 2004-12-15 | 2011-04-05 | Nvidia Corporation | System and method for digital content protection |
JP2007122391A (ja) | 2005-10-27 | 2007-05-17 | Toshiba Corp | 暗号化プログラムを復号して実行する情報処理装置及びメモリ管理方法 |
US20070174910A1 (en) | 2005-12-13 | 2007-07-26 | Zachman Frederick J | Computer memory security platform |
JP4740830B2 (ja) * | 2005-12-14 | 2011-08-03 | エヌヴィディア コーポレイション | チップセットセキュリティオフロードエンジン |
US8001374B2 (en) | 2005-12-16 | 2011-08-16 | Lsi Corporation | Memory encryption for digital video |
US9177176B2 (en) * | 2006-02-27 | 2015-11-03 | Broadcom Corporation | Method and system for secure system-on-a-chip architecture for multimedia data processing |
KR20080029687A (ko) | 2006-09-29 | 2008-04-03 | 한국전자통신연구원 | 암호화 기능이 내장된 메모리를 이용한 고속 대용량의암호화 장치 및 그 구현 방법 |
US9141557B2 (en) | 2006-12-08 | 2015-09-22 | Ashish A. Pandya | Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine |
US9124650B2 (en) | 2006-12-13 | 2015-09-01 | Quickplay Media Inc. | Digital rights management in a mobile environment |
US20080189479A1 (en) * | 2007-02-02 | 2008-08-07 | Sigmatel, Inc. | Device, system and method for controlling memory operations |
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
US8171309B1 (en) | 2007-11-16 | 2012-05-01 | Marvell International Ltd. | Secure memory controlled access |
CN101252515A (zh) * | 2008-03-21 | 2008-08-27 | 北京大学深圳研究生院 | 一种片上网络芯片 |
US8411853B2 (en) * | 2008-08-28 | 2013-04-02 | Lsi Corporation | Alternate galois field advanced encryption standard round |
US9544133B2 (en) * | 2009-12-26 | 2017-01-10 | Intel Corporation | On-the-fly key generation for encryption and decryption |
US8799673B2 (en) * | 2009-12-31 | 2014-08-05 | Intel Corporation | Seamlessly encrypting memory regions to protect against hardware-based attacks |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US9536970B2 (en) | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
US8799553B2 (en) | 2010-04-13 | 2014-08-05 | Apple Inc. | Memory controller mapping on-the-fly |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
US20130024930A1 (en) | 2011-07-20 | 2013-01-24 | Michael Steil | Executing Functions of a Secure Program in Unprivileged Mode |
US20130305388A1 (en) * | 2012-05-10 | 2013-11-14 | Qualcomm Incorporated | Link status based content protection buffers |
US9026688B2 (en) | 2012-06-21 | 2015-05-05 | Breakingpoint Systems, Inc. | Systems and methods for programming configurable logic devices via USB |
US9466102B2 (en) | 2012-09-26 | 2016-10-11 | Siemens Corporation | Multi-GPU FISTA implementation for MR reconstruction with non-uniform K-space sampling |
US9063879B2 (en) | 2012-12-13 | 2015-06-23 | Sandisk Technologies Inc. | Inspection of non-volatile memory for disturb effects |
US9256551B2 (en) | 2013-08-09 | 2016-02-09 | Apple Inc. | Embedded encryption/secure memory management unit for peripheral interface controller |
FR3011654B1 (fr) | 2013-10-08 | 2016-12-23 | Commissariat Energie Atomique | Procede et dispositif d'authentification et d'execution securisee de programmes |
US9246890B2 (en) * | 2014-02-18 | 2016-01-26 | Oracle International Corporation | PGP encrypted data transfer |
US10169618B2 (en) * | 2014-06-20 | 2019-01-01 | Cypress Semiconductor Corporation | Encryption method for execute-in-place memories |
US10558584B2 (en) | 2014-06-23 | 2020-02-11 | Intel Corporation | Employing intermediary structures for facilitating access to secure memory |
-
2017
- 2017-04-20 EP EP17167222.3A patent/EP3252651A1/en active Pending
- 2017-05-03 US US15/585,253 patent/US10749672B2/en active Active
- 2017-05-16 CN CN201710345730.9A patent/CN107451072B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101051892A (zh) * | 2007-03-14 | 2007-10-10 | 江中尧 | 一种cpu专用数据的加密装置及方法 |
JP2011180778A (ja) * | 2010-02-26 | 2011-09-15 | Toshiba Corp | データ記憶装置のコントローラ、データ記憶装置及びその制御方法 |
CN103164666A (zh) * | 2011-12-16 | 2013-06-19 | 三星电子株式会社 | 保护安全数据的存储器装置及认证存储器装置的方法 |
CN104871169A (zh) * | 2012-12-06 | 2015-08-26 | 三星电子株式会社 | 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法 |
Non-Patent Citations (1)
Title |
---|
基于XTS-AES的USB存储加密器设计与实现;杨献超;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130615;I138-81 * |
Also Published As
Publication number | Publication date |
---|---|
EP3252651A1 (en) | 2017-12-06 |
US10749672B2 (en) | 2020-08-18 |
CN107451072A (zh) | 2017-12-08 |
US20170346628A1 (en) | 2017-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451072B (zh) | 具有即时加密器的计算系统及其操作方法 | |
US10423541B1 (en) | Using encryption within a computing system | |
US10176122B2 (en) | Direct memory access authorization in a processing system | |
CN105279439B (zh) | 用于就地执行的存储器的加密方法 | |
US9954681B2 (en) | Systems and methods for data encryption | |
US20170024568A1 (en) | Technologies for integrity, anti-replay, and authenticity assurance for i/o data | |
US10303621B1 (en) | Data protection through address modification | |
TWI679554B (zh) | 資料儲存裝置以及其操作方法 | |
US20180365451A1 (en) | Input/output data encryption | |
KR102488636B1 (ko) | 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치 | |
US20080109660A1 (en) | Crpto envelope around a cpu with dram for image protection | |
US20180137062A1 (en) | Cryptographic-based initialization of memory content | |
US20190215160A1 (en) | Managing a set of cryptographic keys in an encrypted system | |
US8886963B2 (en) | Secure relocation of encrypted files | |
US20220308756A1 (en) | Performing Memory Accesses for Input-Output Devices using Encryption Keys Associated with Owners of Pages of Memory | |
CN116648688A (zh) | 包含使用认证逻辑产生用于存储器区的存取代码的实例的存储器系统和装置 | |
KR102588733B1 (ko) | 온-더-플라이 인크립터를 갖는 집적회로, 그것을 포함하는 컴퓨팅 시스템 및 그것의 동작 방법 | |
US20180307626A1 (en) | Hardware-assisted memory encryption circuit | |
US10169616B1 (en) | Cryptographic processing of data and instructions stored off-chip | |
CN107533516B (zh) | 用于管理对在装置的芯片上的系统的安全模块的多次访问的设备 | |
US20230325326A1 (en) | Memory encryption | |
US8010802B2 (en) | Cryptographic device having session memory bus | |
US20240004801A1 (en) | Data encryption suitable for use in systems with processing-in-memory | |
US20240202289A1 (en) | Using Ownership Identifiers in Metadata in a Memory for Protecting Encrypted Data Stored in the Memory | |
Pei et al. | Efficient Split Counter Mode Encryption for NVM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |