KDM CCA Secure FHE

参考文献:

  1. [BFM88] Blum M, Feldman P, Micali S. Non-interactive zero-knowledge and its applications[M]//Providing Sound Foundations for Cryptography: On the Work of Shafi Goldwasser and Silvio Micali. 2019: 329-349.
  2. [FS90] Feige U, Shamir A. Witness hiding and witness indistinguishability[C]//Proc. 22nd Annual ACM Symposium on the Theory of Computing, Baltimore. 1990: 416-426.
  3. [NY90] Naor M, Yung M. Public-key cryptosystems provably secure against chosen ciphertext attacks[C]//Proceedings of the twenty-second annual ACM symposium on Theory of computing. 1990: 427-437.
  4. [BR95] Bellare M, Rogaway P. Optimal asymmetric encryption[C]//Advances in Cryptology—EUROCRYPT’94: Workshop on the Theory and Application of Cryptographic Techniques Perugia, Italy, May 9–12, 1994 Proceedings 13. Springer Berlin Heidelberg, 1995: 92-111.
  5. [BRS02] Black J, Rogaway P, Shrimpton T. Encryption-scheme security in the presence of key-dependent messages[C]//Selected Areas in Cryptography: 9th Annual International Workshop, SAC 2002 St. John’s, Newfoundland, Canada, August 15–16, 2002 Revised Papers 9. Springer Berlin Heidelberg, 2003: 62-75.
  6. [BP04] Bellare M, Palacio A. Towards plaintext-aware public-key encryption without random oracles[C]//International Conference on the Theory and Application of Cryptology and Information Security. Berlin, Heidelberg: Springer Berlin Heidelberg, 2004: 48-62.
  7. [LMSV12] Loftus J, May A, Smart N P, et al. On CCA-secure somewhat homomorphic encryption[C]//Selected Areas in Cryptography: 18th International Workshop, SAC 2011, Toronto, ON, Canada, August 11-12, 2011, Revised Selected Papers 18. Springer Berlin Heidelberg, 2012: 55-72.

文章目录

  • Naor-Yung Paradigm
  • Key-Dependent Messages
  • CCA-secure SWHE
  • 安全性的关系

Naor-Yung Paradigm

最早在 [BFM88] 中,文章提出了 NIZKP 的概念,并证明任意的 ZKP 协议中的交互,可以被取代为一个共享的短随机带。本文基于二次剩余假设,构造了一个三着色语言的非交互零知识证明协议。[BFM88] 最后简略地提出,可以用 NIZKPoK 证明 “我知道此密文的解密”,从而使得解密神谕无用,把 IND-CCA 归约到 IND-CPA 上,第一次给出了 IND-CCA 安全的密码协议。

[NY90] 则是第一次给出了如何将 IND-CPA PKE 转化为 IND-CCA PKE 的具体构造方案,并给出了安全性证明。并不是证明 “我知道密文的解密”,而是类似于 [FS90] 的 WH/WI,将消息独立地加密两次,然后证明两个密文的一致性(不再需要 PoK)。由于解密时只需要两个密文其中之一,因此只要持有其中之一的私钥就可以解密成功(从而模拟解密神谕)。所以可以将针对 IND-CPA PKE 的 CPA 攻击,模拟成针对 IND-CCA PKE 的 CCA 攻击,这就完成了安全归约。

[NY90] 使用了 [BFM88] 的 CRS 模型下的 NIZKP,简记为 ( P , V , U ) (P,V,U) (P,V,U),其中 U U U 是 CRS 的均匀分布。令 R ← U R \leftarrow U RU 是公共随机串, p p p 是个 proof,那么 ( R , p ) (R,p) (R,p) 是 NIZK 的副本,而 ZK 模拟器需要给出不可区分的分布。

但是 [NY90] 有一些额外要求:

  1. 简单并行 NIZKP,可以降低 soundness erorr,并且保持 ZK 性质(交互式 ZKP 不一定保持 ZK,仅仅保持 WI)

  2. Strong soundness:即使 CRS 随机带 R R R 已知,然后才选择实例 y ∉ L y \not\in L yL,依然以压倒性概率使得 P ∗ P^* P 给出的 proof 不被接受,
    P r R ← U n [ V ( R , y , p ; r V ) = R e j e c t : ∀ y ∉ L , ∀ p ← P ∗ ( R , y ; r P ) ] = 1 − n e g l ( n ) \underset{R \leftarrow U_n}{Pr}\left[ V(R,y,p;r_V)=Reject: \forall y \not\in L, \forall p\leftarrow P^*(R,y;r_P) \right] = 1-negl(n) RUnPr[V(R,y,p;rV)=Reject:yL,pP(R,y;rP)]=1negl(n)

    作为对比,soundness 仅仅要求
    ∀ y ∉ L , P r R ← U n [ V ( R , y , p ; r V ) = R e j e c t : ∀ p ← P ∗ ( R , y ; r P ) ] = 1 − n e g l ( n ) \forall y \not\in L, \underset{R \leftarrow U_n}{Pr}\left[ V(R,y,p;r_V)=Reject: \forall p\leftarrow P^*(R,y;r_P) \right] = 1-negl(n) yL,RUnPr[V(R,y,p;rV)=Reject:pP(R,y;rP)]=1negl(n)

    可以使用量词转换技术(quantifier swapping technique ),并行 2 n 2n 2n 个副本,使得 soundness error 降低到至多 2 − 2 n 2^{-2n} 22n,由于 ∣ y ∣ = n |y|=n y=n,因此 strong soundness error 就至多为 2 − n 2^{-n} 2n

  3. Valid distributions:在 strong soundness 中要求 CRS 的分布服从均匀分布,但是 Sim 模拟的分布 S R ( x ) , x ∈ L S_R(x),x \in L SR(x),xL 不一定是均匀的。我们说分布簇 { Q R ( x ) : x ∈ L } \{Q_R(x):x \in L\} {QR(x):xL} 是有效的,如果不存在 PPT 算法:它先选择 x ∈ L x \in L xL,然后输入 R ← Q R ( x ) R \leftarrow Q_R(x) RQR(x),以显著优势找到一对 invalid word ( y , p ) (y,p) (y,p),使得 y ∉ L , p ∈ A c c e p t ( R , y ) y \not\in L,p \in Accept(R,y) yL,pAccept(R,y)。[NY90] 要求模拟器输出的分布簇 { S R ( x ) : x ∈ L } \{S_R(x):x \in L\} {SR(x):xL} 是有效的,并证明了任意的 NIZKP 都可以转化为 S R S_R SR 有效的另一个 NIZKP。

  4. Recognizability:要求存在一个有效算法,可以识别出 invalid word

现在,使用上述的 NIZKP,可以将 IND-CPA PKE Π = ( G e n , E n c , D e c ) \Pi=(Gen,Enc,Dec) Π=(Gen,Enc,Dec) 转化为 IND-CCA PKE Π ′ = ( G e n ′ , E n c ′ , D e c ′ ) \Pi'=(Gen',Enc',Dec') Π=(Gen,Enc,Dec)。我们定义 NP 语言 consistent double encryptions
L N Y Π : = { ( p k 1 , p k 2 , c 1 , c 2 ) : ∃ m , r 1 , r 2 , s . t . c 1 = E ( p k 1 , m ; r 1 ) , c 2 = E ( p k 2 , m ; r 2 ) } L_{NY}^\Pi := \{(pk_1,pk_2,c_1,c_2): \exists m,r_1,r_2,\,\, s.t.\,\, c_1=E(pk_1,m;r_1), c_2=E(pk_2,m;r_2)\} LNYΠ:={(pk1,pk2,c1,c2):m,r1,r2,s.t.c1=E(pk1,m;r1),c2=E(pk2,m;r2)}

( P , V , U ) (P,V,U) (P,V,U) 是关于语言 L N Y Π L_{NY}^\Pi LNYΠ 的 NIZKP。那么 Naor-Yung Paradigm 就是:

  1. ( s k , p k , R ) ← G e n ′ ( n ) (sk,pk,R) \leftarrow Gen'(n) (sk,pk,R)Gen(n):独立运行两次 G e n Gen Gen 获得独立随机公私钥对 ( s k 1 , p k 1 ) , ( s k 2 , p k 2 ) (sk_1,pk_1),(sk_2,pk_2) (sk1,pk1),(sk2,pk2),随机采样 R ← U R \leftarrow U RU
  2. ( c 1 , c 2 , p ) ← E n c ′ ( p k , m ) (c_1,c_2,p) \leftarrow Enc'(pk,m) (c1,c2,p)Enc(pk,m):采样随机带 r 1 , r 2 r_1,r_2 r1,r2,分别加密 c i = E ( p k i , m ; r i ) , i = 1 , 2 c_i=E(pk_i,m;r_i),i=1,2 ci=E(pki,m;ri),i=1,2,并给出一致性证明 p = P ( R , ( p k 1 , p k 2 , c 1 , c 2 ) , ( m , r 1 , r 2 ) ) p=P(R,(pk_1,pk_2,c_1,c_2),(m,r_1,r_2)) p=P(R,(pk1,pk2,c1,c2),(m,r1,r2))
  3. m ← D e c ( s k , c ) m \leftarrow Dec(sk,c) mDec(sk,c):验证一致性 t ← V ( R , ( p k 1 , p k 2 , c 1 , c 2 ) , p ) t \leftarrow V(R,(pk_1,pk_2,c_1,c_2),p) tV(R,(pk1,pk2,c1,c2),p),并用 s k i , i = 1 , 2 sk_i,i=1,2 ski,i=1,2(其中之一)解密对应的密文 c i c_i ci 得到消息 m m m

在 [NY90] 中证明了上述方案是 IND-CCA 的(当时人们还没区分 CCA1/CCA2,但它应该是 IND-CCA2 的),否则便打破了 CPA 或者 ZK。大体思路是:给定 CPA 目标 ( p k 1 , c t 1 = E ( p k 1 , b 1 , r 1 ) ) (pk_1, ct_1=E(pk_1, b_1, r_1)) (pk1,ct1=E(pk1,b1,r1)),随机生成 ( s k 2 , p k 2 ) (sk_2, pk_2) (sk2,pk2),计算 c t 2 = E ( p k 2 , b 2 = 0 , r 2 ) ct_2=E(pk_2, b_2=0, r_2) ct2=E(pk2,b2=0,r2),运行 NIZK Sim 模拟出 ( c t 1 , c t 2 ) (ct_1,ct_2) (ct1,ct2) 的一致性证明 ( R , p ) (R,p) (R,p),这就制造出了一个 CCA 目标 ( ( p k 1 , p k 2 ) , R , c t ∗ = ( c t 1 , c t 2 , p ) ) ((pk_1,pk_2), R, ct^* = (ct_1,ct_2,p)) ((pk1,pk2),R,ct=(ct1,ct2,p));每当 CCA 敌手询问解密神谕,只要它不是 invalid word(根据 Valid distributions 以及 Recognizability,压倒性优势不会出现),我们就可以用 s k 2 sk_2 sk2 正确解密;当 CCA 敌手以显著优势猜测 c t ∗ ct^* ct 时,根据 b 1 = 0 = b 2 b_1=0=b_2 b1=0=b2 还是 b 1 = 1 ≠ b 2 b_1=1\neq b_2 b1=1=b2 导致不同的概率分布,从而以显著优势区分出 CPA 目标。另外 CRS 模型下的 NIZK of NPC,替换为 ROM 模型下语言 L N Y Π L_{NY}^\Pi LNYΠ 专用的 FS Heuristic 似乎也没问题。

Key-Dependent Messages

[BRS02] 提出了 KDM 安全的概念,它严格地比 IND-CPA更强(KDM 则必然 IND-CPA,反之不然)。并且,本文证明了(对称/非对称)KDM 安全在 ROM 下轻易可达

想要构造安全的 FHE 方案总是绕不过 KDM 安全,我们可以利用 KDM 安全的可自举 SWHE,通过重加密来获得 FHE。不过 standard model 下可以构造出 KDM 安全的 PKE 么?毕竟 Hash 函数的乘法深度太大了。

符号表 S S S,令 S ∗ S^* S 代表有限长字符串, S ∞ S^\infty S 代表无限长字符串。令 K = ( K 1 , K 2 , ⋯ ) K=(K_1,K_2,\cdots) K=(K1,K2,) 是一串秘钥,函数 g g g 作用在 K K K 上计算函数值。敌手 A A A 试图与函数 g g g 共谋,使得 g g g 的输出值对应的密文泄露秘钥的部分信息。令 H H H 是随机神谕,ROM 下对称加密的 KDM 安全性

在这里插入图片描述

注意默认的基本要求是 ∣ g H ( K ) ∣ = ∣ g H ′ ( K ′ ) ∣ , ∀ H ≠ H ′ , ∀ K ≠ K ′ |g^H(K)| = |g^{H'}(K')|, \forall H \neq H',\forall K \neq K' gH(K)=gH(K),H=H,K=K,保证密文长度不会泄露秘钥信息。如果简单地把 H H H 去掉,那么就是 standard model 下的安全性定义了。

[BRS02] 给出了 ROM 下 KDM 安全的对称加密方案。令 Π = ( K G , E , D ) \Pi=(KG,E,D) Π=(KG,E,D) 是标准模型下 IND-CPA 安全的对称加密,那么构造 Π ′ = ( K G ′ , E ′ , D ′ ) \Pi'=(KG',E',D') Π=(KG,E,D)

  1. 秘钥生成算法 K G ′ ( λ ) KG'(\lambda) KG(λ):简单调用算法 K G ( λ ) KG(\lambda) KG(λ) 获得对称秘钥 k ∈ { 0 , 1 } λ k \in \{0,1\}^\lambda k{0,1}λ
  2. 加密算法 E ′ ( k , m ) E'(k,m) E(k,m):随机采样 r ∈ { 0 , 1 } λ r \in \{0,1\}^\lambda r{0,1}λ,计算 k ′ = H ( k ∥ r ) k'=H(k\|r) k=H(kr),输出密文 r ∥ E ( k ′ , m ) r\|E(k',m) rE(k,m)
  3. 解密算法 D ′ ( k , c ) D'(k,c) D(k,c):计算 k ′ = H ( k ∥ r ) k'=H(k\|r) k=H(kr),输出消息 D ( k ′ , c ) D(k',c) D(k,c)

特别地,可以简单设置 E ( k , m ; r ) = k ⊕ m E(k,m;r) = k \oplus m E(k,m;r)=km 是个 one-time pad。对于这个 Π \Pi Π 转化得到的 Π ′ \Pi' Π,假设 KDM 敌手 A A A 询问了 q q q 次(加密神谕、直接 RO、间接 RO),那么优势仅为 A d v Π ′ K D M ( A ) ≤ q 2 / 2 λ − 2 Adv_{\Pi'}^{KDM}(A) \le q^2/2^{\lambda-2} AdvΠKDM(A)q2/2λ2

类似的,可以给出公钥方案的 standard/RO model 下的 KDM 安全性

在这里插入图片描述

我们构造 ROM 下 KDM 安全的公钥方案。令 ( f , f − 1 ) (f,f^{-1}) (f,f1) 是 trapdoor PRP,

  1. 加密算法 E ( f , m ) E(f,m) E(f,m):随机采样 r r r,输出密文 f ( r ) ∥ H ( r ) ⊕ m f(r)\|H(r) \oplus m f(r)H(r)m
  2. 解密算法 D ( f − 1 , c ) D(f^{-1},c) D(f1,c):求逆 r = f − 1 ( f ( r ) ) r=f^{-1}(f(r)) r=f1(f(r)),解密出消息 m m m

如果 { f } \{f\} {f} 是安全的 trapdoor PRP,那么上述方案是 IND-KDM 安全的。或者给定某 IND-CPA 安全的 PKE,也可以类似的转化为 IND-KDM 安全。

CCA-secure SWHE

[BR95] 提出了 Plaintext Awareness 的概念:生成密文的唯一方式就是从明文加密获得。根据定义的一些细微区别,[BP04] 把 PA 分为了 PA-0, PA-1, PA-2,并且有 PA-X + CPA = CCA-X, X=1,2,安全性的关系如图:

在这里插入图片描述

因为 PA 是一个强大的概念,为了证明它也就需要强大的假设:knowledge assumption。例如:某算法可以输出一个十分靠近格点的非格点向量,那么它必须 “知道”( ⟺ \iff 可以写出)对应的最近格点。为了证明某 CPA 安全的方案也是 CCA1 安全的,我们需要 PA-1 的概念,它定义如下:

在这里插入图片描述

很明显,由于同态方案的延展性(malleable),IND-CCA2 是不可达的。但是一些单同态方案(ElGamal 变体)确实达到了 IND-CCA1 安全,而 [LMSV12] 第一次给出了 IND-CCA1 安全的 SWHE。不过本文构造的 SWHE 是基于 ideal lattice 的 Gentry 方案的变体,结构较为复杂,看不太懂。后续是否有人给出基于 (R/M)LWE 的 CCA1 安全的 SWHE 呢?

他们进一步证明了这个 SWHE 方案不是 CVA 安全的(ciphertext verifification, 敌手两个阶段都可以访问一个判断密文是否有效的神谕)。这说明 IND-CCA1 或者 PA-1 不能导致 CVA,但是解密神谕直接导出密文有效性神谕,于是 CVA 应当是介于 CCA1 和 CCA2 之间的安全强度。所以,SWHE 是否可以达到 CVA 安全呢?

在这里插入图片描述

[LMSV12] 最后考虑了 CCA2 安全对于 FHE 场景的必要性,提出了 CCA-embeddable homomorphic encryption,也就是使用 Naor-Yung Paradigm 把一个 IND-CPA 安全的 FHE,转化为 IND-CCA2 安全的 PKE(整体上不再是 FHE,但是它包含的两个密文 ( c 1 , c 2 ) (c_1,c_2) (c1,c2) 还可以做同态计算)。

安全性的关系

总结下一些安全性定义之间的强度关系:

  1. C P A ≤ K D M CPA \le KDM CPAKDM
  2. C C A 1 ≤ C P A + P A 1 ≰ C C A 2 CCA1 \le CPA+PA1 \not\le CCA2 CCA1CPA+PA1CCA2
  3. C P A ≤ C V A ≤ C C A 2 C V A ≰ C C A 1 CPA \le CVA \le CCA2\\ CVA \not\le CCA1\\ CPACVACCA2CVACCA1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/109060.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云CDN缓存配置及优化-oss绑定CDN缓存自动刷新功能

参考阿里云官网文档:https://help.aliyun.com/practice_detail/603170 1.缓存时间配置 在缓存管理中,可以方便地指定目录和文件后缀名在CDN节点上的缓存时间,缓存时长配置的长短,取决于源站对该文件的变更频率。我们需要分析下业务…

华为云云耀云服务器L实例评测|基于云耀云服务器在Docker上部署nginx服务

文章目录 1、服务介绍云耀云服务器Docker介绍Docker-Compse介绍 2、在云耀云服务器安装Docker3、通过Docker run命令运行nginx服务4、在云耀云服务器安装docker-compose5、通过docker-compose方式启动nginx服务 1、服务介绍 云耀云服务器 云耀云服务器(Hyper Elas…

医疗知识图谱 neo4j

开源项目: https://github.com/liuhuanyong/QASystemOnMedicalKG 一.效果 二.需要安装: pip install pyahocorasick pip install py2neo 三.需要修改: 需要改的点: 1.改连接的方式 2.改读文件的方式 MedicalGraph 运行&am…

Spring Boot的配置文件

Spring Boot中的配置文件有两种:properties格式和yml格式 一、propertise格式 propertise格式是Springboot默认的配置文件的格式,它才有键值对keyvalue的方式存储配置信息,有系统key值和自定义key值两类。 系统key值就是Spring boot约定的…

Qt Quick Layouts Overview

Qt快速布局概述 #【中秋征文】程序人生,中秋共享# Qt快速布局是用于在用户界面中排列项目的项目。由于Qt快速布局还可以调整其项目的大小,因此它们非常适合可调整大小的用户界面。 开始 可以使用文件中的以下导入语句将 QML 类型导入到应用程序中。.qml…

python: excel假期时间提取统计

# encoding: utf-8 # 版权所有 2023 涂聚文有限公司 # 许可信息查看: # 描述: # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 311 # Datetime : 2023/9/3 7:04 # User : geovindu # Product : PyCharm # Proje…

Vulkan入门——编译Shaderc

编译 Vulkan-Samples时,遇到了如下shaderc编译报错。 ninja: error: /Users/xiaxl/Library/Android/sdk/ndk/21.1.6352462/sources/third_party/shaderc/libs/c_static/armeabi-v7a/libshaderc.a, needed by ../../../../build/intermediates/cmake/debug/obj/arme…

【CVPR2021】MVDNet论文阅读分析与总结

Challenge: 现有的目标检测器主要融合激光雷达和相机,通常提供丰富和冗余的视觉信息 利用最先进的成像雷达,其分辨率比RadarNet和LiRaNet中使用的分辨率要细得多,提出了一种有效的深度后期融合方法来结合雷达和激光雷达信号。 MV…

还没用熟 TypeScript 社区已经开始抛弃了

根据 rich-harris-talks-sveltekit-and-whats-next-for-svelte 这篇文章的报道, Svelte 计划要把代码从 TS 换到 JS 了。 The team is switching the underlying code from TypeScript to JavaScript. That and the update will then allow the team to incorporate…

SpingMyc项目如何搭建

目录 一、创建项目 二、环境搭建 (1)引入相关依赖 (2)在web.xml中配置前端控制器DispatcherServlet (3)编写SpringMVC核心配置文件springmvc.xml 三、测试是否成功 (1)编写控…

WebGL 正确处理对象前后的关系——隐藏面消除(深度测试)/ 深度冲突

目录 前言 验证WebGL处理对象前后关系的规则——后绘制的图形覆盖先绘制的图形 隐藏面消除(深度测试) 开启隐藏面消除功能,需要遵循以下两步: 1.开启隐藏面消除功能。 gl.enable()函数规范 2.在绘制…

Linux常用命令字典篇

Linux命令 1. 翻页查看文件 less [-N] 文件名:可以向后翻页,也可以向前翻页,-N表示显示行号 more 文件名:仅可以向后翻页 2. 端口占用信息查看 netstat -tunlp | grep 端口号:查看端口号对应的信息 lsof i: 端口号…