算法学习day6

参考资料《我的第一本算法书》
第5章 安全算法

(1)传输数据时的四个问题:窃听、假冒、篡改、事后否认。

(2)解决“窃听”问题,可使用“加密”技术。而这一过程包括加密阶段和解密阶段。
①加密:经过某种运算(如用密钥对数据进行数值运算),变成计算机无法理解的数的过程。
②解密:通过密钥进行数值运算,把密文恢复成原本数据的过程。

(3)哈希函数
①可用于加密,比如用户输入的密码保存到服务器需要用到哈希函数。
②哈希函数可以把给定的数据转换成固定长度的无规律数值。
③特征如下:
*输出的哈希值数据长度不变;
*同样情况下,如果输入的数据相同,那么输出的哈希值也必定相同;
*即使输入数据有点相似,得到的哈希值也会有很大差异;
*当输入的两个数据完全不同时,输出的哈希值可能相同,这种情况称为哈希冲突,不过出现的概率低;
*不可能由哈希值反推算出原本的数据;
*求哈希值的计算相对容易。
④哈希函数的算法中,具有代表性的是MD5、SHA-1、SHA-2,其中SHA-2使用广泛。

(4)加密技术可分为两种:“共享密钥加密”(或“对称加密”,即加密和解密都使用相同密钥),“公共密钥加密”(或“非对称加密”,即加密和解密分别使用不同的密钥)。

(5)共享密钥加密
①实现其算法有:凯撒密码、AES、DES、动态口令。其中AES使用广泛。
②缺点:当收发双方无法直接沟通时,密钥也需要发送,此时密钥也有可能会被窃听到。所以,需要找到把密钥安全送出的方法,这就是“密钥分配问题”,可使用“密钥交换协议”和“公开密钥加密”。

(6)公开密钥加密
①加密用的密钥叫作“公开密钥”,解密用的密钥叫作“私有密钥”。
②其一般过程如下:
*由收数据方生成公开密钥和私有密钥;
*将公开密钥发给发数据方;
*发数据方用公开密钥加密,收数据方用私有密钥解密。
③缺点:
*也有可能发生“中间人攻击”,即中途替换公开密钥来窃听数据的攻击方法。这是因为发数据者无法判断收到的公开密钥是否是来自收数据者。
*加密和解密过程比较耗时。可以用“混合加密”解决这一问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值