密码学 (第十三讲) HASH函数 张焕国 武汉大学计算机学院
密 码 学 (第十三讲) HASH函数 张焕国 武汉大学计算机学院
目录 1、密码学的基本概念 2、古典密码 3、数据加密标准(DES) 4、高级数据加密标准(AES) 5、中国商用密码(SMS4) 6、分组密码的应用技术 7、序列密码 8、习题课:复习对称密码 9、公开密钥密码(1)
目 录 1、密码学的基本概念 2、古典密码 3、数据加密标准(DES 加密标准(DES) 4、高级数据加密标准( 数据加密标准(AES) 5、中国商用密码(SMS4 商用密码(SMS4) 6、分组密码的应用技术 密码的应用技术 7、序列密码 8、习题课:复习对称密码 课:复习对称密码 9、公开密钥密码(1)
目录 10、公开密钥密码(2) 11、数字签名(1) 12、数字签名(2) 13、HASH函数 14、认证 15、密钥管理 16、PKI技术 17、习题课:复习公钥密码 18、总复习/检查:综合实验
目 录 10、公开密钥密码( 公开密钥密码(2) 11、数字签名(1) 12、数字签名(2) 13、HASH函数 14、认证 15、密钥管理 16、PKI技术 17、习题课:复习公钥密码 题课:复习公钥密码 18、总复习/检查:综合实验
、HASH函数的概念 1、Hash的作用 。Hash码也称报文摘要。 它具有极强的错误检测能力。 用Bash码作MC,可用于认证。 用Hash码糖助数字签名。 Hash函数可用于保密
一、HASH函数的概念 1、 Hash的作用 • Hash码也称报文摘要 码也称报文摘要。 • 它具有极强的错误检测能力。 • 用Hash码作MAC,可用于认证。 • 用Hash码辅助数字签名。 • Hash函数可用于保密
、HASH函数的概念 2、Hash函数的定义 ①Hash函数将任意长的数据M变换为定长的码h 记为:h=HASH(M)或h=H(MD。 ②实用性:矿于给定的数据M计算h=SH(M是 高效的。 ③安全性: 单向性:对给定的ash值h,找到满足H(x)=h的x在 计算上是不可行的。 否则,设传送数据为C=,K是密 钥。政击者可以截获C求出Hsh函数的逆,从而得出 M|S=H1(C),然后MM和即可得出K
一、HASH函数的概念 2、Hash函数的定义 ① Hash函数将任意长的数据 函数将任意长的数据M变换为定长的码h, 记为:h=HASH(M) h=HASH(M)或 h=H(M)。 ②实用性:对于给定的数据 对于给定的数据M,计算h=HASH(M) h=HASH(M)是 高效的。 ③安全性: • 单向性:对给定的Hash值h,找到满足H(x)=h的x在 计算上是不可行的。 否则,设传送数据为C=<M,H(M||K)>,K是密 钥。攻击者可以截获 攻击者可以截获C,求出Hash函数的逆,从而得出 M||S=H-1(C),然后从M和M ||K即可得出K
、HASH函数的概念 2、Hash函数的定义 ③安全性: 抗弱碰撞性:对任何给定的x,找到满足y≠x 且H(x)-(y)的在计算上是不可行的。 否则,政击者可以截获报文M及其Hah图 数值H(M,并找出另一报文M使得 HM=H(M。这样攻击者可用M去冒充M, 而收方不能发现。 抗强碰撞性:找到任何满足H(x)=(y)的偶对 (,y)在计算上是不可行的
一、HASH函数的概念 2、Hash函数的定义 ③安全性: • 抗弱碰撞性:对任何给定的x,找到满足y≠x 且H(x)=H(y)的 )=H(y)的y在计算上是不可行的 在计算上是不可行的。 否则,攻击者可以截获报文 攻击者可以截获报文M及其Hash函 数 值 H(M) , 并找出另一报文 M′ 使 得 H(M′)=H(M)。这样攻击者可用 这样攻击者可用M′去冒充M, 而收方不能发现 而收方不能发现。 • 抗强碰撞性:找到任何满足H(x)=H(y)的偶对 (x,y)在计算上是不可行的 在计算上是不可行的
HASH函数的概念 3、安全Hash函数的一般结构 Merkle提出了安全Hash函数主处理的一般结构 。对数据压缩,产生Hash码。 M M b位 b位 b位 n位fn位fn位fn位 HASH值 IV=CVO CV CVI b位分组,为压缩函数,L轮链接迭代,n位输出
一、HASH函数的概念 3、安全Hash函数的一般结构 函数的一般结构 • Merkle提出了安全Hash函数主处理的一般结构 函数主处理的一般结构 • 对数据压缩,产生Hash码。 b位分组,f为压缩函数,L轮链接迭代,n位输出。 f f f M0 M1 ML-1 b位 b位 b位 n位 n位 n位 n位 IV=CV0 CV1 CVL-1 HASH值 CVL
、HASH函数的概念 3、安全Hash函数的一般结构 分组:将输入分机-1个大小为位的分组。 填充:若第-1个分组不足b位,则将其填充为 b位。 附加:再附加上一个表示输入的总长度分组。 共L个大小为位的分组 天输入中包含长度,所以走者必须找出具 有相长度相等的两条技又,或若找 出两条长度不等但加入报文长度后Hs值相同 的报文,从而增加了政击的难度。 。目前大多数Hash函数均采用这种结构
一、HASH函数的概念 3、安全Hash函数的一般结构 函数的一般结构 • 分组:将输入分为L-1个大小为b位的分组。 • 填充:若第L-1个分组不足b位,则将其填充为 b位。 • 附加:再附加上一个表示输入的总长度分组。 • 共L个大小为b位的分组。 • 由于输入中包含长度 由于输入中包含长度,所以攻击者必须找出具 所以攻击者必须找出具 有相同Hash值且长度相等的两条报文 值且长度相等的两条报文,或者找 出两条长度不等但加入报文长度后Hash值相同 的报文,从而增加了攻击的难度 从而增加了攻击的难度。 • 目前大多数Hash函数均采用这种结构
、 SHA-1 HASHI函数 、SHA系列Hash函数 SHA系列Bash函数是由美国标准与技术研究所NST 设计的。 1993年公布了SHA-0 FIPS PUB180),后来发现它不 安全。 1995年又公布了SHA-1( FIIPSPUBI801)。 2002年又么布了SHA2( FIPSPUB180-2)。 SHA-2包括3个函数:SHA-256,SHA-384, SHA-512 2005年王小云给出一种项击HA4-1的方法,用26操作 找到一个碰撞,以前认为是280。 NST打算2010年废充HA-1
二、SHA-1 HASH函数 1、 SHA系列Hash函数 • SHA系列Hash函数是由美国标准与技术研究所(NIST) 设计的。 • 1993年公布了SHA-0(FIPS PUB 180),后来发现它不 安全。 • 1995年又公布了SHA-1(FIPS PUB 180-1)。 • 2002年又公布了SHA-2(FIPS PUB 180-2)。 SHA-2包括3个Hash函数: SHA-256, SHA-384, SHA-512 • 2005年王小云给出一种攻击SHA-1的方法,用269操作 找到一个碰撞,以前认为是280。 • NIST打算2010年废弃SHA-1
、 SHA-1 HASHI函数 1、SHA系列Hash函数 SHA-1是在MD5的基础上发展起来的。 它米用 Merkle提出了安全Hash结构。已 被美国政府和许多国际组织采纳作为标 准。 SHA-1的输入为长度小于24位的报文, 输出为160位的报文摘要,该算法对输入 按512位进行分组,并以分组为单位进行 处理
二、SHA-1 HASH函数 1、 SHA系列Hash函数 • SHA-1是在MD5的基础上发展起来的 的基础上发展起来的。 它采用Merkle提出了安全Hash结构。已 被美国政府和许多国际组织采纳作为标 准。 • SHA-1的输入为长度小于264位的报文, 输出为160位的报文摘要,该算法对输入 按512位进行分组,并以分组为单位进行 并以分组为单位进行 处理