CN102970134B - 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 - Google Patents
将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 Download PDFInfo
- Publication number
- CN102970134B CN102970134B CN201210530646.1A CN201210530646A CN102970134B CN 102970134 B CN102970134 B CN 102970134B CN 201210530646 A CN201210530646 A CN 201210530646A CN 102970134 B CN102970134 B CN 102970134B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- openssl
- hardware encryption
- pkcs
- encryption equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及数据封装技术领域,本发明公开了一种将硬件密码设备的算法用于PKCS#7数据封装的方法,其具体包含以下步骤:1.在硬件密码设备中注入密码算法,硬件密码设备接入OpenSSL,配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备;2.基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中;3.应用程序调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装。本发明还公开了一种将硬件密码设备的算法用于PKCS#7数据封装的系统。极大地方便了用户的使用。
Description
技术领域
本发明涉及数据封装技术领域,尤其涉及一种将硬件密码设备的算法用于PKCS#7数据封装的方法及系统。
背景技术
PKCS,The Public-Key Cryptography Standards (简称PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。其中,PKCS#7定义一种通用的消息语法,包括数字签名和加密等用于增强的加密机制,PKCS#7与PEM兼容,所以不需其他密码操作,就可以将加密的消息转换成PEM消息,因此PKCS#7在安全信息交换应用中广泛使用,例如安全电子邮件应用就是基于该标准的。
PKCS#7基于OpenSSL,SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的SSL协议,已成为Internet上保密通讯的工业标准。OpenSSL整个软件包包括:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构也是围绕这三个功能部分进行规划的。 作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。
SM1、SM2、SM3算法是中国国家密码管理局颁布的算法标准,并在商用密码领域推广。其中SM1是对称算法,SM2是基于256bit椭圆曲线的非对称算法,SM3是散列算法。SM1、SM2、SM3算法由通过中国国家密码管理局鉴定的商用密码设备提供,有较好的保密功能。
然而现有OpenSSL的密码算法库中并没有上述中国国家密码管理局颁布的密码算法,使得无法将这三种算用于PKCS#7数据封装。
发明内容
针对现有技术中存在的无法采用非OpenSSL协议中的其他算法用于PKCS#7数据封装的技术问题,提供一种将硬件密码设备的算法用于PKCS#7数据封装的方法。
本发明的目的通过下述技术方案来实现:
一种将硬件密码设备的算法用于PKCS#7数据封装的方法,其具体包含以下步骤:1. 在硬件密码设备中注入密码算法,硬件密码设备接入OpenSSL,配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备;2.基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中;3.应用程序调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装。
本发明还公开了一种将硬件密码设备的算法用于PKCS#7数据封装的系统,其包括硬件密码设备、OpenSSL,所述硬件密码设备接入OpenSSL;所述硬件密码设备中注入密码算法;所述OpenSSL中包括接口库路径配置模块、OpenSSL引擎模块、应用程序模块,所述接口库路径配置模块配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备,所述OpenSSL引擎模块基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中,所述应用程序模块调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装。
更进一步地,上述硬件密码设备提供SM1、SM2或SM3算法。
更进一步地,上述SM2算法封装PKCS#7数据的过程具体为:当生成PKCS#7数字信封时,如果OpenSSL向椭圆曲线算法模块获取算法对象,就把 SM2算法对象交给OpenSSL,OpenSSL得到算法对象后进行运算,最后调用硬件密码设备实现SM2算法,完成数字信封的封装。
通过采用以上技术方案,本发明的有益效果:在封装PKCS#7数据时,可以调用硬件密码设备中的密码算法实现PKCS#7数据封装,极大地方便了用户的使用,用户可以在硬件密码设备中设定任意的密码算法。硬件密码设备中的密码算法可以任意设定,尤其是OpenSSL中没有采用椭圆曲线算法来进行数字信封的封装,而正好利用SM2算法的算法对象进行数字信封的封装,极大地方便了用户的使用。
附图说明
图1为将硬件密码设备的算法用于PKCS#7数据封装的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明的将硬件密码设备的算法用于PKCS#7数据封装的方法流程图,其具体包含以下步骤:1. 在硬件密码设备中注入密码算法,硬件密码设备接入OpenSSL,配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备;2.基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中;3.应用程序调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装。通过上述将硬件密码算法接入OpenSSL中,在封装PKCS#7数据时,可以调用硬件密码设备中的密码算法实现PKCS#7数据封装,极大地方便了用户的使用,用户可以在硬件密码设备中设定任意的密码算法。
更进一步地,上述硬件密码设备提供SM1、SM2或SM3算法,应用程序调用OpenSSL封装PKCS#7数据时,根据注册的算法名称,调用对应硬件密码设备中的算法。采用上述方法实现用SM1、SM2或SM3算法封装PKCS#7数据的功能,本发明中的硬件密码设备不受具体形态的限制,符合《公钥密码基础设施应用技术体系密码设备应用接口规范》的所有硬件密码设备均可使用。SM1 、SM2及SM3算法都是由国家密码管理局编制的商用算法。SM1是分组标准对称算法。该算法是国家密码管理部门审批的 SM1 分组密码算法 , 分组长度和密钥长度都为 128 比 特,算法安全保密强度及相关软硬件实现性能与 AES 相当,该算法已经公开,仅以 IP 核的形式 存在于芯片中。采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加 密 机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政 务 通、警务通等重要领域)。这三种算法的保密强度及相关硬件实现很高,但却无法用于PKCS#7数字信封的封装,因此急需上述方法来进行实现采用上述三种算法来实现PKCS#7数字信封的封装。
更进一步地,上述采用SM2算法封装PKCS#7数据的过程具体为:当生成PKCS#7数字信封时,如果OpenSSL向椭圆曲线算法模块获取算法对象,就把 SM2算法对象交给OpenSSL,OpenSSL得到算法对象后进行运算,最后调用硬件密码设备实现SM2算法,完成数字信封的封装。现有的OpenSSL不支持使用椭圆曲线算法封装数字信封,本发明通过修改OpenSSL中椭圆曲线算法模块,实现了用SM2算法来封装数字信封。
本发明还提供了一种将硬件密码设备的算法用于PKCS#7数据封装的系统,其包括硬件密码设备、OpenSSL,所述硬件密码设备接入OpenSSL;所述硬件密码设备中注入密码算法;所述OpenSSL中包括接口库路径配置模块、OpenSSL引擎模块、应用程序模块,所述接口库路径配置模块配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备,所述OpenSSL引擎模块基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中,所述应用程序模块调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装。通过采用上述系统将硬件密码算法接入OpenSSL中,在封装PKCS#7数据时,可以调用硬件密码设备中的密码算法实现PKCS#7数据封装,极大地方便了用户的使用,用户可以在硬件密码设备中设定任意的密码算法。
更进一步地,上述硬件密码设备提供SM1、SM2或SM3算法,应用程序调用OpenSSL封装PKCS#7数据时,根据注册的算法名称,调用对应硬件密码设备中的算法。采用上述方法实现用SM1、SM2或SM3算法封装PKCS#7数据的功能,本发明中的硬件密码设备不受具体形态的限制,符合《公钥密码基础设施应用技术体系密码设备应用接口规范》的所有硬件密码设备均可使用。
更进一步地,上述采用SM2算法封装PKCS#7数据的过程具体为:当生成PKCS#7数字信封时,如果OpenSSL向椭圆曲线算法模块获取算法对象,就把 SM2算法对象交给OpenSSL,OpenSSL得到算法对象后进行运算,最后调用硬件密码设备实现SM2算法,完成数字信封的封装。现有的OpenSSL不支持使用椭圆曲线算法封装数字信封,本发明通过修改OpenSSL中椭圆曲线算法模块,实现了用SM2算法来封装数字信封。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (2)
1.一种将硬件密码设备的算法用于PKCS#7数据封装的方法,其具体包含以下步骤:(1). 在硬件密码设备中注入密码算法,硬件密码设备接入OpenSSL,配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备;(2).基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中;(3).应用程序调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装;所述硬件密码设备提供SM1、SM2或SM3算法;SM2算法封装PKCS#7数字信封的过程具体为:当生成PKCS#7数字信封时,如果检查到OpenSSL需要使用获取椭圆曲线算法对象,就把 SM2算法对象交给OpenSSL,OpenSSL得到算法对象后进行运算,最后调用硬件密码设备实现SM2算法,完成数字信封的封装。
2.一种将硬件密码设备的算法用于PKCS#7数据封装的系统,其特征在于包括硬件密码设备、OpenSSL,所述硬件密码设备接入OpenSSL;所述硬件密码设备中注入密码算法;所述OpenSSL中包括接口库路径配置模块、OpenSSL引擎模块、应用程序模块,所述接口库路径配置模块配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备,所述OpenSSL引擎模块基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中;所述应用程序模块调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装;所述硬件密码设备提供SM1、SM2或SM3算法;SM2算法封装PKCS#7数字信封的过程具体为:当生成PKCS#7数字信封时,如果检查到OpenSSL需要使用获取椭圆曲线算法对象,就把 SM2算法对象交给OpenSSL,OpenSSL得到算法对象后进行运算,最后调用硬件密码设备实现SM2算法,完成数字信封的封装。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210530646.1A CN102970134B (zh) | 2012-12-11 | 2012-12-11 | 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210530646.1A CN102970134B (zh) | 2012-12-11 | 2012-12-11 | 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102970134A CN102970134A (zh) | 2013-03-13 |
CN102970134B true CN102970134B (zh) | 2015-06-03 |
Family
ID=47800029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210530646.1A Active CN102970134B (zh) | 2012-12-11 | 2012-12-11 | 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102970134B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104852803B (zh) * | 2014-02-14 | 2019-04-23 | 航天信息股份有限公司 | 实现OpenSSL支持SM2算法的方法 |
CN106060022B (zh) * | 2016-05-19 | 2019-05-10 | 北京云钥网络科技有限公司 | 一种加密设备的配置方法及系统 |
CN108234114A (zh) * | 2016-12-22 | 2018-06-29 | 中标软件有限公司 | 一种基于硬件加密算法的ssl的实现方法 |
CN110851328B (zh) * | 2019-11-12 | 2023-03-21 | 成都三零嘉微电子有限公司 | 一种密码卡在pkcs#11应用时异常掉电的检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536807A (zh) * | 2003-04-07 | 2004-10-13 | 西科姆株式会社 | 文件安全传送系统及其方法 |
CN101197660A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 防攻击标准加密标准的加密方法及其加密芯片 |
CN101908963A (zh) * | 2010-08-09 | 2010-12-08 | 北京飞天诚信科技有限公司 | 一种摘要引擎的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1869575A4 (en) * | 2005-03-28 | 2012-06-20 | Datallegro Inc | NON-INVASIVE ENCRYPTION FOR RELATIONAL DATA BASE MANAGEMENT SYSTEMS |
-
2012
- 2012-12-11 CN CN201210530646.1A patent/CN102970134B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536807A (zh) * | 2003-04-07 | 2004-10-13 | 西科姆株式会社 | 文件安全传送系统及其方法 |
CN101197660A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 防攻击标准加密标准的加密方法及其加密芯片 |
CN101908963A (zh) * | 2010-08-09 | 2010-12-08 | 北京飞天诚信科技有限公司 | 一种摘要引擎的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102970134A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12010251B2 (en) | Electric border gateway device and method for chaining and storage of sensing data based on the same | |
US10601594B2 (en) | End-to-end service layer authentication | |
CN110311883B (zh) | 身份管理方法、设备、通信网络及存储介质 | |
CN105162772B (zh) | 一种物联网设备认证与密钥协商方法和装置 | |
WO2019153701A1 (zh) | 一种获得设备标识的方法及装置 | |
Xin | A mixed encryption algorithm used in internet of things security transmission system | |
CN103138938B (zh) | 基于csp的sm2证书申请及应用方法 | |
CN104579679B (zh) | 用于农配网通信设备的无线公网数据转发方法 | |
WO2020252611A1 (zh) | 一种数据交互方法及相关设备 | |
CN102970134B (zh) | 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 | |
WO2024001035A1 (zh) | 基于区块链中继通信网络系统的消息传输方法及装置 | |
CN112804356B (zh) | 一种基于区块链的联网设备监管认证方法及系统 | |
CN116132043B (zh) | 会话密钥协商方法、装置及设备 | |
CN105610847A (zh) | 一种支持多交换节点电子公文安全传输交换的方法 | |
CN110198538A (zh) | 一种获得设备标识的方法及装置 | |
US20240205204A1 (en) | Data transmission protocol execution methods and apparatuses | |
WO2024045680A1 (zh) | 一种设备认证方法和相关设备 | |
WO2020140929A1 (zh) | 一种密钥生成方法、ue及网络设备 | |
WO2018076299A1 (zh) | 数据传输方法及装置 | |
Itani et al. | Energy-efficient platform-as-a-service security provisioning in the cloud | |
CN103647654B (zh) | 一种基于可信计算的配电终端密钥管理方法 | |
CN112468983A (zh) | 一种低功耗的电力物联网智能设备接入认证方法及其辅助装置 | |
Gao et al. | Research on" Cloud-Edge-End" Security Protection System of Internet of Things Based on National Secret Algorithm | |
KR102488326B1 (ko) | 이종 계량기의 통신을 지원하는 방법 | |
CN109657449A (zh) | 一种基于密码卡实现密码资源互通的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: No. 333, Yunhua Road, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610041 Patentee after: China Electronics Technology Network Security Technology Co.,Ltd. Address before: 610041, No. 8, pioneering Road, hi tech Zone, Sichuan, Chengdu Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc. |