武汉大学《密码学》课件第十三讲 HASH函数
- 格式:pdf
- 大小:404.61 KB
- 文档页数:41
第11章 密码学Hash函数Crytographic Hash Functions课程内容大纲1. 引言第一部分:对称密码2. 传统加密技术第三部分:密码学数据完整性算法11.密码学Hash函数3. 分组密码与数据加密标准(DES) 12.消息认证码(MAC) 4. 数论与有限域的基本概念 13.数字签名 5. 高级加密标准(AES) 6. 分组密码的工作模式 7. 伪随机数的产生和流密码第四部分:相互信任14.密钥管理与分发 15.用户认证第二部分:公钥密码8. 数论入门 9. 公钥密码学与RSA 10. 密钥管理和其他公钥密码体制讲课内容11.1 密码学Hash函数的应用 11.2 两个简单的Hash函数 11.3 需求和安全性、安全Hash函数结构 11.4 基于分组密码链接的Hash函数 11.5 安全Hash算法(SHA) 补充:Hash函数MD511.1 密码学Hash函数的应用Hash函数定义• (单词"hash"的翻译:哈希、杂凑、散列、… ) • Hash函数H是一公开函数,用于将任意长的消息 M映射为较短的、固定长度的一个值H(M)。
称函 值H(M)为杂凑值、杂凑码或消息摘要 M → h = H(M)• 在安全应用中使用的Hash函数称为密码学Hash 函数(cryptographic hash function)Hash函数特点• Hash值 H(M) 是消息中所有 比特的函数,因此提供了一 种错误检测能力,即改变消 息中任何一个比特或几个比 特都会使杂凑码发生改变。
Hash函数的应用(1)消息认证 (2)数字签名 (3)其它一些应用Hash函数应用之一:消息认证• 消息认证是用来验证消息完整性的一种机制或服务 完整性 • 当Hash函数用于提供消息认证功能时,Hash函数 值通常称为消息摘要(message digest)• 一般地,消息认证是通过使用消息认证码(MAC) 实现的,即带密钥的Hash函数。
密码学(第四讲)中国商用密码SMS4张焕国武汉大学计算机学院目录1、密码学密码学的基本概念的基本概念2、古典、古典密码密码3、数据加密标准(、数据加密标准(DES DES))4、高级高级数据加密标准(数据加密标准(AES AES))5、中国商用密码(中国商用密码(SMS4SMS4))6、分组密码的应用技术7、序列密码8、习题课:复习对称密码9、公开密钥密码(、公开密钥密码(11)目录公开密钥密码(22)1010、11、数字签名(1)12、数字签名(2)13、、HASH函数131414、15、15PKI技术1616、、PKI17、习题课:复习公钥密码18、总复习一、我国的密码分级:①核心密码:用于保护党、政、军的核心机密。
②普通密码:用于保护国家和事企业单位的低于核心机密而高于商业机密的密码信息。
③商用密码:用于保护国家和事企业单位的非机密的敏感信息。
④个人密码:用于保护个人的隐私信息。
前三种密码均由国家密码管理局统一管理。
一、我国的密码政策二、我国商的业密码政策①统一领导:国家密码管理局统一领导。
②集中管理:国家密码管理局办公室集中管理。
③定点研制:研制只允许定点单位进行。
④专控经营:经许可的单位才能经营。
⑤满足使用:国内各单位都可申请使用。
一、我国的密码政策一、我国商用密码概况⑴密码的公开设计原则密码的安全应仅依赖于对密钥的保密,不依赖于对算法的保密。
⑵公开设计原则并不要求使用时公开所有的密码算法核心密码不能公布算法;核心密码的设计也要遵循公开设计原则。
⑶商用密码应当公开算法①美国DES 开创了公开商用密码算法的先例;②美国经历DES (公开)→EES (保密)→AES (公开)。
③欧洲也公布③欧洲也公布商用商用密码算法密码算法二、我国商用密码SMS4⑷我国的商用密码概况●我国在密码技术方面具有优势:密码理论、密码分析●长期以来不公开密码算法,只提供密码芯片少数专家设计,难免有疏漏;难于标准化,不利于推广应用。
hash(散列函数)⼀直对哈希不太理解,今天上⽹搜了⼀下,总结出以下⼏点,希望可以对⼤家的理解有所帮助1)概念哈希就是把任意长度的(⼜叫做预映射pre-image)通过散列算法变换成固定长度的,该输出就是散列值。
这种转换是⼀种压缩映射,也就是,散列值的空间通常远⼩于输⼊的空间,不同的输⼊可能会散列成相同的输出,所以不可能从散列值来确定唯⼀的输⼊值。
简单的说就是⼀种将任意长度的消息压缩到某⼀固定长度的的函数。
2)基本特性:如果两个散列值是不相同的(根据同⼀函数),那么这两个散列值的原始输⼊也是不相同的。
这个特性是散列函数具有确定性的结果。
但另⼀⽅⾯,散列函数的输⼊和输出不是⼀⼀对应的,如果两个散列值相同,两个输⼊值很可能是相同的,但不绝对肯定⼆者⼀定相等(可能出现哈希碰撞)。
输⼊⼀些数据计算出散列值,然后部分改变输⼊值,⼀个具有强混淆特性的散列函数会产⽣⼀个完全不同的散列值3)作⽤:能使对⼀个数据序列的访问过程更加迅速有效,通过散列函数,将被更快地定位。
4)应⽤:由于的应⽤的多样性,它们经常是专为某⼀应⽤⽽设计的。
例如,假设存在⼀个要找到具有相同散列值的原始输⼊的敌⼈。
⼀个设计优秀的加密散列函数是⼀个“单向”操作:对于给定的散列值,没有实⽤的⽅法可以计算出⼀个原始输⼊,也就是说很难伪造。
为加密散列为⽬的设计的函数,如MD5,被⼴泛的⽤作检验散列函数。
这样软件下载的时候,就会对照验证代码之后才下载正确的⽂件部分。
此代码有可能因为环境因素的变化,如机器配置或者IP地址的改变⽽有变动。
以保证源⽂件的安全性。
注:在python程序中,hash本次⽣成的值与下⼀次程序运⾏hash⽣成的值是不⼀样的。
密码学(第一讲)的基本概念密码学的基本概念张焕国武汉大学计算机学院目录1、密码学密码学的基本概念的基本概念2、古典、古典密码密码3、数据加密标准(、数据加密标准(DES DES))4、高级高级数据加密标准(数据加密标准(AES AES))5、中国商用密码(、中国商用密码(SMS4SMS4))6、分组密码的应用技术7、序列密码8、习题课:复习对称密码9、公开密钥密码(、公开密钥密码(11)目录公开密钥密码(22)1010、11、数字签名(1)12、数字签名(2)13、、HASH函数131414、15、15PKI技术1616、、PKI17、习题课:复习公钥密码18、总复习一、信息安全学科概论1、信息安全学科建设z20012001年经教育部批准武汉大学创建了全国第一个信息安年经教育部批准武汉大学创建了全国第一个信息安全本科专业;z20072007年全国信息安全本科专业已达年全国信息安全本科专业已达7070多所高校多所高校;z20032003年经国务院学位办批准武汉大学建立年经国务院学位办批准武汉大学建立::信息安全硕士点;博士点;博士后流动站z20072007年年1月成立国家信息安全教指委z20062006年武汉大学信息安全专业获湖北省年武汉大学信息安全专业获湖北省““品牌专业品牌专业””z 武汉大学成为我国信息安全科学研究和人才培养的重要基地。
一、信息安全学科概论2、信息安全学科特点z信息安全学科是交叉学科:计算机、通信、数学、物理、生物、管理、法律等;z具有理论与实际相结合的特点;z信息安全技术强调整体性、系统性、底层性;z对信息安全来说,法律、管理、教育的作用很大,必须高度重视。
z人才是关键,人的综合素质是关键的关键!3、武汉大学的办专业思路以学信息安全为主,兼学计算机、通信,同时加强数学、物理、法律等基础,掌握信息安全的基本理论与技能,培养良好的品德素质。
一、信息安全学科概论二、信息安全的基本概念1、信息安全事关国家安全信息成为社会发展的重要战略资源,,信息成为社会发展的重要战略资源信息技术改变着人们的生活和工作方式。
Hash函数概念将任意长度的输⼊变换为固定长度的输出的不可逆的单向密码体制Hash函数在数字签名和消息完整性检测等⽅⾯有着⼴泛的应⽤Hash函数同时是⼀种具有压缩特性的单向函数,其像通常称为数字指纹,消息摘要或散列值。
散列值的⽣成过程可以表⽰为h = H(M)其中h是定长的散列值,H是哈希函数,M是⼀个变长消息散列函数主要⽤于消息认证和数字签名,因此需要具备以下特性1. H可应⽤于任意长度的消息2. H产⽣定长的输出3. 对任意给定的消息x,计算H(x)⽐较容易,⽤硬件软件均可实现4. 单向性:对任意给定的散列值h,找到满⾜H(x) = h 的x在计算上是不可⾏的5. 抗弱碰撞性:对任意给定的消息x,找到x != y并且H(x) = H(y)的消息y在计算上是不可⾏的6. 抗强碰撞性:找到任何满⾜H(x) = H(y) 的偶对(x,y)在计算上是不可⾏的性质2是哈希函数的基本特性,性质3是哈希函数的可⽤性,性质4,5,6是哈希函数为满⾜不同应⽤⽽需具备的基本安全性质应⽤数字签名由于消息散列值通常⽐消息本⾝短的多,因此对消息散列值进⾏数字签名在处理上⽐对消息本⾝进⾏签名要⾼效的多。
⽣成程序或⽂档的数字指纹hash函数可以⽤来保证消息的完整性。
⾸先,通过哈希函数变换得到程序或⽂档的散列值,然后将散列值存储,对程序或⽂档进⾏定时的检测,与已存储的散列值进⾏⽐较,以此来实现完整性验证。
⽤于安全传输和⽤户⼝令⽤于保存⽤户登陆⼝令(密码),通过⽤户id及⼝令⽣成相应的散列值,然后保存,⽤户在进⼊系统输⼊⼝令时,⽣成散列值与存储的散列值进⾏⽐较,这样可以确保⽤户⼝令不被管理员或攻击者获取到哈希算法消息认证消息认证的作⽤主要有两个:⼀个是验证信息来源的真实性,⼀般称之为信息源认证;另⼀个是验证消息的完整性消息认证码(MAC)利⽤消息和双放共享的密钥通过认证函数来⽣成⼀个固定长度的短数据块,并将该数据块附加在消息后⽐如发送⽅A和接收⽅B共享密钥K,若A向B发送消息M,则MAC = C(K,M) ,其中C是认证函数,MAC是消息认证码(a)为明⽂传输,(b)为先计算MAC后,将MAC数据块附加在M信息后进⾏加密传输,(c)为先将M进⾏加密,再⽣成MAC,并附在消息块后进⾏传输基于哈希的消息认证码HMAC是实际应⽤中使⽤最多的⽅案,如SSL就使⽤HMAC来实现消息认证功能。