• 7.12-对称性加密技术 7.13-非对称性加密技术7.14-单向加密 7.15-PKI 7.16-签名+加密、hash+签名


    一、加密技术

    1、概念

    • 加密机制是保护数据安全的重要手段;
    • 加密的基本原理就是对原来明文的消息(文件、数据),按照某种特定的算法进行处理,使其成为一段不可阅读的、不可理解的一段代码,称为密文;只有在输入特定的密钥以后,才能把对应的密文给解密出来。

    2、加密技术的分类

    (1)对称性加密技术

    (2)非对称性加密技术

    (3)单向加密(不可逆加密)

    3、可逆加密技术

    • 对称性、非对称性加密技术都是可还原的。

    二、对称性加密技术

    1、概念

    • 加密和解密用的是相同的密钥;

    2、特点

    优点
    • 算法效率高
    • 速度快
    • 适用于对大数据进行加密
    缺点
    • 密钥分发困难:例如在互联网上要与1000个用户进行通信, 要么得给1000个人每个人都准备一个密钥,此时的密钥管理起来有很大难度;要么一个密钥分发给1000个人,此时有一个人的密钥你泄露,那么整个加密体系就失效了。

    3、常见加密算法

    • DES(数字加密标准)、3DES(三重数字加密标准)
    • RC-5、IDEA算法

    三、非对称性加密技术

    1、概念

    • 加密和解密用的不是同一个密钥。

    2、特点

    • 密钥成对出现;用公钥加密就必须用私钥解密,用私钥加密就必须用公钥解密;
    • 公钥对外公开;
    • 私钥只有持有者持有;
    • 公钥和私钥之间存在关联,但是密钥之间不能相互推导;
    缺点
    • 算法相对于对称加密算法效率低:进行大量加密解密时,比较耗时。

    3、常见加密算法

    • RSA
    • ECC(椭圆曲线算法)
    • DSA

    四、单向加密

    1、概念

    • 非可逆加密方式;
    • 密码加密以后是不可还原的。

    2、常见加密算法

    • MD5:用字符和算法生成对应的密文。操作系统采用的加密方式是MD5。
    • SHA:安全的hash算法。

    3、hash算法

    • 会按约定生成固定长度的二进制位(字符位)。
    • 不管消息(文件、数据)的内容有多大,生成的字符长度是固定的。
    • 只要消息的内容发生了改变,这个算法产生的hash的值就会不同;也就是说只有消息内容完全一样时,hash值才会一样。

    五、加密技术考点

    1、各种加密技术的特点

    • 只要破解密文的代价高于获取密文中信息的回报,就认为这种加密机制是安全的 。

    2、各种加密技术的代码

    六、PKI中的相关概念

    1、PKI的概念

    • PKI是公钥基础设施。
    • 是遵循既定标准的密钥管理平台。
    • 能为网络中的所有应用提供“信息加密”、“数据签名”等密码相关的服务,以及必须的密钥和证书管理系统。密钥是成对出现的,加密和解密用的不是同一个密钥。

    2、CA的概念

    • 证书的颁发机构。
    • 向用户或者机构颁发对应的数字证书。

    3、RA

    • 注册机构;
    • 负责接收用户对证书的申请注册。

    4、数字证书

    • 一个2k大的文件,也就是把一些用户信息和公钥捆绑在一起的数字文件。
    • 颁发数字证书的CA会用自己的私钥对这一个颁发的数字证书进行加密,由于非对称性加密,用私钥加密就需要用公钥解密,所以CA用自己的私钥对颁发的数字证书进行加密,就需要用CA自己的公钥对数字证书进行解密,而公钥是对外公开的,所以所有用户都能对CA加密的数字证书进行解密,所以此处CA证书用自己的私钥对数字证书进行加密,是为了保证,这个数字证书,确实是由CA颁发的,也就是说可以通过CA的公钥验证数字证书的真假。

    5、证书实现的安全保证

    • 机密性:通过加密实现。例如用B的公钥给A的消息加密,在互联网传输的过程中,密文是不会被破解的,只有当密文到达B时,通过B的私钥才能对密文进行解密,从而保证了消息的“机密性”。
    • 不可否认性:通过加密实现。
    • 完整性:通过数据签名实现。例如用A的私钥给A发送的消息加密以后发送给B,如果过程中黑客修改了消息内容,数据签名就会丢失,也就是说B用A的公钥就无法解开A发送来的密文了,这时数据签名的不正常,就会让我们发现数据被篡改过了。
    • 鉴别:通过数据签名实现。例如A用A的私钥加密,只能用A的公钥解密;所以用户B无法伪造A的身份发信息,就实现了身份的鉴别。

    6、加密

     

    • 用B的公钥给A的消息加密,在互联网传输的过程中,密文是不会被破解的,只有当密文到达B时,通过B的私钥才能对密文进行解密,从而保证了消息的“机密性”

    7、签名

     
    • 用A的私钥给A的消息加密,秘文到达B后,B只能通过A的公钥进行解密,A的公钥是公开的,所以在互联网的所有用户都能解开这个密文,但是可以确认发送消息的是A,所以这里通过A的私钥给A的消息加密,起到了“签名”的作用,标识了这个消息是A发送的。

    8、签名+加密

    • 如果在互联网上即想实现机密性,又想实现签名,就将“签名”和“加密”两种算法结合在一起使用。
    • 先对A要发送的消息进行签名(用A的私钥对消息签名),再用B的公钥对消息进行加密;B收到消息后,先用B自己的私钥解密,再用A的公钥验证签名。
    • 这就同时实现了数字证书的四个作用:机密性、不可否认性、完整性、身份的鉴别性。

     

    七、hash+签名

    • 由于非对称性加密对一个明文进行加密时,速度会比较慢;但签名又无法保证机密性。
    • 所以在实际的应用过程中,会用hash算法来实现数字签名的功能,以此保证消息传输的完整性。
    • hash算法是单向的,会按约定生成固定长度的二进制位(字符位)。但只要消息的内容发生了改变,算法产生的hash的值就会不同;也就是说只有消息内容完全一样时,hash值才会一样。
    • hash+签名的基本实现原理,是对hash值进行签名,因为一旦密文内容发生变化,hash也一定会发生变化的。
    • 实现思路:报文通过hash算法生成对应的hash值(报文摘要),然后对hash值进行签名(用A的私钥对hash值进行签名),然后将加密后的hash值和报文捆绑在一起进行发送;B收到以后,会先用A的公钥解密hash值(核实签名),再对报文用相同的hash算法生成另一个hash值;只要新生成的hash值与之前的hash值相等,就意味着报文内容是完整的。

    八、PKI考点

    1、CA的作用

     

    2、签名/加密

  • 相关阅读:
    Spring boot 启动流程及外部化配置
    【Rust 日报】2022-09-04 Rust基金会招募
    总是莫名其妙的发生段错误
    2016年全国研究生数学建模竞赛华为杯A题多无人机协同任务规划求解全过程文档及程序
    element 拆分二层数组,第一层留作表头,其余生成表单内容
    mybatis中和MP中关于拿到插入新数据的id解决方案
    OpenHarmony教程指南-自定义通知推送
    记录:Unity脚本的编写
    手把手操作JS逆向爬虫入门(三)---Headers请求头参数加密
    1_SpringMVC_概述,2_SpringMVC_项目搭建
  • 原文地址:https://blog.csdn.net/qq_46071165/article/details/126596059