安全多方计算之九:不经意传输

这篇具有很好参考价值的文章主要介绍了安全多方计算之九:不经意传输。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

考虑这样的场景:A意欲出售许多个问题的答案,B打算购买其中一个问题的答案,但又不想让A知道他买的哪个问题的答案。即B不愿意泄露给A他究竟掌握哪个问题的秘密,此类场景可通过不经意传输协议实现。

不经意传输(OT,Oblivious Transfer)又称健忘传输或茫然传输,由Rabin于1981年提出。不经意传输是从一个消息集合秘密获取取部分消息的方法,该协议执行完毕后,接收方知道他是否收到这个秘密,但发送方却不知道。不经意传送是密码学中的基本构件,广泛应用于比特承诺、零知识证明、安全多方计算和电子支付等协议中。

不经意传输包括:1-out-of-2不经意传输、1-out-of-n不经意传输、m-out-of-n不经意传输。

1. Blum不经意传输

Blum不经意传输又称Rabin不经意传输,该协议中发送方以50%的概率传送一个秘密(整数 n n n的因数分解)给接收者,接收者有50%的机会收到这个秘密,有50%的机会什么也没有收到。

  • (1)A选择形式为 4 r + 3 4r+3 4r+3的两个个大素数,发送Blum数 n = p × q n=p\times q n=p×q给B,但将 p , q p,q p,q作为秘密保留。

  • (2)B随机选取一个整数 x x x,满足 0 < x < n , gcd ⁡ ( x , n ) = 1 0<x<n,\operatorname{gcd}(x, n)=1 0<x<n,gcd(x,n)=1,即 x x x是比 n n n小且与 n n n互素的正整数,然后发送 a ≡ x 2 (   m o d   n ) a \equiv x^{2}(\bmod n) ax2(modn)给A。

  • (3)A根据已知的 p , q p,q p,q求出 x 2 ≡ a (   m o d   p ) x^{2} \equiv a(\bmod p) x2a(modp)对应的 2 2 2个根,然后A随机选择其中的一个根发送给B。

  • (4)如果B接收到的是 y y y n − y n-y ny,则B通过已知的 x x x和接收到的 y y y就可以得出 p p p q q q gcd ⁡ ( x + y , n ) = p \operatorname{gcd}(x+y, n)=p gcd(x+y,n)=p gcd ⁡ ( x + y , n ) = q \operatorname{gcd}(x+y, n)=q gcd(x+y,n)=q。若 B 接收到的是 x x x n − x n-x nx,则B得不出 n n n的任何信息。

2. 1-out-of-2不经意传输

O T 1 2 OT_{1}^{2} OT12不经意传输:Alice拥有两个消息 M 1 , M 2 M_1,M_2 M1,M2,Bob得到其中的一份消息且Alice不知道是哪一个。

方法一

  • (1) Alice产生两个公开密钥/私人密钥对,共4个密钥,她把两个公开密钥发进给Bob。

  • (2) Bob生成一个对称算法(例如DES)密钥 K K K,选择Alice的一个公开密钥加密他的DES密钥 K K K,发送给 Alice(但不告诉她使用的是哪个公开密钥)。

  • (3) Alice每次使用一个她的私人密钥来解密Bob的密钥。Alice要么使用了正确的密钥并成功地解密Bob的DES密钥 K K K,要么使用了错误的密钥只是产生了一堆毫无意义而看上去又像一个随机DES密钥的位 K ‘ K‘ K。由于她不知道正确明文,所以不知道哪个是正确的。

  • (4) Alice分别使用产生的两个DES密钥加密她的两个消息,假设使用 K K K加密 M 1 M_1 M1,使用 K ‘ K‘ K加密 M 2 M_2 M2,将 E K ( M 1 ) , E K ′ ( M 2 ) E_{K}(M_1),E_{K'}(M_2) EK(M1),EK(M2)发送给 Bob。

  • (5) Bob收到一个用正确DES密钥加密的消息 E K ( M 1 ) E_{K}(M_1) EK(M1)和一个用无意义DES密钥加密的消息 E K ′ ( M 2 ) E_{K'}(M_2) EK(M2),当Bob用他的DES密钥解密每一份消息时,他能读其中之一,另一份在他看起来毫无意义。

此时Bob现在有了Alice两份消息中的一个(本例中是 M 1 M_1 M1),而Alice不知道他能读懂哪一个。

方法二

  • (1)Alice选择两个随机数 r 0 , r 1 r_{0}, r_{1} r0,r1,发送给Bob。

  • (2)Bob选择一个随机数 r r r,用Alice的公钥 d d d加密 r r r: E d ( r ) = r d E_d(r)=r^{d} Ed(r)=rd,并且选择一个随机数(假设选择 r 0 r_{0} r0),计算 S = r 0 + E d ( r ) S=r_0+E_d(r) S=r0+Ed(r),发送给Alice。

  • (3)Alice计算 S 0 = S − r 0 , S 1 = S − r 1 S_{0}=S-r_{0},S_{1}=S-r_{1} S0=Sr0,S1=Sr1,并用私钥 e e e解密计算 D e ( S 0 ) , D e ( S 1 ) D_e(S_{0}),D_e(S_{1}) De(S0),De(S1),然后发送 M 0 ′ = M 0 ⊕ D e ( S 0 ) , M 1 ′ = M 1 ⊕ D e ( S 1 ) M_{0}'=M_{0} \oplus D_e(S_{0}),M_{1}'=M_{1} \oplus D_e(S_{1}) M0=M0De(S0),M1=M1De(S1) 给Bob。

  • (4)Bob计算 M 0 ′ ⊕ r , M 1 ′ ⊕ r M_{0}'\oplus r,M_{1}'\oplus r M0r,M1r,其中 M 0 ′ ⊕ r = M 0 ⊕ D e ( S 0 ) ⊕ r = M 0 ⊕ D e ( S − r 0 ) ⊕ r = M 0 ⊕ D e ( r 0 + E d ( r ) − r 0 ) ⊕ r = M 0 ⊕ D e ( E d ( r ) ) ⊕ r = M 0 ⊕ r ⊕ r = M 0 \begin{aligned} M_{0}' \oplus r &= M_{0} \oplus D_e(S_{0}) \oplus r \\ &= M_{0} \oplus D_e(S-r_0)\oplus r \\ &= M_{0} \oplus D_e(r_0+E_d(r)-r_0)\oplus r \\ &= M_{0} \oplus D_e(E_d(r)) \oplus r \\ &= M_{0} \oplus r \oplus r \\ &= M_{0}\end{aligned} M0r=M0De(S0)r=M0De(Sr0)r=M0De(r0+Ed(r)r0)r=M0De(Ed(r))r=M0rr=M0Bob恢复了消息 M 0 M_0 M0,同时Alice不知道Bob恢复的哪个消息。

3. 1-out-of-n不经意传输

O T 1 n OT_{1}^{n} OT1n不经意传输:Alice拥有 n n n个消息 ( M 1 , M 2 , … , M n ) (M_{1}, M_{2}, \ldots, M_{n}) (M1,M2,,Mn),Bob得到其中某一个 M i M_{i} Mi且Alice不知道是哪一个。

系统参数:设 p , q p,q p,q均为素数, p = 2 q + 1 p=2q+1 p=2q+1 G q G_{q} Gq Z P ∗ Z_{P}^{*} ZP的一个 q q q阶子群, g , h g,h g,h G q G_{q} Gq的两个生成元, Z q Z_{q} Zq表示模 q q q的最小剩余集,协议两个参与方Alice和Bob都知道 ( g , h , G q ) \left(g, h, G_{q}\right) (g,h,Gq)

  • (1) Bob选择 r ∈ R Z q r \in_{R} Z_{q} rRZq i ( 1 ≤ i ≤ n ) i(1 \leq i \leq n) i(1in),计算 y = g r h i   m o d   p y=g^{r} h^{i} \bmod p y=grhimodp 发送给Alice;

  • (2) Alice对所有 1 ≤ j ≤ n , k j ∈ z q 1 \leq j \leq n, k_{j} \in z_{q} 1jn,kjzq,计算 a j = g k j   m o d   p , b j = M j ( y / h i ) k j   m o d   p a_{j}=g^{k_{j}} \bmod p, b_{j}=M_{j}\left(y / h^{i}\right)^{k_{j}} \bmod p aj=gkjmodp,bj=Mj(y/hi)kjmodp ( a 1 , b 1 ) , ( a 2 , b 2 ) , … , ( a n , b n ) \left(a_{1}, b_{1}\right),\left(a_{2}, b_{2}\right), \ldots,\left(a_{n}, b_{n}\right) (a1,b1),(a2,b2),,(an,bn) 发送给Bob;

  • (3) Bob 计算 b i / a i r   m o d   p = M i ( y / h i ) k i / a i r   m o d   p = M i ( g r h i / h i ) k i / ( g k j ) r   m o d   p = M i \begin{aligned} b_{i} /a_{i}^{r} \bmod p &= M_{i}\left(y/h^{i}\right)^{k_{i}}/a_{i}^{r} \bmod p \\ &= M_{i}\left(g^{r} h^{i}/h^{i}\right)^{k_{i}}/{(g^{k_{j}})}^{r} \bmod p \\ &= M_{i} \end{aligned} bi/airmodp=Mi(y/hi)ki/airmodp=Mi(grhi/hi)ki/(gkj)rmodp=MiBob恢复了消息 M i M_i Mi,同时Alice不知道Bob恢复的哪个消息。

m-out-of-n不经意传输

O T k n OT_{k}^{n} OTkn不经意传输:Alice有 n n n个秘密, ( M 1 , M 2 , … , M n ) (M_{1}, M_{2}, \ldots, M_{n}) (M1,M2,,Mn),Bob得到其中 k k k个且Alice不知道是哪一个。

通过执行 k k k O T 1 n OT_{1}^{n} OT1n协议m,来实现m-out-of-n的不经意传输。文章来源地址https://www.toymoban.com/news/detail-414829.html

到了这里,关于安全多方计算之九:不经意传输的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安全多方计算简介

    安全多方计算(Secure Multi-Party Computation,SMPC)用于解决一组互不信任的参与方各自持有秘密数据,协同计算一个既定函数的问题。安全多方计算在保证参与方获得正确计算结果的同时,无法获得计算结果之外的任何信息。在整个计算过程中,参与方对其所拥有的数据始终拥有绝

    2024年02月07日
    浏览(26)
  • 第162篇 笔记-安全多方计算

    一、主要概念 安全多方计算 (Secure Multi-Party Computation):指多个参与者在不泄露各自隐私数据情况下,利用隐私数据参与保密计算,共同完成某项计算任务。 该技术能够满足人们利用隐私数据进行保密计算的需求,有效解决数据的“保密性”和“共享性”之间的矛盾。多方

    2024年02月03日
    浏览(25)
  • 隐私计算论文合集「多方安全计算系列」第一期

    当前,隐私计算领域正处于快速发展的阶段,涌现出了许多前沿的 SOTA算法 和备受关注的 顶会论文 。为了方便社区小伙伴学习最新算法、了解隐私计算行业最新进展和应用,隐语开源社区在GitHub创建了Paper推荐项目awesome-PETs(PETs即Privacy-Enhancing Technologies , 隐私增强技术 )

    2024年02月09日
    浏览(33)
  • 华为安全专家带你入门安全多方计算

    6月8日(本周四) 19:00—21:00 ,华为安全专家带你入门安全多方计算,欢迎参加! 考虑以下应用场景: Alice认为她可能患有某种遗传病,Bob有一个包含DNA模式与各类疾病的数据库。Alice可将她的DNA序列交给Bob得到诊断结果。然而,Alice不想泄露自己的DNA序列,也不想Bob及其他人

    2024年02月08日
    浏览(33)
  • 多方安全计算破解企业数据互信难题

    所谓 多方安全计算 ,最初是为解决一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下协同计算问题而提出的理论框架。 当企业之间进行数据相关的合作时,随之而来就涉及到数据泄露的问题。因此,如何兼顾“数据价值共享”和“隐私保护”,成为当

    2023年04月16日
    浏览(28)
  • 联邦学习中的安全多方计算

    Secure Multi-party Computation in Federated Learning 安全多方计算就是许多参与方需要共同工作完成一个计算任务或者执行一个数学函数,每个参与方针对这个执行构建自己的数据或份额,但不想泄露自己的数据给其他参与方。 在安全多方计算中的定义包括以下几个方面: 一组有私有输

    2024年02月11日
    浏览(29)
  • 百万富翁问题--安全多方计算

    百万富翁问题—安全多方计算 是由图灵奖获得者姚期智提出的。 有A、B两个富翁,A资产i亿元,B资产j亿元,i、j均在0-10范围内,在互不让对方知道自己资产的情况下,比较A和B的资产谁多谁少。 那么如何去比较呢? 这里放十个箱子: 如果A有i亿元,那么A将第i个箱子之前的

    2024年02月04日
    浏览(23)
  • 【安全多方计算】百万富翁问题

    ​ 百万富翁问题是姚期智先生在1982年提出的第一个安全双方计算问题,两个百万富翁街头邂逅,他们都想炫一下富,比比谁更有钱,但是出于隐私,都不想让对方知道自己到底拥有多少财富,所以要在不借助第三方的情况下,知道他们之间谁更有钱。 ①这里假设Alice和Bob就是

    2024年02月05日
    浏览(29)
  • 安全多方计算之七:门限密码系统

    门限密码系统由分布式密钥生成算法、加密算法、门限解密算法三部分构成,定义如下: (1)分布式密钥生成 :这是一个由参与者共同生成公钥 y y y 的协议,协议运行结束后,每个参与者将获得一个关于私钥 x x x 的碎片、对应于该碎片的公钥密钥 y i y_i y i ​ ,以及与私钥

    2024年01月19日
    浏览(30)
  • 【多方安全计算】差分隐私(Differential Privacy)解读

    差分隐私(Differential privacy)最早于2008年由Dwork 提出,通过严格的数学证明,使用随机应答(Randomized Response)方法确保数据集在输出信息时受单条记录的影响始终低于某个阈值,从而使第三方无法根据输出的变化判断单条记录的更改或增删,被认为是目前基于扰动的隐私保护

    2024年02月06日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包