安全通用数字信号处理DSP芯片的制作方法

文档序号:18466444发布日期:2019-08-17 02:30阅读:251来源:国知局
安全通用数字信号处理DSP芯片的制作方法

本发明属于信息安全技术领域,尤其涉及一种安全通用dsp(英文:digitalsignalprocessing)芯片。



背景技术:

随着科学技术的发展,信息技术作为推动社会发展进步的强有力因素,已经成为促进世界各国文化繁荣和经济增长的重要动力。目前,信息技术在社会、政治、军事、经济和科技等领域有着重要的应用,同时信息技术的发展也面临着严峻的信息安全问题。在缺乏可靠的信息安全体制下,重要的军事、政治信息将在各种通讯渠道中泄漏出去,会对国家安全造成严重的危害。

数字信号处理器(dsp)作为数据处理和算法应用的核心器件而得到广泛的应用,但在应用过程中,其程序代码往往以明文的形式存在,第三方可以通过许多途径获取运行中的程序代码,这使得各类核心算法、通信协议等信息无法得到有效的保护。



技术实现要素:

为了解决上述技术问题,本发明提供了一种安全通用dsp芯片。为了达到上述目的,本发明的技术方案如下:

本发明提供一种安全通用dsp芯片,包括:dsp电路以及内置于所述dsp电路中的通用dsp内核、一次性可编程(英文:onetimeprogrammable,简称:otp)存储模块、高级加密标准(英文:advancedencryptionstandard,简称:aes)模块、bootloader模块、静态随机存取存储器(英文:staticrandom-accessmemory,简称:sram)自刷新模块以及sram,其中:

所述dsp电路上电复位之后,所述sram自刷新模块将所述sram刷新清空,所述bootloader模块将所述otp存储模块中的数据读取至对应的寄存器中;

所述dsp电路启动内部复位信号,所述dsp内核控制所述bootloader模块中的数据读取单元将所述dsp芯片外的程序存储器中的程序代码数据读入至所述sram中;

在所述程序代码数据为明文代码数据时,所述aes模块中的加密单元利用加密初始密钥对所述明文代码数据进行加密处理,将加密处理后得到的密文代码数据输入至所述sram中;

在所述程序代码数据为密文代码数据时,所述aes模块中的解密单元利用轮密钥对所述密文代码数据进行解密处理,将解密处理后得到的明文代码数据输入至所述sram中,所述dsp内核执行所述sram中的明文代码数据。

可选的,所述otp存储模块存储的数据信息包括aes算法的加密初始密钥和/或解密轮密钥,以及配置信息,所述配置信息包括aes模式和电路工作模式,aes模式选择包括用于指示aes算法在加密或解密时单次处理的数据长度,所述电路工作模式包括普通模式、解密工作模式、加密工作模式。所述otp存储模块中存储的数据信息均通过串口下载器将上位机软件生成的上述数据信息烧写到otp存储模块中。

可选的,aes算法在加密或解密时单次处理的数据长度可以包括128bit、192bit和256bit等。

此外,otp存储模块存储的数据还可以包括芯片id号等。

可选的,所述dsp电路上电复位之后,所述dsp内核将预烧录在所述otp存储模块中的加密初始密钥和/或解密轮密钥读取到密钥存储寄存器组中,将预烧录在所述otp存储模块中的配置信息读取到所述dsp芯片中的全局控制寄存器中,在所述otp存储模块中的数据全部读出之后,将otp数据读取完成标志信号flag_otp置零。

当otp存储模块存储的数据包括芯片id号时,dsp电路上电复位之后,所述dsp内核将预烧录在所述otp存储模块中的芯片id号写入至id号寄存器中。

可选的,所述dsp电路上电复位之后,所述sram自刷新模块通过内置的环振模块,对所述sram清空,在清空完成之后,将自刷新标志信号flag_sram置零。

可选的,在所述otp数据读取完成标志信号flag_otp为零且所述自刷新标志信号flag_sram为零时,所述dsp电路启动所述内部复位信号。

可选的,所述dsp电路启动所述内部复位信号之后,所述bootloader模块中的数据读取单元读取所述全局控制寄存器中的配置信息,所述dsp内核根据所述配置信息中的电路工作模块判断所述dsp电路的工作模式;

当所述工作模式为解密工作模式时,所述dsp内核控制所述bootloader模块的数据搬移单元经数据/地址总线将所述sram中的密文代码数据搬移到所述aes模块中的解密单元中,所述解密单元从所述密钥存储寄存器组中调用所述解密轮密钥,对所述密文代码数据进行解密,所述数据搬移单元将所有解密后的明文代码数据搬移到所述sram中,当所有密文代码数据解密完成后,所述dsp内核执行所述sram中的明文代码数据;

当所述工作模式为加密工作模式时,所述dsp内核控制所述bootloader模块的数据搬移单元经数据/地址总线将所述sram中的明文代码数据搬移到所述aes模块中的加密单元中,所述加密单元从所述密钥存储寄存器组中调用所述加密初始密钥,利用所述对加密初始密钥所述sram中的明文代码数据进行加密,所述数据搬移单元将所有加密后的密文代码数据搬移到所述sram中。

可选的,所述解密单元在对所述密文代码数据进行解密时,根据所述aes模式指示的数据长度,将具备所述数据长度的第i个数据段解密后依次写入至数据存储寄存器组中,所述bootloader模块的数据搬移单元将数据存储寄存器组中的解密数据写入至所述sram的对应位置,所述解密单元将i+1,继续执行所述将具备所述数据长度的第i个数据段解密后依次写入至数据存储寄存器组中的步骤,直至完成所有密文代码数据的解密。

可选的,所述加密单元在对所述明文代码数据进行加密时,根据所述aes模式指示的数据长度,将具备所述数据长度的第i个数据段加密后依次写入至数据存储寄存器组中,所述bootloader模块的数据搬移单元将数据存储寄存器组中的加密数据写入至所述sram的对应位置,所述加密单元将i+1,继续执行所述将具备所述数据长度的第i个数据段加密后依次写入至数据存储寄存器组中的步骤,直至完成所有明文代码数据的加密。

可选的,所述dsp芯片还包括联合测试工作组(英文:jointtestactiongroup,简称:jtag)模块,所述otp存储模块中还烧录有jtag控制信息,所述jtag控制信息用于指示是否屏蔽所述jtag模块的调试功能。

在dsp电路上电复位之后,所述dsp内核将预烧录在所述otp存储模块中的jtag控制信息读取到所述dsp芯片中的全局控制寄存器中。

可选的,在安全工作模式下,本申请提供的dsp芯片可以支持jtag屏蔽功能,jtag控制信息用于指示屏蔽jtag模块的调试功能,这样,在读取全局控制寄存器中的jtag控制信息之后,禁止通过jtag端口对dsp电路进行任何调试和数据操作。

可选的,dsp芯片可以包括相关外设模块,这些外设模块可以包括pwm,spi,iic,mcbsp,timer等,以支持dsp芯片的通信、控制等功能。

通过上述实现,本发明至少具有以下有益效果:

通过在dsp电路中增加aes模块实现对数据的加密或解密,可有效地防止需要安全防护的数据在芯片端口被直接读取,对运行在dsp内的程序代码数据和dsp运算数据进行了严格保护,提高了dsp电路中数据的安全性;通过在dsp电路中增加sram自刷新模块,实现sram的自动刷新,避免第三方在dsp芯片再次复位之后读取sram内的数据,刷新清除加密或者解密过程中写入的数据,保证数据不会被窃取。

另外,密钥可以灵活设计并存储在otp存储模块内,安全可靠,无法通过解剖芯片的方式读取密钥和程序代码数据。对于整个dsp运行系统来说,在数据生成、数据传输、数据存储、数据运行等各个环节,本发明均能安全防护,有效的保证了运行系统的数据安全。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是本申请一个实施例中提供的dsp电路的组成结构框图;

图2是本申请一个实施例中提供的上电复位初始化时序图;

图3是本申请一个实施例中提供的利用dsp芯片实现程序代码数据的加密或解密的流程图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

如何确保信息的安全有效越来越成为工程师关心的问题,通过加密机制来满足系统的安全需求已成为主流发展趋势,其基本理论和技术是密码学。aes算法作为当今著名的加密标准算法,可以抵挡目前已知的穷举攻击、差分攻击、线性攻击、一致攻击等攻击手段,算法设计简单,与公钥密码算法不同,没有复杂的乘法运算,易于实现,灵活性强,轮函数良好的并行特性有利于硬件设计与实现。同时,与软件加解密方法相比,硬件实现具有安全性好,效率高,性能可靠等优点。通过大量研发验证,申请人认为,dsp作为信息安全技术的硬件载体,构建一个基于aes算法的安全通用dsp电路保证数据信息安全而变得至关重要。

本申请基于通用dsp开发设计,在不改变原有通用dsp架构、指令集及功能的基础上增加aes模块、otp存储模块及sram自刷新模块,提供一种支持aes加解密功能的安全通用dsp芯片,其结构如图1所示。

本申请提供的安全通用dsp芯片可以包括dsp电路以及内置于dsp电路中的通用dsp内核10、otp存储模块20、aes模块30、bootloader模块40、sram自刷新模块50、sram60以及相关外设模块70。

此外,dsp芯片通常还可以包括相关外设模块,这些外设模块可以包括pwm,spi,iic,mcbsp,timer等,以支持dsp芯片的通信、控制等功能。

通常,本申请提供的安全通用dsp芯片还可以包括全局控制寄存器81、数据存储寄存器组82、密钥存储寄存器组34以及其他类型的寄存器,寄存器的类型和数量取决于dsp电路的数据寄存需求,本申请中对此不进行限定。

本申请提供的dsp电路采用正向设计思路,在经历方案论证、逻辑设计、仿真验证、版图设计、制版流片及封装测试后升级为支持aes算法加解密功能的安全通用dsp。

进一步的,otp存储模块20存储的数据信息可以包括aes算法的加密初始密钥和/或解密轮密钥,以及配置信息。这里所讲的配置信息可以包括aes模式和电路工作模式等,aes模式选择可以包括用于指示aes算法在加密或解密时单次处理的数据长度,电路工作模式可以包括普通工作模式、解密工作模式、加密工作模式。

可选的,aes算法在加密或解密时单次处理的数据长度可以包括128bit、192bit和256bit等。

otp存储模块20中的数据信息的预存储需要一个上位机和数据下载器配合完成。上位机软件支持128bit、192bit和256bit等不同密钥长度的aes算法,具备aes算法加密和解密轮密钥生成功能,具有良好的人机交互界面。上位机可通过串口下载器将加密初始密钥或解密轮密钥及相关的配置信息、控制信息下载烧录到otp存储模块20中,二者之间采用自定义通信协议,其数据下载烧录流程为本领域技术人员均可以实现的,本申请对此不再赘述。

aes模块30可以包括加密单元31和解密单元32,加密单元31可以从密钥存储寄存器组82调用加密初始密钥,解密单元32可以从密钥存储寄存器组82中调用解密轮密钥。

bootloader模块40可以包括数据读取单元和数据搬移单元,数据读取单元可以将otp存储模块20中的数据读入至寄存器中,也可以从全局寄存器中读取数据信息;数据搬移单元可以将sram60中的数据搬移至aes模块30中。

sram自刷新模块50可以包括环阵电路,实现在dsp电路上电复位后对sram60的清零功能。

安全通用dsp电路在上电复位之后,并行启动sram自刷新模块50执行sram自刷新清空功能和bootloader模块40将otp存储模块20中的数据读取至对应的寄存器中的功能。

sram自刷新时钟由内置的环振电路提供,安全通用dsp电路在上电复位之后,环振电路激活sram自刷新模块50中的自刷新电路,以对sram60进行刷新清空。sram60被刷新清空完成之后,自刷新标志信号flag_sram置零。

otp数据读取时钟由输入的系统时钟提供,otp数据读取功能是将预烧录在otp存储模块20中的加密初始密钥和/或解密轮密钥读取到密钥存储寄存器组82中,将预烧录在otp存储模块20中的配置信息读取到dsp芯片中的全局控制寄存器81中,在otp存储模块20中的数据全部读出之后,将otp数据读取完成标志信号flag_otp置零。

待sram自刷新清空和otp数据读取两个功能都执行结束之后,dsp电路启动内部复位信号,dsp电路电路开始正常工作,其时序特征如图2所示。

安全通用dsp在上电复位之后,启动sram自刷新清空功能和otp数据读取功能,bootloader根据全局控制寄存器81的配置信息判断电路的电路工作模式,在不需要安全防护的条件下,dsp的使用方法与通用dsp的使用方法一样;若需要dsp工作在安全模式(解密工作模式或加密工作模式)下,需要一个定制上位机软件与dsp芯片配合使用,如图3所示,利用dsp芯片实现程序代码数据的加密或解密的流程如下:

s1:烧录程序代码数据;

在待烧录的程序代码数据为密文代码数据时,上位机通过加密初始密钥将需要安全保护的明文代码数据进行加密处理,处理后的密文代码数据烧录至片外的程序存储器。

在待烧录的代码数据为明文代码数据时,将明文代码数据烧录至片外的程序存储器中。

s2:向otp存储模块烧录数据信息;

在烧录至程序存储器中的程序代码数据为密文代码数据时,上位机和串口下载器配合,将用于生成该密文代码数据的加密初始密钥以及相关的配置信息(aes模式和解密工作模式)烧录下载至otp存储模块20中。

在烧录至程序存储器中的程序代码数据为明文代码数据时,上位机和串口下载器配合,将预设的解密轮密钥以及相关的配置信息(aes模式和加密工作模式)烧录下载至otp存储模块20中。

s3:初始化;

dsp电路上电复位之后,并行启动sram自刷新清空功能和otp数据读取功能,完成sram60空间的清空以及电路状态的配置。

也即,sram自刷新模块50将sram刷新清空,bootloader模块40将otp存储模块20中的数据读取至对应的寄存器中。比如,将预烧录在otp存储模块20中的加密初始密钥和/或解密轮密钥读取到密钥存储寄存器组82中,将预烧录在otp存储模块20中的配置信息读取到dsp芯片中的全局控制寄存器81中,将芯片id号读取到id号寄存器中。

s4:启动内部复位信号,将程序存储器中的程序代码数据读入至sram中;

这里的程序代码数据可能是密文代码数据,也可能是明文代码数据。

s5:判断工作模式;

dsp电路启动内部复位信号之后,bootloader模块40中的数据读取单元读取全局控制寄存器81中的配置信息,dsp内核10根据配置信息中的电路工作模块判断dsp电路的工作模式。

比如,当全局控制寄存器81中的工作模式判断位配置为1时,即进入安全工作模式;当全局控制寄存器81中的工作模式判断位配置为0时,即进入普通工作模式。

还比如,当全局控制寄存器81中的安全工作模式判断位配置为1时,即进入解密工作模式;当全局控制寄存器81中的安全工作模式判断位配置为0时,即进入加密工作模式。

s6:根据工作模式,对sram中的程序代码数据进行加密或解密处理。

一般的,在程序代码数据为明文代码数据时,aes模块30中的加密单元31利用加密初始密钥对明文代码数据进行加密处理,将加密处理后得到的密文代码数据输入至sram60中。

也就是说,当工作模式为解密工作模式时,dsp内核10控制bootloader模块40的数据搬移单元经数据/地址总线将sram60中的密文代码数据搬移到aes模块30中的解密单元32中,解密单元32从密钥存储寄存器组82中调用解密轮密钥,对密文代码数据进行解密,数据搬移单元将所有解密后的明文代码数据搬移到sram60中,当所有密文代码数据解密完成后,dsp内核10执行sram60中的明文代码数据。

解密单元32在对密文代码数据进行解密时,根据aes模式指示的数据长度,将具备数据长度的第i个数据段解密后依次写入至数据存储寄存器组33中,bootloader模块40的数据搬移单元将数据存储寄存器组33中的解密数据写入至sram60的对应位置,解密单元32将i+1,继续执行将具备数据长度的第i个数据段解密后依次写入至数据存储寄存器组33中的步骤,直至完成所有密文代码数据的解密。

以密钥长度为128bit为例,数据存储寄存器组33可以包括4个32bit寄存器,将第i个数据段解密后依次写入至4个32bit寄存器中,每个32bit寄存器均会被写满,且在第i+1次向32bit寄存器写入数据时,可以将第i次写入至32bit寄存器的数据全部覆盖掉,从而减少了数据存储的复杂度以及数据处理过程中的准确性。

具体地,安全通用dsp在上电复位之后判断进入解密操作,bootloader模块40的搬移程序从片外存储器中搬移位宽为32bit的密文代码数据4次,将4个32bit的数据整合成一个128bit的密文代码数据,使能aes解密,等待13个解密执行周期,待解密模块输出解密完成标识之后,将128bit的明文代码写到4个32bit的寄存器中,再分别将4个32bit寄存器中的明文代码写入片内sram60,循环往复,直至所有的密文代码数据解密完成。

而在程序代码数据为密文代码数据时,aes模块30中的解密单元32利用轮密钥对密文代码数据进行解密处理,将解密处理后得到的明文代码数据输入至sram60中,dsp内核10执行sram60中的明文代码数据。

也就是说,当工作模式为加密工作模式时,dsp内核10控制bootloader模块40的数据搬移单元经数据/地址总线将sram60中的明文代码数据搬移到aes模块30中的加密单元31中,加密单元31从密钥存储寄存器组82中调用加密初始密钥,利用对加密初始密钥sram60中的明文代码数据进行加密,数据搬移单元将所有加密后的密文代码数据搬移到sram60中。

加密单元31在对明文代码数据进行加密时,加密单元31从密钥存储寄存器组82中调用加密初始密钥,利用加密初始密钥对明文代码数据进行加密,根据aes模式指示的数据长度,将具备该数据长度的第i个数据段加密后依次写入至数据存储寄存器组33中,bootloader模块40的数据搬移单元将数据存储寄存器组33中的加密数据写入至sram60的对应位置,加密单元31将i+1,继续执行将具备该数据长度的第i个数据段加密后依次写入至数据存储寄存器组33中的步骤,直至完成所有明文代码数据的加密。

以aes-128算法为例,aes模块30完成对密文代码数据的解密操作需要11轮解密密钥,安全通用dsp的解密轮密钥通过预先存储于otp中并在上电复位之后读取至密钥存储寄存器组82,待aes解密环节读取,明文的加密密钥与下载到otp中的解密轮密钥必须相对应。

在一种可能的实现方式中,dsp芯片还包括联合测试工作组(英文:jointtestactiongroup,简称:jtag)模块,otp存储模块20中还烧录有jtag控制信息,jtag控制信息用于指示是否屏蔽jtag模块90的调试功能。

另外,在安全模式下,可利用上位机向otp存储模块20内烧录jtag控制信息,以永久屏蔽jtag的调试功能,即无法通过jtag端口对电路进行调试和读取片内sram60数据。

综上所述,本申请提供的dsp芯片,通过在dsp电路中增加aes模块实现对数据的加密或解密,可有效地防止需要安全防护的数据在芯片端口被直接读取,对运行在dsp内的程序代码数据和dsp运算数据进行了严格保护,提高了dsp电路中数据的安全性;通过在dsp电路中增加sram自刷新模块,实现sram的自动刷新,避免第三方在dsp芯片再次复位之后读取sram内的数据,刷新清除加密或者解密过程中写入的数据,保证数据不会被窃取。

另外,密钥可以灵活设计并存储在otp存储模块内,安全可靠,无法通过解剖芯片的方式读取密钥和程序代码数据。对于整个dsp运行系统来说,在数据生成、数据传输、数据存储、数据运行等各个环节,本发明均能安全防护,有效的保证了运行系统的数据安全。

本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1