[发明专利]一种用于密码学运算的微处理器内核有效
申请号: | 200610112542.3 | 申请日: | 2006-08-23 |
公开(公告)号: | CN101131719A | 公开(公告)日: | 2008-02-27 |
发明(设计)人: | 杨湘渝;王晓丹;黄钧;侯书郡;徐磊;陈冈 | 申请(专利权)人: | 北京同方微电子有限公司 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F15/76 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100083北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 密码学 运算 微处理器 内核 | ||
技术领域
本发明涉及信息安全领域的密码学技术,特别是用于密码学运算的微处理器内核。
背景技术
密码学是现代信息技术中的一项基础技术,广泛应用于数据加密、身份识别、电子交易等涉及信息安全的各个领域,高效、安全的密码学运算功能是组成一个安全系统的重要部件。基本的密码学算法大致可以分为对称密钥算法(如DES和AES)、非对称密钥算法(如RSA和ECC)、文摘算法(如MD5和SHA-1),这几类算法在现代安全系统(例如公共密钥架构,PKI)中都是必不可少的运算功能。
现有技术中,一般的密码学算法的共同特点是:1)算法的程序规模小,流程、结构简单,通常的算法都是以相同或相近的处理流程进行若干次循环。2)算法的数据规模小,但访问密度大。待处理的数据一般为几个至几十个字,程序反复的对其读取、运算和回写。3)算法中既会用到普通处理器的算术逻辑功能,例如加、减、移位、逻辑等操作,同时也可能用到特定算法所要求的特殊运算功能。普通的处理器指令都不直接提供特殊运算功能,而用硬件则非常容易实现,例如DES中的置位操作,用硬件实现只需若干连线,但用软件实现则需要大量的代码。所以说,密码学算法的软件实现和硬件实现各有其优缺点。
在软件实现方式中,算法程序与系统的其它程序运行在同一个通用的处理器上,其优点是成本低(仅仅是密码学软件开发成本),程序便于移植,便于实现多种算法,以及算法功能灵活(参数易于设置),缺点是程序只能使用通用的指令,实现特殊运算功能代价大,而且一条指令只能完成单一的功能,无法做到在硬件实现中常用的并行流水线处理方式,因此运算速度低;同时,由于密码学程序和其它程序运行在同一处理器上,密钥和数据都存储在普通存储器中,易于受到攻击,安全性低;另外也无法在嵌入式应用中使用(如智能卡)。
在硬件实现方式中,专用的硬件模块实现所需的密码学算法,可以根据算法特点将若干子步骤进行并行和流水线处理,从而大大提供运算速度;同时密码学运算是在硬件内部完成,不易受到外部攻击,安全性高;缺点是硬件加速模块通常只针对一种加密算法设计,而且算法的参数不易改变(例如,对于RSA算法只能提供固定长度的运算),缺乏灵活性和通用性。另外,当需要多种算法就必须针对各种算法设计各自的加速硬件,不同硬件内的相同或相似功能难以共享,使得系统的成本变高。
发明内容
为了克服上述现有技术中的缺点,本发明的目的是提供一种用于密码学运算的微处理器内核。它通过软硬件结合的方式,既可以获得较高的运算速度,又能获得算法功能的灵活性和通用性,具有成本低,性能高,功能可配置,灵活通用的特点。
为了达到上述发明目的,本发明的技术方案以如下方式实现:
一种用于密码学运算的微处理器内核,它与程序存储器及数据存储器相互连接,用于加速密码学的运算。其结构特点是,它包括:
指令寄存器,存储当前执行的程序指令字并将指令发送给指令译码单元;
指令译码单元,译码并执行指令寄存器中的程序指令字,生成对微处理器内核中各部分电路的控制信号;
寄存器堆,包括程序计数器、堆栈指针、数据指针、加速模块指针、数据寄存器、索引寄存器、比较寄存器和位寄存器;
数据运算单元,对寄存器堆中的寄存器进行各种运算操作;
程序地址产生单元,产生下一条程序指令在程序存储器中的存储地址;
程序存储器接口,实现指令寄存器或数据寄存器从程序存储器的数据读取;
数据存储器接口,实现数据寄存器和数据存储器之间的数据交换;
密码学加速模块接口,实现数据寄存器和密码学加速模块之间的数据交换;
密码学加速模块,包含一个供DES程序调用的DES算法加速模块,实现DES算法硬件加速功能;还包含一个供AES算法程序调用的AES算法加速模块,实现AES算法硬件加速功能。
在上述的微处理器内核中,所述指令译码单元的子单元包括:
程序控制子指令译码单元,译码并执行挂起指令、绝对地址跳转指令、程序调用指令和程序返回指令;
存储器访问子指令译码单元,译码并执行存储器读子指令和存储器写子指令;
加速模块访问子指令译码单元,生成目标地址,并将数据输入到相应的加速模块,将运算结果存储到数据寄存器;
寄存器拷贝子指令译码单元,执行数据寄存器拷贝子指令、指针拷贝子指令和索引拷贝子指令;
算术逻辑子指令译码单元,对一个或两个数据寄存器进行数学或逻辑运算;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京同方微电子有限公司,未经北京同方微电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610112542.3/2.html,转载请声明来源钻瓜专利网。