0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

哈希算法的前世、今生和未来

电子设计 来源:电子设计 作者:电子设计 2020-12-25 18:54 次阅读

新人在学区块链技术的时候,都会听到哈希和哈希算法,这似乎是无处不在的安全性保证。例如比特币或者以太坊这种运行去中心网络和共识的机器,都会有上万个节点通过P2P连接,并且需要“无需可信”和可验证的效率。这些系统需要将信息写入紧凑的格式,从而通过参与者进行保证安全和快速验证。

比特币和以太坊主要的primitive是区块的notion,这是包含转账信息,时间戳和其他重要数据的数据结构。他们安全性的重要部件,就是能够压缩网络全部的状态信息,变成很短,并且标准的信息,在需要的时候可以进行有效验证,这就被称之为哈希。

到处都会使用加密哈希,从密码存储到文件验证系统。使用确定性算法的基本原理,就是使用一个输入,并且每次都产生一个固定长度的字符串。也就是说,使用同样的输入总是会导致同样的输出。

确定性不仅对哈希很重要,而且可以改变输入的单个字符会产生完全不同的哈希。

哈希算法的问题是碰撞(collisions)的必然性。哈希是固定的字符串,意味着对于每个输入,不同的输入都会产生同样的输出。碰撞(collisions)是不好的。这意味着如果有攻击者能够根据需求创建这种collisions,那么他就可以让欺诈文件或者数据看起来像正确的,合适的哈希,并且冒充合法。优质哈希功能的目标是让攻击者很难找到,获得输入数据的方法。

计算哈希不应该太简单,因为这会让对于攻击者来说,计算collisions也变得很容易。哈希算法需要对“预攻击”有抵抗性。也就是说,给定哈希,应该很难计算追溯确定性的步骤来重新产生由哈希创建的数值。

Given s= hash(x), finding x should be near impossible.

概括来看,“好的”哈希算法会有以下3种特性:

-在输入中改变一个字符,应该会创建雪崩效应,从而导致完全不同的哈希

-很低的概率会产生collisions

-提高效率,但是不会牺牲collision的对抗性

破散哈希

其中一个初始哈希算法标准是MD5哈希,这是被广泛用来进行文件整合验证,而且存储哈希密码在网页应用数据库。这个功能非常简单,因为输出是固定的,128个字符串对于每个输入,并且使用几轮微不足道的单向运算来计算其确定性输出。它的输出长度短,操作简单,使得MD5彻底易碎,被称为生日攻击。

“生日攻击”是什么?

我们曾经听过,如果你把23个人放在一个房间,就会有50%的概率,其中的2人会有同样的生日?将这个数字提升到70人在一个房间,就会有99.9%的概率。这就是我们所说的鸽巢原理,也就说如果把100个各自放到99个箱子,你就必须在1个盒子里面放2个鸽子。换句话说,固定的输出意味着collisions 可能会找到固定的排序。

其实,MD5对于collision的抵抗是很脆弱的,家庭使用的2.4GHz处理器就可以在几秒钟算出哈希collision。而且,对于现在网页的早期使用,还可以在网络上创建很多MD5的预图形,如果搜索哈希,就可以在谷歌上很容易找到。

哈希算法的多样化和革新

开始:SHA1 &SHA2

NAS被称为哈希算法标准的先驱,最初的想法是安全哈希算法或者SHA1,创建了160固定长度的输出。不幸地是,SHA1通过增加了输出长度,单向操作的数量,还有单向操作的复杂性,从而形成了MD5算法,但是这不会提供任何基础的提升,来对抗更有力量的机器来尝试不同的攻击。

我们怎么才能做得更好呢?

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 智能计算
    +关注

    关注

    0

    文章

    183

    浏览量

    16583
  • 以太坊
    +关注

    关注

    14

    文章

    1838

    浏览量

    32248
收藏 人收藏

    评论

    相关推荐

    FPGA+AI王炸组合如何重塑未来世界:看看DeepSeek东方神秘力量如何预测......

    畅想! 一、关于FPGA的前世今生——“无处不在的加速引擎”我们首先一文科普什么是FPGA?FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种可编程逻辑器件
    发表于 03-03 11:21

    开源项目是怎么练成的:Horizen EDA 的前世今生

    “  很多人都知道 KiCad,但 Horizen 却鲜有人知。同样是开源的 PCB工具,为什么有了 KiCad 之后还要做 Horizen 呢?Lucas 的演讲让我感慨良多,分享给大家。  ”   有兴趣的小伙伴可以先看下作者 Lucas 在 FOSDEM 上的演讲: Horizen 简介 和 KiCad 一样,Horizen 也是一个 PCB 设计套件,包括元器件管理、原理图绘制和 PCB Layout。 Horizen EDA 是 GPL3 的 License,官网的地址在这里: https://horizon-eda.org/ Github 的仓库在这里: https://github.com/horizon-eda/horizon 有意思的是,Horizen最核
    的头像 发表于 02-19 19:29 148次阅读
    开源项目是怎么练成的:Horizen EDA 的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    物联网智能——家用智能控制系统的“前世今生

     物联网是基于互联网延伸和扩展的网络,将各种信息传感设备与互联网结合起来实现在任何时间、任何地点,人、机、物的互联互通。而家用智能控制系统在物联网的放大之下,在安防、监控、家用设备控制方面从服务范围到方式,都有了很大的提升,提高了人们的生活质量。   离线语音电动窗帘开关       家用智能控制系统是指在无人干预的情况下能自主地驱动智能机器实现控制目标的自动控制技术,借助网络将复杂的控制效果智能化计算和分析
    的头像 发表于 02-14 15:27 93次阅读
    物联网智能——家用智能控制系统的“<b class='flag-5'>前世</b><b class='flag-5'>今生</b>”

    安泰功率放大器应用:纳米材料的前世今生

    ,因此在各个领域具有广泛的应用前景。那么你知道纳米材料是如何被发现,又是如何走入我们的生活,获得长足发展的吗?今天Aigtek安泰电子带大家详细了解一下。 纳米材料的前世今生 1861年,随着胶体化学的建立,科学家们开始了对直径为
    的头像 发表于 01-02 14:05 233次阅读
    安泰功率放大器应用:纳米材料的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    加密算法在网络安全中扮演什么角色?

    : 通过哈希函数和消息认证码(MAC),加密算法可以检测数据在传输过程中是否被篡改,确保数据的完整性。 提供身份验证 : 非对称加密算法和数字签名技术可以验证通信双方的身份,防止身份冒充攻击。 实现数据签名 : 数字签名使用非
    的头像 发表于 12-17 16:00 207次阅读

    深入了解Java泛型——从前世今生到PECS原则

    本文主要介绍泛型诞生的前世今生,特性,以及著名PECS原则的由来。 在日常开发中,必不可少的会使用到泛型,这个过程中经常会出现类似“为什么这样会编译报错?”,“为什么这个列表无法添加
    的头像 发表于 11-21 11:45 284次阅读
    深入了解Java泛型——从<b class='flag-5'>前世</b><b class='flag-5'>今生</b>到PECS原则

    华纳云:Chord算法如何管理节点间的联系?

    Chord算法是一种分布式哈希表(DHT)协议,它通过构建一个环状结构来管理节点间的联系。以下是Chord算法如何管理节点间联系的具体方式: 环状结构: Chord算法将所有节点和键
    发表于 11-08 16:03

    400Hz中频电源前世今生未来

    400Hz中频电源是一种能够产生频率为400Hz的交流电的装置,过功率电子器件对电网提供的工频交流电进行整流、滤波、逆变等一系列处理,最终输出稳定的400Hz交流电。400Hz中频电源广泛用于航空、军事等领域,具有输入输出电压稳定、频率响应快等特点,能高效节能,易于集成控制,应用于航空、船舶、铁路、医疗等领域。
    的头像 发表于 11-08 09:41 454次阅读

    带你揭秘:功率放大器的前世今生~

    关于功率放大器功率放大器,作为一种可放大交直流信号,在给定失真率条件下,能产生最大功率输出以驱动某一负载的实验室仪器,在MEMS测试、超声波测试、电磁场驱动、无线电能传输、院校电子实验测试等领域都有良好应用,那么你知道功放的发展史吗?今天Aigtek就给大家分享一下~功率放大器发展史功率放大器的发展史可以追溯至20世纪初,随着电子技术的不断进步,功率放大器也
    的头像 发表于 11-07 08:00 1525次阅读
    带你揭秘:功率放大器的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>~

    什么是默克尔树(Merkle Tree)?如何计算默克尔根?

    01 默克尔树的概念 默克尔树(Merkle Tree)是一种特殊的二叉树,它的每个节点都存储了一个数据块的哈希值。哈希值是一种可以将任意长度的数据转换为固定长度的字符串的算法,它具有唯一性和不可
    的头像 发表于 09-30 18:22 1342次阅读
    什么是默克尔树(Merkle Tree)?如何计算默克尔根?

    开源物联网技术--哈希算法MD5加密功能技术分享

    MD5(Message-Digest Algorithm 5)是一种常用的哈希函数,通常用于数据加密和安全校验等场合。MD5 算法可以将任意长度的消息输入计算出一个固定长度的摘要,其生成的摘要具有
    的头像 发表于 09-21 09:57 2052次阅读
    开源物联网技术--<b class='flag-5'>哈希</b><b class='flag-5'>算法</b>MD5加密功能技术分享

    烧结银胶成为功率模块封装新宠

    线路互联的关键材料。本文将从善仁烧结银胶的定义、特性、应用优势、技术挑战及未来发展趋势等方面,深入剖析这一高科技材料的前世今生
    的头像 发表于 09-20 17:28 380次阅读

    “宁”聚创新,“融”耀未来——康宁熔融博物馆亮相DIC 2024

    式的创新展示空间,邀观众一同探寻康宁专利熔融下拉制程的前世今生未来。   康宁熔融博物馆亮相2024国际(上海)显示技术及应用创新展 此次康宁采用博物馆形式呈现的熔融下拉制程,其故事要追溯到上世纪50年代。彼时康宁的先驱者们
    的头像 发表于 07-04 10:55 452次阅读
    “宁”聚创新,“融”耀<b class='flag-5'>未来</b>——康宁熔融博物馆亮相DIC 2024

    嵌入式系统的前世今生

    一、初始阶段(1960-1970)1960年代末:嵌入式系统的概念开始形成,最初用于专业的军事和航天应用,例如用于导弹控制的计算机系统。微处理器的诞生:1971年,英特尔推出了4004芯片,这是世界上第一个商用微处理器。它的出现标志着嵌入式系统发展的一个里程碑,使得更小型、成本更低的电子设备设计成为可能。二、发展阶段(1980年代)个人计算机(PC)的普及:
    的头像 发表于 04-12 08:11 1857次阅读
    嵌入式系统的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    炬芯科技赵新中:无线音频SoC的AI算法未来和应用

    的平台。 炬芯科技算法研发中心高级总监赵新中受邀出席,于电声元器件及芯片专题论坛发表以《无线音频SoC的AI算法未来和应用》为主题的演讲,分享了炬芯科技的音频AI算法研究、应用经验和最
    的头像 发表于 04-10 11:13 551次阅读
    炬芯科技赵新中:无线音频SoC的AI<b class='flag-5'>算法</b><b class='flag-5'>未来</b>和应用