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

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


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • php之工厂模式和抽象工厂

    php之工厂模式和抽象工厂工厂模式和抽象工厂模式

    2022年7月25日
  • Spring Boot:jar中没有主清单属性[通俗易懂]

    Spring Boot:jar中没有主清单属性[通俗易懂]使用SpringBoot微服务搭建框架,在eclipse和Idea下能正常运行,但是在打成jar包部署或者直接使用java-jar命令的时候,提示了xxxxxx.jar中没有主清单属性:D:\hu-git\spring-xxx-xxx\target>java-jarspring-cloud-eureka-0.0.1-SNAPSHOT.jarspring-xxx-xxx-0.

    2022年9月5日
  • 关于java的外语文献_java英文参考文献(涵盖3年最新120个)

    关于java的外语文献_java英文参考文献(涵盖3年最新120个)近年来,随着我国科学的技术的飞速发展,计算机语言的内容和形式得到了极大的丰富,特别是java语言的广泛应用,它不仅是计算机语言的重要组成部分,同时也是我国程序编写的重要内容之一,java语言的出现和广泛使用,极大的丰富了人们的生产,生活,为人们的工作和学习提供了很大的便利.下面是搜素整理的java英文参考文献的分享,供大家借鉴参考。java英文参考文献一:[1]AbbasMrAnsar,Eli…

    2022年9月30日
  • redis缓存雪崩 缓存穿透 缓存击穿如何解决_redis防止缓存击穿

    redis缓存雪崩 缓存穿透 缓存击穿如何解决_redis防止缓存击穿文章目录缓存穿透缓存击穿缓存雪崩缓存穿透数据库中没有这个数据,内存中也没有这个数据简单场景public class demoController { public R selectOrderById(int id){ Object redisObj = ValueOperations.get(Strubg.valueof(id)); if(redisObj != null){ return new R().setCode(200).

    2022年8月8日
  • Java8新特性 stream流常用方法

    Java8新特性 stream流常用方法Java8API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。StreamAPI可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,…

    2022年10月5日
  • Jmeter—正则表达式提取器:模板&匹配数字详解「建议收藏」

    Jmeter—正则表达式提取器:模板&匹配数字详解「建议收藏」目录一、相关理论1.正则表达式2.模板3.匹配数字二、例子1.【模板&匹配数字】2.【例-贪婪&非贪婪】3.【例-普通】一、相关理论1.正则表达式():要提取的内容.:匹配任意单个字符串*:匹配(之前的符号)0次或多次+:匹配(+之前的符号)1次或多次?:不要太贪婪,在找到第一个匹配项后停止。.:匹配连续0个/多个字符.+:匹配连续1个/多个字符\:转义,.表示匹配字符.本身2.模板表示取哪几个括号中的值若模板为:000,则为整个表达式匹配到的内容(这里为整个响

    2022年9月10日

发表回复

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

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