秘密共享 - 加法乘法运算

之前讲过Shamir秘密共享,目标是通过若干秘密分片恢复出原始秘密信息。本文介绍如何在不恢复秘密的前提下,计算多个秘密信息的加法和乘法。

本文只考虑两个参与方P1和P2的场景,涉及秘密x和y,介绍如何秘密计算x+y和x*y。

加法运算

加法场景比较简单,P1持有(x1, y1),P2持有(x2, y2),其中秘密x=x1+x2,秘密y=y1+y2

1)P1方本地计算z1=x1+y1

2)P2方本地计算z2=x2+y2

3)P1和P2交换z1和z2,很容易得到:x+y=z1+z2

三元组

乘法用到了Beaver三元组,先介绍三元组(a,b,c),其中c=a*b。 这里的a,b,c和秘密x,y不是一回事。我们要借助a,b,c计算x*y。

首先,P1 持有(a1, b1),P2 持有(a2, b2),取值没有任何关系限制

需要计算 c1和c2,满足c1+c2 = (a1+a2)*(b1+b2),令a=a1+a2, b=b1+b2, c=c1+c2,即c=a*b

展开式子:(a1+a2)*(b1+b2) = a1*b1+ a1*b2 + a2*b1 + a2*b2

其中, a1*b1由P1掌握,a2*b2 由P2掌握。借助加法同态加密算法,来计算c1和c2

1)P1生成同态公私钥对(sk, pk)
2)P1计算同态密文enc_a=Enc_pk(a1) 和 enc_b=Enc_pk(b1),并将enc_a, enc_b和同态公钥pk发送给P2
3)P2生成随机数r,并计算同态密文 enc = Enc_pk(a1*b2 + a2*b1 + r),将enc发送给P1
4)P1计算同态解密结果,得到a1*b2 + a2*b1 + r
5)令 c1=a1*b1 + a1*b2 + a2*b1 + r, c2=a2*b2 - r

很容易验证 c1+c2 = (a1+a2)*(b1+b2),即c=a*b

乘法运算

1)P1方本地计算e1=x1-a1,f1=y1-b1;P2方本地计算e2=x2-a2,f2=y2-b2
2)P1和P2交换e1, f1和e2, f2,并计算e=e1+e2=x-a, f=f1+f2=y-b
3)P1方本地计算z1=f*a1+e*b1+c1,P2方本地计算z2=f*a2+e*b2+c2+ef
4)P1和P2交换z1, z2,很容易计算得到z1+z2=x*y

验证:z1+z2
= (f*a1+e*b1+c1) + (f*a2+e*b2+c2+ef)
= f*a+e*b+c+e*f
= (y-b)*a+(x-a)*b+a*b+(x-a)*(y-b)
= ay-ab+xb-ab+ab+xy-xb-ay+ab
= x*y

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

团体标准审查结果一般会有哪几种情况?

1. 通过: • 标准质量高:标准的内容符合国家法律法规和相关标准的要求,技术指标科学、合理、先进,具有较强的适用性和可操作性 • 材料完整规范:送审材料齐全,标准的格式、文本编写等符合规定,为…

深入拆解TomcatJetty——Tomcat生命周期与多层容器

深入拆解Tomcat&Jetty(三) 专栏地址:https://time.geekbang.org/column/intro/100027701 1 Tomcat组件生命周期 Tomcat如何如何实现一键式启停 Tomcat 架构图和请求处理流程如图所示: 对组件之间的关系进行分析,…

deploylinux的ubuntu系统无法成功安装使用MySQL❓

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&am…

如何编辑加密的PDF文件?

PDF文件打开之后,发现编辑功能都是灰色的,无法使用,无法编辑PDF文件,遇到这种情况,是因为PDF文件设置了限制编辑导致的。一般情况下,我们只需要输入PDF密码,将限制编辑取消就可以正常编辑文件了…

由于导出的数据名字中带有/,导致Matlab打不开,怎么办?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&am…

Spring Boot集成PageHelper分页插件详解---补充

这里写目录标题 内容补充 内容 ⭐最新版!SpringBoot正确集成PageHelper姿势,不再被误导! Spring Boot集成PageHelper分页插件详解 原本看了这两篇文章,觉得写的其实挺好的。但是发现两篇文章里面,对于方法的使用,都…

昆虫种类识别数据集昆虫物种分类数据集YOLO格式VOC格式 目标检测 机器视觉数据集

一、数据集概述 数据集名称:10类昆虫图像数据集 数据集包含了多种农作物中常见的昆虫种类,包括军虫、豆蓟象、红蜘蛛、水稻瘿蚊、水稻卷叶蛾、水稻叶蝉、水稻水蚤、小麦薄翅薄翅蔗蝇、白背飞虱和黄稻螟。 1.1可能应用的领域 农业害虫监测与防控&#x…

C++,STL 044(24.10.24)

内容 1.set容器的构造函数。 2.set容器的赋值操作。 运行代码 #include <iostream> #include <set>using namespace std;void printSet(set<int> &s) {for (set<int>::iterator it s.begin(); it ! s.end(); it){cout << *it << &…

好书推荐|《Python最优化算法实战》

简介 本书以理论结合编程开发为原则&#xff0c;使用Python作为开发语言&#xff0c;讲解优化算法的原理和应用&#xff0c;详细介绍了Python基础、Gurobi 优化器、线性规划、整数规划、多目标优化、动态规划、图与网络分析、智能优化算法。对于算法部分的每一种算法都包含原理…

算法设计与分析——动态规划

1.动态规划基础 1.1动态规划的基本思想 动态规划建立在最优原则的基础上&#xff0c;在每一步决策上列出可能的局部解&#xff0c;按某些条件舍弃不能得到最优解的局部解&#xff0c;通过逐层筛选减少计算量。每一步都经过筛选&#xff0c;以每一步的最优性来保证全局的最优性…

NavMesh只制作可移动的导航网,清除多余不可走区域

只制作可移动的导航网。它使存储文件大小减小并提高性能。它消除了迁移到随机区域的问题。添加链接描述 1.如何使用 2.创建一个包含“NavMeshCleaner”组件的对象。Andadd指向可定制区域。 按住控制键并单击添加点。如果要移动它&#xff0c;请按 输入上的control键并单击。您…

flashback database 闪回数据库

1.修改闪回区大小&#xff0c;路径&#xff0c;保留时间 SQL> show parameter db_recovery_file_dest SQL> show parameter db_flashback_retention_targetSQL> alter system set db_recovery_file_dest_size20G scopeboth;System altered.SQL> alter system set …

ffmpeg视频滤镜: 裁剪-crop

滤镜简述 crop官网链接 > FFmpeg Filters Documentation crop滤镜可以对视频进行裁剪&#xff0c;并且这个滤镜可以接受一些变量比如时间和帧数&#xff0c;这样我们实现动态裁剪&#xff0c;从而实现一些特效。 滤镜使用 参数 out_w <string> ..…

云电脑使用教程标准版

云电脑&#xff0c;也称为云桌面&#xff0c;是一种通过互联网连接远程服务器&#xff0c;使用虚拟桌面环境来执行计算任务的技术。川翔云电脑通过创建软件镜像&#xff0c;让用户能够快速启动并使用预配置的软件和资料&#xff0c;提供高效且经济的云服务。相较于公有云服务&a…

83.【C语言】数据结构之顺序表的尾部插入和删除

目录 3.操作顺序表 2."伪"插入顺序表的元素 分析尾部插入函数SLPushBack 代码示例 SeqList.h main.c free(指针)出错的几种可能的原因 3."伪"删除顺序表元素 2.分析尾部删除函数SLPopBack 代码示例 错误检查 两种解决办法 1.判断size是否为负…

【Linux系统】页表的存在位 与 OS的按需加载策略

一、引入 加载程序会将程序代码全部从磁盘中加载进内存吗&#xff1f; 为什么你的电脑的运存只有16GB&#xff0c;但你可以运行上百GB的游戏&#xff0c;如黑神话马喽&#xff1f; 这就涉及到 操作系统的按需加载策略 二、页表的存在位 页表的一个标志位&#xff1a;存在位 …

webpack 老项目升级记录:从 node-sass 限制的的 node v8 提升至支持 ^node v22

老项目简介 技术框架 vue 2.5.17webpack 4.16.5"webpack-cli": "3.1.0""node-sass": "^4.7.2" 几个阶段 第一步&#xff1a;vue2 升级到最新 第一步&#xff1a;升级 vue2 至最新版本&#xff0c;截止到目前&#xff08;2024-10-…

【vim】手动安装 Leader-F

LeaderF 是一个功能强大的 Vim 插件&#xff0c;主要用于快速导航和搜索。它可以帮助用户在 Vim 中高效地查找文件、缓冲区、标签、函数等各种元素&#xff0c;极大地提高了编辑效率。 LeaderF 的安装如果按照仓库中的教程来的话可以很方便的实现安装&#xff0c;这里介绍一下…

面试官:常见的网络攻击手段有哪些?解决方案了解吗?零基础入门到精通,收藏这一篇就够了

引言&#xff1a;由于互联网和信息技术的高速发展&#xff0c;网络安全变得尤为重要&#xff0c;如果不熟悉常见的网络攻击手段&#xff0c;就会造成数据泄漏、信息安全问题、乃至国家安全问题&#xff0c;本文就来介绍下常见的网络攻击手段和一些防范措施。 题目 面试官&…

深入理解值类型和引用类型的存储

目录 内存 存储 1&#xff09;栈区 2&#xff09;堆区 C#的编译过程 1&#xff09;源代码 2&#xff09;公共语言规范(Common Language Specification&#xff0c;CLS) 编译 3&#xff09;通用中间语言(Microsoft Intermediate Language&#xff0c;CIL或MSIL) 4&…