密码学算法及应用(一)

问题

       随着互联网和物联网的发展,安全性问题也显得尤为重要,关于用户信息泄露或者网站安全漏洞的报道也越来越多。

信息安全

  • 本地敏感信息的机密性

     -- 数据库或文件中关键字段的加密

     -- 访问授权限制

  • 网络传输的安全性

     -- 身份的合法性

     -- 通信的机密性

     -- 信息的完整性


       要解决这些问题,需要计算机密码学 + 授权限制 + 规章制度等各种措施去保障


       网络传输过程环境更复杂,不可控性更大,所以 重点讲网络传输的安全性和怎样使用密码学算法解决此问题。

网络传输的安全性

       互联网中使用最广泛的协议就是HTTP,而HTTP是不安全的存在的问题。

     -- 网站的合法性

     -- 客户端的合法性

     -- 通信的机密性

     -- 信息的完整性

HTTPS就是来解决这些问题的


如何解决?

  • 网站的合法性 -- 证书
  • 客户端的合法性 -- 证书
  • 通信的机密性 – 数据加密
  • 信息的完整性 – 消息认证码


实现过程需要用到各种密码学算法

密码学算法分类

  • 消息编码:如BASE64
  • 对称加密:DES 3DESAES(最新标准)
  • 非对称加密:RSADH秘钥交换
  • 摘要算法:MD类、SHA类、MAC
  • 签名算法:RSASignatureDSASignature

       

       其中签名算法是非对称加密和摘要算法的组合应用

学习的意义

      学会了这些算法,我们可以根据实际情况进行组合应用,来保证通信的安全性;不一定要全套都走HTTPS

BASE64编码

        用来对二进制数据进行编码,转换成一个字符串;比如:二进制的秘钥、图片,或者url中传的字符串(变成不易被识别的字符),你可以把它理解成一个公开了秘钥的加密算法(秘钥就是BASE64的编码表)

算法    3*8 = 4*6     不够的补0

         Base64编码要求把38位字节(3*8=24)转化为46位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,完全的六位填充输出字符使用'=',因此编码后输出的文本末尾可能会出现12'='

为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。

BASE64编码表

19 09 66 LS 96 SS ts zs ts Supooua 69 st SE bur pooua ez tz zz SuTpooua Suvpooug   

example 

hello  --->  aGVsbG8=

1.  hello --> 01101000 01100101 01101100 01101100 01101111

2.  补全 01101000 01100101 01101100 01101100 01101111 00000000

3.  6bit作为一个编码单位

011010 000110 010101 101100 011011000110 111100 000000

   26           6               21       4427              6          60=

     a           GV        s             bG          8             =

加密通信模型

S 解 密 算 法 R 加 密 算 法 密 钥 源


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值