密钥管理的内容•现代密码系统的安全是由密钥安全保证的主密钥(MainKey)•又称初始密钥(PrimaryKey)或用户密钥(Userkey),是参与或控制密码变换,在一段时间内不进行更换的密钥。会话密钥(SessionKey)•在一次通话或交换数据时使用的临时密钥。通常与主密钥相结合对消息进行加密,且一报一换。密钥分发•通信一方将会话密钥分发给另一方的过程密钥协商•通信双方或多方共同形成会话密钥的过程给定了输入x,通过验证者和证明者之间交换信息,最终,由验证者来根据证明者给出的信息,判断给定的输入是不是在语言L中能力假设:验证者具有多项式时间确定图灵机的计算机能力,但是证明者具有无限大的计算能力;•运行规则:博弈双方共走m步,且由验证者(或证明者)先行;•胜负规则:x属于L,当且仅当,证明者在以x为输入的对局中有必胜策略。完备性与可靠性证明者的忠实性总结::•数字认证过程本质是一个交互证明过程•交互证明过程需要满足两个属性:完整性和完备性•交互证明过程可以在证明者具有无限计算能力下,依然不能进行欺骗;而验证者只需很弱计算能力对称密钥加密的消息认证•采用对称密钥加密过程:密钥的保密性问题:•当敌手截获大量密文(或对应明文)后,可以对密文进行组合,伪造出新的密文结论:不安全采用非对称密钥加密过程:密钥的保密性•采用接收方的公钥问题:•存在前述相同的问题•给定一个伪造M’,任何人可以用接收方的公钥加密信息,达到伪造的目的(存在性不可伪造)如何同时保证数据的完整性和保密性?先认证后加密消息认证(MessageAuthentication):•验证消息没有被改变,即完整性认证Hash函数一般满足以下几个基本需求:1)输入x可以为任意长度;2)输出数据长度固定;3)容易计算,给定任何x,容易计算出x的Hash值H(x);4)单向函数:即给出一个Hash值,很难反向计算出原始输入;5)碰撞性:即难以找到两个不同的输入会得到相同的Hash输出值(在计算上是不可行的)。单向函数•Hash函数•单向性,(强和弱)碰撞性•用于构造消息认证函数单向置换•单向性,唯一性(无碰撞性)•用于构造加密算法Hash函数的安全要求:•单向性:已知y,找出x,使得Hashk(x)=y困难•弱碰撞:已知x,找出x’≠x,,使得Hashk(x’)=Hashk(x)困难•强碰撞:找出任意x’≠x,使得Hashk(x’)=Hashk(x)困难•困难性具有递增关系迭代压缩解决无限输入和有限输出的问题为什么SHA-1是80轮?•每轮只进行了32比特一个单元的混淆•每组5个单元,需要5次•没次压缩为16分组,供需要16次才能将所有信息进行处理•16*5=80轮•前16轮给SHA-1快速“填料”,后64轮加速混淆安全要求:•每一比特的变动都要以1/2概率影响其它所有比特•对于全0和全1信息,输出也必须是随机串•安全核心:非线性函数MAC消息认证码带秘钥的Hash函数用于完整性验证通过Hash函数构造通常的方法:•MACkey(M)=Hash(key||M)•即把密钥key作为Hash的初始向量IV•一些攻击被发现•HMAC,嵌套MAC•通过加密算法构造•CBC-MAC盲验证的定义•指在验证者看不到数据情况下对数据进行验证的方法盲验证本质是交互式证明系统消息认证:对信息系统中的数据或通信中的消息来源(所有权)进行认证消息认证与完整性验证的区别•完整性验证用以保护双方之间交换数据不被修改;但它并不保证数据来源的真实性。•消息认证是认证消息的确来源于某个实体,即消息来源的正确性•选择性伪造:给定x,计算y,使得Verify(x,y)=1•存在性伪造:产生(x,y),使得Verify(x,y)=1基于单向陷门的签名通常构造(补充)令H为Hash()函数•单向陷门f(m)=c是公开函数•存在陷门钥匙k,使得f-1(k;c)=m•签名构造:•验证:如果存在r,使得H(m)=f(H(m)+r),r是计算困难的•签名:r=H(m)+f-1(k;H(m))只有公钥系统才能实现签名RSA签名的安全性能够抵抗选择性伪造,•但敌手很容易进行存在性伪造•选择y,计算x=ydmodn•(x,y)是有效签名•对密文组合ElGamal签名的安全性:唯秘钥存在性伪造缺点:秘钥长度太长基于身份的签名(IBS):采用标识身份的字符串来验证签名的有效性身份加密的本质•本质是群组密码签名:σ=Sign(PP,M,Ski,IDi)验证:Verify(PP,M,σ,IDi)=1?盲签名:不可连接性、匿名性(强、弱)看不到数据的情况下签名者完成签名,称这种签名为盲签名(BlindSignature)。RSA盲签名攻击:利用签名解密密文安全性要求•不可伪造性(unforgeability):只有原始签名者能够产生有效的代理签名。•可验证性(Verifiability):验证者能够相信原始的签名者拥有这份签名文件,原始文件没有改变。•盲性(Blind):验证者无法获得原始文件信息。代理签名(ProxySignature)•是指原始签名人(originalsigner)授权他的签名权给代理签名人(proxysigner),然后让代理签名人代表原始签名人生成有效签名。安全性要求•不可伪造性:只有原始签名者和指定的代理签名者能够产生有效的代理签名。•可验证性(Verifiability):从代理签名中,验证者能够相信原始的签名者认同了这份签名消息。•可识别性(区分性):原始签名者能够从代理签名中识别代理签名者的身份。•不可否认性(undeniablity):代理签名者不能否认由他建立且被认可的代理签名。•可跟踪性(Traceability):多个签名者,应该能够区分不同签名者的签名1)网络安全攻击的形式主要有哪些?可分为哪两大类?解:主要分为被动攻击和主动攻击两种形式。被动攻击:析出信息内容,通信量分析;主动攻击:中断攻击,篡改攻击,伪造攻击,重放攻击。2)实体认证、数据(消息)认证、完整性证明有什么区别?解:实体认证,数据(消息)认证,完整性证明对信息系统各个不同的部分进行验证。实体认证是对信息系统的使用者(实体)的身份进行确认的过程,消息认证是对信息系统中的数据或通信中的消息来源进行认证,完整验证确保信息没有被未经授权的或未知的手段所修改。3)如何进行双向认证?解:数字认证过程被认为是一个交互式的证明过程,交互式过程中包括两个实体:证明者和验证者,交互式证明系统是一个计算模型,像其它计算模型一样,我们的目标是一个语言类L,和一个给定的输入X,判断X是否在L中,所以称为双向认证。4)简述什么是身份管理?其目的何在?解:身份管理系统是指一个广义的管理区,对该系统内的个人进行身份识别管理,其目的是通过授权或加以限制来控制个人接近系统内部的资源5)简单讨论数字认证技术是一个系统性学科。解:系统性学科是各种知识由组合关系和聚合关系构成的严整有序的规则系统,数字认证技术是一门多学科的综合性技术,分为密码学技术,信息隐藏技术,模式识别技术等,所以说它是一个系统型学科。6)讨论TCP/IP协议各层的安全目标以及改进措施解:可用性和效率是Internet系统的重点,没有进行安全设计,分为三层。物理层的安全目标是信道加密,改进措施是信道安全;IP层的安全目标是寻路安全,改进措施是路由认证;TCP层的安全目标是端对端安全,改进措施是端对端认证,安全套接字SSL1)简述交互式证明系统的三个性质?能力假设:验证者具有多项式时间确定图灵机的计算机能力,但是证明者具有无限大的计算能力;运行规则:博弈双方共走m步,且由验证者(或证明者)先行;胜负规则:x属于L,当且仅当,证明者在以x为输入的对局中有必胜策略。2)证明基于二次非剩余的证明协议是一个交互证明系统,并说明如何将Soundness概率降为任意小?基于二次非剩余问题的证明协议第一步:验证者随机选择整数b∈{0,1},以及一个自然数z∈Z,然后计算数值w如下:w=z*z(modn)(ifb=1),w=x*z*z(modn)(ifb=0),并将其送给证明者。第二步:证明者判定w是否属于QNRn,如果是,则令b’=0;否则,令b’=1,并将所得结果b’∈{0,1}传送给验证者。第三步:验证者检测是否b=b’,如果是,输出1,否则输出0。证明:完备性:如果x是二次非剩余类,那么证明者P能以概率1判定w是否是非剩余类,因此验证者V将以概率1接受证明者P的证明;可靠性:如果x是二次剩余类,那么无论验证者V选择何种b,所发送的w都是二次剩余的,因此,P将无法进行判定b,因此只能以概率1/2猜对b。因此,V将以概率1/2接受P的证明。当x为二次剩余类时,V只能以概率1/2接受P的证明。我们可以增加证明的次数,使得验证成功的概率为1/2的多次方,Soundness的概率能降为任意小。3)论述当n=pq,p和q为2个RSA型大素数时,基于二次非剩余的证明协议中证明者与验证者的能力差异?当x为二次剩余类时,证明者无论具有怎样(无穷)的计算能力都无法欺骗验证者。当x为二次非剩余类是,证明者是诚实的,验证这都无法推翻证明者的结论。4)分析当n=21,x=15时,对基于二次非剩余问题的证明协议进行安全性分析QR21={0,1,4,7,9,14,15,16,18}QNR21={2,3,5,6,8,10,11,12,13,17,19,20}x=15是二次非剩余类,那么P能以概率1判定w是否是剩余类,V选择b=1,z=6,w=15是二次剩余类;V选择b=0,z=6,w=15是二次剩余类;所以,无论V选择何种b,所发送的w都是二次剩余的,因此,P将无法进行判定b,因此只能以概率1/2猜对b。5)零知识证明是指验证者能获得最后的证明结果,但是却无法获得待验证的信息,请改进山洞证明系统加以举例说明假设一个山洞有两个通路,但是中间有一堵墙隔离开,证明者知道墙上的机关,能通过这堵墙,那么就可以到达墙的另一边来证明他知道机关怎么打开,同时墙恢复原来的样子。可以看出,如果通过证明,那么可以知道证明者具有通过墙的方法,但是验证者无法知道是什么方法。1.RSA解密的有效性证明解:要验证RSA解密的有效性,只需验证解密是加密的逆运算:定义为欧拉函数,则由于ab(mod()),所以存在某个整数t≥1有ab=t,对所有与n互素的整数x有2.Elgamal密码系统?密钥对产生办法。首先选择一个素数p,获取一个素数p的一个原根g(若g模p的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数))和一个随机数x,且g和x均小于p,计算y=g^x(modp),则其公钥为y,g和p。私钥是x。g和p可由一组用户共享。ElGamal用于数字签名。被签信息为M,首先选择一个随机数k,k与p-1互质,计算a=g^k(modp)再用扩展Euclidean算法对下面方程求解b:M=xa+kb(modp-1)签名就是(a,b)。随机数k须丢弃。验证时要验证下式:y^a*a^b(modp)=g^M(modp)同时一定要检验是否满足1=ap。否则签名容易伪造。ElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与p-1互质,计算a=g^k(modp),b=y^kM(modp)(a,b)为密文,是明文的两倍长。解密时计算M=b/a^x(modp)ElGamal签名的安全性依赖于乘法群(IFp)*上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数.因子以抵抗Pohlig&Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。3.什么是密钥协商?目的何在?密钥协商是两个或多个实体协商,共同建立会话密钥,任何一个参与者均对结果产生影响,不需要任何可信的第三方(TTP)。目的在于保证计算结果的一致性和有效性。4.密钥分发?分哪两类?典型的密钥分发方案有两类:集中式分配方案和分布式分配方案。所谓集中式分配方案是指利