一种适用于嵌入式实时信息处理单元的加密方法

文档序号:9687864阅读:375来源:国知局
一种适用于嵌入式实时信息处理单元的加密方法
【技术领域】
[0001]本发明属于加密技术领域,具体涉及一种适用于嵌入式实时信息处理单元的加密方法,其所涉及的技术适用于硬件平台为Power PC处理、软件平台为Vxworks的嵌入式信息处理单元,其成果是一种高效的用户应用软件加密解决方法,能够兼顾加密效果和实时性。
【背景技术】
[0002]嵌入式信息处理单元以应用为出发点,进行软硬件的裁剪,以满足功能、可靠性、实时性等严格要求。通常需要对计算机软件产品添加一定的保护措施以保障用户的合法权益。密码学中很多成熟的加密算法都可以用到软件保护中,AES等均在通用计算机平台中得到了实现。对于未经简化的AES算法,常选用128位密钥,并用16字节分组加密和解密数据。未经简化的AES算法经过十轮迭代运算,算法的实时性与计算机平台的运算能力密切相关。有别于通用信息处理单元,直接将通用计算机平台下的加密方法直接搬移到嵌入式信息处理单元无法满足实时性的要求。

【发明内容】

[0003](一)要解决的技术问题
[0004]本发明要解决的技术问题是:如何提供一种高效的用户应用软件加密解决方法。
[0005](二)技术方案
[0006]为解决上述技术问题,本发明提供一种适用于嵌入式实时信息处理单元的加密方法,其基于加密系统来实施,所述加密系统包括加密主机及目标机,其中,加密主机为运行桌面操作系统的通用计算机,目标机为Power PC嵌入式信息处理单元,作为待操作的对象,其硬件电路包括:CPLD/FPGA、Power PC处理器、Boot flash、nand flash;
[0007]此外,所述加密系统还包括:精简AES加密模块和解密模块,其中精简AES加密模块运行在加密主机上,解密模块运行在目标机上;
[0008]其中,所述目标机包括:第一次逻辑校验模块、密钥管理模块、解密模块、启动模块、操作系统模块、用户应用模块;其中,密钥管理模块、解密模块和启动模块存在于Bootflash中,操作系统模块和用户应用模块以软件密文的形式存在于Nand flash中;
[0009]所述加密方法包括如下步骤:
[0010]步骤S1:在加密主机上,Vxworks IDE开发环境生成elf格式的镜像文件,此elf文件为待进行加密处理的软件明文;此软件明文读入精简AES加密模块,处理得到目标机上需要的以密文形式存在的操作系统模块和用户应用模块;
[0011]步骤S2:将步骤S1加密主机处理得到的密文加载到Nand fish中。
[0012]步骤S3:在加密主机上的在交叉编译环境下,设计目标机需要的密钥管理模块、解密模块、启动模块,并将得到的二进制文件加载到Boot flash中;
[0013]步骤S4:将第一次逻辑校验模块加载到CPLD/FPGA中。
[0014]步骤S5:目标机完成步骤S2、步骤S3和步骤S4涉及的各个模块的加载;
[0015]步骤S6:目标机执行启动模块,完成PowerPC嵌入式信息处理单元的硬件初始化;执行密钥管理模块;
[0016]步骤S7:目标机执行第一次逻辑校验模块,该模块通过结果接受芯片ID信息,进行逻辑运算和校验,校验通过则继续执行任务,校验失败,则擦除软件密文达到对侵权行为的惩罚;
[0017]步骤S8:步骤S7校验成功,回读密钥;
[0018]步骤S9:目标机执行解密模块;解密模块用于从Nandflash中读入软件密文,并在内存中开辟缓存空间,执行精简AES加密算法对应的精简解密算法,并将执行结果加载到制定的缓存空间;
[0019]步骤S10:校验步骤S9得到的解密数据是否为Vxworks加载文件,校验成功则引导Vxworks操作系统。
[0020]其中,加密主机中,精简AES加密算法的实现过程为:
[0021 ]步骤la:确定AES算法常数,其中算法轮数确认为二,并载入e If软件镜像文件;
[0022]步骤2a:密钥扩展KeyExpans1nO;
[0023]步骤3a:轮密相加AddRoundKey(O);
[0024]步骤4a:字节变换SubBytesO;
[0025]步骤5a:行变换shiftrows()。
[0026]步骤6a:列混合MixColumns()。
[0027]步骤7a:轮密相加AddRoundKey (N),N= 1,2。
[0028]步骤8a:再次运行步骤4a、步骤5a、步骤7a;并保存软件密文;
[0029]循环执行步骤la-步骤8a的操作,直至加密结束;
[0030]其中,目标机上执行的解密模块,其运算过程为所述精简AES加密算法的逆运算过程;
[0031 ]目标机上,移植解密模块的步骤为:
[0032]步骤lb:封装解密模块;
[0033]步骤2b:重新分配内存,增加软件密文解密模块的缓存区域;
[0034]步骤3b:在启动模块中Vxworks操作系统模块加载函数bootVxworks()的调用过程中,自nandReadO函数后添加本专利所描述的解密模块。
[0035]其中,为了提高加密方法的层次型,设置二次校验模式:第一次逻辑校验模块和Vxworks操作系统校验模块;
[0036]第一次逻辑校验模块由CPLD/FPGA实现;Vxworks操作系统校验模块内嵌在步骤三所涉及的目标机的解密模块中;
[0037]第一次逻辑校验模块接PowerPC芯片ID,进行逻辑运算和校验;校验过程过多的数据交互会降低算法的加密强度;因此设置第一次逻辑校验模块由CPLD/FPGA实现;
[0038]CPLD/FPGA校验芯片ID,仅仅采用线性逻辑运算;校验成功返回密钥,校验失败,则进行软件密文的擦除操作,以惩处恶意侵权行为;针对CPLD/FPGA校验的状态机,定义IDLE为初始状态,DT_REQ状态为校验请求状态,DT_S为校验成功状态,DT_F_0NE为第一次校验失败状态,DT_TW0为二次校验状态,DT_FS校验失败状态;
[0039]接收到校验ID请求后由初始状态IDLE进入校验请求状态DT_REQ,校验ID正确则进入校验成功状态DT_S;校验失败进入第一次校验失败状态DT_F_ONE。;为了提高校验的可靠性,向Power PC请求再次校验,并进入二次校验状态DT_TW0,两次校验信息一致,则进入校验失败状态DT_F;第二次校验成功则进入校验成功状态DT_S JLS校验成功状态,完成密钥的回读。DT_F*校验失败状态,发送Nand flash擦除请求,等待擦除完信号,控制系统断电。(三)有益效果
[0040]与现有技术相比较,本发明针对嵌入式信息处理单元用户对于软件产品产权保护的要求日益增长,而提供一种适用于通用计算机平台的加密方法,其直接应用于嵌入式信息处理单元,在考虑合理的实现方案和实时性的前提下,本发明提供了一种适用于硬件平台为Power PC处理、软件平台为Vxworks的嵌入式信息处理单元的加密方案,同时兼顾了加密效果和实时性。
【附图说明】
[0041 ]图1为嵌入式信息处理单元加密方法方法结构图。
[0042]图2为加密后的目标机启动过程。
[0043]图3为CPLD/FPGA校验的状态机。
【具体实施方式】
[0044]为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。
[0045]为解决现有技术的问题,本发明提供一种适用于嵌入式实时信息处理单元的加密方法,其基于加密系统来实施,所述加密系统包括加密主机及目标机,其中,加密主机为运行桌面操作系统的通用计算机,目标机为Power PC嵌入式信息处理单元,作为待操作的对象,其硬件电路包括:CPLD/FPGA、Power PC处理器、Boot flash、nand flash;
[0046]本发明的加密方案框图如图1所述;加密方法主要设计图1左侧的加密主机和图1右侧的目标机。
[0047]此外,所述加密系统还包括:精简AES加密模块和解密模块,其中精简AES加密模块运行在加密主机上,解密模块运行在目标机上;
[0048]其中,所述目标机包括:第一次逻辑校验模块、密钥管理模块、解密模块、启动模块、操作系统模块、用户应用模块;其中,密钥管理模块、解密模块和启动模块存在于Bootflash中,操作系统模块和用户应用模块以软件密文的形式存在于Nand flash中;
[0049]所述加密方法包括如下步骤:
[0050]步骤S1:在加密主机上,Vxworks IDE开发环境生成elf格式的镜像文件,此elf?文件为待进行加密处理的软件明文;此软件明文读入精简AES加密模块,处理得到目标机上需要的以密文形式存在的操作系统模块和用户应用模块;
[0051 ] 步骤S2:将步骤S1加密主机处理得到的密文加载到Nand fish中。
[0052]步骤S3:在加密主机上的在交叉编译环境下,设计目标机需要的密钥管理模块、解密模块、启动模块,并将得到的二进制文件加载到Boot flash中;
[0053]步骤S4:将第一次逻辑校验模块加载到CPLD/FPGA中。
[0054]对于步骤S2、步骤S3和步骤S4涉及的目标机各功能模块间的关系,按如下步骤执行;目标机中设计的各个功能模块的执行流程如图2所示;
[0055]步骤S5:目标机完成步骤S2、步骤S3和步骤S4涉及的各个模块的加载;
[0056]步骤S6:目标机执行启动模块,完成PowerPC嵌入式信息处理单元的硬件初始化;执行密钥管理模块;
[0057]步骤S7:目标机执行第一次逻辑校验模块,该模块通过结果接受芯片ID等信息,进行逻辑运算和校验,校验通过则继续执行任务,校验失败,则擦除软件密文达到对侵权行为的惩罚;
[0058]步骤S8:步骤S7校验成功,回读密钥;
[0059]步骤S9:目标机执行解密模块;解密模块用于从Nandflash中读入软件密文,并在内存中开辟缓存空间,执行精简
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1