ARM系统启动过程中的加密方法转让专利

申请号 : CN200910239063.1

文献号 : CN101739530B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘立新胡俊睿

申请人 : 深圳奥士达电子有限公司深圳市励康科技有限公司

摘要 :

一种ARM系统启动过程中的加密方法,其包括以下步骤:ARM系统上电复位;启动引导加载模块;加载只读存储模块的驱动程序;加载随机存储模块的驱动程序;运行ARM系统;判断ARM系统硬件是否合法,若合法则加载外设驱动程序,结束引导加载模块,移交管理权给操作系统并运行操作系统;若不合法则结束引导加载模块以结束整个启动过程。本发明加密认证是在启动操作系统前直接通过加密认证模块与引导加载模块进行数据通信并采用一定的加密算法来完成,因而加密认证模块不再与操作系统编译链接为一个整体,从而在升级操作系统时,只需编译操作系统,因而可提高操作系统的升级效率且方便用户自行升级操作系统。

权利要求 :

1.一种ARM系统启动过程中的加密方法,其特征在于:包括以下步骤:ARM系统上电复位;

启动引导加载模块;

加载只读存储模块的驱动程序;

加载随机存储模块的驱动程序;

运行ARM系统;

判断ARM系统硬件是否合法,若合法则加载外设驱动程序,结束引导加载模块,移交管理权给操作系统并运行操作系统;若不合法则结束引导加载模块以结束整个启动过程;该判断ARM系统硬件是否合法的步骤包括:该引导加载模块发送复位指令至加密认证模块;

该加密认证模块接收该复位指令并发送回复指令至该引导加载模块;

该引导加载模块接收该加密认证模块的回复指令,并发送验证区数据至该加密认证模块;

该加密认证模块接收验证区数据并产生随机加密数据;

该加密认证模块判断验证区数据和随机加密数据是否匹配并将判断结果发送给该引导加载模块;以及该引导加载模块接收该加密认证模块的判断结果以确定ARM系统硬件是否合法。

2.如权利要求1所述的ARM系统启动过程中的加密方法,其特征在于:该判断ARM系统硬件是否合法的步骤中:若该加密认证模块判断验证区数据和随机加密数据匹配,则判断结果为合法;否则,判断结果为不合法。

3.如权利要求1所述的ARM系统启动过程中的加密方法,其特征在于:该引导加载模块与该加密认证模块之间的数据通信采用两线式串行总线实现。

4.如权利要求1所述的ARM系统启动过程中的加密方法,其特征在于:该加密认证模块为加密芯片。

5.如权利要求1所述的ARM系统启动过程中的加密方法,其特征在于:该加密认证模块产生随机加密数据所采用的加密算法为数据加密标准、三重数据加密标准或高级加密标准。

6.如权利要求1所述的ARM系统启动过程中的加密方法,其特征在于:该只读存储模块为闪存、可编程只读存储模块、可擦写可编程只读存储模块或电可擦可编程只读存储模块。

7.如权利要求1所述的ARM系统启动过程中的加密方法,其特征在于:该随机存储模块为高频动态随机存取存储器、同步动态随机存取存储器、二倍速率同步动态随机存取存储器或第二代同步双倍速率动态随机存取存储器。

8.如权利要求1所述的ARM系统启动过程中的加密方法,其特征在于:该外设驱动程序为照相驱动、激光驱动、无线宽带驱动、通用分组无线服务技术驱动、全球定位系统驱动及电源管理驱动中至少之一。

9.如权利要求1所述的ARM系统启动过程中的加密方法,其特征在于:该操作系统为WINDOWS CE操作系统或LINUX操作系统。

说明书 :

ARM系统启动过程中的加密方法

技术领域

[0001] 本发明涉及嵌入式系统的加密方法,尤其涉及一种ARM系统启动过程中的加密方法。

背景技术

[0002] 嵌入式系统采用加密技术以在启动系统的过程中对系统硬件进行合法验证,从而达到防盗版的目的。一般在ARM系统中,加密模块和操作系统编译链接成一个整体,然后再将其挂载到相应的硬件上运行,且在启动操作系统的过程中完成对嵌入式系统硬件的合法验证。其启动过程是先运行ARM系统的引导加载模块(Bootloader)以初始化最基本的硬件,然后将引导程序本身拷贝到随机存储模块(RAM)中运行,接着将内核拷贝到随机存储器中并调用内核以运行操作系统,最后在操作系统中加载对系统外设的驱动软件。然而,采用此种加密方法的嵌入式系统,每一次操作系统升级都需要与加密模块一起进行编译,增加了整个系统的工作量。此外,由于加密模块和操作系统编译链接成一个整体,用户无法自行升级操作系统。

发明内容

[0003] 本发明主要解决的技术问题是,针对现有技术存在的上述不足,提供一种ARM系统启动过程中的加密方法,采用该加密方法的ARM系统可提高操作系统的升级效率且用户可自行升级操作系统。
[0004] 本发明提供一种ARM系统启动过程中的加密方法,该方法包括以下步骤: [0005] ARM系统上电复位;
[0006] 启动引导加载模块;
[0007] 加载只读存储模块的驱动程序;
[0008] 加载随机存储模块的驱动程序;
[0009] 运行ARM系统;
[0010] 判断ARM系统硬件是否合法,若合法则加载外设驱动程序,结束引导加载模块,移交管理权给操作系统并运行操作系统;若不合法则结束引导加载模块以结束整个启动过程。
[0011] 该判断ARM系统硬件是否合法的方法包括以下步骤:
[0012] 该引导加载模块发送复位指令至加密认证模块;
[0013] 该加密认证模块接收该复位指令并发送回复指令至该引导加载模块; [0014] 该引导加载模块接收该加密认证模块的回复指令,并发送验证区数据至该加密认证模块;
[0015] 该加密认证模块接收该验证区数据并产生随机加密数据;
[0016] 该加密认证模块判断验证区数据和随机加密数据是否匹配并将判断结果发送给该引导加载模块;
[0017] 该引导加载模块接收该加密认证模块的判断结果以确定ARM系统硬件是否合法。 [0018] 该引导加载模块与该加密认证模块之间的数据通信采用两线式串行总线实现。 [0019] 该加密认证模块为加密芯片。
[0020] 该加密认证模块产生随机加密数据所采用的加密算法为数据加密标准、三重数据加密标准或高级加密标准。
[0021] 该只读存储模块为闪存、可编程只读存储模块、可擦写可编程只读存储模块或电可擦可编程只读存储模块。
[0022] 该随机存储模块为高频动态随机存取存储器、同步动态随机存取存储器、二倍速率同步动态随机存取存储器或第二代同步双倍速率动态随机存取存储器。 [0023] 该外设驱动程序为照相驱动、激光驱动、无线宽带驱动、通用分组无线服务技术驱动、全球定位系统驱动及电源管理驱动中至少之一。
[0024] 该操作系统为WINDOWS CE操作系统、LINUX操作系统等。
[0025] 本发明ARM系统启动过程中的加密方法,加密认证是在启动操作系统前直接通过加密认证模块与引导加载模块进行数据通信并采用一定的加密算法来完成的,因而加密认证模块不再与操作系统编译链接为一个整体,从而在升级操作系统时,只需编译操作系统,因而可提高操作系统的升级效率且方便用户自行升级操作系统。

附图说明

[0026] 图1为本发明ARM系统启动过程中的加密方法较佳实施例的方块流程图; [0027] 图2为图1所示判断ARM系统硬件是否合法的方块流程图;
[0028] 图3为应用图1所示加密方法的ARM系统较佳实施例的结构示意图; [0029] 图4为图3所示ARM系统加密认证原理图。

具体实施方式

[0030] 下面结合附图及实施例对本发明ARM系统启动过程中的加密方法加以进一步说明。
[0031] 请参阅图1,其为本发明ARM系统启动过程中的加密方法较佳实施例的方块流程图。该方法包括以下步骤:步骤S1:ARM系统上电复位;步骤S2:启动引导加载模块;步骤S3:加载只读存储模块(Read-Only Memory,简称ROM)的驱动程序;步骤S4:加载随机存储模块(Random Access Memory,简称RAM)的驱动程序;步骤S5:运行ARM系统;步骤S6:判断ARM系统硬件是否合法,若判断结果为合法,则执行步骤S7:加载外设驱动程序,并随后进入步骤S8:结束引导加载模块,步骤S9:移交管理权给操作系统,以及步骤S10:运行操作系统;若步骤S6中的判断结果为不合法,则直接执行步骤S8:结束引导加载模块,且结束整个启动过程,步骤S11。
[0032] 请参阅图2,其为ARM系统启动过程中的加密方法中判断ARM系统硬件是否合法的方块流程图。该判断过程包括以下步骤:步骤S’1:引导加载模块发送复位指令至加密认证模块;步骤S’2:加密认证模块接收引导加载模块发送的复位指令并发送回复指令至引导加载模块;步骤S’3:引导加载模块接收加密认证模块的回复指令,并发送验证区数据至加密认证模块;步骤S’4:加密认证模块接收验证区数据并产生随机加密数据;步骤S’5:加密认证模块判断验证区数据和随机加密数据是否匹配并将判断结果发送给该引导加载模块;步骤S’6:引导加载模块接收该加密认证模块的判断结果以确定ARM系统硬件是否合法。
[0033] 接下来以完整的ARM系统来说明该ARM系统启动过程中的加密方法。请参阅图3,其为应用本发明加密方法的ARM系统较佳实施例的结构示意图。该ARM系统10包括复位模块101、ARM处理器102、引导加载模块103、只读存储模块104、随机存储模块105及加密认证模块106。其中,复位模块101、引导加载模块103、只读存储模块104及随机存储模块105与ARM处理器102相连接以实现数据通信。复位模块101实现系统的复位。ARM处理器102为系统的工作和控制中心。引导加载模块103于操作系统内核运行之前运行,该引导加载模块103的运行可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。只读存储模块104用于存放启动代码、操作系统和用户应用程序代码。随机存储模块105为系统运行提供动态存储空间,是系统代码运行的主要区域。加密认证模块106与引导加载模块103进行数据通信以判断ARM系统硬件的合法性。
[0034] 请结合图1,ARM系统10启动时,复位模块101开始运行以实现系统的上电复位,为系统准备初始的硬件和软件环境(步骤S1)。然后启动引导加载模块103(步骤S2)。 [0035] 启动引导加载模块103后,ARM系统加载只读存储模块104的驱动程序,该只读存储模块104可以为闪存(Flash Memory,简称FLASH)、可编程只读存储模块(Programmable Read-Only Memory,简称PROM)、可擦写可编程只读存储模块(Erasable Programmable Read-Only Memory,简称EPROM)和电可擦可编程只读存储模块(Electrically Erasable Programmable Read-Only Memory,简称EEPROM)等(步骤S3)。接下来,加载随机存储模块105的驱动程序以 将压缩的内存映像文件从只读存储模块104复制解压到随机存储模块105,该随机存储模块105可为高频动态随机存取存储器(Rambus DRAM,简称RDRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、二倍速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDR SDRAM)、第二代同步双倍速率动态随机存取存储器(Double Data Rate Synchronous DRAM,简称DDRII)等(步骤S4)。然后再运行ARM系统(步骤S5)。
[0036] 再接下来,请参阅图4,其为ARM系统加密认证原理图,并请结合图1至图3,引导加载模块103与加密认证模块106进行数据通信以判断ARM系统硬件是否合法(步骤S6)。即引导加载模块103发送复位指令至加密认证模块106(步骤S’1);加密认证模块106接收该复位指令并回复指令至引导加载模块103(步骤S’2);引导加载模块103再接收该加密认证模块106的回复指令,并随机发送验证区数据至加密认证模块106(步骤S’3);加密认证模块106接收该验证区数据并产生随机加密数据,该加密数据是由加密认证模块106以加密算法计算得到(步骤S’4);然后加密认证模块106内部比较验证区数据和加密数据是否匹配,若匹配,则判断结果为合法,否则判断结果为不合法,并将判断结果发送给引导加载模块103(步骤S’5);引导加载模块103接收该判断结果以确定ARM系统硬件是否合法(步骤S’6)。其中加密认证模块106和引导加载模块103之间的数据通信采用串行总
2
线,例如两线式串行总线(Inter-IntegratedCircuit,简称IC)实现,加密算法则可为数据加密标准(Data Encryption Standard,简称DES)、三重数据加密标准(Triple DES,简称
3DES)、高级加密标准(Advanced Encryption Standard,简称AES)等。此外,该加密认证模块106可为加密芯片。
[0037] 于步骤S6中,若判断结果合法则加载外设驱动程序(步骤S7),如照相驱动、激光驱动、无线宽带(Wireless Fidelity,简称WIFI)驱动、通用分组无线服务(General Packet Radio Service,简称GPRS)驱动、全球定位系统(GlobalPositioning System,简称GPS)驱动及电源管理驱动等,并结束引导加载模块(步骤S8)。然后再移交管理权给操作系统(步骤S9)。最后运行操作系统(步骤S10)。若于步骤S6中,判断结果为不合法则直接结束引导加载模块(步骤S8) 并结束整个启动过程(步骤S11)。
[0038] 上述ARM系统启动过程中的加密方法中,加密认证是在启动操作系统前直接通过加密认证模块106与引导加载模块103进行数据通信并采用一定的加密算法来完成,且加密认证模块106不再与操作系统编译链接为一个整体,从而在升级操作系统时,只需编译操作系统,因而可提高操作系统的升级效率且方便用户自行升级操作系统。 [0039] 可以理解,所述操作系统可为Windows CE操作系统、Linux操作系统等。 [0040] 以上所述仅为本发明的较佳实施例,并非用以限定本发明的实施范围,因此凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在本发明的保护范围内。