不经意传输--Efficient k-out-of-n Oblivious Transfer Schemes with Adaptive and Non-Adaptive Queries

本文主要是介绍不经意传输--Efficient k-out-of-n Oblivious Transfer Schemes with Adaptive and Non-Adaptive Queries,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Efficient k-out-of-n Oblivious Transfer Schemes with Adaptive and Non-Adaptive Queries

https://www.iacr.org/archive/pkc2005/33860173/33860173.pdf

Oblivious Transfer(OT)

一个 oblivious transfer(不经意传输)协议包括两个实体,发送者 S S S 和接收者 R R R S S S 拥有一些消息并且 R R R 想要通过与 S S S 的交互得到一些消息。安全需求是: S S S 想要 R R R 从他发送的消息中获取消息, R R R 并不想 S S S 知道它选择的是哪个消息。常见的的协议,1-out-of OT( O T 1 2 \mathrm{OT}_1^2 OT12),在这个方案中, S S S 拥有两个消息 m 1 m_1 m1 m 2 m_2 m2,并希望 R R R 能得到其中的一个。此外, S S S 仍然 oblivious R R R 的选择。后续,研究人员扩展了 n n n 个消息的情况 O T 2 1 \mathrm{OT}_2^1 OT21 到 1-out-of-n OT( O T 1 n OT_1^n OT1n) 。

Security model. 假设 S S S 拥有 n n n 个消息 m 1 , m 2 , . . . , m n m_1,m_2,...,m_n m1,m2,...,mn R R R k k k 个选择为 σ 1 , σ 2 , . . . , σ k \sigma_1,\sigma_2,...,\sigma_k σ1,σ2,...,σk。对于半诚实的发送者的情况。我们说如果 x x x C C C 中,不在 C ′ C' C 中,那么 C C C C ′ C' C 是不同的。一个 O T n k OT_n^k OTnk 方案针对半诚实的接收者应满足一下要求:

  1. 接收者的隐私-不可区分性:对于任意两个不同的选择集合 C = { σ 1 , σ 2 , . . . , σ k } C=\{\sigma_1,\sigma_2,...,\sigma_k\} C={σ1,σ2,...,σk} C ′ = { σ 1 ′ , σ 2 ′ , . . . , σ k ′ } C'=\{\sigma_1',\sigma_2',...,\sigma_k'\} C={σ1,σ2,...,σk},对于发送方来说是无法区分这两个集合那个是接受者的选择。
  2. 发送者的安全-不可区分性:对于任何选择的集合 C = { σ 1 , σ 2 , . . . , σ k } C=\{\sigma_1,\sigma_2,...,\sigma_k\} C={σ1,σ2,...,σk},未被选择的消息应该和随机的消息不可区分。

具有抗恶意接收者的 O T n k OT_n^k OTnk 的安全要求为:

  1. 接收者的隐私:与半诚实的发送者的情况一样
  2. 发送者的隐私:与理想模型相比:在理想模型中,发送方发送所有消息,接收方将它的选择都发送给 TTP,TTP 会将选择的消息给接收者。这是实现 O T n k OT_n^k OTnk 方案最安全的方法。在理想世界中,接收者 R R R 不能从发送者 S S S 获得额外的信息。如果在实际的 O T k n OT_k^n OTkn 方案中的任意接收方 R R R,在理想模型中有另一个 PPTM R ′ R' R(称为 simulator),使得 R R R R ′ R' R 的输出结果无法区分,则实现了发送方的安全性。

Elagmal Encryption

Setup
  1. 选择一个大素数 p p p,选择一个模数 q q q
  2. 满足 q q q p − 1 p-1 p1 的一个因子,且 q q q 也是一个足够大的素数
  3. 选择一个整数 g g g ( 1 < g < p ) (1<g<p) (1<g<p),作为群 G \mathbb{G} G 生成元
  4. 随机选择一个私钥 x x x ( 1 ≤ x ≤ q − 1 ) (1\le x \le q-1) (1xq1)
  5. 计算公钥 y = g x y = g^x y=gx mod p
Encrypt
  1. 随机选择一个整数 k k k
  2. 计算 c 1 = g k c_1=g^k c1=gk mod p, c 2 = m y k c_2=my^k c2=myk mod p
  3. 发送密文 c = ( c 1 , c 2 ) c=(c_1,c_2) c=(c1,c2)
Decrypt
  1. m = c 2 ⋅ c 1 − x m=c_2 \cdot c_1^{-x} m=c2c1x mod p

O T n k OT_n^k OTnk: k-out-of-n OT against semi-honest receiver

在这里插入图片描述

系统参数: ( g , h , G q ) (g,h,G_q) (g,h,Gq)
S S S 有消息: m 1 , m 2 , . . . , m n m_1,m_2,...,m_n m1,m2,...,mn
R R R 的选择: σ 1 , σ 2 , . . . , σ k \sigma_1,\sigma_2,...,\sigma_k σ1,σ2,...,σk

  1. R R R 选择两个多项式 f ( x ) = a 0 + a 1 x + . . . + a k − 1 x k − 1 + x k f(x)=a_0+a_1x+...+a_{k-1}x^{k-1}+x^k f(x)=a0+a1x+...+ak1xk1+xk f ′ ( x ) = b 0 + b 1 x + . . . + b k − 1 x k − 1 + x k f'(x)=b_0+b_1x+...+b_{k-1}x^{k-1}+x^k f(x)=b0+b1x+...+bk1xk1+xk 其中 a 0 , a 1 , . . . , a k − 1 ∈ Z q a_0,a_1,...,a_{k-1} \in Z_q a0,a1,...,ak1Zq b 0 + b 1 x + . . . + b k − 1 x k − 1 = ( x − σ 1 ) ( x − σ 2 ) . . . ( x − σ k ) b_0+b_1x+...+b_{k-1}x^{k-1}=(x-\sigma_1)(x-\sigma_2)...(x-\sigma_k) b0+b1x+...+bk1xk1=(xσ1)(xσ2)...(xσk) mod q
  2. R → S R\rightarrow S RS A 0 = g a 0 h b 0 , A 1 = g a 1 h b 1 , . . . , A k − 1 = g a k − 1 h b k − 1 A_0=g^{a_0}h^{b_0},A_1=g^{a_1}h^{b_1},...,A_{k-1}=g^{a_{k-1}}h^{b_{k-1}} A0=ga0hb0,A1=ga1hb1,...,Ak1=gak1hbk1
  3. S S S 计算 c i = ( g k i , m i B i k i ) c_i=(g^{k_i},m_iB_i^{k_i}) ci=(gki,miBiki) 其中 k i ∈ Z p ∗ k_i\in Z_p^* kiZp B i = g f ( i ) h f ′ ( i ) = A 0 A 1 i . . . A k − 1 i k − 1 B_i=g^{f(i)}h^{f'(i)}=A_0A_1^i...A_{k-1}^{i^{k-1}} Bi=gf(i)hf(i)=A0A1i...Ak1ik1 mod p, i = 1 , 2 , . . . , n i=1,2,...,n i=1,2,...,n
  4. S → R S\rightarrow R SR c 1 , c 2 , . . . , c n c_1,c_2,...,c_n c1,c2,...,cn
  5. c i = ( U i , V i ) c_i=(U_i,V_i) ci=(Ui,Vi) R R R 为每一个 σ i \sigma_i σi 计算 m σ i = V σ i / U σ i f ( σ i ) m_{\sigma_i}=V_{\sigma_i}/U_{\sigma_i}^{f(\sigma_i)} mσi=Vσi/Uσif(σi)
k-out-of-n OT against semi-honest receiver

发送方 S S S n n n 个秘密信息 m 1 , m 2 , . . . , m n m_1,m_2,...,m_n m1,m2,...,mn。我们假设消息空间为 G q G_q Gq,半诚实的接受者 R R R 想要获取 m σ 1 , m σ 2 , . . . , m σ k m_{\sigma_1},m_{\sigma_2},...,m_{\sigma_k} mσ1,mσ2,...,mσk

系统参数为 g , h g,h g,h G q G_q Gq 的两个生成元, ( g , h , G q ) (g,h,G_q) (g,h,Gq) 是公共参数。

接收者 R R R 首先构造 k k k 阶多项式 f ′ ( x ) = b 0 + b 1 x + . . . + b k − 1 x k − 1 + x k f'(x)=b_0+b_1x+...+b_{k-1}x^{k-1}+x^k f(x)=b0+b1x+...+bk1xk1+xk f ′ ( x ) f'(x) f(x) 满足 f ′ ( i ) = 0 , i ∈ { σ 1 , . . . , σ k } f'(i)=0,i\in\{\sigma_1,...,\sigma_k\} f(i)=0,i{σ1,...,σk},即 b 0 + b 1 x + . . . + b k − 1 x k − 1 = ( x − σ 1 ) ( x − σ 2 ) . . . ( x − σ k ) b_0+b_1x+...+b_{k-1}x^{k-1}=(x-\sigma_1)(x-\sigma_2)...(x-\sigma_k) b0+b1x+...+bk1xk1=(xσ1)(xσ2)...(xσk) R R R 选择另外随机数构造 k k k 阶多项式 f ( x ) = a 0 + a 1 x + . . . + a k − 1 x k − 1 + x k f(x)=a_0+a_1x+...+a_{k-1}x^{k-1}+x^k f(x)=a0+a1x+...+ak1xk1+xk 来隐藏接受者选择的多项式 f ′ ( x ) f'(x) f(x)。将被隐藏的选择 A 0 = g a 0 h b 0 , A 1 = g a 1 h b 1 , . . . , A k − 1 = g a k − 1 h b k − 1 A_0=g^{a_0}h^{b_0},A_1=g^{a_1}h^{b_1},...,A_{k-1}=g^{a_{k-1}}h^{b_{k-1}} A0=ga0hb0,A1=ga1hb1,...,Ak1=gak1hbk1 发送给发送者 S S S

S S S 接收到这些查询后,他首先计算 B i B_i Bi B i = g f ( i ) h f ′ ( i ) = A 0 A 1 i . . . A k − 1 i k − 1 ( g h ) i k = g a 0 h b 0 g a 1 i h b 1 i g a 2 i 2 h b 2 i 2 , . . . , g a k − 1 i k − 1 h b k − 1 i k − 1 ( g h ) i k = g a 0 + a 1 i + a 2 i 2 + . . . + a k − 1 i k − 1 + i k h b 0 + b 1 i + b 2 i 2 + . . . + b k − 1 i k − 1 + i k B_i=g^{f(i)}h^{f'(i)}=A_0A_1^i...A_{k-1}^{i^{k-1}}(gh)^{i^k}=g^{a_0}h^{b_0}g^{a_1i}h^{b_1i}g^{a_2i^2}h^{b_2i^2},...,g^{a_{k-1}i^{k-1}}h^{b_{k-1}i^{k-1}}(gh)^{i^k}=g^{a_0+a_1i+a_2i^2+...+a_{k-1}i^{k-1}+i^k}h^{b_0+b_1i+b_2i^2+...+b_{k-1}i^{k-1}+i^k} Bi=gf(i)hf(i)=A0A1i...Ak1ik1(gh)ik=ga0hb0ga1ihb1iga2i2hb2i2,...,gak1ik1hbk1ik1(gh)ik=ga0+a1i+a2i2+...+ak1ik1+ikhb0+b1i+b2i2+...+bk1ik1+ik即通过计算 A 0 A 1 i . . . A k − 1 i k − 1 ( g h ) i k A_0A_1^i...A_{k-1}^{i^{k-1}}(gh)^{i^k} A0A1i...Ak1ik1(gh)ik mod p 得到 B i B_i Bi。因为 f ( x ) f(x) f(x) 是一个随机多项式, S S S 并不知道 i 在取何值时 f ′ ( i ) = 0 , i = 1 , 2 , . . . , n f'(i)=0, i=1,2,...,n f(i)=0,i=1,2,...,n。那么 S S S B i B_i Bi 视为公钥并且通过 Elgamal 加密每个 m i m_i mi R R R。加密后的消息 c 1 , c 2 , . . . , c n c_1,c_2,...,c_n c1,c2,...,cn R R R
c i = ( U i , V i ) = ( g k i , m i ( g f ( i ) h f ′ ( i ) ) k i ) c_i=(U_i,V_i)=(g^{k_{i}},m_i(g^{f(i)}h^{f'(i)})^{k_i}) ci=(Ui,Vi)=(gki,mi(gf(i)hf(i))ki)
对于每一个 c i , i ∈ { σ 1 , σ 2 , . . . , σ k } c_i,i\in\{\sigma_1,\sigma_2,...,\sigma_k\} ci,i{σ1,σ2,...,σk},因为 B i = g f ( i ) h f ′ ( i ) = g f ( i ) h 0 = g f ( i ) B_i=g^{f(i)}h^{f'(i)}=g^{f(i)}h^0=g^{f(i)} Bi=gf(i)hf(i)=gf(i)h0=gf(i) R R R 可以得到这些消息通过私钥 f ( i ) f(i) f(i) 来解密。如果 i ∉ { σ 1 , σ 2 , . . . , σ k } i\notin \{\sigma_1,\sigma_2,...,\sigma_k\} i/{σ1,σ2,...,σk},因为 R R R 在拥有 g k i , f ( i ) , f ′ ( i ) g^{k_i},f(i),f'(i) gki,f(i),f(i) 的知识情况下,不能计算出 ( g f ( i ) h f ′ ( i ) ) k i (g^{f(i)}h^{f'(i)})^{k_i} (gf(i)hf(i))ki,消息 m i m_i mi R R R 是未知的。

正确性:令 c i = ( U i , V i ) c_i=(U_i,V_i) ci=(Ui,Vi),我们可以检验所选的消息 m σ i , i = 1 , 2 , . . . , k m_{\sigma_i},i=1,2,...,k mσi,i=1,2,...,k
V σ i / U σ i f ( σ i ) = m σ i ⋅ ( g f ( σ i ) h f ′ ( σ i ) ) k σ i / g k σ i f ( σ i ) = m σ i ⋅ ( g f ( σ i ) ⋅ 1 ) k σ i / g k σ i f ( σ i ) = m σ i V_{\sigma_i}/U_{\sigma_i}^{f(\sigma_i)}=m_{\sigma_i}\cdot (g^{f(\sigma_i)}h^{f'(\sigma_i)})^{k_{\sigma_i}}/g^{k_{\sigma_i}f(\sigma_i)}=m_{\sigma_i}\cdot (g^{f(\sigma_i)\cdot1})^{k_{\sigma_i}}/g^{k_{\sigma_i}f(\sigma_i)}=m_{\sigma_i} Vσi/Uσif(σi)=mσi(gf(σi)hf(σi))kσi/gkσif(σi)=mσi(gf(σi)1)kσi/gkσif(σi)=mσi

k-out-of-n OT against malicious receiver

在这里插入图片描述

一个恶意的接受者可能不会诚实地遵守协议。例如,在上个方案中,一个恶意的接收者可能发送一些不规矩的 A_i ,这样他就能够获得额外的信息,比如两个消息的线性组合(即使我们不知道如何进行这种攻击)。所以,我们提出了第二种方案,可以对抗恶意的接收者情况。

系统参数: ( g , H 1 , H 2 , G q ) , H 1 : { 0 , 1 } ∗ → G q , H 2 : G q → { 0 , 1 } l (g,H_1,H_2,G_q), H_1:\{0,1\}^* \rightarrow G_q,H_2:G_q\rightarrow \{0,1\}^l (g,H1,H2,Gq),H1:{0,1}Gq,H2:Gq{0,1}l S S S 拥有消息: m 1 , m 2 , . . . , m n m_1,m_2,...,m_n m1,m2,...,mn R R R 的选择为 σ 1 , σ 2 , . . . , σ k \sigma_1,\sigma_2,...,\sigma_k σ1,σ2,...,σk

  1. R R R 计算 w σ j = H 1 ( σ j ) , A j = w σ j g a j w_{\sigma_j}=H_1(\sigma_j), A_j=w_{\sigma_j}g^{a_j} wσj=H1(σj),Aj=wσjgaj,其中 a j ∈ Z q ∗ , j = 1 , 2 , . . . , k a_j\in Z_q^*, j=1,2,...,k ajZq,j=1,2,...,k
  2. R → S : A 1 , A 2 , . . . , A k R \rightarrow S: A_1,A_2,...,A_k RS:A1,A2,...,Ak
  3. S S S 计算 y = g x , x ∈ Z q ∗ , D j = ( A j ) x , w i = H 1 ( i ) , c i = m i ⊕ H 2 ( w i x ) , i = 1 , 2 , . . . , n ; j = 1 , 2 , . . . , k y=g^x,x\in Z_q^*,D_j=(A_j)^x,w_i=H_1(i),c_i=m_i\oplus H_2(w_i^x),i=1,2,...,n;j=1,2,...,k y=gx,xZq,Dj=(Aj)x,wi=H1(i),ci=miH2(wix),i=1,2,...,n;j=1,2,...,k
  4. S → R : y , D 1 , D 2 , . . . , D k , c 1 , c 2 , . . . , c n S \rightarrow R:y,D_1,D_2,...,D_k,c_1,c_2,...,c_n SR:y,D1,D2,...,Dk,c1,c2,...,cn
  5. R R R 计算 K j = D j / y a j K_j=D_j/y^{a_j} Kj=Dj/yaj,那么 m σ j = c σ j H 2 ( K j ) , j = 1 , 2 , . . . , k m_{\sigma_j}=c_{\sigma_j}H_2(K_j),j=1,2,...,k mσj=cσjH2(Kj),j=1,2,...,k

正确性:
c σ j ⊕ H 2 ( K j ) = m σ j ⊕ H 2 ( w σ j x ) ⊕ H 2 ( w σ j x ) = m σ j c_{\sigma_j}\oplus H_2(K_j)=m_{\sigma_j}\oplus H_2(w_{\sigma_j}^x)\oplus H_2(w_{\sigma_j}^x)=m_{\sigma_j} cσjH2(Kj)=mσjH2(wσjx)H2(wσjx)=mσj

这篇关于不经意传输--Efficient k-out-of-n Oblivious Transfer Schemes with Adaptive and Non-Adaptive Queries的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/691541

相关文章

[论文笔记]QLoRA: Efficient Finetuning of Quantized LLMs

引言 今天带来LoRA的量化版论文笔记——QLoRA: Efficient Finetuning of Quantized LLMs 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 我们提出了QLoRA,一种高效的微调方法,它在减少内存使用的同时,能够在单个48GB GPU上对65B参数的模型进行微调,同时保持16位微调任务的完整性能。QLoRA通过一个冻结的4位量化预

远程桌面文件传输异常或者取消传输后一直显示正在取消

环境: Window Servers 2008 R2 摘要说明: 本篇文章主要讲述当应用远程桌面进行文件传输时,若因网络等导致进程中断,再次传输时则不能进行文件传输;或者传输时取消传输,然后一直显示正在取消。此时可以通过重启window的rdpclip.exe进程来解决此问题 步骤 1.关闭rdpclip.exe进程 远程桌面连上上传输异常的服务器,打开资源管理器,在进程列关闭rdpc

Java传输本地目录到远程服务器

在使用Java进行开发时,有时需要将本地目录中的文件复制或传输到远程服务器上。这种场景在部署应用程序或进行数据迁移时尤为常见。JSch库提供了一种简便的方法来实现这一功能。以下是从Codekru网站获取的信息摘要,并结合相关内容,展示如何使用JSch库实现从本地计算机复制整个目录到远程服务器的过程。 准备工作 首先,确保您的项目中已经包含了JSch库的依赖。如果您使用Maven作为构建工具,可

高效传输秘籍,揭秘Rsync和SCP的优劣,助你做出明智选择!

在日常的运维工作中,文件传输任务频繁出现,而选择合适的工具能显著提高工作效率。Rsync 和 SCP 是两款常见的文件传输工具,但它们各具优缺点,适合不同的场景。本文将通过深入分析这两款工具的特性、使用场景和性能,帮助你做出明智的选择,从而在文件传输中省时省力。 Rsync 与 SCP 简介 Rsync:增量传输的强大工具 Rsync 是一款支持文件同步的工具,广泛应用于备份和传输

使用Java通过SSH协议在两个远程服务器之间传输文件

使用Java通过SSH协议在两个远程服务器之间传输文件是一项常见的任务,特别是在需要自动化文件备份、同步或迁移的情况下。JSch库为Java开发者提供了一个方便的方式来实现这一功能。以下是从Codekru网站获取的信息摘要,并结合相关内容,展示如何使用JSch库实现从一个远程服务器向另一个远程服务器传输文件。 准备工作 首先,确保您的项目中已经包含了JSch库的依赖。如果您使用Maven作为构

Apache Flink:Keyed Window与Non-Keyed Window

Apache Flink中,Window操作在流式数据处理中是非常核心的一种抽象,它把一个无限流数据集分割成一个个有界的Window(或称为Bucket),然后就可以非常方便地定义作用于Window之上的各种计算操作。本文我们主要基于Apache Flink 1.4.0版本,说明Keyed Window与Non-Keyed Window的基本概念,然后分别对与其相关的WindowFunction

后起之秀 | MySQL Binlog增量同步工具go-mysql-transfer实现详解

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 一、 概述 工作需要研究了下阿里开源的MySQL Binlog增量订阅消费组件canal,其功能强大、运行稳定,但是有些方面不是太符合需求,主要有如下三点: 需要自己编写客户端来消费canal解析到的数据server-client模式,需要同时部署server和client两个组件,我们的项目中有6个业务数据库要实时同步到redis

COD论文笔记 Adaptive Guidance Learning for Camouflaged Object Detection

论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点如下: 动机: 论文的核心动机是解决伪装目标检测(COD)中的挑战性任务。伪装目标检测旨在识别和分割那些在视觉上与周围环境高度相似的目标,这对于计算机视觉来说是非常困难的任务。尽管深度学习方法在该领域取得了一定进展,但现有方法仍面临有效分离目标和背景的难题,尤其是在伪装目标与背景特征高度相似的情况下。 现有方法的不足之处: 过于

Android中Socket通信之TCP与UDP传输原理

一、Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。 而Socket通信中基于TCP/IP协议的通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每

经验笔记:IM系统中的点对点传输

IM系统中的点对点传输经验笔记 随着即时通讯(IM,Instant Messaging)系统的发展,用户对于高效、安全的通信需求日益增长。点对点(P2P,Peer-to-Peer)传输作为一种能够提高数据传输效率和保护用户隐私的技术,越来越受到IM系统的青睐。本文将探讨在IM系统中实现点对点传输的必要性、挑战及解决方案。 1. 引言 在传统的IM系统中,所有的消息都需要通过中心服务器进行路由