zoukankan      html  css  js  c++  java
  • 网络安全系统之二 数字签名

    一、数字签名

      数字签名的作用就是确保发送者A发给接收者B的信息是发送者A发送的,并且在传输过程中数据没有被修改,类拟于写在纸上的物理签名,数字签名是非对称密钥加密技术与数字摘要技术的应用。

      数据字签名的特点:解决了信息伪造、抵赖、冒充和篡改问题,保证了信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

      在讲解解数字签名之前,我们应该了解信息完整性验证算法

    二、信息完整性验证算法

      报文摘要算法(Message Digest Algorithms),算法的重点在于“摘要”,即对原始数据依据规则进行提取,摘要和原文具有联系性,只要原始数据稍有改动,“摘要”的结果就会不同。因此,摘要可以验证原文是否被修改。

      注: 摘要算法采用“单向函数”即只能从输入数据得到输出的数据,无法从输出的数据得到输入的数据。常见报文摘要算法有SHA1、MD5

      

      (1)SHA1算法

        安全Hash算法,SHA1也是基于MD5的,把信息分为512bit的分组,创建一个160bit的摘要

      (2)MD5算法

        消息摘要算法5(MD5),把信息分为512bit的分组,创建一个128bit的摘要

    三、数字签名和验证的过程

      数字签名和验证过程图例:

      

      数字签名的基本过程(发改方A):

      (1)发送方A使用摘要算法(SHA1、MD5)对需要发送的信息进行摘要运算,生成信息的摘要

      (2)发送方A使用自己的私钥对生成的摘要进行签名,将A的签名摘要和信息一并发给接收方B。

      验证签名的基本过程(接收方B):

      (1)接收方B收到 A的签名摘要 使用A的公钥对摘要进行认证,得到摘要A(由A发过来的)

      (2)接收方B收到 A传过来的信息后,使用摘要算法(SHA1、MD5)对信息进行摘要运算,生成信息的摘要B(由B自己计算出来的)

      (3)将摘要A和摘要B进行对比,如果一致则说明发送者A 发送过来的信息没有经过任何篡改

      由此可以看到,非对称密钥加密技术与数字摘要技术在网络安全性方面的应用(私钥用于解密和签名,公钥用于加密和认证),数字签名功能具有身份认证、信息完整性检查、信息发送不可否认等特点,但并没有提供对原信息加密功能,不能保证接收方B收到信息,也不对接收方B的身份进行验证。

  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/PBDragon/p/12679201.html
Copyright © 2011-2022 走看看