码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数字签名 及 数字证书 原理笔记


    这里是对 数字签名 及 数字证书 原理该视频做的一个笔记,链接

    前言

    如果对一些加密算法不懂可以参考这篇文章

    数字签名

    小明发送文件给小红时对文件做出签名

    将文件进行hash算法加密得到hash值,并且对该hash值使用私钥进行加密(私钥加密的数据必须使用公钥进行解密,如果不明白可以参考这篇文章中的非对称加密)
    在这里插入图片描述
    小明发送文件时,同时将 文件, 公钥,数字签名一起发送

    小红如何验证签名?

    小红收到文件后, 使用公钥对数字签名进行解密得到hash值A, 同时对文件进行hash运算得到hash值B,最后判断A和B是否相等来判断该文件是否被篡改和伪造
    在这里插入图片描述

    如何确保文件不被篡改呢?

    如果文件被篡改,那么hash值将会发生改变,hash值不相等说明文件被篡改

    如何确保文件是小明本人签署的呢?

    因为数字签名是由私钥生成的,能被公钥验证的签名肯定就是私钥拥有者(小明)

    但是我们不能确保公钥一定就是小明发布的,因为黑客也可以生成一套公钥和私钥,使用自己的私钥对文件进行数字签名,并且将公钥替换为自己的公钥,这样小红验证的时候条件依然成立


    数字证书

    那么我们如何确保私钥拥有者就是小明呢?

    这里就涉及到了数字证书
    我们知道公钥私钥是配套生成的,某一私钥对应着唯一公钥,某一私钥拥有者也就是某一公钥拥有者,因此只需要证明公钥生成者的身份为小明即可,这就是数字证书的作用

    小明将个人信息和公钥发送给CA机构,CA机构核实小明的身份信息后颁发一个数字证书,证书内包含了小明的身份信息和公钥

    小明将文件,数字签名,数字证书,一并发送,这样小红通过数字证书中的公钥就能对数字签名进行验证,验证方式和前面一样

    如何确保数字证书不被伪造?

    数字证书由CA机构颁发,CA机构也有一套自己的公钥私钥,CA机构使用私钥对刚才数字证书中的所有内容进行hahs运算,再对该hash值进行加密得到该数字证书的数字签名
    在这里插入图片描述

    再将数字签名加入到数字证书中。
    而CA机构的公钥则在安装操作系统时就被嵌入在操作系统中,杜绝了伪造的可能
    小红拿到数字证书后,使用公钥对数字证书中的数字签名进行验证,验证通过则说明数字证书中小明的身份即公钥是真的,再使用小明的公钥验证文件的数字签名,验证通过,可确定文件未被篡改

    在这里插入图片描述

    总结

    我认为的数字签名

    通过公钥和私钥实现,通过对文件进行hash算法生成唯一hash值(摘要),再通过私钥进行加密得到自己的数字签名,由公钥来验证数字签名

    在这里插入图片描述
    验证
    在这里插入图片描述

  • 相关阅读:
    活动回顾∣企企通亮相高质量企业数字化活动,深入探讨各领域采购数字化转型与变革
    安卓代码简单读取摄像头YUV原始数据
    11-16 周四 简单代码理解FlashAttention 分块计算softmax
    538. 把二叉搜索树转换为累加树
    JS移动端事件
    【Docker】 ubuntu18.04编译时内存不足需要使用临时交换分区解决“c++: internal compiler error“错误
    如何写专利
    C语言进阶:结构体,枚举,联合(结尾有彩蛋)
    Lumiprobe 活性染料丨杂染料:BDP FL 神经酰胺
    文字转音频软件哪个好用?这几个方法你值得拥有
  • 原文地址:https://blog.csdn.net/qq_56313338/article/details/133889972
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号