1基本的安全协议2秘密分割设想你已发明了一种新的调味料,你只能告诉最信赖的雇员各种成分准确的调合,但如果他们中的一个背叛到对手方时怎么办呢?这种情况就要求秘密分割。(1)Trent产生一随机比特串R。(2)Trent用R异或M得到S:M⊕R=S(3)Trent把R给Alice,将S给Bob。(4)重构消息:Alice和Bob将他们的消息异或就可得到此消息R⊕S=M.如何在多个人中分割一消息?秘密分割的缺点是什么?33秘密共享是一种将秘密分割存储的密码技术,目的是阻止秘密过于集中,以达到分散风险和容忍入侵的目的,是信息安全和数据保密中的重要手段。背景重要的秘密不能都由一个人管理,势必造成权力过于集中比起相信一个人更容易相信多数人机密性与强健性秘密共享把一个秘密消息分成n块,分割给m个参与者每个参与者只拥有其中的一块只有所有消息块组合在一起才能恢复秘密每一块对其拥有者来说是没用的.秘密共享4s1s2s3sn1…shares…23n-1nsn-1…parties…12…KeyHoles…t-1t秘密共享5秘密共享有缺陷的秘密共享方案简单秘密共享方案(秘密分割)秘密s=b1b2…bn-1bn1)选择随机数b1,….,bn-12)计算bn=b1b2…bn-1spasswordpasswordFlawedN个消息块组合在一起才能恢复秘密s(不健全)6门限秘密共享方案假设Coca-Cola公司的董事会想保护可乐的配方.该公司总裁应该能够在需要时拿到配方,但在紧急的情况下,12位董事会成员中的任意3位就可以揭开配方。这可以通过一个秘密共享方案实现t=3、n=15,其中3股给总统,1股给其他每个董事会成员安全问题机密性:抵抗任何不当行为强健性:对任何可能出现的错误的可靠性7(t,n)秘密共享(tn)秘密K被拆分为n个份额的共享秘密利用任意t(2≤t≤n)个或更多个共享份额就可以恢复秘密K任何m–1或更少的共享份额是不能得到关于秘密SK的任何有用信息强健性:暴露一个份额或多到m–1个份额都不会危及密钥,且少于m–1个用户不可能共谋得到密钥,同时若一个份额被丢失或损坏,还可恢复密钥Shamir秘密共享,Blakley秘密共享根据t和n的选择,权衡安全性和可靠性。高t,提供高安全性,低可靠性低t,提供低安全性,高可靠性门限秘密共享8Shamir秘密共享(t,n)秘密共享秘密信息K把一个信息(秘密地秘方,发射代码等)分成n部分(P1,…,Pn),每部分叫做它的“影子”或共享使用t-1次任意系数的随机多项式Step1.构造多项式:交易商选择了一个共享秘密,K(p:随机素数)为常数项,F(x)=K+a1x+a2x2+…+ak-1xt-1modp为t-1次任意系数的随机多项式。Step2.秘密分割:分配F(i)(i=1,…,n)安全共享Pi。Step3.秘密恢复:当t共享=(K1,K2,…,Kt)其中t是给定的,使用拉格朗日差值多项式方案恢复K。,,\mod,wherejjjjljlKKplj9例如:(3,5)秘密共享K=11,p=17构造2次随机多项式F(x)=K+a1x+a2x2modpa1=8,a2=7F(x)=11+8x+7x2mod17秘密分割K1=F(1)=712+81+119mod17K2=F(2)=722+82+114mod17K3=F(3)=732+83+1113mod17K4=F(4)=742+84+112mod17K5=F(5)=752+85+115mod17(K1,K2,K3,K4,K5)=(P1,…,P5)Shamir秘密共享10解方程恢复秘密:由K2,K3,K4,我们可以得到K=11a22+b2+K4mod17a32+b3+K13mod17a42+b4+K2mod17解3个变量的多项式方程获得K.利用拉格朗日插值123231312()()()213112321323934(3)131mod1711KKKKFor=(K1,K2,K3)Shamir秘密共享11可验证的秘密共享如何知道你共享的秘密是正确的?Feldman的可验证秘密共享(VSS)SecretSf(x)=s+a1x+a2x2S(f(i),i)Publicgs,ga,gaVerifygf(i)=gs.(ga)i.(ga)is+a1i+a2i2=g11222承诺系数验证其共享份额的正确性f(i)12在同一平面的两平行线相交于同一点.不在同一平面三非平行线在空间相交于同一点.更一般地,任何n维超平面相交于一个特定的点秘密可能被编码作为任何一个坐标交点。Blakley秘密共享13门限密码阈值加密方案一个消息是使用公钥加密为了解密密文,需要超过阈值的共享份额合作来解密门限签名方案为了签名,需要超过阈值的共享份额合作来签名.签字可以使用公钥验证公布公钥,但相应的私钥在多方共享.14时间戳服务在很多情况中,人们需要证明某个文件在某个时期存在。版权或专利争端即是谁有产生争议的工作的最早的副本,谁就将赢得官司。对于纸上的文件,公证人可以对文件签名,律师可以保护副本。如果产生了争端,公证人或律师可以证明某封信产生于某个时间。在数字世界中,事情要复杂得多。没有办法检查窜改签名的数字文件。他们可以无止境地复制和修改而无人发现。15时间戳服务仲裁解决方法Alice将文件的副本传送给TrentTrent将他收到文件的日期和时间记录下来,并妥善保存文件的副本存在问题没有保密性数据库本身将是巨大的存在潜在错误。传送错误或Trent的中央计算机中某些地方的电磁炸弹引爆可能有些运行时间标记业务的人并不像Trent那样诚实16时间戳服务改进的仲裁解决方法Alice产生文件的单向Hash值。Alice将Hash值传送给Trent。Trent将接收到Hash值的日期和时间附在Hash值后,并对结果进行数字签名。Trent将签名的散列和时间标记送回给Alice。存在问题可能有些运行时间标记业务的人并不像Trent那样诚实17时间戳服务链接协议:将Alice的时间标记同以前由Trent产生的时间标记链接起来。由于Trent预先不知道他所接收的不同时间标记的顺序,Alice的时间标记一定发生在前一个时间标记之后。并且由于后面来的请求是与Alice的时间标记链接,那么她必须出现在前面。Alice的请求正好夹在两个时间之间。如果有人对Alice的时间标记提出疑问,她只需要和她的前后文件的发起者In-1和In+1接触就行了18时间戳服务分布式协议:人死后,时间标记就会丢失。在时间标记和质询之间很多事情都可能发生,以至Alice不可能得到In-1的时间标记的副本,这个问题可以通过把前面10个人的时间标记嵌入Alice的时间标记中得到缓解,并且将后面10个人的标识都发给Alice。这样Alice就会有更大的机会找到那些仍有他们的时间标记的人。阈下信道阈下信道是指在基于公钥密码技术的数字签名、认证等应用密码体制的输出密码数据中建立起来的一种隐蔽信道,除指定的接收者外,任何其他人均不知道密码数据中是否有阈下消息存在。1920阈下信道假设Alice和Bob被捕入狱。他将去男牢房,而她则进女牢房。看守Walter愿意让Alice和Bob交换消息,但他不允许他们加密。Walter认为他们可能会商讨一个逃跑计划,因此,他想能够阅读他们说的每个细节。Alice和Bob建立一个阈下信道,即完全在Walter视野内的建立的一个秘密通信信道。通过交换完全无害的签名的消息,他们可以来回传送秘密信息,并骗过Walter,即使Walter正在监视所有的通信。21阈下信道简易的阈下信道(缺点是无密钥)可以是句子中单词的数目。句子中奇数个单词对应“1”,而偶数个单词对应“0”。可以是一幅画。如一棵苹果树,苹果的个数代表一定的约定GustavusSimmons发明了传统数字签名算法中阈下信道的概念。Walter看到来回传递的签名的无害消息,但他完全看不到通过阈下信道传递的信息。22使用阈下信道的基本过程(1)Alice产生一个无害消息,最好随机;(2)用与Bob共享的秘密密钥,Alice对这个无害信息这样签名,她在签名中隐藏她的阈下信息;(3)Alice通过Walter发送签名消息给Bob;(4)Walter读这份无害的消息并检查签名,没发现什么问题,他将这份签了名的消息传递给Bob;(5)Bob检查这份无害消息的签名,确认消息来自于Alice;(6)Bob忽略无害的消息,而用他与Alice共享的秘密密钥,提取阈下消息。23阈下信道的用途阈下信道的最显见的应用是在间谍网中。用一个阈下信道,Alice可以在受到威胁时安全地对文件签名。她可以在签名文件时嵌入阈下消息,说“我被胁迫”。别的应用则更为微妙,公司可以签名文件,嵌入阈下信息,允许它们在文档整个文档有效期内被跟踪。政府可以“标记”数字货币。恶意的签名程序可能泄露其签名中的秘密信息。其可能性是无穷的。24EIGamal签名方案的阈下信道公钥:p:素数,gp(p,g可由一组用户共享)y=gx(modp)私钥:xp签名:k:随机选取,与p-1互素,a(签名)=gkmodp,b(签名)满足M=(xa+kb)mod(p-1)(即有:b=(M-xa)k-1mod(p-1))验证:如果yaab(modp)=gM(modp),则签名有效。25控制单向函数的输出比特搜索选择适当的k,使得a=gkmodp中的某些位为阈下信息。EIGamal签名方案的阈下信道26RSA数字签名的阈下信道签名者取两个随机大素数p和q(保密),计算公开的模数r=pq(公开),计算秘密的欧拉函数(r)=(p-1)(q-1)(保密)。随机选取整数e,满足gcd(e,(r))=1(公开e,验证密钥)计算d,满足de≡1(mod(r))(签名密钥)签名:y=H(x)d(modr),把x||y发送给验证者验证:检查下式是否成立yd=H(x)(modr).选择x的不同表达方式,使得H(x)中的某些位为阈下信息27RSA数字签名的阈下信道比特承诺比特承诺(BitCommitment,BC)是密码学中的重要基础协议,其概念最早由1995年图灵奖得主Blum提出。可用于构建零知识证明、可验证秘密分享、硬币投掷等协议,同时和茫然传送一起构成安全双方计算的基础,是信息安全领域研究的热点。2829比特承诺Alice,这位令人惊异的魔术天才,正表演关于人类意念的神秘技巧。Alice将在Bob选牌之前猜中Bob将选的牌!Alice在一张纸上写出她的预测。Alice很神秘地将那张纸片装入信封中并封上。Alice将封好的信封随机地递给一观众。“取一张牌,Bob,任选一张”。他看了看牌而后将之出示给Alice和观众。是方块7。现在Alice从观众那里取回信封,并撕开它。在Bob选牌之先写的预测,也是:方块7!全场欢呼!30比特承诺这个魔术的要点在于,Alice在戏法的最后交换了信封。然而,密码协议能够提供防止这种花招的方法。承诺方案:Alice想对Bob承诺一个预测(即1bit或bit序列),但直到某个时间以后才揭示她的预测。而另一方面,Bob想确信在Alice承诺了她的预测后,她没有改变她的想法。31基本思想承诺者Alice向接收者Bob承诺一个消息,承诺过程要求,Alice向Bob承诺时,Bob不可能获得关于被承诺消息的任何信息;经过一段时间后,Alice能够向Bob证实她所承诺的消息,但是Alice无法欺骗Bob。.协议1.Alice把消息m放在一个箱子里并锁住(只有Alice有钥匙可以打开箱子)送给Bob;2.当Alice决定向Bob证实消息时,Alice会把消息m及钥匙给Bob;3.B