国产通用处理器密码算法指令实现研究.docxVIP

国产通用处理器密码算法指令实现研究.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
? ? 国产通用处理器密码算法指令实现研究* ? ? 陈子钰,何 军,郭翔宇 (上海高性能集成电路设计中心,上海 201204) 1 引言 密码安全是信息安全的基石,密码算法作为保证密码安全的关键技术已被广泛应用于信息加密传输、可信计算等领域,深刻地影响着信息安全和国家安全。因此密码算法及其执行效率是学术界研究的重点之一。采用纯软件的方式优化密码算法执行程序[1]、采用定制专用硬件电路[2]或专用处理器[3,4]实现密码算法、采用指令集架构ISA(Instruction Set Architecture)扩展[5 - 7]来支持密码算法,是当前最具代表性的3类提升密码算法执行效率的方式。纯软件优化的方式虽然灵活、成本低,但是优化空间有限且易受侧信道攻击;专用电路和专用处理器实现的方式虽然执行速度快,但成本高、灵活性和可扩展性不佳、不易与其它系统融合。相对而言,面向特定的密码算法采用指令集架构扩展的方式[8]兼顾了硬件和软件的不同特性,同时具有软件优化和硬件加速的优势。该方法既能用硬件加速执行密码算法中的关键操作,又方便软件灵活使用,可以很好地平衡密码算法执行效率与硬件开销、设计灵活性和可扩展性之间的矛盾,达到以较少的硬件资源大幅提升密码算法执行效率和降低代码占用空间的效果,还能灵活地与其他运算模块融合,实现很强的可扩展性。 高级加密标准AES(Advanced Encryption Standard)[9]和安全散列算法SHA(Secure Hash Algorithm)[10]是2种当前应用广泛且影响深远的密码算法,处理器对这2种密码算法的支持情况极大地影响着其在密码安全应用领域的竞争力。Intel X86、IBM Power和ARMv8等主流通用处理器架构中都针对AES和SHA密码算法进行了指令集扩展。基于对AES和SHA密码算法的研究,参考国内外主流通用处理器的密码指令集实现,本文采用指令集架构扩展优化的方式对AES算法和SHA进行指令扩展优化,面向国产通用处理器设计了AES和SHA密码算法扩展指令集,实现了全流水执行的AES和SHA密码算法指令部件,并进行了实现评估分析和优化,以期提高国产通用处理器执行密码算法的效率,并进一步增强国产处理器芯片在密码安全应用领域的性能和竞争力。 2 AES和SHA密码算法 当前,国际主流的密码算法主要有RSA(Rivest,Shamir,Adleman)算法、椭圆曲线ECC(Elliptic Curve enCryption)算法、高级加密标准AES和安全散列算法SHA等。其中AES算法和SHA是由美国国家标准与技术研究所NIST(National Institute of Standards and Technology)制定和发布的通用密码算法,因被广泛使用而在国际上有深远的影响。 2.1 AES算法 AES算法因具有安全性强、加密效率高、硬件开销小和灵活易用等优势已被广泛应用于信息加密和密码芯片等领域。AES算法是一种分组密码算法,其输入、输出分组和加密、解密过程中的中间分组均为128 bit,使用Nr个轮,每轮均需要一个扩展密钥Key参与(Nr取10,12或14,对应的输入密钥长度为128,192或256 bit)。受限于输入密钥的长度,AES算法在运算过程中需要进行密钥扩展(Key expansion),以生成各轮的轮密钥。AES算法的加密流程主要运用了查找SBox并进行字节置换、行变换、列混合和密钥加等4个转换操作。其中,SBox字节置换是指按设定的转换表对每个字节用SBox作一个置换进而生成状态矩阵;行变换的基本操作是循环移位(右移);列混合的基本操作是逻辑异或和定义在有限域上的多项式乘法,多项式乘法运算采用矩阵乘实现;密钥加的基本操作是逻辑异或。除最后一轮仅用3个(无列混合)转换外,每一轮都使用4个可逆的转换。解密是加密的逆过程,在此不再详述。由于AES算法加解密过程运算复杂度高,因此处理器对AES算法的支持性能成为AES算法高效运行的主要限制因素。 2.2 安全散列算法SHA SHA是一组哈希密码算法,主要用于数字签名、散列消息认证码和生成随机数等应用。安全散列标准SHS(Secure Hash Standard)FIPS 180-4规定了SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224和SHA-512/256等算法。所有的算法都是根据消息字迭代算法对应的哈希函数来产生消息Summary字,所有操作均以字为单位。SHA中的主要参数如表1所示,对于SHA-1、SHA-224和SHA-256算法,字长为32位,消息块大小为16个字(512位),其它算法字长为64位,消息块大小为16个字(1 024位)。 Table

文档评论(0)

资教之佳 + 关注
实名认证
文档贡献者

专注教学资源,助力教育转型!

版权声明书
用户编号:5301010332000022

1亿VIP精品文档

相关文档