密码协议为我们最近的一个课程,由于这个课程是纯英文讲解,所以大部门内容在学习的时候有些难度。由于密码协议在信息安全的地位非常高,对以后的工作、研究有非常大的帮助,所以在此我准备将最近的课程记录下来,并做相关的分析以便后期的复习与使用。
若有写的不到位的地方还请小伙伴们指出。
由于课程的第一章节为密码学的简单介绍,比如密码分对称、非对称密码。密码攻击的类型啊等等。所以在此我就不对其进行重述,直接从第二章节开始。
•A protocol is aseries of steps,involving two or more parties, designed to accomplish a task
•Characteristicsof a protocol
–Allparties must know the protocol
–Allparties must agree to follow it
–Mustbe unambiguous
–Mustbe complete
•A cryptographic protocol is aprotocol that uses cryptography to prevent or detect eavesdropping and cheating
简单来说,开端肯定要对密码协议的概念进行总结。大致的含义为:密码协议中包含许多步骤,有众多的参与者,每个参与者需要对协议了解并遵循协议的规则。对于协议本身来说,此协议需要清晰明朗、具有完整性。
对于签名的协议来说,其需要使用签名算法去防止窃听、篡改以及欺骗的发生。
•These days, more and more humaninteraction takes place over computer networks instead of face-to-face.Computers need formal protocols to do the same things that people do withoutthinking.
协议的目的:在这个以网络来代替面对面交流的时代,计算机需要一些标准的协议去保证通信交流的合理以及安全。
Types of Security Protocols
安全协议分下面三种类型
① Arbitrated protocols
② Adjudicated protocols
③ Self-enforcing protocols
简单介绍一下上述三种协议。
①Arbitrated Protocols
简单来说这个协议是有第三方进行仲裁。而这个第三方是指参与者都必须信任的,例如:律师等。
但是这种类型的协议是存在以下的问题:
•Two parties are likely to besuspicious of afaceless arbitrator
•Computer network must bear the costof maintaining an arbitrator
•Delay inherent in any arbitratedprotocol
•Arbitrator becomes a vulnerablepoint for attackers
①参与者或许会对这个未谋面的第三方机构产生怀疑。
②计算机网络中需要额外的承担第三方的计算资源。
③这会使本来很简单的传送变得缓慢(因为多了一步认证)。
④认证机构会变成易受攻击装工具的点。
②Adjudicated Protocols
此协议分为两个小部分,一是“无仲裁者协议”,二是“仲裁协议”。
•Non-arbitratedsubprotocol(executed every time)
1.Aliceand Bob negotiate the terms of the contract
2.Alicesigns the contract
3.Bobsigns the contract
•Adjudicatedsubprotocol(executed only in case of a dispute):
1.Aliceand Bob appear before a judge
2.Alicepresents her evidence
3.Bobpresents his evidenceThejudge rules on the evidence
在“无仲裁者”协议中,A和B要进行对合同的签名已达到认证的目的。而在“仲裁者”协议中,仲裁者要根据AB互相的evidence来judge他们的合法性。
②Self-Enforcing Protocols
此协议不需要仲裁者的参与并且此协议能够保证公平性。协议的具体内容是:参与者可以自行判断对方是否在进行欺骗行为并且可以根据判断结果立刻终止交易。
然而,there is not a self-enforcing protocol for every situation.
之后我们进入相对比较详细的密码协议分析模块。
一、使用对称密码加密的过程
1.Alice and Bob agree on acryptosystem
2.Alice and Bob agree on a key
3.Alice encrypts her plaintext usingthe key and the algorithm
4.Alice sends ciphertext to Bob
5.Bob decrypts ciphertext with the same key and thealgorithm
上述内容容易理解,所以不在详细阐述。
而使用此方法有一些弊端:
①秘钥分发必须是保密的。
②秘钥量过于庞大。比如我有n个参与者,那么我将需要n*(n-1)/2个秘钥。
二、使用One-Way 方法进行处理
one-way function 概述上述内容为此方法的概述,简单来说就是需要我们找一个函数正向容易计算,而反向却无法计算。倘若头比较铁就是要硬算的话,需要花费millions of years的时间。
对于上述概念,我们对应的有 one-way 哈希函数,具体来说,哈希函数要具备将任意位的数据处理为固定位数的结果。除此之外,改函数还需要具备防碰撞的功能、应该很难找到同样哈希值的两个不同的数。
三、基于公钥的密码协议
课件里写了各种公钥的基础知识,鉴于这个比较基础就不写在这里了。。
课件里放了一个关于公钥的问题。
非对称密码问题简单解释一下是这样:为啥非对称密码都用来加密秘钥去了而不是加密消息?
①使用公钥加密速度过于慢。
②其易受到选择明文攻击。
四、基于混合加密的密码体制
公钥密码常用于分发会话秘钥,而会话秘钥通常用于对称加密。
下面放一个例子:
1.Bobsends Alice his public key——B给A他的公钥。
2.Alicegenerates a random session key, K,encrypts it using Bob’s public key, and sends it to Bob. EB(K).——A生成一个会话秘钥K,并用B的公钥加密K,然后发给B。
3.Bobdecrypts Alice’s message using his private key to recover the session key. DB(EB(K))= K——B用私钥解密得K。
4.Bothof them encrypt their communications using the same session key.他们之后用会话秘钥进行通信。
五、使用对称密码与仲裁者对文件进行签名
此过程设计三个部分——A玩家(发送人)、B玩家(接收人)与仲裁者。
0,仲裁者向A、B分别发送Ka,Kb。
1,A用Ka加密消息并发送给B,然后将明文给仲裁者。
2,仲裁者也用Ka加密一遍明文。得到同样的密文。
3,仲裁者用Kb加密上述密文,然后声明这是A发来的消息。
4,B用Kb解密消息。
然后这个协议也存在许多问题。
1,多了一个Trent,时间就浪费了许多。
2,Trent是这个协议的一个瓶颈,容易被攻击。
3,网络中的Trent很难值得被相信。
六、使用非对称密码对文件进行签名
这个协议过程很简单,就是A用他的私钥加密一下文件,之后B用A的公钥解密就好,即可以得到M,也可以验证身份。(因为只有A有私钥)
不过这个过程存在重放攻击,所以使用时间戳来解决这个问题。
七、使用非对称密码与哈希函数对文件进行签名
具体过程如:
1,A对文件进行哈希函数的处理。
2,A用他的私钥加密这个哈希结果。(因为用了私钥,所以达到了签名的效果,不过这次签名hash是因为怕文件过长导致加密时间过长)
3,A把文件和加密的哈希发给B。
4,B也对原文件进行同样的哈希处理并把A发来的密文解密,进行比较。
八、多方签名验证
这个过程涉及到第三方C,具体内容如下:
1,A对文件用哈希处理并签名。
2,B对文件用哈希处理并签名(文件与A相同)。
3,B把签名后的内容给A。
4,A把两个签名内容和原文件给C,让他判断是否都是合法的。
5,C验证他们的签名。
这里也存在一些问题,例如: A可以不承认自己曾签名文件,他可以说是私钥被窃取了。
下面写出解决漏洞的方法:
1,A签名一个消息。
2,A签名一个标记头然后把带有标记头的已签名消息发给C。
3,C检测A的合法性并在密文基础上加上时间戳,然后对其进行C的签名,发给AB。
4,B验证C的合法性、A的合法性。
5,A验证C发给他的信息,如果此消息不是A发送的,他需要向BC快速声明。
公钥密码中存在中间人攻击,所以我们需要使用随机数来做Nonce来抵抗中间人攻击的重放。
网友评论