计算机网络---加密解密ssl

1.对称加密

对称加密技术分为两种:流密码(用于无线LAN的安全性)、块密码(多用于因特网协议的加密,比如ssl用于tcp连接安全性,PGP用于安全电子邮件)

1.1 块密码

1.1.1 块密码密文如何生成?

对要加密的报文进行分块,每一块都被分为了k个比特位,然后对每一块进行独立加密,采取一对一映射,即k比特明文被映射为k比特密文。
那么对于一个2比特明文来说,它的一种明文到密文的映射表可以是:

输入输出
0001
0110
1011
1100

对于这样一种生成密文方式而言,如果一个明文为111001,那么当每块被分为2比特时,则对应的密文应该为:11==》00;10==》11;01==》10;即密文为001110。
我们可以看出对于一块被分为k比特的报文,映射数量在(2k)!,如果k太小了,完全可以穷举来破解,为了防止被蛮力破解,一般取k=64或者更大。另一方面如果我们在客户端和服务端都维护这样具有2k个输入的一张表来生成密文,实际是不太可能,数量级太大了。
那么,它如何生成密文块?用函数模拟随机排列!下面以64比特位来举例:
首先将64比特位划分为8个块,每个块8个比特位,每一个8比特块都由8比特-8比特表处理,对第i个块设置让标志位Ti表进行处理,然后这8个块经过自己所对应的表处理完之后,全部都放入到一个64比特置乱函数中,经过这个函数处理之后会输出一个新的64比特位,然后把这个新的64比特位再经过上述处理循环n次,最终得到了一个64比特密文块。
目前,比较流行的就是DES(数据加密标准)使用了56比特。

1.1.2 块密码链接

但是!!!又出现了新的问题,对于相同的明文块会生成相同密文,这样就有可能被攻击者猜出来!那么怎么解决呢?
可以在密文中混合某些随机性,使得相同的明文产生了不同的密文。
我们假设m(i)表示第i个明文块,c(i)表示第i个密文块;
首先发送方为第i个明文块生成一个随机数r(i),那么c(i)就为对(m(i)异或r(i))经过秘钥加密之后的值得到。
而对于接收方,它知道r(i)和密文c(i),则m(i)由对(c(i)异或r(i))经过秘钥解密之后的值得到。
尽管r(i)由明文发送,就算攻击人看到,但是他不知道秘钥,也看不到数据。
然而!!!引入随机性也出现了另一个问题,因为引入了随机数,那么必须要传输两倍的比特,就需要两倍带宽!故,出现了密码块链接技术(CBC),它的基本思想是当第一次发送报文会发送一个随机数,之后就不再发随机数了,而是用发送方和接收方使用计算的编码块代替后继的随机数。具体如下:

  1. 发送方第一次发送明文m(0)时,生成一个随机数c(0),对(m(0)异或c(0))经秘钥加密得到密文c(1),并且把密文c(1)和随机数c(0)发给接收方。
  2. 接收方接收到之后c(0)和密文c(1)之后,对(c(1)异或c(0))经秘钥解密后得到明文m(1)。
  3. 而对于第i个块,发送方会通过对(m(i)异或c(i-1))经秘钥加密来得到密文c(i)。

2.非对称加密

2.1公开秘钥加密

非对称加密有一个公钥,一个私钥组成,公钥每个人都可以申请到,而私钥仅有一个,当客户端向服务端通信时,服务端产生一个公钥X和私钥Y,客户端向服务端申请一个公钥,而私钥服务端私有,对于明文m而言,可以用私钥解密公钥加密过的明文,或是用公钥解密私钥加密过的明文,即就是:Y(X(m))=X(Y(m)),目前应用最广泛的公开秘钥算法就是RSA算法,具体算法步骤如下:

  1. 选择两个大素数p,q,它们越大,加密等级越高,但加密解密开销也越大
  2. 让n=pq,z=(p-1)x(q-1)
  3. 取一个小于n的数e,要求e与z没有除了1之外的公因数,把(n,e)作为公钥,用于加密,假设明文为m,加密后的密文c=me mod n
  4. 取一个数d,要求d满足ed mod z为1,那么把(n,d)作为私钥,用于解密,则解密之后的明文m=cd mod n

2.2 RSA证明

加密后的密文:c=me mod n (1)
解密后的明文:m=cd mod n (2)
那么把(1)代入(2)式中:m=cd mod n =(me mod n)d mod n =med mod n
此时只需证明:m=med mod n即可!!!
引入数论中一个定理:
如果p,q为素数,且n=pq,z=(p-1)x(q-1),那么满足XY mod n=X^Y mod Z^ mod n
而令X=m,Y=ed,则有med mod n = m^ed mod z^ mod n,又因为ed mod z=1,故成立!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值