论文分享|一个高效的安全两方近似模式匹配协议

隐私计算研习社\] ![图片](https://file.jishuzhan.net/article/1704121114147426306/243c6e0dc5434da48b5fdfad0025534a.webp) 本文将分享论文《一个高效的安全两方近似模式匹配协议》,来自《计算机研究与发展》2022年08期。 模式匹配作为计算科学领域中的一个典型问题,其功能是确定模式在文本中出现的位置。近似模式匹配作为最适合实际应用的模式匹配变体,常用于人脸识别、基因匹配、文本处理、数据挖掘和计算生物学等领域。如在人脸识别中,当光线、表情或位置不同时,我们提取的人脸图像的特征数据也不同。因此,在与数据库中存储的特征模板进行匹配时,需要根据相似程度来判断人脸的身份信息,而不是根据它们是否相同。 本文主要考虑安全近似模式匹配场景:数据库方持有长度为n的文本字符串t∈{0,1}n,用户持有长度为m的模式字符串P∈{0,1}m,同时双方共享某阈值τ。用户希望仅自己知道与其模式相匹配的文本子串的位置(模式P与文本子串之间的汉明距离小于τ,即为匹配成功),同时数据库方不会获得关于用户模式的任何信息。而数据库方希望用户不会获得关于其文本的其他额外信息。本文主要考虑半诚实敌手模型下的协议,即敌手严格遵循协议的执行,但却是"好奇"的,其试图通过收到的信息以及所处的状态推测出其他额外信息。 1 \*\*\*\***贡献** 1)首次基于茫然传输、加法同态加密、茫然多项式计算以及隐私等值比较技术给出了一个半诚实安全的近似模式匹配协议的高效构造。 协议的主要思想是:首先,通过茫然传输协议,用户在无法获得文本信息的情况下获得盲化后的文本子串比特与对应位置模式比特的异或值。 其次,结合同态加密技术,可计算出盲化后的文本子串与模式之间的汉明距离。 最后,利用茫然多项式计算以及隐私等值比较技术,就可以判断汉明距离是否小于τ,并最终得到正确结果。 2)与现有的安全近似模式匹配工作相比,我们的协议在计算复杂度方面更高效,其中协议的轮复杂度为O(1),计算复杂度为O(nτ),通信复杂度为O(nm)。 3)为了检验协议的高效性,我们进行了性能评估。实验结果表明:当模式长度为26、文本长度为212时,协议仅需10s运行时间。 2 \*\*\*\***基础知识** **1. 茫然传输及其扩展协议** 茫然传输是密码学中重要的基本原语之一,被广泛应用于安全计算领域。其中一种比较实用的OT协议,称为1-out-of-2OT,发送方每次向接收方发送2个有序消息(x0,x1)。接收方输入一个选择比特σ,并根据自己的输入得到输出。在协议结束时,接收方仅获得消息xσ,不会得知关于另一消息的信息,而发送方不会得知接收方最后获得的是哪一个消息。 在具体的安全多方计算协议中,需要执行的OT协议数量可能高达数百万个。因此,OT协议的效率成为影响安全多方计算协议效率的重要因素。茫然传输扩展技术。OT扩展协议通过运行少量的基础OT协议,即可实现执行大量OT协议的效果。当前,基于OT扩展技术的协议较之于其他技术实现的协议更为高效,因而本文也将使用Ishai等人的OT扩展技术来改进安全近似模式匹配协议的效率,协议描述如下: 现有Alice和Bob两个参与方。其中,Bob拥有一个长为m的比特串r作为OT的选择比特。Bob将这个比特串进行重复编码,形成n\*λ的矩阵R。Bob对该矩阵进行秘密分享,生成两个秘密份额矩阵T与T'。Alice随机生成一个长为λ的比特串S。Alice变为接收方,Bob为发送方,执行λ次基础OT。对于第i次的基础OT,Bob输入两个矩阵的第i列元素(Ti,Ti'),Alice以si作为选择比特选择两列元素中的某一列。直至执行完λ次,Alice获得矩阵。观察可得 ![图片](https://file.jishuzhan.net/article/1704121114147426306/94ec22c78f17461c811c36c89d2605b8.webp) Alice构造消息对(qi,qi⊕s),由于Alice的每一行都使用了s,为保证其安全性,使用随机预言机模型H,可得下图结果 ![图片](https://file.jishuzhan.net/article/1704121114147426306/04691e7be0b24e78990092d95a7dee09.webp) 协议描述如下: ![图片](https://file.jishuzhan.net/article/1704121114147426306/9b4e65d6d5fb45db841dbdbda65178d8.webp) **2. 茫然多项式计算** 茫然多项式计算是一个两方协议,P0持有秘密多项式P(·),而P1持有秘密元素x。OPE允许P1得到P(x),但无法获得多项式P(·),同时P0无法得知P1持有的x。 本文将使用赵永骏等人所提及的茫然多项式计算方案,方案描述为:在OPE协议中,一方持有1个n阶多项式P(·),通过使用同态加密方案加密此n阶多项式P(·)的系数a0,a1,...,an以隐藏其本身,并将这些加密系数Encpk(P(·))发送给持有明文的参与方。持有明文x的参与方可基于同态性质Encpk(a0)×(Encpk(a1))x×(Encpk(a2))x2×...×(Encpk(an))xn来计算得到Encpk(P(x))。 **3. 隐私等值比较** 隐私等值比较允许发送方和接收方分别输入字符串x0和x1,且接收方仅获得0或1以表示x0与x1是否相等,但不会得知其他任何信息。功能函数FPEQT描述为: 功能函数FPEQT。 输入: 1)发送方输入字符串x0∈{0,1}*; 2)接收方输入字符串x1∈{0,1}* 输出: 1)如果x0=x1,接收方输出1,否则输出0; 2)发送方无输出。 3 \*\*\*\***安全近似模式匹配协议** 本协议主要基于茫然传输、同态加密、茫然多项式计算和隐私等值比较。通过茫然传输扩展协议,用户能够在不知道文本信息的情况下,获得盲化后的模式p的每一比特与文本子串对应的每一比特的异或值。这一步的思想主要源于宋祥福等人的共享等值比较协议。通过同态加密计算,数据库方可获得盲化后的ti与模式p之间的汉明距离。通过茫然多项式计算与隐私等值比较,用户可获得其模式在数据库方的文本中出现的位置。安全近似模式匹配协议的流程大致分为4个阶段: 1. 茫然传输阶段。数据库方将其选择的随机数嵌入到茫然传输扩展协议的输入中,以达到盲化其文本的目的。通过茫然传输扩展协议,用户可以获得盲化后的模式p的每一比特与文本子串ti对应的每一比特的异或值。 2. 汉明距离计算阶段。用户对盲化后的比特异或值进行计算,得到盲化后的ti与模式p之间的汉明距离。数据库方对其选择的随机数进行求和运算,使用其公钥加密后发送给用户。用户通过加法同态加密计算得到密文状态下的汉明距离,盲化后将其发送给数据库方解密。 3. 匹配阶段。数据库方和用户通过茫然多项式计算和隐私等值比较判断文本子串ti与模式p之间的汉明距离是否小于阈值τ。如果汉明距离小于阈值τ,用户获得输出1,否则获得输出0。 4. 输出阶段。用户根据输出是否为1确定相应子串是否匹配成功,最终输出匹配位置。 ![13.png](https://file.jishuzhan.net/article/1704121114147426306/8875aeceec4f4920aa362699963a64fb.webp) 本文所构造的协议具体描述如下:协议3.安全近似模式匹配协议πAPM。输入:数据库方D输入字符串t∈{0,1}n、整数m以及阈值τ;用户U输入字符串P∈{0,1}m、整数n以及阈值τ 输出:当文本子串ti与模式p之间的汉明距离小于阈值τ时,用户U输出位置i。 协议:1)数据库方D选择随机数r1i,r2i,...,rmi∈{0,1}λ,其中i∈[n-m+1],λ为安全系数。对于文本子串ti=t1it2i...tmi,数据库方D和用户U执行OT扩展协议。其中,作为OT扩展协议的发送方,数据库方D的输入为(r1i+t1i,r1i+(1⊕t1i)),(r2i+t2i,r2i+(1⊕t2i)),...,(rmi+tmi,rmi+(1⊕tmi))。作为OT扩展协议的接收方,用户U的输入为P1,P2,...,Pm。协议执行结束后,用户U获得输出依次为r1i+(t1i⊕P1),r2i+(t2i⊕P2),...,rmi+(tmi⊕Pm)。 2)数据库方D计算随机数之和,记为αi=r1i+r2i+...+rmi。用户U计算OT扩展协议的输出之和,记为βi=r1i+(t1i⊕P1)+r2i+(t2i⊕P2)+...+rmi+(tmi⊕Pm),i∈[n-m+1]。注意,βi=αi+(t1i⊕P1)+(t2i⊕P2)+...+(tmi⊕Pm),而(t1i⊕P1)+(t2i⊕P2)+...+(tmi⊕Pm)为文本子串ti与模式p之间的汉明距离,记为Hi。此外,数据库方D使用其公钥pk1加密αi并将密文发送给用户U。用户U选择随机数ri∈{0,1}λ,使用D的公钥pk1加密βi和ri,通过同态加密性质计算Epk1(ri)×Epk1(βi)/Epk1(αi),而后将结果发送给数据库方D。数据库方D使用其私钥sk1解密得到ri+Hi。 3)数据库方D和用户U通过茫然多项式计算和隐私等值比较判断ri+Hi是否与ri,ri+1,ri+2,...,ri+τ-1中之一相等。若相等,则表明文本子串ti与模式p之间的汉明距离小于τ,即文本子串ti与模式p匹配。 ①用户U选择随机数r′∈{0,1}λ、密钥K以及根为ri,ri+1,ri+2,...,ri+τ-1的多项式Pi(·),计算多项式P′i(·)=r′×Pi(·)+K。之后,用户U使用其公钥pk2加密多项式P′i(·)的系数,并将密文发送给数据库方D。 ②首先,数据库方D使用点ri+Hi对多项式P′i(·)进行茫然计算,得到结果Epk2(K′i)。数据库方D选择随机数r″i∈{0,1}λ,并使用公钥pk2加密⊥r″i得到Epk2(r″i)。其次,数据库方D通过同态性质计算Epk2(K′i)×Epk2(r″i),得到Epk2(K′i+r″i),并发送给用户U。之后,用户U使用其私钥sk2解密密文得到K′i+r″i,发送给数据库方D。最后,数据库方D通过其持有的r″i恢复K′i。 ③数据库方D和用户U执行隐私等值比较协议。其中,数据库方D作为协议的发送方,其输入为K′i,而用户U作为协议的接收方,其输入为K。协议结束之后,用户U获得输出bi∈{0,1}。 4)用户U判定bi中哪些值为1,以此确定模式p在t中出现的位置。①若存在bi=1,表示文本子串ti和模式p匹配成功,则输出i;②否则,输出⊥,表示匹配失败。4 \*\*\*\***协议正确性** 安全近似模式匹配协议的正确性是指在协议运行结束之后,用户U得到正确的结果。具体而言,如果在数据库方的文本t中存在与模式p近似匹配的子串,则用户一定输出该子串的起始位置,否则用户输出⊥,匹配失败。 首先需要说明的是,通过茫然传输协议,用户能够获得正确的盲化后的比特异或值。我们就2种情况分别进行说明: 1)当tmi=0时,数据库方的输入为(rmi,rmi+1)。 ①当选择比特Pm=0时,用户通过茫然传输协议获得的结果为rmi,而此时计算rmi+(tmi⊕Pm)的结果也为rmi。因此,该情况下,用户通过茫然传输协 议获得的结果是正确的。 ②当选择比特Pm=1时,用户通过茫然传输协议获得的结果为rmi+1,而此时计算rmi+(tmi⊕Pm)的结果也为rmi+1。因此,该情况下,用户通过茫然传输协议获得的结果也是正确的。 2)当tmi=1时,数据库方的输入为(rmi+1,rmi)。 ①当选择比特Pm=0时,用户通过茫然传输协议获得的结果为rmi+1,而此时计算rmi+(tmi⊕Pm)的结果也为rmi+1。因此,该情况下,用户通过茫然 传输协议获得的结果是正确的。 ②当选择比特Pm=1时,用户通过茫然传输协议获得的结果为rmi,而此时计算rmi+(tmi⊕Pm)的结果也为rmi。因此,该情况下,用户通过茫然传输协 议获得的结果也是正确的。 其次需要说明的是,通过茫然多项式计算和隐私等值比较,用户能够得到正确的匹配结果。我们就2种情况分别进行阐述: 1)如果文本t中存在m比特长的子串与模式p近似匹配,则该子串与模式p之间的汉明距离小于τ。假设子串ti=t1it2i...tmi与模式p近似匹配,则Hi<τ,因而ri+Hi∈{ri,ri+1,...,ri+τ-1}。由于ri,ri+1,...,ri+τ-1是多项式Pi(·)的根,所以数据库方用ri+Hi茫然计算多项式P′i(·)=r′×Pi(·)+K的结果一定是K。在隐私等值比较协议中,数据库方和用户的输入皆为K,则用户一定得到输出1,表示该文本子串与模式p匹配。 2)若匹配失败,则表明文本中不存在m比特长的子串与模式p之间的汉明距离小于τ。假设子串tj与模式p不匹配,则Hj≥τ,因而rj+Hj∉{rj,rj+1,...,rj+τ-1}。因此,数据库方用rj+Hj茫然计算多项式P'i(·)=r′×Pi(·)+K的结果一定不是K。用户在隐私等值比较协议中获得的输出一定是0,这也就表明该文本子串与模式p匹配失败。 综上所述,用户U在匹配成功和失败情况下均能输出正确的结果,因此协议正确性满足 5 \*\*\*\***性能评估** 在运行Windows10系统,使用Intel CoreTM i5 CPU和16GB RAM的个人计算机上进行实验。在本实验中,我们使用随机的二进制模式字符串和文本字符串。此外,我们使用paillie加密系统来进行加密,其密钥长度为2048。 注意到,模式信息的长度记为m,文本信息的长度记为n,我们设置τ=0.5,即汉明距离需小于0.5m。我们取模式的长度分别为m=26,27,28,29,210,文本的长度分别为n=211,212,213,214,协议运行时间如表3所示。我们可以发现,当模式长度为26、文本长度为212时,协议在10s内即可运行结束。 ![14.png](https://file.jishuzhan.net/article/1704121114147426306/37cd964598504e3e9e84ab516f21978b.webp) 此外,我们又设置τ=0.9,模式长度m分别为26,27,28,29,210,文本长度n分别为211,212,213,214,并进行了实验。为了便于观察实验结果,我们给出了τ=0.5与τ=0.9时实验结果的折线图,如图2和图3所示。我们发现,当τ值由0.5增加到0.9,随着文本长度与模式长度的增加,协议的运行时间的增长幅度越大。 ![15.png](https://file.jishuzhan.net/article/1704121114147426306/d70b718b76554a598424a2e826134a1c.webp) ![16.png](https://file.jishuzhan.net/article/1704121114147426306/9851ba56d7f547fd9adf782feb7897b8.webp) 参考: SecurityLabUJN 分享仅供学习参考,若有不当,请联系我们处理。

相关推荐
腾讯TNTWeb前端团队3 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰7 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪7 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪7 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy8 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom8 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom8 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom8 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom9 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom9 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试