zoukankan      html  css  js  c++  java
  • 加解密算法+消息摘要+消息认证技术+数字签名+公钥证书

     摘自:https://blog.csdn.net/weixin_40582843/article/details/89219196

    数据安全概述

    当发送方A向接收方B发送数据时,需要考虑的问题有:

    • 数据的安全性。
    • 数据的完整性,即数据不被篡改。
    • 数据的真实性,即数据确实来自于发送方,传输过程中没有被替换。
    • 数据的不可否认性,即验证发送方确实发送了数据。

    数据的安全性

    要数据安全,就对数据加密emmmm;

    加解密算法

    分为对称加密和非对称加密,意思就是加解密是否使用相同的密钥;

    对称加密

    对称加密示意图最终问题:密钥安全性,so,通过非对称加密解决
    相关算法:DES 3DES AES RC5 RC6

    非对称加密

    非对称加密示意图最后问题:公钥合法性???
    相关算法:RSA

    数据的完整性

    消息摘要

    消息摘要函数时一种用于判断数据完整性的算法,也称为散列函数或哈希函数,函数的返回值就散列值,散列值又称为消息摘要或者指纹。
    这种算法是不可逆的,即无法通过消息摘要反向推导出消息,因此又称为单向散列函数。

    算法:MD5、SHA
    消息摘要/散列值示意图最后的问题:数据真实性,so,通过**消息认证码(MAC)**解决;

    数据的真实性

    消息认证码

    消息认证码(Message Authentication Code,简称MAC)是一种可以确认消息完整性并进行认证的技术。消息认证码可以简单理解为一种与密钥相关的单向散列函数。

    消息认证码示意图最后问题:发送方的不可否认性?so…数字签名解决

    数据的不可否认性

    数字签名

    数字签名(Digital Signature)可以解决发送方否认发送过消息的问题。
    数字签名的重点在于发送方和接收方使用不同的密钥来进行验证,并且保证发送方密钥的唯一性,将公钥算法反过来使用可以达到此目的:A发送消息前,使用私钥对消息进行签名,B接收到消息后,使用配对的公钥对签名进行验证;如果验证通过,说明消息就是A发送的,因为只有A采用配对的私钥;第三方机构也是依据此来进行裁决,保证公正性。

    数字签名示意图最终问题:公钥合法性?emmm…公钥证书解决

    公钥的合法性

    公钥证书

    将公钥交给一个第三方权威机构——认证机构(Certification Authority)CA来管理。接收方将自己的公钥注册到CA,由CA提供数字签名生成公钥证书(Public-Key Certificate)PKC,简称证书。证书中有CA的签名,接收方可以通过验签来验证公钥的合法性。

    公钥证书示意图最后问题:emmm…没问题啦…都解决啦…

    总结图

    总结图

  • 相关阅读:
    c语言的注意事项(未完,以后遇到问题继续添加)
    const与指针的运用
    A7139射频模块wor配置解析
    lora项目注意事项(只用于本项目)
    串口通信数码管显示输入数字
    点阵图形上移
    按键弹起数字增加和按下增加
    数码管从999999倒计时
    中断与数码管秒表显示
    PHP控制连接打印机
  • 原文地址:https://www.cnblogs.com/LiuYanYGZ/p/13694682.html
Copyright © 2011-2022 走看看