茫然传输经典协议

茫然传输(OT)

      茫然传输的概念是由Rabin提出的,Even、Goldreich和Lempel首次提出了1-out-of-2茫然传输的概念。由于茫然传输协议在安全多方计算等领域有着重要应用。Naor和Pinkas最早研究了抵抗自适应腐化者的OT传输协议。M.Green.S.Hohenberger等研究了UC安全的OT协议,不过这些协议基本随机预言模型或者基于一些非经典密码学困难性假设,这些协议对于实际应用而言仍然效率显低。
     在OT拓展协议方面,不论是抵抗被动攻击者还是主动攻击者的OT拓展协议都取得了较大的进展。

Naor-Pinkas茫然传输协议

    Naro和Pinkas通过三次公钥密码学操作实现了半诚实模型下的1-out-of-2茫然传输协议。
    输入信息:发送者输入两个长度为lll比特的字符串(x0,x1)(x_{0},x_{1})(x0,x1),接收者输入一个选择比特rrr
    系统参数:设qqq,ppp均为素数,且满足q∣p−1q|p-1qp1ZqZ_{q}Zqqqq阶群,GqG_{q}GqZp∗Z_{p}^{*}Zpqqq阶子群。给定Zp∗Z_{p}^{*}Zp的生成元ggg,满足Diffie−HellmanDiffie-HellmanDiffieHellman困难性假设。
    随机预言函数:HHH

    Step 1: 发送者生成并公布随机数C∈ZqC \in {Z_q}CZq,然后发送者生成随机数aaa,并计算gag_{a}gaCaC_{a}Ca

    Step 2: 接收者选择随机数1⩽k⩽q1 \leqslant k \leqslant q1kq,并生成公钥pkrpk_{r}pkrpk1−r=C/gkpk_{1-r}=C/g_{k}pk1r=C/gk,接收者将pk0pk_{0}pk0发送给发送者。

    Step 3: 发送者计算(pk0)a(pk_0)^{a}(pk0)a(pk1)a=Ca/(pk0)a(pk_1)^{a}=C_{a}/(pk_{0})^{a}(pk1)a=Ca/(pk0)a。发送者执行加密计算,并将加密结果(E0,E1)(E_0,E_1)(E0,E1)发送给接收者。
E0=(ga,H((pk0)a,0)⊕x0)E1=(ga,H((pk1)a,1)⊕x1){E_0} = ({g_a},H({(p{k_0})^a},0) \oplus {x_0})\\{E_1} = ({g_a},H({(p{k_1})^a},1) \oplus {x_1})E0=(ga,H((pk0)a,0)x0)E1=(ga,H((pk1)a,1)x1)

    Step 4:接收者计算H((pkr)a)=H((ga)k)H((pk_{r})^{a})=H((g_a)^k)H((pkr)a)=H((ga)k),然后计算xrx_{r}xr

xr=Er,2⊕H((pkr)a,r){x_r} = {E_{r,2}} \oplus H({(p{k_r})^a},r)xr=Er,2H((pkr)a,r)

     其中,Er,2E_{r,2}Er,2表示ErE_{r}Er的第二个元素。

IKN茫然传输协议

     Ishai等人提出的茫然传输扩展协议可以将一个OTlmOT_{l}^{m}OTlm协议首先转化为调用一次OTmλOT_{m}^{\lambda }OTmλ协议,然后将OTmλOT_{m}^{\lambda}OTmλ协议转化为调用λ\lambdaλOTmλOT_{m}^{\lambda}OTmλ协议。其中,λ\lambdaλ表示系统安全参数。MiM_iMi,MjM_jMj分别表示矩阵M的第iii列和第jjj行,SSSRRR分别表示发送者和接收者。

     子协议1:OTlmOT_{l}^{m}OTlm转换为OTmλOT_{m}^{\lambda}OTmλ
     输入信息:S的输入信息是m对长度lll比特字符串(xj,0,xj,1)(x_{j,0},x_{j,1})(xj,0,xj,1),其中,1⩽k⩽m1 \leqslant k \leqslant m1km;RRR的输入是m个选择比特r=(r1,…rm)r=(r_{1},…r_{m})r=(r1,rm)
     随机预言函数:H[m]×H[m]×H[m]×{0,1}k→_{k}→k{0,1}l_{l}l
     系统参数:安全参数λ\lambdaλ
     步骤1:S生成随机向量 s∈{0,1}λs \in {\{ 0,1\} _\lambda }s{0,1}λ, RRR生成一个m×λm×\lambdam×λ的随机矩阵TTT
     步骤2:参与者调用OTmλOT_{m}^{\lambda}OTmλ协议。在这个协议中,S扮演输入为s的接收者,RRR扮演输入为(ti,r⊕ti)(t_{i},r\oplus t_{i})(ti,rti)的发送者,其中1⩽i⩽λ1 \leqslant i \leqslant \lambda1iλ
     步骤3:令QQQ代表SSS在步骤2中接收到的m×λm×\lambdam×λ的矩阵,即qi=(si,r)⊕ti{q_i} = ({s_i},r) \oplus {t_i}qi=(si,r)ti,qj=(rj∗s)⊕tj{q_j} = ({r_{j}*s}) \oplus {t_j}qj=(rjs)tj。对于1⩽j⩽m1 \leqslant j \leqslant m1jm, S 向R发送yj,0=xj,0⊕H(j,qj)y_{j,0}=x_{j,0} \oplus H(j,q_{j})yj,0=xj,0H(j,qj)yj,1=xj,1⊕H(j,qj⊕s)y_{j,1}=x_{j,1} \oplus H(j,q_{j} \oplus s)yj,1=xj,1H(j,qjs)
     步骤4:对于1⩽j⩽m1 \leqslant j \leqslant m1jm ,RRR 输出 zj=yi,r⊕H(j,tj){z_j} = {y_{i,r}} \oplus H(j,{t_j})zj=yi,rH(j,tj)

     子协议2:OTmλOT_{m}^{\lambda}OTmλ转换为OTλλOT_{\lambda}^{\lambda}OTλλ
     输入信息:SSS的输入信息是λ\lambdaλ对长度为mmm比特的字符串(xi,0,xi,1)(x_{i,0},x_{i,1})(xi,0,xi,1)。其中1⩽i⩽λ1\leqslant i \leqslant \lambda1iλRRR的输入是λ\lambdaλ个选择比特r=(r1,r2…,rλ)r=(r_{1},r_{2}…,r_{\lambda})r=(r1,r2,rλ)
     系统参数:安全参数λ\lambdaλ
     随机预言函数:一个伪随机数生成器G:G:G:{0,1}λ_{\lambda}λ→\to{0,1}m_{m}m
     步骤1:S随机生成λ\lambdaλkkk比特的字符串(si,0,si,1)(s_{i,0},s_{i,1})(si,0,si,1).
     步骤2:参与者调用OTλλOT^{\lambda}_{\lambda}OTλλ协议。在这个协议中,SSS扮演输入为(si,0,si,1)(s_{i,0},s_{i,1})(si,0,si,1)的发送者,RRR扮演输入为rrr的接收者,其中1⩽i⩽λ1 \leqslant i \leqslant \lambda1iλ
     步骤3:对于1⩽i⩽λ1 \leqslant i \leqslant \lambda1iλSSSRRR发送yj,0y_{j,0}yj,0yj,1y_{j,1}yj,1,其中yi,b=xi,b⊕G(si,ri)y_{i,b}=x_{i,b} \oplus G(s_{i,r_{i}})yi,b=xi,bG(si,ri)
     上述协议的调用的OTλλOT^{\lambda}_{\lambda}OTλλ协议可以通过调用λ\lambdaλOTλ1OT^{1}_{\lambda}OTλ1协议实现。

     子协议3:OTlmOT_{l}^{m}OTlm转换为OTλλOT_{\lambda}^{\lambda}OTλλ
     输入信息:SSS的输入信息是mmm对长度为lll比特的字符串(xj,0,xj,1)(x_{j,0},x_{j,1})(xj,0,xj,1),其中1⩽j⩽m1 \leqslant j \leqslant m1jmRRR的输入是mmm个选择比特r=(r1,…rm)r=(r_{1},…r_{m})r=(r1,rm)
     系统参数:安全参数λ\lambdaλ>
     随机预言函数:H:[m]×0,1λ→H:[m]×{0,1}_{\lambda} \toH:[m]×0,1λ {0,1}l_{l}l
     伪随机数生成器:G:0,1λ→0,1mG:{0,1}_{\lambda} \to {0,1}_{m}G:0,1λ0,1m
     步骤1:RRR生成随机字符串对(kj,0,kj,1)∈{0,1}2λ({k_{j,0}},{k_{j,1}}) \in {\{ 0,1\} _{2\lambda }}(kj,0,kj,1){0,1}2λ1⩽j⩽m1 \leqslant j \leqslant m1jmSSS生成随机向量s ∈{0,1}λ\in {\{ 0,1\} _\lambda }{0,1}λSSSRRR执行OTλλOT^{\lambda}_{\lambda}OTλλ,其中SSS扮演接收者,RRR扮演发送者。协议结束后,SSS获得kj,sjk_{j,s_{j}}kj,sj1⩽j⩽λ1 \leqslant j \leqslant \lambda1jλ
     步骤2:RRR生成一个m×m \timesm×λ\lambdaλ的随机比特矩阵TTT,计算vj,0=tj⊕G(kj,0)v_{j,0}=t_{j} \oplus G(k_{j,0})vj,0=tjG(kj,0)vj,1=tj⊕G(kj,1⊕r)v_{j,1}=t_{j} \oplus G(k_{j,1} \oplus r)vj,1=tjG(kj,1r),并将vj,0,vj,1v_{j,0},v_{j,1}vj,0,vj,1发送给SSS1⩽j⩽λ1 \leqslant j \leqslant \lambda1jλ
     步骤3:SSS生成m×λm \times\lambdam×λ的矩阵QQQ,其中qj=vj,sj⊕G(kj,sj)q^{j}=v_{j,s_{j}} \oplus G(k_{j,s_{j}})qj=vj,sjG(kj,sj)1⩽j⩽λ1 \leqslant j \leqslant \lambda1jλSSS计算yi,0=xi,0⊕H(qi)y_{i,0}=x_{i,0} \oplus H(q_{i})yi,0=xi,0H(qi)yi,1=xi,1⊕H(qi⊕s)y_{i,1}=x_{i,1} \oplus H(q_{i} \oplus s)yi,1=xi,1H(qis),并将(yi.0,yi,1)(y_{i.0},y_{i,1})(yi.0,yi,1)发送给RRR1⩽i⩽m1 \leqslant i \leqslant m1im
     步骤4:对于1⩽j⩽m1 \leqslant j \leqslant m1jm,RRR输出zj=yi,rj⊕H(tj)z_{j}=y_{i,r_{j}} \oplus H(t_{j})zj=yi,rjH(tj)
     字协议3中,RRR共调用mmmHHH2λ2\lambda2λGGG,发送数据2mλ2m\lambda2mλ比特;SSS共调用2m2m2mHHHλ\lambdaλGGG,发送数据2ml2ml2ml比特。当λ=m\lambda=mλ=m时,OTλλOT^{\lambda}_{\lambda}OTλλ的消耗可以忽略不计。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值