`
y806839048
  • 浏览: 1120647 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

对称加密和非对称加密

阅读更多

github首页:区块链学习有用链接和25本区块链书籍可免费阅读,觉得有用就fork或是star

 

地址:https://github.com/cancerts/study-blockchain-referrence 点击这

数据加密算法主要分为两大类:对称加密和非对称加密

下面我们来看一下他们的区别的各自的作用

 

 

 

下面详细介绍两种加密方式的具体过程

 

(1)交易加密或者区块加密(对称加密)

为了让区块链中的交易信息或者账本状态在网络中安全的传输进行的加密处理方式,基本原理如图1-1所示。

 

我们使用一个范式表示为:密文=对称加密算法(明文(原始数据)+密钥K)

 

 

 

 

 

从图中可以看出来,我们在不屑露交易双发真实信息的前提下,在网络中进行信息的传播,所以要进行信息的加密处理,我们使用对称加密密钥K对明文进行加密处理形成密文,密文在p2p网络中,进行传输,接受者使用相同的密钥进行解密得到明文。

 

常见的“对称密钥”加密算法主要有DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish等,具体每个算法的实现我就不再这里说了,感兴趣的自己取查找。

 

对于在网络中传输的信息我们怎么确定信息的真实性,没有被篡改过呢,接下来图1-2所示的为使用数字摘要确保信息的真实性,具体的过程我们来看一下

 

 

 

 

 

首先hash函数具有的其中的一个特性就是任何对原始数据的微小改变都会得到完全不一样的结果,所以利用数字摘要的比对可以确认数据有没有被修改过,过程是这样的,将明文hash后得到的数字摘要和密文一起传输,当接受者得到密文时使用密钥进行解密得到明文之后再对明文进行hash运算和区块中的数字摘要进行比较,一致则可以认为数据没有被篡改。

 

(2)数字信封传递密钥(非对称加密:公匙加密-私匙解密)

我们在之前在对数据进行加密时使用了相同的密钥K进行加密和解密,那么怎么确保发送者和接受者的密钥是同一个呢,怎么传递的?下面我将演示具体的实现过程,如图2-3所示。

 

 

 

 

 

如果你还是不理解,我举个简单的例子来说,就像大家都喜欢成都小甜甜一样,你也喜欢,你就悄咪咪的写了一封情书,你的甜蜜的话语就相当于我们所说的密匙K,为了不让每个人都看到,害羞嘛,你懂的或是防止其他人比如邮差啊什么的,每天那么苦,有甜甜这样好养的女朋友当然

 

也不想错过,一看小甜甜收,心想不能让你得逞,于是就私底下悄咪咪的改了你的甜言蜜语,结果是一段胡话,最后你懂的。。。。。。比较形象,当然,你不想发生这样的情况,你就使用对方的公开的密钥进行的一个加密处理,只有小甜甜的私钥才可以看见信封里面的内容,这就是我们的非对称加密,用来传输密钥。

 

(3)数字签名防篡改(非对称加密:私匙加密-公匙解密)

列一个范式:数字签名=加密(hash(明文)+私钥)

 

 

 

 

 

数字签名说白了,就像你你现实生活中的手工签名一样,一旦某人签署了某份文件,因为每个人的签名是惟一的,我们就会认为你是他本人的行为,表示那个动作是他本人发出的,不允许抵赖,是有法律效应的,我们的数字签名其实和那个也差不多,只是利用一些密码学的算法来实现某人发生了什么行为,而且可以确定某样东西属于谁,因为私钥只有签名的那个人拥有。

 

最后补充一个知识点:零知识证明

 

           意思就是验证着不适用提供的任何有用信息的情况下,使验证着相信某个结果是正确的

好了,这也是我学习了好久搞明白的一些知识点,今年花了几个小时总结了一下,希望对你有所帮助

 

原文链接:https://blog.csdn.net/Booboochen/article/details/82289627

分享到:
评论

相关推荐

    常见加密算法方式(对称加密和非对称加密)

    根据加密过程中使用的密钥类型,加密算法大致可以分为两大类:**对称加密算法**和**非对称加密算法**。此外,还有一类特殊的加密算法——**散列(Hash)算法**,用于生成数据的摘要信息。 ### 对称加密算法 对称...

    对称加密和非对称加密介绍和区别

    ### 对称加密与非对称加密的介绍及区别 #### 一、对称加密技术概述 **对称加密**采用了对称密码编码技术,它的核心...综上所述,对称加密和非对称加密各有优劣,选择合适的加密算法需根据具体应用场景的需求来决定。

    对称密码和非对称密码实现

    在密码学领域,数据安全是至关重要的,而对称密码和非对称密码是两种主要的加密技术,用于保护信息的机密性。本篇将深入探讨这两种密码体制及其在实际应用中的实现,特别是对DES(Data Encryption Standard)对称...

    java编写的加密解密工具,有对称加密和非对称加密

    本工具包就是针对这一需求而设计的,它提供了对称加密和非对称加密两种常见的加密算法,为数据的安全传输和存储提供了保障。 对称加密是最早、最简单的一种加密方式,它的特点是加密和解密使用同一个密钥。在Java中...

    对称加密 非对称加密 需要的jar包

    1. **bcprov-ext-jdk15on-149.jar**:这是Bouncy Castle提供的加密库,是一个强大的密码学API,支持多种加密算法,包括对称和非对称加密。Bouncy Castle为Java提供了额外的加密功能,比如对某些非标准或较新的加密...

    C#对称加密和非对称加密的Demo

    在C#编程环境中,我们可以利用内置的类库实现对称加密和非对称加密。本篇将详细介绍这两种加密方式,并结合提供的"RsaEncryptExample"和"TdesEncryptExample"代码示例进行解析。 **1. 对称加密** 对称加密是最常见...

    密码学实验_对称加密算法DES_非对称加密算法RSA.pdf

    综上所述,本实验涵盖了密码学中的核心概念,通过实践使学生掌握了对称加密和非对称加密的实现细节。这种实践性的学习方法有助于巩固理论知识,增强实际问题解决能力,对于网络安全领域的研究和工作具有重要意义。

    Go-go语言封装的各种对称加密和非对称加密

    本项目"Go-go语言封装的各种对称加密和非对称加密"正是针对这一需求,提供了便捷的Go语言实现,包括3重DES、AES的CBC和CTR模式以及RSA非对称加密。下面将详细介绍这些加密算法及其在Go中的应用。 1. 对称加密: - ...

    非对称加密和对称加密混合应用

    5.用对称密钥对(原文和签名)进行加密 6.用对方的公钥对称密钥进行加密(加密密钥) 7.将密文(5)和加密密钥(6)一起发给对方 接收方: 1.用自己的私钥对加密密钥进行解密,得到对称密钥--也只有自己才能...

    对称加密非对称加密

    其中,对称加密和非对称加密是两种主要的加密方式,它们各自有着独特的特点和应用场景。本文将深入探讨这两种加密算法及其工作原理。 首先,对称加密是最基础且历史悠久的加密方法。它基于一个秘密的密钥,即加密和...

    RSA非对称加密算法

    RSA 非对称加密算法是一种经典的非对称加密算法,由罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼三人于 1977 年共同提出的。该算法的主要思想是基于大素数的乘积和因式分解之间的关系,通过选择两个大素数 p 和 ...

    对称与非对称加密

    对称加密和非对称加密各有优势,在实际应用中可以根据不同的场景需求来选择合适的加密方式。对称加密适用于数据量大、实时性强的应用场景;而非对称加密则更适合于密钥分发和身份验证等场景。随着技术的发展,加密...

    C语言实现非对称密码算法RSA

    C语言实现非对称密码算法RSA,其中RSA计算采用的是平方乘算法

    十二张图:从0开始理解对称-非对称加密、CA认证、以及K8S各组件颁发证书原由.doc

    对称加密和非对称加密结合的方式是客户端先获取到服务端的公钥,然后自己生成一个唯一的随机密钥 A,使用公钥加密随机密钥 A,这时只有服务端的私钥才能解密出随机密钥 A。服务端拿到随机密钥 A 之后,服务端和...

    对称加密和非对称加密及数字证书的加密过程

    对称加密和非对称加密及数字证书的加密过程

    数据对称与非对称的加解密

    数据加密是保护信息安全的主要手段,主要分为对称加密和非对称加密两种方法。本文将深入探讨这两种加密方式,并结合Mina框架,阐述如何实现它们在数据传输中的应用。 首先,我们来看对称加密。对称加密是最传统的...

    非对称密码

    除了RSA和ELGamal,还有多种其他非对称密码算法,如椭圆曲线密码学(ECC)、Rabin密码和背包密码等。其中,ECC利用椭圆曲线上的点加法和倍增操作,相较于传统的大数分解或离散对数问题,能在相同安全级别下使用更短...

    非对称加密算法流程图

    非对称加密算法流程图,使用visio绘制。

    前后端RSA非对称加密解密(代码示例).rar

    太不安全,应该加密传输,怎么做呢,对称加密一旦秘钥丢失则形同虚设,最好使用非对称加密的方式,由后端事先生成公钥和私钥,公钥发给前端页面,私钥后端自己保留,前端进行认证时,把密码原文用公钥加密再发给后端...

Global site tag (gtag.js) - Google Analytics