计算机中的网络安全--笔记(1)

2021-07-23  本文已影响0人  某时橙

安全通信具有下列所需要的的特性:

词语解释:
明文:报文的最初形式 m
密文:经过加密算法加密的明文 KA(m)
加密密钥:KA
加密过程:KA(m)
解谜密钥:KB
解谜过程:KB(KA(m))=m

两种系统:

公开密钥加密

K+:公钥
K-:私钥
加密:K+(m),其中K+的含义包括一个用于加密的算法和一个公开密钥
解密:K-(K+(m)),这里的K+同上:算法+钥匙

RSA

经典公钥加密算法
其过程:

1. 大素数p和q
2. 计算n=pq,z=(p-1)(q-1)
3. 选择e,e和z互素
4. 求一个d,使(ed)mod z =1
5. 得到:
K+:(n,e) 公钥
K-:(n,d)  私钥
加密报文:c=(m^e)mod ns
解密报文:m=(c^d)mod n

e=5,n=35,加密:

字母 m:数字表示 m^e c=m^e mod n
l 12 248832 17
o 15 759375 15
v 22 5153632 22
e 5 3125 10

d=29,n=35,解密:

密文 c^d m=c^d mod n 明文
17 481968572106750915091........ 12 l
15 12783.... 15 o
22 85164... 22 v
10 10000.... 5 e

报文完整性

报文完整性确保了报文在发送途中没有被篡改,这涉及了几个概念:密码散列函数,数字签名

密码散列函数

通常用H(x)来表示,它的特性之一:

作用:(m,H(m))可以保证发送报文不被篡改。
常见的密码散列函数:MD5,SHA-1

数字签名

上面如果单纯用密码散列函数会引发这样一个问题:
入侵者虽然不能篡改报文,但是可以整体替换整个报文发送(m',H(m')),这样仍然会使通信不安全,因此这种方式只保证了报文完整性,而不能端点鉴别。下面的数字签名解决了这个问题

K-(H(m)) ->实际上就是用发送方私钥加密的密码散列函数
发送方可发送(m,K-(H(m)))
接收方视角:
K+(k)==H(m)? 相同则证明没有被篡改,且因为是用发送方的公钥来解密,所以可以证明对方就是发送方。
那么引出下一个问题:如何可靠的获取发送方的公钥,如果这个不能保证,数字签名依然是不安全的。

证书

公钥证书CA
Bob从CA获取到的证书:CA-(B,KB+)
其中CA-是CA的私钥,B是Bob的实体信息,KB+是bob的公钥
接收方用CA+解密CA-(B,KB+),即可获得KB+

上一篇 下一篇

猜你喜欢

热点阅读