参考:《Computer Networking: A Top Down Approach 》--Chapter 8 security及随书PPT
文章目录
目录
一、什么是网络安全
安全通信(secure communication)所需具有的特性:
1.机密性(confidentiality)
仅有发送方和希望的接收方能够理解传输报文的内容。通过加密使得报文无法被窃听者(eavesdropping)所理解。
2.报文完整性(message integrity)
Alice和Bob希望确保其通信的内容在传输过程中没有被恶意篡改(Malicious tampering, etc.)报文的完整性是指信息在生成,传输,存储和使用过程中发生的人为或非人为的非授权篡改均可以被检测到。例如,利用密码函数生成信息“指纹”,实现完整性检验。
3.认证性(authentication)
认证性是指一个消息的来源和消息本身被正确的标识,同时确保该标识没有被伪造。即证明“你就是你”。例如,利用密钥和认证函数相结合来确定信息的来源。
消息认证:消息认证包括消息源认证(消息来源未被冒充)和消息完整性(消息未被篡改)
身份认证:保证通信实体的真实性
4.不可否认性(Non-repudiation)
用户无法在事后否认曾经进行信息的生成,签发,接收行为。例如,对信息进行数字签名。
可靠性(reliability):特定行为和结果的一致性
可用性(access and availability):保证信息和信息系统随时对授权者可用,不要出现对授权者拒绝服务而被非授权者滥用的情况
可控性(controllability):授权实体可以控制信息系统和信息使用的特性
审计(auditing):确保实体的活动可被跟踪
以上也是攻击者主要 攻击目标 ← 相互转化 → 安全目标
二、Alice-Bob
1.Alice&Bob分别代表了什么?
1. Alice和Bob可以是位于两个端系统的人类用户。如真实的Alice和真实的Bob真的需要交换安全电子邮件;
2.Alice和Bob也可以参与电子商务事务。例如真实的Bob希望安全地向一台Web服务器传输他的信用卡号码,以在线购买商品。类似的,Alice需要与银行进行在线交互;
3.Alice和Bob也可以是网络基础设施地一部分。例如DNS(域名解析系统)或者交换路由选择信息的路由选择程序需要在两者之间进行安全通信。其他实例如路由器交换路由表更新(routers exchanging routing table updates)
2.adversaries能做什么?
能窃听、冒充、修改插入删除、劫持、拒绝服务。
三、加密原理
1.密码学符号表示
通过读文章积累
最基本的:
另请参考:
记录一些密码学中常用符号_Lkiopy的博客-CSDN博客_密码学符号
2.对称密码体制
通信各方加密密钥和解密密钥相同(Ks),或者虽然不同,但由其中的任意一个可以很容易地导出另外一个,那么该系统所采用的就是对称密码体制。简单例如,单字母替换密码的替换模式。
DES算法原理
DES算法的入口参数包括Key、Data、Mode。其中Key是8个字节共64位,是DES算法的工作密钥;Data也是8个字节64位,是要被加密或者解密的数据;Mode为DES的工作方式,包括加密或者解密。为了网络上信息传输的安全(防止第三方窃取信息看到明文),发送方和接收方分别进行加密和解密,这样信息在网络上传输的时候就是相对安全的。
DES属于一种对称加密技术。
这个youtube上的讲解还是很不错的: https://www.youtube.com/watch?v=Y61qn_SQl40
从更高的层次来看,DES的加密和解密过程相似,如下所示:
DES有16个回合(round)的操作,对于回合n,64-bit密文作为DES算法的input,而64位比特又可以被划分为左32位和右32位,如下图所示。第n回合的右32位可以直接作为n+1回合密文的右32位;而第n回合的右32位又通过mangler function,首先扩展为48位,然后和48位的program key进行异或操作(XOR),然后使用S-boxes将48位替换为32位,再与第n回合的左32位做异或操作,得到n+1回合的右32位。通过以上的操作即可完成一个回合的操作。
经过16个回合,输出最后的密文,图解如下:
3.公开密钥密码体制
要求:(1)公钥与私钥之间的关系满足
(2)已知公钥,根据公钥计算出私钥是难以实现的。
RSA
代数基础:取模运算。
推荐教程:
(1)取模运算的规律 https://www.youtube.com/watch?v=Eg6CTCu8iio
(2)取模运算的运算法则(加减乘除) https://www.youtube.com/watch?v=K6sNRSPwha8
我的总结:
RSA密钥生成、加密、解密的过程:https://zh.m.wikipedia.org/zh-sg/RSA%E5%8A%A0%E5%AF%86%E6%BC%94%E7%AE%97%E6%B3%95
公钥与私钥的生成:
- 首先选择两个大素数p,q(比如说分别取1024位的二进制数),然后计算n=pq, z=(p-1)(q-1)。
- 取e(e<n), 满足e与z没有公因子。(即e与z互质)
- 取d,满足ed-1恰能被z整除。(即ed mod z = 1 )
- 经过以上的操作,我们可以得到公钥为 (n,e), 私钥为 (n,d).
加密:
- 经过KeyGen()操作之后,我们已知(n,e)和(n,d)。则对于报文m (m<n), 可以通过如下计算得到RSA加密得到的密文:
解密:
- 同样的,我们可以按照加密的思路解密:
- 解密的要求:
证明:
- 举例:
RSA一个重要的性质:
对于消息 先用公钥加密再用私钥解密 和 先用私钥加密再用公钥解密(数字签名) 得到的结果都是消息本身。
RSA的优缺点评估:
使用RSA只能加密少量数据,大量的数据加密还要靠对称密码算法。实际应用中一般用来加密对称算法的密钥,而密文多用对称加密算法加密传输。
优点
- 当p和q是一个大素数的时候,从它们的积p*q去分解因子p和q,这是一个公认的数学难题。比如当p*q大到1024位时,迄今为止还没有人能够利用任何计算工具去完成分解因子的任务。因此,RSA从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
缺点
- 虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。
- 产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
- 分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。因此,使用RSA只能加密少量数据,大量的数据加密还要靠对称密码算法。
- 同样安全级别的加密算法,RSA需要更长的密钥。这就使运算速度较慢,较对称密码算法慢几个数量级。且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。
总结
以上介绍了关于计算机网络中关于安全的基本概念和加密原理,后续认证和攻击内容将持续更新。感谢支持