shamir门限方案阅读与密码学课程感想

        这里重点谈一下对Adi Shamir的关于阈值密钥分 享方案的论文《How to Share a Secret 》的理解,以及这两周密码学课堂的学习感想。

        想要看懂一篇论文,首先要知道它是为了解决什么问题,然后看它为了解决这个问题采用了什么样 的方法,最后再总结这个方法的效果。Adi Shamir的这篇论文是为了解决多方计算的数据隐私问题,提 出了一种基于拉格朗日插值多项式的门限方案,从而实现了安全计算。下面具体进行解释。

       

        一个比较直观的方法就是基于噪音的安全计算方法,通过对计算过程添加噪音进行干扰,让原始数 据淹没在噪音中,使攻击者或黑客无法从得到的结果反推原始数据,噪音可以在数据源、模型参数或输 出中添加。这种方法的优点是效率高,只需添加某些服从特定分布的随机数即可,但也有明显的缺点, 最后得到的结果不够准确,在复杂的计算任务中可能无法使用。

        另一个方案就是通过密码学方法将数据编码或加密,得到加密的数字后进行通信,加密的方法主要 有混淆电路(Garbled Circuit)、密钥分享(Secret Sharing)和同态加密(Homomorphic Encryption)这三种。混淆电路方法通过设置电门来实现数据加密+打乱的过程,当在执行复杂的计算任 务时门的设计也会越来越复杂,同态加密是后来提出来的,本论文主要介绍了密钥分享的实现机制。

        密钥分享的基本思路是将秘密 S 进行特定运算,拆分成 w 个秘密碎片 Si (0 < i <= w),并将这些秘 密碎片 Si 分发到 w 个参与方中保存,每个参与方拿到的都是原始秘密数据的一部分,一个或少数几个 参与方无法还原出原始秘密,只有当至少 k 个参与方同时拿出自己所拥有的秘密碎片 Si 时,才能还原出 最初的秘密 S。形式化描述为:将原始数据D分为n份,任意k份可以重组成D,任意小于等于k-1份的数 据碎片不会泄露任何关于D的信息。这种技术不仅能对数据进行加密,还能为密码系统构建鲁棒的密钥 管理机制,即使数据被破坏的只剩一部分也仍能安全可靠的运行。

        论文首先探讨了这样的问题:11个科学家从事一个秘密项目,他们希望把文档所在一个箱子里,箱 子只有在6个或更多科学家在场时才能打开。最少需要多少锁?每个科学家最少需要保管几把钥匙?不难 证明最小的解决方案是使用462把锁和每人252个钥匙。这个数目显然是不实用的,当科学家人数增加时 会呈指数级增加。

        文章接着提出了一种简化的解决方案:(k, n)门限机制。将上述问题归纳为:秘密为某个数据D,将 D分成n份D1,D2,...Dn,满足:(1)任意k或多余k份Di可以很容易地计算出D;

(2)任意k-1或少于k-1份 Di信息不能准确计算出D(所有可能的值相同)。

        门限机制适合这样的应用:一组有矛盾的、相互怀疑的个体必须合作。理想情况下,我们希望合作 是基于多方同意的,但是这种机制会赋予每个成员投票权,这可能导致组织的活动陷于瘫痪。 通过适当 选择参数K和n,我们可以给予任何足够多的多数人采取一些行动的权力,同时阻止那些数量不足的少数 方的权力。

这种(k,n)门限机制的优点是:

(1)每部分信息的大小不会超过原始数据; (2)当k固定时,Di可以动态地增删而不影响其他信息片(pieces);

(3)可以在不改变原始数据D的情况下容易的改变Di,我们需要的只是一个新的有相同自由项的多项式 q(x)。这种类型的频繁变化可以提高安全性,这样由安全漏洞暴露的pieces就不回累积,除非它们都是 同一个版本的q(x)多项式的值;

(4)通过使用多项式值数组作为Di,我们可以得到一个分层机制,决定D所需的pieces数量依赖于它们 的重要性;

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

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

相关文章

前端学习(2002)vue之电商管理系统电商系统之绘制商品分类的级联选择器

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

jdbc建立数据库连接的helloword

package com.guoguo.db; import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException; import com.mysql.jdbc.Connection;import com.mysql.jdbc.Statement; public class DBUtil { //数据库连接地址 private static final String URL "jdb…

前端学习(2003)vue之电商管理系统电商系统之之允许三级选择

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

搭建hexo博客并部署到github上

hexo是由Node.js驱动的一款快速、简单且功能强大的博客框架&#xff0c;支持多线程&#xff0c;数百篇文章只需几秒即可生成。支持markdown编写文章&#xff0c;可以方便的生成静态网页托管在github上。 感觉不错。 前端人员都在用github分享自己的代码。所以想着用hexo部署到g…

前端学习(2004)vue之电商管理系统电商系统之阻止页签切换

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

前端学习(2005)vue之电商管理系统电商系统之获取动态参数列表

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

Mysql存储结构B树与B+树与索引

首先要说明的是&#xff0c;B-树和B树是指同一个结构&#xff0c;并没有所谓的B减树&#xff0c;两种树是B-树和B树。 Mysql存储结构是一个B树。 1.存储结构与索引 众所周知&#xff0c;索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构&#xff0c;它是一种…

前端学习(2006)vue之电商管理系统电商系统之绘制商品参数的复选框

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

酒厂选址(codevs 1507)

题目描述 Description Abstinence&#xff08;戒酒&#xff09;岛的居民们酷爱一种无酒精啤酒。以前这种啤酒都是从波兰进口&#xff0c;但今年居民们想建一个自己的啤酒厂。岛上所有的城市都坐落在海边&#xff0c;并且由一条沿海岸线的环岛高速路连接。酒厂的投资者收集了关于…

前端学习(2007)vue之电商管理系统电商系统之优化复选框的样式

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

MapReduce改造fp-growth算法

1. FP-Growth算法弊端 FP-Growth算法是挖掘频繁项集最常用的算法之一&#xff0c;其是基于迭代FP-Tree生成频繁项集的关联规则算法。此算法仅进行两次数据集扫描&#xff0c;递归迭代构建FP-Tree(FP条件树)&#xff0c;当FP-Tree中只有一个单分支时&#xff0c;递归迭代构建结…

《一线架构师实践指南》—— 读后总结

之前总觉得架构是一件很高大上的工作&#xff0c;跟普通的编码设计不太一样。前一段实践&#xff0c;自己也尝试做过架构的工作&#xff0c;可惜经验不足导致架构非常混乱。这里读完这本书&#xff0c;大体上对架构的工作有所了解&#xff0c;也稍微摸清了些门道。 我理解的架构…

随机排列实现 -shuffle算法

随机排列实现 -shuffle算法 洗牌算法&#xff08;shuffle&#xff09;&#xff1a;原理是&#xff0c;一个数A&#xff0c;随机选一个在这个数A之前的下标&#xff0c;将这个下标对应数字与A对换&#xff1b;之后不再考虑最后的这一个数&#xff1b; 类似于无放回的抽签问题&…

前端学习(2008)vue之电商管理系统电商系统之获取静态属性列表

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

转载_递归树求递归算法的时间复杂度

递归算法时间复杂度的计算方程式一个递归方程&#xff1a; 在引入递归树之前可以考虑一个例子&#xff1a; T(n) 2T(n/2) n2 迭代2次可以得&#xff1a; T(n) n2 2(2T(n/4) (n/2) 2) 还可以继续迭代&#xff0c;将其完全展开可得&#xff1a; T(n) n2 2((n/2) 2 2((n/2…

前端学习(2011)vue之电商管理系统电商系统之初步使用upload上传组件

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

为什么使用Deque而不使用Stack构造栈

为什么使用Deque而不使用Stack构造栈 Class Stack<E> java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.Vector<E> java.util.Stack<E> 实现的所有接口 Serializable &#xff0c; Cloneable &#xff…

前端学习(2012)vue之电商管理系统电商系统之手动为upload组件添加请求头

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

计算器、中文转数字

计算器 1.字符串转整数 string s "458";int n 0; for (int i 0; i < s.size(); i) {char c s[i];n 10 * n (c - 0); } // n 现在就等于 458 2.处理加减法 我们拿字符串算式1-123为例&#xff0c;来说一个很简单的思路&#xff1a; 1、先给第一个数字加…

前端学习(2009)vue之电商管理系统电商系统之渲染商品属性的结构

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…