掌桥专利:专业的专利平台
掌桥专利
首页

密钥派生方法、数据加密方法、服务器、电子设备及存储介质

文献发布时间:2023-06-19 16:04:54



技术领域

本发明涉及数据安全技术领域,尤其涉及一种密钥派生方法、数据加密方法、服务器、电子设备及存储介质。

背景技术

随着信息化技术高速发展及应用普及,越来越多的上网场景中需要用到电子账户和密码,例如,浏览器登录账号、电子邮箱帐户、各种应用软件登录名等,对应的密码众多,容易遗忘。为了解决该问题,一些用于密码管理工具的软件应运而生,可以对账号和密码进行集中管理。

密码管理工具可以帮助用户为每个帐户创建不同的密码,且无须担心密码被遗忘。借助所述密码管理工具,用户可以将所有密码存储在一个用主口令锁定的密码文件中,只需记住一个主口令,然后用这个主口令对大量在线应用的密码作加密保护。但这意味着对主口令的保护将成为重中之重。

参与加解密运算的密钥一般不是直接使用用户设置的主口令,而是通过密钥派生算法KDF(Key Derivation Function)基于用户设置的主口令生成。密钥派生算法原理多样,参与派生的参数不尽相同,当前除用户设置的主口令之外,多数KDF算法还可通过增加盐(Salt)和迭代次数(Rounds)等参数来提升派生密钥的安全性。

然而,发明人在实现本发明创造的过程中发现:密码文件头部存储保存密码文件时使用的盐和迭代次数,尽管每次保存时的参数值不同,但是在打开密钥文件时,可以从文件头部读取到盐和迭代次数,唯一不能获取的就是用户设置的主口令。而当前,基于单一主口令因子密钥派生方法,一旦单一的主口令泄露,那么整个密码文件中的所有账号密码记录也将被毫无保留地暴露。

发明内容

有鉴于此,本发明实施例提供一种密钥派生方法、文件加密方法、服务器、电子设备及存储介质,可以在一定程度上提高数据加密安全性。

为达到上述发明目的,采用如下技术方案:

第一方面,本发明实施例提供一种密钥派生方法,包括:获取用户输入的主口令以及用户认证设备的唯一性标识信息;

基于所述主口令及所述用户认证设备的唯一性标识信息,根据第一密钥派生算法进行密钥派生运算,得到用于加密数据的密钥。

可选地,所述用户认证设备为蓝牙设备,所述唯一性标识信息为蓝牙地址信息或机器码。

可选地,在获取用户输入的主口令之后,所述方法还包括:验证所述主口令是否正确;

若是,则根据密码杂凑算法对所述主口令执行哈希计算,得到所述主口令第一哈希值。

可选地,所述唯一性标识信息为蓝牙地址信息;

在获取用户认证设备的唯一性标识信息之后,所述方法还包括:

根据密码杂凑算法对所述用户认证设备的蓝牙地址信息执行哈希计算,得到对应的第二哈希值。

可选地,所述第一密钥派生算法包括:密码杂凑算法及多因子密钥派生算法;

所述基于所述主口令及所述用户认证设备的唯一性标识信息,根据第一密钥派生算法进行密钥派生运算,得到用于加密数据的密钥包括:

将所述主口令的第一哈希值和蓝牙地址信息对应的第二哈希值拼接;

根据密码杂凑算法计算得到拼接后的第三哈希值;所述第三哈希值为用于传入多因子密钥派生算法的比特串参数;

接收传入的所述比特串参数,利用多因子密钥派生算法进行迭代运算,得到用于加密数据的密钥。

可选地,所述多因子密钥派生算法为国密杂凑算法;

所述接收传入的所述比特串参数,利用多因子密钥派生算法进行迭代运算,得到用于加密数据的密钥包括:

将获取的盐值赋值给中间序列码变量作为初始中间序列码变量值;

初始化密钥数据比特串为预定字节长度的比特串;

利用所述国密杂凑算法对传入的所述比特串参数及中间序列码变量初始值执行第一次迭代运算,得到第一中间序列码变量值;

将所述初始化密钥数据比特串与所述第一中间序列码变量值异或运算,得到第一中间密钥数据比特串;所述第一中间密钥数据比特串与所述初始化密钥数据比特串长度相同;

将第一中间密钥数据比特串及第一中间序列码变量值代入所述国密杂凑算法中,执行第二次迭代运算,得到第二中间序列码变量值;

将所述第一中间密钥数据比特串与所述第二中间序列码变量值异或运算,得到第二中间密钥数据比特串;所述第二中间密钥数据比特串与所述初始化密钥数据比特串长度相同;

将第i次迭代运算得到的第i中间密钥数据比特串及第i中间序列码变量值代入所述国密杂凑算法中,执行第i+1次迭代运算,得到第i+1中间序列码变量值;

将所述第i中间密钥数据比特串与所述第i+1中间序列码变量值异或运算,得到最终的密钥数据比特串;其中,i为密钥派生运算迭代次数变量,i≥0;

将所述最终的密钥数据比特串存储为用于加密数据的密钥。

第二方面,本发明实施例还提供一种数据加密方法,包括:根据第一方面任一所述的密钥派生方法生成用于加密数据的密钥;

基于所述密钥,根据预设加密算法对所述数据进行加密。

第三方面,本发明实施例提供一种服务器,包括主机,所述主机上安装有密码管理应用程序,所述密码管理应用程序,至少用于响应用户的请求,执行第一方面任一所述的密钥派生方法。

第四方面,本发明实施例提供一种电子设备,包括:一个或者多个处理器;存储器;所述存储器中存储有一个或者多个可执行程序,所述一个或者多个处理器读取存储器中存储的可执行程序代码,运行与可执行程序代码对应的密码管理应用程序,以用于执行第一方面任一所述的密钥派生方法。

第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面任一所述的密钥派生方法。

本发明实施例提供的密钥派生方法、数据加密方法、服务器、电子设备及存储介质,通过获取用户输入的主口令以及用户认证设备的唯一性标识信息;基于口令以及用户认证设备的唯一性标识信息作为密钥派生的运算因子进行密钥派生运算,相比于基于现有单因子密钥派生方式,采用双因子参数进行密钥派生运算得到的用于加密数据的密钥,可以提高数据加密安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明密钥派生方法一实施例的流程示意图;

图2为本发明密钥派生方法另一实施例流程示意图;

图3为本发明数据加密方法一实施例流程示意图

图4为本发明服务器一实施例架构示意框图;

图5为本发明电子设备的一个实施例结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供的密钥派生方法、数据加密方法,可应用于密码管理工具中,适用于加密数据安全保护场景中。通过将用户认证设备,例如蓝牙技术,和用户主口令保护共同用于密钥派生,实现了基于双因子的密钥派生方法,提高了密钥破解的难度,进一步达到对加密文件进行安全保护的目的。

需要说明的是,该方法可以以软件的形式固化于某一制造的实体产品中,当用户在使用该产品时,可以再现本申请的方法流程。

图1为本发明密钥派生方法一实施例流程示意图;参看图1所示,所述密钥派生方法可以包括步骤:

S110、获取用户输入的主口令以及用户认证设备的唯一性标识信息。

所述主口令也称为主密码,其可以由阿拉伯数字、英文字母和/或其它特殊字符组成。不同用户设定的主口令长度可能不同,为保证主口令的安全,在一些实施例中,在获取到用户输入的主口令之后,可以通过一些密码派生算法,例如国密杂凑算法SM3,对主口令执行哈希计算,输出256比特的主口令杂凑值,以参与后续用于加密数据的密钥的派生运算,从而提高密钥的安全性。

请参看图2所示,具体的,在获取用户输入的主口令之后,所述方法还包括:验证所述主口令是否正确;

具体的,在密码管理工具的设置界面设定主口令输入框与确认主口令框,其中,确认主口令框中具有用户定义的正确的主口令;通过比对两个框口令是否一致来确认主口令输入是否正确。

若是,则根据密码杂凑算法对所述主口令执行哈希计算,得到所述主口令第一哈希值,在确认主口令输入正确之后,根据预设的密码杂凑算法,例如SM3算法计算主口令的哈希值。这样,可以提高破解加密文件密钥的复杂性,从而增加密钥的安全保护性能。

请继续参看图2所示,在一些实施例中,所述用户认证设备为蓝牙设备,所述唯一性标识信息为蓝牙地址信息或机器码。

所述用户认证设备的唯一性标识码获取方式例如可以为:在密码管理工具的设置界面设置蓝牙设备扫描功能,扫描与密码管理工具运行设备已配对连接的蓝牙设备,读取蓝牙名称和蓝牙地址,形成蓝牙设备列表供用户选择用于密码文件加解密的蓝牙设备,将用户认证的蓝牙设备地址信息,根据密码杂凑算法,例如,SM3算法执行哈希计算,将得到的蓝牙设备地址信息对应的哈希值作为后续密钥派生计算参数。

本实施例中,通过将蓝牙设备的地址信息作为唯一标识与用户输入的主口令一起参与密钥派生,可以提高派生得到的密钥的安全性。

由于机器码也可以标识蓝牙设备的唯一性,因此,所述唯一性标识也可以为机器码,将机器码与主口令一起参与密钥派生运算。

当所述唯一性标识信息为蓝牙地址信息时;在获取用户认证设备的唯一性标识信息之后,所述方法还包括:

根据密码杂凑算法对所述用户认证设备的蓝牙地址信息执行哈希计算,得到对应的第二哈希值。

S120、基于所述主口令及所述用户认证设备的唯一性标识信息,根据第一密钥派生算法进行密钥派生运算,得到用于加密数据的密钥。

请继续参看图2所示,具体的,所述第一密钥派生算法可以包括:密码杂凑算法及多因子密钥派生算法;所述基于所述主口令及所述用户认证设备的唯一性标识信息,根据第一密钥派生算法进行密钥派生运算,得到用于加密数据的密钥包括:将所述主口令的第一哈希值和蓝牙地址信息对应的第二哈希值拼接;根据密码杂凑算法计算得到拼接后的第三哈希值;所述第三哈希值为用于传入多因子密钥派生算法的比特串参数;接收传入的所述比特串参数,利用多因子密钥派生算法进行迭代运算,得到用于加密数据的密钥。

本实施例中,将主口令的哈希值和蓝牙地址的哈希值拼接后再次计算SM3算法哈希值,用于得到传入多因子-KDF算法的参数比特串P。

其中,图2中符号“||”表示拼接操作。

具体的,所述多因子密钥派生算法可以也为国密杂凑算法SM3;

所述接收传入的所述比特串参数,利用多因子密钥派生算法进行迭代运算,得到用于加密数据的密钥包括:

将获取的盐值赋值给中间序列码变量作为初始中间序列码变量值;初始化密钥数据比特串为预定字节长度的比特串。

利用所述国密杂凑算法对传入的所述比特串参数及中间序列码变量初始值执行第一次迭代运算,得到第一中间序列码变量值;

将所述初始化密钥数据比特串与所述第一中间序列码变量值异或运算,得到第一中间密钥数据比特串;所述第一中间密钥数据比特串与所述初始化密钥数据比特串长度相同;

将第一中间密钥数据比特串及第一中间序列码变量值代入所述国密杂凑算法中,执行第二次迭代运算,得到第二中间序列码变量值;

将所述第一中间密钥数据比特串与所述第二中间序列码变量值异或运算,得到第二中间密钥数据比特串;所述第二中间密钥数据比特串与所述初始化密钥数据比特串长度相同;

将第i次迭代运算得到的第i中间密钥数据比特串及第i中间序列码变量值代入所述国密杂凑算法中,执行第i+1次迭代运算,得到第i+1中间序列码变量值;

将所述第i中间密钥数据比特串与所述第i+1中间序列码变量值异或运算,得到最终的密钥数据比特串;其中,i为密钥派生运算迭代次数变量,i≥0;将所述最终的密钥数据比特串存储为用于加密数据的密钥。

示例性地,设前述实施例中计算得到的第三哈希值为比特串P;选择的盐为S,密钥派生运算迭代次数为R;将该三个参量作为输入参数传入国密杂凑算法SM3中进行迭代运算。

初始中间序列码变量值U_1=S;初始化K每一位都为0,长度256比特;对迭代次数变量i从1到R执行:计算U_(i+1)=HMAC-SM3(P,U_i);K=K

其中,HMAC-SM3表示将HMAC算法计算过程中使用的哈希算法替换为国密杂凑算法SM3计算密钥;符号^表示异或操作;盐S可以是任意指定的,也可以是随机生成的序列数,例如,随机序列数35sd6,用于保存在之后密码文件头中,解密密码文件数据块时从文件头中可以读出。迭代次数R缺省值可以为3000,也可由用户在密码管理工具的设置界面进行更改,保存在密码文件头中。

本发明实施例中,除用户设置的主口令及用户认证设备的唯一性标识信息之外,多数KDF算法还可通过增加盐(Salt)和迭代次数(Rounds)等参数来提升派生密钥的安全性。

此外,如图3所示,本发明实施例还提供一种数据加密方法,根据本发明中任一所述的密钥派生方法生成用于加密数据的密钥(S210和S220);S230、基于所述密钥,根据预设加密算法对所述数据进行加密。

其中,所述预设加密算法可以为:对称加密算法或非对称加密算法。常见的对称加密算法主要有DES、3DES、AES等算法,常见的非对称算法主要有RSA、DSA等算法,需要说明的是,这里的英文大写字母简称均为本领域技术领域的术语,具有确切的含义。

本发明中,基于多因子密钥派生算法派生出的密钥,用于数据的加密密钥,可以防止因单一因子泄露,导致密码文件中存储的所有账号密码毫无保留的暴露的问题,从而在一定程度上可以提高数据加密安全性。

根据上述描述可知,本发明实施例中,利用蓝牙和国家商用密码算法原理,将蓝牙地址和主口令作为密钥派生算法的因子,采用双因子密钥派生算法进行密钥派生,可以防止单一因子泄露导致密码文件中存储的所有账号密码毫无保留的暴露,从而有利于提高加密文件的安全性。

另外,相比于现在的KDF算法计算过程中基本采用国际上的SHA系列哈希算法或基于这些哈希算法的消息验证码(HMAC)算法,容易被黑客利用国际KDF算法中存在的漏洞发起攻击,安全性不易控制,且难以实现国产化自主可控。

本发明中,基于国密算法,例如SM3算法,自主提出了一种全新的多因子密钥派生算法DF-KDF,利用国密算法自主可控的优势,可以防止黑客利用国际KDF算法可能存在的漏洞发起攻击,提高了密钥的安全性。进一步地,基于多因子密钥派生算法,可以防止因单一因子泄露,导致密码文件中存储的所有账号密码毫无保留的暴露的问题,从而在一定程度上可以提高数据加密安全性。

实施例二

图4为本发明Web应用服务器一实施例架构示意框图,参看图4所示,本发明实施例提供一种服务器,包括主机,所述主机上安装有密码管理应用程序,所述密码管理应用程序,至少用于响应用户的请求,执行第一方面任一所述的密钥派生方法。

本实施例的服务器可以用于执行图1所示方法实施例的技术方案,本实施例的服务器,其实现原理和技术效果与实施例一类似,此处不再多赘述,可相互参看。

实施例三

本发明还实施例提供了一种电子设备,包括一个或者多个处理器;存储器;所述存储器中存储有一个或者多个可执行程序,所述一个或者多个处理器读取存储器中存储的可执行程序代码,来运行与可执行程序代码对应的程序,以用于执行实施例一任一所述的方法。

图5为本发明电子设备一个实施例的结构示意图,其可以实现本发明实施例一任一所述的方法,如图5所示,作为一可选实施例,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的密码管理应用程序程序,用于执行前述是实施例一中任一所述的密钥派生方法及文件加密方法。

处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明密钥派生方法、文件加密方法实施例一的描述,在此不再赘述。

该电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhoie)、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放模块(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。(5)其他具有数据交互功能的电子设备。

本发明还实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例一中任一所述的密钥派生方法及数据加密方法。

综上,根据上述各实施例描述可知,本实施例公开的密钥派生方法及数据加密方法,基于多因子密钥派生算法,可以防止因单一因子泄露,导致密码文件中存储的所有账号密码毫无保留的暴露的问题,从而在一定程度上可以提高数据加密安全性。

另外,基于相同的技术构思,提供的服务器上安装的密码文件管理工具,用于执行本发明实施例中的密钥派生方法,基于国密算法,例如SM3算法,自主提出了一种全新的多因子密钥派生算法DF-KDF,利用国密算法自主可控的优势,可以防止黑客利用国际KDF算法可能存在的漏洞发起攻击,提高了密钥的安全性。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质还可为磁碟、光盘、只读存储记忆体(Read-Oily Memory,ROM)或随机存储记忆体(Raidom AccessMemory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 密钥派生方法、数据加密方法、服务器、电子设备及存储介质
  • 根密钥派生方法、装置、电子设备及存储介质
技术分类

06120114694746