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

密码学的基础知识_密码学的基本概念最近在研究密码学加密,签名方面的东西。经过几天的学习对一些基础知识进行一下整理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)来备份,以保证加密数据的可用性,因此,加密密钥对可以由第三方来产生,并备份。由于签名密钥与加密密钥的使用与管理上的不同,决定了双证书使用的合理性与必然性。”

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

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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JAVA队列( Queue ) 详解[通俗易懂]

    JAVA队列( Queue ) 详解[通俗易懂]什么是队列?队列是一种特殊的线性表,遵循先入先出、后入后出的基本原则,一般来说,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,但是java的某些队列运行在任何地方插入删除;比如我们常用的LinkedList集合,它实现了Queue接口,因此,我们可以理解为LinkedList就是一个队列;java队列特性队列主要分为阻塞和非阻塞,有界和无界、单向链表和双向链表之分;阻塞和非阻塞阻塞队列入列(删除元素)时,如果元素数量超过队列总数…

  • vue子组件向父组件传值的三种方式_vue父页面传值到子页面

    vue子组件向父组件传值的三种方式_vue父页面传值到子页面1.用于子组件触发事件传递给父组件子组件:rowEvent里面也可以带参数事件treeData是携带的参数rowEvent(){this.$emit(‘rowEvent’,’treeData’’);},父组件:在父组件绑定自定义事件直接可以获取到rowEvents(obj){console.log(obj)},2.用ref(常用于不触发的事件)子组件定义个…

  • 将方波转化为三角波电路图(简易波形发生器)

    单片机课设波形发生器,产生方波、三角波、正弦波、锯齿波波形幅度可调、频率可调。

  • Nhibernate 使用 (一)

    Nhibernate 使用 (一)一:介绍NHibernate是一个基于.Net的针对关系型数据库的对象持久化类库。Nhibernate来源于非常优秀的基于Java的Hibernate关系型持久化工具。NHibernate

  • 无限弹窗(bat代码 整人恶作剧)

    无限弹窗(bat代码 整人恶作剧)炸弹弹窗,是使用bat制作的一个小程序,效果就是执行程序后会一直不停地弹出窗口,用来恶作剧。下面我们就来看看详细的教程。打开文件,输入以下代码::startstartcmdgotostart点击文件,选择另存为把文件名后面加上.bat保存类型选择所有文件点击保存…

  • 产品需求管理[通俗易懂]

    产品需求管理[通俗易懂]第三课需求管理1需求管理是什么1.1需求挖掘:看四块,自己行业,总体趋势,未来方向,商业模式。最直接的需求一定来源于用户,用户访谈,用户反馈,调查问卷,社交平台。1.2需求匹配:需求挖掘解决发现

发表回复

您的电子邮箱地址不会被公开。

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