版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密码学基础01
密码学概述了解密码学基础与发展教学目标密码学概述密码学历史密码攻击概述目录密码学是研究编制密码和破译密码的技术科学使信息保密的技术和科学叫密码编码学破译密文的科学与技术叫密码分析学密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。著名的密码学者罗纳德·李维斯特----密码学是关于如何在敌人存在的环境中通信。概述思考密码学能解决哪些问题?可用性?完整性?机密性?不可抵赖?概述信息安全的基本模型概述密码学基本概念明文密文加密算法解密算法加密密钥解密密钥单钥密码体制双钥密码体制概述概述加解密码示意图第一阶段(1949年前)古典密码发展阶段隐写术,暗语、隐语、藏头诗等采用手工或机械变换的方式实现单表代换密码:Caesar密码、仿射密码多表代换密码:Vigenere、Hill密码等转轮密码:Enigma、Red密码等密码学的历史与发展第二阶段:近代密码学阶段(1949~1976)1949年,Shannon发表了《保密系统的通信理论》,用信息论的观点分析了密码学的基本原理,奠定了密码学的理论基础。1967年DavidKahn出版了《破译者》一书。密码学的历史与发展现代密码学阶段(1976~至今)1976年,Diffie、Hellman发表《密码学新方向》,开辟了公钥密码学的新领域;1976年,美国建立DES为联邦标准密码学的历史与发展现代密码学的主要发展方向混沌密码学:混沌加密的基本原理是利用混沌系统产生混沌序列作为密钥序列,接收方用混沌同步的方法将明文信号提取出来实现解密。量子密码学:量子密码学泛指利用量子力学的特性来加密的科学。任何试图尝试读取量子态的行动,都会改变量子态本身。密码学的历史与发展受限制的(restricted)算法:算法的保密性基于保持算法的秘密。基于密钥(key-based)的算法:算法的保密性基于对密钥的保密。优秀密码算法应该是基于密钥的保密,而非算法的保密。密码体制分类现代密码学用密钥解决问题,密钥用K表示。K可以是很多值里的任意值。密钥K的可能值的范围叫做密钥空间(keyspace)。如加密和解密都用一个密钥,加/解密函数变成:
EK(M)=C DK(C)=M DK(EK(M))=M密码体制分类单钥体制,对称加密加密密钥和解密密钥相同流密码分组密码双钥体制,非对称加密1976年,Diffie和Hellman首先引入
一对密钥:公钥和私钥密码体制分类密码攻击概述攻击类型攻击者掌握的内容惟密文攻击加密算法截获的部分密文已知明文攻击加密算法截获的部分密文一个或多个明文密文对选择明文攻击加密算法截获的部分密文自己选择的明文消息,以及由密钥产生的相对密文选择密文攻击加密算法截获的部分密文自己选择的密文消息,以及相应的被解密的明文算法的安全性如果破译算法的代价大于加密数据价值,那么加密算法是安全的。如果破译算法所需的时间比加密数据保密的时间长,那么你可能是安全的。密码攻击概述了解密码学是什么了解密码学的历史与发展总结密码学基础02
编码与密码了解什么是编码理解编码与密码的区别学习古典密码学教学目标编码基础古典密码学目录ASCII(AmericanStandardCodeforInformationInterchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。ASCII是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC646。编码基础-ASCII标准ASCII码也叫基础ASCII码,使用7位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0到9、标点符号。后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展ASCII。扩展ASCII码允许将每个字符的第8位用于确定附加的128个特殊符号字符、外来语字母和图形符号。编码基础-ASCII编码基础-ASCIIASCII因为只有8位长,只能表达256种字符。所以不能满足其它国家需求。Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。使用16位的编码空间。也就是每个字符占用2个字节。编码基础-unicodeUTF-8(8-bitUnicodeTransformationFormat)是一种针对Unicode的可变长度字符编码在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同,所以有UTFUTF-8使用一至六个字节为每个字符编码编码基础--utf-8Base64是一种基于64个可打印字符来表示二进制数据的表示方法。每6个比特为一个单元,对应某个可打印字符除了A-Z,a-z,0-9共62个字符还有“+”“/”,最后用“=”填充不能被3整除的空位。编码基础--BASE64基本情况主要考虑消息的保密性对于完整性和不可否任性没有太多考虑古典密码学古典密码的加密是将明文的每一个字母代换为字母表中的另一个字母根据代换是对每个字母逐个进行还是对多个字母同时进行,古典密码又分为单表代换密码和多表代换密码在CTF中通常是单表代换比较多古典密码学通用特点:对每个字母逐个进行代换典型的有:
凯撒密码
移位密码
仿射密码单表代换密码凯撒密码加密时将明文中的每个字母按字母表顺序向前或向后移动固定数目,作为密文如偏移量是左移3为例明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:DEFGHIJKLMNOPQRSTUVWXYZABC凯撒密码与凯撒密码类似,最早的凯撒密码是固定左移3位。区别在于移位密码可以任意移动,后期不仅处理26个字母,还会处理数字和特殊字符。参照ASCII码表进行位移。思考:除了位移以外,还可以采取什么方式替换?位移密码
仿射密码例子仿射密码解密a=5b=8,a对26的乘法逆元为21。5*21mod26=1仿射密码加密方式使用多个表解决了单表加密的频率分析问题多表替换加密该算法基于5*5的字母矩阵,该矩阵使用一个关键词构造(即密钥)从左到右、从上到下顺序,填入关键词的字母(去除重复字母)后,将字母表其作余字母填入。(I=J)将明文两个分为一组,若出现相同字母,则用X替代最后字母。在每组中,查找矩阵替换:若两个字母同行,则用右方字母替换若两个字母同列,则用下方字母替换若即不同行也不同列,则用矩阵对角字母替换Playfair例子:以playfairexample为密钥,构造矩阵明文为:hidethegoldinthetreestump密文为:Playfair又称棋盘密码。将给定明文加密为两两组合的特征加密后结果只有5种字符ADFGX密码是德军在一战中使用的栏块密码明文=A
T
T
A
C
K
A
T
O
N
C
E
密文:AFADADAFGFDXAFADDFFXGFXF
polybius
使用26个字母购成字母矩阵横行为明文列,纵向为密钥列明文:comegreatwall密钥:crypto扩充密钥与是明文一样长密文efktzfgrrltznvigenere培根密码栅栏密码莫斯密码其它类型密码用两种不同字体,代表A和B(或者0和1),结合加密表进行加密。加密表如图:明文:steganography正常字体是A,粗体是B,加密结果如图培根密码把明文分成N个一组,然后每组的第1个字连起来,然后连第2个……例子明文:THEREISACIPHER分组:THEREISACIPHER取出:TEESCPEHRIAIHR栅栏密码用.与_表示,以前用于发电报莫斯密码在CTF中,有很多密码算法是出题者临时想出并没有真正的应用过,此类密码需要解题者思维活跃,根据现有的信息、线索和自己的经验,通过猜测、尝试去解题CTF中的奇怪密码ABCDE加密后就变为EDCBA有可能是单词倒述。如hello变为olleh有可能是短语+单词倒述。如helloworld加密为dlrowolleh倒述加密ABCDE加密后变成QWERT按键盘位置转换字母表,红色是明文电脑键盘加密利用键盘上按键所在的行与列,进行编号加密码。下面是一种形态也有忽略大小写的编号方法键盘密码来源于以前的手机9键键盘输入6,得到字母m,编码为61输入66,得到字母n,编码为62输入666,得到字母o,编码为63手机键盘加密用汉字来表示数字,进行编码。汉字特点是出头数量。如下:1 2 3 4 5 6 7 8 9 0由
中
人
工
大
王
夫
进
羊
口当铺密码编码方式
解密方式猪圈密码学习编码的概述理解编码与密码的区别尝试编写代码来实现简单的单表代换加解密总结密码学基础03
对称加密了解对称加密算法理解对称加密算法优势与缺点理解对称加密算法应用场景教学目标对称加密算法概述RC4DESAES目录对称密码主要特征就是加密和解密使用相同的密钥,也叫单密钥加密。根据加密对象分为流加密,每次加密都通过密钥生成一个密钥流,解密也是使用同一个密钥流,明文与同样长度的密钥流进行异或运算得到密文,密文与同样的密钥流进行异或运算得到明文。典型算法RC4块加密,块密码算法也叫分组密码算法,从字面意思就可以知道,它把加密和解密序列分成了一个个分组,最后把每一块序列合并到一起,形成明文或者密文。根据不同的分组加密方式,每个分组之间可以有联系,也可以没有联系。典型算法是DES和AES对称加密基本概念RC4应用广泛,是典型的流加密算法。常见用于SSL/TLS,及802.11和WAP中。流加密会逐字节加密数据,RC4本质是以密钥为种子(seed)产生的随机数来对明文进行逐字节异或。分组密码与流密码的区别就在于有无记忆性。RC4介绍概述每次加密明文中的一个字节密钥长度可变,1-256字节基本流程初始化S和T计算排列S,j从0到255产生与明文等长的密钥流加密运算RC4介绍算法描述S和T的初始状态:S中元素的值按升序被置为0-255,同时建立一个临时向量T。将密钥的值循环复制到T向量中。S的初始置换用T产生S的初始置换,置换伪码如下
j=0;
for(i=0;i<256;i++){
j=(j+S[i]+T[i])mod256;
swap(S[i],S[j]);
}RC4介绍密钥流生成伪码如下
i,j=0;
while(true){
i=(i+1)mod256;
j=(j+S[i])mod256;
swap(S[i],S[j]);
t=(S[i]+S[j])mod256;
k=S[t];
}RC4介绍RC4介绍数据加密标准(dataencryptionstandard,DES)是迄今为止世界上最为广泛使用和流行的一种分组密码算法它的分组长度为64比特,密钥长度为56比特,它是由美国IBM公司研制DES在1975年3月17日首次被公布在联邦记录中,经过大量的公开讨论后,DES于1977年1月15日被正式批准并作为美国联邦信息处理标准1998年5月美国EFF(electronicsfrontierfoundation)宣布,他们以一台价值20万美元的计算机改装成的专用解密机,用56小时破译了56比特密钥的DES块加密的解密流程和加密流程往往是不同的DES介绍
DES介绍初始转换,举例:64比特的输入M,
置换:X=IP(M)64比特输入 X=IP(M)DES介绍M1M2M3M4M5M6M7M8M9M10M11M12M13M14M15M16M17M18M19M20M21M22M23M24M25M26M27M28M29M30M31M32M33M34M35M36M37M38M39M40M41M42M43M44M45M46M47M48M49M50M51M52M53M54M55M56M57M58M59M60M61M62M63M64M58M50M42M34M26M18M10M2M60M52M44M36M28M20M12M4M62M54M46M38M30M22M14M6
M64M56M48M40M32M24M16M8
M57M49M41M33M25M17M9M1
M59M51M43M35M27M19M11M3
M61M53M45M37M29M21M13M5M63M55M47M39M31M23M15M7轮变换公式:DES介绍F中的代换由8个S盒组成每个S盒的输入长为6比特输出长为4比特其变换关系由表定义每个S盒给出了4个代换DES介绍密钥的产生:56比特密钥首先经过一个置换运算,然后将置换后的56比特分为各为28比特的左、右两半,分别记为C0和D0。在第i轮分别对Ci-1和Di-1进行左循环移位,所移位数由表给出。移位后的结果作为求下一轮子密钥的输入,同时也作为置换选择2的输入。通过置换选择2产生的48比特的Ki,即为本轮的子密钥,作为函数F(Ri-1,Ki)的输入。其中置换选择2由表定义。DES介绍为了提高DES的安全性,并利用实现DES的现有软硬件,可将DES算法在多密钥下多重使用。2DES是多重使用DES时最简单的形式。其中明文为P,两个加密密钥为K1和K2,密文为:
3DES最初使用3个不同的密钥做3次加密,这样密钥长度为56x3=168。一种实用的方法是仅使用两个密钥做3次加密,实现方式为加密\|解密\|加密,即:
2DES
3DES分组密码在加密时,明文分组的长度是固定的,而实际应用中待加密消息的数据量是不定的,数据格式可能是多种多样的。为了能在各种应用场合使用DES,美国在FIPSPUS74和81中定义了DES的4种运行模式这些加密模式大都可以归类为两种,即ECB模式和CBC模式ECB全称为ElectronicCodeBook,是块加密中比较简单的加密模式。在ECB模式中,每一块明文数据都被独立地进行加密来生成加密块。这意味着如果你发现两个加密块有相同的内容,那么就可以确定这两个加密块的原文也是相同CBC全称为Cipher-BlockChaining,算是最常见的块加密模式了。在CBC模式中,每个明文块都会在加密前被使用前一个明文块的秘文进行异或;解密过程则正好相反。其中第一个明文块会被使用IV即初始化向量进行异或。DES的加密模式DES的加密模式模式描述用途电码本(ECB)模式每个明文组独立以同一密钥加密传送短数据(如一个加密密钥)密码分组链接(CBC)模式加密算法的输入是当前明文组与前一密文组的异或传送数据流;认证密码反馈(CFB)模式每次只处理输入的j比特,将上一次的密文用作加密算法的输入以产生伪随机输出,该输出再与当前明文异或以产生当前密文传送数据流;认证输出反馈(OFB)模式与CFB类似,不同之处是本次加密算法的输入为前一次加密算法的输出有扰信道上(如卫星通讯)传送数据流差分密码分析是迄今已知的攻击迭代密码最有效的方法之一,其基本思想是:通过分析明文对的差值对密文对的差值的影响来恢复某些密钥比特。线性密码分析是对迭代密码的一种已知明文攻击,它利用的是密码算法中的“不平衡(有效)的线性逼近”。密码分析1997年4月15日,美国ANSI发起征集AES(advancedencryptionstandard)的活动,并为此成立了AES工作小组。1998年8月,在首届AES候选会议上公布了AES的15个候选算法。1999年3月,在第2届AES候选会议上经过对全球各密码机构和个人对候选算法分析结果的讨论,从15个候选算法中选出了5个。2000年10月,NIST宣布Rijndael作为新的AES。至此,经过3年多的讨论,Rijndael终于脱颖而出。AES介绍Rijndael由比利时的JoanDaemen和VincentRijmen设计,算法的原型是Square算法,它的设计策略是宽轨迹策略。宽轨迹策略是针对差分分析和线性分析提出的,它的最大优点是可以给出算法的最佳差分特征的概率及最佳线性逼近的偏差的界。Rijndael密码的设计力求满足以下3条标准:抵抗所有已知的攻击。在多个平台上速度快,编码紧凑设计简单。AES介绍加解密速度快安全性好适合大量数据加密对称密码应用场景学习对称加密算法概述掌握流加密、块加密区别总结密码学基础04
公钥密码学理解公钥密码算法工作原理掌握公钥密码算法应用场景教学目标公钥密码体制的基本概念RSA算法学习其它加密算法简介目录在公钥密码体制前,所有密码算法都是基于代换和置换公钥密码体制则为密码学的发展提供了新的理论和技术基础公钥密码算法的基本工具数学函数公钥密码算法是以非对称的形式使用两个密钥公钥密码体制1976年以前,所有的加密方法都是同一种模式:加解密双方使用相同算法,相同密钥来进行运算得到结果。这种加密模式有一个最大弱点:甲方必须把加密规则与密钥告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。公钥密码体制解决单钥密码体制中最难解决的两个问题:密钥分配和数字签名公钥密码体制公钥密码体制算法条件产生一对密钥是计算可行的已知公钥、明文,产生密文是计算可行的利用私钥、密文,得到明文是计算可行的利用公钥来推断私钥是计算不可行的利用公钥、密文,得到明文是计算不可行的公钥密码体制以上要求的本质之处在于要求一个陷门单向函数总结为——陷门单向函数是一族可逆函数fk,满足:①Y=fk(X)易于计算(当k和X已知时)。②X=f-1k(Y)易于计算(当k和Y已知时)。③X=f-1k(Y)计算上是不可行的(当Y已知但k未知时)上述表达②③中,k就是所指的陷门,已知K时,可以进行逆计算。公钥密码体制加密应用公钥密码体制认证应用公钥密码体制认证+加密公钥密码体制1976年,Diffie和Hellman提出公钥密码思想,可以在不直接传递密钥的情况下,完成解密。这被称为"Diffie-Hellman密钥交换算法"。公钥密码体制RSA算法是1978年由R.Rivest,A.Shamir和L.Adleman提出的一种用数论构造的、也是迄今为止理论上最为成熟完善的公钥密码体制,该体制已得到广泛的应用。RSA算法其他非对称加密算法Merkel-Hellman背包算法McEliece算法ElGammal算法椭圆曲线密码算法基于有限自动机的公开密钥算法(中国)公钥密码体制算法描述①选两个保密的大素数p和q。②计算n=p×q,φ(n)=(p-1)(q-1),其中φ(n)是n的欧拉函数值,
令k=φ(n)。③选一整数e,满足1<e<k,且gcd(k,e)=1。即e与k互质。④计算d,满足d·e≡1mod(k),即d是e在模k下的乘法逆元,因e与k互质,由模运算可知,它的乘法逆元一定存在。即d·e=k·t+1,t为正整数⑤以{e,n}为公钥,{d,n}为私钥。RSA加密算法
RSA加密算法
RSA算法
RSA算法RSA算法可靠性,若已知公钥{e,n},求解d即可破解rsa算法回顾算法中一系列因素p初始大质数q 初始大质数nn=p*qφ(n)ee随机选取公钥de在模n下的乘法逆元RSA算法RSA的安全性已知公钥{e,n},已知ed≡1(modφ(n))。如何求解d?问题变为求解φ(n)φ(n)=(p-1)(q-1)-->问题变为求解pq已知n=p*q,所以问题变为n的因数分解。对于两个大质数相乘结果的因式分解,目前只能使用暴力破解。RSA算法密钥为1024位或2048位。同学可以编程尝试验证。RSA算法
其它公钥加密算法
其它公钥加密算法
其它公钥加密算法
其它公钥加密算法离散对数类,依赖离散对数难题主要有椭圆曲线上的离散对数数域上的离散对数算法EIGamal其它公钥加密算法离散对数举例其它公钥加密算法学习公钥密码体制理解公钥、私钥的分别作用于加密与认证场景下的应用总结密码学基础05
密钥交换学习密钥交换算法理解密钥管理的概念教学目标Diffie-Hellman密钥交换单密钥加密体制的密钥分配公钥加密体制的密钥管理目录公钥的分配方法:公开发布、公用目录表、公钥管理机构、公钥证书公钥分配完成后,用户就可以使用公钥体制进行保密通信。但是公钥加密速度慢,进行通信时不太合适。此时更适合使用对称加密来通信。由此引申出对称加密的密钥分配管理问题。公钥体制的密钥管理Diffie-Hellman密钥交换是W.Diffie和M.Hellman于1976年提出的第一个公钥密码算法算法的惟一目的是使得两个用户能够安全地交换密钥,得到一个共享的会话密钥,算法本身不能用于加、解密。算法的安全性基于求离散对数的困难性。Diffie-Hellman密钥交换
Diffie-Hellman密钥交换
Diffie-Hellman密钥交换在大量用户需要互相通信时,单密钥体制,会使用大量密钥。如有n个用户要互相通信,此时需要n(n-1)/2个密钥此时密钥管理是一个严重的风险问题。引入KDC来解决这个问题密钥分发中心KDC和每个终端用户都共享一对唯一的主密钥(用物理的方式传递,如U盾)。终端用户之间每次会话,都要向KDC申请唯一的会话密钥,会话密钥通过与KDC共享的主密钥加密来完成传递。单密钥加密体制的密钥分配建立一个共享的一次性会话密钥,可通过以下几步来完成:①A向KDC发出会话密钥请求。表示请求的消息由两个数据项组成,第1项是A和B的身份,第2项是这次业务的惟一识别符N1。②KDC为A的请求发出应答。应答是由KA加密的消息,因此只有A才能成功地对这一消息解密,并且A可相信这一消息的确是由KDC发出的。③A存储会话密钥,并向B转发EKB[KS‖IDA]。因为转发的是由KB加密后的密文,所以转发过程不会被窃听。B收到后,可得会话密钥KS,并从IDA可知另一方是A,而且还从EKB知道KS的确来自KDC。④B用会话密钥KS加密另一个一次性随机数N2,并将加密结果发送给A。⑤A以f(N2)作为对B的应答,其中f是对N2进行某种变换(例如加1)的函数,并将应答用会话密钥加密后发送给B。单密钥加密体制的密钥分配密钥分配实例单密钥加密体制的密钥分配
无KDC的密钥分配两个用户A和B建立会话密钥需经过以下3步(A与B已经有共享主密钥)①A向B发出建立会话密钥的请求和一个一次性随机数N1。②B用与A共享的主密钥MKm对应答的消息加密,并发送给A。应答的消息中有B选取的会话密钥、B的身份、f(N1)和另一个一次性随机数N2。③A使用新建立的会话密钥KS对f(N2)加密后返回给B。单密钥加密体制的密钥分配单密钥加密体制的密钥分配基于公钥管理机构的公钥分配:①用户A向公钥管理机构发送带时戳的消息,请求获取用户B的公钥。②管理机构作出应答,该消息由管理机构用自己的私钥SKAU加密,因此A能用管理机构的公开钥解密,并确认该消息的真实性。③A用B的公钥对一个消息加密发往B,这个消息有两个数据项:一是A的身份IDA,二是一个一次性随机数N1,用于惟一地标识这次业务。④⑤B以相同方式从管理机构获取A的公开钥(与步骤①、②类似)。这时,A和B都已安全地得到了对方的公钥,所以可进行保密通信。然而,他们也许还希望有以下两步,以认证对方。公钥加密体制的密钥管理⑥B用PKA对一个消息加密后发往A,该消息的数据项有A的一次性随机数N1和B产生的一个一次性随机数N2。因为只有B能解密③的消息,所以A收到的消息中的N1可使其相信通信的另一方的确是B。⑦
A用B的公开钥对N2加密后返回给B,可使B相信通信的另一方的确是A。公钥加密体制的密钥管理公钥加密体制的密钥管理基于公钥证书管理公钥用户通过公钥证书来互相交换自己的公钥而无须与公钥管理机构联系。公钥证书由证书管理机构CA(certificateauthority)为用户建立,其中的数据项有与该用户的秘密钥相匹配的公开钥及用户的身份和时戳等。所有的数据项经CA用自己的秘密钥签字后就形成证书,即证书的形式为:CA=ESKCA[T,IDA,PKA]IDA是用户A的身份,PKA是A的公钥,T是当前时戳,SKCA是CA的秘密钥,CA即是为用户A产生的证书公钥加密体制的密钥管理公钥加密体制的密钥管理使用公钥加密体制分配对称密钥如果A希望与B通信,可通过以下几步建立会话密钥:①A产生自己的一对密钥{PKA,SKA},并向B发送PKA||IDA,其中IDA表示A的身份。②B产生会话密钥KS,并用A的公开钥PKA对KS加密后发往A。③A由DSKA[EPKA[KS]]恢复会话密钥。因为只有A能解读KS,所以仅A、B知道这一共享密钥。④A销毁{PKA,SKA},B销毁PKA。公钥加密体制的密钥管理简单使用公钥加密算法建立会话密钥这种建议容易受到中间人攻击公钥加密体制的密钥管理具有保密性和认证性的密钥分配假定A、B双方已完成公钥交换,可按以下步骤建立共享会话密钥:①A用B的公开钥加密A的身份IDA和一个一次性随机数N1后发往B②B用A的公开钥PKA加密A的一次性随机数N1和B新产生的一次性随机数N2后发往A。因为只有B能解读①中的加密,所以B发来的消息中N1的存在可使A相信对方的确是B。③A用B的公钥PKB对N2加密后返回给B,以使B相信对方的确是A。④A选一会话密钥KS,然后将M=EPKB[ESKA[KS]]发给B,其中用B的公开钥加密是为保证只有B能解读加密结果,用A的秘密钥加密是保证该加密结果只有A能发送。⑤B以DPKA[DSKB[M]]恢复会话密钥。公钥加密体制的密钥管理具有保密性和认证性的密钥分配公钥加密体制的密钥管理掌握DH算法,想一想,在什么地方见过DH算法的配置?理解密钥管理总结密码学基础06
哈希算法理解哈希算法作用理解哈希算法的应用场景教学目标哈希函数概念哈希算法MD5SHAHMAC介绍目录哈希函数也可以称为杂凑函数哈希函数H是公开函数,用于将任意长的消息M映射为较短的、固定长度的一个值H(M),称函数值H(M)为杂凑值、哈希值或消息摘要。哈希函数哈希函数的条件哈希函数的目的是为需认证的数据产生一个“指纹”。为了能够实现对数据的认证,哈希函数应满足以下条件:①函数的输入可以是任意长。②函数的输出是固定长。③已知x,求H(x)较为容易,可用硬件或软件实现。④已知h,求使得H(x)=h的x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向杂凑函数。哈希函数⑤已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的。如果单向杂凑函数满足这一性质,则称其为弱单向杂凑函数。⑥找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的。如果单向杂凑函数满足这一性质,则称其为强单向杂凑函数。第⑤和第⑥个条件给出了杂凑函数无碰撞性的概念,如果杂凑函数对不同的输入可产生相同的输出,则称该函数具有碰撞性。哈希函数生日悖论
在k人中,有两人生日相同的概率为0.5时,k有多大?定义:设有k个整数项,每项在1到n之间等可能取值。则k个整数项中至少有两个取值相同的概率为P(n,k);k个数据项中任意两个取值都不同的概率,记为Q(n,k)生日悖论求P(365,k)≥0.5的最小k哈希函数生日悖论常规理解是k≥365/2时,P(365,k)≥0.5实际上k≤365,k个数据项中任意两个都不相同的所有取值方式数为经测算 P(365,23)=0.5073 P(365,100)=0.9999997哈希函数将生日悖论推广为下述问题:已知一个在1到n之间均匀分布的整数型随机变量,若该变量的k个取值中至少有两个取值相同的概率大于0.5,则k至少多大?与上类似,
令P(n,k)>0.5,可得若取n=365,则
哈希函数生日悖论的本质就是随着元素的增多,出现重复元素的概率会以惊人速度增长,而并非我们认为的线性增长。哈希函数的碰撞性,就是我们所提到的生日攻击。随着k值增长,哈希函数发生碰撞的概率是否会极速增大?哈希函数
哈希函数MD4是MD5杂凑算法的前身,由RonRivest于1990年10月作为RFC提出,1992年4月公布的MD4的改进(RFC1320,1321)称为MD5。MD5算法采用迭代型杂凑函数的一般结构。算法的输入为任意长的消息,分为512比特长的分组,输出为128比特的消息摘要。MD5算法MD5算法MD5处理步骤对消息填充,使得其比特长在模512下为448。附加消息的长度用步骤①留出的64比特以little-endian方式来表示消息被填充前的长度。如果消息长度大于264,则以264为模数取模。对MD缓冲区初始化算法使用128比特长的缓冲区以存储中间结果和最终杂凑值,缓冲区可表示为4个32比特长的寄存器(A,B,C,D)以分组为单位对消息进行处理每一分组都经一压缩函数HMD5处理。HMD5是算法的核心。MD5算法MD5算法HMD5的4轮处理过程结构一样,但所用的逻辑函数不同,分别表示为F、G、H、I。输入:当前处理的消息分组Yq和缓冲区的当前值输出:第4轮的输出与第1轮的输入CVq相加MD5的安全性目前对MD5的攻击已取得以下结果对单轮MD5使用差分密码分析,可在合理的时间内找出具有相同杂凑值的两个消息。可找出一个消息分组和两个相关的链接变量(即缓冲区变量ABCD),使得算法产生出相同的输出。对单个512比特长的消息分组已成功地找出了碰撞,即可找出另一个消息分组,使得算法对两个消息分组的128比特长的输出相同。MD5算法SHA家族的五个算法:分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,后四者可并称为SHA-2,而SHA-2是组合值,有不同的位数,其中最受欢迎的是256位。SHA-1和SHA-2是该算法不同的两个版本,它们的构造和签名的长度都有所不一样,但可以把SHA-2理解为SHA-1的继承者。SHA1和SHA2由于SHA与MD5都是由MD4演化而来,所以两个算法极为相似。抗击穷搜索攻击的强度高于MD5抗击穷搜索攻击的强度。由于SHA的设计准则未被公开,所以它抗击密码分析攻击的强度较难判断,似乎高于MD5的强度。SHA的速度要比MD5的速度慢。两个算法描述起来都较为简单,实现起来也较为简单,都不需要大的程序和代换表。MD5使用little-endian方式,SHA使用big-endian方式。SHA1和SHA2在密码学中,消息认证码(Messageauthenticationcode)被简称为MAC。又称消息鉴别码,文件消息认证码,信息认证码。MAC是经过特定算法后产生的一小段信息,检查某段消息的完整性,以及作身份验证。MAC算法与哈希函数最大区别在于,MAC加入了密钥到运算中。MACMAC众多MAC算法里面,HMAC是最流行的之一RFC2104公布HMAC,并在IPSec和其他网络协议(如SSL)中广泛应用。RFC2104列举了HMAC的以下设计目标:可不经修改而使用现有的杂凑函数镶嵌的杂凑函数可易于替换为更快或更安全的杂凑函数。保持镶嵌的杂凑函数的最初性能,不因用于HMAC而使其性能降低以简单方式使用和处理密钥易于分析HMAC用于认证时的密码强度MAC算法的输出可如下表示:MAC算法的运行过程可描述如下:K的左边填充0以产生一个b比特长的K+(例如K的长为160比特,b=512,则需填充44个零字节0x00)。K+与ipad逐比特异或以产生b比特的分组Si。将M链接到Si后。将H作用于步骤3产生的数据流。K+与opad逐比特异或,以产生b比特长的分组S0。将步骤4得到的杂凑值链接在S0后。将H作用于步骤6产生的数据流并输出最终结果。MAC理解哈希算法作用理解MAC与哈希的应用关系想一下,在哪里见到过哈希值?总结密码学基础07
数字签名与电子证书学习数字签名及应用教学目标数字签名的基本概念数字签名标准x.509认证SSL/TLS介绍目录在收发双方未建立起完全的信任关系且存在利害冲突的情况下,仅仅使用MAC就可能仍然不够安全。数字签名技术用于解决此类问题。数字签名具有以下性质:能够验证签字产生者的身份,以及产生签字的日期和时间。能用于证实被签消息的内容。数字签字可由第三方验证,从而能够解决通信双方的争议。数字签名基本概念为实现上述3条性质,数字签字应满足以下要求:签字的产生必须使用发方独有的一些信息以防伪造和否认。签字的产生应较为容易。签字的识别和验证应较为容易。对已知的数字签字构造一新的消息或对已知的消息构造一假冒的数字签字在计算上都是不可行的。数字签名基本概念数字签字标准DSS(DigitalSignatureStandard)是由美国NIST公布的联邦信息处理标准FIPSPUB186,其中采用了上一章介绍的SHA和一种新的签字技术,称为DSA(DigitalSignatureAlgorithm)。DSS最初于1991年公布,在考虑了公众对其安全性的反馈意见后,于1993年公布了其修改版。数字签名标准DSS与RSA比较RSA算法既能用于加密和签名,又能用于密钥交换。DSS使用的算法只能提供数字签字功能数字签名标准DSA的步骤数字签名标准DSA的步骤,上图中pgq为全局公开钥x为用户私钥y为用户公钥k为用户秘密选取的随机数最终签名为(r,s)r由一系列公钥算出,s由消息原文算出。r可用于第三方验证s用于完整性与真实性数字签名标准X.509是密码学里公钥证书的格式标准
X.509证书己应用在包括TLS/SSL在内的众多Intenet协议里X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息x.509证书X.509的格式x.509证书X.509有多种常用的扩展名。但具有这个扩展名的文件可能并不是证书,比如说可能只是保存了私钥.pem–DER编码的证书再进行Base64
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新型环保建材技术创新2025年智能交通设施推广可行性研究
- 2025年全球航空业燃油效率提升技术路线行业报告
- 2026年证券从业资格基金投资基础知识要点练习(含答案)
- 2026年医院医院医院医院医院医院医疗安全管理制度的建立与完善
- 网站前端开发规范指引
- 企业内训师选拔及培训方案
- 技术团队技术问题解决方案库
- 软件系统测试与质量管理手册
- 服装加工生产流程预案
- 2025年社交媒体广告效果评估与调整策略服务合同
- 2026福建莆田市涵江区选聘区属一级国有企业高级管理人员2人笔试备考试题及答案解析
- 2026年上海市宝山区初三上学期一模化学试卷和答案及评分标准
- 内蒙古赤峰市松山区2025-2026学年高一上学期期末数学试题(含答案)
- 2026年官方标准版离婚协议书
- 二十届中纪委五次全会知识测试题及答案解析
- 黑龙江大庆市2026届高三年级第二次教学质量检测化学(含答案)
- 未来五年造纸及纸制品企业数字化转型与智慧升级战略分析研究报告
- 2025年贵州省高考化学试卷真题(含答案及解析)
- 紧固件 弹簧垫圈 标准型(2025版)
- 2025至2030中国少儿英语培训行业发展趋势分析与未来投资战略咨询研究报告
- 企业如何实现科技与业务的完美融合
评论
0/150
提交评论