论文部分内容阅读
当今社会,信息安全是一个非常重要的课题。比如随着电子文档对传统纸张文档的替代,如何保证这些电子文档的数据存放、传输安全性,如何保证这些电子文档得到有效的签名并且接收方能够辨识发送者并确信传递过来的信息没有被恶意篡改,这些都是现在研究的重要课题。这一些都依赖于密码学系统,并能够为这些问题提供合适的解决方案。
整个密码学系统依赖于加解密算法,加解密算法属于高强度复杂运算,并且不同的算法之间需要的运算法则千差万别,因此如何在单片系统上快速全面的实现常用的密码算法是摆在系统设计者前面的一个巨大的难题。
本研究介绍了一种应用于数据安全领域的安全协处理器的设计与实现,参考国内外在此方面的研究成果,通过对现有大部分加解密算法的研究,根据加解密算法中访存频繁、循环执行以及循环执行的边界跟数据运算长度存在一一对应的特性,抽象出一个快速实现该类算法的指令集。基于该指令集,能够快速简单的实现密码学领域所用到的加解密算法。
根据设计好的指令集,本文给出该指令集的一种详细实现方法。该实现具有五级流水,静态分支预测,硬件自解数据相关性等特性,从而尽快的实现算法,节省算法核心循环中的时钟节拍数。
针对该指令集以及该指令集的硬件结构实现,本文还设计了一个应用于该协处理器的一个软件模拟器,基于该模拟器能够仿真真实的硬件行为,运行所设计的汇编加解密算法,并提供丰富的调试手段以及算法性能分析功能。
通过分析所设计的安全算法的共性,设计出一种简单的See-C语言的文法,并对该文法设计了相应的编译器。
该通用安全协处理器提供相应的总线接口从而使其能够作为一个加解密算法引擎的IP核进行系统集成,并且该IP核的面积和功耗都比较小,如可集成进智能卡、无线安全终端等对功耗敏感的领域。
总体上来说,本文从软件和硬件层面上展示了一个完整的通用安全协处理器原型系统的设计。该协处理器能够快速支持AES、DES、HASH、RSA、DSA、DH、以及ECC等算法。