CN111625791B - 一种基于软件密码模块的密钥管理方法及系统 - Google Patents
一种基于软件密码模块的密钥管理方法及系统 Download PDFInfo
- Publication number
- CN111625791B CN111625791B CN202010350394.9A CN202010350394A CN111625791B CN 111625791 B CN111625791 B CN 111625791B CN 202010350394 A CN202010350394 A CN 202010350394A CN 111625791 B CN111625791 B CN 111625791B
- Authority
- CN
- China
- Prior art keywords
- key
- ciphertext
- white
- password
- box protection
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出一种基于软件密码模块的密钥管理方法及系统,包括:在密钥初始化时,通过白盒保护密钥加密主密钥得到第一密文;通过口令派生密钥加密白盒保护密钥得到第二密文;通过主密钥对用户密钥进行加密保存;在密钥更新时,通过当前口令的口令派生密钥解密第二密文获得白盒保护密钥,以及利用加密获得的所述白盒保护密钥的密文更新所述第二密文;在密钥使用时,用户输入新口令并使用新口令派生密钥解密第二密文获得白盒保护密钥;通过白盒保护密钥解密第一密文获得主密钥;通过主密钥解密用户密钥的密文,获得用户密钥的明文,进行相关密码服务。
Description
技术领域
本发明涉及安全通信技术领域,具体涉及一种基于软件密码模块的密钥管理方法及系统。
背景技术
密码技术是信息安全的基础技术,密钥则是密码技术安全应用的基础和信息化安全的核心元素。随着我国信息化产业的高速全面发展,基于非对称密钥体系和对称密钥体系的密钥管理系统也进入全面的建设阶段,密钥管理系统的安全性取决于密钥的安全性,一旦密钥泄露,也就不再具有保密功能。此外,密钥作为密码系统中的可变部分,在考虑密码系统的设计时,需要解决的核心问题是密钥管理问题。
目前,现有技术中的密钥管理方案为:将各种密钥基于加密卡或加密芯片硬盘保存,使用时,直接通过相关接口调用加密卡或加密芯片内运算;但是,在一定的条件局限情况下,当没有加密卡或加密芯片时,如何保证密钥的安全性是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种基于软件密码模块的密钥管理方法及系统,其能够有效保证密钥的安全性。
本发明第一方面提出一种基于软件密码模块的密钥管理方法,该密钥管理方法包括:密钥初始化过程、密钥更新过程和密钥使用过程;
密钥初始化过程:
使用口令派生算法对初始口令进行派生获得口令派生密钥;
获取第一随机数作为白盒保护密钥,获取第二随机数作为主密钥;
通过所述白盒保护密钥加密所述主密钥获得第一密文,通过所述口令派生密钥加密所述白盒保护密钥获得第二密文,将所述第一密文和所述第二密文存储至软件密码模块中;
通过所述软件密码模块内部生成和/或通过数字信封方式导入用户密钥,通过所述主密码加密所述用户密钥,获得用户密钥的密文,将所述用户密钥的密文存储至软件密码模块中;
密钥更新过程:
使用口令派生算法对接收的当前口令和新口令进行派生,获得当前口令派生密钥和新口令派生密钥;
通过所述当前口令派生密钥解密所述第二密文,获得所述白盒保护密钥;通过所述新口令派生密钥加密所述白盒保护密钥,利用加密获得的所述白盒保护密钥的密文更新所述第二密文;
密钥使用过程:
使用口令派生算法对接收的新口令进行派生,获得新口令派生密钥;使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥;通过所述白盒保护密钥解密所述第一密文获得所述主密钥;
通过所述主密钥解密所述用户密钥的密文,获得所述用户密钥进行相关密码服务。
基于上述,在密钥初始化过程中,通过所述白盒保护密钥加密所述主密钥获得第一密文之后还包括:通过摘要算法对所述白盒保护密钥进行摘要运算,获得白盒保护密钥HASH值,并存储至所述软件密码模块中;
在所述密钥更新过程中,通过所述当前口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前口令正确;否则,当前口令错误;
在所述密钥使用过程中,使用所述当前口令派生密钥解密所述第三密文获得所述白盒保护密钥之后还包括:通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明新口令正确;否则,新口令错误。
基于上述,所述密钥初始化过程中,获取用户密钥之后还包括:获取第三随机数作为线路保护密钥,获取第四随机数作为内部认证密钥,获取第五随机数作为外部认证密钥;将所述线路保护密钥、所述内部认证密钥和所述外部认证密钥分别使用所述主密钥进行加密后存储至所述软件密码模块中;通过所述软件密码模块内部的伪随机数发生器生成会话密钥。
基于上述,所述密钥使用过程中,通过所述白盒保护密钥解密所述第一密文,获得所述主密钥之后还包括:通过所述主密钥解密所述线路保护密钥、所述外部认证密钥和所述内部认证密钥的密文,获得所述线路保护密钥、所述外部认证密钥和所述内部认证密钥进行外部应用相关的密码服务。
基于上述,所述密钥初始化过程中还包括:将所述主密钥扩展后的圈子密钥隐藏嵌入到复合查找表中,编译成二进制代码的形式做成白盒进行所述主密钥的保护。
本发明还提供一种基于软件密码模块的密钥管理系统,所述系统包括客户端,所述客户端配置有软件密码模块;
在密钥初始化过程中:
所述客户端,用于使用口令派生算法对初始口令进行派生获得口令派生密钥;用于获取第一随机数作为白盒保护密钥,获取第二随机数作为主密钥;用于通过所述白盒保护密钥加密所述主密钥获得第一密文;用于通过所述口令派生密钥加密所述白盒保护密钥获得第二密文;用于将所述第一密文和所述第二密文存储至软件密码模块中;用于通过所述软件密码模块内部生成和/或通过数字信封方式导入用户密钥;以及用于通过所述主密码加密所述用户密钥,获得用户密钥的密文存储至所述软件密码模块中;
在密钥更新过程中:
所述客户端,用于使用口令派生算法对接收的当前口令和新口令进行派生,获得当前口令派生密钥和新口令派生密钥;用于通过所述当前口令派生密钥解密所述第二密文,获得所述白盒保护密钥;用于通过所述新口令派生密钥加密所述白盒保护密钥,利用加密获得的所述白盒保护密钥的密文更新所述第二密文;
在密钥使用过程中:
所述客户端,用于使用口令派生算法对接收的新口令进行派生,获得新口令派生密钥;使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥;用于通过所述白盒保护密钥解密所述第一密文获得所述主密钥;以及用于通过所述主密钥解密所述用户密钥的密文,获得所述用户密钥进行相关密码服务。
基于上述,在密钥初始化过程中,通过所述白盒保护密钥加密所述主密钥获得第一密文之后还包括:所述客户端还用于通过摘要算法对所述白盒保护密钥进行摘要运算,获得白盒保护密钥HASH值,并存储至所述软件密码模块中;
在所述密钥更新过程中,通过所述当前口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:所述客户端还用于通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前口令正确;否则,当前口令错误;
在所述密钥使用过程中,使用所述当前口令派生密钥解密所述第三密文获得所述白盒保护密钥之后还包括:所述客户端还用于通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明新口令正确;否则,新口令错误。
基于上述,所述密钥初始化过程中,获取用户密钥之后还包括:所述客户端用于获取第三随机数作为线路保护密钥,获取第四随机数作为内部认证密钥,获取第五随机数作为外部认证密钥;用于将所述线路保护密钥、所述内部认证密钥和所述外部认证密钥分别使用所述主密钥进行加密后存储至所述软件密码模块中;以及用于通过所述软件密码模块内部的伪随机数发生器生成会话密钥。
基于上述,所述密钥使用过程中,通过所述白盒保护密钥解密所述第一密文,获得所述主密钥之后还包括:所述客户端用于通过所述主密钥解密所述线路保护密钥、所述外部认证密钥和所述内部认证密钥的密文,获得所述线路保护密钥、所述外部认证密钥和所述内部认证密钥进行外部应用相关的密码服务。
基于上述,所述密钥初始化过程中还包括:所述客户端将所述主密钥扩展后的圈子密钥隐藏嵌入到复合查找表中,编译成二进制代码的形式做成白盒进行所述主密钥的保护。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)本发明通过主密钥对用户密钥、线路保护密钥、内部认证密钥和外部认证密钥进行加密保护;通过白盒保护密钥对主密钥进行加密保护;通过口令派生密钥对白盒保护密钥进行加密保护;从而实现密钥的分级保护,确保密钥的安全性;
(2)本发明中由于口令派生密钥由口令派生而生,不进行保存,仅由用户记忆,第三方无法直接从软件密码模块或者软件密码模块的宿主机中获取口令派生密钥;因此,用口令派生密钥加密对白盒保护密钥进行加密,增加了白盒保护密钥的安全性;通过安全性得到提升的白盒保护密钥对主密钥进行加密、以及安全性得到提升的主密钥对用户密钥、线路保护密钥、内部认证密钥和外部认证密钥进行加密也提高了用户密钥、线路保护密钥、内部认证密钥和外部认证密钥的安全性;
(3)本发明通过当前口令的口令派生密钥对第二密文进行解密处理获得白盒保护密钥明文,以及通过新口令的新口令派生密钥对白盒保护密钥明文进行加密,利用加密获得的所述白盒保护密钥的密文更新所述第二密文,能够保证在用户每次修改口令后仅需要修改白盒保护密钥的密文,不用修改主密钥且不用修改使用主密钥加密的其他密钥,修改过程简单方便;且口令、口令派生密钥以及白盒保护密钥的密文的动态更新进一步提高了密钥的安全性能;
(4)本发明通过对主密钥采用白盒设计的方案进行改造保护,不在内存中出现完整密钥,保证密钥的安全性;
(5)本发明软件密码模块提供的密钥管理服务,具有通用性强、更新方便等特点,适用于多种应用场景且保证安全性。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种密钥管理方法中密钥初始化过程流程图;
图2示出本发明一种密钥管理方法中密钥更新过程流程图;
图3示出本发明一种密钥管理方法中密钥使用过程流程图;
图4示出本发明一种密钥管理系统中密钥体系结构图;
图5示出本发明一种密钥管理系统的原理结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明中的软件密码模块是一款无需借助额外的硬件设备即可实现密钥安全、算法安全,以软件形态运行在终端上,它的应用可以极大地提高终端应用的安全性;密钥存储及密码运算全部由该软件密码模块完成,由该软件密码模块保证密钥存储安全和密钥使用安全。
如图1、图2、图3所示,本发明第一方面提出一种基于软件密码模块的密钥管理方法,该密钥管理方法包括:密钥初始化过程、密钥更新过程和密钥使用过程;
密钥初始化过程:
使用口令派生算法对初始口令进行派生获得口令派生密钥;
获取第一随机数作为白盒保护密钥,获取第二随机数作为主密钥;
通过所述白盒保护密钥加密所述主密钥获得第一密文,通过所述口令派生密钥加密所述白盒保护密钥获得第二密文,将所述第一密文和所述第二密文存储至软件密码模块中;
通过所述软件密码模块内部生成和/或通过数字信封方式导入用户密钥,通过所述主密码加密所述用户密钥,获得用户密钥的密文,将所述用户密钥的密文存储至软件密码模块中;
密钥更新过程:
使用口令派生算法对接收的当前口令和新口令进行派生,获得当前口令派生密钥和新口令派生密钥;
通过所述当前口令派生密钥解密所述第二密文,获得所述白盒保护密钥;通过所述新口令派生密钥加密所述白盒保护密钥,利用加密获得的所述白盒保护密钥的密文更新所述第二密文;
密钥使用过程:
使用口令派生算法对接收的新口令进行派生,获得新口令派生密钥;使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥;通过所述白盒保护密钥解密所述第一密文获得所述主密钥;
通过所述主密钥解密所述用户密钥的密文,获得所述用户密钥进行相关密码服务。
其中,密钥更新过程可以定期进行,也可以根据用户需要由用户自主选择时机进行,通过动态更新密钥可以确保提高密钥系统的安全性能。
可以理解的是:密钥更新过程可以发生在密钥使用过程前,也可以发生在密钥使用过程后;如果两次密钥使用过程之间未进行密钥更新,则后一次密钥使用时,接收的当前口令与上次密钥使用时接收的当前口令一致;如果两次密钥使用过程之间进行了密钥更新,则后一次密钥使用时接收的当前口令为密钥更新时输入的新口令。
并且在进行密钥更新时,如果是第一次进行密钥更新,则初始口令即为当前口令;如果不是第一次进行密钥更新,则上一次密钥更新时输入的新口令为当前口令。
具体的,在密钥初始化过程中,通过所述白盒保护密钥加密所述主密钥获得第一密文之后还包括:通过摘要算法对所述白盒保护密钥进行摘要运算,获得白盒保护密钥HASH值,并存储至所述软件密码模块中;
在所述密钥更新过程中,通过所述当前口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前口令正确;否则,当前口令错误;
在所述密钥使用过程中,使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明新口令正确;否则,新口令错误。
具体的,所述密钥初始化过程中还包括:将所述主密钥扩展后的圈子密钥隐藏嵌入到复合查找表中,编译成二进制代码的形式做成白盒进行所述主密钥的保护。
需要说明的是,白盒密码的目的是为了在白盒攻击的环境里保护算法密钥信息,防止攻击者在密码软件执行过程中抽取密钥信息。在明文到密文的各轮变换中设计引入复合查找表形式体现的变换,密码算法的执行过程就通过查找表来实现,这些查找表与密钥相关,密钥隐藏在查找表中,通过查找表的符合来保护密钥的安全。在具体的实际应用中,以国密SM4算法为基础,基于白盒密码技术进行改造,在运算过程中密钥不出现在运行环境的内存中,防止非法程序获取加解密密钥,从而保证数据加解密过程以及数据的安全。
具体的,所述密钥初始化过程中,获取用户密钥之后还包括:获取第三随机数作为线路保护密钥,获取第四随机数作为内部认证密钥,获取第五随机数作为外部认证密钥;将所述线路保护密钥、所述内部认证密钥和所述外部认证密钥分别使用所述主密钥进行加密后存储至所述软件密码模块中;通过所述软件密码模块内部的伪随机数发生器生成会话密钥。
具体的,所述密钥使用过程中,通过所述白盒保护密钥解密所述第一密文,获得所述主密钥之后还包括:通过所述主密钥解密所述线路保护密钥、所述外部认证密钥和所述内部认证密钥的密文,获得所述线路保护密钥、所述外部认证密钥和所述内部认证密钥进行外部应用相关的密码服务。
需要说明的是,所述口令派生密钥、所述白盒保护密钥、所述主密钥、所述用户密钥和所述会话密钥为管理用的密钥,主要用于密钥管理;所述线路保护密钥、所述内部认证密钥和所述外部认证密钥为工作用的密钥,主要用于为外部应用提供密码服务。
此外,所述白盒保护密钥、所述主密钥、所述用户密钥、所述线路保护密钥、所述内部认证密钥、所述外部认证密钥均加密存储在所述软件密码模块的宿主机中;
所述口令派生密钥由初始口令派生而成,不进行保存,仅由用户记忆;
所述用户密钥包括用户签名密钥对和用户加密密钥对,所述用户签名密钥对由所述软件密码模块内部生成,所述用户加密密钥对使用所述用户签名密钥对中公钥保护的数字信封的方式导入。
需要说明的是,所述白盒保护密钥、所述主密钥、所述线路保护密钥、所述内部认证密钥、所述外部认证密钥均是在所述软件密码模块初始化时安全环境下生成导入且不能导出;所述用户密钥中的公钥支持明文导出,私钥禁止导出;所述会话密钥支持采用数字信封的方式由外部导入,不支持导出。
所述口令派生密钥在用户修改口令时进行更新;所述白盒保护密钥、所述主密钥、所述线路保护密钥、所述内部认证密钥和所述外部认证密钥均不支持更新和销毁;所述用户签名密钥对通过所述软件密码模块内部重新生成进行更新,所述用户加密密钥对使用所述用户签名密钥对中公钥保护的数字信封的方式重新导入进行更新,所述用户签名密钥对和所述用户加密密钥对在更新的同时将原有所述用户签名密钥对和所述用户加密密钥对进行销毁;所述会话密钥支持一次会话一次更新。
所述口令派生密钥、所述白盒保护密钥、所述主密钥、所述线路保护密钥、所述内部认证密钥、所述外部认证密钥和所述会话密钥均为对称算法密钥;所述用户密钥为非对称算法密钥。
所述密钥使用过程中,所述用户密钥的明文进行相关密码服务包括:用于为宿主机提供数据加解密、数据签名、数字信封、密钥协商密码服务;所述密钥使用过程中,所述线路保护密钥、所述外部认证密钥和所述内部认证密钥的明文进行外部应用相关的密码服务分别包括:所述线路保护密钥用于宿主机的应用程序和软件密码模块之间进行数据加密传输、所述外部认证密钥用于软件密码模块认证外部设备、所述内部认证密钥用于外部设备认证软件密码模块。
本发明的有益效果:(1)本发明通过主密钥对用户密钥、线路保护密钥、内部认证密钥和外部认证密钥进行加密保护;通过白盒保护密钥对主密钥进行加密保护;通过口令派生密钥对白盒保护密钥进行加密保护;从而实现密钥的分级保护,确保密钥的安全性;
(2)本发明中由于口令派生密钥由口令派生而生,不进行保存,仅由用户记忆,第三方无法直接从软件密码模块或者软件密码模块的宿主机中获取口令派生密钥;因此,用口令派生密钥加密对白盒保护密钥进行加密,增加了白盒保护密钥的安全性;通过安全性得到提升的白盒保护密钥对主密钥进行加密、以及安全性得到提升的主密钥对用户密钥、线路保护密钥、内部认证密钥和外部认证密钥进行加密也提高了用户密钥、线路保护密钥、内部认证密钥和外部认证密钥的安全性;
(3)本发明通过当前口令的口令派生密钥对第二密文进行解密处理获得白盒保护密钥明文,以及通过新口令的新口令派生密钥对白盒保护密钥明文进行加密后获得第三密文替换所述第二密文,能够保证在用户每次修改口令后仅需要修改白盒保护密钥的密文,不用修改主密钥且不用修改使用主密钥加密的其他密钥,修改过程简单方便;且口令、口令派生密钥以及白盒保护密钥的密文的动态更新进一步提高了密钥的安全性能;
(4)本发明通过对主密钥采用白盒设计的方案进行改造保护,不在内存中出现完整密钥,保证密钥的安全性;
(5)本发明软件密码模块提供的密钥管理服务,具有通用性强、更新方便等特点,适用于多种应用场景且保证安全性。
如图4、图5所示,本发明还提出一种基于软件密码模块的密钥管理系统,所述系统包括客户端,所述客户端配置有软件密码模块;
在密钥初始化过程中:
所述客户端,用于使用口令派生算法对初始口令进行派生获得口令派生密钥;用于获取第一随机数作为白盒保护密钥,获取第二随机数作为主密钥;用于通过所述白盒保护密钥加密所述主密钥获得第一密文;用于通过所述口令派生密钥加密所述白盒保护密钥获得第二密文;用于将所述第一密文和所述第二密文存储至软件密码模块中;用于通过所述软件密码模块内部生成和/或通过数字信封方式导入用户密钥;以及用于通过所述主密码加密所述用户密钥,获得用户密钥的密文存储至所述软件密码模块中;
在密钥更新过程中:
所述客户端,用于使用口令派生算法对接收的当前口令和新口令进行派生,获得当前口令派生密钥和新口令派生密钥;用于通过所述当前口令派生密钥解密所述第二密文,获得所述白盒保护密钥;用于通过所述新口令派生密钥加密所述白盒保护密钥,利用加密获得的所述白盒保护密钥的密文更新所述第二密文;
在密钥使用过程中:
所述客户端,用于使用口令派生算法对接收的新口令进行派生,获得新口令派生密钥;使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥;用于通过所述白盒保护密钥解密所述第一密文获得所述主密钥;以及用于通过所述主密钥解密所述用户密钥的密文,获得所述用户密钥进行相关密码服务。
具体的,在密钥初始化过程中,通过所述白盒保护密钥加密所述主密钥获得第一密文之后还包括:所述客户端还用于通过摘要算法对所述白盒保护密钥进行摘要运算,获得白盒保护密钥HASH值,并存储至所述软件密码模块中;
在所述密钥更新过程中,通过所述当前口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:所述客户端还用于通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前口令正确;否则,当前口令错误;
在所述密钥使用过程中,使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:所述客户端还用于通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前新正确;否则,新口令错误。
具体的,所述密钥初始化过程中,获取用户密钥之后还包括:所述客户端用于获取第三随机数作为线路保护密钥,获取第四随机数作为内部认证密钥,获取第五随机数作为外部认证密钥;用于将所述线路保护密钥、所述内部认证密钥和所述外部认证密钥分别使用所述主密钥进行加密后存储至所述软件密码模块中;以及用于通过所述软件密码模块内部的伪随机数发生器生成会话密钥。
具体的,所述密钥使用过程中,通过所述白盒保护密钥解密所述第一密文,获得所述主密钥之后还包括:所述客户端用于通过所述主密钥解密所述线路保护密钥、所述外部认证密钥和所述内部认证密钥的密文,获得所述线路保护密钥、所述外部认证密钥和所述内部认证密钥进行外部应用相关的密码服务。
具体的,所述密钥初始化过程中还包括:所述客户端将所述主密钥扩展后的圈子密钥隐藏嵌入到复合查找表中,编译成二进制代码的形式做成白盒进行所述主密钥的保护。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于软件密码模块的密钥管理方法,其特征在于,包括:密钥初始化过程、密钥更新过程和密钥使用过程;
密钥初始化过程:
使用口令派生算法对初始口令进行派生获得口令派生密钥;
获取第一随机数作为白盒保护密钥,获取第二随机数作为主密钥;
通过所述白盒保护密钥加密所述主密钥获得第一密文,通过所述口令派生密钥加密所述白盒保护密钥获得第二密文,将所述第一密文和所述第二密文存储至软件密码模块中;
通过所述软件密码模块内部生成和/或通过数字信封方式导入用户密钥,通过所述主密钥加密用户密钥,获得用户密钥的密文,将所述用户密钥的密文存储至软件密码模块中;
密钥更新过程:
使用口令派生算法对接收的当前口令和新口令进行派生,获得当前口令派生密钥和新口令派生密钥;
通过所述当前口令派生密钥解密所述第二密文,获得所述白盒保护密钥;通过所述新口令派生密钥加密所述白盒保护密钥,利用加密获得的所述白盒保护密钥的密文更新所述第二密文;
密钥使用过程:
使用口令派生算法对接收的新口令进行派生,获得新口令派生密钥;使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥;通过所述白盒保护密钥解密所述第一密文获得所述主密钥;
通过所述主密钥解密所述用户密钥的密文,获得所述用户密钥进行相关密码服务。
2.根据权利要求1所述的密钥管理方法,其特征在于,在密钥初始化过程中,通过所述白盒保护密钥加密所述主密钥获得第一密文之后还包括:通过摘要算法对所述白盒保护密钥进行摘要运算,获得白盒保护密钥HASH值,并存储至所述软件密码模块中;
在所述密钥更新过程中,通过所述当前口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前口令正确;否则,当前口令错误;
在所述密钥使用过程中,使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前口令正确;否则,当前口令错误。
3.根据权利要求1或2所述的密钥管理方法,其特征在于,所述密钥初始化过程中,获取用户密钥之后还包括:获取第三随机数作为线路保护密钥,获取第四随机数作为内部认证密钥,获取第五随机数作为外部认证密钥;将所述线路保护密钥、所述内部认证密钥和所述外部认证密钥分别使用所述主密钥进行加密后存储至所述软件密码模块中;通过所述软件密码模块内部的伪随机数发生器生成会话密钥。
4.根据权利要求3所述的密钥管理方法,其特征在于,所述密钥使用过程中,通过所述白盒保护密钥解密所述第一密文,获得所述主密钥之后还包括:通过所述主密钥解密所述线路保护密钥、所述外部认证密钥和所述内部认证密钥的密文,获得所述线路保护密钥、所述外部认证密钥和所述内部认证密钥进行外部应用相关的密码服务。
5.根据权利要求1或2所述的密钥管理方法,其特征在于,所述密钥初始化过程中还包括:将所述主密钥扩展后的圈子密钥隐藏嵌入到复合查找表中,编译成二进制代码的形式做成白盒进行所述主密钥的保护。
6.一种基于软件密码模块的密钥管理系统,其特征在于,所述系统包括客户端,所述客户端配置有软件密码模块;
在密钥初始化过程中:
所述客户端,用于使用口令派生算法对初始口令进行派生获得口令派生密钥;用于获取第一随机数作为白盒保护密钥,获取第二随机数作为主密钥;用于通过所述白盒保护密钥加密所述主密钥获得第一密文;用于通过所述口令派生密钥加密所述白盒保护密钥获得第二密文;用于将所述第一密文和所述第二密文存储至软件密码模块中;用于通过所述软件密码模块内部生成和/或通过数字信封方式导入用户密钥;以及用于通过所述主密钥加密用户密钥,获得用户密钥的密文存储至所述软件密码模块中;
在密钥更新过程中:
所述客户端,用于使用口令派生算法对接收的当前口令和新口令进行派生,获得当前口令派生密钥和新口令派生密钥;用于通过所述当前口令派生密钥解密所述第二密文,获得所述白盒保护密钥;用于通过所述新口令派生密钥加密所述白盒保护密钥,利用加密获得的所述白盒保护密钥的密文更新所述第二密文;
在密钥使用过程中:
所述客户端,用于使用口令派生算法对接收的新口令进行派生,获得新口令派生密钥;使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥;用于通过所述白盒保护密钥解密所述第一密文获得所述主密钥;以及用于通过所述主密钥解密所述用户密钥的密文,获得所述用户密钥进行相关密码服务。
7.根据权利要求6所述的密钥管理系统,其特征在于,在密钥初始化过程中,通过所述白盒保护密钥加密所述主密钥获得第一密文之后还包括:所述客户端还用于通过摘要算法对所述白盒保护密钥进行摘要运算,获得白盒保护密钥HASH值,并存储至所述软件密码模块中;
在所述密钥更新过程中,通过所述当前口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:所述客户端还用于通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前口令正确;否则,当前口令错误;
在所述密钥使用过程中,使用所述新口令派生密钥解密所述第二密文获得所述白盒保护密钥之后还包括:所述客户端还用于通过所述软件密码模块内部存储的所述白盒保护密钥HASH值对所述白盒保护密钥进行校验,若校验通过则说明当前口令正确;否则,当前口令错误。
8.根据权利要求6或7所述的密钥管理系统,其特征在于,所述密钥初始化过程中,获取用户密钥之后还包括:所述客户端用于获取第三随机数作为线路保护密钥,获取第四随机数作为内部认证密钥,获取第五随机数作为外部认证密钥;用于将所述线路保护密钥、所述内部认证密钥和所述外部认证密钥分别使用所述主密钥进行加密后存储至所述软件密码模块中;以及用于通过所述软件密码模块内部的伪随机数发生器生成会话密钥。
9.根据权利要求8所述的密钥管理系统,其特征在于,所述密钥使用过程中,通过所述白盒保护密钥解密所述第一密文,获得所述主密钥之后还包括:所述客户端用于通过所述主密钥解密所述线路保护密钥、所述外部认证密钥和所述内部认证密钥的密文,获得所述线路保护密钥、所述外部认证密钥和所述内部认证密钥进行外部应用相关的密码服务。
10.根据权利要求6或7所述的密钥管理系统,其特征在于,所述密钥初始化过程中还包括:所述客户端将所述主密钥扩展后的圈子密钥隐藏嵌入到复合查找表中,编译成二进制代码的形式做成白盒进行所述主密钥的保护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010350394.9A CN111625791B (zh) | 2020-04-28 | 2020-04-28 | 一种基于软件密码模块的密钥管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010350394.9A CN111625791B (zh) | 2020-04-28 | 2020-04-28 | 一种基于软件密码模块的密钥管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625791A CN111625791A (zh) | 2020-09-04 |
CN111625791B true CN111625791B (zh) | 2022-04-08 |
Family
ID=72270823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010350394.9A Active CN111625791B (zh) | 2020-04-28 | 2020-04-28 | 一种基于软件密码模块的密钥管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625791B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738083B (zh) * | 2020-12-28 | 2023-05-19 | 福建正孚软件有限公司 | 一种基于跨网跨境数据传输安全接入密钥管理系统和方法 |
CN113111365B (zh) * | 2021-04-22 | 2024-04-09 | 广州市人心网络科技有限公司 | 一种基于信封加密的在线心理咨询隐私数据保护方法、存储介质及系统 |
CN113541947B (zh) * | 2021-09-16 | 2021-11-26 | 飞天诚信科技股份有限公司 | 工作密钥生成方法、装置及计算机可读存储介质 |
CN114491587B (zh) * | 2022-01-13 | 2024-03-19 | 西安电子科技大学 | 基于类似sm4结构的白盒密码加解密方法 |
CN115809459B (zh) * | 2023-01-18 | 2023-08-15 | 成都卫士通信息产业股份有限公司 | 软件密码模块的数据保护及解密方法、系统、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2285042A1 (fr) * | 2009-07-07 | 2011-02-16 | Gemalto SA | Module logiciel de sécurisation utilisant le chiffrement du haché d'un mot de passe concaténé avec une graine |
CN105245328A (zh) * | 2015-09-09 | 2016-01-13 | 西安电子科技大学 | 一种基于第三方的用户及文件的密钥产生管理方法 |
CN107809313A (zh) * | 2017-10-31 | 2018-03-16 | 北京三未信安科技发展有限公司 | 一种白盒密码运算方法及系统 |
CN107947917A (zh) * | 2017-12-29 | 2018-04-20 | 北京梆梆安全科技有限公司 | 一种生成白盒密钥的方法及装置 |
-
2020
- 2020-04-28 CN CN202010350394.9A patent/CN111625791B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2285042A1 (fr) * | 2009-07-07 | 2011-02-16 | Gemalto SA | Module logiciel de sécurisation utilisant le chiffrement du haché d'un mot de passe concaténé avec une graine |
CN105245328A (zh) * | 2015-09-09 | 2016-01-13 | 西安电子科技大学 | 一种基于第三方的用户及文件的密钥产生管理方法 |
CN107809313A (zh) * | 2017-10-31 | 2018-03-16 | 北京三未信安科技发展有限公司 | 一种白盒密码运算方法及系统 |
CN107947917A (zh) * | 2017-12-29 | 2018-04-20 | 北京梆梆安全科技有限公司 | 一种生成白盒密钥的方法及装置 |
Non-Patent Citations (1)
Title |
---|
云服务中可信第三方认证平台设计;李瑛等;《网络安全技术与应用》;20180215(第02期);第3-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111625791A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111464301B (zh) | 一种密钥管理方法及系统 | |
CN111625791B (zh) | 一种基于软件密码模块的密钥管理方法及系统 | |
JP3747520B2 (ja) | 情報処理装置及び情報処理方法 | |
CN100468438C (zh) | 实现硬件和软件绑定的加密和解密方法 | |
CN109379387B (zh) | 一种物联网设备间的安全认证和数据通信系统 | |
US11874935B2 (en) | Protecting data from brute force attack | |
US11308241B2 (en) | Security data generation based upon software unreadable registers | |
CN108881960B (zh) | 基于标识密码的智能摄像头安全控制与数据保密的方法 | |
CN102904712A (zh) | 信息加密方法 | |
US11424919B2 (en) | Protecting usage of key store content | |
CN102063598A (zh) | 一种数据加密、解密方法及装置 | |
CN111010266B (zh) | 消息的加解密、读写方法、装置、计算机设备和存储介质 | |
CN111526007B (zh) | 一种随机数生成方法及系统 | |
CN103378971A (zh) | 一种数据加密系统及方法 | |
CN110650011A (zh) | 基于量子密钥的加密存储方法和加密存储卡 | |
WO1998036520A1 (en) | Cryptographic key split combiner | |
CN111884814B (zh) | 一种用于智能终端防伪造的方法和系统 | |
CN107911221B (zh) | 固态盘数据安全存储的密钥管理方法 | |
CN113722741A (zh) | 数据加密方法及装置、数据解密方法及装置 | |
CN101997680B (zh) | 一种直接支持证书管理的安全芯片 | |
CN108959962B (zh) | 一种动态库的api安全调用方法 | |
CN101539978B (zh) | 基于空间的软件保护方法 | |
CN104899480A (zh) | 一种基于cpk标识认证技术的软件版权保护管理方法 | |
CN115801232A (zh) | 一种私钥保护方法、装置、设备及存储介质 | |
CN115499118A (zh) | 报文密钥生成、文件加密、解密方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Key Management Method and System Based on Software Password Module Effective date of registration: 20230412 Granted publication date: 20220408 Pledgee: China Construction Bank Corporation Zhengzhou Jinshui sub branch Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2023980037751 |