区块链智能合约技术与应用 课件 第2章 区块链中的信息安全技术.pptx
第2章区块链中的信息安全技术;
2.1信息安全的五大特征;
1.保密性
密性要求不能泄露指定信息给非授权的个人、实体或过程,强调有用信息只能被授权对象使用。保密性保证了机密信息不会被恶意份子窃听到,或者不能了解信息的真实意义。
2.完整性
完整性是指信息在传输、交换、存储和处理过程中,要能保持非修改、非破坏和非丢失的特性,即保持信息原样性,防止数据被非法用户篡改,使信息能正确生成、存储、传输,这是最基本的安全特征。;
3.可用性
信息可用性是指网络信息可被授权实体访问并按需求使用的特性,即网络信息可被授权实体正确访问,并按要求能正常使用或在非正常情况下能恢复使用的特征,在系统运行时能正确存取所需信息;当系统遭受攻击或破坏时,能迅速恢复并能投入使用。可用性是衡量网络信息系统面向用户的一种安全性能。;
4.不可否认性
不可否认性通常是指通信双方在信息交互过程中,参与者本身以及参与者所提供的信息都必须真实可信,所有参与者都不可能否认或抵赖本人的真实身份,信息行为人也不能否认自己的行为以及完成的操作与承诺。;
5.可控性
可控性通常指流通在网络中的信息和具体内容能够被有效控制,即网络系统中的任何信息要在一定传输范围和存放空间内可控,信息和信息系统时刻处于合法所有者或使用者的有效管控与控制之下。除了采用常规的传播站点和传播内容监控等形式外,还可采用密码托管政策。当加密算法交由第三方管理时,必须严格按规定可控执行。;
2.2哈希(Hash)算法;
2.2.1哈希算法的原理与定义
哈希算法是指将任意长度的二进制数据按照一定的算法转换为固定长度的二进制值。哈希一段明文后,如果更改明文中任何一个字符,其哈希值都会发生变化。所以数据的哈希值可以检验数据前后有无发生变化和完整性与否。哈希算法可用于许多操作,包括加密算法、快速验证、身份验证、数字签名等。;
所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那??这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果。但另一方面,散列函数的输入和输出不是一一对应的,如果两个散列值相同,两个输入值很可能是相同的,但二者未必一定相等,即出现了哈希碰撞。;
在理论上,消息鉴别码(MessageAuthenticationCode,MAC)与散列函数一样,但它是带有秘密秘钥的单向散列函数,只有拥有密钥的某些人才能验证散列值或是生成合法散列值。可以用散列函数或分组加密算法产生MAC,也有专用于MAC的算法。
一个优秀的Hash算法将能实现如下功能:
(1)正向快速:给定明文和Hash算法,在有限时间和有限资源内能计算得到Hash值。
(2)逆向困难:给定(若干)Hash值,在有限时间内很难(基本不可能)逆推出明文。
;
(3)输入敏感:原始输入信息发生任何改变,新产生的Hash值都应该出现很大不同。
(4)冲突避免:很难找到两段内容不同的明文,使得它们的Hash值一致(发生碰撞)。冲突避免有时候又称为“抗碰撞性”,分为“弱抗碰撞性”和“强抗碰撞性”两种。如果在给定明文前提下,无法找到与之碰撞的其他明文,则算法具有“弱抗碰撞性”;如果无法找到任意两个发生Hash碰撞的明文,则称算法具有“强抗碰撞性”。;
2.2.2常见的哈希算法
在很多场景下,往往要求算法对于任意长的输入内容可以输出定长的Hash值结果。目前常见的Hash算法包括MD5和SHA系列算法两种。
MD4(RFC1320)是MIT学者RonaldL.Rivest在1990年设计的,MD是MessageDigest的缩写,其输出为128位。MD4已被证明不够安全。MD5(RFC1321)是Rivest于1991年对MD4的改进版本。它对输入仍以512位进行分组,输出是128位。MD5比MD4安全,但过程更加复杂,计算速度要慢一点。MD5已被证明不具备“强抗碰撞性”。;
SHA(SecureHashAlgorithm)并非一个算法,而是一个Hash函数族。NIST(NationalInstituteofStandardsandTechnology,美国国家标准技术研究所)于1993年首次发布。目前知名的SHA-1算法在1995年面世,它的输出为长度160位的Hash值,抗穷举性更好。SHA-1设计时模仿了MD4算法,采用了类似原理,但已被证明不具备“强抗碰撞性”。
为了提高安全性,NIST还设计出了SHA-224、SHA-256、SHA-384和SHA-512算法(统称为SHA-2),跟SHA-1算法原理类似。SHA-3相关算法也已被提出。;
目前,MD5和SHA-1