CN102970134B - 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 - Google Patents

将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 Download PDF

Info

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
Application number
CN201210530646.1A
Other languages
English (en)
Other versions
CN102970134A (zh
Inventor
吴庆国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Electronics Technology Network Security Technology Co ltd
Original Assignee
Chengdu Westone Information Industry Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN201210530646.1A priority Critical patent/CN102970134B/zh
Publication of CN102970134A publication Critical patent/CN102970134A/zh
Application granted granted Critical
Publication of CN102970134B publication Critical patent/CN102970134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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#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算法,完成数字信封的封装。
CN201210530646.1A 2012-12-11 2012-12-11 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统 Active CN102970134B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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.