信息社会中,基于密码算法设计的安全芯片,能够为用户的敏感信息提供有效的机密性与完整性保护。信息化的不断深入使得人们对信息安全服务的需求呈现使用简单化、功能多样化、高度集成化等趋势。这要求安全芯片在单一的硬件平台上,最大限度地提供多样的密码服务,并且具备标准统一的对外服务接口。功能多样化与高度集成化,已经成为当前以及今后安全芯片设计的必然要求。
安全芯片的功能多样化设计要求可以由软件方式实现,也可通过集成多个硬件密码算法IP核完成。由于密码算法IP核集成安全性较高,在向外提供密码服务时,数据处理速度较快,且不占用主控制器运算资源,相对于软件实现方法,更适合于安全芯片的实际应用需要。因此,在已有的多功能安全芯片设计中,一般采取多密码算法IP核集成,实现安全芯片功能多样化。
1 密码算法多IP核集成要求及方法
在单一硬件平台上集成多个密码算法IP核,需要满足三条基本设计要求:
第一,硬件平台运行频率与IP核运算频率的不一致要求。通常情况下,设计者在进行IP核实现时,出于数据处理速度的需要,一般都会尽量提高IP核运算频率,以实现对数据的高速处理。要求硬件平台与IP核具备同样的时钟频率是不现实的,因为硬件平台的运行频率往往依赖于这一平台所采用的主控制器运行频率,而要提高主控制器的运行频率,以达到与不同IP核运算频率一致,不具有实际可行性。在具体实现多IP核集成时,密码算法IP核运算频率会远高于硬件平台的运行频率,各IP核的运算频率也不尽相同。因此,要实现IP核与硬件平台挂接集成,需首先解决硬件平台与IP核的时钟不一致问题。
第二,硬件平台与IP核、不同IP核之间处理数据位宽的不一致要求。同样是出于提高数据处理速度考虑,设计者在设计IP核时,一般采用较大的数据位宽。实现不同数据位宽的转换,是IP核能否正确处理数据的基本条件。
第三,能够灵活调用不同IP核的功能,对目标数据进行相应处理。单一硬件平台与多IP核的挂接集成,需要相应机制来最终实现对不同IP核功能的灵活调用。通过IP功能调用机制,硬件平台可以完成多个IP核对不同数据的同步运算处理,也可以单独调用某一IP核进行数据处理。
基于上述多IP核集成设计要求,当前文献中已有的实现方法主要有:
方法一,使用第三方专用系统总线,实现多IP核集成。采用第三方专用系统总线,将不同IP核与总线挂接,实现多IP核集成。其优点在于:专用系统总线功能强大,支持不同频率、不同端口的IP核集成,能够进行多个IP核对不同数据的同步运算处理,便于系统设计与实现。但由于需要采用第三方总线,因而芯片的研发成本会相应增加。
方法二,为每个IP核配备专用双端口数据存储器,实现多IP核集成。采用配备双端口存储器可以满足硬件平台与IP核异频处理要求,能够实现不同数据位宽之间的转换,能够进行多个IP核对不同数据的同步运算处理。在进行系统前端设计时,设计简单且实现方便。但由于密码服务是一个有序的过程,为每个IP核均配备专用存储区,会造成系统资源浪费,且极大地增加了芯片后端设计中的布局布线难度。
在分析上述两种集成方法基础上,本文基于方法二,给出了一种改进的多IP核集成设计方法。方法采用IP桥接技术,将同一双端口存储器与不同IP核进行动态重构,实现多IP核集成。与方法一相比,采用IP桥接技术实现多IP核集成可以显著减少芯片的研发成本;与方法二相比,改进方法不仅能够有效整合芯片内部资源,还可以降低系统功耗,提高芯片的整体性能。
2 IP桥接技术设计原理与具体实现
IP桥接技术的核心是IP桥(IP_bridge)的设计与实现。IP_bridge是主控制器与各IP核协处理器的连接桥梁,同时也是各IP核协处理器与专用双端口存储器的连接桥梁。
2.1 IP桥接技术设计原理
IP_bridge是IP桥接技术设计与实现的核心,是主控制器与各IP核协处理器,以及各IP核协处理器与专用双端口存储器之间的连接桥梁。为实现这一目的,IP_bridge需完成以下功能:IP核选择参数译码;不同IP核与同一数据处理区的动态可重构;根据IP选择参数,配置选定IP核控制指令与运行时钟。
在IP_bridge满足上述设计要求的前提下,IP桥接技术具体设计原理可作如下表述:将各IP核与IP_bridge、dual_ramx(双端口存储区)整合为系统的一个密码算法IP核重构模块,模块输入为系统输出数据、地址、读/写使能、系统时钟与IP时钟、IP控制指令与IP选择参数,输出为 IP核处理完成数据与协处理器运行状态标识。
在系统对某一IP核功能进行调用时,密码算法IP核重构模块按如下步骤进行操作:a.根据系统的输入地址与读/写使能,将输入的待处理数据存储于 dual_ramx中;b.IP桥译码IP选择参数,重构选定IP核控制指令为输入的IP控制指令,dual_ramx为选定IP核数据处理区.c.选定 IP核将duaLramx中数据读入IP核内部,根据IP控制指令,完成数据处理;d.选定IP核将已处理数据输出到dual_ramx中,置相应状态完成信号为有效.e.系统判断状态信号有效,通过dual_ramx将处理完成数据读出,完成IP功能调用。
与本文第一部分中方法二相比较,IP桥接技术增加了IP_bridge对选定IP核重构数据处理区与控制指令这一过程。该设计可以实现不同IP核与 dual_ramx的动态重构,通过引入IP桥,对IP核调用指令进行解释,进而配置被调用IP核的地址、数据、指令与时钟等各种接口信号,完成系统对 IP核的功能调用。不同IP核与同一数据处理区的动态可重构可以有效节省片内存储资源,提高存储区利用效率。
采用IP桥接技术实现密码算法多IP核集成,不仅可能节省系统资源消耗,在密码服务提供方面也具有一定优势。密码服务通常是一个有序的过程,在提供密码服务时,由于减少了在不同IP专用数据处理区之间的数据转移操作,因而可以有效提高系统对数据的处理效率。例如,在完成一次签名服务时,一般先对签名数据进行杂凑值运算,再调用公钥密码算法对杂凑结果进行签名,完成对签名数据的签名服务。在这一过程中,将签名服务作为一个完整的基本服务功能进行调用,系统将签名数据写入dual_ramx后,仅需完成对IP选择参数的配置与完成信号的判断操作,便可实现数据签名,极大地简化了系统在向外提供密码服务时的软件控制过程,提高了服务的完成效率。相比较于方法二,所要完成的密码服务越复杂,这一优势越明显。
2.2 IP桥接技术具体实现
以2.1中IP桥接技术设计原理为指导,本文在一个8位SoC系统上实现了TDES、SHA1、RSA三个IP核的系统集成设计。为简化 IP_bridge设计,三个IP核的数据位宽均统一为32位,执行频率统一为50 MHz。图1为密码算法IP核重构区RTL图。
如图1所示,密码算法IP核重构区由TDES、SHA1、RSA三个IP核与IP_bridge、asis_ramx共同构成,根据输入的控制参数,完成同一双端口存储区与不同IP核之间的动态重构。其输入输出如表1所列。
以调用SHA1为例,系统完成对数据块杂凑值计算的操作步骤为:
①MCU执行指令
MOV FUNCCHOOSE,#05H
选择当前调用IP核为SHA1。
②将一个16字节待处理数据块输入双端口存储区asis_ramx中,此时输入数据长度必须为16字节。
③执行指令
MOV INSTUCT,#80H
MOV INSTRUCT,#01H
前一条指令将SHA1进行复位,后一条指令使能SHA1,将待处理数据读入IP核内部寄存器,进而对其进行SHA1运算处理。
④对FUNCSTATE最低位进行判断,为1时输入下一个16字节数据块,执行指令
MOV INSTRUCT,#01H
复位SHA1完成信号,继续进行SHA1运算处理。
⑤最后一个16字节数据块输入,执行指令
MOV INSTRUCT,#01H
判断FUNCSTATE最低位,为1时读出双端口存储区中处理完成数据。
⑥执行指令
MOV INSTRUCT,#00H
关闭SHA1协处理器,完成SHA1调用。
对TDES及RSA的功能调用类似于SHA1,仅在指令配置时稍有不同。TDES增加了密钥生成过程的指令配置与完成信号判断,RSA增加了对模长与模幂的参数配置。由上可知,与方法二相比较,IP桥接技术在调用实现IP核功能时,需要增加的仅为一条IP选择参数配置指令。
3 测试与仿真
本文采用软件仿真与FPGA下载测试两种手段,对2.2中的设计进行了功能正确性验证。图2给出了该设计中IP_bridge在quartus II 5.0下的仿真波形图。
在图2中,FUNCCHOOSE为系统功能区的IP选择参数输入,INSTRUCT为IP控制指令。当IP选择参数值为07H、06H、05H时,对应的选定IP为RSA、TDES、SHA1。以选定SHA1为例,当IP选择参数为05H时,IP_bridge模块重构asis_ramx为SHA1专用数据处理区,且此时SHA1控制指令shal_instruct_o被配置为当前IN-STRUCT值,完成对SHA1的接口配置;当IP选择参数为 06H、07H时,IP_bridge置SHA1控制指令shal_in-struct_o为00H,使SHA1协处理器处于休眠状态。对 IP_bridge仿真波形图的分析表明,其逻辑功能正确。由于在初次FPGA下载测试时发现,允许IP_bridge对IP核进行时钟配置会导致协处理器功能不稳定,因而取消了IP_bridge的IP核时钟配置功能。除此以外,其余部分均满足本文2.1中的功能要求。
为进一步验证设计的正确性,本文选用Altera公司Cyclone II系列EP2C35F672C6器件,对其进行了FPGA下载测试。在初次测试时发现,各IP核虽然可以完成功能调用,但执行结果不稳定,测试结果的最后5~10字节与标准测试对的结果不符。经分析发现,导致IP核功能错误的原因为IP_bridge在对时钟进行配置时,会产生时钟延迟。因此,取消了 IP_bridge的时钟配置功能,在Qu-artus II 5.0下进行编译仿真与综合下载,再次进行FPGA下载测试。测试结果显示,各IP核功能均正确无误。采用选定器件,IP_bridge逻辑资源消耗为 200 LE,最大路径延迟为16.838 ns。
结 语
本文在总结多IP核集成设计方法的基础上,提出了一种IP桥接技术,用于实现多IP核集成;并以其为指导,基于一个8位SoC系统,具体实现了三个IP核集成。功能仿真与FPGA测试表明该技术具备实际可行性,且相比较于现有多IP核集成方法,IP桥接技术具备可有效提高片内资源利用率,降低系统功耗与开发成本等优势;其缺点在于,当不同IP核的数据接口不一致时,IP_bridge的逻辑设计会比较复杂,且不能实现对IP核的变频时钟配置。初步分析表明,通过修改IP核的双端口存储区数据写入环节,延长数据写入完成至done信号有效这一时间段,可解决这一问题。方法的有效性检测与具体实现,是笔者下一步工作的重点研究内容。