可更新的令牌化:定义和可证明安全的构造
摘要
令牌化是将敏感元素(如信用卡号码)持续替换为非敏感替代值的过程。由于存储信用卡数据的任何组织都必须进行令牌化,许多实际解决方案已被提出并投入商业运营。然而,所有现有解决方案都是静态的,即它们无法在保持token一致性的同时高效地更新加密密钥。这种缺乏可更新性的问题给大多数实际部署带来了负担,因为加密密钥也必须定期重新密钥化以确保持续的安全性。本文提出了一种支持密钥演进的可更新的令牌化模型,在该模型中,即使发生密钥泄露,也不会暴露过去各个令牌化数据之间的关联,并且对令牌化数据集的更新可由不受信任的实体执行,同时保持数据的一致性。我们形式化地定义了所需的安全属性,以保证不同时期之间token的不可链接性以及令牌化过程的单向性。此外,我们构造了两种高效的可更新令牌化方案,并证明其满足所提出的安全概念。
1 引言
如今,越来越多的组织将他们的数据库副本外包给第三方,例如云服务提供商。由于法律限制或安全顾虑,通常要求在跨境传输或将数据移入不受信任的环境之前,对数据进行去敏感化或匿名化处理。最常见的方法是所谓的tokenization,即用一个替代性的随机值来替换任何可识别的敏感元素,例如社会保障号码或信用卡号码。
欧洲的政府机构和咨询小组[6]以及美国的政府机构和咨询小组[9]已明确建议采用此类方法。许多特定行业领域法规也要求如此,例如,用于保护患者信息或支付卡行业数据安全标准(PCI DSS)[10]用于信用卡数据。PCI DSS 是一个全行业的指南集合,任何处理信用卡数据的组织都必须遵守,该标准要求仅存储非敏感令牌,而非真实的信用卡号码。
出于安全考虑,令牌化过程应具备单向性,即即使用于令牌化的密钥被泄露,token 也不会泄露原始数据的信息。另一方面,可用性要求标记化数据集保持引用完整性,即当输入中同一值多次出现时,应始终映射到相同的 token。
许多行业白皮书讨论了依赖(带密钥的)哈希函数、加密方案以及通常还涉及随机替换表等非密码学方法的令牌化 [11,12,14],解决方案。然而,这些方法中没有任何一种能够通过精确的安全模型,在可证明安全的方式下保证上述要求。直到最近,才首次提出了针对令牌化的形式化安全概念 [5]。
然而,迄今为止所有令牌化方案和模型都是静态的,这意味着一个值与其标记化形式之间的关系永远不会改变,并且用于令牌化的密钥也无法更改。因此,密钥更新成为一个尚未解决的关键问题。在大多数实际部署中,所有加密密钥都必须定期重新密钥化,以确保持续的安全性。事实上,前述的PCI DSS 标准甚至规定用于加密的密钥必须至少每年轮换一次。类似于主动安全密码系统[8],,定期更新可降低数据随着时间推移逐渐泄漏所带来的风险。对于令牌化而言,这些密钥更新必须以一致的方式进行,以确保已经标记化的数据与在更新后的密钥下生成的新token保持引用完整性。现有的解决方案尚无法实现高效的密钥更新,因为它们需要从头开始,使用新的密钥对整个数据集重新进行令牌化。鉴于标记化的数据集通常非常庞大,这在现实应用中显然是不可取的。相反,持有令牌化数据的不受信任的实体应能够对已标记化的数据表示进行重新密钥化。
我们的贡献
作为解决这些问题的方案,本文提出了一种支持可更新的令牌化(UTO)和密钥演进的模型,区分了多种安全属性,并提供了高效的密码学实现。可更新的令牌化方案考虑了一个数据所有者生成数据并对其进行令牌化,以及一个不受信任的主机仅存储令牌化数据的情况。该方案在时期中运行,其中所有者为每个时期生成一个新的令牌化密钥,并使用它对添加到数据集中的新值进行令牌化。所有者还会向主机发送一个更新微调,使其能够将前一个时期令牌化的值“向前滚动”到当前时期。
我们提出了几种形式化安全概念,通过建模密钥演化并考虑在不同时间对所有者、主机或两者的自适应腐败,进一步细化了上述安全目标。由于UTO的时间维度和自适应腐败的精确形式化定义需要仔细建模。我们将期望的安全属性定义为不可区分性游戏,要求两个数据值的标记化表示对攻击者而言是不可区分的,除非攻击者已通过平凡方式获得了它们。实现期望的强不可区分性概念的一个重要属性是不可链接性,我们明确指定了不受信任的实体在何种情况下(以及何种情况下不能)能够关联在不同周期中被令牌化的两个值。
另一个与基于不可区分性的概念正交的定义,形式化了当所有者公开其当前密钥材料时所期望的单向性属性。在此情况下,攻击者可能通过尝试所有可能的值来猜测输入;单向性概念确保这是其逆向令牌化的最佳策略。
最后,我们提出了两种高效的UTO构造:第一种方案(UTOSE)基于对称加密,实现了在被攻破的所有者或被攻破的主机存在情况下的单向性以及不可区分性。第二种构造(UTODL)依赖于离散对数假设,并且额外满足我们最强的不可区分性概念,允许攻击者(临时地)攻破所有者和主机。这两种构造共享相同的核心思想:首先,对输入值进行哈希,然后使用每个周期都会变化的密钥对哈希值进行加密。
我们并不声称这些密码学构造具有特别的新颖性。我们工作的重点是为密钥演进和可更新令牌化提供形式化基础,这是现实应用中的一个重要问题。为实践者提供清晰且可靠的安全模型,对于我们领域的相关性至关重要。鉴于公众对数据隐私的广泛关注以及行业对令牌化方法的兴趣,尤其是在金融行业等受监管和敏感环境中,这项工作有助于理解高效令牌化的保障与局限性。
相关工作
许多密码学方案与我们的可更新令牌化的概念相关:密钥同态伪随机函数(PRF)、茫然PRF、可更新加密和代理重加密,我们将在下面进行详细比较。
一个密钥同态的伪随机函数[3]具有这样的性质:给定PRFa(m)和PRFb(m),可以计算出PRFa+b(m)。然而,这种同态性并不能直接实现便捷的数据更新:数据主机将存储值PRFa(m),当数据所有者希望将其密钥从 a更新为 b时,他必须针对每个先前标记化的值 m计算 Δm=PRFb−a(m)。此外,为了允许主机计算PRFb(m) = PRFa(m)+Δm,所有者必须提供某种参考信息,以指明每个 Δm对应的PRFa(m)。该方法存在若干缺点:(1)所有者必须存储所有先前已外包的值 m ;(2)计算更新调整参数及其长度将依赖于令牌化数据量。我们的方案旨在克服这些限制。事实上,若容忍(1)+ (2),所有者可简单使用任意标准PRF,重新计算所有token,并让数据主机替换所有数据。这在实践中显然效率低下且不可取。
Boneh 等 [3]还简要讨论了如何将此类支持同态密钥的伪随机函数用于可更新加密或代理重加密。可更新加密可被视为对称密钥代理重加密的一种应用,其中代理将密文从先前的密钥周期重新加密为当前的密钥周期。粗略地说,[3]中的密文计算为 C= m+ PRFa(N),其中随机数N与密文 C 一起存储。为了将密钥从 a轮换到b,数据所有者将 Δ= b − a推送给数据主机,主机可利用 Δ来更新所有密文。对于每个密文,主机随后使用存储的随机数N计算 PRFΔ(N),并将密文更新为 C′= C+PRFΔ(N) =m+PRFb(N)。然而,静态随机数的存在使得该方案在我们的令牌化上下文中无法保证安全。对于任何不知道更新调整的攻击者而言,令牌化数据在各个时期之间应是不可链接的,并且我们甚至以前向安全的方式保证不可链接性,即在周期 e发生安全泄露不会影响此前暴露的任何数据。
在他们论文的完整版本 [4], Boneh 等中提出了一种不同的可更新加密解决方案,能够实现上述不可链接性,但存在与前述类似的效率问题:数据所有者必须检索并部分解密其所有密文,然后为每个密文生成专用的更新微调,这使得该方案对我们的目的而言不具实用性。此外,该论文未给出针对此类可更新加密的、建模自适应密钥泄露的形式化安全定义。
Everspaugh 等提出的 Pythia 服务 [7] 提到了具有密钥轮换的伪随机函数,这更接近我们的目标,因为它允许在密钥更新时高效地更新外包的伪随机函数值。Pythia 方案的核心思想与我们的第二种基于离散对数的构造非常相似。遗憾的是,该论文并未给出任何涵盖更新伪随机函数值可能性的形式化安全定义,也未描述此类密钥轮换伪随机函数的具体性质。由于 Pythia 的主要目标是为密码哈希提供一种无感知且可验证的伪随机函数服务,其整体构造更为复杂,并追求一些我们此处不需要的属性;反之,我们的不可链接性属性对于 Pythia 的目标似乎并非必要。
尽管上述工作与可更新的令牌化有一些关联,但它们在概念上具有截然不同的安全概念要求。从这样一个现有概念出发,并扩展其安全概念和构造以额外满足可更新的令牌化的要求,将降低效率和实用性,却并无明显优势。因此,我们认为直接针对具体的现实世界问题的方法更为合适。
迪亚兹‐圣地亚哥等人最近提出了关于令牌化安全概念的初步研究[5];他们形式化地定义了令牌化系统,并给出了几种安全概念及可证明安全的构造方法。简而言之,他们的定义与适用于令牌化表示法的传统确定性加密和单向函数的定义非常相似。然而,他们未考虑自适应腐败,也未涉及可更新的token,而 这正是本工作的关键方面。
2 预备知识
在本节中,我们回顾在构造中所需的构建模块及其安全概念的定义。
确定性对称加密
一个确定性对称加密方案SE由密钥空间 K以及三个多项式时间算法SE.KeyGen,SE.Enc,SE.Dec组成,并满足以下条件: SE.KeyGen:概率密钥生成算法 SE.KeyGen 以安全参数 λ 作为输入,并生成一个加密密钥 s ←r,即 SE.KeyGen(λ)。SE.Enc: 确定性加密算法 接收一个密钥 s ∈ K 和一条消息 m ∈M,并返回一个密文 C ←,即 SE.Enc(s, m)。SE.Dec: 确定性解密算法 SE.Dec 接收一个密钥 s ∈ K 和一个密文 C, 并返回一条消息 m ←,即 SE.Dec(s, C)。
对于正确性,我们要求对于任意密钥 s ∈ K、任意消息 m ∈M 和任意密文 C ← SE.Enc(s, m),均有 m ← SE.Dec(s, C)。
我们现在定义确定性对称加密方案在选择明文攻击下的不可区分性意义上的安全性,即IND‐CPA安全性。这一概念由贝尔等在[1],中非正式地提出,用于描述以下场景:一个攻击者在能够访问左或右(LoR)加密预言机的情况下,无法以显著高于二分之一的概率区分其选择的两个不同消息的加密结果。由于所讨论的加密方案是确定性的,攻击者只能在LoR预言机的同一侧(左侧或右侧)使用不同的消息进行查询,以避免轻易获胜。也就是说,形如(mi 0, m i 1),(m j 0, mj 1) 其中mi 0= mj 0或 mi 1= mj 1的查询是被禁止的。我们不向攻击者提供显式的加密预言机,因为它可以通过向预言机查询一对相同的消息来获得其所选消息的加密。
定义1. 一个确定性对称加密方案 SE=(SE.KeyGen,SE.Enc,SE.Dec)被称为 IND‐CPA 安全 ,如果对于所有多项式时间对手 A,都有 |Pr[Exp ind-cpa A ,SE(λ) = 1]−1/2| ≤ ε(λ)成立,其中 ε 为某个可忽略函数。
实验Expind-cpa A ,SE(λ):s ←rSE.KeyGen(λ) d ←r{0, 1} d′ ←r AOenc(s,d,·,·)(λ) 其中 Oenc 在 输入两个消息 m0, m1 时返回 C ← SE.Enc(s, md). 返回 1 如果 d′= d 且所有值 m1 0 ,…, mq 0 和所有值 m1 ,…, mq 1 分别互不相同,其中 q 表示对 Oenc 的查询次数。
哈希函数
一个哈希函数 H : D → R 是一种确定性的函数,它将来自定义域 D 的输入映射到值域 R 中的值。对于我们的第二个且更强的构造,我们假设该哈希函数的行为类似于随机预言机。在我们的第一个构造中,我们使用一个带密钥 哈希函数,即 H 以密钥 hk ←rH.KeyGen(λ) 作为额外输入。我们要求该带密钥哈希函数对于任何不知道密钥 hk 的攻击者而言是伪随机 且弱抗碰撞 的。此外,我们还要求当攻击者知晓密钥时,H 仍具有单向性 ,即在随机输入下 H 应仍然难以被逆向计算。
伪随机性: 如果没有任何高效的攻击者 A能够以不可忽略的优势将H与一个均匀的随机函数 f区分开,则称该哈希函数是伪随机的: D → R即, ∣ ∣Pr[AH(hk,·)(λ)]− Pr[Af(·)(λ)] ∣∣在 λ中是可忽略的,其中第一种情况下的概率是相对于 A的随机硬币抛掷以及hk ←rH.KeyGen(λ)的选择而言的,第二种情况下的概率是相对于 A的随机硬币抛掷以及随机函数 f的选择而言的。
弱抗碰撞性: 如果对于任意高效算法 A,当 hk ←r H。KeyGen(λ)且(m, m′) ←r AH(hk,·)(λ)时,攻击者输出 m = m′(其中H(hk, m) = H(hk, m′))的概率是 可忽略的(作为 λ的函数),则称哈希函数H为弱抗碰撞的。
单向性: 如果对于任意高效算法 A,当 hk ←r H.KeyGen(λ)时, m ←r D和 m′ ←r A(hk, H(hk, m))返回 m′的概率是可忽略的(作为 λ的函数),其中H(hk, m) = H(hk, m′),则称哈希函数H具有单向性。
决策性Diffie‐Hellman假设
我们的第二个构造需要一个群 (G, g,p) 作为输入,其中 G 表示一个阶为 p 的循环群 G= 〈g〉 ,且在该群中决策性 Diffie‐Hellman (DDH) 问题相对于 λ 是困难的,即 p 是一个 λ 位素数。更准确地说,一个群 (G, g,p) 满足 DDH 假设,如果对于任意高效攻击者 A,概率 |Pr[A (G,p, g, g a, g b, g ab)]−Pr[A(G,p, g, g a, g b, g c)]| 在 λ 上是可忽略的,其中概率取自于 p, g 的随机选取、 a, b, c ∈ Zp 的随机选择以及 A 的随机投币。
3 形式化可更新令牌化
一个可更新的令牌化方案包含数据所有者和主机的算法。所有者通过令牌化操作对数据进行去敏感化,并动态地将令牌化数据外包给主机。为此,数据所有者首先运行setup算法以生成令牌化密钥。该令牌化密钥随周期演变,数据是相对于特定周期 e进行令牌化的,起始于 e= 0。在给定周期中,令牌算法token接收一个数据值并使用当前密钥 ke对其进行令牌化。当从周期 e进入周期 e+ 1时,所有者调用算法next生成新周期的密钥材料 ke+1以及更新微调 Δe+1。随后,所有者将 Δe+1发送给主机,立即删除 ke和 Δe+1,并从此使用 ke+1 进行令牌化。主机在收到Δe+1后,首先删除Δe,然后使用算法upd结合Δe+1将之前接收到的所有来自周期 e的令牌化值更新至周期 e+1。因此,在某个周期 e期间,从 e−1到 e的更新微调在主机处可用,但来自更早周期的更新调整已被删除。
定义2。 一个可更新的令牌化方案 UTO 包含一个数据空间 X、一个 token 空间 Y,以及一组多项式时间算法UTO.setup、UTO.next、UTO.token 和 UTO.upd,需满足以下条件:
UTO.setup: 该算法 UTO.setup 是由所有者运行的概率算法。输入安全参数 λ后,该算法返回第一个周期的令牌化密钥 k0 ←rUTO.setup(λ)。
UTO.next: 该概率算法也由所有者运行。输入某个周期的令牌化密钥 ke和周期 e, 它将输出下一周期的令牌化密钥 ke+1和更新微调 Δe+1。即,(ke+1,Δe+1) ←r UTO.next(ke)。
UTO.token: 这是由所有者运行的确定性的 单射 算法。给定密钥 ke和某些输入数据 x ∈ X,该算法输出一个令牌化值 ye ∈ Y。即, ye ← UTO.token(ke, x)。
UTO.upd: 该确定性算法由主机运行,并使用更新微调。输入更新微调 Δe+1和某个 令牌化值 ye后,UTO.upd 将 ye 更新为 ye+1,即, ye+1 ← UTO.upd(Δe+1, ye)。
UTO方案的正确性条件确保了令牌化数据集内的引用完整性。在特定周期 中,由所有者新生成的令牌化值必须与主机通过更新操作产生的令牌化值相同。更准确地说,我们要求对于任意 x ∈ X,对于任意 k0 ←r UTO.setup(λ),对于通过密钥演化算法重复应用所生成的令牌化密钥/更新微调对序列(k1,Δ1)…, (ke,Δe),其中(kj+1,Δj+1) ←r UTO.next(kj) 对于j= 0,…, e − 1,以及对于任意 ye ← UTO.token(ke, x),均有
UTO.token(ke+1, x)= UTO.upd(Δe+1, ye).
3.1 可更新的令牌化方案的隐私性
UTO 的主要目标是实现数据值的隐私性,确保攻击者无法获取关于令牌化值的信息,也无法将其与过去时期中已令牌化的输入数据相关联。我们提出了三种基于不可区分性的概念来保障令牌化值的隐私性,并提出一种概念以防止攻击者逆向令牌化并从令牌化值中恢复出输入值。所有安全概念均通过挑战者与攻击者 A之间进行的实验来定义。根据具体概念的不同,攻击者可能会向下一节中定义的不同预言机发出查询。
从高层次来看,UTO 的四种安全概念通过 A的泄露能力加以区分。
IND-HOCH:诚实所有者与被攻陷主机下的不可区分性: 这是最基本的安全准则,关注UTO的可更新的动态特性。它假设所有者是诚实的,并允许在交互过程中主机被攻陷。尽管攻击者可以获得自攻陷之后所有时期的更新微调,但其 (大致而言)仍应无法区分在攻陷之前已被标记化的值。
IND- COHH:被攻陷所有者与诚实主机下的不可区分性: 该模型描述了所有者在某一时刻被攻陷的情况,攻击者将获知被攻陷时期对应的令牌化密钥以及所有者的全部秘密。随后 A可能完全控制该所有者,但仍不应获知在攻陷之前已被标记化的值之间的对应关系。主机被认为(大部分情况下)保持诚实。
IND- COTH:被攻陷的所有者和临时被攻陷主机的不可区分性: 作为对前两种概念的细化, A可根据其选择在多个时期内临时攻陷主机,并且还可能永久攻陷所有者。攻击者会获知其攻陷主机时对应特定时期的更新调整,并获知其攻陷所有者时该时期的令牌化密钥。在暴露所有者的秘密之前已标记化的数据值应保持不可链接性。
单向性: 该概念描述了所有者在第一个周期即遭到攻击者攻陷,导致攻击者获取所有秘密信息的场景。然而,令牌化操作应具备单向性,即观察到一个令牌化值不会使攻击者在猜测 X中相应输入时获得优势。
3.2 预言机的定义
在安全定义中与挑战者的交互过程中,攻击者可以访问用于数据令牌化、进入下一个时期、破坏主机以及破坏所有者的预言机。在以下描述中,这些预言机可以访问实验期间挑战者的状态。挑战者使用全局状态(k0,Δ0, e)初始化一个 UTO方案,其中 k0 ← UTO.setup(λ),Δ0 ← ⊥,和 e ← 0。两个辅助变量 eh∗ 和 eo∗分别记录主机和所有者首次被破坏的时期。初始时 eh∗ ← ⊥和 eo∗ ← ⊥。
Otoken(x): 在输入值 x ∈ X 时,向攻击者返回 ye ← UTO.token(ke, x),其中 ke是当前时期 的令牌化密钥。
Onext: 当被触发时,计算下一个时期的令牌化密钥和更新微调为 (ke+1,Δe+1) ← UTO.next(ke),并将全局状态更新为 (ke+1,Δe+1, e+ 1)。
Ocorrupt-h: 当被调用时,向攻击者返回 Δe。如果首次调用(eh∗= ⊥),则设置 eh∗ ← e。此预言机模拟了主机的腐败,可被多次调用。
Ocorrupt-o: 当首次调用时(eo∗= ⊥),设置 eo∗ ← e 并向攻击者返回 ke。此预言机模拟了所有者的腐败,只能被调用一次。在此调用之后,攻击者将不再能访问Otoken和 Onext。
注意,尽管在周期 e对主机的腐败会暴露更新微调 Δe,但攻击者不应能够从该值计算出未来纪元的更新调整。为了获得这些值, A应在相应的时期再次调用 Ocorrupt-h;这用于IND‐HOCH安全性和IND‐COTH安全性,具有不同的附加条件。当所有者被腐败时,会出现另一种情况腐败后,由于这会暴露挑战者的所有相关秘密。从那时起,攻击者可以自行生成后续所有周期的令牌化密钥和更新调整。这也解释了为何预言机 Ocorrupt-o只能被调用一次。出于相同原因,攻击者在所有者被腐败后查询Otoken和 Onext预言机毫无意义。此外,请注意,根据假设,所有者在执行下一个算法时会原子性地删除 Δe,因此 Ocorrupt-o不会返回 Δe。
我们现在准备在本节余下部分正式定义UTO的安全概念。
3.3 IND‐HOCH:诚实所有者与被攻陷主机
IND‐HOCH 概念确保了当攻击者攻陷主机并获取当前及所有未来纪元的更新调整时,令牌化数据不会泄露相应原始数据的信息。只要攻击者不知道该时间线中的至少一个更新微调,不同周期间的令牌化值也是不可关联的。
定义 3 (IND‐HOCH)。 一个可更新的令牌化方案 UTO 被称为是 IND‐HOCH 安全的,如果对于所有多项式时间对手 A 都满足 |Pr[Exp IND-HOCH A UTO ,(λ)= 1] −1/2| ≤ ε(λ),其中 ε 为某个可忽略函数。
实验 ExpIND-HOCH A UTO,(λ):k0 ←rUTO.setup(λ)e ← 0; eh∗ ← ⊥// 这些变量由预言机更新 (x˜0, x˜1, 状态) ←r AOtoken,Onext, Ocorrupt-h(λ)e˜ ← e; d ←r{0, 1}y˜d, e˜ ← UTO.token(ke˜, x˜d)d′ ←r AOtoken,Onext, Ocorrupt-h(y˜d, e˜, 状态) 如果 d′= d 成立且满足以下至少一个条件,则返回 1:a) (eh∗ ≤ e˜+ 1) ∧ A 在周期 eh∗ −1 或之后 未查询过 Otoken(x˜0) 或 Otoken(x˜1);b) (eh∗> e˜+ 1 ∨ eh∗= ⊥) ∧ A 在周期 e˜ 或之后未查询过 Otoken(x˜0) 或 Otoken(x˜1)
该实验分为两个阶段。在第一阶段, A可以查询Otoken、Onext和 Ocorrupt-h;此阶段在周期 e˜结束,此时 A输出两个挑战输入x˜0和 x˜1。挑战者随机选择其中一个 (记为 x˜d),对其进行标记化处理,得到挑战 y˜d, e˜,并通过调用 A传入y˜d, e˜来启动第二阶段。随后,攻击者可以继续查询Otoken、 Onext和 Ocorrupt-h ,最终输出其猜测 d′,以判断哪个数据值被标记化。需要注意的是,对于我们的安全概念而言,只有第一次主机被攻破是重要的,因为我们假设一旦被破坏后,主机始终会被破坏。因此,为简便起见,我们假设A在每个周期 eh∗之后调用 Ocorrupt-h一次。
如果攻击者在满足两个条件的情况下正确猜测了 d,则该攻击者赢得实验,这两个条件根据攻击者是在挑战周期之前还是之后(大致)腐蚀了主机而有所不同:
(a) 如果 eh∗ ≤ e˜+ 1,则 A在挑战周期之前、期间或紧随其后立即攻破主机, 并可能获知第 eh∗周期及之后的更新调整。在此情况下,它不得在第 eh∗ −1周期或更晚周期内对令牌化预言机查询挑战输入。特别地,如果该限制未被满足,则当 eh∗ ≤ e˜时,攻击者可在从 eh∗ −1到 e˜的任意周期内对任意选择的数据(包括 x˜0和 x˜1)进行令牌化,随后将令牌化值更新至第 e˜周期,并将其与挑战y˜d, e˜进行比较。这将使 A轻易赢得安全实验。对于情况 eh∗= e˜+ 1,需注意根据实验设定,更新微调Δe在第 e+1周期开始前仍可被访问。因此, A获知了从 e˜到 e˜+ 1的更新微调,并可将y˜d, e˜更新至第 e˜+ 1周期。因此,自此之后,它也不得使用挑战输入向 Otoken发起查询。
(b) 如果 eh∗> e˜+ 1 ∨ eh∗= ⊥,即主机是在第 e˜+ 1周期之后才首次被攻破,或从未被攻破,则唯一的限制是 A不得在第 e˜周期内对挑战输入查询令牌化预言机。这是一个明显的限制,用于排除因令牌化是确定性的而带来的轻易获胜情况。此条件比情况(a)宽松,但已足够,因为攻击者既无法将较早周期的令牌化值更新至 e˜,也无法从 e˜更新至更晚周期。原因是 A仅能获取从第e˜+ 2周期开始的更新调整。
3.4 IND‐COHH:被攻陷的所有者和诚实的主机
IND‐COHH 概念模拟了在某一周期中所有者被攻陷的情况,即攻击者获得了令牌化密钥,并可自行生成所有后续周期的令牌化密钥和更新调整。鉴于令牌化密钥可用于推导主机的更新微调,这隐式地也模拟了一定形式的主机被攻破。该属性确保在腐败发生之前已被标记化的数据仍然保密,即攻击者无法获得关于原始数据的任何信息,也无法将这些数据与在其他周期中被标记化的数据进行关联。
定义4(IND‐COHH)。 如果对于所有多项式时间对手 A,存在一个可忽略函数 ε,使得|Pr[Exp IND-COHH A UTO ,(λ)= 1] −1/2| ≤ ε(λ)成立,则称可更新的令牌化方案UTO是 IND‐COHH安全的。
3.5 IND‐COTH:被攻陷的所有者和临时被攻陷的主机
扩展上述两个安全属性,IND‐COTH 概念考虑了所有者的腐败以及主机的重复但短暂性破坏。它针对的是主机接收到的部分更新调整泄露给 A,且所有者的密钥在后续阶段也被暴露的情况。
定义5 (IND‐COTH)。 一个可更新的令牌化方案 UTO被称为具有IND‐COTH 安全性,如果对于所有多项式时间对手 A,均有 |Pr[Exp IND-COTH A UTO ,(λ)= 1] −1/2| ≤ ε(λ)对某个可忽略函数 ε 成立。
实验 ExpIND-COTH A UTO,(λ):k0 ←rUTO.setup(λ)e ← 0; eo∗ ← ⊥// 这些变量由预言机更新elast ← ⊥; efirst ← ⊥(x˜0, x˜1, 状态) ←r AOtoken,Onext, Ocorrupt-h(λ)e˜ ← e; d ←r{0, 1}y˜d, e˜ ← UTO.token(ke˜, x˜d)d′ ←r AOtoken,Onext,Ocorrupt-h, Ocorrupt-o(y˜d, e˜, 状态) elast ←在 e˜ 之前最后一次查询 A 的周期 Otoken(x˜0) 或 Otoken(x˜1)efirst ←在 e˜ 之后首次查询 A 的周期 Otoken(x˜0) 或 Otoken(x˜1) 如果 d′= d 成立且满足以下所有条件,则返回 1 a) eo∗> e˜ ∨ eo∗= ⊥ b) A 在周期 e˜ 中从未查询过 Otoken(x˜0) 或 Otoken(x˜1) c) 要么 eh∗= ⊥,要么满足以下所有条件 i) (elast= ⊥) ∨ ∃ e′,其中 elast< e′ ≤ e˜,且 A 未查询过 Ocorrupt-h ii) (efirst= ⊥) ∨ ∃ e′′,其中 e˜< e′′ ≤ efirst,且 A 未查询过 Ocorrupt-h iii) (eo∗= ⊥) ∨ ∃ e′′′,其中 e˜< e′′′ ≤ e∗ o,且 A 未查询过 Ocorrupt-h
请注意,所有者只能在挑战周期之后被攻破,这与IND‐COHH实验中的情况相同。如前所述, A随后将获得所有密钥材料,并且为简便起见,我们从此移除对 Otoken或 Onext预言机的访问权限。主机被攻破的短暂性质允许在挑战之前授予 A 对 Ocorrupt-h的额外访问权限,而如果考虑永久性的主机被攻破,则在IND‐COHH实验中这是不可能的。before
与IND‐HOCH定义相比,此处 A可能会攻破主机并在腐败后要求对挑战输入进行标记化。在挑战周期之前、期间和之后都可能发生多次主机被攻破的情况。但为了赢得该实验, A必须至少遗漏一个周期并错过一次更新微调。否则,它可以通过将挑战输出或在另一周期中被令牌化的挑战输入更新到相同阶段而轻易猜出挑战。在实验中,这一点通过(c)条件下的规定来体现。具体而言:
(c-i)如果 A在触发挑战之前使用其中一个挑战输入 x˜0或 x˜1在调用 Otoken, 则从该点到挑战周期期间,必须至少在一个周期内未腐蚀主机且未遗漏更新微调。因此,在挑战周期之前的最新周期中, A查询 Otoken(x˜0)或 Otoken(x˜1)的周期(记为 elast)必须小于 e˜之前主机未被腐蚀的最后一个周期。
(c-ii)同样地,如果在挑战周期之后使用挑战输入 x˜0 或 x˜1之后进行 A查询 Otoken,则攻击者必须至少在一个紧随 e˜ 之后的周期内未腐蚀主机且遗漏更新微调。否则,它可能将挑战 y˜d, e˜ 更新至其调用 Otoken 的周期。记 efirst 为挑战周期之后首个满足 A 查询 Otoken(x˜0)或 Otoken(x˜1)的周期,则 efirst 必须大于或等于挑战周期之后主机首次未被腐蚀的周期。
(c-iii)如果 A调用了 Ocorrupt-o,则其在挑战周期之后、所有者腐败的周期之前或期间,不得获取至少一个更新调整 eo∗。否则, A可使用周期 eo∗的令牌化密钥对 x˜0和 x˜1进行令牌化,利用泄露的更新调整将挑战值y˜d, e˜演进到该周期,并比较结果。
PRF风格与IND-CPA风格的定义。 我们在模型中采用了基于不可区分性的定义。鉴于令牌化的目标是输出看似随机的token,乍看之下,采用类似伪随机性的安全概念似乎更为自然。然而,PRF风格的定义难以有效应对自适应攻击:在我们的安全实验中,允许攻击者自适应地攻破数据主机和数据所有者,并由此获取更新调整或秘密令牌化密钥。若要在PRF与随机函数的实验中对这种情况进行建模,将要求该随机函数包含一个密钥,并能与可由攻击者执行的更新函数兼容。为随机函数增加这些“特性”将导致变为PRF与PRF定义。本文所采用的受IND‐CPA启发的方法能够更自然地涵盖自适应攻击和一致性特性。
安全概念之间的关系。 我们提出的IND‐COTH安全性是上述三种不可区分性安全概念中最強的,因为它同时蕴含了IND‐COHH和IND‐HOCH安全性,但反过来不成立。也就是说,IND‐COHH和IND‐HOCH安全性并不能推出IND‐COTH安全性。一个可以区分的例子就是我们的 UTOSE方案。正如我们在第4.1节中将看到的, UTOSE既满足 IND‐COHH安全性,也满足IND‐HOCH安全性,但不满足IND‐COTH安全性。定理的证明1可在本文的完整版本中找到。
定理1 (IND‐COTH ⇒IND-COHH+ IND‐HOCH)。 如果一个可更新的令牌化方案 UTO是 IND‐COTH安全,那么它也是 IND‐COHH安全 和 IND‐HOCH安全。
3.6 单向性
单向性概念描述了这样一个事实:即使攻击者获得了令牌化密钥,令牌化方案也不应被逆向破解。换句话说,攻击者即使看到了令牌化值并获得了令牌化密钥,也无法恢复原始数据。由于密钥允许人们重新执行令牌化操作,并测试输出是否与某个令牌化值匹配,因此所产生的安全级别取决于输入空间的大小以及攻击者对输入的不确定性。因此,在实践中,安全级别取决于攻击者关于 X 的先验知识。
我们的定义类似于标准的单向性概念,不同之处在于我们要求攻击者输出令牌化挑战值的确切原像,因为我们的令牌化算法是一个单射函数。
定义6 (单向性)。 对于所有多项式时间对手 A,如果满足以下条件,则称可更新的令牌化方案UTO具有单向性:
Pr[ x= x˜: x ← A(λ, k0, y˜), y˜ ← UTO.token(k0, x˜), x˜ ←r X, k0 ←r UTO.setup(λ)] ≤ 1/|X|.
4 UTO 构造
在本节中,我们提出了两种高效的可更新的令牌化方案构造方法。第一种解决方案(UTOSE)基于对称加密,实现了单向性、IND‐HOCH 和 IND‐COHH 安全性;第二种构造方法(UTODL)依赖于离散对数假设,并且额外满足 IND‐COTH 安全性。这两种构造方法共享相同的核心思想:首先对输入值进行哈希,然后使用每个周期都会变化的密钥对哈希值进行加密。
4.1 一种基于对称加密的UTO方案
我们构建了第一个基于对称确定性加密方案 SE =(SE.KeyGen,SE.Enc,SE.Dec) 和带密钥哈希函数 H : K × X → M 的可更新令牌化方案 UTOSE,其消息空间为 M。为了对输入 x ∈ X 进行令牌化,我们的方案直接加密 x 的哈希值。在每个周期 e 中,使用一个独立的随机对称密钥 se 进行加密,而使用一个固定的随机哈希密钥 hk 对 x 进行哈希。这两个密钥均由数据所有者选择。为了更新 token,主机接收前一个周期和当前周期的加密密钥,并重新加密所有哈希值以将其更新到当前周期。更准确地说,我们的 UTOSE 方案定义如下:
UTO.setup(λ) :生成密钥 s0 ←r SE.KeyGen(λ)、 hk ←rH.KeyGen(λ),并输出 k0 ←(s0, hk)。
UTO.next(ke) :将 ke 解析为 (se, hk)。选择一个新的密钥 se+1 ←r SE.KeyGen(λ),并设置 ke+1 ←(se+1, hk) 和 Δe+1 ←(se, se+1)。输出 (ke+1,Δe+1)。
UTO.token(ke, x) :将 ke 解析为 (se, hk),并输出 ye ← SE.Enc(se, H(hk, x))。
UTO.upd(Δe+1, ye) :将 Δe+1 解析为 (se, se+1),并输出更新后的值 ye+1 ← SE.Enc(se+1,SE.Dec(se, ye))。
该构造实现了IND‐HOCH、IND‐COHH和单向性,但未达到更强的 IND‐COTH概念。问题在于,一个临时被攻陷的主机可以在更新过程中恢复静态哈希,从而能够关联来自不同周期的令牌化值,即使不知道它们之间的所有更新调整。
定理2。 上述定义的UTOSE在以下关于底层加密方案SE和哈希函数H的假设基础上,满足IND-HOCH、IND-COHH和单向性属性:
| UTOSE | SE | H |
|---|---|---|
| IND‐COHH IND‐HOCH I | IND‐CPA ND‐CPA 伪 | 弱抗碰撞性 随机性 |
| 单向性 – | 单向性 |
定理2的证明可在本文的完整版本中找到。
4.2 基于离散对数的UTO方案
我们的第二个构造UTODL通过采用代理重加密方式执行更新,克服了第一个方案的局限性,该方法使用了Blaze等人[2]首次提出的重加密思想。也就是说, 哈希值会被提升为一个指数,该指数由所有者在每个新周期随机选择。为了更新token,主机本身不会被提供密钥,而仅获得当前密钥的商以及之前的指数。虽然这允许主机持续更新其数据,但不再暴露内部哈希值, 并保证跨周期的不可链接性,从而满足我们最强的IND‐COTH安全性要求。
更准确地说,该方案使用了一个循环群 (G, g, p) 和一个哈希函数 H : X → G。我们假设哈希函数和群的描述是公开可用的。我们提出的 UTODL 方案的算法定义如下:
UTO.setup(λ): 选择 k0 ←r Zp 并输出 k0。
UTO.next(ke): 选择 ke+1 ←r Zp,设置 Δe+1 ← ke+1/ke,并输出 (ke+1,Δe+1)。
UTO.token(ke, x): 计算 ye ← H(x)ke,并输出 ye。
UTO.upd(Δe+1, ye): 计算 ye+1 ← yΔe+1 e ,并输出 ye+1。
我们的UTODL方案是单向性的,并满足我们最强的 IND‐COTH 安全性概念,由此可推出 IND‐HOCH 和 IND‐COHH 安全性(见定理1)。定理3的证明可在本文的完整版本中找到。
定理 3。 上述定义的 UTODL 方案在随机预言模型中基于 DDH 假设是 IND-COTH 安全的,且若 H 具有单向性,则该方案也是单向性的。

被折叠的 条评论
为什么被折叠?



