精华内容
下载资源
问答
  • 2022-03-12 15:51:04

    在现代社会中,我们很多信息都需要通过互联网来传输,这些信息中难免会包含一些私密或者机密的内容,如果直接通过明文传输是非常不安全的,这就需要使用密钥并使用一定的算法对这些明文信息进行加密形成密文后再进行传输,最后接收方对密文进行解密,以获取里面的明文内容,这就涉及到密码学了。

    我们先了解几个概念,虽然很简单,但是对于从未接触过加密的人来说还是有必要提一下的。
    明文: 明文指的是未被加密过的原始数据。
    密文: 明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。
    密钥: 密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。

    事实上,密码学出现的非常早,只是早期的密码学基本都是使用替换法移位法进行加密。在之前只用纸和笔进行运算的时代,这些方式或许还是有效的,但在计算机出现之后,这些方法就显得不堪一击了,于是现代密码学应运而生。

    现代密码体制有两种: 对称密码体制( 又称为单钥密码体制) 和非对称密码体制( 又称为双钥密码体制或公钥密码体制) 。

    对称密码体制:使用相同的密钥对消息进行加密或解密,系统的保密性主要由密钥的安全性决定,而与算法是否保密无关。

    对称密码体制设计和实现基本思想是: 用何种方法产生满足保密要求的密钥以及通过何种方法将密钥安全又可靠地分配给通信双方。对称密码体制可以通过分组密码或流密码来实现,它既可以用于数据加密,又可以用于消息认证。

    非对称密码体制:使用公钥加密消息,使用私钥来解密,或使用私钥加密消息,使用公钥进行解密。使用非对称密码体制可增强通信的安全性。

    在密码学体系中,对称加密、非对称加密、单向散列函数、消息认证码、数字签名和伪随机数生成器被统称为密码学家的工具箱。其中,对称加密和非对称加密主要是用来保证机密性;单向散列函数用来保证消息的完整性;消息认证码的功能主要是认证;数字签名保证消息的不可抵赖性。

    对称加密

    对称加密又称单密钥加密,整个加密过程中只使用一个密钥。所谓对称其实就是使用一把密钥加密,并使用同一把密钥进行解密。对称加密由于加解和解密使用的是同一个密钥算法,故而在加解密的过程中速度比较快,适合于数据量比较大的加解密。

    对称加密的优点:算法公开、计算量小、由于使用统一密钥算法所以加密解密速度比较快,适合于数据量比较大的加解密。

    对称加密的缺点:密钥的管理与分配存在风险,一旦泄露,密文内容就会被外人破解;另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一密钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

    常用的对称加密算法:DES、3DES、AES、TDEA、Blowfish、RC2、RC4 和 RC5 等

    对称算法适用场景:鉴于其具有更快的运算速度,对称加密在现代计算机系统中被广泛用于保护信息。例如,美国政府使用高级加密标准(AES)来加密和分类和感信息。AES取代了之前的数据加密标准(DES)。

    非对称加密

    非对称加密:在加密过程中,使用密钥对(分别是私钥和公钥。公钥可以对外发布,人人可见。而私钥则自己保管,不外泄)中的一个密钥进行加密,另一个密钥进行解密。比如用公钥加密,那么用私钥解密;用私钥加密,就用公钥来解密。由于加密和解密使用了两个不同的密钥,这就是非对称加密“非对称”的原因。

    非对称加密优点:安全性高,解决了对称加密中密钥管理和分发可能存在不安全的问题。

    非对称加密缺点:加密和解密花费时间长、速度慢,并且由于它们的密钥长度非常长,因此需要更多的计算资源,只适合对少量数据进行加密。

    常用的非对称加密算法:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等

    非对称加密适用场景:非对称加密通常用于大量用户需要同时加密和解密消息或数据的系统中,尤其是在运算速度和计算资源充足的情况下。该系统的一个常用案例就是加密电子邮件,其中公钥可以用于加密消息,私钥可以用于解密。

    问题:为什么私钥可以解密被公钥加密的数据?
    答:欧拉函数 欧拉定理 互为质数。具体的咱也不懂。

    需要注意的是,在许多应用中,对称和非对称加密会一起使用。这种混合系统的典型案例是安全套接字层(SSL)和传输层安全(TLS)加密协议,该协议被用于在因特网内提供安全通信。SSL协议现在被认为是不安全的,应该停止使用。相比之下,TLS协议目前被认为是安全的,并且已被主流的Web浏览器所广泛使用。

    数字证书

    数字证书有点类似于我们的居民身份证,只是数字证书是基于互联网通信的,用于标记通信双方身份的一种方式。数字证书是由权威机构Certificate Authority发行的,又称之为证书授权,简称为:CA。人们在网上可以根据它来识别对方身份信息。

    数字证书绑定了公钥及其持有者的真实身份,它类似于现实生活中的居民身份证,所不同的是数字证书不再是纸质的证照,而是一段含有证书持有者身份信息并经过认证中心审核签发的电子数据,广泛用在电子商务和移动互联网中。

    数字签名

    除了非对称加密,数字签名也是非对称密码学常见用法。

    数字签名是指将摘要信息使用接收者的公钥进行加密,与密文一起发送给接收者。接收者使用自己的私钥对摘要信息进行解密,然后使用Hash函数对收到的密文产生一个摘要信息,然后将摘要信息与发送着传输过来解密后的摘要信息对比是否一致。如果一致,则表明数据信息没有被篡改。

    也就是说,数字签名能够验证收到的信息的完整性,避免中途信息被劫持篡改或丢失。对方可以根据数字签名来判断获取到的数据信息是最原始的数据。

    需要注意,并非所有的数字签名系统都使用加密技术,即使它们用到了公钥和私钥。实际上,可以仅对消息进行数字签名而不进行加密。 RSA是用于对加密消息进行签名的示例算法,但比特币使用的数字签名算法(名为ECDSA)根本没有用到加密功能。

    密钥长度

    对称和非对称加密之间的另一个功能差异与密钥的长度有关,密钥的长度以比特为单位,并且与每个加密算法提供的安全级别直接相关。

    在对称加密中,密钥是随机选择的,其长度通常设置为128或256位,具体长度取决于所需的安全级别。然而,在非对称加密中,公钥和私钥之间在数学上相关联,这意味着两者之间存在算术联系。攻击者可能利用该模式破解密文,因此非对称密钥需要更长的密钥长度,才能提供相同级别的安全性。密钥长度的差异是如此明显,以至于128位的对称密钥和2,048位非对称密钥才能提供大致相同的安全级别。

    更多相关内容
  • 对称加密存在问题

    千次阅读 2019-11-29 09:40:08
    1、当通信对象很多时会面临众多秘钥的有效管理问题 2、对于一个新的数据通信对象,密钥怎样进行传输的问题 一、非对称加密介绍 非对称加密也叫公钥密码:使用公钥加密,使用密钥解密 ...

    1、当通信对象很多时会面临众多秘钥的有效管理问题
    2、对于一个新的数据通信对象,密钥怎样进行传输的问题

    一、非对称加密介绍

    非对称加密也叫公钥密码:使用公钥加密,使用密钥解密

    在这里插入图片描述

    二、常用使用场景

    1、通信加密

    私钥加密,公钥解密

    2、https

    验证服务器,数字证书,使用ca认证公钥

    3、签名(防止篡改)

    哈希+非对称加密

    4、网银U盾

    验证client,U盾相当于私钥,公钥在服务器

    5、github ssh登录

    ssh是一种网络协议,主要用于计算机之间的加密登陆与数据传输
    ssh登录的时候没有CA认证,需要用户自己确认登录主机的指纹,点击yes后远程主机的指纹存放到本地的know_hosts中,后续登录会跳过警告
    ssh-keygen -t rsa,演示

    三、RSA算法

    新建一个opens文档,在该文档中执行openssl,进入操作模式
    在这里插入图片描述
    生产私钥
    执行
    genrsa -out rsa_private_key.pem 1024

    目前主流密钥长队至少都在1024bits以上,低于1024bit的密钥已经不建议使用(安全问题),可以不指定私钥长度,默认是2048位,长度建议1024以上

    在这里插入图片描述
    生成公钥

     rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
    

    在这里插入图片描述
    私钥:使用随机数按照一定规则生成的,只有自己持有,不可以向任何人传播
    公钥:由私钥推导而来,任何人都可以持有,只能被配套的私钥解开

    四、RSA加密解密规则

    加密
    在这里插入图片描述
    1、加密的数据都是明文对应的数字值(会有一个字符对应表)
    2、对数值依次进行E次方处理
    3、对N取模
    rsa的安全性基于:对于大数(素数乘积)进行因式分解(世界公认的难题)

    公钥:{E,N},由E,N组成公钥
    E:encrypt(根据特定规则,限定了一个区间,在这个区间内随意选择的)
    N:一个大数(素数乘积,先有两个素数)
    解密
    在这里插入图片描述
    1、对密文进行D次方处理
    2、对N进行取模
    3、根据字符表转换成原来的明文

    私钥:{D,N},有D,N组成私钥
    F(n) = (素数1 - 1)(素数2 - 1)
    只有知道那两个大素数相乘,才能计算出D
    (D * E)% F(n)= 1

    展开全文
  • 对称加密和非对称加密

    千次阅读 2021-07-12 08:58:41
    1. 对称加密 加密和解密使用同一个秘钥,所以叫做对称加密。常见的对称加密算法:DES,AES等。 其过程可以描述为: 加密:原文 + 密匙 = 密文 解密:密文 - 密匙 = 原文 对称加密通常使用的是相对较小的密钥,一般...

    1. 对称加密

    加密和解密使用同一个秘钥,所以叫做对称加密。常见的对称加密算法:DESAES等。

    其过程可以描述为:

    • 加密:原文 + 密匙 = 密文
    • 解密:密文 - 密匙 = 原文

    对称加密通常使用的是相对较小的密钥,一般小于256 bit。如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off

    面临的最大的问题为:秘钥的分发。就是说,解密方如何获得加密方的秘钥呢?在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。

    1.1 DES

    全称为Data Encryption Standard,即数据加密标准。1977年被美国联邦政府的国家标准局确定为联邦资料处理标准,并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

    DES的密钥长度为64位,由于第n*8(n=1,2,…8)是校验位,因此实际参与加密的长度为56位,密钥空间含有2^56个密钥。

    DES算法是一种分组加密机制,将明文分成N个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。

    DES加密算法在计算机速度提升后的今天被认为是不安全的。(可破解)

    1.2 AES

    全称为Advanced Encryption Standard,即高级加密标准。又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES

    AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同,如下表所示:

    在这里插入图片描述

    2. 非对称加密

    非对称加密之所以不对称,指的就是加密用一个密钥,而解密的时候用的是另外一个密钥。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。

    (1) A 要向 B 发送信息,A 和 B 都要产生一对用于加密和解密的公钥和私钥。
    (2) A 的私钥保密,A 的公钥告诉 B;B 的私钥保密,B 的公钥告诉 A。
    (3) A 要给 B 发送信息时,A 用 B 的公钥加密信息,因为 A 知道 B 的公钥。
    (4) A 将这个消息发给 B (已经用 B 的公钥加密消息)。
    (5) B 收到这个消息后,B 用自己的私钥解密 A 的消息。其他所有收到这个报文的人都无法解密,因为只有 B 才有 B 的私钥。

    上面流程来自博客:加解密篇 - 非对称加密算法 (RSA、DSA、ECC、DH)

    也就是说,在网上所传递的只是公钥,而对于传递的数据来说,一般都使用(对方)公钥加密、(自己)私钥解密,而私钥自由自己知道,故而可以保证信息不被破解

    虽然信息可以保证不被破解,但是因为其双方公钥公开,故而可以尝试伪造数据。也就是,报文在发送中途存在着被替换的风险,对于A而言我们需要确保这个数据确实是B发过来的,而这里就需要使用到数字签名

    2.1 数字签名

    我们知道hash算法不可逆,比如MD5。对于任意文件或者数据,我们都可以得到一个摘要,即hash值。

    首先可以A将要发送信息进行Hash函数,生成信件的摘要。再将摘要用私钥加密,这个加密后的摘要就是数字签名。注意数字签名是用私钥进行加密的,而不是用公钥。

    然后将发送信息和数字签名发给BB数字签名A的公钥解密进行解密,得到信件的摘要。再对发送信息使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

    再用A的公钥对数字签名进行解密。然后将解密后的文件用hash得出摘要,再与数字签名的结果进行对比如果摘要相同,就证明是A发的。

    但这个对比是基于A已经确保收到的公钥确实是B的前提,但是这个过程如果存在一个中间人,也给A发送自己的公钥,那么如何确保A收到的就是B的公钥?(无法确定公钥是否真的属于目标对象。)

    2.2 数字证书

    显然,我们需要一种技术来确保发送发获取的公钥是目标对象的公钥。也就是:数字证书(Digital Certificate

    两人无法互相相信时,此时就需要一个权威的第三者,这是一个签发数字证书的权威机构,叫”证书中心"(certificate authority,简称CA)。

    要有这个机构的数字证书,不仅包括了公钥,还包括了域名签发机构有效期签名等,CA机构的认证很严格,跟我们的身份认证一样,因此可以相信。

    数字证书就像身份证,CA机构就是派出所。

    A作为服务器一端,需要把自己的证书给B看。然后BCA查看此证书是否是真实的。

    那么,如何确保这个CA不是第三方伪造的呢?

    答案是:直接把最权威的几个CA机构证书放到用操作系统中。其实,之后只需要使用信任链,即机构1说机构2可以信任,那我们就可以信任2,机构2说机构3信任,那我们就可以信任机构3。这样我们就可以信任很多个CA机构分发的证书了。

    2.3 常见的非对称加密算法

    常见的非对称加密算法有RSADSA

    2.3.1 RSA

    RSA 是一种目前应用非常广泛、历史也比较悠久的非对称秘钥加密技术,在1977年被麻省理工学院的罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼三位科学家提出,由于难于破解,RSA 是目前应用最广泛的数字加密和签名技术,比如国内的支付宝就是通过RSA算法来进行签名验证。

    它的安全程度取决于秘钥的长度,目前主流可选秘钥长度为 1024位、2048位、4096位等,理论上秘钥越长越难于破解。支付宝的官方文档上推荐也是2048位,当然更长的秘钥更安全,但也意味着会产生更大的性能开销。

    2.3.2 DSA

    Digital Signature Algorithm,数字签名算法,他是由美国国家标准与技术研究所(NIST)与1991年提出。和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快。


    3. 对比总结

    • 对称加密技术的优点加密一计算量小,速度。缺点是,加密方和解密方必须协商好秘钥,且保证秘钥安全,如果一方泄露了秘钥整个通信就会被破解,加密信息就不再安全了。
    • 非对称机密技术使用两个秘钥进行加解密,一个叫做公钥,一个叫做私钥,私钥自己来保管,公钥可以公开,使用公钥加密的数据必须使用私钥解密,反之亦然。非对称加密技术安全性更好,但性能更

    4. 混合加密

    前文提到了:

    • 对称加密运算快,但是秘钥的分发问题确是其难点;
    • 非对称加密运算慢,但是安全性能通过公私钥对、数字签名、数字证书等可以得到保证,但是速度慢;

    在混合加密机制中,交换密钥的环节使用非对称加密,之后的通信则使用对称加密

    也就是说只要保证了在对称加密中的密钥的安全性,就可以使用更加快速的对称加密技术来进行消息的通信。

    混合加密(hybrid encryption)是2018年全国科学技术名词审定委员会公布的计算机科学技术名词。

    具体的实现思路是先使用对称加密算法对数据进行加密,然后使用非对称加密算法对对称加密的密钥进行非对称加密,之后再把加密后的密钥和加密后的数据发送给接收方。


    Thanks

    展开全文
  • 本文实例讲述了Python3对称加密算法AES、DES3。分享给大家供大家参考,具体如下: python3.6此库安装方式,需要pip3 install pycryptodome。 如有site-packages中存在crypto、pycrypto,在pip之前,需要pip3 ...
  • 传统的非对称加密算法仅涉及两方:一方是发送方(加密器),另一方是接收方(解密器),其中每一方都有两个不同的密钥:私钥和公钥。 但是,如果将其应用在某些面向多方的环境中,则可能会存在一个严重的问题,即各...
  • 对称加密概述

    万次阅读 多人点赞 2018-07-29 16:16:15
    对称加密概述 前言 在阅读《精通比特币》的过程中,我发现比特币系统中有两个重要的概念需要利用非对称加密技术: 比特币地址的生成 交易合法性的验证 因此,我用了几天时间学习了密码学基础知识,尤其是非...

    非对称加密概述

    前言

    在阅读《精通比特币》的过程中,我发现比特币系统中有两个重要的概念需要利用非对称加密技术:

    比特币地址的生成

    交易合法性的验证

    因此,我用了几天时间学习了密码学基础知识,尤其是非对称加密技术的原理。这里加以整理总结,本文只求通俗,必需涉及数学公式才能解释的部分只给出优质教程的链接,根据需求选择学习就好。

    本文以一个一脸懵逼的新手视角进行介绍:

    • 想了解非对称加密,那么对称加密是什么?
    • 非对称加密又是什么??
    • 非对称加密技术能做什么???
    • 如果想深入了解非对称加密算法原理看哪些资料????
      这里写图片描述

    先说说对称加密

    想了解非对称加密,不妨先解释对称加密是什么

    对称加密,全称应该是对称密钥加密(Symmetric-key algorithm),是密码学中的一类基本的加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。

    而在密码学中,密钥(key)是指某个用来完成加密、解密、完整性验证等密码学应用的秘密信息。

    一个密钥大概长这样“A56FDJK3+dj2slh345dhi”,一般以一定长度的字母和数字组成的字符串来表达,具体长度和使用的字母由具体的加密算法规定,没有统一规定。

    下面用例子和图来直观解释对称密钥加密,有请出密码学中出镜率最高的两个人:Alice和Bob

    假设Alice正在利用网络向Bob发送一条消息“Alice已向Bob转账1BTC,请查收。”
    这里写图片描述
    由于通信过程不能保证是安全的,两人的通信暴露在网络中是存在被第三方劫持的可能

    因此Alice和Bob商量使用对称加密方法对消息进行。

    为了安全,两人私下确定了使用的加密规则(例如对称加密算法DES),以及密钥(例如“AliceBobKey”)

    于是新的通信过程如下图所示:
    这里写图片描述
    从图中可以看出,Alice使用事先商量好的加密算法和密钥对消息进行加密,通过互联网发送给Bob,Bob收到密文后,使用同样的算法和密钥对密文进行解密。加密-解密的过程完全对称,因此被称为对称密钥加密。

    于是,即使现在存在第三方劫持了Alice发送的消息,也无法得知消息的具体内容,安全性得到的一定程度的保证。

    事实上,这组密钥成为了Alice和Bob的共同秘密,以便维持专属的通信联系,任何一方都不能将密钥泄露。

    对称加密的过程非常好理解,在很多场合都需要这种技术,也有着很多优点(比如速度快)。

    但与非对称加密相比,要求双方获取相同的密钥是对称密钥加密的主要缺点之一。在某些特殊的场景下,这种加密技术就会有局限性,比如它无法用于身份验证,因为你不能将密钥提供给其他人。

    下面就来说说非对称加密

    非对称加密是什么?

    非对称加密(asymmetric cryptography),也称为公开密钥加密(Public-key cryptography),是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥。顾名思义,公钥可以任意对外发布;而私钥必须由用户自行严格秘密保管,绝不透过任何途径向任何人提供,也不会透露给要通信的另一方,即使他被信任。

    非对称加密的重要性质:

    1.加密的双向性。

    加密具有双向性,即公钥和私钥中的任一个均可用作加密,此时另一个则用作解密。
    这里写图片描述
    使用其中一个密钥把明文加密后所得的密文,只能用相对应的另一个密钥才能解密得到原本的明文,甚至连最初用来加密的密钥也不能用作解密,这是非对称加密最重要的性质或者说特点。

    2.公钥无法推导出私钥

    必须确保使用公钥无法推导出私钥,至少妄想使用公钥推导私钥必须在计算上是不可行的,否则安全性将不复存在。

    虽然两个密钥在数学上相关,但如果知道了公钥,并不能凭此计算出私钥;因此公钥可以公开,任意向外发布;而私钥不公开,绝不透过任何途径向任何人提供。

    注1:任何一种实现上面两条性质的不同方法,便是一种新的非对称加密算法。例如RSA算法和椭圆曲线算法,其背后原理大不相同,但都满足这两个重要性质或者说定义。这就好像好比欧式距离,马氏距离都满足了范数的定义,因此都是一种具体的范数。

    注2:如果你第一次接触非对称加密,你可能会和我一样对上面两条性质如何实现深感好奇,但目前你不必深陷于此,其背后的数学原理还是需要耐心钻研上几天的。现在仅仅牢记这两个性质就好,文末提供了一些优质的材料以供进一步学习。

    非对称加密的应用

    了解了非对称加密大致是什么,这小节来说说它能够做什么?

    前面已经知道,非对称加密具有双向性,即公钥和私钥中的任一个均可用作加密,此时另一个则用作解密。于是不同加密方向便产生了不同的应用。

    应用1:加密通信

    |明文|->公钥加密->|密文|->私钥解密->|明文|

    这种加密路径用于和他人进行加密通信,作用等同于对称加密。

    我们回到Alice和Bob的例子来看下。

    如果Bob想利用非对称加密算法私密的接收他人向他发送的信息,步骤是这样的。

    1.首先Bob需要使用具体约定的算法(例如RSA)生成密钥和公钥,密钥自己保留,公钥对外公布。

    2.Alice拿到Bob的公钥后,便可以对想要发送的消息“Alice已向Bob转账1BTC,请查收。”进行加密。

    3.然后Alice将密文(例如是“FH39ggJ+shi3djifg35”)发送给Bob。

    4.Bob收到消息后,用自己的私钥进行解密,还原出消息原文“Alice已向Bob转账1BTC,请查收。”

    用图来表示便是下面的过程:
    这里写图片描述
    由于使用Bob公钥加密的消息只能用Bob的私钥解密(Bob的公钥也是不行的),而私钥只有Bob拥有,因此即使消息被第三方劫持,他也无法还原出消息明文。

    应用2:数字签名

    如果反过来,先用私钥加密呢?这便诞生了非对称加密的另一个重要应用:数字签名

    我们回到Alice和Bob的例子来看下。

    在比特币系统中,类似“Alice已向Bob转账1BTC,请查收。”这样的消息最终会被矿工记录在账本上,是与转账双方利益相关的。这样一条消息的受益方是Bob,我们腹黑一点想,如果Bob一直向网络中广播Alice给他转账的消息呢?

    Bob:“Alice已向Bob转账1BTC”

    Bob:“Alice已向Bob转账2BTC”

    Bob:“Alice已向Bob转账3BTC”

    因此,我们需要一种机制来证明Alice是“自愿”的,也就是消息是Alice亲自发出的。步骤是这样的:

    1.Alice需要使用具体约定的算法(例如RSA)生成密钥和公钥,密钥自己保留,公钥对外公布。

    2.当Alice想要发送消息 Alice已向Bob转账1BTC,请查收。| 我的公钥是:“gh3giPGFN2jgh3sF”。 时,Alice使用自己的私钥对消息进行加密,假设加密后的密文是 SHG356g3T4+dh4fh,现在这个密文可以看作Alice的数字签名。

    3.Alice将消息明文和数字签名放到一起并发送到网络中

    发送的消息类似这样的形式 Alice已向Bob转账1BTC,请查收。| 我的公钥是:“gh3giPGFN2jgh3sF”。| 签名:“SHG356g3T4+dh4fh”

    4.网络中的所有人接收到消息后,都可以进行如下操作完成验证:

    收到消息 Alice已向Bob转账1BTC,请查收。| 我的公钥是:“gh3giPGFN2jgh3sF”。| 签名:“SHG356g3T4+dh4fh”

    使用Alice在消息中提供的公钥 gh3giPGFN2jgh3sF对私钥签署的数字签名SHG356g3T4+dh4fh进行解密

    将解密结果与消息明文 Alice已向Bob转账1BTC,请查收。| 我的公钥是:“gh3giPGFN2jgh3sF”进行对比

    如果一致,说明消息是Alice亲自发送的,因为只有Alice本人拥有Alice的密钥

    如果不一致,则说明消息不是Alice发送的,或者虽然消息是Alice发送的但已遭到他人篡改

    5.于是,通过4中描述的方法,Bob确认了Alice给他了一笔价值1BTC的转账。

    网络中其他人(矿工)均成功验证了这条消息的真实性,并为Bob作证他的账户新增了1个BTC,Alice的账户减少了1个BTC。

    整个过程可以被下图描述:
    这里写图片描述
    注1:上面仅仅是对数字签名技术的一个简单描述,很好理解吧~实际应用中的操作略有区别,比如通常是先对明文进行hash,再对hash后结果用私钥进行签名。

    注2:此外,上述介绍的数字签名简略版本是存在被第三方攻击的漏洞的。你能想到问题以及如何解决吗?[提示:相同内容的消息、时间戳]

    注3:如果你觉得对数字签名的理解还不够清晰,不妨再读读What is a Digital Signature?

    应用3:数字证书

    数字证书是非对称加密的又一个重要应用,由于与区块链的学习的关系相对不那么密切,这里就先放一边了。

    大家有兴趣可以看这篇文章数字证书原理,讲的很清晰

    教程推荐:加密-解密背后的数学原理

    读到现在,你应该对非对称加密的步骤非常了解了

    但你不清晰的地方是背后的数学原理,其实还是围绕非对称加密的两条性质来的:

    • 加密-解密的过程到底是如何实现的?
    • 为什么公钥无法推导出私钥?

    如果你想进一步探索,不妨读读下面这些资料:

    RSA算法是如何实现加密解密的?

    wiki:RSA algorithm

    阮一峰的网络日志:RSA算法原理(一)

    阮一峰的网络日志:RSA算法原理(二)

    椭圆曲线算法的具体原理?

    椭圆曲线算法可以用来进行秘密的共享以及数字签名,实际上其具体步骤和本文介绍的还是略有差异的,如果想详细了解原理,不妨看看下面这些文章:

    椭圆曲线算法的几个简单有意思的解释(知乎)

    推荐!椭圆曲线算法的通俗介绍(tutorial)

    椭圆曲线加密算法介绍

    展开全文
  • 1. 对称加密算法: (1)加密算法与解密算法想同。 (2)加密算法的优点:加密解密的效率很高; (3)加密算法的缺点:容易被劫持,使用时间稍长就会被中间劫持,根据数据规率找破解出加密算法。 (3)解决方案:...
  • 文章目录对称加密对称加密的有优缺点密钥分配问题对称加密对称加密的优缺点混合加密 上一章节我们说到解决窃听的方法是加密,这里我们来说说加密 ...  对称加密存在密钥分配问题,A的密钥怎么
  • 对称加密、非对称加密、混合加密

    千次阅读 2022-02-06 18:13:00
    对称加密1.1 对称加密的有优缺点1.2 密钥分配问题2.非对称加密2.1 非对称加密的优缺点3.混合加密4.常见的摘要算法 1.对称加密 AES,密钥长度有128/256/192。高级加密标准,是下一代的加密算法标准,速度快,安全级别...
  • ​ 本文将带你了解一些常见的加密算法和一些概念,比如:非对称加密、公钥加密、对称加密、密钥加密、分组加密、流加密、DES加密、AES加密、ECC加密、RSA加密等等。加密解密算法对于密码学体系来说,是最基础的操作...
  • 目前使用的数据加密主要有两种形式:对称加密和非对称加密。每天,当您使用 Web 浏览器、回复电子邮件、提交网站表单和其他活动时,对称和非对称加密过程正在发生,有时您并不知道。您可能还熟悉对称和非对称加密,...
  • 对称加密和非对称加密原理

    千次阅读 2019-02-22 19:14:47
    对称加密和不对称加密原理 **私钥加密(对称加密 symmetric cryptography):**私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理...
  • 一、对称加密(Symmetric Cryptography) 优缺点 二、非对称加密(asymmetric Cryptography) 优缺点 三、Hash加密算法(摘要算法) 对称加密算法的加密与解密使用的是同样的密钥,加密解密速度较快。但由于...
  • Https的加密过程 / 对称加密和非对称加密

    千次阅读 多人点赞 2018-12-24 11:21:00
    先说具体过程 client请求服务端(指定SSL版本和加密组件) server返回CA证书+公钥 client用机构公钥认证server返回的CA证书上的签名是否正确 client生成一个密钥R,用...WEB服务存在http和https两种通信方式,h...
  • 对称加密和非对称加密是什么?

    千次阅读 2019-12-28 19:48:41
    在当今的网络世界中,存在着未经授权访问所有形式数据的风险。风险最大的是财务和支付系统数据,这些数据可能会暴露客户和客户的个人识别信息(PII)或支付卡详细信息。加密对于保护PII和减轻进行支付交易的企业每天...
  • 对称加密算法 第2章 ...目标 Objectives 要求 了解非对称加密算法的基本概念、基本术语; 了解非对称加密算法中典型的加密算法;...对称加密算法将长期存在。 非对称加密算法 二、典型非对称加密算法——
  • 对称加密工作原理

    千次阅读 2021-08-10 14:15:30
    对称加密对称加密使用两个密钥,一个是public key,一个是private key。通过一个特殊的数学算法,使得数据的加密和解密使用不同的密钥。因为用的是不同的密钥,所以称为非对称加密。非对称加密最著名的是RSA...
  • 一、对称加密 在密码学上,加密和解密使用的是同一个秘钥的称为对称加密对称加密的秘钥一般比较短,小于256kbit, 当然,秘钥越大,安全性就更强,但是加密和解密的过程耗时也就更长,其中权衡,取决于实际应用...
  • 密码学专题 对称加密算法

    千次阅读 2021-11-16 18:02:06
    OpenSSL的对称加密算法指令主要用来对数据进行加密和解密处理,输入输出的方式主要是文件,当然,也可以是默认的标准输入输出设备。 OpenSSL基本上为所有其支持的对称加密算法都提供了指令方式的应用,这些应用...
  • 对称加密算法和非对称加密算法

    千次阅读 2020-10-15 17:47:18
    然后传给服务器 服务器收到信息后,用私钥解密,提取出对称加密算法和对称密钥后,服务器说:(好的)对称密钥加密 后续两者之间信息的传输就可以使用对称加密方式了 这是个非常非常经典的数据传输过程,也是Https...
  • 我们先看一个例子,小明和小红要进行通信,但是不想被其他人知道通信的内容,所以双方决定采用对称加密方式。他们做了下面的事情: 1、双方商定了加密和解密的算法 2、双方确定密钥 3、通信过程中采用这个密钥进行
  • 对称密钥加密和非对称密钥加密

    千次阅读 2021-07-13 20:22:52
    1、对称密钥加密(Symmetric-Key Encryption),加密和解密使用同一密钥。 优点:运算速度快 缺点:无法安全地将密钥传输给通信方 2、非对称密钥加密,又称公开密钥加密(Public-Key Encryption),加密和解密使用...
  • 第一 对称加密对称加密是指,加密...常用的对称加密算法:AES,RC4,3DES传输的示意图如下所示:如上图所示,此种方式属于对称加密,双方拥有相同的密钥,信息得到安全传输,但此种方式的缺点是:(1)不同的客户...
  • 对称加密和非对称加密体系

    千次阅读 2021-12-23 21:08:33
    发送方用该密钥对待发消息进行加密,然后将消息传输至接收方,接收方再用相同的密钥对收到的消息进行解密。 优点 计算量小,算法速度快,加密效率高 缺点 密钥容易泄漏。不同的会话需要不同的密钥,管理起来很费劲 ...
  • 3、对称加密 4、非对称加密 5、消息摘要 6、数字签名 7、CA与数字证书 8、总结 1、明文通信 大部分时候,咱们交流都是靠嘴对嘴,信息完全暴露在他人的耳朵里。 拉拉家常无关紧要,但要是涉及重要、私密的信息就不...
  • JWT&对称加密&非对称加密

    千次阅读 2020-03-01 20:17:50
    而通过非对称加密则不存在这个问题。用公钥即可解密header(头部)与payload(载荷)。 1、加密和解密过程不同 对称加密过程和解密过程使用的同一个密钥,加密过程相当于用原文+密钥可以传输出密文,同时解密...
  • 对称加密与非对称加密的区别

    千次阅读 2019-11-07 11:08:53
    对称加密如下图: 例如:“屌丝”要给“高富帅”传输数据,屌丝的加密密码为“123”,此时通过加密工具(RSA)生成一个公钥A和私钥A,“高富帅”也一样生成一个公钥B和私钥B,“屌丝”会用对方的公钥B和自己...
  • 如2014年西班牙三大主要供电服务商超过30%的智能电表被检测发现存在严重安全漏洞、 2015年的乌克兰大规模停电事件、2017年的勒索病毒事件、2018年台积电生产基地被攻击事件。因此,需要应用科学措施来确保互联网信息...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,395
精华内容 19,758
关键字:

对称加密方式主要存在的问题