WO2020034118A1 - 一种安全的数据转移装置、系统和方法 - Google Patents
一种安全的数据转移装置、系统和方法 Download PDFInfo
- Publication number
- WO2020034118A1 WO2020034118A1 PCT/CN2018/100649 CN2018100649W WO2020034118A1 WO 2020034118 A1 WO2020034118 A1 WO 2020034118A1 CN 2018100649 W CN2018100649 W CN 2018100649W WO 2020034118 A1 WO2020034118 A1 WO 2020034118A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- encryption
- data
- decryption
- current
- Prior art date
Links
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/44—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
-
- 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)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种安全的数据转移装置,属于电子技术领域。所述装置中的处理器(102)运行驱动软件以生成加解密信息,例如用于配置加解密参数的表。所述装置中的加解密设备(105)根据所述加解密信息获取当前加解密参数,使用所述当前加解密参数做加解密操作。所述装置中的PCIe接口(106)与位于所述装置外部的存储器中的存储器控制器(107)做密文数据交互。所述密文数据交互可以包括如下至少一项:在需要写入所述存储器时将来自所述加解密设备(105)的所述密文数据发送至所述存储器控制器(107)、或在需要读取所述存储器时将来自所述存储器控制器(107)的所述密文数据发送至所述加解密设备(105)。该装置通过通用的所述PCIe接口(106)与具有内置的存储器控制器(107)的存储器进行安全的数据转移,可扩展性好。
Description
本申请涉及电子技术领域,尤其涉及一种安全的数据转移装置、系统和方法。
在各类终端设备,如手机中,为了保证数据安全性,各类数据相关的文件将被各种可能的加密技术所加密。例如,一种常见的文件加密的方案是采用每个文件对应一个密钥(per file per key)的方式,该密钥可以和用户个人识别码(Pin,Personal Identification Number)相关联,并被存储在手机中预设存储区域,如数据存储器或运行存储器的专用存储区域中。手机可以从专用存储区域中获取该密钥并使用密钥对文件或数据做加密或解密。未经过加密的文件或数据叫做明文数据,加密后的文件或数据则是密文数据,密文数据可以被进一步存储在所述数据存储器或运行存储器中,例如该数据存储器是非掉电易失性(non-volatile)存储器,而运行存储器是掉电易失性(volatile)存储器。当手机需要读取该文件时,可以从所述数据存储器或运行存储器读取密文数据,并利用该密钥对相关密文数据做解密以恢复出所述明文数据。由于存在解密或解密操作,对数据存储器或运行存储器的读写将变得更加安全。
一种常见的现有解密或解密方案是采用软件,即利用手机中的处理器,如中央处理单元(CPU,Central Processing Unit)运行安全加解密(cryptography)软件来实现对数据或文件的加解密操作,即做解密或解密。处理器执运行软件产生的各类中间数据和控制指令可以临时存储在运行存储器中。在加密完成后,处理器可以将密文数据存入数据存储器。在从数据存储器读取数据时,利用所述处理器运行软件来对已经加密的数据,即密文数据,做解密。该处理器除了执行这种加解密操作,还执行其他操作,如运行其他驱动软件、操作系统(OS,Operating System)或应用软件,除了运算能力有限,可能存在速度无法满足要求的情况,进而会影响到系统性能。
另一种常见的现有加解密方案是利用可以读写所述数据存储器的存储器控制器执行所述加解密操作。例如,对于通用闪存存储(UFS,Universal Flash Storage)型的数据存储器,手机为了支持对该UFS存储器的读写,会在其片上系统(SoC,System on Chip)中进一步设置控制该UFS存储器的存储器控制器,该存储器控制器接受片上系统中的处理器控制并进一步执行UFS存储器的数据读写和加解密操作。当处理器需要执行数据转移,即向UFS存储器写入数据或从UFS存储器读取数据时,其不会通过运行软件对待操作的数据做加解密操作,而是通过驱动存储器控制器来执行所述加解密操作。也即是说,与软件加解密方案不同,该现有方案中的该存储器控制器是一个位于处理器之外的专用的硬件加速器。因此,该存储器控制器能根据处理器的指令实现安全的数据转移操作,处理性能较高。然而,存储器技术经常会演进出更新的版本,例如存在UFS1.0、UFS2.0或UFS3.0等诸多版本,新版本的UFS存储器具有更高的读写速度,但是手机中的片上系统中的存储器控制器一经出厂就无法再更新,也就不能支持新版本的UFS存储器。如果要支持更新的UFS存储器,片上系统中的存储器控制器所支持的存储器的协议规范也需要更新,即需要再终端设备内采用新的片上系统,这种方案可扩展性较差,实现复杂度高。
为了增加可扩展性和降低复杂度,一种具有内置存储器控制器的存储器技术被发展出来,例如高速非掉电易失性存储器(NVMe,NVM Express)技术。与UFS存储器不同,该技术将存储器控制器内置于NVMe存储器中,即NVMe存储器内部不仅包括了存储介质,也进一步包括了用于数据读写的存储器控制器,此时不再需要在片上系统中设置用于读写NVMe存储器的存储器控制器。因此在本现有方案中,片上系统可通过通用接口,例如高速外设部件互连(PCIe,PCI Express)接口,与内置于NVMe存储器中的存储器控制器连接。通过该PCIe接口,片上系统中的处理器向该存储器控制器发送数据读写指令和做数据转移。内置存储器控制器进一步通过PCIe接口从片上系统侧接收未加密的数据,执行加密并将密文数据写入存储介质,以及可以进一步从存储介质中读出密文数据并解密获得明文数据,以将明文数据通过PCIe接口传输至片上系统侧。由于片上系统是通过PCIe接口和NVMe存储器连接,该PCIe接口可扩展性强,可灵活适用于不同存储器协议的存储器类型。例如,无论NVMe存储器技术如何演进,其均通过该PCIe接口与片上系统连通,无需在片上系统中专门设计任何专用的存储器控制器或接口,NVMe存储器技术的更新不需要同步更新片上系统,实现简单。因此,将存储器控制器内置于存储器的技术正在变得更加流行。
然而,内置存储器控制器的NVMe存储器技术存在如下缺陷:经由PCIe接口在片上系统和NVMe存储器之间转移的都是明文数据,这种将明文数据暴露在通用PCIe接口上传输的方案使得数据读写的安全性很难得到保证。有鉴于此,如何在保证系统性能的前提下在片上系统和存储器之间安全转移数据就成为一个问题。
发明内容
本申请实施例提供一种安全的数据转移装置、系统和方法,以提供一种实现简单、可扩展性好且能够安全转移数据的方案,实现对存储器的安全读写操作。
第一方面,提供了一种安全的数据转移装置,该装置例如可以是片上系统或包括片上系统的装置,如电路板。该装置可以位于任一电子设备,如终端设备中。该装置包括:处理器,用于运行驱动软件以生成加解密信息(cryptography information);加解密设备,用于根据所述加解密信息获取当前加解密参数,使用所述当前加解密参数做加解密操作,所述加解密操作包括如下至少一项:对明文数据做加密以得到密文数据、或对所述密文数据做解密以得到所述明文数据;第一接口,与所述加解密设备耦合,用于与位于所述装置外部的第一存储器中的第一存储器控制器做密文数据交互,所述密文数据交互包括如下至少一项:在需要写入所述第一存储器时将来自所述加解密设备的所述密文数据发送至所述第一存储器控制器、或在需要读取所述第一存储器时将来自所述第一存储器控制器的所述密文数据发送至所述加解密设备。以上第一方面的技术方案,通过处理器之外的专用加解密设备执行加解密操作,使得与外部第一存储器交互的均是密文数据,具有良好安全性和速度。此外,只需要第一接口即可耦合至外部的第一存储器控制器,无需在装置内部集成第一存储器控制器,可扩展性强,实现简单。
可选地,第一接口的类型是可以灵活选择的,例如所述第一接口包括高速外设部件互连PCIe接口,该类型的接口扩展性好且传输速度很快,能够较好的满足系统需求。可选地,该第一存储器包括高速非掉电易失性(NVMe)存储器。
可选地,所述明文数据包括但不限于如下任一项:程序代码、运算结果、用户数据、或系统数据等。可选地,所述加解密操作采用高级加密标准算法。可选地,所述处理器包括中央处理单元。可选地,所述加解密设备是一个硬件加速器。可选地,所述加解密设备和所述第一接口包括在一个连接器中。所述处理器通过总线耦合于所述连接器。
在一种可能的实现方案中,所述当前加解密参数包括当前密钥或当前加解密向量中的至少一个。通常情况下,密钥是最重要的加解密参数,加解密向量则是配合密钥使用的一种加解密参数,可以进一步提高安全性。
在一种可能的实现方案中,所述加解密设备还用于与位于所述装置外部的第二存储器做明文数据交互,所述明文数据交互包括:在需要写入所述第一存储器时从所述第二存储器获取所述明文数据、或在需要读取所述第一存储器时将所述明文数据提供给所述第二存储器。在本方案中,向第一存储器提供的密文数据可以来源于所述第二存储器,反之从第一存储器获取的密文数据可以被提供至第二存储器,实现两个存储器之间的数据转移,且保证安全性。例如,第一存储器是数据存储器,第二存储器是运行存储器。再例如,数据存储器是非掉电易失性存储器,运行存储器是掉电易失性存储器。通过该方案,运行存储器中的数据被及时保存至数据存储器以避免丢失,且需要处理的数据可以被随时从数据存储器加载到运行存储器中。
进一步地,该装置还包括:第二存储器控制器,与所述加解密设备和所述第二存储器耦合,用于执行如下至少一项:在需要写入所述第一存储器时从所述第二存储器中读取所述明文数据并向所述加解密设备发送所述明文数据、或在需要读取所述第一存储器时从所述加解密设备接收所述明文数据并将所述明文数据写入所述第二存储器。由于第二存储器控制器没有位于第二存储器中,而是在所述装置内部,从而不同于第一存储器,该方案可实现数据在两种不同类的存储器之间的安全转移。可选地,该第二存储器控制器可耦合至总线。
在一种可能的实现方案中,该加解密设备包括:控制电路,用于获取与写入或读取所述第一存储器相关的当前存储地址,根据所述加解密信息获取与所述当前存储地址对应的所述当前加解密参数;加解密电路,用于使用所述当前加解密参数做所述加解密操作。在本方案中,数据可以被分为多个部分,对于任一部分即将被处理的数据,其唯一对应于一个加解密参数,该加解密参数则唯一对应于该部分数据的当前存储地址,使得不同存储地址对应的不同数据具有不同加解密参数,进一步提升安全性。
可选地,所述加解密信息包括密钥索引表,所述密钥索引表包括多个存储地址和与每个存储地址对应的密钥索引;所述加解密设备还包括:存储单元,用于存储密钥查找表,所述密钥查找表包括多个密钥索引以及与每个密钥索引对应的密钥;所述处理器,还用于将所述密钥索引表保存在位于所述装置外部的第二存储器;所述控制电路,用于获取所述当前存储地址,查找所述第二存储器中的所述密钥索引表以得到与所述当前存储地址对应的当前密钥索引,并进一步查找所述存储单元中的密钥查找表以得到与所述当前密钥索引所对应的所述当前密钥。在该方案中,所述处理器仅用于生成密钥索引表,密钥不会被所述处理器直接获取,并且由于密钥被存储于所述加解密设备内部的存储单元中,不容易被加解密设备外的任何部件,如处理器获得,且保证安全性。进一步地,所述密钥索引表进一步包括与每个存储地址对应的加解密向量;所述控制电路,还用于查找所述密钥索引表以得到与所述当前存储地址对应的当前加解密向量,以进一步提升安全性。
可替换地,所述加解密信息包括密钥配置表,密钥配置表包括多个存储地址和与每个存储地址对应的加解密参数;所述处理器,还用于将所述密钥配置表保存在位于所述装置外部的第二存储器;所述控制电路,用于获取所述当前存储地址,查找所述第二存储器中的所述密钥配置表以得到与所述当前存储地址对应的当前加解密参数。
可替换地,所述加解密信息包括密钥配置表,密钥配置表包括多个存储地址和与每个存储地址对应的加解密参数;所述加解密设备还包括:存储单元,用于存储所述密钥配置表;所述处理器,还用于将所述密钥配置表配置在位于所述存储单元中;所述控制电路,用于获取所述当前存储地址,查找所述存储单元中的所述密钥配置表以得到与所述当前存储地址对应的当前加解密参数。
可选地,以上提到的密钥索引表或密钥配置表可以被融合在输入/输出命令表中,例如,该输入/输出命令表包括分散聚合表或物理内存页表。如此,本方案可很好地兼容现有的存储器协议,节省存储资源,并简化处理过程。
进一步地,所述当前存储地址是所述密文数据在第一存储器中的存储介质中的第一地址。或者,所述当前存储地址是所述明文数据在位于所述装置外部的第二存储器中的第二地址。在本方案中,由于第一存储器中的存储介质中的第一地址或第二存储器中的第二地址均可被作为查找密钥的索引,无需专门生成其他类型的密钥索引,实现简单。
进一步地,所述处理器还用于实时更新所述当前存储地址。例如,所述处理器还用于根据第一地址或第二地址的变化实时更新密钥索引表或密钥配置表中的地址。该方案使得即便存储密文数据的第一地址或存储明文数据的第二地址发生变化,这种变化不会影响所指向的加解密参数。
进一步地,所述处理器还用于产生输入/输出命令,所述输入/输出命令用于指示所述当前存储地址。可选地,所述输入/输出命令被提供至所述第一存储器控制器;所述第一接口用于从所述第一存储器控制器获取所述当前存储地址,并转发所述当前存储地址至所述控制电路;所述控制电路具体用于接收所述第一接口转发的所述当前存储地址。例如,所述处理器将所述输入/输出命令存储在所述第二存储器,以使得所述第一存储器控制器可进一步获取来自所述第二存储器的所述输入/输出命令。再例如,所述处理器将所述输入/输出命令通过所述第一接口发送至所述第一存储器控制器。再例如,所述输入/输出命令是输入/输出命令表。
第二方面,提供了一种安全的数据转移系统,包括如第一方面或第一方面下任一种可选实现方案所述的装置,以及进一步包括所述第一存储器。所述第一存储器包括:第二接口,与所述第一接口耦合,用于在对所述第一存储器写操作时从所述第一接口接收所述密文数据或在对所述第一存储器读操作时向所述第一接口发送所述密文数据;存储介质,用于存储所述密文数据;以及所述第一存储器控制器,用于执行至少如下至少一项:从所述第二接口接收所述密文数据并向所述存储介质写入所述密文数据、或从所述存储介质中读取所述密文数据并向所述第二接口发送所述密文数据。可选地,所述系统还包括:第二存储器,用于存储所述明文数据。例如,该系统包括在一个终端设备内。例如,该系统可以是一个电路板或芯片组。
第三方面,提供了一种安全的数据转移方法,包括:运行驱动软件以生成加解密信息;在加解密设备中,根据所述加解密信息获取当前加解密参数,使用所述当前加解密参数做加解密操作,所述加解密操作包括如下至少一项:对明文数据做加密以得到密文数据、或 对所述密文数据做解密以得到所述明文数据;利用第一接口,与外部的第一存储器中的第一存储器控制器做密文数据交互,所述密文数据交互包括如下至少一项:在对所述第一存储器写操作时将来自所述加解密设备的所述密文数据发送至所述第一存储器控制器、或在对所述第一存储器读操作时将来自所述第一存储器控制器的所述密文数据发送至所述加解密设备。
第四方面,提供了一种设备,例如终端设备,包括如第一方面或第一方面下任一种可选实现方案所述的装置,或者包括第二方面所述的系统。
更具体的具体方案可参照本发明的以下具体实施方式。
图1为本发明实施例提供的一种电子设备的结构示意图;
图2为本发明实施例提供的一种位于电子设备内的系统的结构示意图;
图3为本发明实施例提供的一种加解密设备的结构示意图;
图4为本发明实施例提供的一种密钥索引表的示意图;
图5为本发明实施例提供的一种将数据从运行存储器转移至数据存储器的流程示意图;
图6为本发明实施例提供的一种将数据从数据存储器转移至运行存储器的流程示意图;
图7为本发明实施例提供的一种密钥配置表的示意图;
图8为本发明实施例提供的一种密钥配置表或密钥配置表的表项的配置方式的示意图;
图9为本发明实施例提供的一种数据转移方式的示意图。
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。为了便于理解,下面首先对本实施例涉及的一些名词进行解释。
片上系统,是一种芯片,具体是将多个功能的部件集成在一个芯片上所形成的系统。芯片也叫做半导体芯片,是利用集成电路工艺制作在集成电路的衬底(通常是例如硅一类的半导体材料)上形成的集成电路的集合,其外层通常被半导体封装材料封装。所述集成电路可以包括各类功能器件,每一类功能器件可包括逻辑门电路、金属氧化物半导体(Metal-Oxide-Semiconductor,MOS)晶体管、双极晶体管或二极管等晶体管,也可包括电容、电阻或电感等其他元件。功能器件可以独立工作或者在必要的驱动软件的作用下工作,可以实现通信、运算、或存储等各类功能。
处理器,是一种用于执行软件来做计算处理的计算设备,其可包括如下至少一种类型的器件:中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)、微处理器、人工智能(AI,Artificial Intelligence)处理器、微控制器 (Microcontroller Unit,MCU)、或图像处理单元(GPU,Graphics Processing Unit)。该处理器可包括一个或多个用于运行软件的核,例如可以是一个单核处理器或多核处理器,该处理器也可以进一步选择性地包括必要的硬件加速器。例如,处理器内部一个或多个核或硬件加速器可以是集成在同一个芯片中或位于多个不同的芯片上。在本实施例中,可在同一片上系统内集成处理器和硬件加速器形式的加解密设备。
硬件加速器,是不需要运行软件,仅通过硬件电路实现逻辑计算或处理的部件,包括特定应用集成电路专用集成电路(Application-Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、逻辑计算单元、逻辑门阵列或算法电路等,也可以选择性地进一步包括必要的模拟电路,本实施例不做严格限定。
软件,是由处理器运行的程度代码的集合,程序代码可以包括大量代码指令。例如,软件可形成计算机程序产品,可包括操作系统软件、应用软件、开源软件、或驱动软件等。
数据,包括各类可被计算机或处理器或硬件加速器处理的二进制数据,包括但不限于程序代码、运算结果、用户数据、或系统数据等。例如,所述用户数据可以是图像处理、音频数据、游戏数据、文档数据、或个人信息等。再例如,所述程序代码可包括所述操作系统软件、应用软件、开源软件、或驱动软件等软件的部分或全部。进一步地,明文数据,是未加密的初始数据。密文数据,则是明文数据经过加密后的数据,被解密后可得到所述明文数据。
加解密(cryptography)操作是一种利用密钥处理信息或数据以保证安全性技术,包括加密(encryption)或解密(decryption)中的至少一个。所述处理可能进一步需要加解密向量(cryptography vector),也叫初始化向量。
本申请的实施例中,所使用的“至少一项”意指一个或任意多个的组合。例如,“A或B中的至少一项”意指A、B、或A和B的组合。“第一”和“第二”仅仅用于区分不同的主体或目标,不用于限定主体或目标的具体技术特征。“耦合”一词用于表达不同部件之间的相互联系,如电性连接或通信连接,可以包括通过连接线直接连接和通过第三方部件间接连接。
如图1所示,为本发明实施例提供的一种电子设备01的结构示意图。电子设备01可以是个具有通信能力的终端设备,也叫用户设备(user equipment,UE),具体可以是接入终端、终端单元、终端站、移动站、移动台、远方站、远程终端、移动设备、无线通信设备、终端代理或终端装置等。接入终端可以是蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字处理(personal digital assistant,PDA)等具有无线通信功能的手持设备、车载设备、便携设备等各种类型的产品,例如该电子设备01是个手机。或者,电子设备01也可以是不具有通信能力的电子设备,例如是个游戏机,本实施例对此不做限定。
下面仅以电子设备01是一个手机为例进行介绍。在电子设备01中,包括片上系统10、数据存储器20、运行存储器30、射频系统40和外设50。所述片上系统10可包括基本的处理能力,执行如计算处理、图形处理、语音处理、通信算法处理、人工智能处理、和各类应用处理等。例如,片上系统10可包括各类不同的处理器,如中央处理单元或GPU(图像处理单元),还可包括语音子系统、功控系统、通信处理系统、编解码器、显示子系统、和图像信号处理器(ISP)等。通信处理系统能支持各类无线通信协议,如可以包括但不限于全球移动通信(global system for mobile communication,GSM)协议、码分多址(code division multiple access,CDMA)协议、宽带码分多址(wideband code division multiple access,WCDMA)协议、长期演进(long term evolution,LTE)协议、IoT(物联网)或者NB-IoT(窄带物联网)协议或第五代(5G)移动通信协议。
电子设备01除了用于做运算处理的片上系统10外,还包括数据存储器20。该数据存储器20是主存储器,用于存储电子设备01的各类数据,如应用软件、操作系统软件、个人数据、或共享数据等。数据存储器20可以是非掉电易失性存储器(Non-volatile memory),在该数据存储器20下电后数据存储器20中的数据不会丢失。例如,该数据存储器20是高速闪存(Flash)存储器。
进一步地,电子设备01包括运行存储器30,该运行存储器30用于存储片上系统10的临时数据,例如用于加载运行的软件或存储运行软件所生成的各类中间数据或临时数据。该运行存储器30可以是掉电易失性存储器(Volatile memory),包括动态随机存取存储器(Dynamic Random Access Memory,DRAM),例如是双倍速率(Double Data Rate,DDR)同步动态随机存取存储器(Synchronous Dynamic Random Access Memory,SDRAM)。当片上系统10中的一个或多个处理器运行软件的时候,软件被从数据存储器20加载至运行存储器30,运行存储器30为被加载的软件提供软件运行所需的存储空间。例如,运行存储器30可存储相关软件、中间数据、或运指令等。当运行软件结束时,需要保存的各种运行结果或数据可以从运行存储器30保存至数据存储器20以避免相关数据丢失。
进一步地,电子设备01包括射频系统40,该射频系统40与片上系统10中的通信处理系统配合工作,以实现通信信号的收发。该射频系统40包括但不限于射频集成电路(RFIC)、射频前端(RFFE)或天线等。此外,电子设备01中还包括与片上系统配合工作的其他必要的外设50,外设50可以包括如触摸屏、显示器、各种数据接口,如输入或输出接口、电池、电源管理单元(PMU)、摄像头、指纹识别设备、包括音量控制键或其他按键的键盘、麦克风、或各种传感器等。
为了清晰的描述本实施例,结合图2,描述了一种位于电子设备01内部的系统02的架构图。该系统02可以是芯片组或包括片上系统10的电路板。系统02可以包括图1中的片上系统10、数据存储器20和运行存储器30。其中,片上系统10包括总线101、处理器102、连接器104、和存储器控制器107。处理器102、连接器104和存储器控制器107均耦合至总线101。其中,总线101用于连通片上系统10上的各个部件,使得不同部件被耦合起来以实现数据或控制信息的交互。如之前实施例所述,处理器102可以是各种不同类型的处理器,其一种实现方式是CPU。该CPU包括但不限于采用先进精简指令集机器(Advanced RISC Machine,ARM)架构、英特尔X86架构或单字长定点指令平均执行速度(Million Instructions Per Second,MIPS)架构的处理器。处理器102运行软件103,并实现对片上系统10中的其他部件的控制,如控制连接器104、存储器控制器107、直接内存存取(DMA)设备、GPU、语音子系统、功控系统、通信处理系统、编解码器、显示子系统或ISP等,所述控制包括调整功耗、调整电压、调整电流、调整时钟、控制开启和关闭等。由处理器102运行的软件103可以包括操作系统软件,如安卓系统,以及进一步包括各类应用软件、开源软件和各类驱动软件等。处理器102运行的软件103所形成的数据或中间运算结果可被暂时存储于运行存储器30。
图2中的片上系统10可耦合于运行存储器30和数据存储器20。其中,数据存储器20中保存有各类数据,如个人数据或程序代码软件。可选地,当电子设备01上电时,片 上系统10内的处理器102所运行的软件103和待处理的数据可以来自数据存储器20,因此数据存储器20是可以长期保存数据的非掉电易失性存储器。为了保证数据存储器20内个人数据或软件数据的安全性,相关数据可以密文数据的形式被存储在数据存储器20中。也即是说,各类数据在被存储在数据存储器20中之前将被加密形成密文数据。示例性地,该数据存储器20是个NVMe存储器,其除了包括用于存储数据的存储介质(图中未示出),还包括存储器控制器202。该存储器控制器202用来控制存储介质的读取和写入,因此不需要在片上系统10中设置该数据存储器20的存储器控制器。本实施例仅以NVMe存储器为例做说明,数据存储器20也可以是其他类型的具有内置存储器控制器的存储器。只要数据存储器20包括了内置存储器控制器,片上系统10就不需要专门内置用于控制数据存储器20中数据读取和写入的存储器控制器,实现复杂度低且可扩展性强。
为了在片上系统10与数据控制器20之间实现数据交互,片上系统10中包括连接器104,该连接器104耦合至总线101,并与外部的数据存储器20相耦合。该连接器104可包括加解密设备105和PCIe接口106。其中,该连接器104或其中的加解密设备105可以是以一个知识产权(Intellectual Property,IP)核的形式被集成与片上系统10中。由于数据存储器20内具有存储器控制器202,该连接器104无需包括专用的存储器控制器,可以仅支持通用的PCIe接口协议,以增加可扩展性和降低复杂度。加解密设备105用于执行加解密操作,该加解密操作包括加密或解密的至少一项,以便将即将写入数据存储器20的明文数据加密为密文数据,或者将从数据存储器20读取的密文数据解密为明文数据。因此,加解密设备105可以被认为具备加密或解密中的至少一个功能。则相应地,数据存储器20内部进一步包括PCIe接口204,PCIe接口204被耦合至片上系统10中的PCIe接口106,通过这两个PCIe接口,片上系统10和数据存储器20可以做密文数据的交互。在实际实现中,用于耦合片上系统10和数据存储器20的接口可以是除PCIe接口外的其他接口,即接口的类型是可以灵活选择的,该接口不必支持特定的存储器协议,可扩展性强,实现简单。本实施例涉及的PCIe接口是一种标准的数据传输通道,其可以包括控制器和物理层器件,共同作用支持基于PCIe协议的接口传输,其具体的实现方案可参照现有技术。后续实施例均以PCIe接口为例做介绍,该类型的接口扩展性好且传输速度很快,能够较好的满足系统需求。本实施例在片上系统10和数据存储器20之间实现数据转移,并用专用加解密设备执行加解密操作,使得在PCIe接口106上传输的数据均是密文数据,避免数据内容被暴露,具有良好安全性和速度。
在片上系统10与数据存储器20之间转移数据的时候,可以是将数据写入数据存储器20,也可以是将数据从数据存储器20读取出来。在数据写入的时候,连接器104内加解密设备105可以通过总线101获取来自数据源的明文数据,以及加密明文数据以得到密文数据,密文数据经由PCIe接口106发送至数据存储器20内部的PCIe接口204,使得PCIe接口204将密文数据转至存储器控制器202,并由存储器控制器202将相关密文数据写入对应存储介质的地址内。在数据读取的时候,数据流方向相反,存储器控制器202从对应存储介质的地址内获取密文数据并发送至PCIe接口204,PCIe接口204将密文数据发送至片上系统10内的PCIe接口106,加解密设备105进一步对密文数据做解密得到明文数据,被恢复出的明文数据通过总线101被发送至数据目的地。
在一种示例中,用于在写入数据存储器20时提供待存入的明文数据的数据源或用于在读取数据存储器20时接收恢复出的明文数据的数据目的地可以是片上系统10内的部件 也可以是其他外部部件。在一个实施例中,所述数据源或数据目的地是运行存储器30。运行存储器30例如可以是DRAM,用于加载处理器102所运行的软件103,以提供运行软件所需的存储空间,此外运行存储器30还可以存储运行软件103时产生的各类控制指令或中间数据等。可替换地,运行存储器30也可以是DRAM外的其他存储设备,本实施例将以DRAM为例做介绍。处理器102运行软件103产生各类运行结果,此外其他部件的运算或处理也可能产生的运行结果,任一运行结果可包括各类明文数据并被暂时存入运行存储器30。当片上系统10需要将该明文数据从运行存储器30内写入数据存储器20时,相关数据可经过连接器104中的加解密设备105加密以得到密文数据,从而实现安全保存。当片上系统10需要将数据存储器20中的数据加载到运行存储器30内时,获取相关密文数据经过加解密设备105解密以恢复出明文数据。当相关密文数据被加载到运行存储器30中时,可以被处理器102通过运行软件103处理,也可以被其他部件所处理。为了控制运行存储器30的读取或写入,片上系统10进一步包括存储器控制器107。该存储器控制器107将明文数据从运行存储器30读出并通过总线101提供给连接器104以便后续对数据存储器20的写入操作。相反,该存储器控制器107将从数据存储器20读取的以及被连接器104解密后的明文数据写入到运行存储器30中。
以上实施例中,存在两种不同类型的存储器。其中,运行存储器30的存储器控制器107设置在片上系统10中。数据存储器20的存储器控制器202则位于数据存储器20内部,而非片上系统10中。两个存储器之间的数据转移需要经过片上系统10中的连接器104,经过加解密操作以保证安全性。因此,运行存储器30主要包括存储介质,不包括存储器控制器。而数据存储器20则内置有专用的存储器控制器。尽管本发明实施例主要以数据存储器20和运行存储器30为例做介绍,可以理解,本实施例的方案在经过简单变形后也适用于任两个存储器之间的数据转移,只要其中任一存储器,甚至两个存储器,均可包括内置的存储器控制器,其数据转移,如读出或写入,的安全性可得到保证。该存储器可以是掉电易失性或非掉电易失性存储器,其支持的存储器协议也不限定。即便存储器协议改变或存储器类型改变,无需对片上系统10做大幅修改,可扩展性强且实现简单。
如图3所示,进一步提供了加解密设备105的结构示意图,该加解密设备105包括控制电路1052、加解密电路1054和存储单元1056。该三个部件可以包括大量的逻辑门阵列、晶体管或电路,从而使得该加解密设备10形成一个硬件加速器,用于提供高效的加解密操作并保证安全性。其中,控制电路1052用于获取加解密当前数据所需的当前加解密参数。加解密电路1054利用当前加解密参数实现加解密操作,包括但不限于加密或解密中的至少一项。因此加解密电路1054是包括加密或解密功能的电路。存储单元1056则可以存储具体加解密参数,其可以包括随机存取存储器(RAM)、缓存器或寄存器等任一种可以用于存储数据的部件。在一个实施例中,处理器102通过运行软件103生成配置信息302,该配置信息302可以被存入运行存储器30。该配置信息302可以包括加解密信息,用于配置加解密所需的加解密参数,如包括如图4所示的密钥索引表3021。在该密钥索引表3021中,包括多个存储地址、与每个存储地址对应的密钥索引和加解密向量。控制电路1052可以通过总线101获取运行存储器30中的该密钥索引表。控制电路1052以当前存储地址为输入来查找该表,以得到与当前存储地址对应的当前密钥索引和的当前加解密向量,该当前存储地址是在所述数据存储器20和所述运行存储器30之间的数据转移所相关的地址,可以是密文数据在数据存储器20内存储介质的地址,或者是明文数据在所述运行存 储器30中的地址。进一步地,控制电路1052利用得到的当前密钥索引查找存储单元1056。其中,存储单元1056中存储的加解密参数具体以密钥查找表1058的形式存在,如图3中的密钥查找表1058,包括多个密钥索引以及与每个密钥索引对应的密钥。控制电路1052利用当前密钥索引在该表1058中找到对应的当前密钥作为加解密所需的密钥。控制电路1052进一步将获得的当前密钥和当前加解密向量提供给加解密电路1054,该加解密电路1054根据当前密钥和当前加解密向量进行加解密操作,所使用的加解密算法可以包括但不限于高级加密标准(Advanced Encryption Standard,AES)算法,本实施例对具体使用的加解密算法不做具体限定。由于控制电路1052和加解密电路1054是硬件加速器,可以提高计算处理速度。
在以上实施例中,由于软件103所配置的密钥索引表3021中仅包括密钥索引和加解密向量,使得处理器102或软件103不会直接获取密钥,需要由控制电路1052进一步根据查找存储单元1056中的密钥查找表1058来获取密钥,存储单元1056属于硬件加速器中,不能被软件读取,因此提升了密钥获取的安全性。
在一个可选的实施例中,如图5所示,提供一种将数据从运行存储器30转移至数据存储器20的流程方法。在本实施例中,被读取的运行存储器30是源存储器,被写入的数据存储器20是目的存储器。在S501中,处理器102通过运行软件103生成配置信息302,并将配置信息302配置在运行存储器30中。此外,处理器102可以实时更新和维护该配置信息302。该配置信息302可经由总线101可以被提供给存储器控制器107,并由存储器控制器107将配置信息302写入运行存储器30中以完成配置。此配置信息302可以包括加解密信息,用于配置加解密操作所需的加解密参数,如包括所述密钥索引表3021,也可以进一步包括用于数据转移的输入/输出(I/O)命令,该I/O命令可以命令表的形式存在,指示了向数据存储器20转移数据所需的信息,可以包括需要从运行存储器30读取的数据的地址,需要写入的数据存储器20中的存储介质的地址,和被操作的数据长度等。该命令表可以是满足特定存储器协议的表,例如,分散聚合表(SGL,Scatter Gather List)或物理内存页(PRP,Physical Region Page)表,这两种表的具体形式可参照现有技术的描述,本实施例不做展开。运行存储器30可以将配置信息302中的密钥索引表3021和用于数据转移的I/O命令分开保存,或也可以将二者保存在一起,本实施例对此不做限定。
在S502中,PCIe接口106通过存储器控制器107和总线101获取运行存储器30中存储的所述I/O命令。示例性地,PCIe接口106可以包括类似于DMA设备的控制数据搬运能力,从而控制数据在不同部件之间的搬运。可选地,各实施例中的PCIe接口106可以被其他类型的不具有数据搬运控制能力的接口代替,则此时该接口可以发送请求给处理器102或耦合在总线101上的一个DMA设备,以便处理器102或该DMA设备进行所述数据搬运控制以便将所述I/O命令从运行存储器30转移至PCIe接口106。
在S503中,PCIe接口106将该I/O命令转发至数据存储器20。数据存储器20通过PCIe接口204接收所述I/O命令并转发至存储器控制器202,以便该存储器控制器202可以根据所述I/O命令控制对数据存储器20中存储介质写入。具体地,该存储器控制器202可以生成包括当前存储地址的写入命令。在一种可替换的实现方案中,与存储器控制器202通过S502和S503获得处理器102存储在运行存储器30中的I/O命令不同,所述处理器102可将所述I/O命令通过所述PCIe接口106发送至所述存储器控制器202,本实施例对存储器控制器202如何获取处理器102生成的I/O命令的方式不作具体限定。
在S504中,数据存储器20将I/O命令中指示的当前存储地址发送给PCIe接口106,例如发送包括当前存储地址的所述写入命令。该当前存储地址可以是需要从运行存储器30读出的地址或者待写入数据存储器20的地址。示例性地,本实施例以需要从运行存储器30读出的地址,即源地址为例做说明。在S505中,PCIe接口106转发该当前存储地址到控制电路1052。
在S506中,控制电路1052可以进一步使用所述当前存储地址作为输入来查找存储在运行存储器30中的密钥索引表3021。如S501所述,密钥索引表3021由处理器102运行软件103生成并被作为配置信息302临时存储在运行存储器30中。控制电路1052可以通过总线101和存储器控制器107从运行存储器30中获取配置信息302中所述密钥索引表3021。示例性地,密钥索引表3021如图4所示,包括地址1、地址2、……地址n,示例性地n为16,即存在16个地址和对应的加解密参数。可替换地,n的数量可以是其他数值,如32或128等,本实施例仅以16举例。每个地址对应于运行存储器30中的一部分未被加密的明文数据的地址,每个地址对应的这部分明文数据的单位可以是页(Page),也可以是其他存储单位。下面实施例以页作为存储单位为例做介绍。假设当前存储地址为地址2,则控制电路1052通过查找密钥索引表3021得到与该当前存储地址2对应的密钥索引2以及加解密向量2。可以理解,加解密向量与密钥一样是所需的加解密参数,但其安全性要求低于密钥。在本实施例的一些可替代的应用场景下,加解密操作可以不使用加解密向量,因此密钥索引表3021中可仅包括密钥索引而不包括加解密向量。本示例中引入加解密向量是为了进一步提高安全性,该加解密向量也叫初始化向量(Initialization Vector,IV)。由于控制电路1052查找密钥索引表3021得到的是索引2,因此在S507中,控制电路1052进一步利用该索引2查找存储单元1056中的密钥查找表1058,以得到与索引2对应的加解密密钥2。
在S508中,控制电路1052将密钥2和加解密向量2作为加解密参数提供给加解密电路1054。此外,在S509中,PCIe接口106经由总线101和存储器控制器107发送数据请求给运行存储器30。该数据请求根据之前在S504中收到的写入命令生成,可以包括需要从运行存储器30中读取数据的地址。在S510中,来自运行存储器30的明文数据被存储器控制器107按照所述地址读取并传输至加解密电路1054,如前所述该明文数据是一页数据或多页数据。需要说明的是,在图5所示实施例中,S509和S510的执行顺序是可变的,其可以位于S505之前,或者与S505至S508同步执行。也即是说,对于加解密电路1054而言,待加密的明文数据的获取与加解密参数的获取的先后顺序是没有严格限制的。
在S511中,加解密电路1054利用在S508获取的加解密参数对该明文数据做加密得到密文数据。加解密所使用的算法可以是高级加密标准-密码分组链接(AES-CBC,AES-Cipher Block Chaining)算法或高级加密标准-带密文挪用的可调分组密码(AES-XTS,AES-XEX Tweak and ciphertext Stealing)算法,即使用当前密钥和当前加解密向量执行加密。可以理解,此处也可以使用更加简化的算法,即省略使用加解密向量,仅采用密钥进行加密,运算复杂度会降低但安全性会略有牺牲。在S512中,加解密电路1054将密文数据提供给PCIe接口106。在S513中,PCIe接口106将密文数据转发至数据存储器20。在数据存储器2中,PCIe接口204用于密文数据接收,存储器控制器202用于根据S503中接收的所述I/O命令确定需要写入该数据存储器20的存储介质的写入地址,并进一步将密文数据写入所述地址。其中,PCIe接口106具有DMA设备的数据搬运控制能力。可选地, 各个实施例中的PCIe接口106可以被其他类型的不具有数据搬运控制能力的接口代替,则此时该接口可以发送请求给处理器102或耦合在总线101上的一个DMA设备,以便处理器102或该DMA设备进行所述数据搬运控制以便转发所述密文数据。该DMA设备或处理器102用于控制经由总线101在存储器控制器107和存储器控制器202之间的数据转移控制,从而实现不同存储器之间的数据交互。
以上图5的实施例展示的是将数据从运行存储器30转移至数据存储器20中,即将正被处理器102处理的临时数据或中间数据写入可以长期保存内容的数据存储器20的过程。在另一个实施例中,如图6所示,展示了将数据从数据存储器20转移至运行存储器30的流程方法,其展示了如何将被长期保存的数据从数据存储器20中调出并加载到运行存储器30中的过程,以便后续处理器102能够使用被加载的数据。与图5不同,在本实施例中,被读取的数据存储器20是源存储器,被写入的运行存储器30是目的存储器。其中S601至S608与图5中S501至S508类似。例如在S601中,处理器102运行软件103所生成的配置信息302也包括所述密钥索引表3021,不同之处在于配置信息302所包括的I/O命令用于指示将数据从数据存储器20转移至运行存储器30,而不是相反。具体地,该I/O命令仍然可以命令表的形式存在,包括需要从数据存储器20读取的数据的地址,需要写入的运行存储器30中的存储介质的地址,和被操作的数据长度等。具体地,在图5的基础上,在图6对应的流程中,处理器102可以对图5的S501生成的配置信息,即该I/O命令做实时更新和维护以得到新的该I/O命令。具体地,在本实施例中向运行存储器30写入的地址可能不同于图5实施例中的从运行存储器30读取的地址,因此处理器102通过运行软件103实现对I/O命令中的运行存储器30地址的修改。
在S604中,类似于S504,数据存储器20获取I/O命令中指示的当前存储地址,并发送给PCIe接口106,但是该当前存储地址可以不同于S504中的地址,因为运行存储器30用于存储明文数据的地址可能已经改变。不过,这两个改变前后的地址所指向的密钥、密钥索引或加解密向量却是相同的。也即是说,配置信息302中的密钥索引表3021或密钥配置表3025也被处理器2102实时更新和维护。但I/O命令更新的时候,明文数据在运行存储器30中的地址会改变,此时对应于该明文数据的密钥索引表3021或密钥配置表3025中的地址也被更新,保证地址的更新不会影响到指向的密钥或加解密向量。例如,对于图4的密钥索引表3021而言,当执行图5对应的流程的时候,用于作为查表输入的地址为运行存储器30的地址3,使得数据被从该地址3读取并写入数据存储器20中。在图6对应的流程中,配置信息302中的I/O命令更新导致运行存储器30的地址3发生变化,例如变为3’。此时数据存储器20中的数据将会被重新加载或写入地址3’。密钥索引表3021的地址3也被更新为地址3’,使得图6的流程中的查表所获得加解密参数仍然与前一次相同,并能够成功对密文数据做解密以恢复出明文数据。以上示例以运行存储器30的地址为例,可替换地,如果以数据存储器20中的地址作为查表输入,则也可以采用以上方案对配置信息302中的I/O命令实时更新并同步更新密钥索引表3021或密钥配置表3025,以保证密文数据在数据存储器20的地址的改变不会影响所指向的加解密参数。
进一步地,由于在S603中,PCIe接口106转发I/O命令至数据存储器20,则数据存储器20可以在随后的S609中根据I/O命令向PCIe接口106提供密文数据。具体地,数据存储器20中的PCIe接口204可以在S603中接收I/O命令并转发该I/O命令至存储器控制器202,存储器控制器202可以根据该I/O命令所指示的读取地址读取数据存储器20的存 储介质中的密文数据以便将密文数据转发至PCIe接口204,PCIe接口204用于耦合至PCIe接口106,以便在S609中将密文数据发送至PCIe接口106。进一步地,在S610中,PCIe接口106将接收的密文数据转发至加解密电路1054。
在S611中,加解密电路1054利用在S608中获取的加解密参数对在S609中获取的密文数据做解密,使用的解密算法例如是图5实施例最好能够涉及的加密算法的逆运算,从而恢复出明文数据。例如,该解密算法是AES-CBC算法或AES-XTS算法。在S611中,加解密电路1054将明文数据发送至PCIe接口106,以便PCIe接口106进一步在S612中转发该明文数据至运行存储器30。在S612中,PCIe接口106可以通过总线101将明文数据转发给存储器控制器107,该存储器控制器107用于将明文数据写入运行存储器30中待写入的地址。
需要说明的是,在以上图5或图6的实施例中,查找密钥索引表3021所使用的输入是未加密的一部分明文数据在运行存储器30中的地址。查找密钥索引表3021中包括的多个地址分别是保存在运行存储器30中的多个部分的明文数据的地址,每部分明文数据对应于一页或多页且具有对应的加解密参数。对于任一部分即将被处理的数据,其唯一对应于一对加解密参数,即密钥和加解密向量,该密钥和加解密向量则唯一对应于该部分数据的当前存储地址,使得不同存储地址对应的不同数据具有不同密钥和加解密向量,进一步提升安全性。被控制电路1052用于查表的输入是明文数据在运行存储器30中的地址。由于控制电路1052通过总线101和存储器控制器107从运行存储器30中读取的密钥索引表3021是由软件103配置的,属于配置信息302的一部分,该软件103可以决定密钥索引表3021的形式,并通过改变当前存储地址和密钥索引的对应关系来修改该表3021。可替换地,密钥索引表3021中包括的多个地址也可以分别是保存在数据存储器20中的多个部分的密文数据的地址,此时控制电路1052可以将密文数据在数据存储器20中的地址作为输入,以便查找该密钥索引表3021。当然,本实施例涉及的密钥索引表3021的输入也可以不是地址,而是由对应于待转移的这部分数据的其他标签,例如一个专用查表标识所代替,即密钥索引表3021可以被适应性的改变或调整,本实施例对此不作限定。当然,像之前实施例的介绍,直接使用地址作为索引是更为常见的选择,这样无需专门生成其他类型的密钥索引,实现简单。
在以上图5或图6的实施例中,除了在运行存储器30中存储有密钥索引表3021,还在加解密设备105内部包括的存储单元1056中存储有密钥查找表1058,以使得软件103无法直接获取存储单元1056中的密钥。进一步地,该存储单元1056可以被设置为无法被加解密设备105之外的任何部件访问,从而保证安全性。在另一种可替换的简化的实现密钥存储方式中,可以仅在运行存储器30或存储单元1056设置一个表,被定义为密钥配置表3025,从而降低实现复杂度,此时安全性会略有牺牲,但不影响技术目的实现。该密钥配置表3025可以如图7所示,其与密钥索引表2031不同之处在于,其直接包括了与多个地址对应的密钥和加解密向量,而不必包括密钥索引,此方案仅通过查找该一个表即可直接获得密钥,不用经过图5或图6实施例的第二次查表。也即是说,图5中的S506和S507,或者图6中的S606和S607,均可以被整合为一个步骤。控制电路1052仅利用当前存储地址,例如可以是加密后的密文数据在数据存储器20中的存储介质中的地址或未加密的明文数据在运行存储器30中的地址,作为输入来查找该密钥配置表3025,从而获得包括当前密钥和当前加解密向量在内的当前加解密参数。可替换地,加解密向量不是本实施例所 必需的,其仅为了提高安全性,实际加解密方案中可以仅使用密钥作为加解密参数。该密钥配置表3025可以像密钥索引表3021一样保存在运行存储器30中,也可以像密钥查找表1058一样存储在存储单元1056中。可选地,该密钥配置表3025也可以由处理器102运行软件103来配置或保存在运行存储器30或存储单元1056中,以便控制电路1052能执行查表操作,本实施例对此不做限定。当密钥配置表3025被存储在运行存储器30中时,加解密设备105中的存储单元1056可以被省略,也即是说,存储单元1056不是加解密设备105中必需的部件。
对于在图3中的存储单元1506中配置密钥查找表1508的方案,其除了避免软件103直接获取密钥外,还有一个好处,处理器102可以灵活配置密钥索引表3021,无论处理器102需要将运行存储器30中的哪部分数据转移至数据存储器20或进行反向数据转移,该部分数据对应的密钥不需要直接由处理器102来配置或更改,而是由处理器102直接改变密钥索引表3021,使得每部分数据唯一对应于该数据专用的索引,从而对应于唯一的加解密参数。
在图5或图6的实施例中,保存在运行存储器30中的加解密信息,如密钥索引表3021或密钥配置表3025可以是配置信息302的一部分,其他配置信息包括如前所述的I/O命令,用来指示转移数据所需的信息,如被读取的源存储器的数据地址,被写入的目的存储器的地址以及被操作的数据长度等。该I/O命令本身也可以是一个命令表,并被存储于运行存储器30中,该命令表满足存储器类型所对应的存储器协议,可以是分散聚合表或物理内存页表。密钥索引表3021或密钥配置表3025可以是不同于该命令表的一个单独的表,并与命令表存储在运行存储器30中的不同位置。或者在一种可能的实现方案中,密钥索引表3021或密钥配置表3025也可以与命令表融合形成一个表。例如对现有的NVMe存储器协议中的命令表,如分散聚合表或物理内存页表,其内部的某个表项的用于指示某个地址的字段,如源地址字段或目的地址字段中,可能存在未使用的比特(bit),此时可被用于指示密钥或密钥索引。假设在该命令表中,需要读取或写入运行存储器30的地址被作为查找密钥的查表输入,存储所述地址的表项中的未使用部分将被用于指示对应的密钥或密钥索引,也可选择性的进一步指示加解密向量。如图8所示,分散聚合表或物理内存页表中的一个表项例如包括64比特,其原始功能用于指示存储地址,但在实际产品实现中,由于实际存储空间有限或其他原因,该地址表项中仅有低位的38比特被地址信息占用,其余高位的26比特没有被地址信息所占用,此时这26个比特可用于存储加解密参数,如密钥配置表3025中的密钥和加解密向量,也可以用于存储密钥索引表3021中的密钥索引和加解密向量,或者以上方案中的加解密向量也可以被省略,本实施例对此不作限制。这样,软件103仅需要修改现有的存储器协议所能够支持的I/O命令表,如改变传统的分散聚合表或物理内存页表,即可形成本实施例所需的命令表,该命令表兼有传统I/O命令表和用于指示加解密参数的密钥索引表3021或密钥配置表3025的功能,而不需要单独生成或配置一个独立的密钥索引表3021或密钥配置表3025。通过以上方案,处理器102或软件103可以将加解密参数直接添加在传统的I/O命令表中以得到融合了密钥索引表3021或密钥配置表3025的命令表,在很好兼容现有存储器协议的基础上,节省存储资源,并简化处理过程。
需要说明的是,以上实施例所支持的存储器的协议类型仅仅是举例,以上方案也适用于其他类型的存储器之间的数据转移。此外,本实施例之前的方案以不同存储器,如数据 存储器20和运行存储器30之间的数据转移为例进行介绍,实际上所述装置和方法也可以被变形以应用于其他数据转移方案中,如在片上系统10和数据存储器20之间的数据转移。当片上系统10需要在其内部任一设备和数据存储器20之间做数据转移的时候,可以应用以上方案的变形。由于数据存储器20内置有存储器控制器202,因此,当需要从片上系统10内部任一设备向数据存储器20写入数据或将数据从数据存储器20读取并发送至所述任一设备时,处理器102均可用于生成配置信息302并存储于运行存储器30中,该配置信息302包括加解密信息以及用于数据转移的I/O命令。此时与之前实施例稍有不同,I/O命令指示的数据转移相关地址是所述任一设备的地址(此时的地址不是存储地址,而是该设备的标识)、以及数据存储器20中存储介质的读取或写入地址。而加解密设备105仍可以用于根据配置信息302中的加解密信息执行加解密操作,并通过PCIe接口106耦合至数据存储器20,以便在数据存储器20与所述任一设备转移数据。所述任一设备可以包括处理器102、通信处理系统、语音子系统、功控系统、编解码器、显示子系统或ISP等。因此,所述任一设备代替了运行存储器30,被作为数据转移的源地址设备或目的地址设备,以便从该源地址设备写入数据至数据存储器20或从数据存储器20读出数据至该目的地址设备。
不失一般性地,这种源地址设备或目的地址设备的改变不会改变技术方案本质,即便该设备不是片上系统10内部的器件也不会影响方案的实施,例如如果需要在用户识别模块(SIM)卡或可插拔的安全数据(SD,Secure Digital)卡与内置存储器控制器的存储器之间转移数据,相关技术方案同样适用,处理器102和该连接器104内的加解密设备105和PCIe接口106可以发挥其各自功能以实现与存储器之间转移数据。如果需要在内置了存储器控制器的任一类型的存储器,包括但不限于用于存储数据的数据存储器20,和电子设备01内的任一设备之间做所述数据转移,只要改变配置信息302中该I/O命令的数据转移地址以及修改加解密信息,如改变密钥索引表3021或密钥配置表3025中的地址,并改变数据流的方向以使得数据流的起点指向新的源地址设备或使得数据流的终点指向新的目的地址设备,则本实施例之前的相关技术方案仍然适用。
图5和图6分别描述了运行存储器30和数据存储器20之间两种不同的数据转移过程的示意图,在运行存储器30和数据存储器20之间的数据转移通道上包括存储器控制器107、总线101、加解密设备105和PCIe接口106,也可能选择性的涉及其他部件,如用于控制数据转移的专用DMA设备,本实施例不做限定。实际上的数据转移可以是双向的,即运行存储器30和数据存储器20可以同步向对方转移数据,如图9所示,标识91表示从运行存储器30向数据存储器20转移数据,标识92标识的过程则方向相反,两个方向的数据转移可以在不同时刻异步执行,但也可同步进行。因此,在一种可能的实现方式中,加解密设备可以同步执行加密和解密。对于任意存储器而言,其存储器控制器可以同时既读取数据也写入数据。以运行存储器30为例,其写入的明文数据包括第一数据,从该运行存储器30同步读取的明文数据包括第二数据,第一数据和第二数据均属于明文数据,但属于两种不同转移过程。对应地,第二数据在被加密为密文数据后成为第三数据并被存入数据存储器20,且第四数据被从数据存储器20读取并被解密以得到待写入运行存储器30的第一数据,第三数据和第四数据均属于密文数据,但属于两种不同转移过程。示例性地,第一数据和第二数据可以是相同类型的数据,例如都是程序代码数据或用户数据。或者,第一数据和第二数据可以是不同类的数据,例如其中一个是程序代码数据,另一个是 用户数据。
以上实施例的片上系统10是一个完整的芯片或集成的半导体设备。在一个可替换的实现方案中,片上系统10也可以由包括多个不同的芯片的芯片组代替,即片上系统10内的各个部件,如处理器102和连接器104,可以分别位于不同的芯片上。在另一个可替换的实现方案中,以上实施例中的片上系统10内的一些部件也可以位于芯片外部,由分立器件实现。因此,片上系统10内的各个部件可以由集成器件或分立器件结合实现,并不改变技术方案的实质。
通过以上技术方案,对于内置存储器控制器的存储器而言,其与片上系统内部件或经由片上系统向电子设备中的其他设备之间转移数据的时候,处理器可以配置加解密信息以便专用的独立于处理器之外的加解密设备能够执行加解密处理,实现了通过片上系统侧的安全操作,避免明文数据通过通用的PCIe接口在设备与存储器之间传输,提高了安全性。而且,内置存储器控制器的存储器可扩展性更强、且复杂度更低。以上实施例还可以很好的兼容现有的存储器协议,每当存储器类型有更新或需要使用新的存储器时,不需要对片上系统10进行大幅度修改即可支持新的存储器类型。
可以理解,在上述实施例中,处理器102所运行的软件103可以以计算机程序产品的形式实现。以上所述计算机程序产品可包括一个或多个计算机指令。所述计算机指令可以存储在计算机可读存储介质中,如数据存储器20或运行存储器30中,或者从一个计算机可读存储介质向另一个可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以包括磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等,也可以包括以上实施例中提到的各种存储器。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。例如,以上不同实施例的方案之间可以互相结合。例如,图5或图6对应的方法流程方案的一些细节可参照之前或之后其他具体描述部分的介绍。
Claims (21)
- 一种安全的数据转移装置,其特征在于,包括:处理器,用于运行驱动软件以生成加解密信息;加解密设备,用于根据所述加解密信息获取当前加解密参数,使用所述当前加解密参数做加解密操作,所述加解密操作包括如下至少一项:对明文数据做加密以得到密文数据、或对所述密文数据做解密以得到所述明文数据;第一接口,与所述加解密设备耦合,用于与位于所述装置外部的第一存储器中的第一存储器控制器做密文数据交互,所述密文数据交互包括如下至少一项:在需要写入所述第一存储器时将来自所述加解密设备的所述密文数据发送至所述第一存储器控制器、或在需要读取所述第一存储器时将来自所述第一存储器控制器的所述密文数据发送至所述加解密设备。
- 根据权利要求1所述的装置,其特征在于,所述当前加解密参数包括当前密钥或当前加解密向量中的至少一个。
- 根据权利要求1或2所述的装置,其特征在于,所述加解密设备还用于与位于所述装置外部的第二存储器做明文数据交互,所述明文数据交互包括:在需要写入所述第一存储器时从所述第二存储器获取所述明文数据、或在需要读取所述第一存储器时将所述明文数据提供给所述第二存储器。
- 根据权利要求3所述的装置,其特征在于,还包括:第二存储器控制器,与所述加解密设备和所述第二存储器耦合,用于执行如下至少一项:在需要写入所述第一存储器时从所述第二存储器中读取所述明文数据并向所述加解密设备发送所述明文数据、或在需要读取所述第一存储器时从所述加解密设备接收所述明文数据并将所述明文数据写入所述第二存储器。
- 根据权利要求1至4中任一项所述的装置,其特征在于,所述加解密设备包括:控制电路,用于获取与写入或读取所述第一存储器相关的当前存储地址,根据所述加解密信息获取与所述当前存储地址对应的所述当前加解密参数;加解密电路,用于使用所述当前加解密参数做所述加解密操作。
- 根据权利要求5所述的装置,其特征在于,所述加解密信息包括密钥索引表,所述密钥索引表包括多个存储地址和与每个存储地址对应的密钥索引;所述加解密设备还包括:存储单元,用于存储密钥查找表,所述密钥查找表包括多个密钥索引以及与每个密钥索引对应的密钥;所述处理器,还用于将所述密钥索引表保存在位于所述装置外部的第二存储器;所述控制电路,用于获取所述当前存储地址,查找所述第二存储器中的所述密钥索引表以得到与所述当前存储地址对应的当前密钥索引,并进一步查找所述存储单元中的密钥查找表以得到与所述当前密钥索引所对应的所述当前密钥。
- 根据权利要求6所述的装置,其特征在于,所述密钥索引表进一步包括与每个存储地址对应的加解密向量;所述控制电路,还用于查找所述密钥索引表以得到与所述当前存储地址对应的当前加解密向量。
- 根据权利要求5所述的装置,其特征在于,所述加解密信息包括密钥配置表,密钥配置表包括多个存储地址和与每个存储地址对应的加解密参数;所述处理器,还用于将所述密钥配置表保存在位于所述装置外部的第二存储器;所述控制电路,用于获取所述当前存储地址,查找所述第二存储器中的所述密钥配置表以得到与所述当前存储地址对应的当前加解密参数。
- 根据权利要求5所述的装置,其特征在于,所述加解密信息包括密钥配置表,密钥配置表包括多个存储地址和与每个存储地址对应的加解密参数;所述加解密设备还包括:存储单元,用于存储所述密钥配置表;所述处理器,还用于将所述密钥配置表配置在位于所述存储单元中;所述控制电路,用于获取所述当前存储地址,查找所述存储单元中的所述密钥配置表以得到与所述当前存储地址对应的当前加解密参数。
- 根据权利要求5至9中任一项所述的装置,其特征在于,所述当前存储地址是所述密文数据在第一存储器中的存储介质中的第一地址。
- 根据权利要求5至9中任一项所述的装置,其特征在于,所述当前存储地址是所述明文数据在位于所述装置外部的第二存储器中的第二地址。
- 根据权利要6至10中任一项所述的装置,其特征在于,所述处理器还用于产生输入/输出命令,所述输入/输出命令用于指示所述当前存储地址。
- 根据权利要12所述的装置,其特征在于,所述输入/输出命令被提供至所述第一存储器控制器;所述第一接口用于从所述第一存储器控制器获取所述当前存储地址,并转发所述当前存储地址至所述控制电路;所述控制电路具体用于接收所述第一接口转发的所述当前存储地址。
- 根据权利要求1至13中任一项所述的装置,其特征在于,所述装置是片上系统SoC。
- 根据权利要求1至14中任一项所述的装置,其特征在于,所述第一接口包括高速外设部件互连PCIe接口。
- 一种安全的数据转移系统,其特征在于,包括如权利要求1至13中任一项所述的装置,以及所述第一存储器;所述第一存储器包括:第二接口,与所述第一接口耦合,用于在对所述第一存储器写操作时从所述第一接口接收所述密文数据或在对所述第一存储器读操作时向所述第一接口发送所述密文数据;存储介质,用于存储所述密文数据;以及所述第一存储器控制器,用于执行至少如下至少一项:从所述第二接口接收所述密文数据并向所述存储介质写入所述密文数据、或从所述存储介质中读取所述密文数据并向所述第二接口发送所述密文数据。
- 根据权利要求16所述系统,其特征在于,还包括:第二存储器,用于存储所述明文数据。
- 一种安全的数据转移方法,其特征在于,包括:运行驱动软件以生成加解密信息;在加解密设备中,根据所述加解密信息获取当前加解密参数,使用所述当前加解密参数做加解密操作,所述加解密操作包括如下至少一项:对明文数据做加密以得到密文数据、或对所述密文数据做解密以得到所述明文数据;利用第一接口,与外部的第一存储器中的第一存储器控制器做密文数据交互,所述密文数据交互包括如下至少一项:在对所述第一存储器写操作时将来自所述加解密设备的所述密文数据发送至所述第一存储器控制器、或在对所述第一存储器读操作时将来自所述第一存储器控制器的所述密文数据发送至所述加解密设备。
- 根据权利要求18所述方法,其特征在于,所述当前加解密参数包括当前密钥或当前加解密向量中的至少一个。
- 根据权利要求18或19所述方法,其特征在于,还包括:与外部的第二存储器做明文数据交互,所述明文数据交互包括:在需要写入所述第一存储器时从所述第二存储器获取所述明文数据、或在需要读取所述第一存储器时将所述明文数据提供给所述第二存储器。
- 根据权利要求18至20中任一项所述的方法,其特征在于,所述第一接口包括高速外设部件互连PCIe接口。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/100649 WO2020034118A1 (zh) | 2018-08-15 | 2018-08-15 | 一种安全的数据转移装置、系统和方法 |
CN201880080472.9A CN111492353B (zh) | 2018-08-15 | 2018-08-15 | 一种安全的数据转移装置、系统和方法 |
EP18930454.6A EP3809271B1 (en) | 2018-08-15 | 2018-08-15 | Secure data transfer apparatus, system and method |
US17/158,591 US11888827B2 (en) | 2018-08-15 | 2021-01-26 | Secure data transfer apparatus, system, and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/100649 WO2020034118A1 (zh) | 2018-08-15 | 2018-08-15 | 一种安全的数据转移装置、系统和方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/158,591 Continuation US11888827B2 (en) | 2018-08-15 | 2021-01-26 | Secure data transfer apparatus, system, and method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020034118A1 true WO2020034118A1 (zh) | 2020-02-20 |
Family
ID=69524957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/100649 WO2020034118A1 (zh) | 2018-08-15 | 2018-08-15 | 一种安全的数据转移装置、系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11888827B2 (zh) |
EP (1) | EP3809271B1 (zh) |
CN (1) | CN111492353B (zh) |
WO (1) | WO2020034118A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114221818A (zh) * | 2021-12-21 | 2022-03-22 | 深圳铸泰科技有限公司 | 基于交换树上报五元组的方法、系统、终端及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018127330A1 (de) * | 2018-11-01 | 2020-05-07 | Infineon Technologies Ag | System-on-Chip und Verfahren zum Betreiben eines System-on-Chip |
EP3663957A1 (en) * | 2018-12-03 | 2020-06-10 | Nagravision S.A. | Remote enforcement of device memory |
CN112148739B (zh) * | 2020-09-25 | 2023-12-29 | 世融能量科技有限公司 | 独立于加密数据库的密文索引方法及系统 |
CN113688407A (zh) * | 2021-07-30 | 2021-11-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据管理方法及相关装置 |
CN113420267B (zh) * | 2021-08-24 | 2021-11-09 | 北京芯愿景软件技术股份有限公司 | 存储装置和数据读取方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102582536A (zh) * | 2010-12-17 | 2012-07-18 | Nxp股份有限公司 | 角度传感器与电子控制单元的配对 |
CN103020549A (zh) * | 2012-11-26 | 2013-04-03 | 北京华大信安科技有限公司 | 存储器的保护装置以及存储装置 |
CN103383668A (zh) * | 2012-05-04 | 2013-11-06 | 三星电子株式会社 | 片上系统、操作片上系统的方法和包括片上系统的设备 |
CN106341226A (zh) * | 2016-10-11 | 2017-01-18 | 山东渔翁信息技术股份有限公司 | 一种数据加解密方法及系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5552541B2 (ja) * | 2009-12-04 | 2014-07-16 | クリプトグラフィ リサーチ, インコーポレイテッド | 検証可能な耐漏洩性暗号化および復号化 |
US8543838B1 (en) * | 2009-12-23 | 2013-09-24 | Marvell International Ltd. | Cryptographic module with secure processor |
CN101788958A (zh) * | 2010-02-04 | 2010-07-28 | 杭州晟元芯片技术有限公司 | 一种存储器数据保护的方法 |
US8689279B2 (en) | 2011-08-30 | 2014-04-01 | Microsoft Corporation | Encrypted chunk-based rapid data encryption policy compliance |
CN103258172A (zh) * | 2012-06-13 | 2013-08-21 | 福建睿矽微电子科技有限公司 | 一种芯片片外Nor Flash总线接口硬件加密装置 |
KR20140073384A (ko) * | 2012-12-06 | 2014-06-16 | 삼성전자주식회사 | 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법 |
US9256551B2 (en) * | 2013-08-09 | 2016-02-09 | Apple Inc. | Embedded encryption/secure memory management unit for peripheral interface controller |
US10192062B2 (en) * | 2014-06-20 | 2019-01-29 | Cypress Semiconductor Corporation | Encryption for XIP and MMIO external memories |
US9697140B2 (en) * | 2014-09-23 | 2017-07-04 | Intel Corporation | Encryption integrity check with CRC encryption in memory using a word count- and address-derived nonce |
US9614666B2 (en) * | 2014-12-23 | 2017-04-04 | Intel Corporation | Encryption interface |
US9553721B2 (en) * | 2015-01-30 | 2017-01-24 | Qualcomm Incorporated | Secure execution environment communication |
US10181946B2 (en) * | 2015-07-20 | 2019-01-15 | Intel Corporation | Cryptographic protection of I/O data for DMA capable I/O controllers |
US9990249B2 (en) * | 2015-12-24 | 2018-06-05 | Intel Corporation | Memory integrity with error detection and correction |
US10261919B2 (en) * | 2016-07-08 | 2019-04-16 | Hewlett Packard Enterprise Development Lp | Selective memory encryption |
US10771235B2 (en) * | 2016-09-01 | 2020-09-08 | Cryptography Research Inc. | Protecting block cipher computation operations from external monitoring attacks |
US11418334B2 (en) * | 2017-10-18 | 2022-08-16 | Cryptography Research, Inc. | Protecting modular inversion operation from external monitoring attacks |
US11017128B2 (en) * | 2018-05-22 | 2021-05-25 | Seagate Technology Llc | Data security using bit transposition during memory accesses |
US11700111B2 (en) * | 2019-06-26 | 2023-07-11 | Cryptography Research, Inc. | Platform neutral data encryption standard (DES) cryptographic operation |
-
2018
- 2018-08-15 CN CN201880080472.9A patent/CN111492353B/zh active Active
- 2018-08-15 EP EP18930454.6A patent/EP3809271B1/en active Active
- 2018-08-15 WO PCT/CN2018/100649 patent/WO2020034118A1/zh unknown
-
2021
- 2021-01-26 US US17/158,591 patent/US11888827B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102582536A (zh) * | 2010-12-17 | 2012-07-18 | Nxp股份有限公司 | 角度传感器与电子控制单元的配对 |
CN103383668A (zh) * | 2012-05-04 | 2013-11-06 | 三星电子株式会社 | 片上系统、操作片上系统的方法和包括片上系统的设备 |
CN103020549A (zh) * | 2012-11-26 | 2013-04-03 | 北京华大信安科技有限公司 | 存储器的保护装置以及存储装置 |
CN106341226A (zh) * | 2016-10-11 | 2017-01-18 | 山东渔翁信息技术股份有限公司 | 一种数据加解密方法及系统 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3809271A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114221818A (zh) * | 2021-12-21 | 2022-03-22 | 深圳铸泰科技有限公司 | 基于交换树上报五元组的方法、系统、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11888827B2 (en) | 2024-01-30 |
CN111492353B (zh) | 2023-07-18 |
CN111492353A (zh) | 2020-08-04 |
US20210152531A1 (en) | 2021-05-20 |
EP3809271A4 (en) | 2021-07-07 |
EP3809271A1 (en) | 2021-04-21 |
EP3809271B1 (en) | 2022-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020034118A1 (zh) | 一种安全的数据转移装置、系统和方法 | |
TWI545436B (zh) | 用於安全記憶體管理之積體電路及方法 | |
KR20150143708A (ko) | 스토리지 디바이스 보조 인라인 암호화 및 암호해독 | |
KR102157668B1 (ko) | 호스트와 통신하는 메모리 컨트롤러, 그것의 동작 방법 및 그것을 포함하는 컴퓨팅 시스템 | |
WO2019129167A1 (zh) | 一种处理数据报文的方法和网卡 | |
US10135928B2 (en) | Network interface device having general-purpose computing capability | |
US20060056620A1 (en) | Processes, circuits, devices, and systems for encryption and decryption and other purposes, and processes of making | |
US20180359117A1 (en) | Virtual channel instantiation over vgi/vgmi | |
US20040208314A1 (en) | Method and system for controlling an encryption/decryption engine using descriptors | |
US20230032740A1 (en) | Securing data direct i/o for a secure accelerator interface | |
US20190044699A1 (en) | Reconfigurable galois field sbox unit for camellia, aes, and sm4 hardware accelerator | |
JP2017091543A (ja) | マルチプロセッサによって共有されるメモリを含むマルチプロセッサシステム、及び該システムの動作方法 | |
WO2014086219A1 (zh) | 一种基于外设部件互联总线的内容查找芯片及系统 | |
WO2023016030A1 (zh) | 神经网络参数部署方法、ai集成芯片及其相关装置 | |
US10374608B1 (en) | Bridged integrated circuits | |
WO2020093290A1 (zh) | 一种存储控制器、文件处理方法、装置及系统 | |
WO2020118583A1 (zh) | 数据处理方法、电路、终端设备及存储介质 | |
US20230305737A1 (en) | External Nonvolatile Memory with Additional Functionality | |
US10326587B2 (en) | Ultra-lightweight cryptography accelerator system | |
US20220416997A1 (en) | Handling unaligned transactions for inline encryption | |
US11283451B1 (en) | Bridged integrated circuits | |
WO2018205512A1 (zh) | 信息加解密方法、机顶盒、系统及存储介质 | |
WO2023185230A1 (zh) | 数据处理方法和装置 | |
US20240160581A1 (en) | Cache optimization mechanism | |
US20230388791A1 (en) | Power saving method for lower power devices, electronic device and computer readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18930454 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2018930454 Country of ref document: EP Effective date: 20210112 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |