第十九个知识点:Shamir密钥交换场景
第十九个知识点:Shamir密钥交换场景
Shamir密钥交换场景是一个被Adi Shamir提出的算法.算法允许多方分割一个密码,例如一个密钥.当足够多的秘密结合起来,整个密钥就被计算出来了.
正式的说,如果我们有秘密\(S\)和\(n\)方,我们能把\(S\)划分成\(n\)方.然后把它们分发给不同的组织.通过这样发送的密钥有一个限定值\(k\),如果密钥\(S\)的\(k\)数量的部分被收集到,那么就可以计算出\(S\).如果\(k-1\)或者更少的密钥被收集,那么\(S\)将无法被计算.这个场景就叫做(\(k,n\))限定场景.
解释为什么场景能够被这样构造的最好方式就是通过一个例子.假设我们想要把分割秘密\(S = 1425\).分割成5部分(\(n = 5\)).同时需要3方才能允许密钥(\(S\))被计算出来.首先我们构造一个多项式\(f(x)\).它的阶为(\(k-1 = 2\)).系数是随机的.假如说是\(a_1 = 64, a_2 = 112\).和一个常数\(S\).
\]
从这个多项式中我们可以看到,我们可以构造5个点.这些点分发给不同的组织.
\]
如果我们假设我们知道5个点中的3个点.我们能够计算出这个多项式的系数.通过3个三元一次多项式.
就上面的例子来看,这个方法工作的很好.但是,窃听者也能够收集更多关于秘密的信息.因为上面我们已经工作在一个有理数的算数.然而,如果我们在有限域内工作(因此秘密和多项式是在q大小的域上定义的),那么如果任何两个或更少的参与方走到一起,他们对秘密一无所知。
这是因为这样的两方假如说组织一和组织二,然后密钥的值S来源于这个域.那么就有一个总有一个在这个多项式域中定义的值:(0,S'), (2,2001 mod q) and (3,2625 mod q).
[1] - http://en.wikipedia.org/wiki/Polynomial
[2] - http://en.wikipedia.org/wiki/Lagrange_polynomial
[3] - http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing
第十九个知识点:Shamir密钥交换场景的更多相关文章
- 第四十九个知识点:描述在IPsec和TLS后的基本想法
第四十九个知识点:描述在IPsec和TLS后的基本想法 网络安全协议(Internet Protocol Security,IPsec)和安全传输层协议(Transport Layer Securit ...
- 第二十九个知识点:什么是UF-CMA数字签名的定义?
第二十九个知识点:什么是UF-CMA数字签名的定义? 第16篇博客给出了DSA,Schnoor和RSA-FDH签名方案的细节,但是签名方案是什么?它应该保证什么样的安全性? 一个签名方案\(S\)是一 ...
- Bristol大学密码学博士生的五十二个知识点
Bristol大学密码学博士生的五十二个知识点 这个系列,是Bristol大学的密码安全工作组为密码学和信息安全相关的博士准备了52个基本知识点. 原地址:http://bristolcrypto.b ...
- NeHe OpenGL教程 第十九课:粒子系统
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?
spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的? 消息中间件在解决异步处理,模块间解耦和,和高流量场景的削峰,等情况下有着很广泛的应用 . 本文将跟大家一起 ...
- JAVA之旅(二十九)——文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习
JAVA之旅(二十九)--文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习 我们继续学习File 一.文件递归 我们可以来实现 ...
- Android进阶(十九)AndroidAPP开发问题汇总(三)
Android进阶(十九)AndroidAPP开发问题汇总(三) Java解析XML的几种方式: http://inotgaoshou.iteye.com/blog/1012188 从线程返回数据的两 ...
- 解释器模式 Interpreter 行为型 设计模式(十九)
解释器模式(Interpreter) 考虑上图中计算器的例子 设计可以用于计算加减运算(简单起见,省略乘除),你会怎么做? 你可能会定义一个工具类,工具类中有N多静态方法 比如定义了两个 ...
- (C/C++学习笔记) 十九. 模板
十九. 模板 ● 模板的基本概念 模板(template) 函数模板:可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计. 语法: template <<模 ...
随机推荐
- A Child's History of England.9
But, first, as it was important to know how numerous those pestilent Danes were, and how they were f ...
- 2021广东工业大学新生赛决赛 L-歪脖子树下的灯
题目:L-歪脖子树下的灯_2021年广东工业大学第11届腾讯杯新生程序设计竞赛(同步赛) (nowcoder.com) 比赛的时候没往dp这方面想(因为之前初赛和月赛数学题太多了啊),因此只往组合数学 ...
- deque、queue和stack深度探索(上)
deque是可双端扩展的双端队列,蓝色部分就是它的迭代器类,拥有四个指针,第一个cur用来指向当前元素,first指向当前buffer头部,last指向当前buffer尾部,node指向map自己当前 ...
- 容器之分类与各种测试(三)——slist的用法
slist和forward_list的不同之处在于其所在的库 使用slist需要包含 #include<ext\list> 而使用forward_list则需要包含 #include< ...
- GO Exit Fatal panic
Exit() 应用程序(不只是函数)退出执行 defer 不会被执行(因为程序都退出了) log.Fatal() 输出打印内容 应用程序退出 defer 不会被执行 panic() 函数停止执行(不是 ...
- Linux学习 - 文本编辑器Vim
一.Vim工作模式 二.命令 插入 a 光标后插入 A 光标所在行尾插入 i 光标前插入 I 光标所在行首插入 o 光标下插入新行 O 光标上插入新行 删除 x 删除光标处字符 nx 删除光标处后 ...
- Xcode功能快捷键
隐藏xcode command+h退出xcode command+q关闭窗口 command+w关闭所有窗口 command+option+w关闭当前项目 command+control+w关闭当前文 ...
- oracle keep
语法: min | max(column1) keep (dense_rank first | last order by column2) over (partion by column3); -- ...
- ligerUI 关闭父弹窗JS报错问题 解决方法
1:调用父窗口某一个文件框,获取焦点, parent.window.document.getElementById("roleName").focus(); 2:关闭父窗口pare ...
- ES6常用的数值转换方法
<script type="text/javascript"> // Number常用方法 /* Number.isFinite() 用来检查一个数值是否为有限的(fi ...