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

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

3天内不再提示

区块哈希竞猜游戏系统开发加密哈希算法概述

搭建punk2558 来源:搭建punk2558 作者:搭建punk2558 2022-06-24 09:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

哈希算法(Hash function)又称散列算法,是一种从任何数据(文件、字符等)中创建小的数字“指纹”的方法。哈希算法只需满足把一个散列对象映射到另一个区间的需求,因此根据使用场景的不同,可将哈希算法分为加密哈希与非加密哈希。

概述

加密哈希被认为是单向函数,也就是说极难由散列函数输出的结果,回推输入的数据是什么。加密哈希函数的输入数据,通常被称为消息(message),而它的输出结果通常被称为摘要(digest)。一个理想的密码散列函数通常具有以下三个特性:

单向性:极难由一个已知的散列数值,推算出原始的消息;

唯一性:在不改动散列数值的前提下,修改消息内容是不可行的;

抗碰撞性:对于两个不同的消息,它不能给与相同的散列数值。

pYYBAGK1GGuAXaZfAAVNvkilwyM442.png

其中不可碰撞性是指以当前的算法与算力水平,哈希碰撞的开销超出人类可以接受的水平。以SHA-256为例,其哈希数值可能性约有1077种,而目前人类估计的宇宙原子总数约1080。虽然有概率论生日悖论问题存在,N位长度的哈希表可能发生碰撞测试次数不是2N次而是只有2N/2次,但仍然是一个巨大的数字。

常见的加密哈希函数有MD5、SHA-1、SHA-2(包含SHA-224、SHA-256、SHA-512等),虽然种类繁多,但除了生成摘要的长度、循环体内容等有一些差异外,算法的基本结构是一致的。下面以SHA-256为例,详细介绍加密哈希算法的执行步骤。

SHA-256实现原理

常量初始化

SHA-256算法中用到了8个哈希初值以及64个哈希常量,其中,8个哈希初值是对自然数前8个质数(2,3,5,7,11,13,17,19)的平方根的小数部分取前32 bit:

64个哈希常量是对自然数中前64个质数的立方根的小数部分取前32 bit,标记为k[t]:

附加长度值

SHA-256用一个64位的数据来表示原始消息的长度,而在信息处理的过程中给需要将消息分解成512bit大小的块,因此补位后的消息长度应该是512的整数倍。附加长度值分为两个步骤:

第一个bit位补1,然后都补0,直到长度满足对512取模后余数是448,如果长度已经满足对512取模后余数是448,需要填充512个bit;

附加长度为64bit的长度值。

为什么不可碰撞性对加密哈希算法如此重要?从SHA-256算法的实现步骤可以看出,加密哈希的逆向计算几乎是不可能的,暴力破解法的成本也太高,因此对加密哈希算法所谓的攻击实际是利用哈希碰撞为突破口进行数据伪造。以常见的保存用户密码为例,如果是明文存储,一旦发生数据泄露,那么所有的账户都会被盗用,因此常用下面一些方法进行Hash加密:

Hash加密:单纯对密码进行Hash加密无法保证密码的安全性,因为用户密码通常是短字符,无论采用哪种加密算法,都可以利用暴力破解或彩虹表攻击破解。

Hash加盐:在原消息上添加随机盐再进行哈希加密,并将盐与密码保存起来,以便下次登陆验证,添加随机盐增加了彩虹表破解的难度,促使攻击者放弃破解。但是如果对密码进行不安全的散列函数(MD5)计算,数据库泄露后,攻击者可以根据散列值找出碰撞的消息,不管这个消息是否与密码相同,都可以通过验证。

专用哈希函数加密:使用bcrypt等专门用来密码加密的哈希函数进行加密,这类函数通常运算时间较长,大大增加了攻击成本。

密码加密不单单是一个技术问题,对于攻击者来说,如果破解成本大于收益成本,即使攻破了加密的密码也是无意义的。而那些被证明可以产生散列碰撞的Hash函数,攻击它们的成本较低,随着算法的改进与硬件水平的提升,破解的成本也不断降低。从安全的角度考虑,应该及时更换不安全的哈希算法。

加密哈希的应用比较广泛,笔者详细地学习哈希算法的实现原理,也是为了更好地理解它们使用与被攻击的方式,而不仅仅是在编程中调一个函数库。在这之前以为密码学的知识比较晦涩难懂,实际上抛开中间的数学运算,整体的逻辑十分清晰,基本结构很容易理解。

审核编辑:符乾江

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

    关注

    8

    文章

    7349

    浏览量

    95025
  • 哈希算法
    +关注

    关注

    1

    文章

    56

    浏览量

    11168
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2022全新版!Java分布式架构设计与开发实战(完结)

    2022全新版!Java分布式架构设计与开发实战(完结) 分库分表实战:Java海量数据存储架构设计 在现代互联网应用中,随着业务规模的指数级增长,数据库性能瓶颈已成为制约系统发展的关键因素。当单
    发表于 03-30 15:20

    OPC UA 服务端用户认证的底层逻辑:哈希与加盐应用详解

    摘要在基于UnifiedAutomationSDK开发OPCUA服务端时,用户认证(UserAuthentication)是安全体系的第一道防线。除了传输层的加密通道外,服务端如何安全地存储和验证
    的头像 发表于 01-15 17:29 292次阅读
    OPC UA 服务端用户认证的底层逻辑:<b class='flag-5'>哈希</b>与加盐应用详解

    ADI Trinamic如何让伺服系统开发化繁为简

    “刚搞定FOC算法调试,又卡在编码器协议解码;好不容易凑齐分立器件,却发现系统功耗超标”——这大概是不少伺服系统开发者的日常。随着设备中的电机数量日渐增多,传统开发模式下的硬件堆叠、软
    的头像 发表于 01-06 14:49 453次阅读
    ADI Trinamic如何让伺服<b class='flag-5'>系统开发</b>化繁为简

    软件加密中有哪些常用的加密算法

    软件加密中,有哪些常用的加密算法
    发表于 12-26 06:00

    深入浅出GMSSL:掌握SM2、SM3、SM4国密算法的高效实践

    随着国家信息安全战略的推进,国密算法在各类安全系统中的应用日益广泛。GMSSL作为支持国密标准的重要工具库,为开发者提供了SM2(非对称加密)、SM3(
    的头像 发表于 12-12 18:20 892次阅读
    深入浅出GMSSL:掌握SM2、SM3、SM4国密<b class='flag-5'>算法</b>的高效实践

    电能质量在线监测装置可设置数据加密密钥吗?

    (HSM) 与 国密算法 ,支持双向证书认证与动态密钥协商。 一、核心加密能力与密钥类型 1. 加密算法支持 算法类型 主流支持 密钥长度 典型应用场景 国密
    的头像 发表于 12-05 17:40 3050次阅读
    电能质量在线监测装置可设置数据<b class='flag-5'>加密</b>密钥吗?

    CW32F030C8T6数字签名实战

    加密库(如mbedTLS、WolfSSL)实现数字签名。常见算法包括RSA、ECDSA。 2.2 基于SHA和RSA的签名流程 生成哈希值:使用SHA-256对固件计算哈希值。 私钥
    发表于 11-19 08:03

    CW32F030C8T6数字签名的实战指南

    加密库(如mbedTLS、WolfSSL)实现数字签名。常见算法包括RSA、ECDSA。 2.2 基于SHA和RSA的签名流程 生成哈希值:使用SHA-256对固件计算哈希值。 私钥
    发表于 11-18 06:35

    Molex OTS零哈希电缆组件技术解析与应用指南

    Molex现成(OTS)零哈希电缆组件是标准分立式电线电缆组件,设计用于应对电子设备日益缩小的挑战。这些电缆组件提供节省空间的薄型解决方案,具有创新的双点接触特性,有2、4、6和8电路尺寸可供选择
    的头像 发表于 11-17 16:44 893次阅读

    选择加密算法时需考虑哪些因素?

    芯源半导体安全芯片的硬件加密引擎支持多种国际通用加密算法,在实际为物联网设备选择加密算法时,需考虑哪些因素?
    发表于 11-17 07:43

    MD5信息摘要算法实现一(基于蜂鸟E203协处理器)

    命名为“Q”,则message_var=Q[(32*i):(32*i+31)]。 4、哈希运算(Hash Operation) 此部分为MD5算法的核心。MD5有4组主循环,每组的主循环需要进行16轮
    发表于 10-30 07:18

    加密算法的应用

    加密是一种保护信息安全的重要手段,近年来随着信息技术的发展,加密技术的应用越来越广泛。本文将介绍加密算法的发展、含义、分类及应用场景。 1. 加密算法的发展
    发表于 10-24 08:03

    睿擎混合部署方案:基于QT的电机驱动系统开发|技术集结

    一、方案核心概述本方案旨在解决系统开发中“高性能实时控制”与“丰富人机交互”的需求矛盾。它采用混合部署的架构,将系统清晰地分为两个层面:1.实时层:部署在睿擎派设备的RT-Thread实时系统
    的头像 发表于 09-11 18:33 5647次阅读
    睿擎混合部署方案:基于QT的电机驱动<b class='flag-5'>系统开发</b>|技术集结

    哈希极化到零拥塞:主动路径规划在RoCE网络中的负载均衡实践

    智算集群对网络性能,特别是高吞吐、低延迟和无损特性有着严苛要求,RoCE因此被广泛应用。然而,在主流Clos组网架构下,传统的ECMP路由机制存在天然的局限性,容易引发哈希极化问题,成为制约
    的头像 发表于 07-21 17:27 2133次阅读
    从<b class='flag-5'>哈希</b>极化到零拥塞:主动路径规划在RoCE网络中的负载均衡实践

    明远智睿SSD2351:开启嵌入式系统开发新时代

    在当今科技飞速发展的时代,嵌入式系统已经广泛应用于各个领域,从智能家居到工业自动化,从智能交通到医疗设备,嵌入式系统无处不在。而开发板作为嵌入式系统开发的核心工具,其性能和功能直接影响
    的头像 发表于 07-15 15:47 699次阅读