比特比较

学习&&转载文章:

  • 通过共享随机数来实现比特分享,再通过比特分享来实现比特串比较
  • 利用比特分享的方式,可以对𝑙比特的一个数按比特进行多方分享,之后可以据此实现多方比较多方比较则可以用来构造安全多方计算的基础模块,无论是隐私保护的机器学习还是隐私保护的DNA比较等,都需要用到多方比较模块。

image-20230225105838890

安全模型#

安全多方计算的安全显然是在有攻击者情况下的安全,在不同情形下,实现安全的难度也不同,最极端的例子是一个安全多方计算协议的所有参与者都是恶意参与者,那么这个协议的安全性就很难保证了。

要实现安全,首先应该针对不同的情况建立不同的模型,而后针对这些模型进行研究。

首先假设有攻击者(Adversary,攻击者可以通过各种手段收买或者控制(Corrupt部分参与者,而参与者一旦被收买或者控制,该参与者的所有通信历史信息和本地信息都会被攻击者掌握。

攻击者:

  • 攻击者可以实际理解成黑客,他通过黑客手段入侵到了参与者的计算机中,取得了参与者计算机的控制权,因此可以掌握所有该参与者掌握的信息;
  • 攻击者也可以理解成竞争公司的人,通过金钱来贿赂参与者,以此取得信息。
图片

那么显然,攻击者能够最大收买的参与者人数,很大程度上影响了协议是否安全。

(t,n)门限攻击者结构是指参与者总数是n,攻击者最多能够收买t个参与者。对于攻击者结构,经常会说是Q2,Q3

  • Q2的攻击者结构指攻击者收买的参与者的人数小于参与者总人数的 1/2,即𝑡<1/2
  • Q3的攻击者结构指攻击者收买的参与者的人数小于参与者总人数的1/3,即𝑡<1/3

攻击者模型分为半诚实攻击者模型恶意攻击者模型

  • 在半诚实攻击者模型下,被攻击者收买的参与者遵守协议,不会在协议执行中途退出,也会诚实地发送自己的计算结果,不会篡改协议计算结果,但是被收买的参与者的所有信息,包括历史通讯信息、计算结果等都会被攻击者得知
  • 在恶意攻击者模型下,被攻击者收买的参与者不会再诚实地遵守协议,可能会篡改协议计算结果,其发送给其他参与者的信息有可能是虚假和伪造的

攻击者的能力还可以根据其计算能力进行划分:

  • 计算意义下安全的模型中,攻击者的计算能力是概率多项式时间的,意味着攻击者无法解决常见的困难问题,即使计算出来,所花费的时间也已经超过了信息的有效期,获得的信息已经是过时的信息。
  • 另一种模型为信息论意义下安全的模型,在这种模型下,攻击者的计算能力是无限的。

Shamir秘密分享#

tn 为两个正整数,且 tnn个需要共享秘密的参与者集合为𝑃={P1,...,Pn}

原理介绍#

一个(t,n)门限秘密共享体制是指:假设{P1,...,Pn}要共享同一个秘密s, 将s称为主秘密,有一个秘密管理中心𝑃0来负责对s进行管理和分配,秘密管理中心𝑃0掌握有秘密分配算法和秘密重构算法,这两个算法均满足重构要求和安全性要求。

  • 秘密分配

秘密管理中心𝑃0首先通过将主秘密s输入秘密分配算法,生成n个值,分别为𝑠1,,𝑠𝑛,称𝑠1,,𝑠𝑛为子秘密。然后秘密管理中心𝑃0分别将秘密分配算法产生的子秘密𝑠1,,𝑠𝑛通过𝑃0𝑃𝑖之间的安全通信信道秘密地传送给参与者𝑃𝑖,参与者𝑃𝑖不得向任何人泄露自己所收到的子秘密𝑠𝑖

图片
  • 秘密重构

门限值t指的是任意大于或等于t个参与者𝑃𝑖,将各自掌握的子秘密𝑠𝑖进行共享,任意的一个参与者𝑃𝑖在获得其余𝑡1个参与者所掌握的子秘密后,都可独立地通过秘密重构算法恢复出主秘密s。而即使有任意的𝑛𝑡参与者丢失了各自所掌握的子秘密,剩下的$ t 使s$。

图片
  • 安全性要求是指任意攻击者通过收买等手段获取了少于$ t t s s $的信息。

方案介绍#

Shamir于1979年,基于多项式插值算法设计了Shamir(t,n)门限秘密共享体制,它的秘密分配算法如下:

𝑃={P1,...,Pn}是参与者集合,P共享主秘密𝑠,𝑠F𝑞,秘密管理中心𝑃0按如下所述的步骤对主秘密𝑠进行分配,(为了可读性起见,以下公式均略去了模q操作):

  • 秘密分享:

    • 参与者𝑃0秘密的在有限域Fq中随机选取𝑡1个元素,记为a1,...,at1,并取以𝑥为变元的多项式f(x)=at1xt1++a1x1+s=s+i=1t1aixi

    • 对于1𝑖𝑛𝑃0秘密计算𝑦𝑖=𝑓(𝑖)

    • 对于1𝑖𝑛𝑃0通过安全信道秘密地将(𝑖,𝑦𝑖)分配给𝑃𝑖

图片

  • 秘密重构:

(1)Shamir(t,n)门限共享体制的秘密重构可以使用通俗的解方程法,即t个方程可以确定t个未知数,而这t个未知数即为包括主秘密𝑠在内的多项式𝑓(𝑥)的各项系数,如参与者𝑃1,,𝑃𝑡掌握了子秘密𝑓(1),,𝑓(𝑡),解方程:

at11t1++a111+s=f(1)at12t1++a121+s=f(2)at1nt1++a1n1+s=f(n)

即可求解出系数at1,...,a1,s

(2)另一种方式是使用多项式插值法进行重构主秘密,假设这$ t (𝑥_𝑖 ,𝑦_𝑖)$ ,其中𝑦𝑖=𝑓(𝑥𝑖)𝑖=1,,𝑡𝑖𝑗𝑥𝑖𝑥𝑗

参与者𝑃1,,𝑃𝑡共同计算h(x)=y1(xx2)(xx3)(xxt)(x1x2)(x1x3)(x1xt)+y2(xx1)(xx3)(xxt)(x2x1)(x2x3)(x2xt)++yt(xx1)(xx3)(xxt1)(xtx1)(xtx2)(xtxt1)

显然,(𝑥)是一个𝑡1次的多项式,且因为𝑖𝑗𝑥𝑖𝑥𝑗,每个加式的分母均不为零,因此对于𝑖=1,,𝑡𝑦𝑖=(𝑥𝑖)=𝑓(𝑥𝑖) ,又根据多项式的性质,如果存在两个最高次均为𝑡1次的多项式,这两个多项式在𝑡个互不相同的点所取的值均相同,那么这两个多项式相同,即(𝑥)=𝑓(𝑥),进而参与者𝑃𝑖计算(0)=𝑓(0)=𝑠,即可恢复主秘密𝑠

定理:对于有限域Fqn1次的多项式,设为𝑓(𝑥),存在有限域Fq上的n个元,记为𝜆1,,𝜆𝑛,使得:$f(0)= {\textstyle \sum_{i=1}^{n}\lambda _if(i)} (𝜆_1,…,𝜆_𝑛)$为重组向量(recombinationn vector)

证明:

f(x)=i=0n1aixi,则f(0)=a0,且a0可以被表示为:a0=(1,0,0,...,0)(a0,a1,...,an1)T

考虑一个n阶矩阵:M=(1111212n11n1nn1),由于矩阵M是满秩矩阵,因此存在𝜆1,,𝜆𝑛Fq,使得(𝜆1,,𝜆𝑛)M=(1,0,...,0)

因此有:f(0)=a0=(𝜆1,,𝜆𝑛)M(a0,a1,...,an1)T=(𝜆1,,𝜆𝑛)(f(1),f(2),...,f(n))T=i=1nλif(i)

对于矩阵M=(1111212n11n1nn1),设秘密分配多项式为𝑓(𝑥),参与者𝑃𝑖掌握的子秘密为𝑓(𝑖),因为存在重组向量(𝜆1,,𝜆𝑛),因此有:f(0)=s=(λ1,,λn)M(a0,a1,,an1)T=λ1f(1)++λnf(n)

证明:

这里把at11t1++a111+s=f(1) at12t1++a121+s=f(2)  at1nt1++a1n1+s=f(n)看作是M(a0,a1,,an1)T=(f(1),f(2),...,f(n)),然后两边再乘(λ1,,λn),所以得到了(λ1,,λn)M(a0,a1,,an1)T=λ1f(1)++λnf(n)=f(0)=s

若要计算重组向量,可通过计算矩阵𝑀的逆矩阵M1计算重组向量(𝜆1,,𝜆𝑛)=(1,0...,0)M1,在获得重组向量后,可构建基于Shamir门限体制的安全多方计算协议

证明:s=f(0)=a=(1,0,0,...,0)(a0,a1,...,an1)T=(λ1,,λn)M(a0,a1,,an1)T(λ1,,λn)=M1(1,0...,0)

  • 首先假设𝑃=𝑃1,,𝑃𝑛是参与者集合,𝑃𝑖掌握输入𝑥𝑖(1𝑖𝑛),需要共同计算的函数为𝑓(𝑥1,,𝑥𝑛)

  • 有限域Fq上的𝑆𝑎𝑚𝑖𝑟(𝑡+1,𝑛)门限体制主要流程为:

    • 输入阶段,每个参与者𝑃𝑖将自己的输入𝑥𝑖,利用𝑆𝑎𝑚𝑖𝑟(𝑡+1,𝑛)门限秘密共享体制,秘密选取最高t次的随机多项式𝑓𝑖(𝑥),满足𝑓𝑖(0)=𝑥𝑖 ,然后𝑃𝑖𝑓𝑖(𝑗)发送给参与者𝑃𝑗
    • 计算阶段,假设输入的𝑎𝑏已经通过至多t次的随机多项式𝑓𝑎(𝑥)𝑓𝑏(𝑥)通过Shamir门限体制共享给了各个参与者,fa(x)=mtxt+...+m1x+a,fb(x)=ntxt+...+n1x+b,其中(mt,...,m1),(nt,...,n1)是随机的多项式系数,参与者𝑃𝑖掌握输入𝑎的子秘密𝑎𝑖和输入𝑏的子秘密𝑏𝑖,至多t次的原因是多项式的系数是随机产生的,因此t次的系数也有可能是0。
  • 加法(多方计算𝑎+𝑏

    • 每个参与者𝑃𝑖独立计算𝑐𝑖=𝑎𝑖+𝑏𝑖,1𝑖𝑛𝑐1,,𝑐𝑛 即为𝑎+𝑏通过随机多项式共享后的结果,通过多项式插值法或者解方程即可恢复秘密s
    • 子秘密可以直接相加,是因为对于𝑐𝑖=𝑎𝑖+𝑏𝑖=𝑓𝑎(𝑖)+𝑓𝑏(𝑖)=(𝑚𝑡+𝑛𝑡)it++(𝑚1+𝑛1)𝑖+𝑎+𝑏,多项式的次数并没有发生变化,新的多项式𝑓𝑎(𝑥)+𝑓𝑏(𝑥)的最高次数依旧为 tt+1个参与者共享他们所掌握的𝑐𝑖,即可根据t+1个方程解t+1个未知数,解出𝑎+𝑏,或者也可直接使用拉格朗日插值法求解出𝑎+𝑏
图片
  • 乘法(多方计算ab
    • 首先每个参与者计算di=aibi,接着每个𝑃𝑖独自选取次数为t次的随机多项式𝑖(𝑥) ,且满足hi(0)=di,1in,t<n2。向各个参与者分配𝑑𝑖,且cij=hi(j),1i,jn
    • 所有参与者分配结束后,𝑃𝑖掌握了信息c1i,c2i,...,cni,同时𝜆1,,𝜆𝑛是公开的重组向量,即(𝜆1,,𝜆𝑛)满足ab=h(0)=i=1nλidi,因此𝑃𝑖可计算ci=j=1nλjcji,再利用多项式插值法,即可获得𝑎𝑏。【即只需要t+1方就可以获得秘密ab
图片

共享随机数#

本次主要介绍多方比较的实现方法,用之前介绍过的Shamir(t,n)秘密分享协议可以实现共享随机数。

Shamir(t,n)协议主要基于拉格朗日插值,也可以通俗地理解成𝑛个方程求解𝑛个未知数。

BGW协议可以实现单比特分享,本次要介绍另一个比特分享方式

图片

按比特分享#

如有一个比特串𝑎=𝑎𝑙a𝑙1𝑎1,即𝑎的值为a=i=1lzi1ai𝑎进行比特分享即对𝑎的各个比特进行分享,每个参与者拿到𝑎1,,𝑎𝑙𝑙个子秘密,将参与者𝑃𝑖拿到的𝑎𝑗的子秘密记为𝑎𝑗,𝑖,则对𝑙比特长的𝑎进行比特分享后参与者𝑃𝑖能够获得𝑎1,𝑖,𝑎2,𝑖,,𝑎𝑙,𝑖

首先简要介绍一个多个参与者共同产生同一个随机数的方式

假设有𝑛个参与者𝑃1,,𝑃𝑛,每个参与者𝑃𝑖都产生一个随机数𝑟𝑖,并通过Shamir(t,n)秘密分享机制将𝑟𝑖进行分享,记𝑟𝑖,𝑗为参与者𝑃𝑗获得的𝑟𝑖的子秘密。因此当每个参与者都产生随机数并分享后,参与者𝑃𝑖可以获得𝑟1,𝑖,,𝑟𝑛,𝑖

图片

多方随机数生成#

本质上就是秘密分享-加法运算的应用,共同生成一个随机数。

参与者𝑃𝑖获得子秘密𝑟1,𝑖,,𝑟𝑛,𝑖之后,将它们进行累加,将累加结果记为ri=j=1nrj,i。用符号𝑟表示𝑟1,,𝑟𝑛之和,即r=j=1nrj,i,则ri就是𝑟的一个子秘密。因为𝑟1,𝑖𝑟1的一个子秘密,𝑟𝑗,𝑖𝑟𝑖的一个子秘密,由于Shamir(t,n)具有可加性。

假设参与者𝑃1𝑟1的秘密分配函数是𝑓1(𝑥)=𝑎t1𝑥t1++𝑎1𝑥+𝑟1,参与者𝑃2𝑟2的秘密分配函数是𝑓2(𝑥)=𝑏t1𝑥t1++𝑏1𝑥+𝑟2,则参与者𝑃1𝑃2分配给参与者𝑃𝑗的子秘密分别为𝑟1,𝑗=𝑓1(𝑗)𝑟2,𝑗=𝑓2(𝑗),二者相加为:𝑟1,𝑗+𝑟2,𝑗=𝑓1(𝑗)+𝑓2(𝑗)=(𝑎t1+𝑏t1)𝑗t1++(𝑎1+𝑏1)𝑗+𝑟1+𝑟2,即𝑟1,𝑗+𝑟2,𝑗也是𝑟1+𝑟2的一个子秘密,𝑟1,1+𝑟2,1,𝑟1,2+𝑟2,2,,𝑟1,𝑛+𝑟2,𝑛也是𝑟1+𝑟2的子秘密。

同理𝑟1=𝑟1,1++𝑟𝑛,1,𝑟2=𝑟1,2++𝑟𝑛,2,𝑟𝑛=𝑟1,𝑛++𝑟𝑛,𝑛r=i=1nri=r1++rn的子秘密。

注意此时每个参与者𝑃𝑖都不知道其他参与者产生的随机数𝑟𝑗,因此参与者𝑃𝑖也无法计算出𝑟的具体值「只能计算出子秘密」,但是他通过计算ri=j=1nrj,i,可以计算出𝑟的一个子秘密𝑟𝑖

通过每个参与者都产生一个随机数并进行秘密共享,所有参与者共同协作产生了一个随机数r=i=1nri,但是每个参与者𝑃𝑖都不知道𝑟的具体值,都只掌握𝑟的一个子秘密𝑟𝑖

随机单比特分享(Joint Random Bit Sharing)#

本质上是秘密分享-乘法运算的应用

在学习了多方共同产生随机数后,可以利用此来实现多方的随机单比特分享,每个参与者拿到一个随机比特的Share,在重构之前每个参与者都不知道该随机比特的具体值。

  • 首先所有参与者利用上节所讲述的共享随机数生成方式共同生成一个随机数,将其记为𝑟,将参与者𝑃𝑖拿到𝑟的子秘密记为𝑟𝑖(保持与上节的符号统一),用[𝑟]表示𝑟处于被分享成子秘密的状态,[𝑟]𝑟1,,𝑟𝑛组成。

每个参与者只知道自己的子秘密ri

  • 之后通过第二次科普介绍的Shamir多方乘法,计算[𝑟2],参与者𝑃𝑖能够计算出𝑟2的一个子秘密,之后所有参与者分享自己计算出的𝑟2的子秘密,即公开[𝑟2]【即每个参与者都共享自己的子秘密】,每个参与者通过公开的[𝑟2]都可使用拉格朗日插值法重构出𝑟2【即每个参与者都可以计算出r2】,若重构出的则各方再重新生成随机数𝑟

每个参与者都能计算出r2

  • 参与者𝑃𝑖在计算出𝑟2后,计算𝑟=r2 ,由于这些操作都是在有限域𝐹𝑞内进行,因此0<𝑟<𝑞,此时能够计算出两个𝑟𝑟=𝑞𝑟𝑟=𝑟,则(𝑟)1的逆乘上𝑟有两种结果:(𝑟)1𝑟=𝑞1或者(𝑟)1𝑟=1
    • 因为𝑟(𝑟)1=1,当𝑟=𝑟时,(𝑟)1𝑟=𝑟1𝑟=1
    • 𝑟=𝑞𝑟时,(𝑟)1𝑟=(𝑟)1𝑟=(1)𝑟1𝑟=𝑞1
    • 所以参与者可以约定选取0<𝑟<q/2,那么所有参与者就可以计算出相同的𝑟,参与者𝑃𝑖设置𝑟1=(𝑟)1

在约定好范围后,每个参与者能够计算出𝑟=r2

  • 对于参与者𝑃𝑖来说,𝑃𝑖掌握𝑟的子秘密𝑟𝑖𝑃𝑖设置𝑎𝑖=21((𝑟1)𝑟𝑖+1)𝑎𝑖即为𝑃𝑖获得的随机比特𝑎的一个子秘密
    • 因为参与者𝑃𝑖只知道𝑟,对于𝑃𝑖来说𝑟依旧有两种可能,分别是±r2 ,因此𝑃𝑖无法确定𝑎i的值是0还是1,只有所有参与者对𝑟进行重构才能确定𝑟的值,从而计算出𝑎i
    • 𝑟是所有参与者共同产生的随机数,因此𝑎的值也是随机的,且在重构之前每个参与者都只掌握随机比特𝑎的一个子秘密ai,不知道𝑎的具体值。

利用秘密分享的乘法,构造更多计算

疑问:ri/r为什么会等于±1

比特比较#

比特或#

上次介绍了共享随机数和比特分享,通过共享随机数来实现比特分享,再通过比特分享来实现本次要介绍的比特串比较。

  • 在介绍比特比较之前先简单介绍一下比特或
    • 比特异或的实现方法较为简单,利用之前介绍过的𝐹2Shamir共享机制的加法就能实现
    • 比特或则无法直接通过Shamir共享机制的加法或者乘法实现。
图片

注意之前介绍过,在算数电路上实现乘法和加法即可实现任意函数,而在布尔电路上实现异或和或即可实现任意函数。安全多方计算就是为了在保护隐私信息下共同计算目标函数,如果把比特或通过使用加法和乘法的函数表示,那么即可通过加法和乘法实现或门的功能。

图片

上图有误:应该是异或和或可以实现任意函数

思考一下与的特点,当多个比特相或时,其中只要有一个比特的值为1,或的结果就是1,因此可以统计出现1的个数,只要超过0次,最后的值就为1。

可以设计出这样一个函数:若函数有个𝑙输入,分别为𝑥1,,𝑥𝑙,则让g=1+i=1lxi,让实现或的函数为𝑓(𝑥1,,𝑥𝑙)

f(g)={0,g=11,g>1

g=1+i=1lxi,是因为i=1lxi=0时会泄露信息

回忆一下,在Shamir秘密分享机制中,当秘密分享函数的输入为0时,得到0的就是秘密,因此需要避免输入为0。

g=1+i=1lxi,可以使得函数𝑓(𝑔)的定义域从[0,𝑙]变为[1,𝑙+1],从而避免出现输入𝑔为0的情况。𝑓(𝑔)的具体实现则可通过有𝑛个未知系数的方程,𝑛个方程解𝑛个未知数即可【插值法】,即𝑓(1)=0,𝑓(2)==𝑓(𝑙+1)=1

设计函数来模拟异或,使用秘密分享的加法和乘法可以计算函数。

g=1+i=1lxi𝑓(𝑔)映射到Shamir秘密共享机制上,加法和乘法对应Shamir中的加和乘,即可实现在共享比特上的异或计算

下面开始介绍比特比较

具体要介绍的比较为小于,即如果比特串𝑎<𝑏,则得到的结果为1,如果𝑎>𝑏,则得到的结果为0。

比特比较:{1,a<b0,a>=b

假设有两个𝑙比特长的比特串𝑎𝑏,分别为𝑎=𝑎0𝑎1𝑎𝑙1𝑏=𝑏0𝑏1𝑏𝑙1,首先将比特串𝑎𝑏按比特进行异或,得到比特串𝑐=𝑐0𝑐𝑙1,其中𝑐𝑖=𝑎𝑖𝑏𝑖,0𝑖𝑙1。再计算比特串𝑑=𝑑0𝑑𝑙1,其中,0𝑗𝑙1,即比特串𝑑的第𝑗位比特是比特串𝑐从高位起前𝑗位比特的或「左起为0」。

比如,比特串𝑎=100101 ,比特串𝑏=101011,比特串𝑐为比特串𝑎𝑏按位异或的结果,即比特串𝑐=001110

比特串d=d0...dl1,可以得到比特串𝑑=001111

d0=c0=0d1=c0c1=0d2=c0c1c2=1d3=c0c1c2c3=1d4=c0c1c2c3c4=1d5=c0c1c2c3c4c5=1

比特串𝑑的第𝑗位比特是比特串𝑐从高位起前𝑗位比特的或,可以观察到当比特串𝑐中某个比特是整个比特串中第一位为1的时候,比特串𝑑从那位起之后都为1。如例子中,𝑐2为比特串𝑐中第一个出现1的比特,则比特串𝑑𝑑2以及𝑑2之后都为1,之前都为0。

e0=d0=0e1=d0d1=0e2=d1d2=1e3=d2d3=0e4=d3d4=0e5=d4d5=0

再接着让𝑒𝑗=𝑑𝑗1𝑑𝑗,1𝑗𝑙1,𝑒0=𝑑0,因此可以得到比特串𝑒=001000,即比特串𝑒会保留比特串𝑑中第一位出现1的那位,其余位均为0。

最后,计算i=0lbiei即为最后的结果,在上面这个例子中结果为1,所以比特串𝑎<𝑏

它所使用的原理是,如果比特串𝑏>𝑎,那么比特串𝑏中第一位1出现的一定比比特串𝑎中的第一位1要早,否则比特串𝑏就小于等于比特串𝑎【例子中ab的第一位都是1,所以比较第二个1】

将比特串𝑎𝑏按位进行异或得到𝑐后,比特串𝑐中第一位1出现的位置就是比特串𝑎𝑏中最早的第一位1出现的位置。那么如果比特串𝑐中第一位1出现的位置和𝑏中最早的第一位1出现的位置相同【即第三位】,就说明𝑏>𝑎。而接下去做的步骤就是为了证明比特串𝑐中第一位1出现的位置和𝑏中最早的第一位1【其实是第三位】出现的位置是否相同。

在上面的例子中,用橘色表示1,蓝色表示0,则𝑎𝑏𝑐为:

图片

比特串𝑑是从𝑐第一位1出现起,之后都为1。比特串𝑒是除了𝑐第一位1出现的位置为1,其余位都为0,即成功将𝑐中第一位出现1的位置提取了出来。𝑑𝑒用图形表示为:

图片

现在比特串𝑒中1的位置即为𝑐中第一次出现1的位置,e𝑏进行按位与,如果𝑏第一次出现1的位置和𝑒中1的位置相同,那么该位按位与的结果就是1,其余位均为0,所有位相与结果之和就是1。反之,𝑏第一次出现1的位置和𝑒中1的位置不同,则为0。

将上述比较方式中的𝑎,𝑏的各个比特都采用比特分享的方式进行分享,后续的「异或」以及「或」操作都采用我们之前介绍过的对子秘密的「比特异或」和「比特或」操作,即可实现对𝑎,𝑏的多方比较,且不向任何参与者泄露𝑎,𝑏的具体值。

图片

执行两个数的比较,转换为函数,函数计算通过秘密分享的方式实现!

作者:Hang Shao

出处:https://www.cnblogs.com/pam-sh/p/17179097.html

版权:本作品采用「知识共享」许可协议进行许可。

声明:欢迎交流! 原文链接 ,如有问题,可邮件(mir_soh@163.com)咨询.

posted @   PamShao  阅读(300)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-03-04 C 命令行参数
2020-03-04 递归和迭代
2020-03-04 C 简答题
2020-03-04 面试问题汇总
2020-03-04 2018 C笔试题
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu