密码学的基础知识_密码学的基本概念

密码学的基础知识_密码学的基本概念最近在研究密码学加密,签名方面的东西。经过几天的学习对一些基础知识进行一下整理PKI:PKI是PublicKeyInfrastructure的首字母缩写,翻译过来就是公钥基础设施,在X509标准

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近在研究密码学加密,签名方面的东西。经过几天的学习对一些基础知识进行一下整理

PKI:PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施,在X509标准中PKI为支持共有密钥管理并且支持认证、加密、完整性、可追究性服务的基础设施。

CA:CA是 Certificate Authority首字母的缩写,翻译过来的意思是:证书认证授权机构,其主要作用是负责发放管理数字证书的具有权威性的第三方机构。CA通过证书证实他人的公钥信息,证书上有CA的签名。用户如果因为信任证书而导致了损失,证书可以作为有效的证据用于追究CA的法律责任。正是因为CA愿意给出承担责任的承诺,所以也被称为可信第三方。

加密证书、签名证书有何区别为什么要设置成两个而不合二为一呢? 其根本区别就是:签名密钥对用于数据的完整性检测,保证防伪造与防抵赖,签名私钥的遗失,并不会影响对以前签名数据的验证,因此,签名私钥无须备份,因此,签名密钥不需要也不应该需要第三方来管理,完全由持有者自己产生;而加密密钥对用于数据的加密保护,若加密私钥遗失,将导致以前的加密数据无法解密,这在实际应用中是无法接受的,加密私钥应该由可信的第三方(即通常所说的CA)来备份,以保证加密数据的可用性,因此,加密密钥对可以由第三方来产生,并备份。由于签名密钥与加密密钥的使用与管理上的不同,决定了双证书使用的合理性与必然性。”

数字签名的过程:“发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。

数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”

数字加密:发送方用接收方的公钥进行数据加密,然后传送个接收方,接收方用他自己的私钥进行数据揭秘即可。因为私钥只有他自己有,这样就保证了数据的秘密性,因为别人就算是窃听了加密数据,也无法解密。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167825.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • String字符串截取方式

    String字符串截取方式原文连接:https://www.cnblogs.com/alisapan/p/6490590.html1.split()+正则表达式来进行截取。将正则传入split()。返回的是一个字符串数组类型。不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。Stringstr=”abc,12,3yy98,0″;String[]strs=str.split(“,”);for(…

    2022年5月12日
    45
  • 如何获取相应tableview中的touchesBegan事件[通俗易懂]

    如何获取相应tableview中的touchesBegan事件[通俗易懂]我

    2022年7月25日
    9
  • JAVA能写大型游戏么?「建议收藏」

    JAVA能写大型游戏么?「建议收藏」JAVA能写大型游戏么?答:不能,所谓的大型游戏一般都是指端游。必须是C++这没办法C++和java的效率还是有很大差距的。在游戏业Java可以搞什么?那就是页游和手游的服务端了,页游的前端都是Flash,手游的前端是coco2dx(C++),unity3D(C#或JS)你可以看看37游戏墨麟集团上海易娱明朝网络动网先锋掌趣科技等等游戏公司他们都找Java游戏服务端的…

    2022年5月27日
    63
  • 开源组件ExcelReport 1.5.2 使用手册

    开源组件ExcelReport 1.5.2 使用手册

    2021年9月6日
    62
  • Java中堆和栈(java栈和堆)

    Java中堆和栈(java栈和堆)转:https://www.cnblogs.com/ibelieve618/p/6380328.htmlJAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了。以下是这几天栈和堆的学习记录和心得。得些记录下来。以后有学到新的,会慢慢补充。…

    2022年4月18日
    50
  • Centos7安装svn服务

    Centos7安装svn服务Centos7安装svn2020-12-0509:53:032020-11-1816:54:08+0800chenxizhannew在Centos上安装SVN服务器的步骤简单介绍每个安装步骤的原理CentOSLinuxrelease7.9svn,version1.7.14安装1.7.14-14.el7#1.安装服务sudoyuminstallsubversion#2.创建存放仓库的目录sudomkdir-p/var/svn#

    2022年10月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号