zoukankan      html  css  js  c++  java
  • 密码学基础

    密码学基础总结

    1.安全通信要解决的问题
      1.窃听
      2.欺骗
      3.伪造
      4.否认
     
    2.解决
      1.加密
      2.消息认证码或者数字签名
      3.消息认证码或者数字签名
      4.数字签名
      
    3.数字证书用来解决公钥持有人无法识别的问题
    
    1.电子密码本模式ECB
    2.密码链模式CBC
    3.密文反馈模式CFB
    4.输出反馈模式OFB
    5.计数器模式CTR
    
    1.对称加密不能解决的问题
      1.钥匙交付问题
      
    2.非对称加密不能解决的问题
      1.加密和解密的时间都比对称加密所需要的时间要长
      2.公开密钥的可靠性
    
    3.混合加密
      1.用来解决密钥交付问题和加密时间长的问题
      2.ssl采用的是混合加密的方式
      
    4.数字证书系统
      1.可以保证公钥创建者
      
    5.diffle-hellman密钥交换
      1.用来解决密钥交换问题
      
    6.消息鉴别码
      1.用来实现认证和伪造检测
      
    7.数字签名
      1.用来解决防否认的问题
      2.不能解决公钥创建者认证问题
    
    
    1.什么是对称加密
      1.加解密钥相同
    2.能干什么
      1.比非对称加密效率高
    3.怎么用
      1.加密算法
        1.des
           1.不安全
           2.密钥8byte
           3.分组加密,每组8字节
        2.3des
           1.安全效率低
           2.密钥8*3
           3.分组长度8byde
        3.aes
           1.安全,效率高
           2.密钥16,32,64字节
           3.分组长度16字节
      2.分组模式
        1.ecb,不安全,不推荐
        2.cbc,安全
        3.cfb,安全,不推荐
        4.ofb,安全,不推荐
        5.ctr,安全,推荐,效率高
        
     3.分组填充
        1.ecb,cbc
        2.计算最后一个分组缺少多少个字节
        3.尾部填充N个字节
        4.指定填充值=N,解密删除多少个字节
        
    4.初始化向量
        1.cbc,cfb,ofb
        2.长度和算法对应的分组长度相同
        
    
    1.非对称加密
      1.公钥加密,私钥解密,数据通信
      2.私钥加密,公钥解密,数字签名
    
    2.能干什么
      1.数据通信
      2.数字签名
      3.保证数据完整性
      4.防止否认
      
    3.怎么用
      1.RSA
      2.ECC
      
    4.数据加密
      1.需要生成密钥对
      2.密钥写入磁盘
       1.x509序列化
       2.pem编码
      3.加密从文件中读公钥匙
       1.pem解码
       2.x509反序列化
      4.解密从文件中读私钥
       1.pem解码
       2.x509反序列化
       
    5.数字签名
      1.从文件中读私钥
        1.pem解码
        2.x509反序列化
      2.对原始数据进行hash运算
      3.调用签名方法
      
    6.签名认证
      1.从文件中读公钥
        1.pem解码
        2.x509反序列化
      2.对原始数据进行hash运算
      3.调用验证方法
      
    7.场景总结
      1.密钥分发
      2.数字签名
    
    1.hash函数
      1.接收一个输入得到一个输出,得到的长度是定长的
      
    2.能干什么
      1.数据校验
      2.数据完整性
      3.秒传
      
    3.怎么用
      1.md4,md5
        1.散列值16字节
      2.sha1
        1.散列值20字节
      3.sha224
        1.散列值28字节
      4.sha256
        1.散列值48字节
      5.sha384
        1.散列值48字节
      6.sha512
        1.散列值64字节
        
    
    1.消息认证码
      1.对数据进行hash运算添加了共享密钥参与其中
      2.保证了数据的完整性
      
    2.怎么用
      1.通信算法协商好共享密钥
      2.协商好hash算法
      3.(原文+密钥)*hash函数=消息认证码
      
    3.缺陷
      1.不能解决第三方认证
      2.不能防止否认
      3.共享密钥分发困难
    
    
  • 相关阅读:
    知识积累
    来西安对吗
    python循环语句---------while、for
    postman接口功能测试
    Laravel环境搭建
    Vue
    搭建Vue.js环境
    Atom
    PHP
    thinkphp-无限分类下根据任意部门获取顶级部门ID
  • 原文地址:https://www.cnblogs.com/pluslius/p/11762291.html
Copyright © 2011-2022 走看看