1、1,现代密码学,21世纪高等学校计算机规划教材,Modern Cryptography,彭代渊 信息科学与技术学院 2009.9-2010.1,作 者:何大可 彭代渊 唐小虎 何明星 梅其祥出版社:人民邮电出版社,2,现代密码学 Modern Cryptography,彭代渊 信息科学与技术学院 2009年12月,第7章 密码协议,3,第7章 密码协议,7.1 密码协议概述 7.2 实体认证协议 7.3 密钥认证协议 7.4 比特承诺协议 7.5 零知识证明与身份识别协议,4,7.1 密码协议概述,协议(Protocol) 基本概念两个或两个以上的参与者为完成某项特定任务而采取的一系列步骤
2、。三层含义 协议是有序的过程,每一步必须依次执行 协议至少需要两个参与者 通过执行协议必须能够完成某项任务,5,7.1 密码协议概述,协议(Protocol) 特点 协议的参与方必须了解协议,明确协议执行的所有步骤 协议的参与方都承诺按协议步骤执行协议 协议必须清楚、完整,对每种可能的情况必须规定明确、具体的动作 基本要求 有效性 公平性 完整性,6,7.1 密码协议概述,密码协议(安全协议) 具有安全功能的协议安全协议安全协议的设计必须采用密码技术密码协议 具体意义:密码协议是建立在密码体制基础上的一种交互通信的协议,它运行在计算机通信网或分布式系统中,借助于密码算法来达到安全功能,密码技术
3、:随机数生成、加密/解密算法、Hash运算、数字签名等 安全功能:密钥建立、密钥分配、消息鉴别、身份认证 应用系统:电子选举、电子拍卖、公平电子交易等。,7,7.1 密码协议概述,密码协议分类按协议执行的轮数分 2轮协议 3轮协议, n轮协议 密码协议分类按协议功能分 身份认证协议 密钥分配协议 密钥协商协议 秘密共享协议 不经意传输协议,,8,7.1 密码协议概述,密码协议分类按协议应用目标分 选举协议 拍卖协议 支付协议, 密码协议分类按协议的交互性分 交互协议 非交互协议 密码协议分类按协议第三方性质分 仲裁协议 裁决协议 自动执行协议,9,第7章 密码协议,7.1 密码协议概述 7.2
4、 实体认证协议 7.3 密钥认证协议 7.4 比特承诺协议 7.5 零知识证明与身份识别协议,10,7.2 实体认证协议,认证:一个实体向另一个实体证明某种声称的过程 认证协议:主要目标是确认某个主体的真实性,确保信息的安全性 认证协议分类 消息认证协议:验证消息与其主体的一致性 实体认证协议:验证消息发送者所声称的身份 密钥认证协议(认证的密钥建立协议):生成、获得加(解)密密钥,11,7.2 实体认证协议,身份认证协议:验证用户知道什么(如口令等)、验证用户拥有什么(如IC卡等)或验证用户具有什么特征(如指纹、掌纹、虹膜、DNA等) 身口令认证协议( PAP,Password Authen
5、tication Protocol):通过验证用户口令来进行身份认证 单向口令身份认证协议 协议7.1 简单口令身份认证协议 协议7.2 动态口令身份认证协议 协议7.3 基于口令的智能卡认证协议 双向口令身份认证协议 协议7.4 基于Hash函数的双向口令身份认证协议 协议7.5 基于对称密码的双向认证协议 协议7.6 基于非对称密码的双向认证协议,12,第7章 密码协议,7.1 密码协议概述 7.2 实体认证协议 7.3 密钥认证协议 7.4 比特承诺协议 7.5 零知识证明与身份识别协议,13,7.3 密钥认证协议,密钥认证协议:对通信主体A和B及建立的密钥K进行认证 只有A、B(或可信
6、第三方TTP)能够知道K A和B确认对方知道K A和B确认K是最新建立的,14,7.3 密钥认证协议,15,7.3 密钥认证协议,基于对称密码技术的密钥认证协议 Needham-Schroeder 协议密钥分配中心KDC (key distribution center)安全地分发一个会话密钥Ks给用户A和B。 协议步骤,16,7.3 密钥认证协议,基于对称密码技术的密钥认证协议 Needham-Schroeder 协议 重放攻击假定攻击方C已经掌握A和B之间一个旧的会话密钥,且可以中途阻止第(4)步的执行,17,7.3 密钥认证协议,基于对称密码技术的密钥认证协议 Denning改进协议:运
7、用时间戳T 协议步骤,18,7.3 密钥认证协议,基于对称密码技术的密钥认证协议 Denning改进协议:运用时间戳T 协议步骤,抑制重放攻击如果发送者的时钟比接收者的时钟要快,攻击者就可以从发送者窃听消息,并在以后当时间戳对接收者来说成为当前时重放给接收者。 克服抑制重放攻击的方法 强制各方定期检查自己的时钟是否与KDC的时钟同步。 采用临时随机数(nonce)技术,19,7.3 密钥认证协议,基于对称密码技术的密钥认证协议 KEHN改进协议 协议步骤,该协议可抵抗前两个协议可能遭受的攻击,20,7.3 密钥认证协议,基于非对称密码技术的密钥认证协议 Diffie-Hellman密钥交换协议
8、(DH-KEP) 协议步骤 公开参数:大素数p, p的本原根a 共享密钥:K,21,7.3 密钥认证协议,基于非对称密码技术的密钥认证协议 Diffie-Hellman密钥交换协议(DH-KEP) 协议步骤 公开参数:大素数p, p的本原根a 共享密钥:K 合理性证明,安全性基础攻击者只能得到a, p , YA , YB,要想求出K ,必须先求出XA或XB ,这是离散对数问题,22,7.3 密钥认证协议,基于非对称密码技术的密钥认证协议 Diffie-Hellman密钥交换协议(DH-KEP) 例子:设p=97,a=5(1) A选择XA=36,计算YA=aXA=536=50 mod 97,将Y
9、A发送给B.(2) B选择XB=58,计算YB=aXB=558=44 mod 97,将YB发送给B.(3) A计算共享密钥K=(YB)XA=4436=75 mod 97.(4) B计算共享密钥K=(YA)XB=5058=75 mod 97.,23,7.3 密钥认证协议,基于非对称密码技术的密钥认证协议 Diffie-Hellman密钥交换协议(DH-KEP) 中间人攻击,24,7.3 密钥认证协议,基于非对称密码技术的密钥认证协议 加密的密钥交换协议(EKE)(协议7.11)Kerberos 协议 (协议7.12) 主要目的是解决分布式网络环境下,客户访问网络资源的安全认证问题。 实现用户与服
10、务器之间的相互认证;向每个实体证实另一个实体的身份;产生会话密钥,供客户和服务器(或两个客户之间)使用。 V5于1994年作为RFC1510公布,25,7.3 密钥认证协议,基于非对称密码技术的密钥认证协议 Kerberos 协议 (协议7.12) 四个主体:客户C,应用服务器V,认证服务器AS,票证授予服务器TGS。认证服务器与票证授予服务器又统称为密钥分配中心(KDC)。 详细步骤见教材,26,7.3 密钥认证协议,对协议的攻击类型 重放攻击(Replay Attacks)重放攻击是指入侵者捕获以前协议运行或当前协议运行中的消息用于对当前协议运行的攻击 已知密钥攻击(Known-key a
11、ttack)对手从用户以前用过的密钥确定新的密钥的攻击 伪装攻击(Impersonation attack)对手扮演合法实体进行的攻击 字典攻击(Dictionary attack)主要针对口令的一种按某种顺序进行搜索的攻击,27,7.3 密钥认证协议,对协议的攻击类型 交错攻击(Interleaving attack)把前面一次或多次(或者并行)执行协议的信息有选择地组合在一起所实施的攻击。 选择挑战攻击(Chosen-text attack)在挑战应答协议中对手巧妙地选择挑战消息,试图得到所需的信息。 反射攻击(Reflection attack)正在执行的协议中,一方把对方发送过来的消息
12、再发回给对方,28,第7章 密码协议,7.1 密码协议概述 7.2 实体认证协议 7.3 密钥认证协议 7.4 比特承诺协议 7.5 零知识证明与身份识别协议,29,7.4 比特承诺协议,股票预测大师问题股票预测大师经常在讲座中给股民推荐股票,可股民按照大师推荐买股票却常常赚不了钱,然而预测大师却生意红火。为什么?因为预测大师没有对股民给出一个明确的承诺,尤其在股民选择股票买进时间和卖出时间上。往往在股民亏本后与预测大师论理时,预测大师总可以用偷换预测的前提和条件(时间)来 “说服” 股民相信大师预测的正确性,30,7.4 比特承诺协议,安全比特承诺协议的直观描述A 把比特b放入一个箱子,用一
13、把只有用A自己的钥匙才能开启的锁锁上这个箱子,然后把这个箱子交给B;当时机成熟时,A把比特b和打开箱子的钥匙交给B,B通过打开箱子可以验证比特b 的内容没有改动,因为箱子在B的控制之下。,31,7.4 比特承诺协议,7.1 (比特承诺) 给定随机数r和待提交的整数b,关于整数b的比特承诺就是一个有效算法F使得满足如下条件: 从F(r, b)计算出b的难度相当于攻破某计算困难性问题的难度; 比特承诺F(r, b)的提交者A在以后把比特承诺F(r, b)以不同的方式打开成为F(r, b)的概率是可以忽略的,即提交者不能把比特承诺打开成为不同的方式; 在多项式时间内,无法区分对于两个不同数b和b的F
14、(r, b)和F(r, b)。,32,7.4 比特承诺协议,比特承诺的两个安全性要求: 屏蔽性(Concealing):A可用一个概率多项式时间算法F(r, b)将二进位b屏蔽起来,只有A本人才能打开。即二进位b一旦被屏蔽起来便不能被对方B预测。 约束性 (Binding):A根据二进位b及其屏蔽算法, 可从屏蔽体中用概率多项式时间算法打开屏蔽,显露出惟一的二进位b, 并让B进行验证。即二进位b一旦被屏蔽起来便不能再被屏蔽者修改。,33,7.4 比特承诺协议,例:由Goldwasser-Micali公钥概率加密系统构造一种比特承诺协议 令n=pq, p,q是长度相同的大素数, 选择模n非二次剩
15、余m。 (1)A随机选择rZn*, b0,1, 计算y=F(r, b)=mbr2 mod n. 并发送给B。 (2)其后A通过揭示b, r来打开y。B只需验证y=mbr2 mod n. 只要求解模n二次剩余问题是困难的,则从y=F(r, b)计算出b也是困难的。即由y不能泄露b的任何信息,所以该方案具有屏蔽性。 该方案具有约束性。,34,7.4 比特承诺协议,抛币落井协议(Flipping coins into well)设想有一口清澈见底的深水井,A站在水井的旁边,而B远离这口水井,A将硬币抛进水井里去,硬币停留在水井中,现在A能够看到水井里的结果,但A不能到水井里去改变硬币的状态(如正反面
16、情况)。当A将硬币抛进水井时,B不能看见水井里的硬币,只有当B猜完硬币的状态后,A才让B走近井边,看到井底的硬币。这个协议满足上面的两条性质。因此称这样的比特承诺协议为抛币落井协议(Flipping coins into well)。,35,7.4 比特承诺协议,采用单向函数的抛币协议 设A和B使用一个安全Hash函数F。 (1)A选择一个随机数r,并计算y=F(r); (2) A将y发送给B; (3)B猜测r是偶数(b=0)或奇数(b=1),并将猜测结果发送给A; (4)如果B的猜测正确,抛币结果为正面;如果B的猜测错误,则抛币的结果为反面。A公布此次抛币的结果,并将r发送给B; (5)B确
17、信。,36,7.4 比特承诺协议,采用单向函数的抛币协议 抛币协议的安全性取决于F的安全性 抛币协议,具有如下的性质: A必须在B猜测之前抛币; 在听到B猜测之后A不能再抛币; B猜测之前不能知道硬币是怎么落地的。,37,第7章 密码协议,7.1 密码协议概述 7.2 实体认证协议 7.3 密钥认证协议 7.4 比特承诺协议 7.5 零知识证明与身份识别协议,38,7.5 零知识证明与身份识别协议,7.5.1 零知识证明 例子 P要向V证明“P拥有某个房间的钥匙”,有两个方法: (1) P把钥匙出示给V,V用这把钥匙打开该房间的锁 (2) V确定该房间内有某一物体,P用自己拥有的钥匙打开该房间
18、的门,然后把物体拿出来出示给V 方法(2)属于零知识证明 零知识证明的基本思想 设P是示证者,V是验证者。P需要向V证明他知道某个秘密信息,但示证者P在向验证者V证明他知道某个秘密信息时不泄露秘密的任何信息。,39,7.5 零知识证明与身份识别协议,Jean-Jacques等打开洞穴之门的故事 C、D之间有一道秘密之门,要打开这道门,需要知道开门的咒语。对任何不知道咒语的人,两边的通道都是死胡同。,今有一示证者P,知道开门的咒语,他不想让其他任何人知道这个咒语,但是又想让V相信他确实能通过这道门这个事实。 即:示证者P向验证者V证明他知道开门的咒语,而在这个过程中P不向验证者V泄漏咒语的任何信
19、息。,40,7.5 零知识证明与身份识别协议,零知识证明概念假设P,V是两个概率图灵机,P有无限的计算能力,V的计算能力是多项式的,若一个交互式证明满足以下三点,就称此证明为一个零知识交互式证明。 (1)完备性(Completeness):如果P的声明是真的,则V以绝对优势的概率接受P的结论; (2)有效性(Soundness):如果P的声明是假的,则V以绝对优势的概率拒绝P的结论; (3)零知识性(Zero-knowledge):无论V采取任何手段,当P的声明是真的,P不违背协议时,V除了接受P的结论以外,得不到其他额外的信息。,41,7.5 零知识证明与身份识别协议,基于离散对数的零知识证
20、明协议P欲向V证明他知道满足x= mod p的x,即知道离散对数x=log,其中p是一个大素数,x是与p互素的随机数。, 和p是公开的,x是保密的。P在不泄露 x 的信息的情况下向V证明他知道 x 的过程如下: (1) P选择随机数r (0 r p1),计算h=r mod p,将h发送给V; (2) V随机选择一整数或b=0或b=1,发送给P。 (3) P计算s=(r+bx) mod (p1),并发送给V; (4) V验证s =hb mod p ; (5) 重复步骤(1)(4) t 次。 P欺骗成功的概率为2t。,42,7.5 零知识证明与身份识别协议,7.5.2 身份识别协议 用零知识证明设
21、计身份识别协议示证者P在证明自己身份时不泄露任何信息,验证者V得不到示证者的任何私有信息,但又能有效证明对方身份的协议。 一个好的身份识别协议应具有以下性质。 (1)完备性(Completeness):在P与V都诚实的情况下,P一定可以让V识别自己,接受P的身份; (2)有效性(Soundness):如果P的身份是假的,则V以绝对优势的概率拒绝接受P的身份; (3)不可传递性(Non-transferability):验证者V不能重新使用识别过程中使用过的消息,向第三者证明自己是P,即证据不可传递。,43,7.5 零知识证明与身份识别协议,Fiat-Shamir识别方案(Fiat,Shamir
22、, 1986) 1.参数选取 选定一个随机模n=pq, p,q是不同的大素数.产生随机数s,且使s2=v mod n. n和v是公开的,p, q, s作为示证者P的秘密。 2.一次证明过程 (1) P取随机数r ( n),计算x=r2 mod n ,将x发送给验证者V; (2) V将一随机比特b发送给P; (3) 若b=0, 则P将r发送给V;若b=1,则P将y=rs发送给V; (4) 若b=0,则V证实x=r2 mod n ,从而证明P知道s;若b=1,则V证实xv=y2 mod n,从而证明P知道s。 3P和V重复执行t次过程2,直到V相信P知道s为止。,44,7.5 零知识证明与身份识别
23、协议,Fiat-Shamir识别方案(Fiat,Shamir, 1986) Fiat-Shamir协议性质 完备性:如果P和V遵守协议,且P知道s,则应答rs应是模m下xv的平方根,V接收P的证明,所以协议是完备的。 有效性:P不知道s,他也可取r,发送给V,V发送b给P。P可将r送出,当b=0时则V可通过检验而受骗,当b=1时,则V可发现P不知s,B受骗概率为1/2,但连续t次受骗的概率将仅为2t。 V无法知道P的秘密,45,7.5 零知识证明与身份识别协议,Feige-Fiat-Shamir身份识别协议(自学) Schnorr身份识别协议 (自学),46,第6章 习 题,PP.176-177, 1-11,