CN111324383B - 一种基于risc-v指令扩展的安全协处理器结构 - Google Patents

一种基于risc-v指令扩展的安全协处理器结构 Download PDF

Info

Publication number
CN111324383B
CN111324383B CN202010131301.3A CN202010131301A CN111324383B CN 111324383 B CN111324383 B CN 111324383B CN 202010131301 A CN202010131301 A CN 202010131301A CN 111324383 B CN111324383 B CN 111324383B
Authority
CN
China
Prior art keywords
data
instruction
stage
execution unit
instruction execution
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.)
Active
Application number
CN202010131301.3A
Other languages
English (en)
Other versions
CN111324383A (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.)
Xian Microelectronics Technology Institute
Original Assignee
Xian Microelectronics Technology Institute
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 Xian Microelectronics Technology Institute filed Critical Xian Microelectronics Technology Institute
Priority to CN202010131301.3A priority Critical patent/CN111324383B/zh
Publication of CN111324383A publication Critical patent/CN111324383A/zh
Application granted granted Critical
Publication of CN111324383B publication Critical patent/CN111324383B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种基于RISC‑V指令扩展的安全协处理器结构,专用指令执行单元和通用指令执行单元分别与输出结果控制连接,处理器主流水线译码级给出的安全指令编码逻辑根据指令编码进行详细译码并将指令发送给专用指令执行单元或通用指令执行单元,指令执行完毕后通过输出结果控制逻辑将运算结果输出给处理器主流水线的写回级,由处理器主流水线实现通用寄存器的写回操作。本发明不仅避免了指令集授权问题,同时有效降低了对原始处理器的侵入性,并且扩大了对加解密算法的适用范围,具有较高的应用价值。

Description

一种基于RISC-V指令扩展的安全协处理器结构
技术领域
本发明属于集成电路设计与处理器设计技术领域,具体涉及一种基于RISC-V指令扩展的安全协处理器结构。
背景技术
以航天航空应用为代表的军事应用领域,面临着越来越严重的信息安全威胁,恶意攻击者可以利用多种手段对核心电子系统进行监听,从而达到窃取或篡改关键军事信息的目的。当前,嵌入式系统由于指令和数据大多存储于外部SRAM或DRAM中,因此通过在电路板增加少量的硬件改动,即可完成对存储总线上数据的截获,甚至反向实现数据修改。基于该现实需求,片外存储器中程序和数据均需加密处理,这就需要处理器能够对程序数据进行解码,并将运算后的数据再次编码写回片外,保证有效数据仅在芯片内部传输,降低信息泄露的风险。安全处理器就是为了解决上述问题而提出,这其中核心部分就是数据加解密实现策略,因此也产生了不同的解决方案。
一般的,采用软件机制实现加解密过程可以不改变芯片的硬件结构,成本开销最小且通用性强,但是该方法受限于指令集的操作粒度及硬件体系结构,运行效率极低,应用领域受限严重。从硬件层面设计安全处理器,主要有几种形式:
(1)“标准指令+总线IP”,该方案硬件实现最为简单,例如王剑非等人发表的《用于加解密流程控制的协处理器》,这种方案只需要单独设计若干加解密IP并配备标准的总线接口,就可以自然挂接集成到处理器系统中,同时由于不涉及对指令集的修改,因此不需要修改编译器,但是该结构存在性能瓶颈,主要由于IP的控制以及原文/密文的传输均要由处理器管控,且每次操作都要经过系统总线,效率往往达不到预期;
(2)“指令扩展+定制执行单元”,这种形式则是从最底层对处理器进行定制修改,首先基于商用指令集进行指令扩展,然后在流水线的执行级设计对应的执行单元,这种方法从软件角度而言,涉及到商用指令集的授权问题,而从硬件角度而言,对流水线的大幅度修改将引发验证覆盖率的充分性问题,从应用针对性而言,它仅针对一种加密算法进行定制化设计,其通用性和普适性均较差;
(3)“指令扩展+协处理器”同样在商用指令集基础上进行指令扩展,但是它并不修改原处理器流水线结构,而是在流水线外集成一个独立的加速引擎,因不改动主流水线结构,因此功能复杂度较低,但是仍旧存在授权和通用性的问题。
基于上述指令集授权、硬件设计复杂度、算法通用性三个层面的问题,需要寻求一种新的安全处理器设计方法和结构。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于RISC-V指令扩展的安全协处理器结构,利用开源指令集进行自定义扩展,对常用的对称分组加解密算法进行归纳和提取,并设计面向微操作的安全协处理器与流水线紧耦合集成,具有非常大的应用价值。
本发明采用以下技术方案:
一种基于RISC-V指令扩展的安全协处理器结构,包括专用指令执行单元和通用指令执行单元,专用指令执行单元和通用指令执行单元分别与输出结果控制连接,处理器主流水线译码级给出的安全指令编码逻辑根据指令编码进行详细译码并将指令发送给专用指令执行单元或通用指令执行单元,指令执行完毕后通过输出结果控制逻辑将运算结果输出给处理器主流水线的写回级,由处理器主流水线实现通用寄存器的写回操作。
具体的,专用指令执行单元包括AES和DES算法运算阵列、密钥控制逻辑、数据控制逻辑以及模式控制逻辑;AES和DES算法运算阵列用于实现轮密钥加、行移位、列混合AES算法基本运算以及IP置换、IP逆置换、E置换、P置换、PC-1置换和PC-2置换DES算法基本运算,并通过控制S-box指令执行单元实现AES和DES算法的S-box替换运算。
进一步的,专用指令执行单元包括单步模式和流模式两种运行模式;在专用指令执行单元执行指令前,首先需要用cryptcw和cryptcr指令进行配置;
在单步模式下,专用指令执行单元根据安全指令译码逻辑的译码结果选择执行轮密钥加、行移位、列混合、IP置换、IP逆置换、E置换、P置换、PC-1置换或PC-2置换操作;
在流模式下,需使用cryptcw、cryptcr指令对专用指令执行单元进行配置,流模式控制逻辑根据配置信息构建AES运算流水线或DES流水线以实现DataBuffer内数据的AES/DES加解密运算。
更进一步的,在进行流模式运算前,首先需要配置密钥并执行密钥扩展指令keygen进行密钥扩展,然后执行autold→autocrypt→autost的流模式运算;当执行autold指令时,存储访问控制逻辑将存储系统的批量数据载入DataBuffer;当流模式运算指令autocrypt执行时,将DataBuffer内的数据输入到AES/DES运算流水线进行AES/DES加解密运算,运算结束后将数据写入DataBuffer;当执行autost指令时,存储访问控制逻辑将DataBuffer内的数据写入存储系统。
更进一步的,AES运算流水线或DES流水线包括:AES128、AES192、AES256和DES的加/解密运算流水线;AES128、AES192、AES256的加密流水线由读数据级、Bsub级、Shift级、Mix级、Add级和写数据级组成;AES128、AES192、AES256的解密流水线由读数据级、Mix级、Shift级、Bsub级、Add级和写数据级组成;DES加解密流水线由读数据级、E置换级、密钥加级、S-box替换级、P置换级和写数据级组成;在AES运算前,首先对DataBuffer内的数据进行轮密钥加运算,进行DES运算前首先需要对DataBuffer内的数据进行IP置换运算且在运算完毕后将数据写入DataBuffer前进行IP逆置换;AES运算的轮密钥加、DES算法的IP置换运算融合在读数据级中,DES运算的IP逆置换操作融合在写数据级。
进一步的,S-box替换具体为:
通过存储体分组变形方式实现可配置的S-box指令执行单元,设将16个LUT从右向左依次为0,1,2,…13,14,15排列,第i个LUT的地址addr[i]按以下规则生成:
如果当前操作为LUT配置操作,则addr[i]=rs1[7:0];
如果当前操作为sbox4t4,则addr[i]=rs1[4i+3:4i],i=0,1,...,15;
如果当前操作为sbox8t8,则
Figure BDA0002395840510000041
如果当前操作为sbox6t4,则
Figure BDA0002395840510000042
如果当前操作为sbox8t32,则
Figure BDA0002395840510000043
在进行sbox替换操作时,16个LUT根据上述地址生成逻辑生成自身地址,读取存储内容后将16个LUT的返回值拼接成为64位数据写入rd。
更进一步的,sboxcw指令实现LUT的写入,其操作数rs1的低8位为LUT地址,操作数rs2为写入LUT的值;
sboxcr指令实现LUT的读取,其操作数rs1的低8位为LUT地址,读出的LUT值写入rd;
sbox4t4实现16个4-4数据替换,sbox8t8实现8个8-8数据替换,操作数rs1为输入数据,输出数据写入rd;
sbox6t4实现了16个6-4数据替换,其输入数据为rs1[47:0]与rs2[47:0]的组合,输出数据写入rd;
sbox8t32实现2个8-32数据替换,其输入数据为rs1[15:0],输出数据写入rd。
进一步的,密钥控制逻辑用于实现流模式下的AES/DES密钥存储、子密钥生成、子密钥运算功能;数据控制逻辑用于实现单步模式下的数据存储和流模式下,快速访存批量数据处理功能;模式控制逻辑用于实现专用指令执行单元的模式切换及控制功能。
具体的,通用指令执行单元包括移位指令执行单元、比特换位指令执行单元、模运算指令执行单元和S-box指令执行单元,用于实现移位、比特换位、模运算以及S-box对称加密算法操作。
进一步的,S-box替换指令执行单元由地址产生逻辑和LUT两部分组成,当执行S-box时首先根据输入数据产生所有LUT的查找地址,然后根据查找地址读出LUT的相应值后组成输出数据;S-box替换指令执行单元的16个LUT根据所执行的指令进行不同的分组,以实现多种S-box替换指令。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种基于RISC-V指令扩展的安全协处理器结构,基于开源RISC-V指令的可扩展性,充分挖掘对称分组加密算法的共性特点,提取出70条扩展指令,能够适用于包括AES和DES多种加解密算法应用,具有较好的通用性,这种结构对原始处理器的侵入性最小,同时,在S-box实现形式上提出一种可伸缩的存储器复用机制,有效节省了资源开销。
进一步的,针对通用的AES和DES加密算法,在安全协处理器中设置专用指令执行单元以提高安全协处理器应用AES和DES加密算法进行数据加密的效率。
进一步的,针对扩展指令设计了一种安全协处理器,它具有两种工作模式:在流模式下,可以针对AES和DES快速执行批量数据处理,在单步模式下,可以基于扩展指令构建其它相关算法以实现硬件功效的最大化。这种设计形式使得整体结构兼具了高效率和通用性。
进一步的,针对流模式提出一种流水化引擎加速机制,通过将冗余运算逻辑进行裁剪,使得硬件资源成本压缩90%,同时充分挖掘流水线的时空特性,将加解密性能提升至理论峰值,达到了较高的效费比。
进一步的,为了进一步降低由于加解密算法普适性带来的资源开销,对加速器中开销最大的S-BOX进行优化,通过对存储器的分组变形,满足了AES和DES两种算法的共同资源需求,有效避免了资源的冗余浪费。
进一步的,为了使安全协处理器能够适应更多的加密算法、扩展其应用范围,本发明总结归纳多条通用加解密指令并设置相应的通用指令执行单元。
综上所述,本发明不仅避免了指令集授权问题,同时有效降低了对原始处理器的侵入性,并且扩大了对加解密算法的适用范围,具有较高的应用价值。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为基于RISC-V指令扩展的安全协处理器结构图;
图2为流模式AES128加密流水线及运算流程示意图;
图3为S-box指令执行流程示意图;
图4为RISC-V指令集的custom0扩展指令的格式。
具体实施方式
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本发明提供了一种基于RISC-V指令扩展的安全协处理器结构,采用目前开源指令集RISC-V提供的用户可扩展能力,通过对主流的多种对称分组加解密算法进行归纳和提取,构建一种兼具流模式和单步模式的安全协处理器,这种结构对原始处理器的侵入性最小,同时,在S-box实现形式上提出一种可伸缩的存储器复用机制,有效节省了资源开销。本发明所提技术不仅避免了指令集授权问题,同时有效降低了对原始处理器的侵入性,并且扩大了对加解密算法的适用范围,具有较高的应用价值。
请参阅图1,本发明一种基于RISC-V指令扩展的安全协处理器结构,包括安全指令译码逻辑、通用指令执行单元、专用指令执行单元和输出结果控制逻辑。
安全协处理器结构接收处理器主流水线译码级给出的安全指令编码,安全指令译码逻辑根据指令编码进行详细译码并将指令发送给专用指令执行单元或通用指令执行单元,指令执行完毕后通过输出结果控制逻辑将运算结果输出给处理器主流水线的写回级,由处理器主流水线实现通用寄存器的写回操作。
通用指令执行单元用于执行对称加密算法中常用的移位、比特换位、模运算以及S-box替换指令。
请参阅图3,S-box替换指令执行单元由地址产生逻辑和LUT两部分组成,当执行S-box时首先根据输入数据产生所有LUT的查找地址,然后根据查找地址读出LUT的相应值后组成输出数据。该S-box替换指令执行单元的16个LUT根据所执行的指令进行不同的分组,以实现多种S-box替换指令。
请参阅图2,专用指令执行单元用于执行AES和DES加密算法的基本运算并具备流模式运算能力。
专用指令执行单元包括AES和DES算法运算阵列、密钥控制逻辑、数据控制逻辑以及模式控制逻辑;AES和DES算法运算阵列用于实现轮密钥加、行移位、列混合AES算法基本运算以及IP置换、IP逆置换、E置换、P置换、PC-1置换和PC-2置换DES算法基本运算,并通过控制S-box指令执行单元实现AES和DES算法的S-box替换运算。
专用指令执行单元包括单步模式和流模式两种运行模式;在专用指令执行单元执行指令前,首先需要用cryptcw和cryptcr指令进行配置;
在单步模式下,专用指令执行单元根据安全指令译码逻辑的译码结果选择执行轮密钥加、行移位、列混合、IP置换、IP逆置换、E置换、P置换、PC-1置换或PC-2置换操作;
在流模式下,需使用cryptcw、cryptcr指令对专用指令执行单元进行配置,流模式控制逻辑根据配置信息构建AES运算流水线或DES流水线以实现DataBuffer内数据的AES/DES加解密运算。
在进行流模式运算前,首先需要配置密钥并执行密钥扩展指令keygen进行密钥扩展,然后执行autold→autocrypt→autost的流模式运算;当执行autold指令时,存储访问控制逻辑将存储系统的批量数据载入DataBuffer;当流模式运算指令autocrypt执行时,将DataBuffer内的数据输入到AES/DES运算流水线进行AES/DES加解密运算,运算结束后将数据写入DataBuffer;当执行autost指令时,存储访问控制逻辑将DataBuffer内的数据写入存储系统。
S-box替换在多种对称加解密算法中应用,是典型的非线性运算。该加解密协处理器基于16个256×4bit的查找表(LUT)实现了对称密码算法常用的sbox替换指令。为降低S-box指令普适性带来的资源开销,本发明通过存储体分组变形方式实现可配置的S-box指令执行单元。
sboxcw指令实现LUT的写入,其操作数rs1的低8位为LUT地址,操作数rs2为写入LUT的值。
sboxcr指令实现LUT的读取,其操作数rs1的低8位为LUT地址,读出的LUT值写入rd。
sbox4t4实现16个4-4数据替换;
sbox8t8实现8个8-8数据替换。
这些指令的操作数rs1为输入数据,输出数据写入rd。
sbox6t4实现16个6-4数据替换,其输入数据为rs1[47:0]与rs2[47:0]的组合,输出数据写入rd。
sbox8t32实现2个8-32数据替换,其输入数据为rs1[15:0],输出数据写入rd。
假设将16个LUT从右向左依次为0,1,2,…13,14,15排列,第i个LUT的地址addr[i]按以下规则生成:
如果当前操作为LUT配置操作,则addr[i]=rs1[7:0];
如果当前操作为sbox4t4,则addr[i]=rs1[4i+3:4i],(i=0,1,...,15);
如果当前操作为sbox8t8,则
Figure BDA0002395840510000101
如果当前操作为sbox6t4,则
Figure BDA0002395840510000102
如果当前操作为sbox8t32,则
Figure BDA0002395840510000103
在进行sbox替换操作时,16个LUT根据上述地址生成逻辑生成自身地址,读取存储内容后将16个LUT的返回值拼接成为64位数据写入rd。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实现了基于RISC-V指令集的面向安全扩展,形成70条扩展加解密指令。在硬件设计上,采用与处理器主流水线紧耦合的安全协处理器执行所扩展的安全指令。
流模式AES/DES流水线包括:
AES128、AES192、AES256和DES的加/解密运算流水线。
AES128、AES192、AES256的加密流水线由读数据级、Bsub级、Shift级、Mix级、Add级和写数据级等6级组成;
AES128、AES192、AES256的解密流水线由读数据级、Mix级、Shift级、Bsub级、Add级和写数据级等6级组成;
DES加解密流水线由读数据级、E置换级、密钥加级、S-box替换级、P置换级和写数据级等6级组成。
分析AES和DES算法发现,在运用上述流水线进行AES运算前首先需要对DataBuffer内的数据进行轮密钥加运算,进行DES运算前首先需要对DataBuffer内的数据进行IP置换运算且在运算完毕后将数据写入DataBuffer前进行IP逆置换。AES运算的轮密钥加、DES算法的IP置换运算融合在读数据级中,而DES运算的IP逆置换操作融合在写数据级,这样就能够最大程度的发挥流模式AES/DES流水线的性能。
专用指令执行单元在流模式运行时将AES或DES基本运算部件构建成所需的流模式流水线进行AES或DES加解密运算,以AES128加密流水线为例,包括读数据、字节替换、行移位、列混合、轮密钥加和写数据等6级流水。
运算开始时,读数据级每个周期将DataBuffer内的数据按顺序读出的同时进行第零轮轮密钥加运算并将其传输给后续流水级。
Bsub级、Shift级、Mix级和Add级逐步完成字节替换、行移位、列混合和轮密钥加等操作。
Add级将其运算结果传输给写数据级,写数据级将数据写入DataBuffer。
在完成第1轮读数据后,读数据级开始第2轮读数据,但此时无需进行轮密钥加,后续轮运算与第2轮运算过程相同。当完成10轮运算后写入DataBuffer的数据即为AES128加密的结果。该流水线执行n个128bit数据的AES128加密仅需要10n+5个时钟周期,而使用相同的运算部件顺序完成n个数据的AES128加密需要60n,当批量数据规模足够大时所获得的加速比接近6倍。
在兼顾安全指令通用性和专用性的基础上,本发明基于RISC-V架构32位指令集的custom0扩展指令定义包括分组加密算法常用基本运算指令和AES、DES加密算法专用运算指令构成的安全扩展指令集。
通过对主流的多种对称分组加密算法的归纳和提取,定义包括移位、S-box替换、模运算和比特换位等4类加密算法常用基本运算指令。
同时,针对应用最为广泛的AES和DES加密算法,定义单步运算指令和流模式指令等2类AES、DES加密算法专用运算指令。
RISC-V指令集的custom0扩展指令的格式如图4所示,funct7指示指令功能的操作码,rs1、rs2和rd分别指示指令的源操作数寄存器1、源操作数寄存器2和目的寄存器的寄存器号,xs1、xs2和xd分别指示指令是否需要rs1、rs2和rd。
本发明提取的对称加密算法常用基本加密运算指令的位域和功能定义如表1所示。
表1 常用基本加密运算指令的位域和功能定义
Figure BDA0002395840510000121
Figure BDA0002395840510000131
Figure BDA0002395840510000141
Figure BDA0002395840510000151
Figure BDA0002395840510000161
其中,比特置换配置寄存器共12个,地址为0~7的配置寄存器配置perm指令输出数据的每个位域所对应的输入数据位域索引值,地址为8~11的配置寄存器配置permw指令输出数据的每个位域所对应的输入数据位域索引值。
S-box指令功能描述详见本发明中对S-box模块的结构设计;
{rs1[47:0],rs2[47:0]}表示rs1的低48位和rs2的低48位拼接所组成的96位数据,本发明后续该符号含义与此相同;
msub指令的被减数为rs1的对应位域,减数为rs2的对应位域。
本发明提取的AES、DES加密算法专用指令及流模式运算指令的位域和功能定义如表2所示。
表2 AES、DES加密算法专用指令及流模式运算指令的位域和功能定
Figure BDA0002395840510000171
Figure BDA0002395840510000181
cryptcw和cryptcr指令实现下表所示寄存器的读写,操作数rs1为寄存器地址,rs2为写入数据,读出数据写入rd。
Figure BDA0002395840510000182
Figure BDA0002395840510000191
其中,控制寄存器的位域定义如下表所示:
Figure BDA0002395840510000192
所进行的S-box替换与sbox6t4指令共用一个LUT。
是否进行逆变换由控制寄存器的0位决定,该位域为1则进行逆运算。
本发明已经应用于RISC-V指令集的处理器中,并实现了安全协处理器的紧耦合集成,功能验证通过。基于本发明所提技术,实现了面向对称分组加解密算法的70条指令抽取,实现了两种工作模式的加速引擎结构设计,同时进一步压缩了整体的资源开销。该结构相对于其它安全处理器设计方法解决了指令集授权、效率、开销和通用性等问题,具有较高的实用价值。
综上所述,本发明一种基于RISC-V指令扩展的安全协处理器结构,基于RISC-V指令集进行扩展,不存在指令集授权问题。本发明归纳提取的通用加解密指令能够实现多种加解密算法的同时所实现的专用指令能够高效地实现AES和DES加密算法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

Claims (5)

1.一种基于RISC-V指令扩展的安全协处理器结构,其特征在于,包括专用指令执行单元和通用指令执行单元,专用指令执行单元和通用指令执行单元分别与输出结果控制连接,处理器主流水线译码级给出的安全指令编码逻辑根据指令编码进行详细译码并将指令发送给专用指令执行单元或通用指令执行单元,指令执行完毕后通过输出结果控制逻辑将运算结果输出给处理器主流水线的写回级,由处理器主流水线实现通用寄存器的写回操作;
专用指令执行单元包括AES和DES算法运算阵列、密钥控制逻辑、数据控制逻辑以及模式控制逻辑;AES和DES算法运算阵列用于实现轮密钥加、行移位、列混合AES算法基本运算以及IP置换、IP逆置换、E置换、P置换、PC-1置换和PC-2置换DES算法基本运算,并通过控制S-box指令执行单元实现AES和DES算法的S-box替换运算,专用指令执行单元包括单步模式和流模式两种运行模式;在专用指令执行单元执行指令前,首先需要用cryptcw和cryptcr指令进行配置;
在单步模式下,专用指令执行单元根据安全指令译码逻辑的译码结果选择执行轮密钥加、行移位、列混合、IP置换、IP逆置换、E置换、P置换、PC-1置换或PC-2置换操作;
在流模式下,需使用cryptcw、cryptcr指令对专用指令执行单元进行配置,流模式控制逻辑根据配置信息构建AES运算流水线或DES流水线以实现DataBuffer内数据的AES/DES加解密运算;
S-box替换具体为:
通过存储体分组变形方式实现可配置的S-box指令执行单元,设将16个LUT从右向左依次为0,1,2,…13,14,15排列,第i个LUT的地址addr[i]按以下规则生成:
如果当前操作为LUT配置操作,则addr[i]=rs1[7:0];
如果当前操作为sbox4t4,则addr[i]=rs1[4i+3:4i],i=0,1,...,15;
如果当前操作为sbox8t8,则
Figure FDA0003525945100000011
如果当前操作为sbox6t4,则
Figure FDA0003525945100000021
如果当前操作为sbox8t32,则
Figure FDA0003525945100000022
在进行sbox替换操作时,16个LUT根据上述地址生成逻辑生成自身地址,读取存储内容后将16个LUT的返回值拼接成为64位数据写入rd;
通用指令执行单元包括移位指令执行单元、比特换位指令执行单元、模运算指令执行单元和S-box指令执行单元,用于实现移位、比特换位、模运算以及S-box对称加密算法操作,S-box替换指令执行单元由地址产生逻辑和LUT两部分组成,当执行S-box时首先根据输入数据产生所有LUT的查找地址,然后根据查找地址读出LUT的相应值后组成输出数据;S-box替换指令执行单元的16个LUT根据所执行的指令进行不同的分组,以实现多种S-box替换指令。
2.根据权利要求1所述的基于RISC-V指令扩展的安全协处理器结构,其特征在于,在进行流模式运算前,首先需要配置密钥并执行密钥扩展指令keygen进行密钥扩展,然后执行autold→autocrypt→autost的流模式运算;当执行autold指令时,存储访问控制逻辑将存储系统的批量数据载入DataBuffer;当流模式运算指令autocrypt执行时,将DataBuffer内的数据输入到AES/DES运算流水线进行AES/DES加解密运算,运算结束后将数据写入DataBuffer;当执行autost指令时,存储访问控制逻辑将DataBuffer内的数据写入存储系统。
3.根据权利要求1所述的基于RISC-V指令扩展的安全协处理器结构,其特征在于,AES运算流水线或DES流水线包括:AES128、AES192、AES256和DES的加/解密运算流水线;AES128、AES192、AES256的加密流水线由读数据级、Bsub级、Shift级、Mix级、Add级和写数据级组成;AES128、AES192、AES256的解密流水线由读数据级、Mix级、Shift级、Bsub级、Add级和写数据级组成;DES加解密流水线由读数据级、E置换级、密钥加级、S-box替换级、P置换级和写数据级组成;在AES运算前,首先对DataBuffer内的数据进行轮密钥加运算,进行DES运算前首先需要对DataBuffer内的数据进行IP置换运算且在运算完毕后将数据写入DataBuffer前进行IP逆置换;AES运算的轮密钥加、DES算法的IP置换运算融合在读数据级中,DES运算的IP逆置换操作融合在写数据级。
4.根据权利要求1所述的基于RISC-V指令扩展的安全协处理器结构,其特征在于,sboxcw指令实现LUT的写入,其操作数rs1的低8位为LUT地址,操作数rs2为写入LUT的值;
sboxcr指令实现LUT的读取,其操作数rs1的低8位为LUT地址,读出的LUT值写入rd;
sbox4t4实现16个4-4数据替换,sbox8t8实现8个8-8数据替换,操作数rs1为输入数据,输出数据写入rd;
sbox6t4实现了16个6-4数据替换,其输入数据为rs1[47:0]与rs2[47:0]的组合,输出数据写入rd;
sbox8t32实现2个8-32数据替换,其输入数据为rs1[15:0],输出数据写入rd。
5.根据权利要求1所述的基于RISC-V指令扩展的安全协处理器结构,其特征在于,密钥控制逻辑用于实现流模式下的AES/DES密钥存储、子密钥生成、子密钥运算功能;数据控制逻辑用于实现单步模式下的数据存储和流模式下,快速访存批量数据处理功能;模式控制逻辑用于实现专用指令执行单元的模式切换及控制功能。
CN202010131301.3A 2020-02-28 2020-02-28 一种基于risc-v指令扩展的安全协处理器结构 Active CN111324383B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010131301.3A CN111324383B (zh) 2020-02-28 2020-02-28 一种基于risc-v指令扩展的安全协处理器结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010131301.3A CN111324383B (zh) 2020-02-28 2020-02-28 一种基于risc-v指令扩展的安全协处理器结构

Publications (2)

Publication Number Publication Date
CN111324383A CN111324383A (zh) 2020-06-23
CN111324383B true CN111324383B (zh) 2022-05-10

Family

ID=71169034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010131301.3A Active CN111324383B (zh) 2020-02-28 2020-02-28 一种基于risc-v指令扩展的安全协处理器结构

Country Status (1)

Country Link
CN (1) CN111324383B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181496A (zh) * 2020-09-30 2021-01-05 中国电力科学研究院有限公司 一种基于开源指令集处理器的ai扩展指令执行方法、装置、存储介质及电子设备
CN112256330B (zh) * 2020-11-03 2021-11-09 中国人民解放军军事科学院国防科技创新研究院 用于加速数字信号处理的risc-v指令集扩展方法
CN112579167A (zh) * 2020-12-15 2021-03-30 西安邮电大学 一种面向国密算法的risc-v指令集扩展方法
CN112748929A (zh) * 2021-01-15 2021-05-04 苏州浪潮智能科技有限公司 基于risc-v的格密码处理系统、方法、设备及存储介质
CN113329358B (zh) * 2021-04-29 2022-10-18 广州中国科学院软件应用技术研究所 一种基于risc-v指令集的aiot多制式边缘网关通信系统及设备
CN113193950B (zh) * 2021-07-01 2021-12-10 广东省新一代通信与网络创新研究院 数据加密方法、数据解密方法及存储介质
CN113672906B (zh) * 2021-08-17 2022-08-23 中国科学院软件研究所 基于risc-v与地址空间布局随机化的内存地址检测攻击防御方法及装置
CN114629665B (zh) * 2022-05-16 2022-07-29 百信信息技术有限公司 一种用于可信计算的硬件平台
EP4325387A1 (de) * 2022-08-19 2024-02-21 Steen Harbach AG Verfahren zum bereitstellen eines digitalen schlüssels
CN118034784A (zh) * 2024-04-08 2024-05-14 英特尔(中国)研究中心有限公司 Risc-v向量处理器和用于risc-v向量处理器的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102221990A (zh) * 2011-05-26 2011-10-19 山东大学 针对aes对称加密算法的指令优化方法及其处理器
CN110806899A (zh) * 2019-11-01 2020-02-18 西安微电子技术研究所 一种基于指令扩展的流水线紧耦合加速器接口结构

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US8194854B2 (en) * 2008-02-27 2012-06-05 Intel Corporation Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102221990A (zh) * 2011-05-26 2011-10-19 山东大学 针对aes对称加密算法的指令优化方法及其处理器
CN110806899A (zh) * 2019-11-01 2020-02-18 西安微电子技术研究所 一种基于指令扩展的流水线紧耦合加速器接口结构

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Implementation of AES algorithm using VHDL;Amit Kumar 等;《2017 International Conference on Computing Methodologies and Communication (ICCMC)》;20180208;全文 *
一种通用安全协处理器;孙季丰 等;《计算机工程》;20090216;第34卷(第22期);全文 *

Also Published As

Publication number Publication date
CN111324383A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
CN111324383B (zh) 一种基于risc-v指令扩展的安全协处理器结构
US11121856B2 (en) Unified AES-SMS4—Camellia symmetric key block cipher acceleration
Rahimunnisa et al. FPGA implementation of AES algorithm for high throughput using folded parallel architecture
Chaves et al. Reconfigurable memory based AES co-processor
CN101197660A (zh) 防攻击标准加密标准的加密方法及其加密芯片
US11700111B2 (en) Platform neutral data encryption standard (DES) cryptographic operation
Buchty et al. Cryptonite–A programmable crypto processor architecture for high-bandwidth applications
GB2551849A (en) AES hardware implementation
CN111563281A (zh) 一种支持多种加解密算法的处理器及其实现方法
CN114154640A (zh) 用于实现后量子密码Saber算法的处理器
CN111046381A (zh) 一种嵌入式cpu抗差分功耗分析装置及方法
Saarinen A lightweight isa extension for aes and sm4
Nabil et al. Design and implementation of pipelined and parallel AES encryption systems using FPGA
Li et al. Efficient implementation of lightweight block ciphers on volta and pascal architecture
Shi et al. Arbitrary bit permutations in one or two cycles
Nguyen-Hoang et al. Implementation of a 32-Bit RISC-V Processor with Cryptography Accelerators on FPGA and ASIC
CN103873229A (zh) KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法
US7254231B1 (en) Encryption/decryption instruction set enhancement
CN107203487B (zh) 一种抗功耗攻击的安全可重构架构
Sano et al. Performance Evaluation of AES Finalists on the High-End Smart Card.
Huss et al. A novel mutating runtime architecture for embedding multiple countermeasures against side-channel attacks
Panato et al. An IP of an Advanced Encryption Standard for Altera/spl trade/devices
Farmani et al. Hardware implementation of 128-Bit AES image encryption with low power techniques on FPGA
Damian et al. The effects of communication media on group performance in requirements engineering
WO2020037981A1 (zh) 一种基于双S核的8-bitAES电路

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant