CN110149633B - 一种支持批验证的安全多方认证方法及系统 - Google Patents

一种支持批验证的安全多方认证方法及系统 Download PDF

Info

Publication number
CN110149633B
CN110149633B CN201910408662.5A CN201910408662A CN110149633B CN 110149633 B CN110149633 B CN 110149633B CN 201910408662 A CN201910408662 A CN 201910408662A CN 110149633 B CN110149633 B CN 110149633B
Authority
CN
China
Prior art keywords
user
predicate
metadata
authentication
block chain
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
Application number
CN201910408662.5A
Other languages
English (en)
Other versions
CN110149633A (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.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
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 Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201910408662.5A priority Critical patent/CN110149633B/zh
Publication of CN110149633A publication Critical patent/CN110149633A/zh
Application granted granted Critical
Publication of CN110149633B publication Critical patent/CN110149633B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出一种支持批验证的安全多方认证方法,包括:系统管理员选取安全参数,生成系统公开参数和主私钥,并将所述系统公开参数写入区块链;系统管理员利用所述系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链;针对认证需求,系统管理员利用所述系统公开参数和主私钥生成一个密文谓词标签,并写入区块链;每个用户利用所述系统公开参数和所述密文谓词标签生成自己的元数据并写入区块链;每个用户利用所述系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程。

Description

一种支持批验证的安全多方认证方法及系统
技术领域
本发明涉及信息安全密码领域,具体涉及一种支持批验证的安全多方认证方法及系统。
背景技术
随着信息技术和物联网技术的快速发展,各类无线物联网设备已取得广泛应用。无线物联网设备之间可以采用自组织网络模式进行通信,相互协作共同完成用户指定的任务。比如,在野外工作环境下,用户可能难以连接外部通信信号,此时可以利用无线物联网设备搭建临时的自组织通信平台,借助于该平台完成预期任务。
然而,无线物联网设备在构建自组织通信网络时,需能够对其他设备的身份进行验证,只有通过验证的设备才可共同构建通信网络。否则,若有恶意设备加入通信网络,必将造成通信内容的泄露,给用户造成难以估量的损失。显然,在野外工作环境下,难以存在一个可靠的中心节点对所有的物联网设备进行认证,因此设备之间需要采用分布式模式完成相互认证。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种支持批验证的安全多方认证方法及系统,旨在解决多用户构建自组织通信网络时的高效认证问题。
为实现上述目的及其他相关目的,本发明提供一种支持批验证的安全多方认证方法,该方法包括以下步骤:
系统管理员选取安全参数,生成系统公开参数和主私钥,并将所述系统公开参数写入区块链;
系统管理员利用所述系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链;
针对认证需求,系统管理员利用所述系统公开参数和主私钥生成一个密文谓词标签,并写入区块链;
每个用户利用所述系统公开参数和所述密文谓词标签生成自己的元数据并写入区块链;
每个用户利用所述系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程。
可选地,所述系统公开参数表示为:
Figure BDA0002062105910000021
其中,G和GT表示素数p阶的循环群,
Figure BDA00020621059100000222
G×G→GT表示双线性映射运算,
Figure BDA0002062105910000022
表示m维向量,d0,d1,d2,...,d2m表示参数,g表示生成元,c表示域Zp上的非0元素,
Figure BDA0002062105910000023
表示域Zp的非零元素子集{1,2,..,p-1}。
可选地,所述主私钥表示为
Figure BDA0002062105910000024
其中,m×m的可逆矩阵S1=[si,j]m×m和S2=[ti,j]m×m,si,j∈Zp以及ti,j∈Zp,Zp表示域,
Figure BDA0002062105910000025
表示m维的向量。
可选地,所述系统管理员利用所述系统公开参数和主私钥,为每个用户分配属性向量和用户标签,具体包括:
针对每个用户Uj,系统管理员为其指定一个二进制属性向量
Figure BDA0002062105910000026
其中,
Figure BDA00020621059100000223
表示该用户拥有属性
Figure BDA00020621059100000224
表示该用户不拥有属性
Figure BDA00020621059100000225
1≤j≤n,1≤l≤m;
针对每个用户Uj,系统管理员根据
Figure BDA0002062105910000027
中元素的取值对二进制属性向量
Figure BDA0002062105910000028
进行分割,得到两个分割属性向量
Figure BDA0002062105910000029
Figure BDA00020621059100000210
针对每个用户Uj,系统管理员计算用户标签为
Figure BDA00020621059100000211
其中矩阵乘法为域Zp上的运算,Lj,1=(θj,1,1j,1,2,…,θj,1,m)以及
Figure BDA00020621059100000212
针对每个用户Uj,系统管理员随机选取参数
Figure BDA00020621059100000213
并计算到公开参数
Figure BDA00020621059100000214
Figure BDA00020621059100000215
其中
Figure BDA00020621059100000216
Figure BDA00020621059100000217
表示循环群G上的幂运算;
系统管理员将属性向量
Figure BDA00020621059100000218
和用户标签Lj发送给用户Uj
可选地,所述系统管理员利用所述系统公开参数和主私钥生成一个密文谓词标签,具体包括:
针对本次认证需求,系统管理员指定一个二进制标签向量
Figure BDA00020621059100000219
其中,
Figure BDA00020621059100000226
表示子集B包含属性
Figure BDA00020621059100000227
表示子集B不包含属性
Figure BDA00020621059100000228
针对本次认证需求,系统管理员根据
Figure BDA00020621059100000220
中元素的取值对二进制标签向量
Figure BDA00020621059100000221
进行分割,得到两个分割标签向量
Figure BDA0002062105910000031
Figure BDA0002062105910000032
针对本次认证需求,系统管理员计算密文谓词标签为
Figure BDA0002062105910000033
其中矩阵乘法为域Zp上的运算;
针对本次认证需求,系统管理员选取门限值τ,该门限值满足
Figure BDA0002062105910000034
针对本次认证需求,系统管理员随机选取一个认证参数
Figure BDA0002062105910000035
系统管理员将密文谓词标签
Figure BDA0002062105910000036
门限值τ和认证参数δ写入区块链。
可选地,所述每个用户利用所述系统公开参数和所述密文谓词标签生成自己的元数据,具体包括:
每个用户Uj验证下式是否成立:
Figure BDA0002062105910000037
其中,·表示Zp上的向量内积运算。如果上式成立,说明用户Uj是满足谓词条件的用户,则用户Uj继续执行后续步骤,否则终止执行后续步骤;
每个用户Uj构造如下一元函数:
Figure BDA0002062105910000038
根据认证参数
Figure BDA0002062105910000039
计算得到函数值ψj(δ),并使用多项式长除法计算得到一元函数
Figure BDA00020621059100000310
记χj(x)的系数向量为(χj,0j,1,…,χj,2m);
每个用户Uj计算得到元数据
Figure BDA00020621059100000311
每个用户Uj将自己的用户标签Lj=(Lj,1,Lj,2)和元数据Γj写入区块链。
可选地,所述每个用户利用所述系统公开参数批量验证其他用户的元数据是否正确,具体包括:
每个用户Uj根据其他用户Uz的标签Lz=(Lz,1,Lz,2)、元数据Γz以及公开参数Dz,计算得到中间参数
Figure BDA00020621059100000312
以及
Figure BDA00020621059100000313
其中,1≤z≤n且z≠j;
每个用户Uj验证下式是否成立:
Figure BDA0002062105910000041
Cz表示用户Uz的公开参数;
若成立,则断定其他所有用户的元数据均合法,否则,说明某些用户的元数据不合法,用户Uj可进一步单独对每个用户的元数据进行验证。
可选地,所述挑选出满足谓词条件的合法用户,具体包括:
使用以下方法单独对每个其他用户Uz的元数据进行验证,对不能通过验证的用户进行剔除:
Figure BDA0002062105910000042
用户Uj针对合法的用户的集合U'中的每个用户Uz∈U'验证下式是否成立:
Figure BDA0002062105910000043
如果成立,则说明该用户Uz∈U'的属性集满足预定的谓词条件,从而成功完成对用户Uz∈U'的认证;否则,认定用户Uz∈U'不合法。
为实现上述目的及其他相关目的,本发明还提供一种支持批验证的安全多方认证系统,该系统包括:
系统初始化模块,用于生成系统公开参数和主私钥,并将所述系统公开参数写入区块链;
用户属性分配模块,用于利用系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链;
认证初始化模块,用于利用所述系统公开参数和主私钥生成一个密文谓词标签,并写入区块链;
认证响应模块,用于利用所述系统公开参数和所述密文谓词标签生成自己的元数据并写入区块链;
验证模块,用于利用所述系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程。
为实现上述目的及其他相关目的,本发明还提供一种计算机可读存储介质,存储计算机程序,所述计算机程序被处理器运行时执行如下步骤:
选取安全参数,生成系统公开参数和主私钥,并将所述系统公开参数写入区块链;
利用所述系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链;
利用所述系统公开参数和主私钥生成一个密文谓词标签,并写入区块链;
利用所述系统公开参数和所述密文谓词标签生成自己的元数据并写入区块链;
利用所述系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程。
如上所述,本发明的一种支持批验证的安全多方认证方法及系统,具有以下有益效果:
本发明认证过程无需借助可信中心节点,且可保障用户属性信息的隐私。本方法给每个用户分配一组属性,该组属性由系统管理员进行加密,使得在认证过程中任何用户均无法获取真实的属性内容。针对每次认证需求,系统将设定一个谓词条件和门限值,该谓词条件规定了符合认证条件的用户需拥有的属性子集,且满足条件的属性数量必须达到该门限值,即当用户拥有的属性数量不低于该门限值时,才能被认证为合法用户。本方法允许每个用户对其他用户生成的元数据进行批量验证,从而提升本地的计算效率。
附图说明
为了进一步阐述本发明所描述的内容,下面结合附图对本发明的具体实施方式作进一步详细的说明。应当理解,这些附图仅作为典型示例,而不应看作是对本发明的范围的限定。
图1为本发明一实施例的一种支持批验证的安全多方认证方法的架构图;
图2为本发明一实施例的一种支持批验证的安全多方认证方法的流程图;
图3为本发明一实施例的一种支持批验证的安全多方认证系统的框图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
为了使本领域技术人员对本发明的技术方案更加清晰的理解,先对本发明中的一些技术术语进行说明。
(1)系统管理员(System manager):计算系统的公开参数和主私钥,将系统公开参数写入区块链;根据系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链;根据系统公开参数和主私钥为每次认证任务生成一个密文谓词标签,并写入区块链。
(2)用户(Users):针对每次认证任务,每个用户利用系统公开参数和密文谓词标签,生成自己的元数据并写入区块链;每个用户利用系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程。
系统架构图如图1所示。
本发明使用了双线性映射相关的数学知识,特在此作相关定义说明。
定义一个函数映射
Figure BDA0002062105910000061
G×G→GT将循环群G中的元素映射到循环群GT中,其中G和GT均是两个阶为素数p的循环群。双线性映射
Figure BDA0002062105910000062
需满足如下特性:
(1)双线性特性:对于任意μ,ν∈G,任意x,y∈Zp,均有
Figure BDA0002062105910000063
成立,其中Zp={0,1,2,..,p-1};
(2)非退化特性:群G中至少存在一个元素g,使得
Figure BDA0002062105910000064
为群GT的生成元;
(3)高效性:存在有效的算法,使得对于任意μ,ν∈G,可以有效计算出
Figure BDA0002062105910000065
的值。
如图2所示,本发明提供一种支持批验证的安全多方认证方法,该方法包括以下步骤:
步骤1.系统管理员选取安全参数,生成系统公开参数和主私钥,并将系统公开参数写入区块链。
具体地,该步骤1具体包括以下子步骤:
步骤11:系统管理员输入系统安全参数κ,运行初始化算法Θ(1κ),选取两个阶为素数p的循环群G和GT以及一个双线性映射运算
Figure BDA0002062105910000066
G×G→GT
其中,所述的初始化算法Θ(1κ),其运行方法如下:系统管理员输入系统安全参数κ,系统根据κ的大小,选择相应的椭圆曲线:Y2=X3+uX+v(u和v为系数),用椭圆曲线上的点构成两个素数p阶的循环群G和GT,选择一种映射函数
Figure BDA0002062105910000067
将循环群G中的元素映射到循环群GT中;一般,安全参数κ数值越大,所选取的椭圆曲线上的点也越多,循环群也越大。
步骤12:系统管理员运行随机数生成算法,从循环群G中随机选择一个生成元g,即G=<g>;
其中,所述的随机数生成算法,其方法如下:根据步骤11所选取的椭圆曲线Y2=X3+uX+v,随机选择自变量X的一个值
Figure BDA0002062105910000068
计算对应因变量Y的值
Figure BDA0002062105910000069
若点
Figure BDA00020621059100000610
在所要映射的循环群G中,则成功生成了随机元素;若点
Figure BDA00020621059100000611
不在循环群G中,则继续重新选择X的值,直到找到出现在循环群G中的点。
步骤13:系统管理员设定一个用户属性集合A={a1,a2,…,am},属性值构成一个m维属性向量;
Figure BDA0002062105910000071
步骤14:系统管理员选取两个m×m的可逆矩阵S1=[si,j]m×m和S2=[ti,j]m×m,其中si,j∈Zp以及ti,j∈Zp
步骤15:系统管理员随机选取一个m维的二进制向量
Figure BDA0002062105910000072
步骤16:系统管理员随机选取一个域Zp上的非0元素
Figure BDA0002062105910000073
进一步计算参数
Figure BDA0002062105910000074
其中0≤i≤2m,
Figure BDA0002062105910000075
表示域Zp的非零元素子集{1,2,..,p-1};
最后,系统管理员将系统公开参数
Figure BDA0002062105910000076
写入区块链,自己保存主私钥
Figure BDA0002062105910000077
步骤2.系统管理员利用系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链。
具体地,该步骤2具体包括以下子步骤:为便于表述,本发明假设系统共有n个用户,即用户集合为U={U1,U2,…,Un}。
步骤21:针对每个用户Uj(1≤j≤n),系统管理员为其指定一个二进制属性向量
Figure BDA0002062105910000078
其中,
Figure BDA00020621059100000719
表示该用户拥有属性
Figure BDA00020621059100000720
表示该用户不拥有属性
Figure BDA00020621059100000723
步骤22:针对每个用户Uj(1≤j≤n),系统管理员根据
Figure BDA0002062105910000079
中元素的取值对二进制属性向量
Figure BDA00020621059100000710
进行分割,得到两个分割属性向量
Figure BDA00020621059100000711
Figure BDA00020621059100000712
分割方法如下:如果
Figure BDA00020621059100000721
则令
Figure BDA00020621059100000713
否则,随机选取参数
Figure BDA00020621059100000724
Figure BDA00020621059100000714
计算
Figure BDA00020621059100000715
其中
Figure BDA00020621059100000722
步骤23:针对每个用户Uj(1≤j≤n),系统管理员计算用户标签为
Figure BDA00020621059100000716
其中矩阵乘法为域Zp上的运算;为便于后文使用,记Lj,1=(θj,1,1j,1,2,…,θj,1,m)以及
Figure BDA00020621059100000717
步骤24:针对每个用户Uj(1≤j≤n),系统管理员随机选取参数
Figure BDA00020621059100000718
并计算到公开参数
Figure BDA0002062105910000081
Figure BDA0002062105910000082
其中
Figure BDA0002062105910000083
Figure BDA0002062105910000084
表示循环群G上的幂运算;
最后,系统管理员将属性向量
Figure BDA0002062105910000085
和用户标签Lj发送给用户Uj,将(Uj,Cj,Dj)写入区块链。
步骤3.针对认证需求,系统管理员利用系统公开参数和主私钥生成一个密文谓词标签,并写入区块链。
本步骤允许系统管理员根据不同的认证场景需求,为一组用户指定一个共同的谓词条件φ,该谓词条件从用户属性集合A中提取出了一个子集B,使得拥有B中属性的数量达到某预设门限值τ的用户Uj可以被成功认证,即用户Uj需满足
Figure BDA0002062105910000086
具体地,该步骤3具体包括以下子步骤:
步骤31:针对本次认证需求,系统管理员指定一个二进制标签向量
Figure BDA0002062105910000087
其中,
Figure BDA00020621059100000822
表示子集B包含属性
Figure BDA00020621059100000823
表示子集B不包含属性
Figure BDA00020621059100000824
步骤32:针对本次认证需求,系统管理员根据
Figure BDA0002062105910000088
中元素的取值对二进制标签向量
Figure BDA0002062105910000089
进行分割,得到两个分割标签向量
Figure BDA00020621059100000810
Figure BDA00020621059100000811
分割方法如下:如果
Figure BDA00020621059100000825
则令
Figure BDA00020621059100000812
否则,随机选取参数
Figure BDA00020621059100000820
Figure BDA00020621059100000813
计算
Figure BDA00020621059100000814
其中
Figure BDA00020621059100000821
步骤33:针对本次认证需求,系统管理员计算密文谓词标签为
Figure BDA00020621059100000815
其中矩阵乘法为域Zp上的运算;
步骤34:针对本次认证需求,系统管理员选取门限值τ,该门限值满足
Figure BDA00020621059100000816
步骤35:针对本次认证需求,系统管理员随机选取一个认证参数
Figure BDA00020621059100000817
最后,系统管理员将密文谓词标签
Figure BDA00020621059100000818
门限值τ和认证参数δ写入区块链,所有用户U={U1,U2,…,Un}均可读取。
步骤4.每个用户利用系统公开参数和密文谓词标签,生成自己的元数据并写入区块链。
具体地,该步骤4具体包括以下子步骤:
步骤41:每个用户Uj(1≤j≤n)验证下式是否成立:
Figure BDA0002062105910000091
其中,·表示Zp上的向量内积运算。如果上式成立,说明用户Uj是满足谓词条件的用户,则用户Uj继续执行后续步骤,否则终止执行后续步骤;
步骤42:每个用户Uj(1≤j≤n)构造如下一元函数:
Figure BDA0002062105910000092
根据认证参数δ计算得到函数值ψj(δ),并使用多项式长除法计算得到一元函数
Figure BDA0002062105910000093
记χj(x)的系数向量为(χj,0j,1,…,χj,2m);
步骤43:每个用户Uj(1≤j≤n)计算得到元数据
Figure BDA0002062105910000094
最后,每个用户Uj(1≤j≤n)将自己的用户标签Lj=(Lj,1,Lj,2)和元数据Γj写入区块链,使得其他用户U\{Uj}均可读取。
步骤5.每个用户利用系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续筛选出满足谓词条件的合法用户,以完成认证过程。
具体地,该步骤5具体包括以下子步骤:
步骤51:每个用户Uj(1≤j≤n)根据其他用户Uz(1≤z≤n且z≠j)的标签Lz=(Lz,1,Lz,2)、元数据Γz以及公开参数Dz,计算得到中间参数
Figure BDA0002062105910000095
以及
Figure BDA0002062105910000096
步骤52:每个用户Uj(1≤j≤n)验证下式是否成立:
Figure BDA0002062105910000097
若成立,则断定其他所有用户的元数据均合法,否则,说明某些用户的元数据不合法,用户Uj可以进一步使用以下方法单独对每个其他用户Uz(1≤z≤n且z≠j)的元数据进行验证,对不能通过验证的用户进行剔除:
Figure BDA0002062105910000098
步骤53:令步骤52中判断合法的用户集合表示为U',用户Uj(1≤j≤n)针对U'中的每个用户Uz∈U'验证下式是否成立:
Figure BDA0002062105910000101
如果成立,则说明该用户Uz∈U'的属性集满足预定的谓词条件,从而成功完成对用户Uz∈U'的认证;否则,认定用户Uz∈U'不合法。
本发明提出的方法给每台设备预先分配一组属性,采用属性向量进行表示。当需要构建自组织通信网络时,系统根据本次任务指定一个全局的谓词条件,规定了每台合法的设备需要具备的属性内容和数量。每台设备均可检验自己是否满足该谓词条件,当满足时进一步生成自己的一组元数据,使得其他设备能够验证该设备的合法性。
由于每台设备均需要验证其他所有设备的合法性,当设备数量规模较大时,将消耗较多的计算资源,甚至难以满足实时性要求。因此,本发明提出的方法允许每台设备采用批验证的方式对其他设备的元数据进行验证,且在验证过程中无需和其他设备进行交互。每台设备还可以进一步验证其他设备的属性向量是否满足本次认证的谓词条件,以完成对其他设备的认证过程,并将该验证结果通知系统其他设备。
如图3所示,一种支持批验证的安全多方认证系统,该系统包括:
系统初始化模块,用于生成系统公开参数和主私钥,并将所述系统公开参数写入区块链;
用户属性分配模块,用于利用系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链;
认证初始化模块,用于利用所述系统公开参数和主私钥生成一个密文谓词标签,并写入区块链;
认证响应模块,用于利用所述系统公开参数和所述密文谓词标签生成自己的元数据并写入区块链;
验证模块,用于利用所述系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程。
需要说明的是,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例的内容请参见方法部分的实施例的描述,这里暂不赘述。
本发明所述的一种支持批验证的安全多方认证装置不但可以保护认证过程中用户属性信息的隐私,而且支持系统根据不同认证需求设定不同的谓词条件,该谓词条件指定合法用户所需拥有的属性集合以及拥有的属性向量门限值。
综上所述,本发明在多用户环境下采用谓词条件验证用户的合法性,只有当用户拥有的属性值满足谓词条件且属性数量达到门限值才可被认证合法,且在此过程中不泄露用户的具体属性值,解决了多用户构建通信网络时的匿名身份认证问题。该方法的优点和功效是:
1)本发明方法对用户的属性向量进行加密,该密文处理结果被用于认证过程,因此可确保用户属性向量在传输过程以及认证过程中的隐私。
2)本发明方法支持对不同的认证需求设置不同的谓词条件,且该谓词条件以密文形式向用户公开,使得用户在使用该密文谓词条件认证其他用户时无需对其进行解密,确保了该谓词条件内容的隐私。
3)本发明方法支持用户对其他用户的元数据进行批量验证,从而降低了用户执行认证时的计算开销。
4)本发明方法将系统和用户产生的所有公开数据写入区块链,使得所有用户均可对其验证,确保了数据不可被篡改。
本发明还提供一种存储介质,存储计算机程序,所述计算机程序被处理器运行时执行前述的设计方法。
本发明还提供一种电子终端,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器存储的计算机程序,以使所述设备执行前述的设计方法。
所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器((RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可以是内部存储单元或外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字卡(Secure Digital,SD),闪存卡(Flash Card)等。进一步地,所述存储器还可以既包括内部存储单元,也包括外部存储设备。所述存储器用于存储所述计算机程序以及其他程序和数据。所述存储器还可以用于暂时地存储己经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (5)

1.一种支持批验证的安全多方认证方法,其特征在于,该方法包括以下步骤:
系统管理员选取安全参数,生成系统公开参数和主私钥,并将所述系统公开参数写入区块链;
系统管理员利用所述系统公开参数和主私钥,为每个用户分配属性向量和用户标签,具体包括:针对每个用户Uj,系统管理员为其指定一个二进制属性向量
Figure FDA0003407282730000011
其中,αj,l=1表示该用户拥有属性al∈A,αj,l=0表示该用户不拥有属性al∈A,1≤j≤n,1≤l≤m;
针对每个用户Uj,系统管理员根据
Figure FDA0003407282730000012
中元素的取值对二进制属性向量
Figure FDA0003407282730000013
进行分割,得到两个分割属性向量
Figure FDA0003407282730000014
Figure FDA0003407282730000015
针对每个用户Uj,系统管理员计算用户标签为
Figure FDA0003407282730000016
其中矩阵乘法为域Zp上的运算,Lj,1=(θj,1,1j,1,2,…,θj,1,m)以及
Figure FDA0003407282730000017
针对每个用户Uj,系统管理员随机选取参数
Figure FDA0003407282730000018
并计算到公开参数
Figure FDA0003407282730000019
Figure FDA00034072827300000110
其中
Figure FDA00034072827300000111
Figure FDA00034072827300000112
表示循环群G上的幂运算;
系统管理员将属性向量
Figure FDA00034072827300000113
和用户标签Lj发送给用户Uj
并将生成的用户公开参数写入区块链;所述主私钥表示为
Figure FDA00034072827300000114
其中,m×m的可逆矩阵S1=[si,j]m×m和S2=[ti,j]m×m,si,j∈Zp以及ti,j∈Zp,Zp表示域,
Figure FDA00034072827300000115
表示m维的向量;针对认证需求,系统管理员利用所述系统公开参数和主私钥生成一个密文谓词标签,并写入区块链,具体包括:
针对本次认证需求,系统管理员指定一个二进制标签向量
Figure FDA00034072827300000116
其中,αl,l=1表示子集B包含属性al∈A,αl,l=0表示子集B不包含属性al∈A;
针对本次认证需求,系统管理员根据
Figure FDA00034072827300000117
中元素的取值对二进制标签向量
Figure FDA00034072827300000118
进行分割,得到两个分割标签向量
Figure FDA00034072827300000119
Figure FDA00034072827300000120
针对本次认证需求,系统管理员计算密文谓词标签为
Figure FDA0003407282730000021
其中矩阵乘法为域Zp上的运算;
针对本次认证需求,系统管理员选取门限值τ,该门限值满足
Figure FDA0003407282730000022
针对本次认证需求,系统管理员随机选取一个认证参数
Figure FDA0003407282730000023
系统管理员将密文谓词标签
Figure FDA0003407282730000024
门限值τ和认证参数δ写入区块链;
每个用户利用所述系统公开参数和所述密文谓词标签生成自己的元数据并写入区块链,具体包括:每个用户Uj验证下式是否成立:
Figure FDA0003407282730000025
其中,·表示Zp上的向量内积运算;如果上式成立,说明用户Uj是满足谓词条件的用户,则用户Uj继续执行后续步骤,否则终止执行后续步骤;
每个用户Uj构造如下一元函数:
Figure FDA0003407282730000026
根据认证参数
Figure FDA0003407282730000027
计算得到函数值ψj(δ),并使用多项式长除法计算得到一元函数
Figure FDA0003407282730000028
记χj(x)的系数向量为(χj,0j,1,…,χj,2m);
每个用户Uj计算得到元数据
Figure FDA0003407282730000029
每个用户Uj将自己的用户标签Lj=(Lj,1,Lj,2)和元数据Γj写入区块链;
每个用户利用所述系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程,具体包括:
每个用户Uj根据其他用户Uz的标签Lz=(Lz,1,Lz,2)、元数据Γz以及公开参数Dz,计算得到中间参数
Figure FDA00034072827300000210
以及
Figure FDA00034072827300000211
其中,1≤z≤n且z≠j;
每个用户Uj验证下式是否成立:
Figure FDA0003407282730000031
Cz表示用户Uz的公开参数;
若成立,则断定其他所有用户的元数据均合法,否则,说明某些用户的元数据不合法,用户Uj进一步单独对每个用户的元数据进行验证。
2.根据权利要求1所述一种支持批验证的安全多方认证方法,其特征在于,所述系统公开参数表示为:
Figure FDA0003407282730000032
其中,G和GT表示素数p阶的循环群,
Figure FDA0003407282730000033
G×G→GT表示双线性映射运算,
Figure FDA0003407282730000034
表示m维向量,d0,d1,d2,...,d2m表示参数,g表示生成元,c表示域Zp上的非0元素,
Figure FDA0003407282730000035
Figure FDA0003407282730000036
表示域Zp的非零元素子集{1,2,..,p-1}。
3.根据权利要求1所述的一种支持批验证的安全多方认证方法,其特征在于,所述挑选出满足谓词条件的合法用户,具体包括:
使用以下方法单独对每个其他用户Uz的元数据进行验证,对不能通过验证的用户进行剔除:
Figure FDA0003407282730000037
用户Uj针对合法的用户的集合U'中的每个用户Uz∈U'验证下式是否成立:
Figure FDA0003407282730000038
如果成立,则说明该用户Uz∈U'的属性集满足预定的谓词条件,从而成功完成对用户Uz∈U'的认证;否则,认定用户Uz∈U'不合法。
4.一种支持批验证的安全多方认证系统,采用权利要求1所述的一种支持批验证的安全多方认证方法,其特征在于,该系统包括:
系统初始化模块,用于生成系统公开参数和主私钥,并将所述系统公开参数写入区块链;
用户属性分配模块,用于利用系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链;
认证初始化模块,用于利用所述系统公开参数和主私钥生成一个密文谓词标签,并写入区块链;
认证响应模块,用于利用所述系统公开参数和所述密文谓词标签生成自己的元数据并写入区块链;
验证模块,用于利用所述系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程。
5.一种计算机可读存储介质,存储计算机程序,采用权利要求1所述的一种支持批验证的安全多方认证方法,其特征在于,所述计算机程序被处理器运行时执行如下步骤:
选取安全参数,生成系统公开参数和主私钥,并将所述系统公开参数写入区块链;
利用所述系统公开参数和主私钥,为每个用户分配属性向量和用户标签,并将生成的用户公开参数写入区块链;
利用所述系统公开参数和主私钥生成一个密文谓词标签,并写入区块链;
利用所述系统公开参数和所述密文谓词标签生成自己的元数据并写入区块链;
利用所述系统公开参数批量验证其他用户的元数据是否正确,如果正确则继续挑选出满足谓词条件的合法用户,以完成认证过程。
CN201910408662.5A 2019-05-16 2019-05-16 一种支持批验证的安全多方认证方法及系统 Active CN110149633B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910408662.5A CN110149633B (zh) 2019-05-16 2019-05-16 一种支持批验证的安全多方认证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910408662.5A CN110149633B (zh) 2019-05-16 2019-05-16 一种支持批验证的安全多方认证方法及系统

Publications (2)

Publication Number Publication Date
CN110149633A CN110149633A (zh) 2019-08-20
CN110149633B true CN110149633B (zh) 2022-03-08

Family

ID=67595478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910408662.5A Active CN110149633B (zh) 2019-05-16 2019-05-16 一种支持批验证的安全多方认证方法及系统

Country Status (1)

Country Link
CN (1) CN110149633B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131336B (zh) * 2020-03-30 2020-07-17 腾讯科技(深圳)有限公司 多方授权场景下的资源访问方法、装置、设备及存储介质
CN112394683B (zh) * 2020-11-24 2022-03-11 桂林电子科技大学 一种利用工控系统的文件传输方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10541818B2 (en) * 2017-04-19 2020-01-21 International Business Machines Corporation Decentralized biometric signing of digital contracts
CN108901020B (zh) * 2018-05-29 2021-06-15 维沃移动通信有限公司 网络接入的方法、移动终端及服务器
CN109409884A (zh) * 2018-10-25 2019-03-01 北京安如山文化科技有限公司 一种基于sm9算法的区块链隐私保护方案和系统
CN109687976B (zh) * 2019-01-07 2022-01-04 西安邮电大学 基于区块链与pki认证机制的车队组建及管理方法及系统

Also Published As

Publication number Publication date
CN110149633A (zh) 2019-08-20

Similar Documents

Publication Publication Date Title
CN110892672B (zh) 提供设备匿名性的密钥认证声明生成
US9787647B2 (en) Secure computer evaluation of decision trees
CN108269062B (zh) 基于h5的电子合同制作方法、装置、设备及介质
CN107395358A (zh) 信息请求及提供方法和装置、存储介质和设备
CN110061840A (zh) 数据加密方法、装置、计算机设备及存储介质
CN109691010B (zh) 用于数据传输的系统和方法
Velliangiri et al. An efficient lightweight privacy-preserving mechanism for industry 4.0 based on elliptic curve cryptography
CN110149633B (zh) 一种支持批验证的安全多方认证方法及系统
CN109728905B (zh) 基于非对称密钥池的抗量子计算mqv密钥协商方法和系统
CN106888213B (zh) 云密文访问控制方法及系统
CN109274504B (zh) 一种基于云平台的多用户大数据存储分享方法及系统
Umoh et al. Image multi‐encryption architecture based on hybrid keystream sequence interspersed with Haar discrete wavelet transform
CN112395636B (zh) 电网数据加密模型训练方法、系统、存储介质及设备
CN114139197A (zh) 一种代理安全多方计算方法、系统、处理设备及存储介质
CN109787754A (zh) 一种数据加解密方法、计算机可读存储介质及服务器
CN106446715A (zh) 一种文件加密方法和装置
Fan et al. User‐friendly XOR‐based visual secret sharing by random grid
CN111130791B (zh) 数据签名方法、电子设备及计算机可读存储介质
CN117349685A (zh) 一种通信数据的聚类方法、系统、终端及介质
US20140090032A1 (en) System and method for real time secure image based key generation using partial polygons assembled into a master composite image
Gondim et al. Steerable Fourier number transform with application to image encryption
Zia et al. A novel image encryption technique using multi-coupled map lattice system with generalized symmetric map and adaptive control parameter
US10263972B1 (en) Authenticating by labeling
CN110781503B (zh) 数据调用方法、装置及计算机可读存储介质
CN110915162A (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190820

Assignee: Guilin Weisichuang Technology Co.,Ltd.

Assignor: GUILIN University OF ELECTRONIC TECHNOLOGY

Contract record no.: X2023980046257

Denomination of invention: A Secure Multi party Authentication Method and System Supporting Batch Verification

Granted publication date: 20220308

License type: Common License

Record date: 20231108

EE01 Entry into force of recordation of patent licensing contract