收藏 分销(赏)

密码算法设计与实现-.ppt

上传人:精**** 文档编号:1490117 上传时间:2024-04-29 格式:PPT 页数:59 大小:160KB 下载积分:16 金币
下载 相关
密码算法设计与实现-.ppt_第1页
第1页 / 共59页
密码算法设计与实现-.ppt_第2页
第2页 / 共59页


点击查看更多>>
资源描述
安全程序安全程序设计设计方法方法密密码码算法算法设计设计与与实现实现黄玉划黄玉划1问题问题点加/解密,可生成一个新文件(有默认目录和名称,可更改)。如果消息校验失败,则输出解密失败信息,不会生成新文件。2问题问题分析分析加密加密n我们用EA、DA和AA分别表示加密算法、解密算法和数据认证算法,则加密过程如图所示,可表示为:n(1)校验值ICV=AA(P,Ka,IV);n(2)密文C=EA(K,IV,P|ICV)3问题问题分析分析加密加密(续续)n上图中,IV一般为计数器,功能是抗重放攻击,对于相同的明文和密钥,每次可以加密成不同的密文。数据认证算法AA的功能是检测密文是否被篡改,保证数据的完整性完整性,即消息的接收者能够验证在传送过程中消息没有被修改,入侵者不能用假消息代替合法消息。认证密钥Ka与加密密钥K可相同,也可不相同。4问题问题分析分析解密解密n解密过程根据加密套件选择相应的解密算法,如图所示,可表示为:(1)P|ICV=DA(K,IV,C);n(2)认证码MAC=AA(P,Ka,IV);n(3)MAC=ICV?5密密码码算法算法选择选择n(1)加密算法(流密流密码码算法、分算法、分组组密密码码算法算法、公钥密码算法)实现保密性;n(2)数据认证算法(分分组组密密码码算法的算法的认证认证模式、模式、CRC、单单向向Hash函数函数、数字签名算法)保证完整性(消息真实性)。6密密码码算法具体算法具体选选用用n1分组密码算法:AES、SHACAL2、DES、IDEA、MISTY1、Camellia、RC6n2分组密码模式:CBC+PXOR(或或CRC)、ECB(或或CTR或或OFB)+CBC-MAC、OCB、PMAC、RMAC、XCBCn3流密码算法和PRNG(与CBC-MAC结合):RC4、SEAL、A5、ANSI X9.17(基于3DES)、G-SHA-1n4CRC-32n5单向Hash函数(备用):SHA1、SHA256、Whirlpool、RIPEMD160、SHA384、SHA512、HMAC、UMAC、T-T-MAC、MD571分分组组密密码码算法算法n1.0概述概述n1.1DES(数据加密数据加密标准准)算法算法n1.2IDEA(国国际数据加密算法数据加密算法)n1.3AES(Rijndael)算法算法n1.4NESSIE候候选分分组密密码算法算法81.0 分分组组密密码码算法概述算法概述n美国的第一代分组密码算法标准是DES算法,也是一个早期的国际标准;第二代标准是AES算法。欧洲的第一代分组密码算法标准是IDEA算法,新标准是日本人Eisaku Takeda设计的MISTY1算法、Shiho Moriai和Mitsuru Matsui设计的Camellia算法、以及法国人Helena Handschuh和David Naccache设计的SHACAL2算法。n日本在分组密码算法领域的研究非常活跃,向NESSIE提交了5个分组密码算法,是递交数量最多的国家。Camellia算法也是日本的分组密码算法标准,据说某些性能超过了AES 算法。第三代移动通信系统3GPP的标准加密算法KASUMI是MISTY1算法的变种。n巴西在分组密码算法领域的研究也比较活跃,向NESSIE提交了3个分组密码算法,其中,Paulo S.L.M.Barreto和比利时人Vincen t Rijmen合作设计的Khazad算法是入围欧洲决赛的算法。在美国和欧洲新标准征集过程中,俄罗斯、加拿大、澳大利亚和韩国也提交了几个分组密码算法。n国内科研人员提出了几个分组密码算法,性能还不错。91.1 DES算法算法有陷有陷门门?nDES的半公开性:S盒的设计原理至今未公布,可能隐含有陷门(Hidden trapdoors)。n有趣的是,DES算法是由IBM公司设计的;当时的美国国家标准局(NSA)修改了S-盒设计,以确保IBM没有在算法中嵌入陷门,因为NSA没有理由相信IBM的研究成果,而他们不能绝对确定DES算法没有陷门,如果有陷门,将是他们失职,所以只好修改S-盒;而人们又怀疑NSA在DES算法中强加了弱点。101.2 IDEA(国国际际数据加密算法数据加密算法)nIDEA算法是欧洲的第一代分组密码算法标准,是由我国旅欧学者来学嘉和他的导师James Massey设计的,也是PGP的标准之一。该算法的设计原则是“来自于3个不同代数群的混合运算”,即异或、模216加、模216+1乘,这就使得IDEA算法易于软硬件实现。n在代数结构上,IDEA算法也不是一个群。该算法的软件实现速度是DES算法的2倍。Bruce Schneier认为,在早期的分组密码算法中,IDEA算法是最好和最安全的。111.3 AES(Rijndael)算法算法nDES算法的安全强度越来越满足不了技术发展的需要。为此,美国NIST于1997年开始制定AES(高级加密标准)算法以满足新时代的信息安全需求。1999年,NIST宣布已从15个候选算法中选出5个较好的算法:MARS,RC6,Rijndael,Serpent,Twofish。2000年底,NIST最终确定采纳Rijndael算法作为AES算法。AES算法是由比利时的Joan Daemen和Vincent Rijmen设计的,经过全世界密码学者3年多的密集评估,被认为是安全的。由于评估过程公开,AES算法会有陷门的可能性很小。121.3 AES(高高级加密加密标准准)算法算法设计思路思路n通常,分组密码算法的结构是Feistel结构,不过AES算法使用了一种称为宽轨迹策略(WTS)的方法。n该算法有3条设计准则:抗所有已知的攻击;在多个平台上快速简洁地实现;设计简单。其分组长度为128位(Rijndael算法本身的分组长度可以是128、192或256位),密钥长度可以是128、192或256位,分别记为AES-128、AES-192和AES-256。对于AES-128,迭代轮数r=10+1;对于AES-192,r=12+1;对于AES-256,r=14+1。AES算法过程可分为轮密钥编排和加密过程两个独立的部分。131.3 AES算法算法加密全加密全过程程加密全过程包括:轮密钥编排(扩展);轮密钥异或,前(r-1)轮迭代,一个结尾轮。即Rijndael(State,CipherKey)KeyExpansion(CipherKey,ExpandedKey);AddRoundKey(State,ExpandedKey);for(i=1;i 1)poly;else crc=crc 1;qcrcTab i=crc;n则CRC-32算法ICV=CRC-32(P)过程为:ncrc=0 xffffffff;nfor i=0 to len-1 crc=crcTab(crcPi)&0 xff(crc 8)&0 x00ffffff;nICV=crc0 xffffffff;455单单向向Hash函数函数n5.0 概述n5.1 早期的Hash函数n5.2 HMAC(带密钥的Hash函数)n5.3 新一代Hash函数n5.4 国产Hash函数465.0 单单向向Hash函数概述函数概述n散列(Hash)函数又称为杂凑函数,或音译为哈希函数。单向散列函数的早期国际标准有SHA-1(美)、RIPEMD-160(欧)等算法,现在NIST又增加了三个标准算法(SHA-256,SHA-384,SHA-512)。带密钥的散列函数(HMAC)是MAC(消息认证码)算法的一种。HMAC的美国标准是HMAC-MD5和HMAC-SHA-1算法。欧洲的单向散列函数新标准是比利时人Paulo Barreto和Vincent Rijmen设计的Whirlpool算法;欧洲的MAC新标准是Ted Krovetz,John Black,Shai Halevi,Hugo Krawczyk和Phillip Rogaway合作设计的UMAC算法以及德国人Bert de Boer和Bart Van Rompay设计的Two-Track-MAC算法。n我国学者王小云等已相继破译了MD4、MD5、HAVAL-128、RIPEMD-128、SHA-0和SHA-1等散列函数,被认为是密码学界近年来“最具实质性的研究进展”。国内科研人员提出了一些单向散列函数和MAC算法。475.1 早期的早期的Hash函数函数n单向散列函数的早期国际标准有SHA-1(美)、RIPEMD-160(欧)等算法。n早期的单向散列函数中,欧洲的RIPEMD-128算法是MD4算法的一种变型;HAVAL算法是MD5算法的改进版本。n我国学者王小云等已成功攻破了MD4、MD5、HAVAL-128、RIPEMD-128,在数小时内就可以找到MD5的碰撞,被认为是密码学界近年来“最具实质性的研究进展”;“能在任何初始值下用240次Hash运算找出SHA-0的碰撞,并且有望以更低的复杂度完成对SHA-0的攻击”。随后,王小云等又攻破了SHA-1算法。485.2 HMAC(带带密密钥钥的的Hash函数函数)n定义HMAC需要一个散列函数H和一个密钥K。我们用T来表示数据的分组长度(假设散列函数的分组长度T=64 B),用m来表示散列函数的输出长度(MD5中m=16 B,SHA1中m=20 B)。密钥长度可以是小于等于分组长度的任何正整数值。应用程序中使用的密钥长度若是比T大,则首先用使用散列函数H作用于它,然后用H输出的m长度字符串作为在HMAC中实际使用的密钥。一般情况下,推荐的最小密钥长度是m个字节(与H的输出数据长度相等)。495.2 HMAC(续续)n令ipad为字节0 x36重复T次,opad为字节0 x5C重复T次。则输入数据text的HMAC值为n H(Kopad)|H(Kipad)|textn用于HMAC的密钥可以为任意长度(比T长的密钥将首先被H处理)。但当密钥长度小于m时的情况是非常令人担心的,因为这样将降低函数的安全强度。长度大于m的密钥是可以接受的,但是额外的长度并不能显著的提高函数的安全强度。505.3 新一代新一代Hash函数函数n(1)SHA2(FIPS PUB 180-2)算法)算法n包括3个算法:SHA-256、SHA-384和SHA-512。n(2)NESSIE候候选选散列函数与散列函数与MAC算法算法nNESSIE共收到1个散列函数(比利时人Paulo Barreto和Vincent Rijmen设计的Whirlpool算法)和2个MAC(德国人Bert de Boer与Bart Van Rompay设计的Two-Track-MAC算法,Ted Krovetz,John Black,Shai Halevi,Hugo Krawczyk与Phillip Rogaway设计的UMAC)算法,均被采纳为欧洲标准。515.3 新一代新一代Hash函数函数(2)NESSIE候候选选Hash函数与函数与MAC算法算法nWhirlpool算法算法是一个输出长度m=64 B,输入长度L 2256 b的散列函数。其整体结构为Miyaguchi-Preneel结构,可以运行在8 b和64 b的处理器上,即不依赖于具体的工作平台。Whirlpool算法基于一个内部分组密码,密钥和分组长度为T=64 B。轮函数和密钥编排都是根据宽轨迹策略设计的。nTwo-Track-MAC算法算法为迭代结构,基于带密钥的RIPEMD-160,密钥和输出MAC值都是20 B。不带密钥的RIPEMD-160在其压缩函数中采用了双轨迹结构。双轨迹的作用是交换上一个消息分组;采用反馈使两个轨迹不可逆。通过组合最后一次迭代后两个轨迹的值得到最后的MAC值。nUMAC算法算法。该算法的核心是一个通用的散列函数。散列函数处理消息和密钥,产生一个固定长度的散列值,该值与伪随机函数的输出进行异或,得到消息的认证标签,即nAuthTag=H(Key1,Msg)F(Key2,Nonce)n其中,Nonce是个18 B的随机数。525.4 国国产产Hash函数函数n(1)基于三重分组链接的散列函数(HTBC)n(2)基于三重分组的并行散列函数(PHTB)nHTBC算法的速度比SHA-1快5%左右;PHTB算法的串行速度比SHA-1慢一点,比MD5和SHA2快。PHTB算法有一定的特色,因为现有的无陷门单向散列函数都是迭代算法,而PHTB算法可并行处理。535.4 国国产产Hash函数函数安全性安全性n传统单向散列函数一般由压缩函数f 迭代构成:Yi=f(Pi,Yi-1)。这是个Markov过程,其当前迭代值Yi只与当前分组消息Pi和上一次的迭代值Yi-1有关。压缩函数f 存在多对一映射,即存在两个不同的消息,其前i-1组消息P*和P迭代结果相同,则对任意消息Q,消息(P*|Q)和(P|Q)最终的散列值相同;也就是说,常用单向散列函数都是局部散列的,并非全局杂凑的。nHTBC和PHTB算法不存在这种确定的规律,因为其每组计算值Yi都与整个消息P有关;也就是说,HTBC和PHTB是全局散列的。从这个角度而言,HTBC和PHTB的安全性比常用单向散列函数高。n对HTBC和PHTB算法进行的大量统计测试结果都满足要求。54作作业业n大作业:综合运用所学知识,设计、开发和实现一个文件加密软件系统。n上机作业:常用密码算法编程实现,并测试其速度。n1分组密码算法:AES、SHACAL2、MISTY1、Camellia、RC6。工作模式采用CBC+PXOR(或CRC-32)、ECB(或CTR或OFB)+CBC-MACn3流密码算法和PRNG(与CBC-MAC结合):RC4、SEALn4CRC-32n5单向Hash函数:SHA1、SHA256、Whirlpool、RIPEMD160、SHA384、SHA51255习题习题n1、网络系统安全机制的简单模型一般可分为两步:n(1)(身份身份)认证认证与密与密钥钥交交换换和(2)保密通信保密通信。n2、身份认证可分为两类:(1)对对称称认证(即常用的口令口令认证);(2)非非对对称称认证(基于数字数字签签名名算法)。n、(1)流密码算法、分组密码算法和公钥密码算法用于加加解密解密(保密保密);(2)分组密码算法的认证模式、单向Hash函数和数字签名算法用于消息消息认证认证(数据校数据校验验、窜窜改改检测检测);Hash函数和公钥密码算法还可用于(身份身份)认证认证与密与密钥钥交交换换。n、(1)身份认证算法为信息安全提供不可否不可否认认(抗抵抗抵赖赖,身份真身份真实实)性;(2)加密算法为信息安全提供保密保密性;(3)数据认证算法为信息安全提供完整完整(数据真数据真实实)性。n5、对称算法(含Hash函数和PRNG)的基本设计思想是扩扩散散和混乱混乱。56习题习题(续续)n6、非对称算法(公钥密码算法)的基本设计思想是计计算复算复杂杂性性和陷陷门单门单向函数向函数。n7、对称加密算法的处理过程一般分为两步:密密钥编钥编排排和数据加密数据加密。n8、产生流密码中的密钥流的一种主要工具是移位寄存器移位寄存器。n9、分组密码设计一般采用SP思想(S盒盒和置置换换运算运算P两种变换)(S盒盒实现混乱;置置换换运算运算P实现扩散)和Feistel结构。n10、AES和Whirlpool算法是根据宽轨宽轨迹迹策略设计的。n11、在实际应用的混合密码系统中,公公钥钥密密码码(非非对对称称)算法用作身份认证和加密会话密钥,对对称称算法用于加密消息。n12、把公钥密码用于密钥分配解决了重要的密密钥钥管理管理问题。57习题习题(续续)n13、为了节约时间,数字签名协议经常和单单向向Hash函数函数一起使用。并不对整个文件签名,只对文件的Hash值值签名。n14、密码统计测试方法的原理一般是假假设检验设检验。n15、对密码算法f,如果每一位输出依赖于每一位输入,则称f具有完完备备性性。n16、当密码算法f 的任意一位输入改变时,如果平均有一半的输出位改变,则称f具有雪崩效雪崩效应应。n17、当密码算法f 的任意一位输入改变时,如果每一位输出改变的概率为0.5,则称f 满足严严格雪崩准格雪崩准则则。n18、频率测试的目的是检验算法f 的输出是否服从均匀均匀分布。n19、什么是PKI?n20、PKI 的主要建设内容有哪些?n21、完整的PKI应用系统应包括哪些部分?58谢谢!59
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服