可搜索语音加密机制访问控制的匿名交互算法

2021-04-17 05:53何少芳
电子科技 2021年4期
关键词:身份验证密钥云端

何少芳,周 丽

(湖南农业大学 信息与智能科学技术学院,湖南 长沙 410128)

随着云计算技术的快速发展,越来越多的组织和个人选择第三方云平台来存储自己的数据[1]。伴随着语音通信的广泛应用,海量的加密语音数据随之产生。语音数据以密文形式存储于云端服务器,如果用户需要搜索包含某个语音关键字的相关语音文件,将产生云环境下加密语音数据搜索操作的难题。为了更好地解决该问题,可搜索语音加密机制(Searchable Voice Encryption,SVE)应运而生。与文本的可搜索加密机制[2-5]类似,数据提供者可以使用SVE机制对数据进行加密,并将密文存储在云端服务器。当用户需要搜索某个关键字时,可以将该关键字的搜索凭证发给云端服务器。云端将接收到的搜索凭证对每个文件进行检索匹配,如果匹配成功,则说明该文件中包含该关键字。最后,云端将所有匹配成功的文件发回给用户,而用户收到检索结果之后,只需对返回的文件进行解密[6-9]。搜索加密体制允许用户对密文数据通过关键词进行检索,减少了数据共享用户的通信和计算开销[10]。有学者提出基于感知哈希的密域音频检测方案[11-12],该方案可在不下载和不解密云端语音加密数据的条件下,实现加密语音段快速、准确检索。为了进一步改善感知哈希的鲁棒性和区分性以提高检索效率,研究人员利用语音的多重分形特征提出性能更优的感知哈希加密语音检索算法[13]。此外,研究人员还提出了基于音节级感知哈希的加密语音检索算法[14],可实现语音段和关键词的检索。然而,这些可搜索加密语音的方法都属于可搜索语音加密机制中的单用户单服务器模型,即只能实现单一用户的检索功能。在可搜索语音加密机制的一对多和多用户单服务器模型中,需要解决多个用户的访问检索问题,重点在于访问控制中能实现用户的匿名身份验证。基于此,本文提出一种公钥匿名交互算法。该算法基于离散对数困难问题实现用户的匿名身份验证,并利用过滤函数实现对称密钥的传递以及用户的动态增删。其中,对称密钥是指用于加解密语音数据的密钥。总的来说,提出的交互算法实现了多用户访问控制中的以下功能:(1)用户的匿名身份验证;(2)安全传递用于语音数据加解密的对称密钥;(3)针对用户的动态增删情况(新用户加入和老用户退出),在不更新其他合法用户私钥的前提下,一次性完成增加新用户或撤销多个用户使用权限的操作。

1 可搜索语音加密机制应用模型

与文本的可搜索加密问题模型相似,可搜索语音加密机制应用模型也可分成4类:单用户单服务器模型、多对一单服务器模型、一对多单服务器模型以及多用户单服务器模型[15],如图1所示。实际上,从安全角度出发,根据接收者(用户)检索前是否需要身份验证,单用户单服务器模型与多对一单服务器模型可以分成一类,因为它们都只有一个接收者,检索时无需进行访问控制或身份验证。一对多单服务器模型与多用户单服务器模型可归为另一类,因为在这两种模型中,接收者(用户)在检索前需要进行身份验证,只有合法用户才能取得检索权限。一对多单服务器模型和多用户单服务器模型分别是单用户单服务器模型和多对一单服务器模型的扩展,也是云环境下复杂共享机制的抽象,具备广阔的应用前景。

图1 可搜索语音加密机制的应用模型分类

2 交互算法

在一对多和多用户单服务器模型中,发送者将已加密的语音数据上传至不可完全信赖的云端服务器,任意用户只要能通过访问控制即可具备加密语音数据的检索权限。如果在访问控制的身份验证中要求保护用户隐私,则匿名技术不可或缺。本文基于离散对数困难问题和过滤函数设计交互算法,实现访问控制中的公钥匿名身份验证、对称密钥传递以及用户动态增删。具体来说,如果用户Bob要检索包含语音关键词Q的语音文档,他必须先通过匿名身份验证,才能向云端服务器发送查询关键词Q的音节级感知哈希,进而获得解密密钥和服务器返回的检索结果。云端服务器对查询关键词的明文信息一无所知,而关于查询方信息仅知道其编号。在云端服务器返回检索结果以后,用户Bob利用私钥和密钥传递信息(C1(x),C2)就可获得解密密文语音所需的对称密钥K,从而解密所有包含关键词Q的密文语音文档。访问控制交互算法的技术线路如图2所示,关键部分可分成以下几点进行具体描述。

2.1 系统初始化设置

设p是一个大素数,q也是一个素数且满足q|p-1,q>n, 其中n为用户数目,g是Zq上的一个生成元。这样在p中计算以g为底的离散对数被认为是困难问题,p予以公开。随机选择一个k次多项式f(x)=a0+a1x+…+akxk,k>N,N为最大用户数。除另有说明外,本文的所有算术运算都在Zq上进行。

2.2 密钥的产生

(1)

图2.交互算法技术线路

2.3 匿名身份验证

用户Bob要查询包含语音关键词Q的语音文档,他必须先通过匿名身份验证,在隐藏自己真实身份(只有编号i)的前提下向云端服务器证明自己是用户群中的合法用户。这个验证过程通过以下步骤实现:

步骤3Bob按顺序计算式(2)中的各项, 并将式(3)发送给云端服务器;

(T1)fi(i),(T′1)f2i(i),…,(T′n)f2ni(i)

(2)

Δ=(T1)fi(i)‖(T′1)f2i(i),‖…‖(T′n)f2ni(i)

(3)

步骤4服务器将I中所有相邻顺序为T′jTl,j,l∈{1,2,…,n}形式的部分提取出来,例如T′1T2,T′2T3,…,T′n-1Tn。根据相应中Δ的项分别成对式(4)中的项

(4)

满足

r′j×r′j-1=1mod(q-1),rj×rj-1=1mod(q-1)

(5)

验证它们是否相等,这是因为

(6)

(7)

若所有提取的部分通过相等的验证,则执行下一步骤的操作,否则验证失败;

xk‖gAf(xk)‖gAf(i)‖给Bob;

步骤6Bob利用收到的k组数据(xj,gAf(xj)),j=1,2,…,k以及(i,gAf(i)),由Lagrange插值法得到

(8)

将gAf(0)发送给服务器;

值得指出的是,该交互过程通过访问控制模块在后台自动计算辅助完成,用户仅需在访问控制界面上提供相关信息即可,无需按步骤亲自参与计算过程。

2.4 对称密钥传递

(9)

其中,(C1(x),C2)被称为密钥传递信息,它将由数据发送者上传到云端服务器。通过匿名验证的合法用户(查询方)利用服务器发来的消息(C1(x),C2)以及所持私钥通过简单的计算即可获得对称密钥K。

(10)

待查询方从云端服务器下载包含查询关键词的密文语音检索结果,对其进行解密操作即可得到明文语音的检索结果。值得注意的是,云端服务器除了存储数据提供者上传的带水印加密语音数据外,还存储密钥传递信息(C1(x),C2)和系统哈希表,它在收到合法用户发来的查询请求后(查询语音的感知哈希),将利用文献[14]中的方法进行高效快速地检索。

2.5 用户的动态增删

3 算法分析

3.1 用户匿名安全与不可否认性

3.2 完全抗共谋性

3.3 完全撤销性与恢复性、用户密钥的耐用性

由对称密钥的传递算法和用户动态增删算法可知,密钥管理中心与数据提供者通过双方协作能实现撤销用户和新增用户的操作。检索权限被撤销的用户,由于其私钥已失效,无法顺利通过身份验证,从而无法进行加密语音数据的检索。在用户的增加(恢复)与删除操作中,它不存在门限,可一次性完成多个用户的增删,具有完全撤销性与恢复性。此外,无论是撤销还是增加用户,原有用户的私钥都无需更新,所以用户私钥具有较强的耐用性。

4 结束语

在可搜索语音加密机制的访问控制中,为了解决身份验证,对称密钥安全传递以及用户的动态增删问题,本文基于离散对数问题难解性提出一种公钥匿名交互算法。通过数据发送方、密钥分发中心以及云端服务器的共同协作,该算法不仅能够实现用户的匿名验证、保护用户隐私,还能安全传递用于加解密语音数据的对称密钥,并完成访问用户的动态增删。需要注意的是,虽然本文方案的安全性较高,但也有其无法避免的缺陷,具体体现在合法用户提出查询请求时,提交的是查询语音的感知哈希,它虽然能有效隐藏查询内容,但无法隐藏用户的检索模式。因此,下一步工作主要包括两个方面:一是探索掩盖用户检索模式的有效方法;二是以本文工作为基础进一步实现面向多用户的可搜索语音加密机制。

猜你喜欢
身份验证密钥云端
四海心连·云端汇聚
幻中邂逅之金色密钥
幻中邂逅之金色密钥
在云端永生
云端之城
Android密钥库简析
声纹识别认证云落户贵州
基于Windows下的文件保密隐藏系统的设计与实现
在云端
一种新的动态批密钥更新算法