通过特定指令集来进行相关运算的信息安全协处理器的制作方法

文档序号:6440056阅读:146来源:国知局
专利名称:通过特定指令集来进行相关运算的信息安全协处理器的制作方法
技术领域
本发明涉及信息安全处理领域,尤其涉及应用于集成电路系统中的通过特定指令集来进行相关运算的信息安全协处理器。
背景技术
在当下数字化的信息时代,信息数据的安全变得尤为重要。信息安全成为目前一个活跃且重要的研究领域。诸多的安全方案、密码学算法等应运而生,相关的标准不断发展,如AES、RC4等算法标准。传统的基于加密技术的安全方案都通过软件实现。随着嵌入式技术和集成电路技术的发展,基于或使用硬件的方案提供了很多优于纯软件方案的特点,比如安全性和处理速度;另一方面,集成电路技术发展到了片上系统(SOC)的时代,因而信息安全或加解密处理器常以协处理器的形式出现在SOC系统中。目前较多的安全协处理器实现单一或有限种类的算法功能,作为一个单纯的数据处理单元存在,这样的处理器有使用简单,性能好,成本低的特点。但是,先进的安全方案往往需要使用好几种密码学算法,因此,功能单一的协处理器不适合实现复杂的方案,并且, 嵌入式系统之上的应用日趋复杂(如智能手机),丰富的应用和多任务处理也使得单一功能协处理器无法满足需求。目前也存在另一种复杂的协处理器,其拥有独立的微处理器和一个完整的安全执行环境,在安全性和灵活性方面具备优势,但是在性能、成本和使用便利方面欠佳。有鉴于此,有必要提供一套高性能、低成本、使用便利,适用于安全协处理器的指令集,使协处理器能够支持复杂的多功能、多任务要求。

发明内容
为解决上述技术问题,本发明的目的在于提供一种通过特定指令集来进行相关运算的信息安全协处理器,其指令集设计包含如下内容密码算法执行指令、上下文操作指令、密钥存取指令、数据传输指令、逻辑运算指令以及寄存器写指令,从而使协处理器能够以较低的成本支持复杂的多功能、多任务要求。为实现上述发明目的,本发明的一种通过特定指令集来进行相关运算的信息安全协处理器,其包括如下单元
若干个寄存器堆其为可配置寄存器; 指令处理单元用于负责指令集中指令的读取和解码; 运算单元用于实现数学运算、或者密码学算法并支持指令集相关指令的执行; DMA引擎用于负责所述信息安全协处理器内部和外部之间的数据交换并支持指令集相关指令的执行;
本地存储器用于存放本地数据并支持指令集相关指令的执行; 密钥存储器用于存放未加密的密钥并支持指令集相关指令的执行;上下文存储器用于存放运行时上下文并支持指令集相关指令的执行,其中,所述运行时上下文个数不限,每个上下文有唯一的ID信息,当前上下文ID表示当前活跃的上下文的 ID。作为本发明的进一步改进,所述指令集相关指令包括密码算法执行指令、上下文操作指令、密钥存取指令、数据传输指令、逻辑运算指令以及寄存器写指令。作为本发明的进一步改进,所述密码算法执行指令包括一执行特定密码学算法的指令 C_CIPHER。作为本发明的进一步改进,所述上下文操作指令包括
C_LCTX:该指令导致从系统地址空间读入上下文到上下文存储器中,覆盖当前上下文 ID所对应的上下文,需要给出上下文在系统地址空间的起始地址;
C.SCTX 该指令导致当前上下文ID所对应的上下文存储器内的上下文被存入系统地址空间中,需要给出上下文在系统地址空间的起始地址;
C_SWITCH_CTX 该指令将当前上下文ID切换到指定上下文ID。作为本发明的进一步改进,所述密钥存取指令包括
C_LKEY 该指令根据源地址、目标地址和密钥长度,从本地存储器中读入一个密钥到密钥存储器;
C_SKEY 该指令根据源地址、目标地址和密钥长度,向本地存储器中写出一个密钥从密钥存储器。作为本发明的进一步改进,所述数据传输指令包括
C_DMAI 根据给出的源地址、目标地址和数据大小,通过DMA引擎从处理器外部读入数据到处理器内部;
C_DMA0 根据给出的源地址、目标地址和数据大小,通过DMA引擎从处理器内部写出数据到处理器外部;
C_MEM_CPY 根据给出的源地址、目标地址和数据大小,在处理器内部将一定量的数据从一处搬运到另一处。作为本发明的进一步改进,所述逻辑运算指令包括
C_X0R:根据给出的两个操作数的地址和数据大小,从处理器内部两个位置读取一定大小的数据进行二进制异或操作,将结果放入其中一个操作数所在位置。作为本发明的进一步改进,所述寄存器写指令包括
C.REGff 根据给出的目标地址和数据大小,将指令序列中紧随其后的指令作为数据写入到处理器内部寄存器堆中。与现有技术相比,本发明通过特定指令集来进行相关运算的信息安全协处理器, 其指令集设计包含如下内容密码算法执行指令、上下文操作指令、密钥存取指令、数据传输指令、逻辑运算指令以及寄存器写指令,从而使协处理器能够支持复杂的多功能、多任务要求,且成本更低、功能灵活。


图1是本发明一实施方式中通过特定指令集来进行相关运算的信息安全协处理器的工作原理图;图2是本发明一实施方式中指令集中指令的执行流程图。
具体实施例方式以下将结合附图所示的具体实施方式
对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包括在本发明的保护范围内。请参照图1所示,在本发明一具体实施方式
中,一种通过特定指令集来进行相关运算的信息安全协处理器,其包括如下单元
若干个寄存器堆10 其为可配置寄存器;其中,通过APB总线对寄存器堆的读写,夕卜部可以实现对该处理器的控制。其中,本发明采用两种总线进行数据传输AHB(AdvanCed High performance Bus)系统总线禾口 APB (Advanced Peripheral Bus)夕卜围总线,AHB 主要用于高性能模块(如CPU、DMA和DSP等)之间的连接;APB主要用于低带宽的周边外设之间的连接,例如UART、1沘4等。寄存器堆10包括用于用于控制和确定处理器的操作模式以及当前执行任务的特性的控制寄存器、用于体现当前指令执行结果的各种状态信息状态寄存器等等。寄存器堆可于APB总线之间进行数据传输。指令处理单元(30、40)用于负责指令集中指令的读取和解码;
运算单元50 用于实现数学运算、或者密码学算法并支持指令集相关指令的执行;其中,优选地,数学运算可包括复制、或者异或运算、或者以上两者的组合;密码学算法运算可包括 AES、DES、MD5 等。DMA引擎20 用于负责所述信息安全协处理器内部和外部之间的数据交换并支持指令集相关指令的执行;其中,在本实施方式中,DMA (Direct Memory Access,直接内存存取)引擎用于负责AHB总线和本地地址空间单元之间数据传输,在其他实施方式中,DMA引擎可替换为其他能实现类似功能的部件。本地存储器60 用于存放本地数据并支持指令集相关指令的执行;
密钥存储器70 用于存放未加密的密钥并支持指令集相关指令的执行;每个密钥存储位置具有唯一的ID,在本实施方式中,共存储四个密钥,但在其他可行的实施方式中,密钥的个数可以作相应改变。上下文存储器80:用于存放运行时上下文并支持指令集相关指令的执行,其中, 所述运行时上下文个数不限,每个上下文有唯一的ID信息,当前上下文ID表示当前活跃的上下文的ID。优选地,在本实施方式中,共存储2个上下文。参照图2所示,指令序列的执行过程如下
51、处理器在空闲状态等待被通知开始执行;
52、得到开始执行的命令后,指令读取模块首先从寄存器堆中读出所要执行的指令序列在系统存储空间的首地址;
53、指令读取模块将指令序列首地址发送给DMA引擎,并且启动DMA。DMA引擎在被启动后自动从首地址开始逐个读入指令序列;
54、指令读取模块从DMA引擎中读取一条指令并送给指令解码模块;
55、指令解码模块解码它收到的指令;56、被解码后的指令控制处理器内部功能单元完成指令的执行;
57、如果指令序列结束,返回第1步等待命令。否则,从第4步开始循环。于本实施方式中,指令集相关指令包括密码算法执行指令、上下文操作指令、密钥存取指令、数据传输指令、逻辑运算指令以及寄存器写指令。下面介绍每条指令的定义,在本实施方式中,每条指令的长度固定为32比特。最小数据单位为4个字节,所以在以下描述中,地址或数据的单位是4个字节,以下resv均表示保留字段。为叙述方便,称当前有效上下文为当前上下文ID所指向的上下文。首先,密码算法执行指令包括一执行特定密码学算法的指令C_CIPHER
31 |30:27 |26:θ" Icmd opcode resv
lcmd:表示指令序列结束标志;
opcode:表示指令编码字段;
该指令启动算法引擎执行一个密码学算法,其过程为
1.从当前有效上下文中读取所要执行的密码学算法信息;
2.执行密码学算法并更新当前有效上下文。值得一提的是,执行该指令需保证当前上下文已准备好。具体地,上下文操作指令包括
C_LCTX:该指令导致从系统地址空间读入上下文到上下文存储器中,覆盖当前上下文 ID所对应的上下文,需要给出上下文在系统地址空间的起始地址;
C.SCTX 该指令导致当前上下文ID所对应的上下文存储器内的上下文被存入系统地址空间中,需要给出上下文在系统地址空间的起始地址;
C_SWITCH_CTX 该指令将当前上下文ID切换到指定上下文ID。其中,C_LCTX:
31 [30:27 |26:θ" Icmd opcode resv
lcmd:表示指令序列结束标志; opcode:表示指令编码字段。该指令通过DMA引擎从协处理器外部读入上下文信息到当前上下文存储位置,值得一提的是,需事先设定DMA引擎的起始读地址为上下文信息在系统地址空间的存储地址。C_SCTX
31 |30:27 |26:θ" Lcmd opcode resv
lcmd:表示指令序列结束标志; opcode:表示指令编码字段。该指令通过DMA引擎向协处理器外部写出上下文信息从当前上下文存储位置,值得一提的是,需事先设定DMA引擎的起始读地址为上下文信息在系统地址空间的存储地址。C_SWITCH_CTX
31 [30:27 |26:1|0 Icmd opcode Resv ctxldlcmd:指令序列结束标志;
opcode:指令编码字段;
ctxld 要切换至的上下文ID ;
该指令的功能是将当前上下文ID切换为ctxld。具体地,所述密钥存取指令包括
C_LKEY 该指令根据源地址、目标地址和密钥长度,从本地存储器中读入一个密钥到密钥存储器;
C_SKEY 该指令根据源地址、目标地址和密钥长度,向本地存储器中写出一个密钥从密钥存储器。C_LKEY
权利要求
1.一种通过特定指令集来进行相关运算的信息安全协处理器,其特征在于,其包括如下单元若干个寄存器堆其为可配置寄存器; 指令处理单元用于负责指令集中指令的读取和解码; 运算单元用于实现数学运算、或者密码学算法并支持指令集相关指令的执行; DMA引擎用于负责所述信息安全协处理器内部和外部之间的数据交换并支持指令集相关指令的执行;本地存储器用于存放本地数据并支持指令集相关指令的执行; 密钥存储器用于存放未加密的密钥并支持指令集相关指令的执行; 上下文存储器用于存放运行时上下文并支持指令集相关指令的执行,其中,所述运行时上下文个数不限,每个上下文有唯一的ID信息,当前上下文ID表示当前活跃的上下文的 ID。
2.如权利要求1所述的信息安全协处理器,其特征在于,所述指令集相关指令包括密码算法执行指令、上下文操作指令、密钥存取指令、数据传输指令、逻辑运算指令以及寄存器写指令。
3.如权利要求2所述的信息安全协处理器,其特征在于,所述密码算法执行指令包括一执行特定密码学算法的指令C_CIPHER。
4.如权利要求2所述的信息安全协处理器,其特征在于,所述上下文操作指令包括 C_LCTX:该指令导致从系统地址空间读入上下文到上下文存储器中,覆盖当前上下文ID所对应的上下文,需要给出上下文在系统地址空间的起始地址;C.SCTX 该指令导致当前上下文ID所对应的上下文存储器内的上下文被存入系统地址空间中,需要给出上下文在系统地址空间的起始地址;C_SWITCH_CTX 该指令将当前上下文ID切换到指定上下文ID。
5.如权利要求2所述的信息安全协处理器,其特征在于,所述密钥存取指令包括 C_LKEY 该指令根据源地址、目标地址和密钥长度,从本地存储器中读入一个密钥到密钥存储器;C_SKEY 该指令根据源地址、目标地址和密钥长度,向本地存储器中写出一个密钥从密钥存储器。
6.如权利要求2所述的信息安全协处理器,其特征在于,所述数据传输指令包括 C_DMAI 根据给出的源地址、目标地址和数据大小,通过DMA引擎从处理器外部读入数据到处理器内部;C_DMA0 根据给出的源地址、目标地址和数据大小,通过DMA引擎从处理器内部写出数据到处理器外部;C_MEM_CPY 根据给出的源地址、目标地址和数据大小,在处理器内部将一定量的数据从一处搬运到另一处。
7.如权利要求2所述的信息安全协处理器,其特征在于,所述逻辑运算指令包括 C_X0R:根据给出的两个操作数的地址和数据大小,从处理器内部两个位置读取一定大小的数据进行二进制异或操作,将结果放入其中一个操作数所在位置。
8.如权利要求2所述的信息安全协处理器,其特征在于,所述寄存器写指令包括C.REGff 根据给出的目标地址和数据大小,将指令序列中紧随其后的指令作为数据写入到处理器内部寄存器堆中。
全文摘要
本发明提供一种通过特定指令集来进行相关运算的信息安全协处理器,其包括如下单元若干个寄存器堆、指令处理单元、运算单元、DMA引擎、本地存储器、密钥存储器以及上下文存储器,其指令集设计包含如下内容密码算法执行指令、上下文操作指令、密钥存取指令、数据传输指令、逻辑运算指令以及寄存器写指令,从而使协处理器能够以较低的成本支持复杂的多功能、多任务要求的同时具备功能灵活、成本低、性能高、多任务支持和易用性的优点。
文档编号G06F21/00GK102521535SQ20111039818
公开日2012年6月27日 申请日期2011年12月5日 优先权日2011年12月5日
发明者余红斌, 妙维, 李张丰, 袁宏骏 申请人:苏州希图视鼎微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1