区块链的密码算法

article/2025/9/25 2:34:31

区块链系统包含了计算机科学过去几十年的成果:计算机网络P2P、算法、数据库、分布式系统、计算机密码学等

密码学是区块链系统安全性保障的基础技术,形象地称为区块链的骨骼

哈希算法

■哈希算法(Hash、 散列、杂凑, 消息摘要, 音译为哈希,原意是古法语“斧子”, 后引申为“剁碎的肉末”)

■哈希算法:把任意长度的输入做复杂的变换后,输出固定长度的输出,这个输出称为输入的哈希值而相应的变换方法称为哈希算法,在不引起混淆的情况下,哈希算法也称哈希函数

■哈希算法的输出长度和输入长度无关

■哈希这种转换是一种压缩映射 ,即散列值的空间通常远小于输入的空间

■哈希算法的输入可以是字符串,可以是数据,可以是任何文件

■作用:可以求/作为信息输入的摘要,或者指纹

■当需要比较两条消息是否一 致时, 通过对比“指纹”就能知道两条消息是否一致

对于n比特长的哈希函数,找到碰撞的计算复杂度为2^n/2

二、对称加密和非对称加密

1. 对称加密

对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。

常见的对称加密算法:DES,AES,3DES等等。

2. 非对称加密

非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。

常见的非对称加密算法:RSA,ECC

理解:

你可以用你的私钥加密一封信,所有人都可以用你的公钥解开来看,这可以确保这是你写的

所有人都可以用你的公钥加密写信给你,只有你自己使用你的私钥解密可以查看

公钥密码算法——陷门函数/活门函数/单向函数

非对称加密算法最关键的是它们都有自己独特的陷门函数

陷门函数是一种只能单向计算,至少是在一个方向上易于计算的函数(如果使用现代计算机从一个方向暴力破解,需要数百万xx年时间)

非陷门函数的例子:

A+B=C

已知A,B就可以算出C,但是同样,知道B,C也可以很容易得到A

陷门函数:

“i love u”+public key = "absd12394704su"

已知“i love u”和公钥,可以算出“absd12394704su”

但是知道“absd12394704su”和公钥,无法知道得出“i love u”

RSA算法:

RSA算法在已提出的公开密钥算法中,最为流行, 也最容易理解和实现的一个sua

RSA用于保密性时 ,就是公钥加密 ,私钥解密。 因为公钥是可以公开 ,任何人都可以使用公钥对信息进行加密,但是只有持有私钥的人才能正确解密。这样就保证了信息的保密性,因为只有私钥持有者才能正确解密。

RSA用于认证性时 ,比如数字签名 ,即私钥持有者对信息进行签名 ,验证者可以根据公开的公钥进行验证签名是否正确和有效。即实现了认证性,以及不可抵赖性。

公钥密码的分类:

公钥密码算法基于计算复杂度上的难题,(不可计数的实现),通常来自于数论,主要依赖于两类数学难题:

大整数因子分解问题(IFP问题):属于NP类是否存在多项式时间算法是受学者关注的

离散对数问题(简称DLP问题)

椭圆曲线加密算法

参考博客:

ECC椭圆曲线加解密原理详解(配图)_Mark的博客-CSDN博客_ecc加密

        RSA的解决分解整数问题需要亚指数时间复杂度的算法,而目前已知计算椭圆曲线离散对数问题(ECDLP)的最好方法都需要全指数时间复杂度。这意味着在椭圆曲线系统中我们只需要使用相对于RSA 短得多的密钥就可以达到与其相同的安全强度。例如,一般认为160比特的椭圆曲线密钥提供的安全强度与1024比特RSA密钥相当。使用短的密钥的好处在于加解密速度快、节省能源、节省带宽、存储空间。
        比特币以及中国的二代身份证都使用了256 比特的椭圆曲线密码算法。

 威尔斯特拉斯方程:

        椭圆曲线的椭圆一词来源于椭圆周长积分公式。(这个命名深究起来比较复杂,了解一下就可以了),一条椭圆曲线是在射影平面上满足威尔斯特拉斯方程(Weierstrass)所有点的集合。

对普通平面上点(x,y),令x=X/Z,y=Y/Z,Z≠0,得到如下方程:

 简化版的Weierstrass方程:

其中,

非椭圆曲线示例: 

椭圆曲线阿贝尔群

我们已经看到了椭圆曲线的图象,但点与点之间好象没有什么联系。我们能不能建立一个类似于在实数轴上加法的运算法则呢?这就要定义椭圆曲线的加法群,这里需要用到近世代数中的阿贝尔群。

在数学中,群是一种代数结构,由一个集合以及一个二元运算所组成。已知集合和运算(G,*)如果是群则必须满足如下要求。

封闭性: ∀a,b∈G,ab ∈ G
结合性: ∀a,b,c∈G ,有 (ab)c = a (b*c)
单位元: ョe∈G, ∀a ∈G,有ea = ae = a
逆元: ∀a ∈G ,ョb∈G 使得 ab = ba = e
交换性: ∀a,b∈G,ab = ba

同样在椭圆曲线也可以定义阿贝尔群。
任意取椭圆曲线上两点P、Q(若P、Q两点重合,则作P点的切线),作直线交于椭圆曲线的另一点R’,过R’做y轴的平行线交于R,定义P+Q=R。这样,加法的和也在椭圆曲线上,并同样具备加法的交换律、结合律。

同点加法
若有k个相同的点P相加,记作kP 。 P+P=2

 

椭圆曲线加密

考虑 K = k G K=kG K=kG ,其中K、G为椭圆曲线Ep(a,b)上的点,n为G的阶( n G = O ∞ nG=O_∞ nG=O∞​ ),k为小于n的整数。则给定k和G,根据加法法则,计算K很容易但反过来,给定K和G,求k就非常困难。因为实际使用中的ECC原则上把p取得相当大,n也相当大,要把n个解点逐一算出来列成上表是不可能的。这就是椭圆曲线加密算法的数学依据 。

    点G称为基点(base point)
    k ( k < n ) k(k<n) k(k<n)为私有密钥(private key)
    K为公开密钥(public key)


 

3. 区别

对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.

需求描述
输入长度可变H可应用于任意大小的数据块
输出长度固定H产生定长的输出
效率对于任意给定的x,计算H(x)比较容易
抗原像攻击(单向性)

对任意给定的hash码h,找到满足H(y)=h

在计算上是不可行的

抗第二原像攻击(抗强碰撞性)

对任何给定的分块x,找到满足y≠x且H(x)

=H(y) 的y在计算上是不可行的

抗碰撞攻击(抗强碰撞性)

找到任何满足H(x) = H(y)的偶对

(x,y)在计算上是不可能的

伪随机性H的输出满足伪随机性测试标准

弱Hash函数:只满足以上前五个要求的Hash函数

强Hash函数:满足以上前6个要求的Hash函数


http://chatgpt.dhexx.cn/article/D8HxD2Pb.shtml

相关文章

8、RSA 公钥密码算法

目录 RSA公钥密码算法 一、RSA的数学基础 二、RSA原理 三、算法详细流程 四、RSA特点 五、RSA应用 参考推荐&#xff1a; https://blog.csdn.net/lemon_tree12138/article/details/50696926 RSA加密算法原理_张维鹏的博客-CSDN博客_rsa加密算法原理 图解RSA算法取余和…

常用的密码算法有哪些?

我们将密码算法分为两大类。 对称密码&#xff08;密钥密码&#xff09;——算法只有一个密钥。如果多个参与者都知道该密钥&#xff0c;该密钥 也称为共享密钥。非对称密码&#xff08;公钥密码&#xff09;——参与者对密钥的可见性是非对称的。例如&#xff0c;一些参与者仅…

分组密码算法与DES算法

目录 1 分组密码的含义 1.1 分组密码介绍 1.2 分组密码的含义 1.3 分组密码的要求 2 分组密码的设计思想 2.1 分组密码的设计思想 3 分组密码的基本特点 3.1 分组密码的基本特点 3.2 分组密码的迭代结构 3.3 子密钥的生成方法 3.4 轮函数的设计准则 3.5 迭代的轮数 4…

11、国产密码算法

参考推荐&#xff1a; 国密SM1\ SM2\ SM3\ SM4\ SSF33算法和国际RSA算法的对应关系_小明做IT的博客-CSDN博客_ssf33算法 国密算法SM1/SM2/SM3/SM4_fengwang0301的博客-CSDN博客_sm2/sm3/sm4 国产密码算法 国产密码算法是指由国家密码研究相关机构自主研发&#xff0c;具有相…

密码算法应用规范

术语解释 对称算法&#xff08;Symmetric key algorithm&#xff09;&#xff1a;采用相同的密钥执行加密或解密。 非对称算法&#xff08;Asymmertric key algorithm&#xff0c;公开密钥算法&#xff09;&#xff1a;用作加密的密钥不同于用作解密的密钥&#xff0c;而且解密…

古典密码算法(移位密码算法、维吉尼亚算法)

古典密码算法(凯撒、维吉尼亚) A. 1-1.移位密码算法 【实验目的】 1&#xff09; 学习移位密码的原理 2&#xff09; 学习移密码的实现 【实验原理】 算法原理 a) 移位密码就是对26个字母进行移位操作&#xff0c;可以移动任意位数&#xff0c;这样就实现了对明文的加密…

换位密码算法

换位密码算法基本原理&#xff1a;先把明文按固定长度进行分组&#xff0c;然后对每一组的字符进行换位操作&#xff0c;从而实现加密。为加强安全性&#xff0c;可进行多次换位密码算法运算。 import random def encrypt(plainText,t):result[]lengthlen(t)temp[plainText[i:…

常见密码学算法

学习笔记 分类 密码学用于解决信息安全中的保密性&#xff0c;完整性&#xff0c;认证和不可否认性等问题。最初主要用于解决保密性。随着密码学技术的发展&#xff0c;逐渐应用到其它领域。 常见密码学算法&#xff1a;DES,AES; RSA, ECC; Hash; Signature等。 分类 对称密…

密码学基础(一)常见密码算法分类

一、密码算法分类&#xff1a; 密码算法主要分为三类&#xff1a;对称密码算法、 非对称密码算法、摘要算法。 二、对称密码算法&#xff08;Symmetric-key Algorithm&#xff09; 1、概念 对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算…

常用的密码算法汇总分析(动态更新ing)

常用密码算法整理汇总 常用对称加密算法常用非对称加密算法常用Hash算法国产密码关于密码算法会持续更新.... 常用对称加密算法 对称加密算法(分组加密)描述DES将明文分为64位一组、密钥64位&#xff0c;实际56位&#xff08;64位中8位奇偶校验位&#xff09;3DES执行了3次DES&…

【密码学】常见密码算法分类和运用

一、摘要算法&#xff08;Digest Algorithm&#xff09; 摘要算法 是指把任意长度的输入消息数据转化为固定长度的输出数据的一种密码算法&#xff0c;又称为 散列函数 、 哈希函数 、 杂凑函数 、单向函数 等&#xff0c;通常用来做数据完整性的判定&#xff0c;即对数据进行…

常用密码算法介绍

算法种类 根据技术特征&#xff0c;现代密码学可分为三类&#xff1a; 对称算法 说明&#xff1a;加密密钥和解密密钥相同&#xff0c;对明文、密文长度没有限制 子算法&#xff1a; 流密码算法&#xff1a;每次加密或解密一位或一字节的明文或密文 分组密码算法&#xff…

2020 shodan 配置详解

需要先注册一个号>然后才能在kali里安装并认证 官网&#xff1a;https://www.shodan.io 安装命令&#xff1a; git clone https://github.com/achillean/shodan-python.git cd shodan-python python setup.py installshodan -h 查看使用&#xff1a; 这个。。土味英语&am…

Python中shodan模块的使用

关于shodan的安装和使用&#xff0c;传送门——> 渗透测试之Shodan的安装和使用 常用 Shodan 库函数 shodan.Shodan(key) &#xff1a;初始化连接APIShodan.count(query, facetsNone)&#xff1a;返回查询结果数量Shodan.host(ip, historyFalse)&#xff1a;返回一个IP的详细…

暗黑引擎 -- Shodan常用搜索语法

fofa&#xff0c;钟馗之眼&#xff0c;shodan等等一系列的公网设备搜索引擎&#xff0c;其中fofa和shodan使用的最多&#xff0c;本文就来整理一些shodan的搜索语法 Shodan&#xff1a;www.shodan.io Ps&#xff1a;均来自互联网搜集整理 工业控制系统 三星电子广告牌 &quo…

shodan的使用及maltego的注册

渗透学习 信息收集工具指南1 文章目录 渗透学习前言*本文只做学习用途&#xff0c;严禁利用本文提到的技术进行非法攻击&#xff0c;否则后果自负&#xff0c;本人不承担任何责任。* 一、shodan1.网络空间搜索引擎2.shodan3.命令行shodan 二、maltego1.情报分析2.maltego 总结…

shodan命令行

shodan获取IP信息 kali中命令行输入 shodan host ip 可以看到好多&#xff0c;比如可能漏洞&#xff0c;开放端口&#xff0c;运行的服务 shodan info 查询账户信息 Shodan获取自身外部IP shodan myip shodan检测是否有蜜罐保护 shodan honeyscore ip 蜜罐好比是情报收…

使用shodan/censys API搜索免费的elasticsearch/kibana资源

文章目录 注册shodan并获取API安装shodan注册censys并获取API安装censys用censys查询可用elasticsearch资源 记得以前我在elastic社区分享过一个主题《ITDS如何玩转elastic》(这里的ITDS是IT屌丝的意思)&#xff0c;里面提到过如何用elasticsearch做数字货币的交易数据分析&…

探究Shodan之旅之Shodan Hacking

下面让我们继续浅析一下国外专注于物联设备扫描的Shodan引擎~~ ExploreSearch Engine for the Internet of Thingshttps://www.shodan.io/explore Shodan除了能搜索Web服务器&#xff0c;还能扫描防火墙、路由器、交换机等一切 联网设备且支持Chrome和Firefox拓展插件 Shodan…

信息搜集:网络空间搜索引擎(Shodan)语法及API应用案例

信息搜集&#xff1a;网络空间搜索引擎&#xff08;Shodan)语法及API应用案例 使用Python去调用Shodan的API接口可以实现自动化信息搜集&#xff0c;首先需要注册用户&#xff0c;在My Account中可以看到API Key。本例如下图&#xff1a; 初始化API&#xff1a; import shodan…