精华内容
下载资源
问答
  • 对称加密与非对称加密的原理
    千次阅读
    2021-09-17 08:17:54

    对称加密的原理是数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。非对称加密的原理是甲方首先生成一对密钥同时将其中的一把作为公开密钥;得到公开密钥的乙方再使用该密钥对需要加密的信息进行加密后再发送给甲方;甲方再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。

    对称加密和非对称加密的区别为:密钥不同、安全性不同、数字签名不同。一、密钥不同1、对称加密:对称加密加密和解密使用同一个密钥。2、非对称加密:非对称加密加密和解密所使用的不是同一个密钥,需要两个密钥来进行加密和解密。二、安全性不同1、对称加密:对称加密如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听。2、非对称加密:非对称加密因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。三、数字签名不同1、对称加密:对称加密不可以用于数字签名和数字鉴别。2、非对称加密:非对称加密可以用于数字签名和数字鉴别。

    更多相关内容
  • 本文实例讲述了C#对称加密与非对称加密的原理与实现方法,分享给大家供大家参考。具体分析如下: 一、对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密...
  • 对称加密与非对称加密

    千次阅读 2022-04-22 17:34:48
    一:对称加密 1:原理 通信双⽅使⽤同⼀个密钥,使⽤加密算法配合上密钥来加密,解密时使⽤加密过程的完全逆过程配合密钥来进⾏解密。 举个简单的例子: 按规则使⽤不同的⽂字来替换掉原先的⽂字来进⾏加密...

    一:对称加密

    1:原理

    通信双⽅使⽤同⼀个密钥,使⽤加密算法配合上密钥来加密,解密时使⽤加密过程的完全逆过程配合密钥来进⾏解密。

    举个简单的例子:

    按规则使⽤不同的⽂字来替换掉原先的⽂字来进⾏加密。
     
    码表:
    原始字符:ABCDEFGHIJKLMNOPQRSTUVWXYZ
    密码字符:BCDEFGHIJKLMNOPQRSTUVWXYZA
    
    原始书信:how are you
    加密书信:ipx bsf zpv
    解读后:  how are you

    加密算法:替换⽂字

    密钥:替换的码表

    以上的例子就是最简单的对称加密的实现。

    2:经典算法

    DES56 位密钥,密钥太短⽽逐渐被弃⽤)、AES128 位、192 位、256 位密钥,现在最流⾏)

    当然还有其他的算法,但这2种贵在金典。。

    3:对称加密作⽤

    加密通信,防⽌信息在不安全⽹络上被截获后,信息被⼈读取或篡改。

    4:对称加密的缺点

    密钥泄露:不能在不安全⽹络上传输密钥,⼀旦密钥泄露则加密通信失败

    二:非对称加密

    1:原理

    使⽤公钥(加密密钥)对数据进⾏加密得到密⽂;使⽤私钥(解密密钥)对数据进⾏解密得到原数据。公钥和私钥是不相同的,

                                                           图 2-1

    举个简单的例子(不用深究,但是足以体现非对称加密的最核心的原理,运用各种移位、溢出等算法):假如你遇到危险,这时候要发送个110求救,以防被截获咱们得给它加密一下

         原数据是: 110
             加密  +4  
    通过加密秘钥后: 554
             解密  +6和移位等
                    11 11 10
    通过解密秘钥后:   1  1  0

    2:使用场景

    进行网络通信,非对称加密是怎么做到可以在不安全的网络环境下进行安全的通信的呢

                                                                           图 2-2

    通信双方把加密秘钥给对方,然后双方怎么通信呢?图2-3中A通过B的加密秘钥加密数据后发给B,B就可以用B的机密秘钥进行解密,这样就实现的通信了。

           那像C也是可以获取到A、B的机密秘钥的,但是C没有A、B的解密秘钥,所以即使C获取的到秘文,也无法进行解密。但是C在拥有A/B的加密秘钥,那C不就可以冒充A、B进行传数据了吗,那要怎么保证传数据的那一方是实际数据来源方呢?在后面我们会进行讲解,继续往下

                                                                            图 2-3

                                                                            图 2-4

     图2-3和图2-4是一样的,从公钥的命名也可以知,公钥是可以公开的,但是私钥是一定要握在自己手上。很多时候公钥是可以通过私钥计算出来的,用的是椭圆曲线算法,比特币用的一种算法,所以如果拿到了私钥就等于同时拿到了公钥,可见私钥不能公开的必要性。

    公钥能不能解私钥?

    答案是能,可互相解

    签名和验证

    由于私钥和公钥互相可解,因此⾮对称加密还可以应⽤于数字签名技术。即用来证明发信息者的身份

                                                                         图 2-5

    图2-5原数据通过私钥加密后(签名),生成签名数据,那对方就可以通过对应的公钥进行解密(验证)。由于别人没有我的私钥,就无法造出我的数据,也就无法冒充我了

                                                                          图2-6                                              

    图2-6是比较标准的签名流程,会把原数据一起发送,这个是主要是为了验证方便

     加密+签名

     在实际的使用过程,常会对原数据hash以后对hash签名,然后附加在原数据的后⾯作为签名。这是为了让数据更⼩。

     加密+签名(完整)

    3:经典算法

    RSA(可⽤于加密和签名)、DSA(仅⽤于签名,但速度更快)

    三:Hash

    1:定义

    常会对原数据hash以后对hash签名,然后附加在原数据的后⾯作为签名。这是为了让数据更⼩。

    2:作⽤

    相当于从数据中提出摘要信息,因此最主要⽤途是数字指纹。

    3:实际用途

      数据完整性验证

    从⽹络上下载⽂件后,通过⽐对⽂件的Hash值(例如MD5、SHA1),可以确认下载的⽂件是否有损坏。如果下载的⽂件Hash值和⽂件提供⽅给出的Hash值⼀致,则证明下载的⽂件是完好⽆损的。

     唯⼀性验证

     如JAVA中验证,要重写hashCode()

    隐私保护

    当重要数据必须暴露的时候,有事可以选择暴露它的Hash值(例如MD5),以保障原数据的安全。

    例如⽹站登录时,可以只保存⽤户密码的Hash值,在每次登录验证时只需要将输⼊的密码的Hash值和数据库中保存的Hash值作⽐对就好,⽹站⽆需知道⽤户的密码。这样,当⽹站数据失窃时,⽤户不会因为⾃⼰的密码被盗导致其他⽹站的安全也受到威胁。

    加盐:由于彩虹表的存在,存储了很多常用密码对应的Hash值,这样就相当于破解了hash加密过的值,这时候加上一些自己特有的值一起hash,这样值就和直接Hash的值就不同了。

    快速查找

    HashMap

    经典算法

    MD5、SHA1、SHA256

    展开全文
  • 以上学习所有内容,对称加密非对称加密、消息摘要、数字签名等知识都是为了理解数字证书工作原理而作为一个预备知识。数字证书是密码学里的终极武器,是人类几千年历史总结的智慧的结晶,只有在明白了数字证书工作...
  • 非对称加密JAVA实现

    2020-08-06 12:50:58
    非对称加密JAVA实现,实现对超长内容进行加密
  • 本文主要介绍了对称加密与非对称加密的优缺点,具有一定的参考价值,下面跟着小编一起来看下吧
  • 登录时,用户的密码用明文传输...非对称加密算法常用RSA算法,秘钥使用base64编码成字符串,后端使用jdk8的标准API,前端使用jsencrypt.js进行RSA的对应操作。经过测试,本例中的前后端代码的加密解密计算结果是一致的。
  • Java+js实现前后端非对称加密,采用rsa技术进行加密,前后端代码已上传,包括js文件,简单易懂。
  • 非对称加密工作原理

    千次阅读 2021-08-10 14:15:30
    非对称加密 非对称加密使用两个密钥,一个是public key,一个是private key。通过一个特殊的数学算法,使得数据的加密和解密使用不同的密钥。因为用的是不同的密钥,所以称为非对称加密非对称加密最著名的是RSA...

    非对称加密

    非对称加密使用两个密钥,一个是public key,一个是private key。通过某个算法,使得数据的加密和解密使用不同的密钥。因为用的是不同的密钥,所以称为非对称加密。非对称加密最著名的是RSA算法,这是以其发明者Rivest, Shamir 和Adleman命名。非对称加密算法里面的public key和private key在数学上是相关的,这样才能用一个加密,用另一个解密。不过,尽管是相关的,以现在的能力还无法从一个密钥,算出另一个密钥。
    非对称加密的好处在于A可以保留private key,通过网络传递public key。这样,就算public key被C拦截了,因为没有private key,C还是没有办法完成信息的破解。
    具体在使用中,A和B都各有一个public key和一个private key,这些key根据相应算法是已经生成好了的。private key保留在各自的本地,public key传给对方。A要给B发送网络数据,那么A先使用自己的private key(只有A知道)加密要发送数据的hash值(数字签名),之后再用B的public key加密数据。之后,A将加密的hash值和加密的数据再加一些其他的信息,发送给B。B收到了之后,先用自己的private key(只有B知道)解密数据,通过解密的数据计算出一个hash值,然后用A的public key解密hash值,对比两个hash值,以检验数据的完整性。
    非对称加密通信过程
    解密过程

    非对称加密的安全隐患

    如果在一切的最开始,A和B通过网络交换public key。如果C在中间拦截了呢?假设有这种情况,C拦截了A和B的public key,又分别用自己的public key发给A和B。A和B并不知道,他们还以为这个public key来自对方。当A给B发消息时,A先用自己的private key加密数据的hash值,之后用C传来的假的public key加密数据,再发出去。C拦截到之后,先用C自己的private key解密数据,C就获取了A的原始信息!之后,C可以篡改数据内容,再用自己的private key加密数据的hash值,用之前拦截的B的public key加密数据,再发给B。B收到以后,先用自己的private key解密数据,再用C传来的假public key解密hash值,发现匹配。这样,B收到了一条来自C的假的信息,但是B还以为信息来自于A。中间人攻击仍然可能存在!

    实际使用

    非对称加密算法比对称加密算法要复杂的多,处理起来也要慢得多。如果所有的网络数据都用非对称加密算法来加密,那效率会很低。所以在实际中,非对称加密只会用来传递一条信息,那就是用于对称加密的密钥。当用于对称加密的密钥确定了,A和B还是通过对称加密算法进行网络通信。这样,既保证了网络通信的安全性,又不影响效率。。
    所以,在现代,A和B之间要进行安全,省心的网络通信,需要经过以下几个步骤:

    • 通过CA体系交换public key
    • 通过非对称加密算法,交换用于对称加密的密钥
    • 通过对称加密算法,加密正常的网络通信

    参考:
    https://zhuanlan.zhihu.com/p/36981565

    展开全文
  • AES和RSA java实现
  • 对称加密与非对称加密.mp4
  • 对称加密非对称加密深度解析

    千次阅读 2022-03-15 21:23:26
    * 对称加密: 加密密钥和解密密钥相同 * 非对称加密: 加密密钥和解密密钥不相同

    密码学的发展

    加密的发展史随着人类的进化逐步复杂、严谨也更安全,对于早期的移位和字母对应等加密方式我们不难理解。

    • 移位 : 比如恺撒密码, 简单点说将 26个英文字母的顺序打乱,得到一个新的字母顺序,之后的英文或是拼英组成的单词就无法直接看出是什么了。
    • 字母对应 :比如使用一个密码本, 原文通过对应的字母进行转换。

    后来出现了更高级的使用密钥的方式加密,加密和解密使用相同的密钥, 密钥越长,解密就越难。 到1976年出现了非对称加密。

    加密的分类

    按照密文是否可以被还原,可以将加密分为可逆加密和不可逆加密。严格意义上说,不可逆加密应该算不上加解密的范畴,但是实际开发过程中,还是会使用到使用不可逆加密的方法对某些信息进行加密,比如用户的登录密码。

    不可逆加密和可逆加密

    • 不可逆加密: 信息摘要和安全散列。将任意大小的原始数据变换成规定长度的输出,获取内容的数字指纹。算法比如MD5,SHA1,PBKDF2,bcrypt。
    • 可逆加密: 基于算法,可逆加密又分为对称加密和非对称加密。

    对称加密和非对称加密

    • 对称加密: 加密密钥和解密密钥相同
    • 非对称加密: 加密密钥和解密密钥不相同

    在对称加密中,密钥就是一个数字,长度越长, 破解越困难,加解密流程如下:
    在这里插入图片描述

    非对称加密有两个密钥,一个公钥一个私钥。 加密和解密使用不同的密钥。加解密流程如下:
    在这里插入图片描述

    除了公钥加密,私钥解密;也可以使用私钥加密,公钥解密。两者都有着实际的应用。

    • 公钥加密,私钥解密。主要用于通信
    • 私钥加密(签名),公钥解密(验证), 用于数字签名

    加密算法汇总

    不同的加密类型,对应的加密算法有:

    1. 基于算法的加密算法, 也称为古典加密算法, 比如base64, 比特币生成地址使用的base58。 这类算法对原始内容进行置换和替换得到密文, 安全性依赖于算法是否外泄。
    2. 对称加密算法。 加解密使用同一个密钥。算法常见的有DES、3DES、AES。安全性从依赖算法转向依赖于密钥。
    3. 非对称加密。 加解密使用同不同的密钥。常见算法:RSA, DH , ECC。
    对称加密非对称加密
    DES , AES ,3DES,PBERSA ,DH, ECC
    • DES已经被AES所取代

    对称加密算法

    1. DES , 数据加密算法
      DEA( Data Encryption Algorithm, 数据加密算法)。
    • 1997 年 DES标准正式发布, 分组长度64比特,其中8比特为奇偶校验位, 所以实际长度为56比特。

    DES密钥的实质长度是56比特(7个字节)。
    示例:

    • 二进制: 01010001 11101100 01001011 00010010 00111101 01000010 00000010
    • 十六进制:51 EC 4B 12 3D 42 02
    • 十进制:2305928028626269954

    可以使用两个DES密钥(DES-EDE2)和三个DES密钥(DES-EDE3)。DES-EDE2长度112比特(14个字节),DES-EDE3长度168比特(21字节)。
    示例:

    • DES-EDE2: 51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F
    • DES-EDE3: 51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F 24 9F 61 2A 2F D9 96
    1. AES
      密钥长度可以从128、192和256个比特中选择。

    2. PBE 基于口令的密码
      PBE ( Password Based Encryption, 基于口令的密码)。是一种基于口令生成密钥, 并使用该密钥进行加密的方法。
      加密和解密使用的是同一个密钥。

    • 如同饭菜上加盐会改变饭菜的味道, 口令中加盐会改变生成的KEK值。

    • KEK (Key Encryting Key,密钥加密密钥), 将盐和口令通过单向散列函数, 得到的散列值就是用来加密密钥的密钥。

    在Java语言中使用PBE 加密可以参考:
    Java使用PBE算法进行对称加解密最简入门和示例

    非对称加密的理解

    非对称加密来源于数学中的大质因数分解很难的问题,基于欧几里得的证明, 每个数只有一种质因数分解, 一个大整数分解成一堆质数很难。
    理解非对称加密, 需要回顾一下下面的数学概念:

    • 素数:又称质数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
    • 互质,又称互素。若N个整数的最大公因子是1,则称这N个整数互质。
    • 模运算即求余运算。比如 10%3 , 10除以3的余数是1, 所以求模的结果是1。
    • 欧拉函数

    任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?
    计算这个值的方法就叫做欧拉函数,以φ(n)表示

    举例来说:
    对于一个很小的数 7, 分解为两个质因数的乘积很容易。但是对于一个大一点的数 589 就很难直接得到答案了(589 =19*31),如果一个更大的数呢?比如54225。
    以RSA算法为例,公钥与私钥虽然是一对密钥,但密钥值不同,这对密钥值的生成就建基于大素数的乘积与分解上。

    如果上面对非对称加密还不够了解的话,也可以从颜色的角度理解非对称加密的公私钥。

    颜色的比喻

    混合颜色是一个单向函数, 两个颜色混合输出第三种颜色很简单, 但是反过来就很难。

    首先了解一下什么是互补色:每个颜色都有一个互补色,两个互补色叠加得到白光。

    • 张三选了两个互补的颜色, 将其中一个作为公钥发给李四
    • 李四选了一个颜色, 他将这个颜色和张三混合色的颜色发给张三
    • 张三使用自己保留的颜色,叠加到李四的混合色上面。就得到了李四的颜色。
      即使李四混合后的颜色被别人知道了, 也很难破译出李四的颜色。

    对称加密和非对称加密的优缺点和应用

    • 对称加密速度快
    • 非对称加密更安全

    非对称加密在实际中会结合对称加密使用。常用的使用非对称算法获得共享密钥,使用对称加密处理数据。这也是https 采用的方式。

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

    2018-05-30 15:25:04
    对称与非对称加密的解释,帮助理解原理。。。。。。。。。
  • 本加密软件支持对称加密(AES、SM4)、非对称加密(RSA、SM2)、文件哈希(SHA2、SHA3系列); 支持系统:win10 x64 平台,其他平台未测试,但需要 64 位 Windows 操作系统
  • 自己整理的非对称加密demo,包含生成秘钥文件、生成字符转秘钥两种方式。
  • 以上学习所有内容,对称加密非对称加密、消息摘要、数字签名等知识都是为了理解数字证书工作原理而作为一个预备知识。数字证书是密码学里的终极武器,是人类几千年历史总结的智慧的结晶,只有在明白了数字证书工作...
  • 文章目录前言数字签名对称加密非对称加密数字签名数字证书参考资料 前言 最近需要实现一个艺术品买卖交易平台。由于安全性的需求,学习了各种加密方法。这里总结一下。 数字签名 Alice要和Bob互传消息,消息在公开的...
  • 非对称加密算法RSA的matlab实现,包含加密函数和解密函数,功能齐全!
  • 对称加密非对称加密

    千次阅读 2021-07-12 08:58:41
    1. 对称加密 加密和解密使用同一个秘钥,所以叫做对称加密。常见的对称加密算法:DES,AES等。 其过程可以描述为: 加密:原文 + 密匙 = 密文 解密:密文 - 密匙 = 原文 对称加密通常使用的是相对较小的密钥,一般...
  • 了解非对称加密算法的优点缺点; 非对称加密算法 一、非对称加密算法基本术语 不同于以往的加密技术,非对称加密算法是建立在数学函数基础上的,而不是建立在比特位操作上的。 只使用单一密钥的对称加密算法相比...
  • 在计算机信息安全领域,经常应用到MD5、对称加密非对称加密。在密码学的应用和研究中,DES、RSA、SHA等加密算法占据着重要的位置。随着人们对加密强度需求的不断提高,近期出现了很多加密算法,如AES、ECC等。那么...
  • 对称加密与非对称加密算法

    千次阅读 2022-01-24 16:25:55
    目录 1、对称加密 1.1、加密类型 1.1.1、流加密 1.1.2、块加密 1.2、对称加密算法 ...2、对称加密 ...2.1、对称加密算法 ...3、对称加密与非对称加密技术比较 4、实践 4.1、对称加密工具 4.1.1、AES加解密
  • 1.stm32上运行64位密钥的rsa算法,包括密钥产生,加密,解密和验证。 2.提供vs的源码工程文件,实现密钥产生验证,及stm32 可执行文件插入密钥 3.说明文档和rsa原理。 4.可以实现stm作为电子狗类似的系统保护器件。
  • 对称加密非对称加密、公钥、私钥究竟是个啥?

    千次阅读 多人点赞 2020-06-07 23:29:20
    世界上有没有不能破解的密码或加密方式?还真有一种,叫做一次性密码本,这时唯一一种不能破解的加密方式,而其他的密码只要时间无限理论上都是可破解的,如果你也对加密这个领域感兴趣,可以简单了解下这些概念...
  • 这篇记录笔者进行计算机网络相关知识学习过程中遇到的对称加密与非对称加密问题 一、密钥 网上关于密钥的概念很多,这里就简单说一下,密钥是作用于加密时的一串密码,通过密钥进行信息加密,传输,到达接收者和监听...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 117,667
精华内容 47,066
热门标签
关键字:

对称加密与非对称加密的原理