首页> 中国专利> 一种组时间基一次性密码方法及设备

一种组时间基一次性密码方法及设备

摘要

本发明公开了一种组时间基一次性密码方法及设备。该密码方法包括:组成员基于秘密种子获取组成员的验证点信息,记为第一验证点信息;第三方基于E个验证阶段内第一验证点信息和组成员的身份信息构建梅克尔树,将梅克尔证明发送给该组成员;组成员据当前时间、身份信息、当前验证阶段的梅克尔证明生成组时间基一次性密码并发送至验证者;验证者接收组成员发送的组时间基一次性密码和密码生成时间,若推算的梅克尔树根已存入布隆过滤器,则接收的组时间基一次性密码验证通过。扩展时间基一次性密码到组以解决隐私问题,利用梅克尔树和布隆过滤器实现了高效的密码生成和验证方法,在验证设备上实现了恒定的内存成本。

著录项

  • 公开/公告号CN113839774A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 西南大学;

    申请/专利号CN202111186553.7

  • 申请日2021-10-12

  • 分类号H04L9/08(20060101);H04L9/32(20060101);

  • 代理机构50270 重庆西南华渝专利代理有限公司;

  • 代理人陈香兰

  • 地址 400700 重庆市北碚区天生路2号

  • 入库时间 2023-06-19 13:48:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-01

    授权

    发明专利权授予

说明书

技术领域

本发明涉及信息安全技术领域,特别是涉及一种组时间基一次性密码方法及设备。

背景技术

基于时间的一次性密码(Time-Based One-Time Password,简称TOTP)广泛用于许多双因素身份验证系统。它允许证明者设备生成与时间相关的密码,该密码在预定义的持续时间内保持有效。验证者通过使用当前时间和一些其他信息来检查密码的真实性。TOTP是为证明者设备向验证者证明其身份而设计的。因此,它不提供身份隐私保护,即验证者必须事先知道证明者设备的身份,以便检查每个基于时间的一次性密码TOTP的有效性。

发明内容

本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种组时间基一次性密码方法及设备。

为了实现本发明的上述目的,根据本发明的第一个方面,本发明提供了一种组时间基一次性密码方法,包括密码生成步骤和/或密码验证步骤;所述密码生成步骤包括:组建证明组,所述证明组中至少包括一个证明者,证明组的组成员将身份信息发送至第三方;预设E个验证阶段,所述E为正整数;组成员根据身份信息获取每个验证阶段的秘密种子,组成员基于每个验证阶段的秘密种子获取组成员在该验证阶段的验证点信息,将所述验证点信息记为第一验证点信息;第三方基于E个验证阶段内所有第一验证点信息和组成员的身份信息构建梅克尔树,计算梅克尔树根,将梅克尔树根插入布隆过滤器中,获取组成员在每个验证阶段的梅克尔证明;在E个验证阶段运行时,组成员根据当前时间、身份信息、当前验证阶段的梅克尔证明生成组时间基一次性密码;所述密码验证步骤包括:证明者将组时间基一次性密码和密码生成时间发送给验证者;验证者接收证明者发送的组时间基一次性密码,基于所述组时间基一次性密码推算出梅克尔树根,判断推算的梅克尔树根是否已存入布隆过滤器,若推算的梅克尔树根已存入布隆过滤器,则接收的组时间基一次性密码验证通过,若推算的梅克尔树根还未存入布隆过滤器,则接收的组时间基一次性密码验证失败。

为了实现本发明的上述目的,根据本发明的第二个方面,本发明提供了一种证明者设备,所述证明者设备作为一个组成员参与组建证明组,所述证明者设备包括证明者存储器、证明者处理器和证明者通信模块;所述证明者存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述证明者处理器执行时使所述证明者处理器和证明者通信模块执行以下步骤:所述证明者处理器预设E个验证阶段,所述E为正整数;所述证明者处理器根据组成员身份信息获取每个验证阶段的秘密种子,基于每个验证阶段的秘密种子获取组成员在该验证阶段的验证点信息,将所述验证点信息记为第一验证点信息;所述证明者通信模块将组成员身份信息、组成员在每个验证阶段的第一验证点信息发送至第三方设备;所述证明者通信模块接收第三方设备发送的组成员在每个验证阶段的梅克尔证明;在E个验证阶段运行时,所述证明者处理器根据当前时间、组成员身份信息以及当前验证阶段的梅克尔证明生成组时间基一次性密码,所述证明者通信模块将所述组时间基一次性密码和密码生成时间发送给验证者设备。

为了实现本发明的上述目的,根据本发明的第三个方面,本发明提供了一种第三方设备,包括第三方存储器、第三方处理器和第三方通信模块;所述第三方存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述第三方处理器执行时使所述第三方处理器和第三方通信模块执行以下步骤:所述第三方通信模块接收所有证明者设备发送的组成员身份信息、以及组成员在每个验证阶段的第一验证点信息;所述第三方处理器基于E个验证阶段内所有第一验证点信息和组成员身份信息构建梅克尔树,计算梅克尔树根,将梅克尔树根插入布隆过滤器中,计算组成员在每个验证阶段的梅克尔证明;所述第三方通信模块将组成员在每个验证阶段的梅克尔证明发送给该组成员对应的证明者设备。

为了实现本发明的上述目的,根据本发明的第四个方面,本发明提供了一种验证者设备,包括验证者存储器、验证者处理器和验证者通信模块;所述验证者存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述验证者处理器执行时使所述验证者处理器和验证者通信模块执行以下步骤:所述验证者通信模块接收证明者设备发送的组时间基一次性密码和密码生成时间;所述验证者处理器基于所述验证者通信模块接收的组时间基一次性密码推算出梅克尔树根,判断推算的梅克尔树根是否已存入布隆过滤器,若推算的梅克尔树根已存入布隆过滤器,认为接收的组时间基一次性密码验证通过,若推算的梅克尔树根未存入布隆过滤器,认为接收的组时间基一次性密码验证失败。

综上所述,由于采用了上述技术方案,本发明的有益效果是:针对TOTP方案不保护证明者身份隐私问题,本发明提出了一种新的组时间基一次性密码方案(group time-based one-time passwords,简称GTOTP),该方案为证明者身份验证提供了强大的第二要素,扩展时间基一次性密码到组以解决隐私问题,同时利用梅克尔树(简称Merkle树)和布隆过滤器(Bloom Filter,简称BF或者Bloom过滤器)实现了高效的密码生成和验证方法,允许证明者在不泄露身份的情况下证明自己是认证组的成员,将Merkle树和Bloom过滤器相结合,将验证者的状态减少到恒定的大小,在验证设备上实现了恒定的内存成本。GTOTP方案相比TOTP方案能提供更多的安全属性,而不需要许多额外的计算开销。

附图说明

图1是本发明一具体实施方式中组时间基一次性密码方法的执行过程示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

本发明公开了一种组时间基一次性密码方法,包括密码生成步骤和/或密码验证步骤,密码生成步骤和密码验证步骤执行过程如图1所示。

在一种优选实施方式中,密码生成步骤包括:

步骤101,组建证明组,证明组中至少包括一个证明者,证明组的组成员将身份信息发送至第三方。

在本实施方式中,优选的,证明组的成员可包括验证者,以增加验证结果的可靠性。在实际运行时,第三方代表第三方的设备,组成员代表组成员的设备,组成员为证明者时,组成员代表证明者的设备,验证者代表验证者的设备。上述过程中的设备优选但不限于为手机、平板、PC电脑、服务器。第三方对于证明者来说是可信的,第三方的设备与组成员的设备之间可以建立一个互认证的安全通道,以保护交换消息的机密性和完整性。

在本实施方式中,优选的,设有U个组成员,U为正整数,j为组成员索引,代表第j个组成员,j∈[1,U]。

步骤102,预设E个验证阶段,E为正整数。每个组成员可在每个验证阶段生成多个组时间基一次性密码,每个验证阶段会生成一批组时间基一次性密码。在实际运行中,优选的,一个验证阶段可为一个TOTP实例(即instance)。设i为验证阶段索引,代表第i个验证阶段,i∈[1,E]。

步骤103,组成员根据身份信息获取每个验证阶段的秘密种子,组成员基于每个验证阶段的秘密种子获取组成员在该验证阶段的验证点信息,将验证点信息记为第一验证点信息。

在实施方式中,优选的,组成员根据身份信息获取每个验证阶段的秘密种子,具体为采用如下公式获得秘密种子:

在本实施方式中,每个组成员基于其在每个验证阶段的秘密种子获取其在该验证阶段的验证点信息,这样每个组成员在每个验证阶段具有一个秘密种子和基于该秘密种子得到的一个验证点信息(即第一验证点信息)。优选的,组成员通过如下公式基于秘密种子获取第一验证点信息:

步骤104,第三方基于E个验证阶段内所有第一验证点信息和组成员的身份信息构建梅克尔树(Merkle树),计算梅克尔树根,将梅克尔树根插入布隆过滤器中,获取组成员在每个验证阶段的梅克尔证明,将组成员在每个验证阶段的梅克尔证明发送给该组成员。

在本实施方式中,采用证明组进行密码生成和验证,会加大验证状态的空间开销,尤其是组成员数量增加或使用周期的延长,空间开销成本会变得更大,因此,构建GTOTP方案的主要挑战是降低长期成本和更大的组规模。为此,本申请通过使用Merkle树实现恒定大小的验证状态来解决这个问题。

在本实施方式中,优选的,第三方基于E个验证阶段内所有第一验证点信息(包括所有组成员在每个验证阶段获得的第一验证点信息)和组成员的身份信息构建梅克尔树,具体包括:

S1,生成第三方密钥K

S2,利用验证阶段索引i和组成员的身份密文更新第一验证点信息获得第二验证点信息,更新公式如下:

S3,为了实现匿名性,随机打乱第二验证点信息的顺序,以便在构建Merkle树之前清除它们之间的关系,这种排列可破坏验证点的索引所隐含的时间顺序。以第二验证点信息作为梅克尔树的叶子节点,即将梅克尔树的叶子节点信息赋值为第二验证点信息,计算每个叶子节点的梅克尔证明,即获得组成员在每个验证阶段的梅克尔证明。一个组成员在每个验证阶段可具有1个秘密种子、1个第一验证点信息、1个梅克尔树证明,以及对应了1个第二验证点信息和1个叶子节点。叶子节点与第二验证点信息一一对应。

在本实施方式中,需要说明书的是,在叶子节点已知的情况下,计算每个叶子节点的梅克尔证明以及计算梅克尔树的树根均为现有技术,在此不再赘述。

在本实施方式中,梅克尔树支持与布隆过滤器相同的功能,即证明组成员验证点信息的真实性。在第二验证点信息上构建Merkle树,Merkle树具有简短的证明,当所有第二验证点信息构建为一棵树时,组验证状态就是树根。为了实现匿名性,首先从组成员中打乱第二验证点信息,以便在构建梅克尔树之前清除它们之间的关系。通过排列叶节点,可以根据来自不同组成员的验证点计算出非叶节点。但是,这种排列破坏了第二验证点信息的索引(包括验证阶段索引i)所隐含的时间顺序。为了克服这个问题,使用抗碰撞散列函数H

步骤105,在E个验证阶段运行时,组成员根据当前时间、身份信息、当前验证阶段的梅克尔证明生成组时间基一次性密码。

在本实施方式中,优选的,在E个验证阶段运行时,组成员生成组时间基一次性密码的过程包括:

步骤A,根据当前时间获得当前的验证阶段索引,根据验证阶段索引和组成员索引获得组成员在当前验证阶段的秘密种子和梅克尔证明。进一步优选的,可将当前时间作为组时间基一次性密码的生成时间(即密码生成时间)。

优选的,可按照如下公式根据当前时间获得当前的验证阶段索引i:

步骤B,基于当前验证阶段的秘密种子和当前时间利用TOTP协议生成时间基一次性密码。具体的,第j个组成员在第i个验证阶段中第z次生成的时间基一次性密码

步骤C,将时间基一次性密码与组成员在当前验证阶段的梅克尔证明、身份密文融合,将融合结果作为组时间基一次性密码。优选的,融合方式优选但不限于为拼接。

在本实施方式中,优选的,第j个组成员在第i个验证阶段的第z次生成的组时间基一次性密码为

在一种优选实施方式中,每个组成员的存储成本和验证器的验证成本在梅克尔树的高度上都是线性的,因此,为进一步降低组成员的存储成本和验证者的验证成本,可降低梅克尔树的高度。在S2中,在随机打乱第二验证点信息的顺序后,将所有第二验证点信息划分为多个子集合,为每个子集合构建一棵梅克尔树,每个子集合中以第二验证点信息作为该子集合的梅克尔树的叶子节点,计算每个叶子节点的梅克尔证明并将梅克尔证明发送给该叶子节点的第二验证点信息对应的组成员,计算每棵梅克尔树的树根,并将所有梅克尔树的树根插入布隆过滤器中。子集合的梅克尔树的高度比原来的要小,一个组成员的梅克尔证明的大小变成了

在一种优选实施方式中,密码验证步骤包括:

步骤201,证明者将组时间基一次性密码和密码生成时间发送至验证者,密码生成时间即证明者生成组时间基一次性密码的时间。

步骤202,验证者接收证明者发送的组时间基一次性密码和密码生成时间,基于组时间基一次性密码推算出梅克尔树根,判断推算的梅克尔树根是否已存入布隆过滤器,若推算的梅克尔树根已存入布隆过滤器,则接收的组时间基一次性密码验证通过,若推算的梅克尔树根还未存入布隆过滤器,则接收的组时间基一次性密码验证失败。

在本实施方式中,基于组时间基一次性密码推算出梅克尔树根的具体过程包括:当验证者在接收到第j个组成员的组时间基一次性密码

在本实施方式中,优选的,为了提高判断准确性,验证者在判断出推算的梅克尔树根(即第二树根)已存入布隆过滤器时,还需要利用TOTP协议验证函数对接收的组时间基一次性密码进行验证,当TOTP协议验证函数验证成功时才认为接收的组时间基一次性密码验证通过。设置两个条件,条件一为布隆滤波器已存储了推算的梅克尔树根,条件二为TOTP协议验证函数验证通过,当两个条件均满足时,才认为验证者接收的组时间基一次性密码验证通过。

在本实施方式中,条件一可借助布隆滤波器的验证函数BF.Check(),条件二可借助TOTP协议验证函数TOTP.Verify(,,,),当BF.Check(MTr.Rt)=1且

在一种优选实施方式中,在验证者验证接收的组时间基一次性密码通过时,验证者向第三方发送验证通过信息,第三方向验证者发送生成组时间基一次性密码的组成员的身份信息。具体的,可通过公式

本发明还公开了一种证明者设备,在一种优选实施方式中,证明者设备作为一个组成员参与组建证明组,证明者设备包括证明者存储器、证明者处理器和证明者通信模块。

证明者存储器用于存储一个或多个程序,一个或多个程序包括指令,指令当被证明者处理器执行时使证明者处理器和证明者通信模块执行以下步骤:证明者处理器预设E个验证阶段,E为正整数;证明者处理器根据组成员身份信息获取每个验证阶段的秘密种子,基于每个验证阶段的秘密种子获取组成员在该验证阶段的验证点信息,将验证点信息记为第一验证点信息。证明者通信模块将组成员身份信息、组成员在每个验证阶段的第一验证点信息发送至第三方设备。证明者通信模块接收第三方设备发送的组成员在每个验证阶段的梅克尔证明。在E个验证阶段运行时,证明者处理器根据当前时间、组成员身份信息以及当前验证阶段的梅克尔证明生成组时间基一次性密码,证明者通信模块将组时间基一次性密码和密码生成时间发送给验证者设备。

本发明还公开了一种第三方设备,在一种优选实施方式中,包括第三方存储器、第三方处理器和第三方通信模块。

第三方存储器用于存储一个或多个程序,一个或多个程序包括指令,指令当被第三方处理器执行时使第三方处理器和第三方通信模块执行以下步骤:第三方通信模块接收所有证明者设备发送的组成员身份信息、以及组成员在每个验证阶段的第一验证点信息;第三方处理器基于E个验证阶段内所有第一验证点信息和组成员身份信息构建梅克尔树,计算梅克尔树根,将梅克尔树根插入布隆过滤器中,计算组成员在每个验证阶段的梅克尔证明;第三方通信模块将组成员在每个验证阶段的梅克尔证明发送给该组成员对应的证明者设备。

在本实施方式中,优选的,在验证者验证接收的组时间基一次性密码通过时,验证者向第三方发送验证通过信息,第三方向验证者发送生成组时间基一次性密码的组成员的身份信息。

本发明还公开了一种验证者设备,在一种优选实施方式中,验证者设备包括验证者存储器、验证者处理器和验证者通信模块;验证者存储器用于存储一个或多个程序,一个或多个程序包括指令,指令当被验证者处理器执行时使验证者处理器和验证者通信模块执行以下步骤:验证者通信模块接收证明者设备发送的组时间基一次性密码和密码生成时间;验证者处理器基于验证者通信模块接收的组时间基一次性密码推算出梅克尔树根,判断推算的梅克尔树根是否已存入布隆过滤器,若推算的梅克尔树根已存入布隆过滤器,认为接收的组时间基一次性密码验证通过,若推算的梅克尔树根未存入布隆过滤器,认为接收的组时间基一次性密码验证失败。

在本实施方式中,优选的,为了提高判断准确性,验证者在判断出推算的梅克尔树根已存入布隆过滤器时,还需要利用TOTP协议验证函数对接收的组时间基一次性密码进行验证,当TOTP协议验证函数验证成功时才认为接收的组时间基一次性密码验证通过。

在本实施方式中,优选的,当认为接收的组时间基一次性密码验证通过后,可以向第三方设备发送验证通过信息,并且发送身份信息获取指令,第三方设备解密出证明者身份信息发送给验证者设备。

本申请提供的GTOTP方案,是传统TOTP对组设置的扩展。GTOTP提供组成员身份验证和隐私。设计了一个高效而通用的GTOTP方案,将一个非对称的TOTP方案转换为一个GTOTP方案,在验证器上实现了恒定的内存成本。GTOTP-MT的验证成本主要是关于验证默克尔证明和检查其成员身份的额外操作布隆过滤器(BF)。GTOTP的梅克尔树生成算法是由一个强大的第三方RA完成的,所以它可以运行得非常快。不难看出,GTOTP-MT可以比TOTP方案提供更多的安全属性。但是不需要许多额外的计算开销。而且GTOTP密码生成和验证算法不需要任何昂贵的配对和指数化操作,相比现有的组数字签名方案的效率要高得多。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号