1、1秘密分割 n设想你已发明了一种新的调味料,你只能告诉最信赖的雇员各种成分准确的调合,但如果他们中的一个背叛到对手方时怎么办呢?这种情况就要求秘密分割。n(1)Trent产生一随机比特串R。n(2)Trent用R异或M得到S:M R=Sn(3)Trent把R给Alice,将S给Bob。n(4)重构消息:Alice和Bob将他们的消息异或就可得到此消息R S=M.n如何在多个人中分割一消息?n秘密分割的缺点是什么?22n 秘密共享秘密共享n是一种将秘密分割存储的密码技术,目的是阻止秘密过于集中,以达到分散风险和容忍入侵的目的,是信息安全和数据保密中的重要手段。n 背景背景 n重要的秘密不能都由一
2、个人管理,势必造成权力过于集中 n比起相信一个人更容易相信多数人n机密性与强健性n 秘密共享秘密共享 n把一个秘密消息分成n块,分割给m个参与者n每个参与者只拥有其中的一块 n只有所有消息块组合在一起才能恢复秘密 n每一块对其拥有者来说是没用的.秘密共享 3s1s2s3sn1 shares 23n-1nsn-1 parties 12 Key Holest-1t秘密共享4秘密共享n 有缺陷的秘密共享方案缺陷的秘密共享方案n简单秘密共享方案简单秘密共享方案(秘密分割秘密分割)秘密秘密 s=b1 b2 bn-1 bn 1)选择随机数选择随机数 b1,.,bn-1 2)计算计算 bn=b1 b2 bn
3、-1 spasswordpasswordFlawedN个消息块组合在一起才能恢复秘密个消息块组合在一起才能恢复秘密 s(不健全不健全)5门限秘密共享n 方案 n 假设 Coca-Cola公司的董事会想保护可乐的配方.该公司总裁应该能够在需要时拿到配方,但在紧急的情况下,12位董事会成员中的任意3位就可以揭开配方。n 这可以通过一个秘密共享方案实现 t=3、n=15,其中3股给总统,1股给其他每个董事会成员 n 安全问题n机密性:抵抗任何不当行为 n强健性:对任何可能出现的错误的可靠性 6n(t,n)秘密共享(tn)n秘密K 被拆分为n 个份额的共享秘密 n利用任意 t(2tn)个或更多个共享份
4、额就可以恢复秘密 Kn任何m 1或更少的共享份额是不能得到关于秘密SK的任何有用信息n强健性:暴露一个份额或多到m 1个份额都不会危及密钥,且少于 m 1个用户不可能共谋得到密钥,同时若一个份额被丢失或损坏,还可恢复密钥n Shamir 秘密共享,Blakley 秘密共享n根据t和n的选择,权衡安全性和可靠性。n高 t,提供高安全性,低可靠性n低 t,提供低安全性,高可靠性门限秘密共享7Shamir秘密共享n (t,n)秘密共享n秘密信息 K n 把一个信息(秘密地秘方,发射代码等)分成 n部分(P1,Pn),每部分叫做它的“影子”或共享n 使用 t-1次任意系数的随机多项式Step 1.构造
5、多项式构造多项式:交易商选择了一个共享秘密,K(p:随机素数)为常数项,F(x)=K+a1x+a2x2+ak-1xt-1 mod p 为 t-1 次任意系数的随机多项式。Step 2.秘密分割秘密分割:分配 F(i)(i=1,n)安全共享 Pi。Step 3.秘密恢复秘密恢复:当 t 共享=(K1,K2,Kt)其中 n 是给定的,使用拉格朗日差值多项式方案恢复K。,mod,where jjjjljlKKplj8Shamir秘密共享9例如:例如:(3,5)秘密共享秘密共享 K=11,p=17构造构造 2次随机多项式次随机多项式 F(x)=K+a1x+a2x2 mod p a1=8,a2=7 F(
6、x)=11+8x+7x2 mod 17 秘密分割秘密分割 K1=F(1)=7 12+8 1+11 9 mod 17K2=F(2)=7 22+8 2+11 4 mod 17K3=F(3)=7 32+8 3+11 13 mod 17K4=F(4)=7 42+8 4+11 2 mod 17K5=F(5)=7 52+8 5+11 5 mod 17(K1,K2,K3,K4,K5)=(P1,P5)Shamir秘密共享10 解方程恢复秘密:解方程恢复秘密:由由 K2,K3,K4,我们可以得到我们可以得到 K=11 a 22+b 2+K 4 mod 17a 32+b 3+K 13 mod 17a 42+b 4
7、+K 2 mod 17 解解 3个变量的多项式方程个变量的多项式方程 获得获得 K.利用拉格朗日插值利用拉格朗日插值 123231312()()()2 13 112 321 3 23 9 34(3)13 1mod1711KKKK For =(K1,K2,K3)Shamir秘密共享11可验证的秘密共享 如何知道你共享的秘密是正确的如何知道你共享的秘密是正确的?Feldman的可验证秘密共享的可验证秘密共享(VSS)Secret Sf(x)=s+a1x+a2x2S(f(i),i)Publicgs,ga,gaVerifygf(i)=gs.(ga)i.(ga)i s+a1i+a2i2=g11222承诺
8、系数承诺系数验证其共享份额的正确性验证其共享份额的正确性 f(i)12 在同一平面的两平行线相交于同一点在同一平面的两平行线相交于同一点.不在同一平面三非平行线在空间相交于同一点不在同一平面三非平行线在空间相交于同一点.更一般地,任何更一般地,任何n维超平面相交于一个特定的点维超平面相交于一个特定的点 秘密可能被编码作为任何一个坐标交点。秘密可能被编码作为任何一个坐标交点。Blakley秘密共享13门限密码阈值加密方案阈值加密方案 一个消息是使用公钥加密一个消息是使用公钥加密为了解密密文,需要超过阈值的共享份额合作来解为了解密密文,需要超过阈值的共享份额合作来解密密 门限签名方案门限签名方案
9、为了签名,需要超过阈值的共享份额合作来签名为了签名,需要超过阈值的共享份额合作来签名.签字可以使用公钥验证签字可以使用公钥验证公布公钥,但相应的私钥在多方共享公布公钥,但相应的私钥在多方共享.14时间戳服务n在很多情况中,人们需要证明某个文件在某个时期存在。版权或专利争端即是谁有产生争议的工作的最早的副本,谁就将赢得官司。对于纸上的文件,公证人可以对文件签名,律师可以保护副本。如果产生了争端,公证人或律师可以证明某封信产生于某个时间。n在数字世界中,事情要复杂得多。没有办法检查窜改签名的数字文件。他们可以无止境地复制和修改而无人发现。15时间戳服务n仲裁解决方法nAlice将文件的副本传送给T
10、rentnTrent将他收到文件的日期和时间记录下来,并妥善保存文件的副本n存在问题n没有保密性n数据库本身将是巨大的n存在潜在错误。传送错误或Trent的中央计算机中某些地方的电磁炸弹引爆n可能有些运行时间标记业务的人并不像Trent那样诚实16时间戳服务n改进的仲裁解决方法nAlice产生文件的单向Hash值。nAlice将Hash值传送给Trent。nTrent将接收到Hash值的日期和时间附在Hash值后,并对结果进行数字签名。nTrent将签名的散列和时间标记送回给Alice。n存在问题n可能有些运行时间标记业务的人并不像Trent那样诚实17时间戳服务n链接协议:将Alice的时间
11、标记同以前由Trent产生的时间标记链接起来。由于Trent预先不知道他所接收的不同时间标记的顺序,Alice的时间标记一定发生在前一个时间标记之后。并且由于后面来的请求是与Alice的时间标记链接,那么她必须出现在前面。Alice的请求正好夹在两个时间之间。n如果有人对Alice的时间标记提出疑问,她只需要和她的前后文件的发起者I n-1和I n+1接触就行了 18时间戳服务n分布式协议:人死后,时间标记就会丢失。在时间标记和质询之间很多事情都可能发生,以至Alice不可能得到I n-1的时间标记的副本,这个问题可以通过把前面10个人的时间标记嵌入Alice的时间标记中得到缓解,并且将后面1
12、0个人的标识都发给Alice。这样Alice就会有更大的机会找到那些仍有他们的时间标记的人。19阈下信道n假设Alice和Bob被捕入狱。他将去男牢房,而她则进女牢房。看守Walter愿意让Alice和Bob交换消息,但他不允许他们加密。Walter认为他们可能会商讨一个逃跑计划,因此,他想能够阅读他们说的每个细节。nAlice和Bob建立一个阈下信道,即完全在Walter视野内的建立的一个秘密通信信道。通过交换完全无害的签名的消息,他们可以来回传送秘密信息,并骗过Walter,即使Walter正在监视所有的通信。20阈下信道n简易的阈下信道(缺点是无密钥)n可以是句子中单词的数目。句子中奇数
13、个单词对应“1”,而偶数个单词对应“0”。n可以是一幅画。如一棵苹果树,苹果的个数代表一定的约定nGustavus Simmons发明了传统数字签名算法中阈下信道的概念。Walter看到来回传递的签名的无害消息,但他完全看不到通过阈下信道传递的信息。21使用阈下信道的基本过程n(1)Alice产生一个无害消息,最好随机;n(2)用与Bob共享的秘密密钥,Alice对这个无害信息这样签名,她在签名中隐藏她的阈下信息;n(3)Alice通过Walter发送签名消息给Bob;n(4)Walter读这份无害的消息并检查签名,没发现什么问题,他将这份签了名的消息传递给Bob;n(5)Bob检查这份无害消
14、息的签名,确认消息来自于Alice;n(6)Bob忽略无害的消息,而用他与Alice共享的秘密密钥,提取阈下消息。22阈下信道的用途n阈下信道的最显见的应用是在间谍网中。n用一个阈下信道,Alice可以在受到威胁时安全地对文件签名。她可以在签名文件时嵌入阈下消息,说“我被胁迫”。别的应用则更为微妙,公司可以签名文件,嵌入阈下信息,允许它们在文档整个文档有效期内被跟踪。政府可以“标记”数字货币。恶意的签名程序可能泄露其签名中的秘密信息。其可能性是无穷的。23EIGamal签名方案的阈下信道n公钥:p:素数,gp(p,g可由一组用户共享)y=gx(mod p)n私钥:xpn签名:k:随机选取,与p
15、-1互素,na(签名)=g k mod p,nb(签名)满足 M=(xa+kb)mod(p-1)(即有:b=(M-xa)k-1 mod(p-1)n验证:如果 ya ab(mod p)=gM(mod p),则签名有效。24n控制单向函数的输出比特n搜索选择适当的k,使得a=gk mod p 中的某些位为阈下信息。EIGamal签名方案的阈下信道25n不使用随机数的签名方案是否存在阈下信道?nChuan-Kun Wu,Hash channels,Computers&security,2005HASH信道26RSA数字签名的阈下信道 n签名者取两个随机大素数p和q(保密),计算公开的模数r=pq(公
16、开),计算秘密的欧拉函数(r)=(p-1)(q-1)(保密)。n随机选取整数e,满足gcd(e,(r)=1(公开e,验证密钥)n计算d,满足de1(mod(r)(签名密钥)n签名:y=H(x)d(mod r),把x|y发送给验证者n验证:检查下式是否成立yd=H(x)(mod r).n选择x的不同表达方式,使得H(x)中的某些位为阈下信息27RSA数字签名的阈下信道 28比特承诺 nAlice,这位令人惊异的魔术天才,正表演关于人类意念的神秘技巧。Alice将在Bob选牌之前猜中Bob将选的牌!nAlice在一张纸上写出她的预测。Alice很神秘地将那张纸片装入信封中并封上。nAlice将封好
17、的信封随机地递给一观众。“取一张牌,Bob,任选一张”。他看了看牌而后将之出示给Alice和观众。是方块7。现在Alice从观众那里取回信封,并撕开它。在Bob选牌之先写的预测,也是:方块7!全场欢呼!29比特承诺 n这个魔术的要点在于,Alice在戏法的最后交换了信封。然而,密码协议能够提供防止这种花招的方法。n承诺方案:Alice想对Bob承诺一个预测(即1bit或bit序列),但直到某个时间以后才揭示她的预测。而另一方面,Bob想确信在Alice承诺了她的预测后,她没有改变她的想法。30 基本思想基本思想承诺者承诺者Alice向接收者向接收者Bob承诺一个消息,承诺过程要求,承诺一个消息
18、,承诺过程要求,Alice向向Bob承诺时,承诺时,Bob不可能获得关于被承诺消息的任何信息;不可能获得关于被承诺消息的任何信息;经过一段时间后,经过一段时间后,Alice能够向能够向Bob证实她所承诺的消息,但是证实她所承诺的消息,但是Alice无法欺骗无法欺骗Bob。.协议协议1.Alice把消息把消息m放在一个箱子里并锁住(只有放在一个箱子里并锁住(只有Alice有钥匙可有钥匙可以打开箱子)送给以打开箱子)送给Bob;2.当当Alice决定向决定向Bob证实消息时,证实消息时,Alice会把消息会把消息m及钥匙给及钥匙给Bob;3.Bob能够打开箱子并验证箱子里的消息与能够打开箱子并验证
19、箱子里的消息与Alice出示的消息相出示的消息相同,并且同,并且Bob确信箱子里的消息在他的保管期间没有被篡改确信箱子里的消息在他的保管期间没有被篡改。比特承诺 31 比特承诺方案具有两个重要性质比特承诺方案具有两个重要性质1.隐蔽性:即接收者不能通过接收的箱子来确定承诺值m2.约束性:发送者不能改变箱子中的承诺值m 构造比特承诺构造比特承诺使用单向函数:哈希函数,公钥加密 比特承诺 32比特承诺 nAlice承诺b(使用对称密码算法)n(1)Bob产生一个随机比特串R,并把它发送给Alice。n(2)Alice生成一个由她想承诺的比特b组成的消息(b实际上可能是几个比特),以及Bob的随机串
20、。她用某个随机密钥K对它加密,并将结果EK(R,b)送回给Bob。nAlice揭示bn当到了Alice揭示她的比特的时候,协议继续:n(1)Alice发送密钥给Bob;n(2)Bob解密消息以揭示比特。他检测他的随机串以证实比特的有效性。33比特承诺 nAlice承诺b(使用单向函数的比特承诺)n(1)Alice产生两个随机比特串,R1和R2。n(2)Alice产生消息,该消息由她的随机串和她希望承诺的比特组成。(R1,R2,b)。n(3)Alice计算消息的单向函数值,将结果以及其中一个随机串发送给Bob。H(R1,R2,b),R1。n当到了Alice揭示她的比特的时候,协议继续:n(1)A
21、lice将原消息发给Bob。(R1,R2,b);n(2)Bob计算消息的单向函数值,并将该值及R1与原先第(3)步收到的值及随机串比较。如匹配,则比特有效。34比特承诺 nAlice承诺(使用伪随机序列发生器的比特承诺)n(1)Bob产生随机比特串RB,并送给Alice。n(2)Alice为伪随机比特发生器生成一个随机种子。然后,对Bob随机比特串中的每一比特,她回送Bob下面两个中的一个:(a)如果Bob比特为0,发生器的输出;(b)如果Bob的比特为1,发生器输出与她的承诺比特的异或。n当到了Alice揭示她的比特的时候,协议继续:n(1)Alice将随机种子送给Bob;n(2)Bob确认
22、Alice的行动是合理的。35公平的硬币抛掷 nAlice和Bob想抛掷一个公平的硬币,但又没有实际的物理硬币可抛。Alice提出一个用思维来抛掷公平硬币的简单方法。“首先,你想一个随机比特,然后我再想一个随机比特,我们将这两个比特进行异或。”Alice建议道。“但如果我们中有人不随机抛掷硬币怎么办呢?”Bob问道。“这无关紧要,只要这些比特中的一个是真正随机的,它们之异或应该也是真正随机的。”Alice这样回答。经过思考后,Bob同意了。36公平的硬币抛掷 n没过多久,Alice和Bob碰到一本关于人工智能的书,这本书被丢弃在路旁。优秀公民Alice说:“我们中有一个必须拣起这本书,并找到一
23、个合适的垃圾箱。”Bob同意并提议用抛币协议来决定谁必须将这本书扔掉。“如果最后的比特是0,那么你必须拣取那本书,如果是1,那我必须那样做。”Alice说。“你的比特是什么?”Bob答道:1。“为什么,我的也是1”Alice顽皮地说“我猜想今天不是你的幸运日。”37抛硬币游戏 假设假设 Alice和和Bob要离婚,讨论谁得到什么要离婚,讨论谁得到什么.并且俩并且俩人谁也不想见谁人谁也不想见谁.在谁拥有车这个问题上有争议。在谁拥有车这个问题上有争议。最后他们决定抛硬币最后他们决定抛硬币 问题问题:如果他们相互不信任,又如何能在电话里抛硬币如果他们相互不信任,又如何能在电话里抛硬币决定?决定?He
24、ad,AliceTail,Bob38公平的硬币抛掷n首先,Bob确定一个比特,将它写在纸上,并装入信封中。nAlice公布她选的比特。nAlice和Bob从信封中取出Bob的比特并计算随机比特。只要至少一方诚实地执行协议,这个比特的确是真正随机的。n应用:掷币协议能让Alice和Bob产生随机会话密钥,以便双方都不能影响密钥生成的结果。39公平的硬币抛掷n利用比特承诺协议 n(1)Alice利用比特承诺方案,对一个随机比特承诺。n(2)Bob试图去猜测这个比特。n(3)Alice出示这个比特给Bob,如果Bob正确地猜出这个比特,他就赢得了这次抛币。40公平的硬币抛掷n采用单向函数的抛币协议
25、n(1)Alice选择一个随机数x,她计算y=f(x),这里f(x)是单向函数;n(2)Alice将y送给Bob;n(3)Bob猜测x是偶数或奇数,并将猜测结果发给Alice;n(4)如果Bob的猜测正确,抛币结果为正面;如果Bob的猜测错误,则抛币的结果为反面。Alice公布此次抛币的结果,并将x发送给ob;n(5)Bob确信y=f(x)。41公平的硬币抛掷n公开密钥密码抛币协议 n要求加密算法满足交换律(如RSA)。n(1)Alice和Bob都产生一个公开/私钥密钥对。n(2)Alice产生两个消息,其一指示正面,另一个指示反面。这些消息中包含有某个唯一的随机串,以便以后能够验证其在协议中
26、的真实性。Alice用她的公开密钥将两个消息加密,并以随机的顺序把他们发给Bobn(3)Bob随机地选择一个。他用他的公开密钥加密并回送给Alicen(4)Alice用她的私钥解密并回送给Bob,即n(5)Bob用他的私钥解密消息,得到抛币结果。他将解密后的消息送给Alice。n(6)Alice读抛币结果,并验证随机串的正确性。n(7)Alice和Bob出示他们的密钥对以便双方能验证对方没有欺诈42公平的硬币抛掷n掷币入井协议n注意到在所有这些协议中,Alice和Bob不能同时知道掷币的结果。每个协议有一个点,在这个点上其中一方知道掷币结果,但不能改变它。然而,这一方能推迟向另一方泄露结果。这
27、被称作掷币入井协议。设想一口井,Alice在井的旁边,而Bob远离这口井。Bob将币扔进井里去,币停留在井中,现在Alice能够看到井中的结果,但她不能到井底去改变它。Bob不能看到结果,直到Alice让他走到足够近时,才能看到结果。n这个协议的实际应用是会话密钥生成。掷币协议能让Alice和Bob产生随机会话密钥,以便双方都不能影响密钥生成的结果 43智力扑克 nAlice与Bob想通过网络玩牌nAlice与Bob互不信任n他们如何公平地发牌?44智力扑克 n(1)Alice生成52个消息M1,M2,M52,加密后送给Bob。n(2)Bob随机选取5张牌,用他的公开密钥加密,然后回送给Ali
28、ce。n(3)Alice解密消息并回送给Bob。n(4)Bob解密以确定他的一手牌。然后,Bob随机地选择第(1)步剩下的47个消息中的另外5个消息,并发给Alice。n(5)Alice解密它们,变成她的一手牌。n在游戏结束时,Alice和Bob双方出示他们的牌和密钥对使得任意一方确信另一方没有作弊。已经证明,如果使用RSA算法,那么这些扑克协议会泄漏少量的信息(可标记牌)1212kkkkDEEMEM45智力扑克 AB5255546三方智力扑克 n(1)Alice生成52个消息M1,M2,M52,加密后送给Bob。n(2)Bob随机选取5张牌,用他的公开密钥加密,然后回送给Alice,Bob将
29、余下的47张牌EA(Mn)送给Carol。n(3)Carol随机选取5张牌,用她的公开密钥加密,然后回送给Alice n(4)Alice解密消息并回送给Bob和Carol。n(5)Bob和Carol解密以确定他的一手牌。然后,Carol随机地选择剩下的42个消息中的另外5个消息,并发给Alice。n(6)Alice解密它们,变成她的一手牌。n在游戏结束时,Alice,Bob 和Carol双方出示他们的牌和密钥对使得任意一方确信另一方没有作弊。47三方智力扑克 ABC525475555密钥托管n密钥托管标准(密钥托管标准(EES)nEES允许法律执行部门在法院授权的情况下能够进行搭线窃听nEES
30、应用了两个特性n一个不公开的加密算法(Skipjack算法),它是一个对称的分组密码,密钥长度为80bit,用于加/解密用户间通信的消息n一个提供“后门”的法律实施访问域(LEAF,Law Enforcement Access Field),通过这个访问域,政府部门可以在法律授权下,取得用户间通信的会话密钥48AKDC(P1,S1)49knT1Tn(Pn,Sn)PP1 Pn n 门限密钥托管门限密钥托管密钥托管n部分密钥托管部分密钥托管n目的是使监听机构延迟恢复密钥n用户要托管的密钥分成x和两个部分,其中,x就是要托管的密钥部分,而是一个位数较少的密钥部分。被托管的x部分可以采用门限密钥托管方
31、案来进行托管。如果想要恢复出用户密钥,在恢复x部分的同时,还需要利用穷举搜索确定部分。50511-out-2不经意传输nRabin的OT协议是一个双方协议,发送方以1/2的概率传输一个比特的秘密s给B。nA选择Blum整数n=p q,并随机的选择t Zn*,将(n,(-1)s t 2)发送给B nB选择x Zn*,计算a=x 2(mod n),并将a发送给A nA求出a的四个平方根,并随机的选择一个记为b,发送给B nB收到b后,检查b=x或-x(mod n)是否成立。若成立,B什么也得不到;否则,B利用可以分解Blum整数n,并计算 s52不经意传输nAlice将发送给Bob两份消息中的一份
32、。Bob将收到其中一条消息,并且Alice不知道是哪一份。(1)Alice产生两个公开密钥/私钥密钥对。她把两个公开密钥发送给Bob。(2)Bob选择一个对称算法(例如DES)密钥。他选择Alice的一个公开密钥并用它加密他的DES密钥。他把这个加了密的密钥发送给Alice,且不告诉她他用的是她的哪一个公开密钥加密的DES密钥。53不经意传输(3)Alice解密Bob的密钥两次,每次用一个她的私钥来解密Bob的密钥。在一种情况下,她使用了正确的密钥并成功地解密Bob的DES密钥。在另一种情况下,她使用了错误的密钥,只是产生了一堆毫无意义,而看上去又象一个随机DES密钥的比特。由于她不知道正确明
33、文,故她不知道哪个是正确的。54不经意传输(4)Alice加密她的两份消息,每一份用一个不同的在上一步中产生的DES密钥(一个真的和一个毫无意义的),并把两份消息都发送给Bob。(5)Bob收到一份用正确DES密钥加密的消息及一份用无意义DES密钥加密的消息。当Bob用他的DES密钥解密每一份消息时,他能读其中之一,另一份在他看起来是毫无意义的。55不经意传输 Bob现在有了Alice两份消息中的一份,而Alice不知道他能读懂哪一份。很遗憾,如果协议到此为止,Alice有可能进行欺骗。另一个步骤必不可少。(6)在协议完成,并且知道了两种可能传输的结果后,Alice必须把她的私钥给Bob,以便他能验证她没有进行欺骗。毕竟,她可以用第(4)步中的两个密钥加密同一消息。当然,这时Bob可以弄清楚第二份消息。