2012密码杂凑函数及其安全性分析
单向杂凑函数不仅在构造双钥密码体制中有重要意义,而且也是杂凑函数理论中的一个核心概念。 定义 :若杂凑函数 h 是单向函数,则称该函数为单向杂凑函数。 h 作为一个单向杂凑函数,由 M 计算 H=h(M) 是容易的,但要产生一个 M' 并使 h(M') 等于给定的杂凑值 H 则是难以实现的。 定义 :假设 h 为单向杂凑函数,在任意给定 M 的杂凑值 H=h(M) 下,找一 M' 使 h(M')=H 在计算上不可行,那么 h 则被称为 弱单向杂凑函数。 定义 :对单向杂凑函数 h,若要找任意一对输入 M1,M2,M1 ≠ M2,使 h(M1)=h(M2)在计算上不可行,则称 h 为强单向杂凑函数。 以上定义阐述了杂凑函数无碰撞(Col lision Free)性的特征。若 M 为在给定值下的弱单向杂凑函数,考察与特定 M 的无
收稿时间 :2012-01-05 作者简介 :关振胜(1936-),男,辽宁,高级工程师,主要研究方向 :数据库、软件工程、计算机信息系统安全、电子商务。
1
理 论 研 究 2012ୈ02ظ
碰撞性 ;然而考察输入集中任意两个元素的无碰撞性强则是 单向杂凑函数的主要特征。显然,对于给定的输入数字串的 集合,后一种碰撞要容易实现。因为从下面要介绍的生日悖论 可知,在具有 N 个元素的集中,给定 M 找与 M 相匹配的值,M' 的概率要比从 N 中任取一对元素 M,使 M 与 M ' 相匹配的概 率小很多。常用的密码杂凑算法有 MD-5 和 SHA-1。
杂凑函数在现实中有广泛的应用,在密码学和信息安全技术领域,它作为安全、可靠的数字签名和认证工具被使用,也是 安全认证协议中的重要模块。现实中,用作认证工具的杂凑函数密码必须满足安全性的需求,能够具备防伪造,抵御各类黑客 攻击,例如穷举攻击、生日攻击、中途相遇攻击等。为了达到这种安全需求,应该展开针对杂凑函数的性质的深入研究,并从研 究中获取足以达到相关密码学要求的杂凑函数。本文中笔者引入了几种主要杂凑函数的技术原理,并对杂凑函数进行了分析。
e=d
d=c
c=b 30
b=a a=TEMP 图 3 给出了 SHA 的一次运算过程。通过不同的移位与在
MD-5 算法中不同阶段采用不同变量相比,二者实现了同样的 目的。
接下来,a、b、c、d 和 e 分别加上 A、B、C、D 和 E,然后 用下一数据分组继续运行算法,最后的输出由 A、B、C、D 和 E 级联而成。
0 引言
密码杂凑技术中常用的是密码杂凑函数,它不用密钥而是将一个数据电文压缩成为一个定长、不可逆和唯一的一组杂凑值。 本文主要研究密码杂凑函数,简称杂凑函数。
通过杂凑算法进行计算得出的值被称作杂凑值,这种数值无法通过逆向演算得出原有的数值,这一特性在有效保护数据, 对信息进行加密方面被广泛认可。因此,密码杂凑函数也就成为近年来最为常见的实用密码算法和密码技术,以杂凑函数密码 为技术原理制作的数字证书、数字签名、数字信封和双重数字签名等也成为常用的密码技术产品。针对密码杂凑函数及其安全 性的分析也成为近年来信息安全业界研究的热点。
2012ୈ02 ظ理 论 研 究
doi :10.3969/j.issn.1671-1122.2012.02.001
密码杂凑函数及其安全性分析
关振胜
(中国金融认证中心,北京 100054)
摘 要 :文章提出了针对密码杂凑函数及其安全性进行研究的重要意义,列举了单向杂凑函数、MD5、 SHA-1 等技术原理进行了技术分析,并从攻击手段入手,分析了密码杂凑函数的安全性,提出对 SHA-1 与 MD-5 的“破解”应客观看待的观点。
3 SHA-1 描述
SHA-1 是一种用于数字签名的安全密码杂凑算法,当输入 消息其长度小于 264 位时,即消息填充为 512 位的整数倍时, SHA-1 产生一组 160 位的杂凑值输出,将此杂凑值输入到数字 签名的算法中(如 DSA)。杂凑值用于签名,可大大提高数字签 名的速度,因为杂凑值比通常的消息(或称数据电文)要小得多。
2)填充消息使密码长度恰好为一个比 512 位的倍数仅小 64 位的数。填充方法是附一个 1 在消息后面,后接多个 0, 然后在其后附上 64 位的消息长度(填充前)。这两步的作用是 使消息长度恰好是 512 位的整数倍(算法的其余部分要求如 此),同时确保不同的消息在填充后不相同。
4 个 32 位变量初始化如下 : A=0x01234567 B=0x89abcdef C=0xfedcba98 D=0x76543210 它们称为链接变量(Chaining Variable)。 接着进行算法的主循环,循环的次数是消息中 512 位消 息分组的数目。 将上面 4 个变量复制到另外的变量中 :A 到 a,B 到 b,C 到 c,D 到 d。 主循环有 4 轮(MD4 只有 3 轮),每轮很相似。每一轮进 行 16 次操作,每次操作对 a、b、c 和 d 中的其中 3 个作一次非 线性函数运算,然后将所得结果加上第 4 个变量、文本的一 个子分组和一个常数。再将所得结果向右环移一个不定的数, 并加上 a、b、c 或 d 中之一。最后用该结果取代 a、b、c 和 d 中 之一,如图 1 和图 2 所示。 在这样 4 轮主循环中,产生 4 个非线性函数,每轮操作 都产生一个。 这些函数是这样设计的 :如果 X、Y 和 Z 的对应位是独立 和均匀的,那么结果的每一位也应是独立和均匀的。函数 F 是按逐位方式操作的 :如果 X,那么 Y,否则 Z。函数 H 是 逐位奇理 论 研 究
然后开始算法的主循环。它一次处理 512 位消息,循环 的次数是消息中 512 位分组的数目。
先把这 5 个变量复制到另外的变量中 :A 到 a,B 到 b,C 到 c,D 到 d,E 到 e。
主循环有 4 轮,每轮 20 次操作(MD-5 有 4 轮,每轮 16 次操作)。每次操作对 a、b、c、d 和 e 中的 3 个进行一次非线 性运算,然后进行与 MD-5 中类似的移位运算和加运算。
4 密码杂凑函数的安全性
密码杂凑函数的安全性与其对抗各种黑客攻击的能力有 关。一般来讲,攻击方会将两组不同的数据映射为同一杂凑值, 假设攻击方已经知道该杂凑值的算法,应用明文对原数据进 行攻击。以下列举三种针对杂凑函数的攻击手段。 4.1 举攻击法(Exhaustive Attack)
给定 h=h(H0, M ),其中,H0 为初值,攻击者在所有可能 的 M 中寻求有利于攻击者的 M',使 h=(H0,M')=h(H0, M )。由 于限定了目标 h(H0, M ) 来寻找 h(H0, M' ),这种攻击法称为 目标攻击。若对算法的初值 H0 不限定,使其 h(H0', M ) 等于 h(H0,M'), 则称这种攻击法为自由起始目标攻击。 4.2 生日攻击法(Birthday Attack)
SHA-1 的算法所用的原理如下。 首先将消息填充为 512 位的整数倍。填充方法与 MD-5 完全一样 :先添加一个 1,然后填充尽量多的 0,使其长度为 512 位的倍数,刚好减去 64 位,最后 64 位表示消息填充前 的长度。 5 个 32 位变量(MD-5 仅有 4 个变量,但该算法却要产生 160 位 Hash)初始化为 : A=0x67452301 B=0xefcdab89 C=0x98badcfe D=0x10325476 E=0xc3d2e1f0
图1 MD-5主循环
图2 MD-5的一个执行过程 设 Mj 表示消息的第 j 个子分组(从 0 到 15),s 表示循环 左移 s 位,则 4 种操作为 : FF(a, b, c, d, Mj, s, ti) 表示 a=b+((a+(F(b, c, d)+ Mj+ ti)) s) GG(a, b, c, d, Mj, s, ti) 表示 a=b+((a+(G(b, c, d)+ Mj+ ti)) s) HH(a, b, c, d, Mj, s, ti) 表示 a=b+((a+(H(b, c, d)+ Mj+ ti)) s) II(a, b, c, d, Mj, s, ti) 表示 a=b+((a+(I(b, c, d)+ Mj+ ti)) s) 每一轮都是执行 64 步(过程略)。所有这些操作完成之 后,将 A、B、C 和 D 分别加上 a、b、c、d。然后用下一分组数 据继续运行算法,最后的输出是 A、B、C 和 D 的级联。
关键词 :密码 ;杂凑函数 ;安全性 中图分类号 :TP393.08 文献标识码 :A 文章编号 :1671-1122(2012)02-0001-05
Cryptographic Hash Functions and Its Security Analysis
GUAN Zhen-sheng
( China Finance Certification Center, Beijing 100054, China ) Abstract: This paper puts forward an important significance aiming at the cryptographic hash functions and its safety, lists some technical principles of one-way hash functions, MD5 and SHA-1 etc. It begins with attack means, then analyses the security of cryptographic hash function and makes suggestions that we should take an objective view to the “crack” of SHA-1 and MD-5. Key words: password; hash functions; safety
密码杂凑算法
密码杂凑算法
密码杂凑算法(Password Hashing Algorithm,PHA)是一种安全
策略,用于确保口令在系统中的安全性,特别是在数据库中存储的口令。
它与传统的口令存储策略(如明文存储和消息摘要)相比具有许
多优势。
PHA使用不可逆的哈希算法,将原始口令加密为固定长度的哈希值,然后将哈希值存储在数据库中。
此时,无法从哈希值追溯到源口令,
从而保证源口令的安全。
当用户提供口令时,系统将该口令转换成哈
希值,然后与数据库中的哈希值进行比较,如果匹配,则确保口令正确。
PHA实现的关键是采用可逆哈希算法,该算法可以将口令转换成可
以确保数据库中口令的安全性的哈希值,即使在攻击者窃取数据库以
及数据库泄漏后,也无法追溯到源口令。
传统口令存储策略,如明文存储和消息摘要,都很容易被攻击。
明文存储,只要攻击者窃取数据库,就可以立即获取所有的口令,而
消息摘要也不能有效防止数据库窃取,因为攻击者可以使用彩虹表对
消息摘要进行暴力攻击。
而PHA相比传统的口令存储策略,具有许多优势,特别是在防止
口令被攻击的方面。
另外,它还可以增强口令的安全性,如通过混入
随机字符串和通过强制长度限制来增加口令暴力破解的难度。
总之,密码杂凑算法(PHA)是一种有效的安全策略,可以有效防
止口令被攻击,保护用户口令的安全性。
现代密码学之04杂凑函数
满足以上前2个特性的杂凑函数叫弱Hash函数,或 称杂凑函数H(x)为弱碰撞自由的;
如果还满足第3个特性,就叫做强Hash函数,或称 凑函数H(x)为强碰撞自由的。
四、在密码学上,杂凑函数主要有以下应用:
性质: (1)H能够应用到任何大小的数据块上; (2)H能够生成大小固定的输出; (3)对任意给定的x,H(x)的计算相对简单,使得
硬件和软件的实现可行。
三、从安全意义上来说,杂凑函数应满足以下特性:
(1)对于任意的h,要发现满足H(x)=h的x是计算上 不可行的;(单向性)
(2)对于任意给定的x,要发现满足H(y)=H(x)而y≠x 的y是计算上不可行的 ;(防止伪造)
杂凑函数的目的:要生成文件、消息或其他数 据块的“指纹”,以实现对消息的完整性认证。
4.1 杂凑函数的性质及应用
一、杂凑函数可分为以下两类: (1)不带密钥的杂凑函数,它只有一个被通常称
为消息的输入参数; (2)带密钥的杂凑函数,它有两个不同的输入,
分别称为消息和密钥。 二、从应用需求上来说,杂凑函数H必须满足以下
M=x || 1 || 0d || L
若报文长度超过264-1,则L是消息比特长度取模264 后的比特长度的二进制表示。
第4部分 杂凑函数
例 如 , 设 x 是 长 度 具 有 20768 比 特 的 消 息 , 由 于 20768÷512=40.5625,故大于或等于512的倍数 的最小整数为 51241=20992
1.数据完整性认证
将杂凑值H(m)“安全地”存贮起来。
2.产生数字签名
3.密钥推导
(M,SigA(H(m)))
密码函数的安全性分析
摘要信息安全的核心问题是密码技术。
而密码技术的关键性问题之一在于密码函数的安全性分析。
本文主要研究了密码函数的安全性及相关的度量指标。
第一章主要介绍了密码函数的研究意义和最新进展,包括密码函数的相关应用背景及研究状况、发展趋势。
第二章系统研究了密码函数的各种安全性度量指标,包括密码函数静态信息泄漏的缓慢性和均匀性(如相关免疫性、非线性性、均衡性等等)和动态信息泄漏的缓慢性和均匀性(如扩散性、高阶互相关性等等)。
本章末,利用这些安全性指标分析了几类重要的密码函数的安全性。
第三章系统研究了满足综合安全性指标的密码函数的构造,包括满足PC(O的弹性函数的新构造、无线性结构的弹性函数的构造、满足k阶PC(O的密码函数的构造、多输出bent函数的优化设计等,并进一步指出了这些密码函数也具有多个良好的密码学性质。
第四章分析了密码函数的整体安全性与局部安全性,其中引入局部安全性新度量指标…局部非线性度,揭示了密码函数的(整体)非线性度和局部非线性度的关系。
同时还给出了构造高阶弹性函数新的非线性方法,并通过运用局部非线性度的定义,得到了这些弹性函数非线性度下界的一个关系。
第五章分析了B.M攻击下密码函数的安全性,主要包括B.M攻击的理论基础和基于密码函数设计出一种新型的序列流,并进一步分析其安全性(包括密码函数的信息泄漏分析)。
关键词:密码函数分组密码信息泄漏局部安全。
性AbstractThehardcoreproblemininformationsecurityistheartofcipher.However,oneofthekeyoftheartoncipheristhesecurityanalysis0ncrypto擎aphicfunctions.Inthiswork,boththesecurityoncryptographicfunctionsandtherelationofsecuritymeasureindexesaremainlyresearched.Inchapterone,boththesignificationandthetlewadvanceincryptographicfunctionsarcmainlyintroduced.whichincludetheappliedbackgroundandthestudyingstatusinquooncryptograpkicfunctionsandSOon.Inchaptertwo,thesecuritymeasureindexesoncryptographicfunctionsareresearchedbythenumbers,whichincludetheslownessandbalanceofboththestaticstateinformarionleakage(suchasbalanceandcorrelationimmunityandSOon)anddynamicinformationleakage(suchasthediffusionandhighorderautocorrelafionsandSOon)Oilcryptographicfunctions.Intheendofthechapter,thesecurityofseveralkindsofimportantcryptographicfunctionsisdeeplyanalyzed.Inchapterthree,theconstructionmethodsofcryptographicfunctionswhichsatisfysynthetical··-securityindexareresearchbythenumbers.whichincludetheconstructionofresilientfuncrions、ⅣitIlsarisfyingPC(/),andtheconstructionofresilientfunctionswhichhavenotlinearstructure,andtheconstructionofcryptographicfunctionswithsatisfyingPC(DoforderkandSOon.Furthermore,italsoshowthatthesecryptographicfunctionsstillsatisfyingothergoodcryptographicproperties.Inchapterfour,thesecurityofthelocalandtheintegeroncryptographicfunctionsareanalyzed.andanewmeasureindexoflocalsecurity,namelylocalnonlinearityiSalsointroduced.Moreover,therelationofboththelocalnonlinearityandnonlinearityofcryptographicfunctionsWasopenedout.Furthermore,thenewnonlinearmethodforconstructinghighorderresilientfunctionsispresent,andalowerboundaryofthesefunctions’nonlinearityisalsoobtainedbyusingthedefinitionoflocalnonlinearity.Inchapterfive,thesecurityoncryptographicfunctionsunderB-Mattackismainlyanalyzed,whichincludethetheoryofB·Mattackandanewtypeofstreamcipherwhichisdesignedbyusingcryptographicfunctions.Moreover,thesecurityofthestreamcipherisdiscussed,whichcontainthestudyinginformationleakageofcryptographicfunctions.Keywords:CryptographicfunctionsBlockcipherInformationleakageLocalsecurity创新性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
第7讲-杂凑函数和数字签名市公开课获奖课件省名师示范课获奖课件
(1) 该算法生成集合S旳计算量是计算N次
杂凑函数;
(2) 对集合S迅速排序并找出全部碰撞旳计
算量为 |N|log2|N| 次比较。 故总旳计算量为
N + |N|log2|N| = O(N)
碰撞攻击算法旳性能指标
表S={(mk, H(mk)): k = 1,2,, N}旳规
成功率分析:
模
定理1 设杂凑值为n比特且N远不大于2n,
[A B C D 9 5 t25] [D A B C 14 9 t26] [C D A B 3 14 t27] [B C D A 8 20 t28] [A B C D 13 5 t29] [D A B C 2 9 t30] [C D A B 7 14 t31] [B C D A 12 20 t32]
[A B C D 8 7 t9] [D A B C 9 12 t10] [C D A B 10 17 t11] [B C D A 11 22 t12] [A B C D 12 7 t13] [D A B C 13 12 t14] [C D A B 14 17 t15] [B C D A 15 22 t16]
a (b, c, d) i s t
a (b, c, d) i s t
[A B C D 1 5 t17] [D A B C 6 9 t18] [C D A B 11 14 t19] [B C D A 0 20 t20] [A B C D 5 5 t21] [D A B C 10 9 t22] [C D A B 15 14 t23] [B C D A 4 20 t24]
SM3_密码杂凑算法的安全性问题分析及应用
692023年12月上 第23期 总第419期信息技术与应用China Science & Technology Overview0 引言杂凑函数在密码学中具有重要的地位,安全的杂凑函数能够抵抗碰撞攻击、原根攻击和第二原根攻击等[1]。
很多的方式能够攻击杂凑函数,比如基于模差分的碰撞攻击[2-3]方法、基于中间相遇攻击[4]的原根攻击[5]方法等。
各个国家早已制定相关的杂凑算法标准,我国于2010年公布了中国商用杂凑算法标准,并且命名为SM3杂凑算法。
该算法能够对输入明文信息进行填充分块,将明文分为有限个512bit 的数据块,再将生成的数据块进行扩展,随后进行迭代加密,最终输出密文数据。
因为每一轮的迭代压缩过程生成的密文长度是固定的,所以理论上SM3杂凑算法是一定能够受到伪原根攻击,攻击轮数不同,时间复杂度也会不同。
在加密时,SM3杂凑算法部分轮数是不随机的,所以攻击轮数的减少对于攻击算法的随机性影响较大。
1 SM3杂凑密码算法密码杂凑算法是类基础密码算法之一,该算法于2012年发布为密码行业标准(GM/T 0004-2012),2016 年发布为国家密码杂凑算法标准(GB/T 32905-2016),它可以将任意长度的消息压缩成固定长度的摘要,主要用于数据的安全传输等。
杂凑函数需要满足碰撞稳固性,即对于任意两个不同的输入,其输出也应该是不同的。
目前,对SM3密码杂凑算法的攻击还比较少,尚未发现明显的碰撞攻击方法。
原根稳固性和第二原根稳固性是评价杂凑函数安全性的重要指标,SM3密码杂凑算法在设计上已经考虑了这些特性,使其对原根攻击和第二原根攻击具有一定的抵御能力。
SM3密码杂凑算法的消息分组长度为512b,输出摘要长度为256b [6]。
SM3算法的压缩函数与国际常用的SHA256杂凑算法的压缩函数具有相似性,SM3算法是在SHA-256基础上改进的一种商用密码算法,应用于安全传输和数字签名等方面。
密码杂凑算法
密码杂凑算法
《密码杂凑算法》是一种高级信息安全加密技术。
它是一种建立在网络环境下的双方通信共享信息,通常被认为是最安全的加密方法之一。
在本文中,我们将介绍“密码杂凑算法”,它的作用,运行原理和安全性。
“密码杂凑算法”是一种用于多项式加密传输信息的算法,它在发送数据之前将发送的数据进行多项式运算,而不是简单的加密码。
从密码学的角度来看,该算法的核心思想是加速攻击者的密码穷举攻击,给攻击者带来极大的挑战。
该算法实现了数据的安全传输和加密,防止了数据的篡改和传输中的信息泄露。
实现“密码杂凑算法”的主要原理是给发送的数据加上一个“签名”,这个签名是唯一的,而每一对发送方和接收方都有一个独有的密钥,这个密钥只有发送方和接收方知道,该密钥是用来加密签名的,以保证只有发送方和接收方才能看到签名。
在签名完成之后,发送的数据将被进行数据多项式运算,使得原有的数据和签名混合在一起,从而形成了加密信息。
“密码杂凑算法”是一种高级加密技术,具有很高的安全性。
该算法可以有效地抵御加密攻击,并且阻止攻击者穷举破解加密信息,保护发送方和接收方的数据安全。
此外,“密码杂凑算法”还具有节省时间和简化运算的优点。
由于发送数据之前不需要进行加密码的编辑,因此它能够在更短的时间内完成数据的传输。
此外,原有的多项式运算不需要大量的计算,可
以有效减少运算复杂度,并且有效减少运行时间。
从上述可知,“密码杂凑算法”是一种重要的信息安全加密技术,能有效抵御信息泄露和篡改,是网络环境下保护数据安全的有效保证。
随着密码学技术和信息安全技术的不断发展,“密码杂凑算法”也将
会发挥更大的作用。
密码学杂凑函数的碰撞性分析研究的开题报告
密码学杂凑函数的碰撞性分析研究的开题报告1. 研究背景随着互联网的发展,人们越来越依赖网络通信来传输敏感信息。
为了保护这些信息的安全性,密码学理论应运而生。
密码学中的杂凑函数是一种重要的密码学工具,广泛应用于数字签名、消息认证码、密钥派生等领域。
但传统的杂凑函数也有被碰撞攻击破解的可能,为了提高杂凑函数的安全性,研究杂凑函数的碰撞性分析是非常必要的。
2. 研究目的本研究的目的是分析不同类型的杂凑函数在碰撞性攻击方面的弱点,针对这些弱点提出相应的改进方案,提高杂凑函数的抗碰撞性攻击能力。
3. 研究内容本研究的内容主要包括以下方面:(1)杂凑函数的基本概念和分类。
介绍杂凑函数的定义、功能、设计原则、分类等基本概念。
(2)杂凑函数的碰撞攻击的基本原理。
介绍碰撞性攻击的概念、基本原理、攻击方法等内容。
(3)已有的杂凑函数的碰撞性分析研究。
对已有的杂凑函数的碰撞性分析研究进行梳理和归纳,分析其弱点和改进方向。
(4)针对已有杂凑函数的碰撞性攻击进行改进。
提出相应的改进方案,设计新的杂凑函数,分析其抗碰撞性攻击的能力。
4. 研究方法本研究采用文献综述和实验研究相结合的方式进行。
通过对已有的杂凑函数的碰撞性分析文献进行梳理和归纳,总结其弱点和改进方向。
在此基础上,设计实验,测试已有杂凑函数的碰撞性攻击能力,并提出相应的改进方案。
5. 研究意义本研究对提高杂凑函数的抗碰撞性攻击能力具有重要的意义。
提高杂凑函数的安全性能,将进一步保障网络通信的安全,对维护个人和社会的信息安全具有重要意义。
6. 预期成果通过本研究,预期可以得到以下成果:(1)对杂凑函数的基本原理和分类有更深入的了解。
(2)了解各种杂凑函数在碰撞性攻击方面的弱点和改进方向。
(3)实验测试已有杂凑函数的碰撞性攻击能力,并提出相应改进方案。
(4)设计新的杂凑函数,分析其抗碰撞性攻击的能力。
密码学第七章 杂凑函数
报文
杂凑函数H 报文摘要
一、杂凑函数的概念
杂凑函数的应用
完整性认证:(m,H(m)) m的任何改变都将导致杂凑值 H(m) 的改变,
需要完整性认证时,只需计算 H(m) 并与存储的 H(m) 相比较即可。
一、杂凑函数的概念
杂凑函数的应用
数字签名:(m,sig( H(m) )实现真实性 通常用公钥算法进行数字签名时,一般不是
二、基本攻击方法
证明: N个杂凑值互不相同的排列方式总数为
P2Nn 2n (2n 1)(2n 2)(2n N 1)
但从{0,1}n中随机选取N个点的方式有(2n)N种,因
而S中的点互不相同的概率(失败率)为
p P2Nn 2nN
2n (2n
1)(2 n
2)(2n 2nN
N
1)
N 1
(1
成功率分析
定理 设杂凑值为n比特且N远小于2n,则碰撞攻击
的成功率近似为
1 e
N2 2n1
特别地,当 N 2n 时,碰撞攻击的成功率近似为
1 e0.5 1 1 0.393 2.718
特别地,当 N 2n1 时,碰撞攻击的成功率近似为 1 e1 1 1 1 0.368 0.632 2.718
密码学
第七章 杂凑函数
第七章 杂凑函数
1 杂凑函数的概念 2 基本攻击方法 3 基于分组密码的杂凑函数 4 MD5杂凑算法 5 SHA杂凑函数
一、杂凑函数的概念
(一)基本概念
杂凑函数又称为Hash函数,报文摘要函数等。 其目的是将任意长度的报文 m压缩成指定长度的数 据 H(m)。
H(m)又称为m 的指纹。
(二)杂凑函数应满足的条件
(4) 对于任意的h,要发现满足H(m) = h的m是计算 上不可行的; (5) 对于任意给定的m1,要找到满足H(m2)=H(m1), 而 m2≠ m1 的m2,是计算上不可行的; (6) 要发现满足 H(m1) = H(m2),而 m1≠ m2 的对 (m1, m2) 是计算上不可行的。
密码学杂凑函数及其应用
( . e at n f o mu i t nE g er g X da nvr t, inS an i 10 1 hn ; 1 D pr met m nc i n i ei , ii U i sy X h h ax 7 0 7 ,C ia oC ao n n n ei
2 e igEet ncS i c n eh ooyIstt, e ig10 7 , hn ) .B in l r i c n ea dT cn l tue B in 0 0 0 C ia j co e g ni j
用, 并根据 B S短签名方案 , 出了一种新 的短代理签名方案 , 中杂凑函数在此方案 中得到 了有效利用。 L 提 其 关键词 : 杂凑 函数 ; 密码 学; 字签名 数 中图分类号 : P0 T39 文献标识 码 : A 文章 编号 :62— 6 X 0 84— 06— 7 17 44 2 0 0 0 3 0
本文结构安排如下 : 在第一 、 二部分 , 我们对杂凑 函数及其实现过程进行 了简单介绍 ; 第三部分我们给 出了杂凑函数的部分攻击方法 ; 第四部分全面的讲述 了杂凑函数在实际中的广泛应用 ; 第五部分 , 我们提 出了一种简单的短代理签名方案; 最后在第六部分对整篇文章进行了总结。
2 杂凑 函数 简介 .
Cr t g a yp o r phi s c Ha h Funci ns a to nd The r App i a i n i lc to
ZH ANG Dong L eng —d IM ong X AO 。I Peng PENG C u t e mo e h x e s ea p ia in fh s u cin r n l z d o t k ;frh r r ,t ee tn i p l t so a h fn t sa ea ay e .Ac o d n eBU h r s n t r ss h me a v c o o c r i g t t S s 0 t i au e c e , oh g a n w s o rx in t r c e s p o o e n wh c h a h f n t n h sb e f ci ey u e . e h r p o y sg au e s h me i r p s d i ih t e h s c i a e n ef t l s d t u o e v Ke wo d :Ha h F n t n;C y t g a h ;D gtlS g au e y rs s u ci o rporp y i i i n tr a
杂凑函数 散列函数
杂凑函数散列函数一、杂凑函数杂凑函数是一种将任意长度的输入数据(也称为关键字)转换为固定长度的输出数据的方法。
输出数据的长度通常被称为散列值的位数。
由于杂凑函数在处理大量数据时,可以将数据分布到固定长度的散列表中,因此它们在密码学、数据压缩、数据存储等领域得到了广泛应用。
1. 杂凑函数的原理杂凑函数的基本原理是将输入数据通过一系列复杂的数学运算,生成一个散列值。
这些数学运算通常包括哈希函数、压缩函数、置换函数等。
杂凑函数的输出结果应该是散列值,而不是具体的数据,因此其输出结果通常无法直接与输入数据建立一一对应的关系。
2. 杂凑函数的性能指标性能指标主要包括散列值的位数、碰撞率、负载因子等。
散列值的位数决定了输出的散列值可以表示的长度,对于某些应用来说,过短的位数可能会导致数据无法有效存储或检索。
碰撞率是指两个不同的输入数据生成相同散列值的情况,负载因子则是指散列表中存储的键值对数量与散列表容量的比值。
3. 常见杂凑函数算法常见的杂凑函数算法包括MD5、SHA-1、SHA-256等。
这些算法均采用了特定的数学运算方法,如乘法、位移、异或等操作,生成散列值。
此外,这些算法通常还提供了碰撞检测机制,以保证输出的散列值是唯一的。
二、散列函数散列函数是一种将任意长度的数据转换为固定长度的数据的函数,但与杂凑函数不同的是,散列函数通常要求在已知输出结果的情况下,能够通过输入数据重新得到输出结果,而不需要进行其他复杂的数学运算。
散列函数在密码学中具有重要的应用价值,例如哈希链的构建、数字签名等。
1. 散列函数的性能指标散列函数的性能指标主要包括碰撞率、单向性、计算复杂度等。
碰撞率是指两个不同的输入数据产生相同散列值的情况,单向性是指无法从散列值反推出原始输入数据,计算复杂度则是指生成散列值所需的时间和空间。
2. 常见散列函数算法常见的散列函数算法包括MD4、SHA-0、SHA-3等。
这些算法在计算过程中采用了多种不同的技术手段,如特殊的哈希函数结构、位运算等操作,以实现高效的散列计算。
