隐私计算 2.4 Brickell秘密共享方案

1 简介

  • 作者:Brickell;
  • 时间:1989年;
  • 理念:Shamir秘密共享方案的推广,由一维方程转向多维向量。

2 具体实现

I 秘密分割算法

  • (1)首先确定可以掌握钥匙的人数nnn,以及模数ppp。例如n=4,p=127n = 4, p = 127n=4,p=127

  • (2)确定dddviv_ivi,其中viv_ividdd维向量,viv_ivi将在第(4)步构建;

  • (3)确定分配规则,例如{(v1,v2,v3),(v1,v4)}\{(v_1, v_2, v_3), (v_1, v_4)\}{(v1,v2,v3),(v1,v4)},表示第1,2,3个人可以解密,第1,4个人也可以解密,称为一组规则中的向量;

  • (4)确定nnn个向量,并保证一组钥匙可以线性表示为(1,0,0,…)(1,0,0,\dots)(1,0,0,),这些向量所有参与者都知道,例如:
    v1=(0,1,0)v2=(1,0,1)v3=(0,1,−1)v4=(1,1,0)\begin{array}{l} v_1 = (0, 1, 0) \\ v_2 = (1, 0, 1) \\ v_3 = (0, 1, -1) \\ v_4 = (1, 1, 0) \\ \end{array} v1=(0,1,0)v2=(1,0,1)v3=(0,1,1)v4=(1,1,0)

  • (5)利用上面规则中的向量组来构成:
    (1,0,0)=v2+v3−v1(1,0,0)=v4−v1\begin{array}{l} (1, 0, 0) = v_2 + v_3 - v_1 \\ (1, 0, 0) = v_4 - v_1 \\ \end{array} (1,0,0)=v2+v3v1(1,0,0)=v4v1
    而要用(v2,v3,v4)(v_2, v_3, v_4)(v2,v3,v4)或其它不在规则里面的向量组构成(1,0,0,…)(1,0,0,\dots)(1,0,0,)则是无解的。

  • (6)给定消息SSS,生成d−1d - 1d1个小于ppp的随机数,例如:a2=55a_2 = 55a2=55a3=38a_3 = 38a3=38,同时a1=S=99a_1 = S = 99a1=S=99

  • (7)计算Si=a⋅viS_i = \mathbf{a} \cdot \mathbf{v_i}Si=avi, 其中a=(a1,…,ad)\mathbf{a} = (a_1, \dots, a_d)a=(a1,,ad),例如:
    S1=(99,55,38)⋅(0,1,0)modp=55S2=(99,55,38)⋅(1,0,1)modp=10S3=(99,55,38)⋅(0,1,−1)modp=17S4=(99,55,38)⋅(1,1,0)modp=27\begin{array}{l} S_1 = (99, 55, 38) \cdot (0, 1, 0) \bmod p = 55\\ S_2 = (99, 55, 38) \cdot (1, 0, 1) \bmod p = 10\\ S_3 = (99, 55, 38) \cdot (0, 1, -1) \bmod p = 17\\ S_4 = (99, 55, 38) \cdot (1, 1, 0) \bmod p = 27\\ \end{array} S1=(99,55,38)(0,1,0)modp=55S2=(99,55,38)(1,0,1)modp=10S3=(99,55,38)(0,1,1)modp=17S4=(99,55,38)(1,1,0)modp=27

  • (8)将(Si,i)(S_i, i)(Si,i)作为钥匙分发给第iii个参与者。

II 秘密重构算法

  • (1)收集任意满足规则的钥匙,比如第1,2,3个参与者的钥匙;
  • (2)构造(1,0,0,…)(1, 0, 0, \dots)(1,0,0,),并计算出参数。例如:
    (1,0,0)=−v1+v2+v3(1, 0, 0) = -v_1 + v_2 + v_3(1,0,0)=v1+v2+v3
    参数分别为c1=−1,c2=1,c3=1c_1 = -1, c_2 = 1, c_3 = 1c1=1,c2=1,c3=1
  • (3)将参数代入c1v1+c2v2+…modp=Sc_1v_1 + c_2v_2 + \dots \bmod p = Sc1v1+c2v2+modp=S,例如:
    (−1∗55+1∗10+1∗17)mod127=99(-1 * 55 + 1 * 10 + 1 * 17) \bmod 127 = 99(155+110+117)mod127=99

3 实例

设秘密S=99S = 99S=99n=4n = 4n=4, 向量维度d=3d=3d=3, 模数p=127p = 127p=127
I 秘密分割

  • (1)确定解密规则{(v1,v2,v3),(v1,v4)}\{(v_1, v_2, v_3), (v_1, v_4)\}{(v1,v2,v3),(v1,v4)}viv_ivi表示第iiiddd维向量,该解密规则表示第1,2,3个人或第1,4个人分别可以合作恢复出秘密;

  • (2)确定所有人共享的n=4n = 4n=4向量{v1,…,v4}\{v_1, \dots, v_4\}{v1,,v4},要求解密规则里的任意一组向量可以线性构成(1,0,0)(1, 0, 0)(1,0,0),而不在解密规则里的组合无法构成。例如:v1=(0,1,0)v_1 = (0, 1, 0)v1=(0,1,0)v2=(1,0,1)v_2 = (1, 0, 1)v2=(1,0,1)v3=(0,1,−1)v_3 = (0, 1, -1)v3=(0,1,1)v4=(1,1,0)v_4 = (1, 1, 0)v4=(1,1,0),利用这些向量构造如下:
    (1,0,0)=v2+v3−v1(1,0,0)=v4−v1\begin{array}{l} (1, 0, 0) = v_2 + v_3 - v_1 \\ (1, 0, 0) = v_4 - v_1 \\ \end{array} (1,0,0)=v2+v3v1(1,0,0)=v4v1

  • (3)生成d−1d - 1d1个小于ppp的随机数,a2=55a_2 = 55a2=55a3=38a_3 = 38a3=38,同时a1=S=99a_1 = S = 99a1=S=99

  • (4)分别计算Si=a⋅viS_i = \mathbf{a} \cdot \mathbf{v_i}Si=avi, 其中a=(a1,a2,a3)\mathbf{a} = (a_1, a_2, a_3)a=(a1,a2,a3)
    S1=(99,55,38)⋅(0,1,0)modp=55S2=(99,55,38)⋅(1,0,1)modp=10S3=(99,55,38)⋅(0,1,−1)modp=17S4=(99,55,38)⋅(1,1,0)modp=27\begin{array}{l} S_1 = (99, 55, 38) \cdot (0, 1, 0) \bmod p = 55\\ S_2 = (99, 55, 38) \cdot (1, 0, 1) \bmod p = 10\\ S_3 = (99, 55, 38) \cdot (0, 1, -1) \bmod p = 17\\ S_4 = (99, 55, 38) \cdot (1, 1, 0) \bmod p = 27\\ \end{array} S1=(99,55,38)(0,1,0)modp=55S2=(99,55,38)(1,0,1)modp=10S3=(99,55,38)(0,1,1)modp=17S4=(99,55,38)(1,1,0)modp=27

  • (5)将(Si,i)(S_i, i)(Si,i)作为钥匙分发给第iii个参与者。

II 秘密重构

(1)收集任意满足解密规则的钥匙,例如第1,2,3个人的S1=55,S2=10,S3=17S_1 = 55, S_2 = 10, S_3 = 17S1=55,S2=10,S3=17

(2)使用第1,2,3个向量构造(1,0,0)(1, 0, 0)(1,0,0)
c1v1+c2v2+c3v3=(1,0,0)\begin{array}{l} c_1v_1 + c_2v_2 + c_3v_3 = (1, 0, 0) \\ \end{array} c1v1+c2v2+c3v3=(1,0,0)
其参数分别为c1=−1,c2=1,c3=1c_1 = -1, c_2 = 1, c_3 = 1c1=1,c2=1,c3=1

  • (3)将参数带入c1S1+c2S2+c3S3=Sc_1S_1 + c_2S_2 + c_3S_3 = Sc1S1+c2S2+c3S3=S
    (−1∗55+1∗10+1∗17)mod127=99\begin{array}{l} (-1 * 55 + 1 * 10 + 1 * 17) \bmod 127= 99 \\ \end{array} (155+110+117)mod127=99

2.2.4 代码

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

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

相关文章

fabric shim安装合约_智能合约简介_智能合约开发_Hyperledger Fabric_开发指南_区块链服务 BaaS - 阿里云...

概述在 Hyperledger Fabric 中,链码(Chaincode)又称为智能合约(下文中我们统一称为链码),是用Go,node.js或Java编写的程序,主要用于操作账本上的数据。用户的应用程序通过链码与 Fabric 账本数据进行交互,交互关系如下…

子集和问题 算法_LeetCode刷题实战90:子集 II

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !今天和大家…

隐私计算 2.5 Blakley秘密共享方案

1 简介 作者:Blakley;时间:1979年;理念:基于高斯消元法。 2 具体实现 I 秘密分割算法 II 秘密重构算法 3 实例 设秘密S(3,10,5)S (3, 10, 5)S(3,10,5),n5n 5n5, t3t 3t3。 I 秘密分割 &#xff0…

webconfig的解决方案怎么添加_解决在Web.config或App.config中添加自定义配置的方法详解...

解决在Web.config或App.config中添加自定义配置的方法详解本篇文章是对在Web.config或App.config中添加自定义配置的方法进行了详细的分析介绍,需要的朋友参考下.Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持…

conda如何升级pytorch_Google Cloud TPUs 支持 Pytorch 框架啦!

在2019年PyTorch开发者大会上,Facebook,Google和Salesforce Research联合宣布启动PyTorch-TPU项目。项目的目标是在保持PyTorch的灵活性的同时让社区尽可能容易地利用云TPU提供的高性能计算。团队创建了PyTorch/XLA这个repo,它可以让使PyTorc…

隐私计算 2.6 秘密共享的同态特性

1 秘密共享的同态性 秘密共享的同态性:秘密份额的组合等价于组合的秘密共享份额。 假设A、B两方分别有秘密SAS^ASA和SBS^BSB;他们的值被随机拆分为S1A,…,SnAS_1^A, \dots, S_n^AS1A​,…,SnA​和S1B,…,SnBS_1^B, \dots, S_n^BS1B​,…,SnB​&#xff…

chromiumwebbrowser 使用_用Tchromium替换webbrowser

用惯了EmbeddedWB,不想换,但是IE内核一直存在内存泄漏问题,没办法,只有寻找替代品了。要把用习惯的EmbeddedWB换成完全不一样的TChromium,有点挑战,特别是在资料不多,英语没过三级的情况下。未来趋势是这样…

python是在linux系统下运行的吗_Linux系统下python代码运行shell命令的方法

方法一:os.popen #!/usr/bin/python#-*- coding: UTF-8 -*- importos, sys#使用 mkdir 命令 a lsb os.popen(a,w,1)print b 方法二:os.system #!/usr/bin/python#-*- coding: UTF-8 -*- importos, sys arg0"121.429015"arg1"31.245255&q…

隐私计算 2.7 Shamir门限秘密共享的加法同态性

1 Shamir门限秘密共享的加法同态性 Shamir门限秘密共享方案具有(,)(, )(,)同态的性质,即: SASBFI(S1A,…,StA)FI(S1B,…,StB)FI(S1AS1B,…,StAStB)\begin{array}{l} S^A S^B && F_I(S_1^A, \dots, S_t^A) F_I(S_1^B, \dots, S_t^B)\\ &&a…

pageable设置size_分页工具一Pageable与Page

import org.springframework.data.domain.Pageable;import org.springframework.data.domain.Page;1.Pageable概述Page findByAge(int age, Pageable pageable);Pageable 是Spring Data库中定义的一个接口,用于构造翻页查询,是所有分页相关信息的一个抽象…

二阶龙格库塔公式推导_带你走进最美数学公式

同学们,我们先来跟老师欣赏一下数学中最优美的式子吧?是什么魔力让以上几个似乎毫不相干的数学中最特殊的数字能如此优美的写在同一个式子呢?是欧拉,是数学。0和1——老师就不用介绍啦,e是自然常数(natural constant)&…

python如何做辅助线_角平分线如何做辅助线,学霸总结了4种模型,轻松应付中考...

角平分线2大辅助线思路4种基本模型对称形思路包括3种基本模型,思想都是为了构造全等三角形,然后转换图像中的角度和线段关系。平行线思路则是为了构造一个等腰三角形,通常是为了转移线段关系。双角平分线夹角公式记住这个结论,在选…

隐私计算 2.8 Shamir门限秘密共享的乘法同态性

1 Shamir门限秘密共享的乘法同态性 Shamir门限秘密共享方案具有(,)(\times, \times)(,)同态的性质,即: SASBFI(S1A,…,StA)FI(S1B,…,StB)FI(S1A⊗S1B,…,StA⊗StB)\begin{array}{l} S^A \times S^B && F_I(S_1^A, \dots, S_t^A) \times F_I(S_…

备份数据库的expdp语句_【ORACLE语句备份】数据库表同步 ——定时任务管理器(EXPDP导出,IMPDP导入)...

1、C:\Users\Administrator>sqlplus sys/xxxxxx as sysdba;2、SQL> create directory dbbak4 as e:\app\temp4;3、SQL> grant read,write on directory dbbak4 to xxx;--xxx:源数据库用户名4、SQL> exit;5、备注:还需手动创建目录,否则报错C…

python的setting怎么找_django项目的配置文件settings.py详解

1.2.1 ABSOLUTE_URL_OVERRIDES:默认值:{} 一个字典映射“app_label_module_name”字符串到一个函数,该函数接收一个Model对象作为参数并返回它的url,这是一个安装上覆盖get_absolute_url()方法的方式 1.2.2 ADMIN_FOR:默认值&…

隐私计算 2.9 秘密共享应用于横向联邦学习

1 简介 1.1 横向联邦学习 横向联邦学习也称为按样本划分的联邦学习,主要应用于各个参与方的数据集有相同的特征空间和不同的样本空间的场景,例如两个地区的城市商业银行可能在各自的地区拥有非常不同的客户群体,所以他们的客户交集非常小&a…

array js 二分法_JS常见的算法

虽说我们很多时候前端很少有机会接触到算法。大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面。实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的。如果将来当我们面对较为复杂的问题,这些基础知识的积累…

python缩进说法_【多选题】关于Python程序中与“缩进”有关的说法中,以下选项中错误的是()。...

问题:【多选题】关于Python程序中与“缩进”有关的说法中,以下选项中错误的是()。更多相关问题 因方某将赵某打伤,方某住所地的市劳动教养委员会对方某作出劳动教养2年的决定,并将方某送交劳动 根据行政诉讼…

智能测井解释

1 智能测井解释的需求分析 1、岩性识别 2、储层划分 3、参数计算 4、流体判别 5、井数据批量处理 岩性识别:分类任务 曲线预测、曲线补齐:回归任务 2 岩性识别 2.1 岩性识别主要方法简介 目前岩性识别的方法主要有重磁、测井、地震、遥感、电 磁、地…

wpf 点击按钮弹出选择框_关于WPF的弹出窗口

几个重要的概念需要清楚:Show和ShowDialog区别1、调用Show方法后弹出子窗口后,线程会继续往下执行。调用ShowDialog方法弹出子窗口后,线程会阻塞,直到子窗口关闭才继续往下执行。2、ShowDialog弹出的子窗口会使父窗口不能获得焦点…