CN1959694A - 一种可编程安全处理器 - Google Patents

一种可编程安全处理器 Download PDF

Info

Publication number
CN1959694A
CN1959694A CNA2006101443534A CN200610144353A CN1959694A CN 1959694 A CN1959694 A CN 1959694A CN A2006101443534 A CNA2006101443534 A CN A2006101443534A CN 200610144353 A CN200610144353 A CN 200610144353A CN 1959694 A CN1959694 A CN 1959694A
Authority
CN
China
Prior art keywords
control
ram
register
address
received
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
CNA2006101443534A
Other languages
English (en)
Other versions
CN100419776C (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CNB2006101443534A priority Critical patent/CN100419776C/zh
Publication of CN1959694A publication Critical patent/CN1959694A/zh
Application granted granted Critical
Publication of CN100419776C publication Critical patent/CN100419776C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及集成电路设计中的微处理器设计技术领域,公开了一种可编程安全处理器,该安全处理器包括程序存储器、控制堆栈、控制译码器、运算译码器、RAM控制器、运算执行器、运算堆栈和接口模块。本发明提供的这种可编程安全处理器,是一个能支持可编程的结构,通过分析大部分密码运算的基本运算,然后设置这些基本运算单元,然后通过程序控制和基本运算就能实现多种加解密算法。由于这种可编程安全处理器支持可编程,而且易于高效实现多种密码算法,所以满足了在嵌入式应用中需要快速实现多种密码算法的需求。

Description

一种可编程安全处理器
技术领域
本发明涉及集成电路设计中的微处理器设计技术领域,尤其涉及一种可编程安全处理器。
背景技术
当今社会进入信息时代,随着网络信息技术的发展和应用,信息安全关系着国家和个人的命运,信息安全越来越引起国家、社会和个人的重视。
信息安全主要建立在各种加解密算法上,加解密算法一般运算量都很大。在广泛的嵌入式应用系统中,一般的嵌入式微处理器的计算能力有限,执行一次加解密运算需要很长时间,这使微处理器得在一些需要兼顾安全和实时性的应用领域中难以胜任。
例如,在近年兴起的无线传感器网络应用中,商业上小区的无线安防网络,军事上情报监视等应用都需要保证信息的安全,后者更需要保证信息的实时性。
一种解决的方法是采用特定的安全芯片,现在国内外广泛使用的密码芯片大多是针对特定密码算法而订制的专用器件,对特定的密码算法加解密速度很快。但是,芯片的体系结构是固定的,密码运算由硬件完成。因此,大多密码芯片只能完成一种密码算法,这在很多应用场合是不够的。例如上面所说的无线传感器网络应用,需要自组网络,完成数据采集等工作。工作期间,需要应用到多种不同的密码算法,如身份认证,数据加密等。所以,单纯的专用密码芯片是不够的。
因此,希望能有一种可编程的密码芯片,它的特点是能有一套指令集,基于这套指令集编程,能高效地实现多种加解密算法。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种可编程安全处理器,以满足可编程要求,实现多种加解密算法。
(二)技术方案
为达到上述目的,本发明的技术方案是这样实现的:
一种可编程安全处理器,该安全处理器包括:
程序存储器(PC),用于存储加解密程序,并根据接收自控制译码器的程序计数器值选择一条指令,并将选择的指令分为运算指令和控制指令,分别发送给运算译码器和控制译码器;
控制堆栈,用于完成控制译码器中寄存器和程序计数器的保存和恢复;
控制译码器,用于完成接收自程序存储器的控制指令的译码和执行,将内部寄存器的值发送给运算译码器和控制堆栈,向控制堆栈发送压栈出栈控制信号,并向运算执行器发送分支预测指令信号;
运算译码器,用于对接收自程序存储器的运算指令进行译码,根据译码结果和接收自控制译码器的内部寄存器值生成源操作数地址、目的操作数地址和运算类型,将生成的源操作数地址和目的操作数地址发送给RAM控制器,生成的运算类型发送给运算执行器;
RAM控制器,用于根据接收自运算译码器的操作数地址和运算结果,从RAM中读出源操作数,将目的操作数写入RAM,并根据接收自接口模块的读写控制信号、地址信号和写入数据执行读写RAM的操作;
运算执行器,用于对接收自RAM控制器的操作数和运算译码器的运算类型信号执行加解密运算,将执行结果返回到RAM控制器;并根据运算结果向控制译码器返回分支预测结果信号,向运算堆栈发送压栈出栈控制信号,对运算堆栈进行压栈出栈控制;
运算堆栈,用于保存运算执行器中寄存器的值,接受运算执行器的压栈出栈控制;
接口模块,用于提供交互接口,实现安全处理器与外界进行的通信。
所述控制译码器包括:
指令译码器,用于完成接收自程序存储器的控制指令的译码和执行,向控制堆栈发送压栈出栈控制信号,向累加寄存器rega、regb和程序计数器发送控制信号;
累加寄存器rega、regb、regc,用于根据接收自指令译码器的控制信号向控制堆栈压入或弹出数据,将保存的数据发送给运算译码器;
程序计数器,用于根据接收自指令译码器的控制信号向控制堆栈压入或弹出程序计数器值,并向程序存储器输出程序计数器值。
所述控制译码器进一步包括基值寄存器regmax,以及基地址寄存器bs0、bs1、bs2和bs3,所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3都连接于运算译码器,在译码时,运算译码器利用所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3的值生成操作数的物理地址。
所述运算译码器包括:
指令译码单元,用于对接收自程序存储器的运算指令进行译码,将译码结果输出给地址生成单元和运算类型识别单元;
地址生成单元,用于根据接收的译码结果和接收自控制译码器的内部寄存器值生成源操作数地址和目的操作数地址,将生成的源操作数地址和目的操作数地址发送给RAM控制器;
运算类型识别单元,用于根据接收的译码结果和接收自控制译码器的内部寄存器值生成运算类型,将生成的运算类型发送给运算执行器。
所述运算译码器生成的操作数采用基址变址寻址。
所述RAM控制器包括:
选择器,用于从接收自运算译码器、运算执行器和接口模块的地址数据中选择地址数据进行RAM操作;
地址映射单元,用于将选择器选择的操作数地址映射到RAM中;
RAM,用于根据地址映射单元映射的操作数地址写入或读出数据,并将读出的数据作为操作数发送给运算执行器。
所述RAM包括4个独立的RAM,分别为RAMA,RAMB,RAMC和RAMD,每个RAM都支持一读一写,操作数地址被映射到4个RAM中的一个。
所述运算执行器包括高级加密标准(AES)正向/逆向字节变换器、哈希(HASH)压缩函数运算器、高效乘法器、算术逻辑运算单元(ALU)运算器和寄存器;
所述HASH压缩函数运算器用于完成消息摘要算法(MD5)压缩函数的4个基本逻辑函数F、G、H、I;
所述寄存器包括ALU进位/借位标志位,两8位数相乘高字节保存寄存器。
所述接口模块实现的与外界进行的通信包括:与外界进行的加解密数据、与外界进行的密钥的输入输出或与外界进行的加解密控制;
所述接口模块处理的信号包括:时钟信号、复位信号、输入输出总线、加解密开始信号、加解密结束信号或输入输出控制信号。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的这种可编程安全处理器,是一个能支持可编程的结构,通过分析大部分密码运算的基本运算,然后设置这些基本运算单元,然后通过程序控制和基本运算就能实现多种加解密算法。由于这种可编程安全处理器支持可编程,而且易于高效实现多种密码算法,所以满足了在嵌入式应用中需要快速实现多种密码算法的需求。
2、利用本发明提供的可编程安全处理器,由于安全领域的算法主要是复杂的数学运算,该数学运算都是用复杂度不高的循环来控制完成,且算法的判断跳转的距离不长,运算指令和控制指令的分开,不用太复杂的控制逻辑就能够应付安全算法中的循环跳转,独立出来的运算指令,可以使得整个处理器的时间片基本全部用来做数学运算,从而极大的减少了所需执行的时间和指令数。
3、本发明提供的可编程安全处理器,通过构建控制部件和运算部件并行译码执行,一方面专用的控制部件能很好的实现循环控制,另一方面,控制指令和运算指令并行执行节省了控制所需的时间,时间全部用在了运算上。这样,大大提高了算法执行效率。
4、本发明提供的可编程安全处理器,支持可编程,这样能够支持多种密码算法,如RSA(RSA是一种加密方法,没有固定的中文名,是3个密码学家的名字的第一个字母拼凑的,因此没有相应的中文翻译),高级加密标准(AES)等,满足嵌入式应用中对多种安全算法加解密的需求,如无线传感器网络(WSN)应用例子商业上小区的无线安防网络、军事上情报监视,可以在身份认证中使用RSA算法,在数据加密过程中使用AES算法。
附图说明
图1为本发明提供的可编程安全处理器的结构框图;
图2为本发明提供的可编程安全处理器中控制译码器的结构框图;
图3为本发明提供的可编程安全处理器中运算译码器的结构框图;
图4为本发明提供的可编程安全处理器中RAM控制器的结构框图;
图5为本发明提供的可编程安全处理器中运算执行器的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明的处理器架构就是一个能支持可编程的结构,通过分析大部分密码运算的基本运算,然后设置这些基本运算单元,然后通过程序控制和基本运算就能实现多种加解密算法。
大多数加解密算法,特别是分组密码,如RSA,AES等的加解密运算中都涉及到大量的循环。
例如RSA算法,假设密钥为{d,n},首先要将加解密数据分成若干组,每个组分别加密,这是一个大循环;然后求分组数据M的d次幂模n,最常使用的的算法是将密钥d表示成二进制码,然后从二进制码的最高位检测到最低位,通过判断二进制位值来进行两数相乘模n,这是第二层循环;最后,在两数相乘模n的计算中,一种简便的方法就是将其中一个数表示成二进制码,也是通过从二进制码的最高位检测到最低位,进行相应运算来来实现相乘求模,这是第三层循环。
又如AES算法,第一层循环是分组循环,然后每一分组进行十轮变换,这是第二层循环;最后,每一次变换都涉及到分组的每一个字节,如果硬件没有直接实现分组变换操作,那么,需要循环对每一个字节进行变换。
由上面可以看出,层层循环控制是加解密算法的一个特点。为了实现循环,一般的指令集通过比较指令,跳转指令来实现。这样,加解密需要执行很多的比较指令、跳转指令,降低了算法执行效率,程序执行的很多时间都放在了循环控制上。而本发明根据这一特点,设置了专门的控制和运算并行结构以及专有的循环控制单元,能够很好的实现循环控制。
本发明设的安全处理器结构,它支持可编程,而且易于高效实现多种密码算法,能够满足在嵌入式应用中需要快速实现多种密码算法的需求。
如图1所示,图1为本发明提供的可编程安全处理器的结构框图,该可编程安全处理器包括程序存储器10、控制堆栈11、控制译码器12、运算译码器13、RAM控制器14、运算执行器15、运算堆栈16和接口模块17。
其中,程序存储器(PC)10用于存储加解密程序,并根据接收自控制译码器12的程序计数器值选择一条指令,并将选择的指令拆分为运算指令和控制指令两部分,分别发送给运算译码器和控制译码器,即将运算指令发送给运算译码器,将控制指令发送给控制译码器。
控制堆栈11用于完成控制译码器12中寄存器和程序计数器的保存和恢复。
控制译码器12用于完成接收自程序存储器10的控制指令的译码和执行,将内部寄存器的值发送给运算译码器13和控制堆栈11,向控制堆栈11发送压栈出栈控制信号,并向运算执行器15发送分支预测指令信号。
运算译码器13用于对接收自程序存储器10的运算指令进行译码,根据译码结果和接收自控制译码器12的内部寄存器值生成源操作数地址、目的操作数地址和运算类型,将生成的源操作数地址和目的操作数地址发送给RAM控制器14,生成的运算类型发送给运算执行器15。
RAM控制器14用于根据接收自运算译码器13的操作数地址和运算结果,从RAM中读出源操作数,将目的操作数写入RAM,并根据接收自接口模块17的读写控制信号、地址信号和写入数据执行读写RAM的操作。
运算执行器15用于对接收自RAM控制器14的操作数和运算译码器13的运算类型信号执行加解密运算,将执行结果返回到RAM控制器14;并根据运算结果向控制译码器12返回分支预测结果信号,向运算堆栈16发送压栈出栈控制信号,对运算堆栈16进行压栈出栈控制。
运算堆栈16用于保存运算执行器15中寄存器的值,接受运算执行器15的压栈出栈控制。
接口模块17用于提供交互接口,实现安全处理器与外界进行的通信。
本发明提供的可编程安全处理器支持超长指令字结构,其一个特点是:一条超长指令由一条控制指令和一条运算指令组成,控制指令和运算指令相互独立。控制指令用开来控制程序流程,诸如循环控制等都放到控制指令部分来完成。运算指令用来执行基本加解密运算,不负责程序流程。与指令字结构相对应的是处理器的基本硬件装置,基本装置由控制部件和运算部件构成,它们也是并行独立运行的。
当从程序存储器取得一条超长指令后,超长指令的控制指令部分分配到的控制部件执行,运算指令部分分配到运算部件执行。两条指令并行执行,分别控制程序流程和执行加解密运算。这样做的好处在于,由于控制指令和运算指令时并行执行的,因此,循环控制不占用额外指令周期,如前文所述,密码算法的一个特点是循环控制多,占用大量的指令周期。因此采用本发明的结构,嫩大大提高密码算法的执行效率。
图2为本发明提供的可编程安全处理器中控制译码器的结构框图。所述控制译码器12包括指令译码器、累加寄存器rega、regb、regc,以及regmax、bs0、bs1、bs2、bs3和程序计数器。其中,指令译码器用于完成接收自程序存储器的控制指令的译码和执行,如果是堆栈操作指令,则向控制堆栈发送压栈出栈控制信号,并选择累加寄存器rega、regb、regc以及regmax、bs0、bs1、bs2、bs3中某一个寄存器,根据压栈出栈控制信号向控制堆栈压入或弹出数据。另外,寄存器rega、regb、regc、bs0、bs1、bs2、bs3连接到运算译码器13,用于实现地址译码。累加寄存器regc不是真正的寄存器,而是rega和regb的和,主要是为了方便寻址。
本发明提供的可编程安全处理器中控制译码器12所包括的基值寄存器regmax,以及基地址寄存器bs0、bs1、bs2和bs3用于方便寻址。为了编程灵活,能够提供灵活的寻址方式,采用的方式是基址变址寻址,8位地址码的格式如表1所示。所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3都连接于运算译码器,在译码时,运算译码器利用所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3的值生成操作数的物理地址。
7    6               5    4                3            2           1           0
  基址   变址   偏移量
  00:bs001:bs110:bs211:bs3   00:001:ixa10:jxb11:ixc 0-15
                       表1
控制译码器12通过基址寄存器regmax和累加寄存器rega、regb的设置和比较器来实现循环控制,通过比较基值寄存器regmax和累加寄存器rega、regb的值,来判定循环是否结束;为了更灵活的控制,控制译码部件还支持测试跳转指令,这一类指令需要等到运算执行器的执行结果才能知道,因此,在结构上,控制译码器向运算执行器提供测试指令类型,运算执行器向控制译码器提供测试分支预测结果,如附图1所示。
基本装置中,控制部件的设计采用一些方法,来实现程序控制特别是循环控制。密码算法的循环控制的特点是循环次数很确定,可预知。而且一旦循环次数确定后,就会执行这么多次循环,中间不会忽然终止,跳出。例如RSA算法,在执行两数相乘求模n的时候,假设两数为x和y。在RSA中,n是密钥的一部分,是一个确定的值,x,y两数都是z字节长,z是由n的大小决定的。如果计算是基于y的二进制表示,那么运算过程就要循环z×8次,显然,z×8这个值也是固定的,可预知的。循环次数的确定性,可预知性给循环控制带来了很大的方便。控制部件实现循环的具体方法是设置基数寄存器和累加寄存器,初始时,基数寄存器放入确定的循环次数值,累加寄存器的值设置为0。然后,每循环一次,通过控制指令使累加寄存器加一,并同时通过比较累加存器和基值寄存器是否相等来判断循环是否结束。
这样做的好处在于,一方面由于控制指令和运算指令时并行执行的,因此,循环控制不占用额外指令周期;另一方面,控制部件能够很容易的判断程序是否结束,能够准确的控制程序流程,而且循环判断能一拍就得出结果,而不像一般微处理器那样可能需要做分支预测或者运行空指令等待比较结果,这样也大大提高了算法执行效率。因此,控制部件的另一个特点是循环控制指令只运行一个指令周期。
如图3所示,图3为本发明提供的可编程安全处理器中运算译码器的结构框图。所述运算译码器13包括指令译码单元、地址生成单元和运算类型识别单元。其中,指令译码单元用于对接收自程序存储器的运算指令进行译码,将译码结果输出给地址生成单元和运算类型识别单元。地址生成单元用于根据接收的译码结果和接收自控制译码器的内部寄存器值生成源操作数地址和目的操作数地址,将生成的源操作数地址和目的操作数地址发送给RAM控制器。运算类型识别单元用于根据接收的译码结果和接收自控制译码器的内部寄存器值生成运算类型,将生成的运算类型发送给运算执行器。所述运算译码器生成的操作数采用基址变址寻址。
如图4所示,图4为本发明提供的可编程安全处理器中RAM控制器的结构框图。所述RAM控制器14包括选择器、地址映射单元和RAM。其中,选择器用于从接收自运算译码器、运算执行器和接口模块的地址数据中选择地址数据进行RAM操作。地址映射单元用于将选择器选择的操作数地址映射到RAM中。RAM用于根据地址映射单元映射的操作数地址写入或读出数据,并将读出的数据作为操作数发送给运算执行器。
具体的,RAM采用4体存储,每个存储体支持一读一写,这样,能够保证主要的运算指令的同时4次读写RAM的需求。RAM包括4个独立的RAM,分别为RAMA,RAMB,RAMC和RAMD,操作数地址被映射到4个RAM中的一个,这里要保证一条指令的任何两个源操作数的物理地址不能在同一个RAM中。
如图5所示,图5为本发明提供的可编程安全处理器中运算执行器的结构框图。运算执行器15配置了若干基本的密码运算,包括AES正向/逆向字节变换器、HASH压缩函数运算器、高效乘法器、ALU运算器和寄存器等。其中,HASH压缩函数运算器用于完成MD5压缩函数的4个基本逻辑函数F、G、H、I。根据需要,还可以加入更多的基本运算单元,更快的支持更多的密码运算。运算执行器中的寄存器包括ALU进位/借位标志位,两8位数相乘高字节保存寄存器。
运算执行器15通过译码得到的运算类型选择相应的运算单元,将RAM中读出的数据作为源操作数,运算结果最后存放到RAM。如果有控制译码器12送来的分支跳转指令,则检测相应的计算结果,给出是否跳转信号到控制译码器12。
本发明提供的可编程安全处理器中接口模块17实现的与外界进行的通信包括:与外界进行的加解密数据、与外界进行的密钥的输入输出或与外界进行的加解密控制等。接口模块17处理的信号包括:时钟信号、复位信号、输入输出总线、加解密开始信号、加解密结束信号或输入输出控制信号等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1、一种可编程安全处理器,其特征在于,该安全处理器包括:
程序存储器,用于存储加解密程序,并根据接收自控制译码器的程序计数器值选择一条指令,并将选择的指令分为运算指令和控制指令,分别发送给运算译码器和控制译码器;
控制堆栈,用于完成控制译码器中寄存器和程序计数器的保存和恢复;
控制译码器,用于完成接收自程序存储器的控制指令的译码和执行,将内部寄存器的值发送给运算译码器和控制堆栈,向控制堆栈发送压栈出栈控制信号,并向运算执行器发送分支预测指令信号;
运算译码器,用于对接收自程序存储器的运算指令进行译码,根据译码结果和接收自控制译码器的内部寄存器值生成源操作数地址、目的操作数地址和运算类型,将生成的源操作数地址和目的操作数地址发送给RAM控制器,生成的运算类型发送给运算执行器;
RAM控制器,用于根据接收自运算译码器的操作数地址和运算结果,从RAM中读出源操作数,将目的操作数写入RAM,并根据接收自接口模块的读写控制信号、地址信号和写入数据执行读写RAM的操作;
运算执行器,用于对接收自RAM控制器的操作数和运算译码器的运算类型信号执行加解密运算,将执行结果返回到RAM控制器;并根据运算结果向控制译码器返回分支预测结果信号,向运算堆栈发送压栈出栈控制信号,对运算堆栈进行压栈出栈控制;
运算堆栈,用于保存运算执行器中寄存器的值,接受运算执行器的压栈出栈控制;
接口模块,用于提供交互接口,实现安全处理器与外界进行的通信。
2、根据权利要求1所述的可编程安全处理器,其特征在于,所述控制译码器包括:
指令译码器,用于完成接收自程序存储器的控制指令的译码和执行,向控制堆栈发送压栈出栈控制信号,向累加寄存器rega、regb和程序计数器发送控制信号;
累加寄存器rega、regb、regc,用于根据接收自指令译码器的控制信号向控制堆栈压入或弹出数据,将保存的数据发送给运算译码器;
程序计数器,用于根据接收自指令译码器的控制信号向控制堆栈压入或弹出程序计数器值,并向程序存储器输出程序计数器值。
3、根据权利要求2所述的可编程安全处理器,其特征在于,所述控制译码器进一步包括基值寄存器regmax,以及基地址寄存器bs0、bs1、bs2和bs3,所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3都连接于运算译码器,在译码时,运算译码器利用所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3的值生成操作数的物理地址。
4、根据权利要求1所述的可编程安全处理器,其特征在于,所述运算译码器包括:
指令译码单元,用于对接收自程序存储器的运算指令进行译码,将译码结果输出给地址生成单元和运算类型识别单元;
地址生成单元,用于根据接收的译码结果和接收自控制译码器的内部寄存器值生成源操作数地址和目的操作数地址,将生成的源操作数地址和目的操作数地址发送给RAM控制器;
运算类型识别单元,用于根据接收的译码结果和接收自控制译码器的内部寄存器值生成运算类型,将生成的运算类型发送给运算执行器。
5、根据权利要求4所述的可编程安全处理器,其特征在于,所述运算译码器生成的操作数采用基址变址寻址。
6、根据权利要求1所述的可编程安全处理器,其特征在于,所述RAM控制器包括:
选择器,用于从接收自运算译码器、运算执行器和接口模块的地址数据中选择地址数据进行RAM操作;
地址映射单元,用于将选择器选择的操作数地址映射到RAM中;
RAM,用于根据地址映射单元映射的操作数地址写入或读出数据,并将读出的数据作为操作数发送给运算执行器。
7、根据权利要求6所述的可编程安全处理器,其特征在于,所述RAM包括4个独立的RAM,分别为RAMA,RAMB,RAMC和RAMD,每个RAM都支持一读一写,操作数地址被映射到4个RAM中的一个。
8、根据权利要求1所述的可编程安全处理器,其特征在于,所述运算执行器包括高级加密标准AES正向/逆向字节变换器、哈希HASH压缩函数运算器、高效乘法器、算术逻辑运算单元ALU运算器和寄存器;
所述HASH压缩函数运算器用于完成消息摘要算法MD5压缩函数的4个基本逻辑函数F、G、H、I;
所述寄存器包括ALU进位/借位标志位,两8位数相乘高字节保存寄存器。
9、根据权利要求1所述的可编程安全处理器,其特征在于,
所述接口模块实现的与外界进行的通信包括:与外界进行的加解密数据、与外界进行的密钥的输入输出或与外界进行的加解密控制;
所述接口模块处理的信号包括:时钟信号、复位信号、输入输出总线、加解密开始信号、加解密结束信号或输入输出控制信号。
CNB2006101443534A 2006-12-04 2006-12-04 一种可编程安全处理器 Expired - Fee Related CN100419776C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101443534A CN100419776C (zh) 2006-12-04 2006-12-04 一种可编程安全处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101443534A CN100419776C (zh) 2006-12-04 2006-12-04 一种可编程安全处理器

Publications (2)

Publication Number Publication Date
CN1959694A true CN1959694A (zh) 2007-05-09
CN100419776C CN100419776C (zh) 2008-09-17

Family

ID=38071385

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101443534A Expired - Fee Related CN100419776C (zh) 2006-12-04 2006-12-04 一种可编程安全处理器

Country Status (1)

Country Link
CN (1) CN100419776C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101533450B (zh) * 2008-05-24 2010-10-13 威盛电子股份有限公司 提供安全执行环境的微处理器及其执行安全编码的方法
CN104461676A (zh) * 2014-10-27 2015-03-25 杭州中天微系统有限公司 二进制转译堆栈操作加速处理方法及其处理器
CN111124499A (zh) * 2019-11-22 2020-05-08 中国科学院计算技术研究所 一种兼容多指令系统的处理器及其运行方法
CN113055165A (zh) * 2021-03-11 2021-06-29 湖南国科微电子股份有限公司 一种非对称密码算法装置、方法、设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014745A (en) * 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US7073069B1 (en) * 1999-05-07 2006-07-04 Infineon Technologies Ag Apparatus and method for a programmable security processor
US6308256B1 (en) * 1999-08-18 2001-10-23 Sun Microsystems, Inc. Secure execution of program instructions provided by network interactions with processor
CN1234079C (zh) * 2002-10-31 2005-12-28 浙江大学 高速信息安全处理器
CN100447763C (zh) * 2003-05-29 2008-12-31 联想(北京)有限公司 一种安全芯片及基于该芯片的信息安全处理设备和方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101533450B (zh) * 2008-05-24 2010-10-13 威盛电子股份有限公司 提供安全执行环境的微处理器及其执行安全编码的方法
CN104461676A (zh) * 2014-10-27 2015-03-25 杭州中天微系统有限公司 二进制转译堆栈操作加速处理方法及其处理器
CN104461676B (zh) * 2014-10-27 2017-09-08 杭州中天微系统有限公司 二进制转译堆栈操作加速处理方法及其处理器
CN111124499A (zh) * 2019-11-22 2020-05-08 中国科学院计算技术研究所 一种兼容多指令系统的处理器及其运行方法
CN111124499B (zh) * 2019-11-22 2022-11-01 中国科学院计算技术研究所 一种兼容多指令系统的处理器及其运行方法
CN113055165A (zh) * 2021-03-11 2021-06-29 湖南国科微电子股份有限公司 一种非对称密码算法装置、方法、设备及存储介质

Also Published As

Publication number Publication date
CN100419776C (zh) 2008-09-17

Similar Documents

Publication Publication Date Title
US20200364045A1 (en) Apparatus and method for adaptable and efficient lane-wise tensor processing
CN1286002C (zh) 执行部分宽度压缩数据指令的装置和方法
US10275247B2 (en) Apparatuses and methods to accelerate vector multiplication of vector elements having matching indices
US20190042269A1 (en) Apparatus and method for gang invariant operation optimizations
CN108351786B (zh) 在指令集架构中对数据进行排序并且合并经排序数据
TWI517038B (zh) 用於在多維度陣列中之元件偏移計算的指令
CN104049954B (zh) 多数据元素与多数据元素比较处理器、方法、系统和指令
KR102393151B1 (ko) 데이터의 액세스를 예측하는 장치, 그것의 동작 방법 및 그것을 포함하는 시스템
CN105051743A (zh) 用于处理安全哈希算法的指令处理器、方法、和系统
US10831505B2 (en) Architecture and method for data parallel single program multiple data (SPMD) execution
KR101856833B1 (ko) 레지스터들의 세트를 복수의 소형 레지스터들 또는 조합된 대형 레지스터들로서 액세스하는 프로세서들, 방법들, 및 시스템들
CN107077321A (zh) 用于执行融合的单个周期递增‑比较‑跳转的指令和逻辑
US10915328B2 (en) Apparatus and method for a high throughput parallel co-processor and interconnect with low offload latency
TW202139038A (zh) 基於動態金鑰推衍的多金鑰總記憶體加密方法及設備
CN104025033A (zh) 利用控制操纵的simd可变移位和循环
CN1959694A (zh) 一种可编程安全处理器
WO2013032446A1 (en) Hardware-based array compression
US20200117811A1 (en) Processor hardware and instructions for sha3 cryptographic operations
CN109196467A (zh) 将源封包数据划分为通路的处理器、方法、系统和指令
CN103946795A (zh) 用于生成循环对齐计数或循环对齐掩码的系统、装置和方法
KR20160079038A (ko) Rsa 알고리즘 가속 프로세서들, 방법들, 시스템들 및 명령어들
US10318834B2 (en) Optimized image feature extraction
WO2021023957A1 (en) Data processing
CN108733412B (zh) 一种运算装置和方法
CN113268270B (zh) 一种针对成对隐马尔可夫模型的加速方法、系统及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080917

Termination date: 20141204

EXPY Termination of patent right or utility model