《我的第一本算法书》第五章 ’安全算法‘上半章 笔记

5.1安全和算法

  • 用互联网传输数据会发生的四个问题:窃听,假冒,篡改,事后否认。
  • 四个问题的解决方法:

5.2加密的基础知识

加密:A想向B传输数据,为了防止被窃听,因此把所要保护的数据加密,加密后的数据被称为“密文”。

解密:B收到密文后,解除加密得到原本的数据,这被称为“解密”。

加密的具体操作:在计算机里,所有数据都由0和1的二进制来组成。对计算机来说,数据是有意义的。但对数据进行加密后,计算机就认为它是一串无规则的数字罗列。这个过程中需要用到密钥。加密就是利用密钥对数据进行加工的过程。

5.3哈希函数

  • 哈希函数可以想搅拌机一样把不同长度的数据转化成固定长度(要求使用16进制)的无规则数值,这个数值就是哈希值。
  • 输入的数据完全不同,其哈希值仍可能一样。这种情况叫“哈希冲突”。输入的数据一样,其哈希值一定一样。输入的数据也许很相似,但哈希值仍会有很大区别。
  • 不可能从哈希值反向推算出原本的数据。
  • 计算机在储存哈希值时,仍用二进制储存。也就是说,哈希函数存在于计算机内部的。
  • 求哈希值的计算相对简单(?)。

解说:

  1. 哈希函数算法具有代表性的是MD5,SHA-1和SHA-2。其中SHA-2应用较为广泛。
  2. 使用的算法不同,就算输入的数据相同,得到得哈希值也是不同的。
  3. 用户在电脑上的密码往往只保存哈希值,用户输入密码时会算出该输入密码的哈希值。再将它与服务器中的哈希值相比对。这样做不会暴露原本的密码。

5.4共享密匙加密

加密数据时方法主要有两种:加密和解密都使用相同密匙的“共享密匙加密”和分别使用不同密匙的“公开密匙加密”。

本节讲述共享密匙加密。

  • 共享密匙加密也被称作“对称加密”。
  • 我们在把密文交给对方时,密文可能已经被窃取。如果我们把密匙交给对方时,密匙也可能被窃取,这样密码就会泄露。我们为了应对这种情况有两种方法:“密匙交换协议”和“公开密匙加密”。

提示:如果使用共享密匙加密,会因为发送人数的增多而增加,需要的数量便是n*(n-1)/2。

5.5公开密匙加密

公开密匙加密又被称为“非对称加密”。其使用的密匙叫做“公开密匙”,解密用的叫做“私有密匙”。

具体操作:

  1. 接收方B需要生成公开密匙和私有密匙。
  2. B将公开密匙传输给发送者A。
  3. A使用公开密匙进行加密,并将密文传输给B。
  4. B使用私有密匙解密密文。

注:

  1. 这里的公开密文只能加密,无法解密,因此即使X窃取了密文和公开密匙,也无法解密密文。
  2. 当有多人想向B发送数据时,必须提前从网上取得B的公开密匙。

提示:公开密匙加密虽然密匙数量下降,但同样存在有缺点。当接受方B把自己公开密匙交给A时,且窃听者X可能把B的公开密匙替换成自己的的。等到发送方A用X的公开密匙加密发给B时,X会再次窃取,用自己的私有密匙解密。并用B的公有密匙加密错误的信息发送给B,从而进行攻击,这就叫“中间人攻击”。

补充:为了使A判断公开密匙是否来自于B,我们会使用“数字证书”。另外,公开密匙加密比较耗时,不适合持续发送零碎信息,这时候我们就要用“混合加密”。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值