[发明专利]一种SM3算法在JAVA环境中的实现方法及系统有效
申请号: | 201310340792.2 | 申请日: | 2013-08-07 |
公开(公告)号: | CN103425939A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 何志平 | 申请(专利权)人: | 成都卫士通信息产业股份有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F21/64;H04L9/32 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 杨永梅 |
地址: | 610041 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sm3 算法 java 环境 中的 实现 方法 系统 | ||
技术领域
本发明涉及密码与信息安全技术领域,本发明公开了一种SM3算法在JAVA环境中的实现方法及系统。
背景技术
SM3是码杂凑算法,是国家密码管理局编制的商用算法,用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。对长度为l(l< 264) 比特的消息m,SM3杂凑算法经过填充和迭代压缩,生成杂凑值,杂凑值长度为256比特。
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
然而,现有技术中的SM3算法却并不能直接在JAVA环境中实现。JAVA环境中的加密算法通过JCA和JCE来实现。
JCA是Java Cryptography Architecture的简称(Java加密框架),它是Java平台为实现密码和安全需求定义的一套完整的、独立的编程接口,它为Java环境的安全提供了全面的密码安全支撑,它们为Java应用程序加密和数字签名提供了一种统一和一致的方式。应用程序通过JCA提供的接口实现对密码算法的调用。JCA只是一套面向应用开发的统一编程接口,它不包含具体的算法实现。算法实现由它下层的JCE提供。即应用程序调用JCA接口,JCA接口再调用某一JCE,从而实现对某一加密算法的调用。
JCE是Java Cryptography Extension的简称,(Java密码扩展)提供用于加解密、密钥生成、密钥管理和密钥协商以及 Message Authentication Code(MAC)算法的框架和实现。它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。JCE采用实现的独立和算法的独立,使JCE安全框架具有了良好的扩展性。它使用提供者(provider)的理念为管理和组织所有密码安全的实现并为应用程序提供服务。JAVA环境中可以同时存在多种不同的JCE实现,在security.provider中定义了一套标准接口,所有的JCE实现都要实现这一套标准接口。
如果通过新的提供者(provider),可以将新的算法或者新的密码设备无缝的加入到JCE中。但出于JCE框架自身安全性的考虑,只有被可信任的实体签名认证的提供者(provider)才可以嵌入JAVA安全框架中。也就是说首先要实现包括新算法的新JCE,然后向JAVA安全管理机构申请获取授权证书,并产生签名,新开发的JCE才能加入到JAVA环境中供应用程序使用。而SM3是国产的,没有现成的JCE可以支持,需要全新开发,这需要很长的时间周期,同时申请证书也需要很长的时间。
因而在JAVA环境中, 不能直接通过加密框架JCA标准的编程接口调用SM3算法。但SM3算法是国家密码管理局编制的商用算法,用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求,而JAVA的应用又非常广泛,在JAVA环境中不能直接通过加密框架JCA标准的编程接口调用SM3算法极大地影响了应用程序的开发和维护。
发明内容
针对在JAVA环境中不能直接通过加密框架JCA标准的编程接口调用SM3算法的技术问题,提供了一种SM3算法在JAVA环境中的使用方法。本发明还公开了SM3算法在JAVA环境中的实现系统。
本发明的发明目的通过下述技术方案来实现:
一种SM3算法在JAVA环境中的实现方法,其具体包括以下的步骤:依照PKCS#11规范开发实现算法替换的适配层,在JAVA环境中,当应用程序通过加密框架JCA标准的编程接口调用密码扩展JCE中的安全散列算法SHA-256算法时,适配层直接调用SM3算法实现的应用程序编程接口API,在下层将需要进行散列运算的数据按SM3算法进行运算和处理,实现由SHA-256算法替换为SM3算法。
更进一步地,上述SM3算法为软件实现或者硬件密码模块实现。
更进一步地,上述方法还包括通过配置实现在多种不同的SM3算法实现之间换切换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都卫士通信息产业股份有限公司,未经成都卫士通信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310340792.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种小型工业垃圾处理器的研磨机构
- 下一篇:具有进料刮片的珠磨机