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

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

Info

Publication number
CN102970134A
CN102970134A CN2012105306461A CN201210530646A CN102970134A CN 102970134 A CN102970134 A CN 102970134A CN 2012105306461 A CN2012105306461 A CN 2012105306461A CN 201210530646 A CN201210530646 A CN 201210530646A CN 102970134 A CN102970134 A CN 102970134A
Authority
CN
China
Prior art keywords
algorithm
hardware encryption
openssl
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.)
Granted
Application number
CN2012105306461A
Other languages
English (en)
Other versions
CN102970134B (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

Images

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 (6)

1.一种将硬件密码设备的算法用于PKCS#7数据封装的方法,其具体包含以下步骤:1. 在硬件密码设备中注入密码算法,硬件密码设备接入OpenSSL,配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备;2.基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中;3.应用程序调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装。
2.如权利要求1所述的将硬件密码设备的算法用于PKCS#7数据封装的方法,其特征在于所述硬件密码设备提供SM1、SM2或SM3算法。
3.如权利要求2所述的将硬件密码设备的算法用于PKCS#7数据封装的方法,其特征在于所述SM2算法封装PKCS#7数据的过程具体为:当生成PKCS#7数字信封时,如果OpenSSL向椭圆曲线算法模块获取算法对象,就把 SM2算法对象交给OpenSSL,OpenSSL得到算法对象后进行运算,最后调用硬件密码设备实现SM2算法,完成数字信封的封装。
4.一种将硬件密码设备的算法用于PKCS#7数据封装的系统,其特征在于包括硬件密码设备、OpenSSL,所述硬件密码设备接入OpenSSL;所述硬件密码设备中注入密码算法;所述OpenSSL中包括接口库路径配置模块、OpenSSL引擎模块、应用程序模块,所述接口库路径配置模块配置硬件密码设备接口库的路径,并根据接口库的路径调用硬件密码设备,所述OpenSSL引擎模块基于OpenSSL提供的引擎机制,封装硬件密码设备引擎,将硬件密码设备中的密码算法名称注册到OpenSSL中;所述应用程序模块调用OpenSSL封装PKCS#7数据时,根据密码算法名称调用相应硬件密码设备中的密码算法,完成PKCS#7数据的封装。
5.如权利要求4所述的将硬件密码设备的算法用于PKCS#7数据封装的系统,其特征在于所述硬件密码设备提供SM1、SM2或SM3算法。
6.如权利要求5所述的将硬件密码设备的算法用于PKCS#7数据封装的系统,其特征在于所述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 true CN102970134A (zh) 2013-03-13
CN102970134B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104852803A (zh) * 2014-02-14 2015-08-19 航天信息股份有限公司 实现OpenSSL支持SM2算法的方法
CN106060022A (zh) * 2016-05-19 2016-10-26 杜在东 一种加密设备的配置方法及系统
CN108234114A (zh) * 2016-12-22 2018-06-29 中标软件有限公司 一种基于硬件加密算法的ssl的实现方法
CN110851328A (zh) * 2019-11-12 2020-02-28 成都三零嘉微电子有限公司 一种密码卡在pkcs#11应用时异常掉电的检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1536807A (zh) * 2003-04-07 2004-10-13 西科姆株式会社 文件安全传送系统及其方法
US20060218190A1 (en) * 2005-03-28 2006-09-28 Datallegro, Inc. Non-invasive encryption for relational database management systems
CN101197660A (zh) * 2006-12-07 2008-06-11 上海安创信息科技有限公司 防攻击标准加密标准的加密方法及其加密芯片
CN101908963A (zh) * 2010-08-09 2010-12-08 北京飞天诚信科技有限公司 一种摘要引擎的实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1536807A (zh) * 2003-04-07 2004-10-13 西科姆株式会社 文件安全传送系统及其方法
US20060218190A1 (en) * 2005-03-28 2006-09-28 Datallegro, Inc. Non-invasive encryption for relational database management systems
CN101197660A (zh) * 2006-12-07 2008-06-11 上海安创信息科技有限公司 防攻击标准加密标准的加密方法及其加密芯片
CN101908963A (zh) * 2010-08-09 2010-12-08 北京飞天诚信科技有限公司 一种摘要引擎的实现方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104852803A (zh) * 2014-02-14 2015-08-19 航天信息股份有限公司 实现OpenSSL支持SM2算法的方法
CN104852803B (zh) * 2014-02-14 2019-04-23 航天信息股份有限公司 实现OpenSSL支持SM2算法的方法
CN106060022A (zh) * 2016-05-19 2016-10-26 杜在东 一种加密设备的配置方法及系统
CN106060022B (zh) * 2016-05-19 2019-05-10 北京云钥网络科技有限公司 一种加密设备的配置方法及系统
CN108234114A (zh) * 2016-12-22 2018-06-29 中标软件有限公司 一种基于硬件加密算法的ssl的实现方法
CN110851328A (zh) * 2019-11-12 2020-02-28 成都三零嘉微电子有限公司 一种密码卡在pkcs#11应用时异常掉电的检测方法
CN110851328B (zh) * 2019-11-12 2023-03-21 成都三零嘉微电子有限公司 一种密码卡在pkcs#11应用时异常掉电的检测方法

Also Published As

Publication number Publication date
CN102970134B (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
US10601594B2 (en) End-to-end service layer authentication
CN110311883B (zh) 身份管理方法、设备、通信网络及存储介质
US11350286B2 (en) Device identifier obtaining method and apparatus
Xin A mixed encryption algorithm used in internet of things security transmission system
CN103138938B (zh) 基于csp的sm2证书申请及应用方法
CN104579679B (zh) 用于农配网通信设备的无线公网数据转发方法
KR101575862B1 (ko) 이기종 전력기기 간 보안 연계 시스템
CN107181716A (zh) 一种基于国家商用密码算法的网络安全通信系统及方法
CN112804356B (zh) 一种基于区块链的联网设备监管认证方法及系统
CN102970134B (zh) 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统
CN108900540A (zh) 一种基于双重加密的配电终端的业务数据处理方法
CN105610847A (zh) 一种支持多交换节点电子公文安全传输交换的方法
CN112968778A (zh) 区块链国密算法的转换方法、系统、计算机设备及应用
CN107729760B (zh) 基于Android系统的CSP实现方法及智能终端
CN111181944B (zh) 通信系统及信息发布方法、装置、介质、设备
CN114142995B (zh) 面向区块链中继通信网络的密钥安全分发方法及装置
CN103354637B (zh) 一种物联网终端m2m通信加密方法
CN104980269A (zh) 密钥共享方法、装置与系统
CN110198538A (zh) 一种获得设备标识的方法及装置
Li et al. Enterprise private cloud file encryption system based on tripartite secret key protocol
Wang et al. A key management method for smart substation
CN111049798B (zh) 一种信息处理方法、装置和计算机可读存储介质
CN103647654B (zh) 一种基于可信计算的配电终端密钥管理方法
KR20130109560A (ko) 모바일 디바이스의 데이터베이스 암호화 방법
WO2020140929A1 (zh) 一种密钥生成方法、ue及网络设备

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

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.

CP03 Change of name, title or address