CN111931190A - 一种基于xip处理器系统的启动方法 - Google Patents

一种基于xip处理器系统的启动方法 Download PDF

Info

Publication number
CN111931190A
CN111931190A CN202010863722.5A CN202010863722A CN111931190A CN 111931190 A CN111931190 A CN 111931190A CN 202010863722 A CN202010863722 A CN 202010863722A CN 111931190 A CN111931190 A CN 111931190A
Authority
CN
China
Prior art keywords
encryption
storage device
program
access request
external storage
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.)
Granted
Application number
CN202010863722.5A
Other languages
English (en)
Other versions
CN111931190B (zh
Inventor
杨亮
吴睿振
刘文涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202010863722.5A priority Critical patent/CN111931190B/zh
Publication of CN111931190A publication Critical patent/CN111931190A/zh
Application granted granted Critical
Publication of CN111931190B publication Critical patent/CN111931190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种基于XIP处理器系统的启动方法及数据加解密模块,该方法应用于位于CPU与连接外部存储设备的系统总线之间的加解密模块,包括:当系统上电后,读取预设存储器中包括加解密密钥的配置信息;接收访问请求并判断是否针对外部存储设备;如果是,则根据请求的数据地址读取外部存储设备中的密文程序段;根据加解密密钥对密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行内部存储设备中的解密后程序完成XIP处理器系统的启动。本申请将原始程序加密后保存至外部存储设备,避免了程序外泄和篡改风险,CPU可直接执行内部存储设备中的解密后程序,解决了在外部存储设备上直接执行程序效率低下的问题。

Description

一种基于XIP处理器系统的启动方法
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种基于XIP处理器系统的启动方法及一种数据加解密模块。
背景技术
在车载芯片、IOT芯片这类嵌入式系统领域中,由于应用场景单一简单,并考虑到控制成本的原因,XIP方式的处理器系统有着广泛应用。基于XIP方式的处理器系统可以直接在外部存储设备NOR Flash/Nand Flash中执行程序,而不需要将程序拷贝到内部存储设备中。
然而,将程序放置在外部存储设备中直接执行,就意味着程序需要以原始数据存放在外部存储设备中,这样黑客就可以通过反编译外部存储设备上的程序,分析程序流程、了解芯片架构,同样也可以通过篡改外部存储设备上的程序达到控制芯片执行流程的目的。另外,由于程序是存放在外部存储设备上的,其执行效率也比较低下。
因此,如何解决上述问题是本领域技术人员需要重点关注的。
发明内容
本申请的目的在于提供一种基于XIP处理器系统的启动方法及一种数据加解密模块,解决了程序外泄风险问题和在外部存储设备上直接执行程序效率低下的问题。
为实现上述目的,本申请提供了一种基于XIP处理器系统的启动方法,应用于加解密模块,所述加解密模块位于CPU与连接外部存储设备的系统总线之间,所述方法包括:
当系统上电后,读取预设存储器中的配置信息,完成模块初始化,所述配置信息中包括加解密密钥;
接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求;其中,所述外部存储设备中预先保存有加密后的密文程序;
若所述访问请求为针对所述外部存储设备的访问请求,则根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段;
根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行所述内部存储设备中的所述解密后程序完成XIP处理器系统的启动。
可选的,在所述接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求之后,还包括:
若所述访问请求为针对除所述外部存储设备之外的其他外设的访问请求,则启动DMA模式,将所述访问请求转发至所述系统总线上,以便直接访问所述其他外设。
可选的,还包括:
预先利用随机数发生器生成符合加密标准的加解密密钥,写入所述预设存储器中;其中,所述预设存储器为一次性可编程存储器;
若监测到所述预设存储器中的密钥索引发生更新,则根据最新的所述密钥索引获取更新后的目标加解密密钥,以便后续利用所述目标加解密密钥对所述密文程序段进行解密。
可选的,所述密文程序的生成过程包括:
将原始明文程序划分为代码部分和数据部分,根据内存大小将所述代码部分切分为各个程序段;
根据所述加解密密钥分别对所述各个程序段进行加密,打包生成密文代码部分;
根据所述加解密密钥对所述数据部分进行加密,将密文数据部分和所述密文代码部分一同打包生成所述密文程序。
可选的,所述将解密后程序段写入内部存储设备中,包括:
将所述解密后程序段写入所述内部存储设备中,在写入完成后触发地址重映射操作;
将所述解密后程序段中包括的程序地址映射为所述内部存储设备的地址,并在映射后重新加载异常处理向量表。
可选的,在所述根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中之后,还包括:
在CPU执行所述内部存储设备中的所述解密后程序时,若监测到发生CPU取指异常,则触发所述根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段的步骤,以重新获取所需的所述密文程序段。
为实现上述目的,本申请提供了一种数据加解密模块,所述加解密模块位于CPU与连接外部存储设备的系统总线之间,包括:
初始化单元,用于当系统上电后,读取预设存储器中的配置信息,完成模块初始化,所述配置信息中包括加解密密钥;
访问接收单元,用于接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求;其中,所述外部存储设备中预先保存有加密后的密文程序;
密文读取单元,用于若所述访问请求为针对所述外部存储设备的访问请求,则根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段;
程序解密单元,用于根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行所述内部存储设备中的所述解密后程序完成XIP处理器系统的启动。
可选的,还包括:
请求转发单元,用于若所述访问请求为针对除所述外部存储设备之外的其他外设的访问请求,则启动DMA模式,将所述访问请求转发至所述系统总线上,以便直接访问所述其他外设。
可选的,还包括:
密钥写入单元,用于预先利用随机数发生器生成符合加密标准的加解密密钥,写入所述预设存储器中;其中,所述预设存储器为一次性可编程存储器;
密钥更新单元,用于若监测到所述预设存储器中的密钥索引发生更新,则根据最新的所述密钥索引获取更新后的目标加解密密钥,以便后续利用所述目标加解密密钥对所述密文程序段进行解密。
可选的,所述程序解密单元,包括:
程序写入子单元,用于将所述解密后程序段写入所述内部存储设备中,在写入完成后触发地址重映射操作;
地址重映射子单元,用于将所述解密后程序段中包括的程序地址映射为所述内部存储设备的地址,并在映射后重新加载异常处理向量表。
通过以上方案可知,本申请提供的一种基于XIP处理器系统的启动方法,应用于加解密模块,所述加解密模块位于CPU与连接外部存储设备的系统总线之间,所述方法包括:当系统上电后,读取预设存储器中的配置信息,完成模块初始化,所述配置信息中包括加解密密钥;接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求;其中,所述外部存储设备中预先保存有加密后的密文程序;若所述访问请求为针对所述外部存储设备的访问请求,则根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段;根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行所述内部存储设备中的所述解密后程序完成XIP处理器系统的启动。由上可知,本申请将原始程序加密后保存至外部存储设备,避免了程序可能存在的外泄或者被篡改的风险,在CPU访问外部存储设备内的密文程序时,可对其进行解密并写入内部存储设备中,后续CPU即可直接执行内部存储设备中的解密后程序,解决了在外部存储设备上直接执行程序效率低下的问题。
本申请还公开了一种数据加解密模块,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种基于XIP处理器系统的启动方法的流程图;
图2、图3为本申请实施例公开的一种基于XIP处理器系统的启动方法中的密文程序的生成过程的流程图;
图4为本申请实施例公开的一种生成后的密文程序的示意图;
图5为本申请实施例公开的一种具体的用于实现基于XIP处理器系统的启动方法的硬件架构示意图;
图6为本申请实施例公开的一种具体的XIP处理器系统的启动流程示意图;
图7为本申请实施例公开的一种数据加解密模块的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,基于XIP方式的处理器系统可以直接在外部存储设备NOR Flash/Nand Flash中执行程序,然而,将程序放置在外部存储设备中直接执行,黑客就可以通过反编译外部存储设备上的程序,分析程序流程、了解芯片架构,同样也可以通过篡改外部存储设备上的程序达到控制芯片执行流程的目的。另外,由于程序是存放在外部存储设备上的,其执行效率也比较低下。
因此,本申请实施例公开了一种基于XIP处理器系统的启动方法,解决了程序外泄风险问题和在外部存储设备上直接执行程序效率低下的问题。
参见图1所示,本申请实施例公开了一种基于XIP处理器系统的启动方法,该方法应用于加解密模块,所述加解密模块位于CPU与连接外部存储设备的系统总线之间,所述方法包括:
S101:当系统上电后,读取预设存储器中的配置信息,完成模块初始化,所述配置信息中包括加解密密钥;
本申请实施例中,将CPU通过加解密模块连接到系统总线上,也即,CPU需要通过加解密模块将数据访问请求发送到系统总线上以访问外部存储设备。具体地,上述加解密模块可以为Crypto加解密模块,该模块可以实现AES、HASH等算法。
在具体实施中,当系统上电后,加解密模块即可读取存储器中的配置信息,完成模块的初始化。其中,上述配置信息中主要包括加解密密钥,即加解密模块后续通过该密钥进行对密文程序进行解密。预设存储器可以具体为一次性可编程存储器。
需要说明的是,考虑到如何保证加解密密钥不外泄,本申请实施例预先利用随机数发生器生成符合加密标准的加解密密钥,写入预设存储器中,CPU无法直接访问到预设存储器中存储加解密密钥的区域,而是加解密模块在上电时主动获取存储在预设存储器中的加解密密钥,从物理上保证加解密密钥不可能通过软件获取到。加解密模块获取加解密密钥时,可先获取存储在预设存储器中的密钥索引,再根据索引到存储加解密密钥的区域中读取对应的加解密密钥。
在一种具体的实施方式中,若监测到预设存储器中的密钥索引发生更新,则根据最新的密钥索引获取更新后的目标加解密密钥,以便后续利用目标加解密密钥对所述密文程序段进行解密。也即,若出现加解密密钥丢失的情况后,可通过烧写预设存储器中的密钥索引废弃之前使用的加解密密钥,因此加解密密钥只能递增使用。
S102:接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求;其中,所述外部存储设备中预先保存有加密后的密文程序;
当CPU向加解密模块发送访问请求之后,加解密模块中预设有比较逻辑,即根据访问请求所针对的访问地址判断访问请求是否为针对存储加解密密钥的外部存储设备的访问请求。
可以理解的是,若判断访问请求是否为针对外部存储设备的访问请求之后,判断得到访问请求为针对除外部存储设备之外的其他外设的访问请求,则可启动DMA模式,将当前的访问请求转发至系统总线上,以便CPU直接访问其他外设。
S103:若所述访问请求为针对所述外部存储设备的访问请求,则根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段;
本步骤中,若访问请求为针对外部存储设备的访问请求,则可加解密模块即可根据访问请求中指定的数据地址从外部存储设备中相应位置读取对应的密文程序段。
S104:根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行所述内部存储设备中的所述解密后程序完成XIP处理器系统的启动。
可以理解的是,当加解密模块读取到所需的密文程序段之后,可根据加解密密钥对其进行解密,并将解密后的程序写入内部存储设备中,后续CPU即可直接通过执行内部存储设备中的解密后程序完成XIP处理器系统的启动。
本申请实施例中,考虑到内部存储设备的大小通常小于外部存储设备的大小,在将解密后程序段写入内部存储设备完成后可触发地址重映射操作,将解密后程序段中包括的程序地址映射为内部存储设备的地址,并在映射后重新加载异常处理向量表。在后续CPU执行内部存储设备中的解密后程序时,若监测到发生CPU取指异常,则触发根据访问请求的数据地址读取外部存储设备中的密文程序段的步骤,以重新获取所需的密文程序段。
通过以上方案可知,本申请提供的一种基于XIP处理器系统的启动方法,应用于加解密模块,所述加解密模块位于CPU与连接外部存储设备的系统总线之间,所述方法包括:当系统上电后,读取预设存储器中的配置信息,完成模块初始化,所述配置信息中包括加解密密钥;接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求;其中,所述外部存储设备中预先保存有加密后的密文程序;若所述访问请求为针对所述外部存储设备的访问请求,则根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段;根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行所述内部存储设备中的所述解密后程序完成XIP处理器系统的启动。由上可知,本申请将原始程序加密后保存至外部存储设备,避免了程序可能存在的外泄或者被篡改的风险,在CPU访问外部存储设备内的密文程序时,可对其进行解密并写入内部存储设备中,后续CPU即可直接执行内部存储设备中的解密后程序,解决了在外部存储设备上直接执行程序效率低下的问题。
下面对本申请实施例提供的基于XIP处理器系统的启动方法中密文程序的生成过程进行介绍。具体地,参见图2所示,该过程包括:
S201:将原始明文程序划分为代码部分和数据部分,根据内存大小将所述代码部分切分为各个程序段;
本申请实施例中,首先可将原始的明文程序划分为代码部分和数据部分,代码部分指具体的程序代码,数据部分指代码运行所需用到的数据。在划分后,将代码部分按照内存大小切分为多个程序段。
S202:根据所述加解密密钥分别对所述各个程序段进行加密,打包生成密文代码部分;
在切分后,可根据加解密密钥分别对各个程序段进行加密,打包生成密文代码部分。通过对代码部分进行切分加密,后续CPU获取代码时可获取部分代码,即代码段,可以避免获取大量的代码导致的效率低下问题。
S203:根据所述加解密密钥对所述数据部分进行加密,将密文数据部分和所述密文代码部分一同打包生成所述密文程序。
进一步地,可根据加解密密钥对数据部分的整体进行加密,结合密文数据部分和密文代码部分打包生成密文程序,并写入外部存储设备中。
图3为一种具体的流程图,如图3所示,首先编写Scatter文件,区分代码段P1以及数据段P2,并编译程序生成二进制文件。进而Scatter文件解析Image二进制文件,找出代码段、数据段的起始位置和大小。使用切分工具根据内存大小切分P1,得到P11、P12、P13、…P1i;使用密钥加密P1i,并使用打包工具打包加密后的P1i,生成P1N;使用加密工具加密P2,生成P2N;使用打包工具打包P1N、P2N,生成最终的密文程序并烧写到外部存储设备上。生成后的密文程序示意图可参见图4所示。
下面对本申请实施例提供的一种具体的用于实现基于XIP处理器系统的启动方法的硬件架构进行介绍。如图5所示,该系统包括:CPU,用于运行外部存储设备的程序;Crypto加解密模块,由硬件初始化,可根据CPU访问信息将外部存储设备上的程序解密到内部存储设备,Crypto内部包含一个比较逻辑,当CPU发送过来的地址落在外部存储设备区域时,启动加解密模式,此时读操作需要经过解密操作,当地址落在其他区域时,则启动DMA模式,此时读写操作都将直接发送到总线上,完成对外设的访问;eFuse,SoC中的一块一次性可编程存储器,用于存储Crypto模块解密需要的AES Key,此Key不能被CPU访问,并存储KeyIndex,Crypto模块在上电后获取Key Index,再获取对应的Key;TRNG,随机数发生器,用于生成符合标准的AES Key,写入到eFuse中;SPI Flash,外部存储设备,存放CPU所要执行的程序;SRAM,内部存储设备,用于Crypto模块解密程序,之后CPU将从外部存储设备跳转到内部存储设备上执行;Address Translator,用于地址重映射,当Crypto模块完成加解密时,触发Address Translator完成地址重映射。
作为一种可行的实施方式,本申请实施例将内部存储设备分为三部分:代码段S1、数据段S2、堆栈段S3;系统上电后,CPU通过Crypto模块从外部存储设备0地址处的指令开始执行,由Crypto模块将程序从外部存储设备读取到内部存储设备中,并重映射地址。
具体地,参见图6所示,基于上述提供的硬件系统,一种具体的XIP处理器系统的启动流程可以包括:在系统上电后,Crypto模块获取eFuse中的配置内容,完成硬件初始化;CPU从地址0开始执行,触发Crypto模块工作;Crypto模块获取CPU发送的访问信息,根据访问信息从外部存储设备中解密密文程序到S1中;Crypto模块解密完成后,触发AddressTranslator完成地址重映射,将内部存储设备重映射为Crypto模块源地址,并重新加载异常处理向量表。CPU从内部存储设备开始执行代码;当出现取指异常时,触发Crypto模块根据产生取指异常时的异常信息返回从外部存储设备中解密密文程序的步骤。
本申请实施例中,利用硬件读取存储在eFuse中的AES Key并解密Image的方式,可以保证Image不外泄、不被篡改;CPU从内部存储设备开始执行代码,在代码执行过程中使用了CPU取指异常模式,利用该模式达到重新载入将要执行Image的目的,由此将基于XIP的运行模式转变成了CPU常用的执行方式,提升了程序执行的效率。
下面对本申请实施例提供的一种数据加解密模块进行介绍,下文描述的一种数据加解密模块与上文描述的一种基于XIP处理器系统的启动方法可以相互参照。
参见图7所示,本申请实施例提供了一种数据加解密模块,所述加解密模块位于CPU与连接外部存储设备的系统总线之间,具体包括:
初始化单元301,用于当系统上电后,读取预设存储器中的配置信息,完成模块初始化,所述配置信息中包括加解密密钥;
访问接收单元302,用于接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求;其中,所述外部存储设备中预先保存有加密后的密文程序;
密文读取单元303,用于若所述访问请求为针对所述外部存储设备的访问请求,则根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段;
程序解密单元304,用于根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行所述内部存储设备中的所述解密后程序完成XIP处理器系统的启动。
关于上述单元301至304的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
在上述实施例的基础上,作为一种优选实施方式,上述加解密模块还可以进一步还包括:
请求转发单元,用于若所述访问请求为针对除所述外部存储设备之外的其他外设的访问请求,则启动DMA模式,将所述访问请求转发至所述系统总线上,以便直接访问所述其他外设。
在上述实施例的基础上,作为一种优选实施方式,上述加解密模块还可以进一步还包括:
密钥写入单元,用于预先利用随机数发生器生成符合加密标准的加解密密钥,写入所述预设存储器中;其中,所述预设存储器为一次性可编程存储器;
密钥更新单元,用于若监测到所述预设存储器中的密钥索引发生更新,则根据最新的所述密钥索引获取更新后的目标加解密密钥,以便后续利用所述目标加解密密钥对所述密文程序段进行解密。
在上述实施例的基础上,作为一种优选实施方式,所述程序解密单元304可以具体包括:
程序写入子单元,用于将所述解密后程序段写入所述内部存储设备中,在写入完成后触发地址重映射操作;
地址重映射子单元,用于将所述解密后程序段中包括的程序地址映射为所述内部存储设备的地址,并在映射后重新加载异常处理向量表。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种基于XIP处理器系统的启动方法,其特征在于,应用于加解密模块,所述加解密模块位于CPU与连接外部存储设备的系统总线之间,所述方法包括:
当系统上电后,读取预设存储器中的配置信息,完成模块初始化,所述配置信息中包括加解密密钥;
接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求;其中,所述外部存储设备中预先保存有加密后的密文程序;
若所述访问请求为针对所述外部存储设备的访问请求,则根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段;
根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行所述内部存储设备中的所述解密后程序完成XIP处理器系统的启动。
2.根据权利要求1所述的启动方法,其特征在于,在所述接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求之后,还包括:
若所述访问请求为针对除所述外部存储设备之外的其他外设的访问请求,则启动DMA模式,将所述访问请求转发至所述系统总线上,以便直接访问所述其他外设。
3.根据权利要求1所述的启动方法,其特征在于,还包括:
预先利用随机数发生器生成符合加密标准的加解密密钥,写入所述预设存储器中;其中,所述预设存储器为一次性可编程存储器;
若监测到所述预设存储器中的密钥索引发生更新,则根据最新的所述密钥索引获取更新后的目标加解密密钥,以便后续利用所述目标加解密密钥对所述密文程序段进行解密。
4.根据权利要求1所述的启动方法,其特征在于,所述密文程序的生成过程包括:
将原始明文程序划分为代码部分和数据部分,根据内存大小将所述代码部分切分为各个程序段;
根据所述加解密密钥分别对所述各个程序段进行加密,打包生成密文代码部分;
根据所述加解密密钥对所述数据部分进行加密,将密文数据部分和所述密文代码部分一同打包生成所述密文程序。
5.根据权利要求1至4任一项所述的启动方法,其特征在于,所述将解密后程序段写入内部存储设备中,包括:
将所述解密后程序段写入所述内部存储设备中,在写入完成后触发地址重映射操作;
将所述解密后程序段中包括的程序地址映射为所述内部存储设备的地址,并在映射后重新加载异常处理向量表。
6.根据权利要求5所述的启动方法,其特征在于,在所述根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中之后,还包括:
在CPU执行所述内部存储设备中的所述解密后程序时,若监测到发生CPU取指异常,则触发所述根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段的步骤,以重新获取所需的所述密文程序段。
7.一种数据加解密模块,其特征在于,所述加解密模块位于CPU与连接外部存储设备的系统总线之间,包括:
初始化单元,用于当系统上电后,读取预设存储器中的配置信息,完成模块初始化,所述配置信息中包括加解密密钥;
访问接收单元,用于接收CPU发送的访问请求,判断所述访问请求是否为针对所述外部存储设备的访问请求;其中,所述外部存储设备中预先保存有加密后的密文程序;
密文读取单元,用于若所述访问请求为针对所述外部存储设备的访问请求,则根据所述访问请求的数据地址读取所述外部存储设备中的密文程序段;
程序解密单元,用于根据所述加解密密钥对所述密文程序段进行解密,将解密后程序段写入内部存储设备中,以便CPU直接执行所述内部存储设备中的所述解密后程序完成XIP处理器系统的启动。
8.根据权利要求7所述的数据加解密模块,其特征在于,还包括:
请求转发单元,用于若所述访问请求为针对除所述外部存储设备之外的其他外设的访问请求,则启动DMA模式,将所述访问请求转发至所述系统总线上,以便直接访问所述其他外设。
9.根据权利要求7所述的数据加解密模块,其特征在于,还包括:
密钥写入单元,用于预先利用随机数发生器生成符合加密标准的加解密密钥,写入所述预设存储器中;其中,所述预设存储器为一次性可编程存储器;
密钥更新单元,用于若监测到所述预设存储器中的密钥索引发生更新,则根据最新的所述密钥索引获取更新后的目标加解密密钥,以便后续利用所述目标加解密密钥对所述密文程序段进行解密。
10.根据权利要求7至9任一项所述的数据加解密模块,其特征在于,所述程序解密单元,包括:
程序写入子单元,用于将所述解密后程序段写入所述内部存储设备中,在写入完成后触发地址重映射操作;
地址重映射子单元,用于将所述解密后程序段中包括的程序地址映射为所述内部存储设备的地址,并在映射后重新加载异常处理向量表。
CN202010863722.5A 2020-08-25 2020-08-25 一种基于xip处理器系统的启动方法 Active CN111931190B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010863722.5A CN111931190B (zh) 2020-08-25 2020-08-25 一种基于xip处理器系统的启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010863722.5A CN111931190B (zh) 2020-08-25 2020-08-25 一种基于xip处理器系统的启动方法

Publications (2)

Publication Number Publication Date
CN111931190A true CN111931190A (zh) 2020-11-13
CN111931190B CN111931190B (zh) 2023-03-14

Family

ID=73306110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010863722.5A Active CN111931190B (zh) 2020-08-25 2020-08-25 一种基于xip处理器系统的启动方法

Country Status (1)

Country Link
CN (1) CN111931190B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112738219A (zh) * 2020-12-28 2021-04-30 中国第一汽车股份有限公司 程序运行方法、装置、车辆及存储介质
CN114996725A (zh) * 2022-05-06 2022-09-02 北京中科昊芯科技有限公司 一种保护开发程序的方法以及处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009105644A (ja) * 2007-10-23 2009-05-14 Nec Corp 情報処理装置、プログラム、外部暗号化システム、及び、外部暗号化方法
US20150371063A1 (en) * 2014-06-20 2015-12-24 Cypress Semiconductor Corporation Encryption Method for Execute-In-Place Memories
US20180137294A1 (en) * 2014-06-20 2018-05-17 Cypress Semiconductor Corporation Encryption for xip and mmio external memories
CN109656839A (zh) * 2017-10-12 2019-04-19 意法半导体股份有限公司 用于访问经加密的数据的电子设备和对应的方法
CN110598429A (zh) * 2019-08-30 2019-12-20 百富计算机技术(深圳)有限公司 数据加密存储和读取的方法、终端设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009105644A (ja) * 2007-10-23 2009-05-14 Nec Corp 情報処理装置、プログラム、外部暗号化システム、及び、外部暗号化方法
US20150371063A1 (en) * 2014-06-20 2015-12-24 Cypress Semiconductor Corporation Encryption Method for Execute-In-Place Memories
US20180137294A1 (en) * 2014-06-20 2018-05-17 Cypress Semiconductor Corporation Encryption for xip and mmio external memories
CN109656839A (zh) * 2017-10-12 2019-04-19 意法半导体股份有限公司 用于访问经加密的数据的电子设备和对应的方法
CN110598429A (zh) * 2019-08-30 2019-12-20 百富计算机技术(深圳)有限公司 数据加密存储和读取的方法、终端设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谷双双等: "一种加密硬盘的身份鉴别和密钥保护方案", 《密码学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112738219A (zh) * 2020-12-28 2021-04-30 中国第一汽车股份有限公司 程序运行方法、装置、车辆及存储介质
CN114996725A (zh) * 2022-05-06 2022-09-02 北京中科昊芯科技有限公司 一种保护开发程序的方法以及处理器

Also Published As

Publication number Publication date
CN111931190B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
US8572410B1 (en) Virtualized protected storage
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
US7107459B2 (en) Secure CPU and memory management unit with cryptographic extensions
US8190912B2 (en) Program development method, program development supporting system, and program installation method
US20100058073A1 (en) Storage system, controller, and data protection method thereof
US7945789B2 (en) System and method for securely restoring a program context from a shared memory
CN109784007B (zh) 一种字节码加密的方法、字节码解密的方法及终端
WO2009107330A1 (ja) 情報処理装置及びその制御方法
US11775184B2 (en) Memory system, information processing apparatus, and information processing system
JP2010510574A (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
CN111931190B (zh) 一种基于xip处理器系统的启动方法
CN111201553B (zh) 一种安全元件及相关设备
US9935766B2 (en) Processor and processor system
US11533172B2 (en) Apparatus and method for securely managing keys
CN112100624A (zh) 一种固件保护方法、装置及终端设备
TWI551993B (zh) 記憶體中攻擊防阻技術
US10613993B2 (en) Method for protecting a program code, corresponding system and processor
JP2005332221A (ja) 記憶装置
US11539503B2 (en) Container management for cryptanalysis attack protection
CN114579337A (zh) 用于在用户设备中生成核心转储的方法和系统
JP2000250818A (ja) 記憶システム、記憶装置及び記憶データ保護方法
US20200076593A1 (en) Systems and methods for encryption of virtual function table pointers
CN113343265B (zh) 一种密钥配置方法、装置和相关设备
US20220398349A1 (en) System on chip including secure processor and semiconductor system including the same
US11340798B2 (en) Modification of a memory of a secure microprocessor

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