欢迎您访问广东某某机械环保科有限公司网站,公司主营某某机械、某某设备、某某模具等产品!
全国咨询热线: 400-123-4567

新闻资讯

哈希游戏| 哈希游戏平台| 哈希游戏APP

HAXIYOUXI-HAXIYOUXIPINGTAI-HAXIYOUXIAPP

哈希函数和数字签名概述哈希游戏- 游戏平台- 官方网站

作者:小编2025-04-10 09:32:42

  哈希游戏- 哈希游戏平台- 哈希游戏官方网站

哈希函数和数字签名概述哈希游戏- 哈希游戏平台- 哈希游戏官方网站

  哈希函数和数字签名概述 哈希函数和数字签名 理解哈希函数、数字签名特点和作用 了解MD5算法、SHA-1算法的工作原理和特点 理解消息鉴别码特点和作用,了解MAC、HMAC 的原理和应用 理解数字签名的原理和应用,了解DSA和RSA签 名方案 2 Hash函数 Hash函数是将任意长度的消息映射成一个较短的 定长输出报文的函数,如下形式:  h = H(M), M是变长的报文,h是定长的散列值. 数学性质:对任意给定的x, H(x) 易于(软硬件实 现)计算,且满足:  单向性: 对任意给定的码h, 寻求x使得H(x)=h 在计算上是不可行的;  弱抗碰撞性: 任意给定分组x, 寻求不等于x的y, 使得H(y)= H(x)在计算上不可行;  强抗碰撞性: 寻求对任何的(x, y)对, 使得 H(x)=H(y)在计算上不可行. 33 Hash函数的特点 H能够应用到任意长度的数据上。 H能够生成大小固定的输出。 对干任意给定的x ,H (x)的计算相对简单。 对于给定的散列值h,要发现满足H (x)=h的x 在计算上是不可行的。  对于给定的消息x ,要发现另一个消息y满足H (y)=H (x)在计算上是不可行的。 主要的Hash算法: MD5、SHA-1等 4 哈希运算——完整性 用户A 用户B 数据 哈希算法 哈希值 如果哈希值匹配, 哈希算法 说明数据有效 数据 数据 哈希值 哈希值 用户A发送数据和哈希值 给用户 B 5 Hash函数 安全Hash函数的一般结构 Y0 Y1 YL-1 b b b n n IV n f n f …… n f CVL CV1 CVL-1 IV = 初始值 CV = 链接值 Yi = 第i 个输入数据块 f = 压缩算法 IV= initial n-bit value n = 散列码的长度 CV =f(CV , Y ) (1  i  L) b = 输入块的长度 i i-1 i-1 H(M) = CVL 6 MD5 算法 MD5 (RFC 1321) developed by Ron Rivest (“R” of the RSA )at MIT in 90’s. MD:Message Digest,消息摘要 输入:任意长度的消息 输出:128位消息摘要 处理:以512位输入数据块为单位 7 SHA-1 算法 SHA (Secure Hash Algorithm,安全哈希算法 ) 由美国国家标准技术研究所NIST开发,作为联邦 信息处理标准于1993年发表(FIPS PUB 180), 1995年修订,作为SHA-1(FIPS PUB 180-1), SHA-1基于MD4设计。 输入:最大长度为264位的消息; 输出:160位消息摘要; 处理:输入以512位数据块为单位处理. 8 比较SHA1/ MD5 散列值长度  MD5 128bits SHA1 160bits 安全性  SHA1看来好些,但是SHA1的设计原则没有公开 速度  SHA1慢些 (openssl speed md5/sha1) type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md5 5425.31k 19457.48k 55891.45k 104857.60k 143211.40k sha1 5104.58k 16008.41k 37925.33k 57421.81k 68241.68k 9 消息鉴别码 在网络通信中,有一些针对消息内容的攻击方法  伪造消息  窜改消息内容  改变消息顺序  消息重放或者延迟 消息认证:对收到的消息进行验证,证明确实是 来自声称的发送方,并且没有被修改过。  如果在消息中加入时间及顺序信息,则可以完成对时 间和顺序的认证 10 消息认证的三种方式 Message encryption:用整个消息的密文作为认 证标识  接收方必须能够识别错误 Hash function:一个公开函数将任意长度的消息 映射到一个固定长度的散列值,作为认证标识 MAC:一个公开函数,加上一个密钥产生一个固 定长度的值作为认证标识 11 MAC: Message Authentication Code 使用一个双方共享的秘密密钥生成一个固定大小 的小数据块,并加入到消息中,称MAC,或密码 校验和(cryptographic checksum) 用户A和用户B,共享密钥K,对于消息M, MAC=C (M) K 如果接收方计算的MAC与收到的MAC匹配,则  接收者可以确信消息M未被改变  接收者可以确信消息来自所声称的发送者  如果消息中含有序列号,则可以保证正确的消息顺序 MAC函数类似于加密函数,但不需要可逆性。因 此在数学上比加密算法被攻击的弱点要少 12 MAC的动机 为了鉴别而加密整个报文不够方便  对称加密整个报文是个浪费 • 即使同时为了保密,也有另外的办法和体制  用非对称加密速度太慢,每秒仅百来笔 • 后来引入了签名体制 鉴别和加密的分离带来灵活性  确实有时只要鉴别而不用(或不能)加密 • 如法律文书、公开信、声明、公告、公证、鉴定等 • 如软件鉴别/防病毒、网络管理报文等 13 MAC的用法 14 HMAC 把HASH值和一个Key结合起来  不需要可逆 目标  既能使用当前的HASH函数,又可容易升级为新的 HASH函数,并能保持散列函数的安全性  简单,并易进行密码学分析 15 MAC不能解决的问题 发送者否认发送过消息,声称是别人伪造。 接收者伪造消息,声称其由某发送者发送。 解决办法  不可否认性 16 数字签名 传统签名的基本特点:  能与被签的文件在物理上不可分割  签名者不能否认自己的签名  签名不能被伪造  容易被验证 数字签名是传统签名的数字化,基本要求:  能与所签文件“绑定”  签名者不能否认自己的签名  签名不能被伪造  容易被验证 17 数字签名——抗抵赖性 用户A 用户B 哈希算法 数据 数据 哈希算法 用户A 的公 钥 哈希值 哈希值 用户A 如果哈希值匹配,说 的私 钥 明该数据由该私钥签 哈希值 名。 18 数字签名的要求 依赖性:数字签名必须依赖要签名消息的比特模式 (不可分离性) 唯一性:签名者使用唯一的“消息”生成数字签名 ,以防伪造和否认(独特性) 可验证性 :数字签名必须是在算法上可验证的。 抗伪造:伪造一个数字签名在计算上不可行 (不可 模仿性) 可用性:数字签名的生成和验证必须相对简单. 19 两种数字签名方案 20 RSA的数字签名 初始化: m :签名的消息 签名者的私钥:d ;公钥:(e,n) 签名: 计算m的哈希值H(m). 签名值s=(H(m))d mod n 验证: 计算H =se mod n 1 判断H =H(m)是否成立。 1 21 数字签名算法(DSA) 1991年, NIST 提出了 数字签名算法(DSA),并把它用作数 字签名标准(DSS),招致大量的反对,理由如下:  DSA 不能用于加密或密钥分配  DSA是由 NSA研制的,可能有后门  DSA的选择过程不公开,提供的分析时间不充分  DSA比RSA慢(10 -40倍)  密钥长度太小(512位)  DSA可能侵犯其他专利  RSA是事实上的标准 22 三种算法的比较 1. 加密/解密 2. 数字签名(身份