将椭圆曲线加密用于个人装置安全以共享秘密的制作方法

文档序号:15884555发布日期:2018-11-09 18:36阅读:175来源:国知局
将椭圆曲线加密用于个人装置安全以共享秘密的制作方法

本公开一般涉及计算机相关安全以及加密领域。更具体而言,它提供将电子装置上存储的数据加密的方法、系统和装置。它特别适合于提高个人计算装置的安全,包括但不限于移动电话、平板装置或笔记本电脑。本公开还涉及将加密数据解密的方法、系统和装置。

背景技术

密码学(cryptography)涉及保护电子装置硬盘上数据的技术,例如在电子装置遗失或被盗的情况下。电子装置可包括膝上型电脑、台式电脑、平板电脑、移动通信装置和任何其他形式的计算装置。电子装置可以与自然人、人群(例如公司雇员)、系统(例如银行系统)等等相关联。

在某些情况下,可通过口令、密码或pin来保护电子装置的硬盘上的数据。但是,通过试用不同的字符组合,可以容易地确定像4-8个字符的pin这样的短代码。口令和密码可能比pin更安全。但是,安全级别取决于用户记忆一组冗长的代码字或句子。

在其他情况下,可将加密密钥用于保护电子装置的硬盘上的数据。加密密钥可以存储在usb驱动器上,usb驱动器需要物理连接到电子装置,以传输加密密钥。但是,因为从usb驱动器向电子装置传输加密密钥期间产生的电磁信号,所传输的密钥仍然可能被第三方获得。

因此,这种加密数据保护中的问题是将秘密密钥传输给电子装置。

本说明书中对文档、动作、材料、装置、物品等等的任何讨论均不应视为承认这些事项的任何一个或全部构成现有技术基础的一部分或者是在本申请每个权利要求的优先权日之前存在的本公开相关领域中的公知常识。

在整个说明书中,词语“comprise”或者像“comprises”或“comprising”这样的变型应当理解为暗示包括所述元素、整数或步骤,或者元素、整数或步骤的群组,但是不排除任何其他元素、整数或步骤,或者元素、整数或步骤的群组。

以下文献提供了与本发明的技术背景有关的背景材料:wo2015/175854a2、cn103440209b、us2007055880、us2010023771、dei02010002241、us2012011362、us2012100833、us2012331287、wo2013053058、us8522011、us2014082358、us2015213433和ep2975570。



技术实现要素:

本发明可提供一种计算机实现的方法。它可以提供安全的方法。它可以提供在电子装置(s)处加密数据的方法,电子装置与密钥装置(c)相关联。电子装置还可以与具有第一电子装置私钥(v1s)和第一电子装置公钥(p1s)的第一非对称加密对相关联,密钥装置可以与具有第一密钥装置私钥(v1c)和第一密钥装置公钥(p1c)的第二非对称加密对相关联;

该方法可包括以下步骤:

电子装置确定一确定性密钥(dk);

电子装置从密钥装置接收第一密钥装置公钥(p1c);

基于至少第一电子装置私钥(v1s)和确定性密钥(dk),电子装置确定第二电子装置私钥(v2s),以及

基于至少第一密钥装置公钥(p1c)和确定性密钥(dk),电子装置确定第二密钥装置公钥(p2c);

基于至少第二电子装置私钥(v2s)和第二密钥装置公钥(p2c),确定秘密;

利用所确定的秘密或基于所确定的秘密的加密密钥,电子装置将数据加密;和/或

将指示确定性密钥(dk)的信息发送给能够存储信息的密钥装置。

该方法还可包括密钥装置存储指示确定性密钥(dk)的信息。

确定性密钥(dk)可以基于消息(m)。该方法可包括电子装置产生消息(m)的步骤。该方法还可包括基于确定消息(m)的散列来确定一确定性密钥(dk)。将指示确定性密钥的信息存储在密钥装置上的步骤可包括将消息(m)存储在密钥装置上。

该方法可包括基于至少第一电子装置公钥(p1s)和确定性密钥(dk)确定第二电子装置公钥(p2s)。

该方法还可包括:电子装置向密钥装置发送指示通知,所述指示通知利用具有公共产生器(g)的公共椭圆曲线密码术(ecc)系统。

第一电子装置公钥(p1s)和第一密钥装置公钥(p1c)可以基于相应的第一电子装置私钥(v1s)和第一密钥装置私钥(v1c)以及公共产生器(g)的椭圆曲线点乘法。

该方法可包括产生第一电子装置私钥(v1s)和第一电子装置公钥(p1s)。例如,可以基于在公共ecc系统中指定的可允许范围内的随机整数来产生第一电子装置私钥(v1s);而第一电子装置公钥(p1s)可以基于第一电子装置私钥(v1c)与公共产生器(g)的椭圆曲线点乘法,根据以下公式产生第一电子装置公钥(p1s):p1s=v1s×g。

根据以下公式,可以基于第一电子装置私钥(v1s)和确定性密钥(dk)的标量加法来产生第二电子装置私钥(v2s):v2s=v1s+dk。

第二电子装置公钥(p2s)至少可以基于第一电子装置公钥(p1s)和确定性密钥(dk)的椭圆曲线点加法。在特定示例中,根据以下公式,第二电子装置公钥(p2s)可以基于第一电子装置公钥(p1s)和确定性密钥(dk)与公共产生器(g)的椭圆曲线点乘法的椭圆曲线点加法:p2s=p1s+dk×g。

第二密钥装置公钥(p2c)至少可以基于第一密钥装置公钥(p1c)和确定性密钥(dk)的椭圆曲线点加法。在特定示例中,根据以下公式,第二密钥装置公钥(p2c)可以基于第一密钥装置公钥(p1c)和确定性密钥(dk)与公共产生器(g)的椭圆曲线点乘法的椭圆曲线点加法:p2c=p1c+dk×g。

该方法可包括基于所确定的秘密来确定加密密钥。例如,加密密钥可以基于秘密和识别电子装置的信息。识别信息可包括电子装置的序列号。

该方法可包括将电子装置与密钥装置连接以相互通信。例如,可经由无线协议(例如蓝牙)或通信网络(例如因特网或本地通信网络)将电子装置连接到密钥装置。或者,可通过导线将电子装置连接到密钥装置,例如经由电缆或电子装置的合适端口。

该方法还可包括在与电子装置相关联的数据存储器处存储第一密钥装置公钥(p1c)

附加地或可选地,本发明可以提供一种在电子装置处解密数据的计算机实现方法,数据根据如上所述加密数据的方法加密,解密数据的方法包括步骤:

在电子装置处从密钥装置接收指示确定性密钥(dk)的信息;

基于所接收的指示确定性密钥(dk)的信息确定秘密;以及

利用秘密或者基于秘密的加密密钥,在电子装置处将加密数据解密。

该方法可包括验证密钥装置。为此,该方法可包括电子装置产生验证消息(ma)并将验证消息(ma)发送给密钥装置。

该方法可包括密钥装置产生第二非对称加密对,第二非对称加密对具有第二密钥装置私钥(v2c)和第二密钥装置公钥(p2c)。第二密钥装置私钥(v2c)可以基于确定性验证密钥(dka)和第一密钥装置私钥(v1c)。第二密钥装置公钥(p2c)可以基于确定性验证密钥(dka)和第一密钥装置公钥(p1c)。

该方法可包括确定一确定性验证密钥(dka)。例如,可基于验证消息(ma)确定一确定性验证密钥(dka),例如通过确定消息(ma)的散列。

该方法可包括密钥装置基于确定性验证密钥(dka)和第二密钥装置私钥(v2c)产生签名验证消息(sma)。

该方法还可包括:电子装置从密钥装置接收签名验证消息(sma);通过第二密钥装置公钥(p2c)验证签名消息(sma);以及基于验证签名验证消息(sma)的结果验证密钥装置。

解密数据的方法可包括电子装置从密钥装置请求指示确定性密钥(dk)的信息。在其中指示确定性密钥(dk)的信息包括消息(m)的实施例中,响应于在密钥装置处接收请求,密钥装置可以基于消息(m)产生签名消息(sm),并将签名消息(sm)发送给电子装置。可以基于消息(m)以及第一密钥装置私钥或第二密钥装置私钥产生签名消息(sm)。

解密数据的方法还可包括电子装置证实签名消息(sm),并检索消息(m),使得能够在电子装置处确定秘密,用于解密数据。

本发明还可提供用于实现上述方法的任何方案或实施例的计算机实现的系统。它可以提供用于在电子装置处加密数据的计算机系统,该计算机系统包括:

电子装置,与第一非对称加密对相关联,第一非对称加密对具有第一电子装置私钥(v1s)和第一电子装置公钥(p1s),

密钥装置,与第二非对称加密对相关联,第二非对称加密对具有第一密钥装置私钥(v1c)和第一密钥装置公钥(p1c);

其中,电子装置包括处理器,处理器用于:

确定一确定性密钥(dk);

从密钥装置接收第一密钥装置公钥(p1c);

基于至少第一电子装置私钥(v1s)和确定性密钥(dk)确定第二电子装置私钥(v2s),以及

基于至少第一密钥装置公钥(p1c)和确定性密钥(dk)确定第二密钥装置公钥(p2c);

基于至少第二电子装置私钥(v2s)和第二密钥装置公钥(p2c)确定秘密;以及

利用所确定的秘密或基于所确定的秘密的加密密钥,将电子装置上的数据加密;

其中,将指示确定性密钥(dk)的信息存储于密钥装置。

确定性密钥(dk)可以基于消息(m)。处理器可用于产生消息(m)。处理器还可用于基于确定消息(m)的散列来确定一确定性密钥(dk)。

处理器可用于至少基于第一电子装置公钥(p1s)和确定性密钥(dk)来确定第二电子装置公钥(p2s)。

在系统中,电子装置可包括接口,且密钥装置可包括密钥装置接口,以在电子装置与密钥装置之间建立通信。例如,可经由无线协议(例如蓝牙)或通信网络(例如因特网或本地通信网络)将电子装置连接到密钥装置。或者,可通过导线将电子装置连接到密钥装置,例如经由电缆或电子装置的合适端口。

电子装置的接口可用于向关联密钥装置的密钥装置接口发送指示利用具有公共产生器(g)的公共椭圆曲线密码术(ecc)系统的通知。

第一电子装置公钥(p1s)和第一密钥装置公钥(p1c)可以基于相应的第一电子装置私钥(v1s)和第一密钥装置私钥(v1c)与产生器(g)的椭圆曲线点乘法。

处理器可用于产生第一电子装置私钥(v1s)和第一电子装置公钥(p1s)。例如,可以基于在公共ecc系统中指定的可允许范围内的随机整数来产生第一电子装置私钥(v1s);可以根据下面的公式,基于第一电子装置私钥(v1c)和公共产生器(g)的椭圆曲线点乘法产生第一电子装置公钥(p1s):p1s=v1sxg。

根据以下公式,第二电子装置私钥(v2s)可以基于第一电子装置私钥(v1s)和确定性密钥(dk)的标量加法:v2s=v1s+dk。

第二电子装置公钥(p2s)至少可以基于第一电子装置公钥(p1s)和确定性密钥(dk)的椭圆曲线点加法。在特定示例中,根据以下公式,第二电子装置公钥(p2s)可以基于第一电子装置公钥(p1s)和确定性密钥(dk)与公共产生器(g)的椭圆曲线点乘法的椭圆曲线点加法:p2s=p1s+dk×g。

第二密钥装置公钥(p2c)至少可以基于第一密钥装置公钥(p1c)和确定性密钥(dk)的椭圆曲线点加法。在特定示例中,根据以下公式,第二密钥装置公钥(p2c)可以基于第一密钥装置公钥(p1c)和确定性密钥(dk)与公共产生器(g)的椭圆曲线点乘法的椭圆曲线点加法:p2c=p1c+dk×g。

处理器可用于基于所确定的秘密来确定加密密钥。例如,加密密钥可以基于所确定的秘密和电子装置的识别信息。识别信息可包括电子装置的序列号。

电子装置可包括数据存储器,其中可以存储第一密钥装置公钥(p1c)。

密钥装置可包括密钥装置数据存储器,用于至少存储指示确定性密钥的信息。

如上所述的计算机系统还可用于解密数据,电子装置的处理器可用于:

从密钥装置接收指示确定性密钥(dk)的信息;

基于指示确定性密钥(dk)的信息确定秘密;以及

利用所确定的秘密或基于所确定的秘密的加密密钥来解密数据。

处理器可用于验证密钥装置。为此,处理器可以产生验证消息(ma)并将验证消息(ma)发送给密钥装置。

密钥装置可包括密钥装置处理器,密钥装置处理器可用于产生具有第二密钥装置私钥(v2c)和第二密钥装置公钥(p2c)的第二非对称加密对。第二密钥装置私钥(v2c)可以基于确定性验证密钥(dka)和第一密钥装置私钥(v1c)。第二密钥装置公钥(p2c)可以基于确定性验证密钥(dka)和第一密钥装置公钥(p1c)。

密钥装置处理器可用于确定一确定性验证密钥(dka)。例如,可以基于验证消息(ma)确定一确定性验证密钥(dka),例如通过确定消息(ma)的散列。

密钥装置处理器可用于基于确定性验证密钥(dka)和第二密钥装置私钥(v2c)产生签名验证消息(sma)。

电子装置的处理器可用于:从密钥装置接收签名验证消息(sma);通过第二密钥装置公钥(p2c)证实签名消息(sma);以及基于证实签名验证消息(sma)的结果验证密钥装置。

电子装置的处理器可以从密钥装置请求指示确定性密钥(dk)的信息。在指示确定性密钥(dk)的信息包括消息(m)的实施例中,响应于在密钥装置处接收请求,密钥装置处理器可以基于消息(m)产生签名消息(sm)并将签名消息(sm)发送给电子装置。可以基于消息(m)以及第一密钥装置私钥或第二密钥装置私钥产生签名消息(sm)。

电子装置的处理器还可用于证实签名的消息并检索消息(m),使得能够确定秘密,用于将数据解密。

一种用于加密数据的电子装置,该电子装置与密钥装置相关联,其中,电子装置与具有第一电子装置私钥(v1s)和第一电子装置公钥(p1s)的第一非对称加密对相关联,密钥装置与具有第一密钥装置私钥(v1c)和第一密钥装置公钥(p1c)的第二非对称加密对相关联;电子装置包括处理装置,处理装置用于:

确定一确定性密钥(dk);

从关联的密钥装置接收第一密钥装置公钥(p1c);

基于至少第一电子装置私钥(v1s)和确定性密钥(dk),确定第二电子装置私钥(v2s),以及

基于至少第一密钥装置公钥(p1c)和确定性密钥(dk),确定第二密钥装置公钥(p2c);

基于至少第二电子装置私钥(v2s)和第二密钥装置公钥(p2c),确定秘密;以及

利用所确定的秘密或基于所确定的秘密的加密密钥,将电子装置上的数据加密;

其中,指示确定性密钥(dk)的信息被发送给能够存储它的密钥装置。

一种计算机程序,包括机器可读指令,用于使电子装置的处理装置实现上述任何一种方法。

本发明的一个或多个实施例或方案可包括或使用在第一节点(c)处确定公共秘密(cs)的计算机实现的方法,公共秘密(cs)为第一节点(c)和第二节点(s)共用。第一节点(c)可以与具有第一节点主私钥(v1c)和第一节点主公钥(p1c)的第一非对称加密对相关联,第二节点(s)可以与具有第二节点主私钥(v1s)和第二节点主公钥(p1s)的第二非对称加密对相关联。该方法可包括:

基于至少第一节点主私钥(v1c)和确定性密钥(dk),确定第一节点第二私钥(v2c);

基于至少第二节点主公钥(p1s)和确定性密钥(dk),确定第二节点第二公钥(p2s);以及

基于第一节点第二私钥(v2c)和第二节点第二公钥(p2s),确定公共秘密(cs),

其中,第二节点(s)具有基于第一节点第二公钥(p2c)和第二节点第二私钥(v2s)的相同公共秘密(s),其中:

第一节点第二公钥(p2c)基于至少第一节点主公钥(p1c)和确定性密钥(dk);以及

第二节点第二私钥(v2s)基于至少第二节点主私钥(v1s)和确定性密钥(dk)。

确定性密钥(dk)基于消息(m)。

因此,本发明可以提供用于提高电子装置和/或存储其上的数据的安全的技术和装置。因为本发明的增强安全机制,本发明还可以提供更好的电子装置。

附图说明

下面参考以下附图描述本公开的示例:

图1是用于加密数据的示例性系统的示意图;

图2是用于注册图1的电子装置和密钥装置的计算机实现方法的流程图;

图3是利用秘密在图1的电子装置处将数据加密的计算机实现方法的流程图;

图4是验证图1的密钥装置的计算机实现方法的流程图;

图5是在验证密钥装置之后在电子装置处将加密数据解密的计算机实现方法的流程图;以及

图6示出示例性处理装置的示意图。

具体实施方式

概述

下面描述在电子装置处将数据加密的方法、装置和系统。

图1示出计算机系统1,它包括与密钥装置5通信的电子装置3。电子装置3具有相关联的第一处理装置23,且密钥装置5具有相关联的第二处理装置25。电子装置3可以是个人电子装置,例如膝上型电脑、台式电脑、平板电脑、移动通信装置、计算机服务器或能够处理数据的任何其他计算装置。在图1所示的这个特定示例中,用膝上型电脑表示电子装置3。

密钥装置5可以是其他个人电子装置,例如移动通信装置、便携式存储装置,例如usb驱动器等等。在图1所示的这个特定示例中,用移动通信装置表示密钥装置5。

电子装置3可以经由无线协议(例如蓝牙)或通信网络(例如互联网或本地通信网络)与密钥装置5通信。或者,电子装置3可以物理连接到密钥装置5,例如经由电子装置的usb端口或经由电缆连接。在图1所示的这个特定示例中,电子装置3经由蓝牙7与密钥装置5通信。

电子装置3与第一非对称加密对相关联,第一非对称加密对具有电子装置主私钥(v1s)和电子装置主公钥(p1s)。密钥装置5与第二非对称加密对相关联,第二非对称加密对具有密钥装置主私钥(v1c)和密钥装置主公钥(p1c)。第一非对称加密对和第二非对称加密对可以在注册期间产生。下面参考图2进一步详细描述电子装置3和密钥装置5进行的注册方法200、300。每个装置的公钥可以在装置3、5之间公开共享,例如经由蓝牙7。

本发明的实施例可包括这样一种技术(或其变型(多个)),它通常被提供为:在第一节点(c)确定第一节点(c)与第二节点(s)共用的公共秘密(cs),其中第一节点(c)与第一非对称加密对相关联,第一非对称加密对具有第一节点主私钥(v1c)和第一节点主公钥(p1c),且第二节点(s)与第二非对称加密对相关联,第二非对称加密对具有第二节点主私钥(v1s)和第二节点主公钥(p1s);所述方法或技术包括:

至少基于第一节点主私钥(v1c)和确定性密钥(dk)确定第一节点第二私钥(v2c);

至少基于第二节点主公钥(p1s)和确定性密钥(dk)确定第二节点第二公钥(p2s);以及

基于第一节点第二私钥(v2c)和第二节点第二公钥(p2s)确定公共秘密(cs),

其中,第二节点(s)具有基于第一节点第二公钥(p2c)和第二节点第二私钥(v2s)的相同公共秘密(s),其中:

第一节点第二公钥(p2c)至少基于第一节点主公钥(p1c)和确定性密钥(dk);以及

第二节点第二私钥(v2s)至少基于第二节点主私钥(v1s)和确定性密钥(dk)。

确定性密钥(dk)可以基于消息(m)。

根据本发明的说明性实施例:为了在电子装置3处将数据加密,基于与上述类似的技术来确定秘密。该秘密是根据电子装置3的私人加密密钥和密钥装置5的公共加密密钥来确定的。通过确定这个秘密,可以利用基于所确定的秘密的加密密钥(e)将数据加密。在一个或多个示例中,可将秘密用作加密密钥(e)。这种技术的其中一个优点是不需要在任何装置3、5上传输或存储秘密或加密密钥(e)。与现有技术的配置相比,这样提供了更安全的解决方案。

为了在电子装置3处利用秘密将数据加密,在装置3、5之间不传递任何私钥的情况下进行方法400,下面参考图3更详细地进行描述。

一般而言,通过电子装置3进行的加密数据的方法一开始包括将电子装置3与密钥装置5连接从而与密钥装置5通信。可通过有线连接或无线连接(例如蓝牙7)来建立通信。

该方法还包括确定一确定性密钥(dk),确定性密钥可以基于由电子装置3创建的消息(m)。例如,电子装置3的处理装置23可以产生消息(m),然后利用标准算法来创建形成确定性密钥(dk)的消息的散列。

该方法还包括至少基于电子装置主私钥(v1s)和确定性密钥(dk)确定第二电子装置私钥(v2s),并基于密钥装置主公钥(p1c)和确定性密钥(dk)确定第二电子装置公钥(v2c)。然后,基于第二电子装置私钥(v2s)和第二密钥装置公钥(p2c)确定秘密。可选地,该方法可包括至少基于电子装置主公钥(p1s)和确定性密钥(dk)确定第二电子装置公钥(p2s)。

在其他方法步骤中,然后可以利用基于所确定的秘密的加密密钥(e)来加密数据。如上所述,所确定的秘密本身可以用作加密密钥(e),或者可以基于秘密来确定加密密钥(e)。在电子装置上将数据加密之后,可将秘密擦除,并且只将确定性密钥(dk)或消息(m)发送给密钥装置5,在那里可以安全地存储。随后可以利用在密钥装置5上存储的确定性密钥(dk)或消息(m)将加密数据解密。

应当理解,要加密/解密的数据可包括一个或多个单独文件、包括文件的一个或多个文件夹、或者电子装置的整个硬盘驱动器。在一些示例中,该方法可包括提示用户选择要加密/解密的文件和/或文件夹。在这种情况下,密钥装置5可以存储指示每个文件和文件夹的确定性密钥的信息并相应地链接它们。

注册方法200、300

下面参考图2描述注册方法200、300的示例,其中方法200由电子装置3进行且方法300由密钥装置5进行。这包括为相应装置3、5建立第一非对称加密对和第二非对称加密对。

非对称加密对包括关联的私钥和公钥,例如在公钥加密中利用的密钥。在本示例中,利用椭圆曲线密码术(ecc)和椭圆曲线运算的性质来产生非对称加密对。

ecc的标准可包括已知标准,例如通过高效密码术标准组(wwsv.sceg.org)描述的标准。在us5,600,725、us5,761,305、us5889,865、us5,896,455、us5,933,504、us6,122,736、us6,141,420、us6,618,483、us6,704,870、us6,785,813、us6,078,667、us6,792,530中也描述了椭圆曲线密码术。

在方法200、300中,这包括电子装置3和密钥装置5在步骤210、310安排到公共ecc系统并使用公共产生器(g)。在一个示例中,公共ecc系统可以基于secp256k1(比特币所使用的ecc系统)。公共产生器(g)可以选择、随机产生、或分配。

在图1所示的具体示例中,其中电子装置3是膝上型电脑,密钥装置5是移动通信装置,各个装置3、5之间的通信由应用程序编程接口(api)实现,api与移动通信装置5上安装的专用应用程序通信。为此,可将软件下载并安装到与移动通信装置上安装的专用应用程序兼容的膝上型电脑上。

在特定示例中,密钥装置5不仅可以提供用于密钥装置的软件应用程序,还可以提供用于电子装置的软件。通过这种方式,当密钥装置连接到电子装置时,可通过从密钥装置执行安装来将软件安装在电子装置上。

下面参考通过电子装置3进行的方法200,方法200包括在步骤210安排公共ecc系统和公共产生器(g)。这可包括将指示公共ecc系统和公共产生器的信息从电子装置3发送给密钥装置5,或者从第三装置(例如远程服务器计算机)接收信息。例如,电子装置3可以经由蓝牙7向密钥装置5发送指示利用具有公共产生器(g)的公共ecc系统的通知。相应地,密钥装置5可通过发送指示承认使用公共ecc系统和公共产生器(g)的通知,在步骤310安排。

方法200还包括在步骤220,在电子装置3处产生包括电子装置主私钥(v1s)和电子装置主公钥(p1s)的第一非对称加密对。在该具体示例中,至少部分地基于在公共ecc系统中指定的可允许范围内的随机整数来确定电子装置主私钥(v1s)。然后根据以下公式,基于电子装置主私钥(p1s)与公共产生器(g)的椭圆曲线点乘法确定电子装置主公钥(p1s):

p1s=v1s×g(公式1)

因此,第一非对称加密对包括:

v1s:通过电子装置保密的电子装置主私钥。

p1s:令其公知的电子装置主公钥。

电子装置3可将第一非对称加密对存储在与电子装置3相关联的第一数据存储器13中。为了安全起见,可将电子装置主私钥(v1s)存储在第一数据存储器13的安全部中,以确保密钥保持私密。

在该示例中,方法200包括在步骤230将电子装置公共主密钥(p1s)发送给密钥装置3。但是,为了加密电子装置3上的数据,该步骤可能不是必须的。

下面参考通过密钥装置5进行的方法300,在该具体示例中,密钥装置5在步骤320接收电子装置主公钥(p1s)并在步骤330将所接收的电子装置主公钥(p1s)存储在密钥装置5的存储元件内。

类似于方法200,密钥装置5处的方法300包括在步骤340产生包括密钥装置主私钥(v1c)和密钥装置主公钥(p1c)的第二非对称加密对。密钥装置主私钥(v1c)也是在公共ecc系统中指定的允许范围内的随机整数。相应地,通过以下公式确定密钥装置主公钥(p1c):

p1c=v1c×g(公式2)

因此,第二非对称加密对包括:

v1c:通过密钥装置保密的密钥装置主密钥。

p1c:令其公知的密钥装置主公钥。

密钥装置5可将第二非对称加密对存储在密钥装置的第二数据存储器15中。方法300还包括在步骤330将密钥装置主公钥(p1c)发送给电子装置3,在那里可将其存储在存储器13中。

在一些替代方案中,可以接收相应的公共主密钥并将其存储在与第三装置(例如可信的第三方)相关联的第三数据存储中。这可能包括充当公共目录的第三方,例如证书颁发机构。因此在一些示例中,仅当确定需要秘密时,电子装置3才可以请求和接收密钥装置主公钥(p1c)。

注册步骤可能仅需要作为初始设置发生一次。之后,可以在安全事项中重新使用主密钥,以确定尤其依赖于确定性密钥(dk)的秘密。

在电子装置3处加密数据

下面参考图3描述通过确定基于电子装置3的私钥和密钥装置5的公钥的秘密在电子装置3处加密数据的示例性方法400。秘密可以仅用于一个周期,每个周期是数据加密和解密的完整轮次。

应当理解,对于每个加密和解密周期,可以为电子装置和密钥装置两者确定新的私钥和公钥。例如,可通过重新散列消息(m)来确定新的私钥和公钥,如同在通过引用全部合并于此的上述共同提交申请中进一步详细描述的。通过这种方式,可以创建子密钥,其中每个子密钥链接到主密钥。

产生消息(m)410

在本示例中,方法400包括在步骤410,在电子装置3处产生消息(m)。消息(m)可以是随机的、伪随机的、或用户定义的。在一个示例中,消息(m)基于unixtime和nonce(和任意值)。例如,可将消息(m)提供为:

message(m)=unixtime+nonce(公式3)

在一些示例中,消息(m)是任意的。但是应当理解,消息(m)可以具有在某些应用中可能有用的选择值(例如unixtime等等)。

方法400包括在步骤420经由蓝牙7将消息(m)发送给将要存储消息(m)的密钥装置5。重要的是,可通过不安全网络将消息(m)发送给密钥装置5,因为消息(m)不包括关于私钥的信息。

应当理解,可以在任何时间将消息(m)传递给密钥装置5。例如,在完成数据加密之后,可将消息(m)发送给密钥装置5。

确定一确定性密钥430

方法400还包括在步骤430基于消息(m)确定一确定性密钥(dk)的步骤。在本示例中,这包括确定消息的加密散列。加密散列算法的示例包括sha-256,以创建256位确定性密钥(dk)。也就是:

dk=sha-256(m)(公式4)

为了产生加密密钥(e),消息的选择可以是任意的,并且将针对每个加密/解密周期重新选择。在本示例中,通过散列将消息(m)减少到160位,从而将消息长度保持为短长度。

应当理解,可利用其他散列算法。这可以包括安全散列算法(sha)系列中的其他散列算法。一些具体示例包括sha-3子集中的实例,包括sha3-224、sha3-256、sha3-384、sha3-512、shake128、shake256。其他散列算法可包括race完整性基元评估消息摘要(ripemd)系列中的算法。具体示例可包括ripemd-160。其他散列函数可以基于zemor-tillich散列函数和基于knapsack的散列函数。

确定第二私钥和公钥440、450、460

然后,方法400包括在步骤440、450、460基于确定性密钥(dk),即消息(m)的散列,确定下面的第二密钥。

在步骤440,基于电子装置主私钥(v1s)和消息(m)的散列确定第二电子装置私钥(v2s)。根据以下公式,这可以基于电子装置主私钥(v1s)和消息(m)的散列的标量加法:

v2s=v1s+sha-256(m)(公式5)

在步骤450,基于电子装置主公钥(p1s)和消息(m)的散列确定第二电子装置公钥(p2s)。这可以根据以下公式确定:

p2s=p1s+sha-256(m)×g(公式6)

在步骤460,基于密钥装置主公钥(p1c)和消息(m)的散列确定第二密钥装置公钥(p2c)。这可以根据以下公式确定:

p2c=p1c+sha-256(m)×g(公式7)

应当注意,在应用椭圆曲线密码术的这个具体示例中,“g”表示产生器,运算符“+”表示椭圆曲线点加法,运算符“×”表示椭圆曲线点乘法。

此外应当注意,对于数据的加密而言,可能不必确定第二电子装置公钥p2s。如下进一步详述的,为了确定秘密,第二电子装置公钥p2s可能不是必须的。

确定秘密470

然后,电子装置3可以在步骤470基于所确定的第二电子装置私钥(v2s)和所确定的第二密钥装置公钥(p2c)来确定秘密。根据以下公式,可通过电子装置3确定秘密:

cs=v2c×p1s(公式8)

秘密和加密密钥

秘密可用作对称加密密钥或用作确定对称加密密钥的基础。

在本具体示例中,方法400包括进一步的步骤480:基于所确定的秘密确定加密密钥(e)。加密密钥(e)还基于电子装置的序列号,以保证加密密钥(e)专用于电子装置3。加密密钥(e)根据以下公式确定:

e=sha256(sha256(salt+secret)+serialnumber)(公式9)

其中salt=message(m)

在本具体示例中,randomsalt的概念用于确定加密密钥(e)。应当理解,可以使用基于所确定的秘密来计算加密密钥(e)的任何合适技术(如果有的话)。

方法400还包括在步骤490利用所确定的加密密钥(e)在电子装置3处加密数据。应当理解,可以使用利用加密密钥(e)来加密数据的任何合适方法。

重要的是,电子装置3不需要存储加密密钥(e)或秘密,因为可以基于密钥装置5的数据存储器上存储的消息(m)来重新计算。

加密数据的解密

在电子装置3处将数据加密之后,下面参考图4和图5描述在电子装置3处将加密数据解密的方法。为了解密数据,电子装置3重新计算在数据加密时先前确定的秘密。

一开始,将电子装置3连接到密钥装置5,以相互通信。连接各个装置3、5的步骤可包括确定在装置上运行的相应软件是否兼容和同步。

验证500关键装置5

在电子装置3处将加密数据解密之前,在本具体示例中,一开始通过电子装置3来验证密钥装置5。

下面参考图4描述验证密钥装置5的方法500。验证密钥装置5的方法500可以是在电子装置3处的数据解密周期的一部分。

方法500包括在步骤510,在电子装置3处产生将用于验证密钥装置5是密钥装置5的验证消息(ma)。应当理解,所产生的消息(ma)可以单独用于验证密钥装置5。但是在一些示例中,验证消息(ma)可以形成如参考图3所述的消息(m),用于下一个加密-解密周期的加密处理。

方法500包括在步骤520,经由蓝牙7从电子装置3在密钥装置5处接收验证消息(ma)。

然后在步骤530,密钥装置5基于消息(ma)确定一确定性验证密钥(dka)。例如,确定性验证密钥(dka)可以是验证消息的散列,类似于方法400的步骤430,并且可以根据以下公式确定:

dka=sha-256(ma)(公式10)

然后,密钥装置5基于确定性验证密钥(dka)确定新的非对称加密对。具体到本示例,方法500包括在步骤540根据以下公式确定第二密钥装置私钥v2c:

v2c=v1c+sha-256(ma)(公式11)

方法500还包括在步骤550根据以下公式确定第二密钥装置公钥p2c。

p2c=p1c+sha-256(ma)×g(公式12)

方法300还包括在步骤560基于验证消息(ma)和确定的第二密钥装置私钥(v2c)产生签名消息(sma)。产生签名消息包括应用数字签名算法对验证消息(ma)进行数字签名。在一个示例中,这包括将第二密钥装置私钥(v2c)应用于椭圆曲线数字签名算法(ecdsa)中的消息,以获得签名消息(sma)。可以根据以下公式对验证消息(ma)进行签名:

sma=sig-v2c<ma>(公式13)

ecdsa的实例包括基于具有secp256k1、secp256r1、secp384r1、se3cp521r1的ecc系统的ecdsa。

随后在步骤570,将签名的验证消息(sma)发送给电子装置3用于密钥装置5的验证。

方法500包括在步骤580从密钥装置5接收签名的验证消息(sma)。然后在步骤590,电子装置3可通过在步骤550确定的第二密钥装置公钥(p2c)证实签名的验证消息(sma)上的签名。

可以根据椭圆曲线数字签名算法(ecdsa)来完成证实数字签名。重要的是,通过第二密钥装置私钥(v2c)签名的签名验证消息(sma)应当仅通过对应的第二密钥装置公钥(p2c)来正确证实,因为v2c和p2c形成加密对。因为这些密钥对于在密钥装置注册时产生的密钥装置主私钥(v1c)和密钥装置主公钥(p1c)具有确定性,所以可将证实签名验证消息(sma)用作验证发送签名消息(sma)的所谓密钥装置5是与注册期间的密钥装置5相同的密钥装置5的基础。

重新计算加密密钥(e)以将加密数据解密

在成功验证密钥装置5之后,电子装置3通过重新计算秘密并由此重新计算加密密钥(e)来将加密数据解密。下面参考图5描述将加密数据解密的示例性方法600。

方法600包括在步骤610请求先前在加密周期中使用并存储在密钥装置5上的消息(m),如方法400的步骤420所述。

然后,方法600包括在步骤630接收消息(m)。在本具体示例中,在将消息(m)发送给电子装置3之前,密钥装置5在步骤620利用第二密钥装置私钥(v2c)对消息(m)进行签名。根据以下公式对消息(m)进行签名:

sm=sig-v2c<m>(公式14)

方法600还包括在步骤650确认签名消息(sm)。这可以通过独立地确定第二密钥装置公钥(p2c)然后进行将椭圆曲线数字签名算法(ecdsa)应用于sm和p2c来完成。可以根据以下公式确定第二密钥装置公钥:

p2c=p1c+sha-256(m)xg(公式15)

然后,方法600包括在步骤660从签名消息(m)中检索消息(m),使得电子装置3可以在步骤430至470之后在步骤670重新计算秘密,如参考图3所述。

在进一步的步骤680中,基于秘密和电子装置的序列号重新确定加密密钥(e),如参考方法400的步骤480所述。一旦确定加密密钥(e),就可以在步骤690将数据解密。

应当理解,对于将加密数据解密而言,参考图4所述的验证方法对于某些实施例可能并非必须。

处理装置

如上所述,电子装置3和密钥装置5可以是个人电子装置,例如膝上型电脑、平板电脑、移动通信装置、计算机服务器等等。电子装置可包括处理装置23、25、数据存储器13、15和用户界面14。

图6示出处理装置23、25的示例。处理装置23、25可以用在电子装置3或密钥装置5上。处理装置23、25包括处理器1510、存储器1520和接口装置1540,它们经由总线1530相互通信。存储器1520存储用于实现上述方法200、300、400、500和600的指令和数据,而处理器1510进行来自存储器1520的指令,以实现方法200、300、400、500和600。接口装置1540可包括通信模块,其促进与通信网络(例如蓝牙7)的通信,并且在一些示例中,促进与用户接口14及外设(例如数据存储13、15)的通信。应当注意,虽然处理装置1501可以是独立的网络元件,但是处理装置1501也可以是另一个网络元件的一部分。此外,可将处理装置1501进行的一些功能分布在多个网络元件之间。例如,电子装置3可以具有多个处理装置23,以在与电子装置3相关联的安全局域网中进行方法200、400以及方法500、600的一部分。

在本公开描述用户、发行者、商家、供应商或其他实体进行特定动作(包括签名、发布、确定、计算、发送、接收、创建等等)的情况下,为了说明清楚起见使用该措辞。应该理解,这些动作通过这些实体操作的计算装置来进行。

签名可包括执行加密功能。该功能具有明文输入和密钥输入,例如私钥。处理器可以执行该功能,以计算可以用作签名的数字或字符串。然后将签名与明文一起提供,以提供签名文本。如果消息文本或密钥改变一个位,那么签名就完全改变。虽然计算签名需要的计算力很少,但是重新创建具有给定签名的消息实际上是不可能的。通过这种方式,如果私钥可用,那么只能改变明文并附带有效签名。此外,其他实体可以利用公开可用的公钥容易地确认签名。

在大多数情况下,加密和解密包括执行加密功能的处理器,以分别计算表示加密消息或明文消息的输出串。

密钥、令牌、元数据、交易、报价、合同、签名、脚本、元数据、邀请等等指的是表示为存储在数据存储器上的数字、文本或字符串的二进制数据,例如“string”或“int”类型或其他类型或文本文件的程序代码中的变量。

对等分类账的一个示例是比特币区块链。转移资金或以比特币货币支付费用包括在比特币区块链上创建交易,其中从交易中输出资金或费用。比特币交易的示例包括输入交易散列、交易金额、一个或多个目的地、收款人或多个收款人的公钥、以及通过利用输入交易作为输入消息而创建的签名、以及付款人用于计算签名的私钥。可通过利用公钥检查输入交易散列存在于比特币区块链的副本中并且利用公钥签名是正确的来确认交易。为了保证在其他地方尚未利用相同的输入交易散列,将该交易广播给计算节点(矿工)的网络。仅当输入交易散列尚未连接且签名有效时,矿工才接受并将交易记录在区块链上。如果输入交易散列已经链接到不同的交易,那么矿工拒绝该交易。

当两个项目关联时,这表示这些项目之间存在逻辑连接。例如,在数据库中,可将两个项目的识别符存储在相同记录中,以使两个项目相互关联。在交易中,可将两个项目的识别符包括在交易字符串中,以使两个项目相互关联。

授权另一个实体可包括利用私钥计算交易的签名串,并将签名串提供给实体,以允许实体利用签名来确认交易。

具有与另一个实体的账户的用户可包括存储关于用户的信息的实体,例如电子邮件地址、名称和可能的公钥。例如,实体可以维护数据库,例如sql、orientdb、mongodb等等。在一些示例中,实体也可以存储用户的私钥的其中一个或多个。

本领域技术人员应当理解,在不脱离本公开宽泛的一般范围的情况下,可以对上述实施例进行多种变化和/或修改。因此,上述实施例在所有方面都应视为说明性而非限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1