风险提示:理性看待区块链,提高风险意识!
比特币的密码学技术
首页 > 币界资讯 > 区块链新闻 2018-05-02 14:50
摘要
在正式进入比特币开发之前,我们需要知道密码学的基础原理和种类,如果没有这些基础知识的垫底,后面学习起来是非常困难的 。
币界网报道:


在正式进入比特币开发之前,我们需要知道密码学的基础原理和种类,如果没有这些基础知识的垫底,后面学习起来是非常困难的。希望各位伙伴能够耐心把密码学这部分给了解透切。

密码学技术

工程领域从来没有黑科技;密码学不是工程。

密码学在信息技术领域的重要地位无需多言。如果没有现代密码学的研究成果,人类社会根本无法进入信息时代。

密码学领域十分繁杂,本章将介绍密码学领域中跟区块链相关的一些基础知识,包括 hash 算法与摘要、加密算法、数字签名和证书、PKI 体系、Merkle 树、同态加密等,以及如何使用这些技术实现信息的机密性、完整性、认证性和不可抵赖性。

Hash算法

Hash (哈希或散列)算法是信息技术领域非常基础也非常重要的技术。它能任意长度的二进制值(明文)映射为较短的固定长度的二进制值(Hash 值),并且不同的明文很难映射为相同的 Hash 值。

例如计算一段话“hello blockchain world”的 MD5 hash 值为 89242549883a2ef85dc81b90fb606046

$ echo "hello blockchain world"|md589242549883a2ef85dc81b90fb606046

这意味着我们只要对某文件进行 MD5 Hash 计算,得到结果为 89242549883a2ef85dc81b90fb606046,这就说明文件内容极大概率上就是 “hello blockchain world”。可见,Hash 的核心思想十分类似于基于内容的编址或命名。

注:hash 值在应用中又被称为指纹(fingerprint)、摘要(digest)。

注:MD5 是一个经典的 hash 算法,其和 SHA-1 算法都已被 证明 安全性不足应用于商业场景。

一个优秀的 hash 算法,将能实现:

  1. 正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值。
  2. 逆向困难:给定(若干) hash 值,在有限时间内很难(基本不可能)逆推出明文。
  3. 输入敏感:原始输入信息修改一点信息,产生的 hash 值看起来应该都有很大不同。
  4. 冲突避免:很难找到两段内容不同的明文,使得它们的 hash 值一致(发生冲突)。


冲突避免有时候又被称为“抗碰撞性”。如果给定一个明文前提下,难以找到碰撞的另一个明文,称为“弱抗碰撞性”;如果难以找到任意两个明文,发生碰撞,则称算法具有“强抗碰撞性”。


很多场景下,也要求对于任意长的输入内容,输出定长的 hash 结果。


流行的算法


目前流行的 Hash 算法包括 MD5、SHA-1 和 SHA-2。


MD4(RFC 1320)是 MIT 的 Ronald L. Rivest 在 1990 年设计的,MD 是 Message Digest 的缩写。其输出为 128 位。MD4 已证明不够安全。


MD5(RFC 1321)是 Rivest 于1991年对 MD4 的改进版本。它对输入仍以 512 位分组,其输出是 128 位。MD5 比 MD4 复杂,并且计算速度要慢一点,更安全一些。MD5 已被证明不具备“强抗碰撞性”。


SHA (Secure Hash Algorithm)是一个 Hash 函数族,由 NIST(National Institute of Standards and Technology)于 1993 年发布第一个算法。目前知名的 SHA-1 在 1995 年面世,它的输出为长度 160 位的 hash 值,因此抗穷举性更好。SHA-1 设计时基于和 MD4 相同原理,并且模仿了该算法。SHA-1 已被证明不具备“强抗碰撞性”。


为了提高安全性,NIST 还设计出了 SHA-224、SHA-256、SHA-384,和 SHA-512 算法(统称为 SHA-2),跟 SHA-1 算法原理类似。SHA-3 相关算法也已被提出。


目前,一般认为 MD5 和 SHA1 已经不够安全,推荐至少使用 SHA2-256 算法。


性能


一般的,Hash 算法都是算力敏感型,意味着计算资源是瓶颈,主频越高的 CPU 进行 Hash 的速度也越快。


也有一些 Hash 算法不是算力敏感的,例如 scrypt,需要大量的内存资源,节点不能通过简单的增加更多 CPU 来获得 hash 性能的提升。


数字摘要

顾名思义,数字摘要是对数字内容进行 Hash 运算,获取唯一的摘要值来指代原始数字内容。

数字摘要是解决确保内容没被篡改过的问题(利用 Hash 函数的抗碰撞性特点)。

数字摘要是 Hash 算法最重要的一个用途。在网络上下载软件或文件时,往往同时会提供一个数字摘要值,用户下载下来原始文件可以自行进行计算,并同提供的摘要值进行比对,以确保内容没有被修改过。

加解密算法


算法体系

现代加密算法的典型组件包括:加解密算法、加密密钥、解密密钥。其中,加解密算法自身是固定不变的,一般是公开可见的;密钥则往往每次不同,并且需要保护起来,一般来说,对同一种算法,密钥长度越长,则加密强度越大。

加密过程中,通过加密算法和加密密钥,对明文进行加密,获得密文。

解密过程中,通过解密算法和解密密钥,对密文进行解密,获得明文。

根据加解密的密钥是否相同,算法可以分为对称加密(symmetric cryptography,又称公共密钥加密,common-key cryptography)和非对称加密(asymmetric cryptography,又称公钥加密,public-key cryptography)。两种模式适用于不同的需求,恰好形成互补,很多时候也可以组合使用,形成混合加密机制。

并非所有加密算法的强度都可以从数学上进行证明。公认的高强度加密算法是在经过长时间各方面实践论证后,被大家所认可,不代表其不存在漏洞。但任何时候,自行发明加密算法都是一种不太明智的行为。

对称加密

顾名思义,加解密的密钥是相同的。

优点是加解密效率高(速度快,空间占用小),加密强度高。

缺点是参与多方都需要持有密钥,一旦有人泄露则安全性被破坏;另外如何在不安全通道下分发密钥也是个问题。

对称密码从实现原理上可以分为两种:分组密码和序列密码。前者将明文切分为定长数据块作为加密单位,应用最为广泛。后者则只对一个字节进行加密,且密码不断变化,只用在一些特定领域,如数字媒介的加密等。

代表算法包括 DES、3DES、AES、IDEA 等。

  • DES(Data Encryption Standard):经典的分组加密算法,1977 年由美国联邦信息处理标准(FIPS)所采用 FIPS-46-3,将 64 位明文加密为 64 位的密文,其密钥长度为 56 位 + 8 位校验。现在已经很容易被暴力破解。
  • 3DES:三重 DES 操作:加密 --> 解密 --> 加密,处理过程和加密强度优于 DES,但现在也被认为不够安全。
  • AES(Advanced Encryption Standard):美国国家标准研究所(NIST)采用取代 DES 成为对称加密实现的标准,1997~2000 年 NIST 从 15 个候选算法中评选 Rijndael 算法(由比利时密码学家 Joan Daemon 和 Vincent Rijmen 发明)作为 AES,标准为 FIPS-197。AES 也是分组算法,分组长度为 128、192、256 位三种。AES 的优势在于处理速度快,整个过程可以数学化描述,目前尚未有有效的破解手段。

适用于大量数据的加解密;不能用于签名场景;需要提前分发密钥。

注:分组加密每次只能处理固定长度的明文,因此过长的内容需要采用一定模式进行加密,《实用密码学》中推荐使用 密文分组链接(Cipher Block Chain,CBC)、计数器(Counter,CTR)模式。

非对称加密

非对称加密是现代密码学历史上最为伟大的发明,可以很好的解决对称加密需要的提前分发密钥问题。


顾名思义,加密密钥和解密密钥是不同的,分别称为公钥和私钥。


公钥一般是公开的,人人可获取的,私钥一般是个人自己持有,不能被他人获取。


优点是公私钥分开,不安全通道也可使用。


缺点是加解密速度慢,一般比对称加解密算法慢两到三个数量级;同时加密强度相比对称加密要差。


非对称加密算法的安全性往往需要基于数学问题来保障,目前主要有基于大数质因子分解、离散对数、椭圆曲线等几种思路。

代表算法包括:RSA、ElGamal、椭圆曲线(Elliptic Curve Crytosystems,ECC)系列算法。

  • RSA:经典的公钥算法,1978 年由 Ron Rivest、Adi Shamir、Leonard Adleman 共同提出,三人于 2002 年获得图灵奖。算法利用了对大数进行质因子分解困难的特性,但目前还没有数学证明两者难度等价,或许存在未知算法在不进行大数分解的前提下解密。
  • Diffie-Hellman 密钥交换:基于离散对数无法快速求解,可以在不安全的通道上,双方协商一个公共密钥。
  • ElGamal:由 Taher ElGamal 设计,利用了模运算下求离散对数困难的特性。被应用在 PGP 等安全工具中。
  • 椭圆曲线算法(Elliptic curve cryptography,ECC):现代备受关注的算法系列,基于对椭圆曲线上特定点进行特殊乘法逆运算难以计算的特性。最早在 1985 年由 Neal Koblitz 和 Victor Miller 分别独立提出。ECC 系列算法一般被认为具备较高的安全性,但加解密计算过程往往比较费时。


一般适用于签名场景或密钥协商,不适于大量数据的加解密。

RSA 算法等已被认为不够安全,一般推荐采用椭圆曲线系列算法。

混合加密机制

即先用计算复杂度高的非对称加密协商一个临时的对称加密密钥(会话密钥,一般相对内容来说要短的多),然后双方再通过对称加密对传递的大量数据进行加解密处理。

典型的场景是现在大家常用的 HTTPS 机制。HTTPS 实际上是利用了 Transport Layer Security/Secure Socket Layer(TLS/SSL)来实现可靠的传输。TLS 为 SSL 的升级版本,目前广泛应用的为 TLS 1.0,对应到 SSL 3.1 版本。

建立安全连接的具体步骤如下:

  • 客户端浏览器发送信息到服务器,包括随机数 R1,支持的加密算法类型、协议版本、压缩算法等。注意该过程为明文。
  • 服务端返回信息,包括随机数 R2、选定加密算法类型、协议版本,以及服务器证书。注意该过程为明文。
  • 浏览器检查带有该网站公钥的证书。该证书需要由第三方 CA 来签发,浏览器和操作系统会预置权威 CA 的根证书。如果证书被篡改作假(中间人攻击),很容易通过 CA 的证书验证出来。
  • 如果证书没问题,则用证书中公钥加密随机数 R3,发送给服务器。此时,只有客户端和服务器都拥有 R1、R2 和 R3 信息,基于 R1、R2 和 R3,生成对称的会话密钥(如 AES 算法)。后续通信都通过对称加密进行保护。


目前我们正在寻找广州地区的区块链培训讲师,如果你觉得你适合的话,可以在我们公众号上留言:区块链研究实验室

发表评论
发表评论
暂无评论
    相关阅读
    未来一年可以说是最难以预测的一年。地缘政治错综复杂、美国监管政策不确定。尽管美国股市似乎无法停止上涨,利率也只能下降,但我们知道,这两件事都不是板上钉钉的事。
    区块链
    2025-01-08 11:31:18
    周一,比特币和以太坊 ETF 共计流入 11 亿美元,在现货基金年初出现 3.2 亿美元流入后,形成了积极的势头。
    比特币
    2025-01-08 10:31:17
    Ripple宣布已集成Chainlink,为用户提供实时RLUSD定价数据,增强了稳定币在DeFi上的实用性和访问权限。DeFi开发人员还可以将RLUSD支持集成到他们的应用程序中,用于贷款和交易等多种用例。
    区块链
    2025-01-08 10:03:08
    莱特币在看涨突破后一周内上涨12%——282美元的目标现在就在眼前!
    区块链
    2025-01-08 09:41:19
    除了 Twitter 之外,还有其他地方可以追踪 AI 代理。
    区块链
    2025-01-08 09:31:18
    推荐专栏
    Boss Wallet Web3 Econom Pass
    Fully On-Chain & AI-Powered Meme Trading | #Xbit #DEX #Web3 | English: @XBITDEX | Chinese 华语 : @XBITDEX_ZH | Support: @XbitHelpDesk
    一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
    爱Web 3,爱生活,爱科技,爱炒币的老韭菜
    热门币种
    更多
    币种
    美元价格
    24H涨跌幅
    BTC比特币
    60,963.61 USDT
    ¥435,103.38
    -2.72%
    ETH以太坊
    3,368.69 USDT
    ¥24,042.67
    -0.3%
    BNB币安币
    570.68 USDT
    ¥4,073.00
    -0.28%
    USDT泰达币
    1.02 USDT
    ¥7.25
    -0.19%
    SOL
    135.96 USDT
    ¥970.36
    +7.66%
    USDC
    1.00 USDT
    ¥7.15
    -0.01%
    TON
    7.59 USDT
    ¥54.14
    +4.55%
    XRP瑞波币
    0.47720 USDT
    ¥3.41
    +0.48%
    DOGE狗狗币
    0.12210 USDT
    ¥0.87140
    +2.43%
    ADA艾达币
    0.39050 USDT
    ¥2.79
    +3.88%
    热搜币种
    更多
    币种
    美元价格
    24H涨跌幅
    狗狗币
    0.3519 USDT
    ¥2.58
    -9.98%
    Filecoin
    5.3699 USDT
    ¥39.34
    -9.93%
    比特币
    96576.52 USDT
    ¥707,563.04
    -5.1%
    Gatechain Token
    18.0475 USDT
    ¥132.22
    -2.43%
    Horizen
    23.4215 USDT
    ¥171.60
    -16.42%
    dYdX
    1.4063 USDT
    ¥10.30
    -13.35%
    Solana
    198.83 USDT
    ¥1,456.72
    -8.41%
    柚子
    0.814 USDT
    ¥5.96
    -10.16%
    Shiba Inu
    2.17E-5 USDT
    ¥0.00
    -9.24%
    火币积分
    0.9399 USDT
    ¥6.89
    -28.65%
    艾达币
    0.999 USDT
    ¥7.32
    -8.07%
    FTX Token
    2.9141 USDT
    ¥21.35
    -13.7%
    最新快讯
    更多
    富达数字资产:2025年将有更多民族国家、央行、主权财富基金和政府财政部采用比特币策略
    2025-01-08 11:42:36
    Metis去中心化排序器重启开始,首位参与者ENKI将获得15000METIS奖励
    2025-01-08 11:39:29
    Bitwise首席投资官评论捷克战略性比特币储备计划:多米诺骨牌效应开始
    2025-01-08 11:38:00
    ai16z持仓TOP7巨鲸三小时前卖出190万枚ai16z,约367万美元
    2025-01-08 11:34:17
    TONVentures宣布对TONCASH进行战略投资
    2025-01-08 11:33:42
    DohaBank推出Visa商业支付,支持卡塔尔无现金经济
    2025-01-08 11:33:32
    解析Swarms等6大AIAgent筹码:底部分散购买,高位归集的操盘阳谋
    2025-01-08 11:29:57