博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
区块链中的密码学
阅读量:7111 次
发布时间:2019-06-28

本文共 1127 字,大约阅读时间需要 3 分钟。

区块链概念

 

区块:可以看做是一页一页的账单,上面记录若干条数据

区块链:可以看做是账本,里面按照时间顺序将若干个账单 每个区块中包含两个最重要的值,自己的hash值,和上一个区块的hash值

 详解

          区块链是一串使用密码学方法相关联产生的数据块,每一个区块中包含上一个区块的hash值,用于验证其信息的有效性(防伪)和生成下一个区块

 

 

 

Hash算法

 

Hash算法:可以将任意数据 生成 固定长度的16进制字符串

常见算法:md5 , sha1 , sha256 , sha512等,都是摘要算法

 

密码学

 

一.对称加密:

         使用 同一个密匙 进行加密和解密,这种加密方法称为 对称加密 也成为单密匙加密

         算法:DES , 3DES , AES , TDEA , Blowfish , RC2 , RC4 , RC5 , IDEA , SKIPJACK

 

1.特点:

         a.加解密使用相同的密匙

         b.高效,使用于大量数据的加密场景

         c.算法公开,安全性取决于密匙大小,但密匙越大效率越低,需要权衡在安全和效率中做权衡

2.缺点

         算法本身安全,但使用场景不够安全,因为解密和加密都是使用同一个密匙

 

二.非对称加密

使用 匹配的一对密匙来分别进行加密和解密,这两个密匙是公开密匙(公钥)和私有密匙(私钥)

算法:RSA、ECC、Elgamal、背包算法、Rabin、D-H 等

 

非对称加密使用方法

  1. 生成一对匹配的 私钥 和 公钥 (ps:公钥其实是根据私钥生成的)
  2. 将公钥公布给外界

用法1. 公钥加密 - 用来针对互联网上加密数据传递

将自己的公钥公布给外界,然后拿到公钥的人必须使用对应私钥来解密

注意:公钥加密的数据只能对应的私钥解密,同理,私钥加密的数据只能用对应的公钥解密

 

 

用法2. 私钥签名 - 目的是为了将明文公布给别人,同时证明是自己发的

 

用自己的私钥对明文进行hash值,对hash进行加密,连同明文一同发送给指定的人,

 

该人使用我的私钥进行解密,解密后的明文hash值和接受到的明文的hash值进行对比,如果是一样的,就能证明密文是 发的

 

特点:

       安全性高

       加解密复杂,效率低

 

 

小结

~对称加密 加密与解密 使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。

~ ~ 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。

~ ~ ~ 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密协商,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通

 

转载于:https://www.cnblogs.com/mlw1814011067/p/9571469.html

你可能感兴趣的文章
Tomcat error: A child container failed during start
查看>>
jquery 时间戳和日期时间转化
查看>>
Codeforces Round #370 (Div. 2) C. Memory and De-Evolution 水题
查看>>
MySQL数据备份之mysqldump使用
查看>>
mysql中根据一个字段相同记录写递增序号,如序号结果,如何实现?
查看>>
sql STUFF用法
查看>>
fdisk 分区
查看>>
别说无所谓
查看>>
irb的子会话 - 相思雨 - 博客园
查看>>
python 网络编程
查看>>
aspx 页面数据绑定 前台数据绑定
查看>>
《推荐系统实践》样章:如何利用用户标签数据
查看>>
U-Boot Makefile文件分析
查看>>
Puppetmaster高可用和可扩展的方案设计
查看>>
[2013EJDE]Osgood type regularity criterion for the $3$D Newton-Boussinesq equations
查看>>
黄疸案
查看>>
[转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置
查看>>
【转】Android源代码编译命令m/mm/mmm/make分析--不错
查看>>
【SQL】SQL中笛卡尔积、内连接、外连接的数据演示
查看>>
HTTP解析
查看>>