第04讲信息安全加密第第0404讲讲信息安全加密信息安全加密1概述•密码简史•密码体制•Kerchhoff原理•计算安全与理论安全密码简史•最早可追溯到4000年前:字母顺序掉换•大约前400年:开始使用加密棒•二战时期:转子加密机出现,转子初始状态和转速增量顺序相当于密钥•1949年Shannon发表论文“保密通信的信息理论”——密码研究成为学术研究•1976年W.Diffie和M.E.Hellman发表论文“密码学的新方向”:公钥思想提出•1977年美国国家标准局正式公布实施DES:密码技术商用典范•1978年RSA公钥算法提出(R.L.RivestA.ShamirL.Adleman):公钥算法经典•1981年国际密码研究学会(InternationalAssociationforCryptologicResearch,IACR)成立;EUROCRYPT,CRYPTO,ASIACRYPT•2001年AES选定密码体制M加密器EncryptorE解密器DecryptorD破译者)(1MECK=)(2CDMK=1K2K明文密文加密密钥解密密钥发送方接收方公开信道Kerchhoff原理•一个密码系统唯一应该保密的只有密钥。不公开的算法意味着可能更多的弱点。•军事部门和政府应用中不这样认为。计算安全与理论安全•理论安全:不管破译者截获多少密文并加以分析,其结果和直接猜明文没有区别;理论上任何算法(一次一密除外,但它不实用)都是可破译的•计算安全:如果破译所需的计算能力和时间是现实所不能实现的,则称该密码体制是安全的,或称为计算上安全的;破译一密码所需要的计算时间和计算能力的总和,即破译算法的时间复杂度和空间复杂度,称为工作因子2非对称密码•非对称加密原理•RSA•DH•ECC•非对称密码应用方式非对称加密原理•公钥和私钥不是简单的不同!•与“意见箱”、“撞锁”类似,但未发现现实生活中直接相关例子!•加密变换与解密变换一一对应,公钥和私钥一一对应,但由公钥导出私钥很困难!•加密变得更方便,但速度较慢!•单向陷门函数–满足下列条件的函数f称为单向陷门函数(1)给定x,计算y=f(x)是容易的;(2)给定y,计算x使y=f(x)是困难的。(所谓计算x=f-1(Y)困难是指计算上相当复杂,已无实际意义。)(3)存在δ,已知δ时,对给定的任何y,若相应的x存在,则计算x使y=f(x)是容易的。–只满足前两条的称为单向函数–公钥密码体制相当于单向陷门函数族RSA•基本情况–RSA公钥算法是由Rivest,Shamir和Adleman在1978年提出来的(见CommunitionsoftheACM.Vol.21.No.2.Feb.1978,PP.120-126)–该算法的数学基础是初等数论中的Euler(欧拉)定理,并建立在大整数因子的困难性之上。•欧拉定理(Euler):若整数a与整数n互素,则aφ(n)≡1(modn)–akφ(n)+1≡a(modn)–aed≡a(modn)–(ae)d≡a(modn)•算法描述:假设明文空间P=密文空间C=Zn.–(a)密钥的生成:选择p,q,p,q为互异素数,计算n=p*q,ϕ(n)=(p-1)(q-1),选择整数e使得(ϕ(n),e)=1,1eϕ(n)),计算d,使d=e-1(modϕ(n))),公钥Pk={e,n};私钥Sk={d,p,q}(b)加密(用e,n):明文:Mn密文:C=Me(modn).(c)解密(用d,p,q):密文:Cn明文:M=Cd(modn)注:1*,加密和解密时一对逆运算。M=Cd(modn)=Med(modn)=M2*,对于0Mn时,若(M,n)≠1,则M为p或q的整数倍,假设M=cp,由(cp,q)=1有Mϕ(q)≡1(modq)Mϕ(q)ϕ(p)≡1(modq)有Mϕ(q)ϕ(p)=1+kq对其两边同乘M=cp有有Mϕ(q)ϕ(p)+1=M+kcpq=M+kcn于是有Mϕ(q)ϕ(p)+1≡M(modn)DH公钥加密•混合加密系统:–公钥机制传输密钥–对称机制加密数据•“DH公钥加密”=“DH密钥交换”+“对称加密”–DH密钥交换:通信双方可安全可靠的共享密钥。相当于公钥,比公钥似乎更好!•DH交换:当Alice和Bob要进行保密通信时,他们可以按如下步骤来做:–(1)Alice送取大的随机数x,并计算X=gx(modP)–(2)Bob选取大的随机数x′,并计算X′=gx′(modP)–(3)Alice将X传送给Bob;Bob将X′传送给Alice。–(4)Alice计算K=(X′)X(modP);Bob计算K′=(X)X′(modP),易见,K=K′=gxx′(modP)。–由(4)知,Alice和Bob已获得了相同的秘密值KECC•椭圆曲线密码算法ECC基于在有限域的椭圆曲线上定义加法和乘法形成椭圆群,在此椭圆群上离散对数的求解将更加困难。ECC的优点在于用少得多的比特大小取得和RSA相等的安全性。•ECC由于密钥短,速度快,可以用于智能卡等存储和运算能力有限的设备上。国际上对ECC的兴趣越来越大,其应用越来越广泛。非对称密码应用方式安全消息格式提供机密性用接收者公钥加密消息公开消息格式提供认证性用发送者私钥加密消息用接收者公钥加密同时提供认证性和机密性用发送者私钥加密消息3密码认证•HASH函数•数字签名•消息认证•身份认证•PKIHASH函数•完整性校验;数字指纹技术;计算指纹容易,反之很困难,不同信息指纹相同的概率极小。Hash是一种直接产生认证码的方法•Hash函数:h=H(x),要求:–可作用于任何尺寸数据且均产生定长输出–H(x)能够快速计算–单向性:给定h,找到x使h=H(x)在计算上不可行–WeakCollisionResistence(WCR):给定x,找到y≠x使H(x)=H(y)在计算上不可行–StrongCollisionResistence(SCR):找到y≠x使H(x)=H(y)在计算上不可行•MD5,SHA1数字签名则,签名无效。,则验证签名有效;否,若后,计算。签名者收到,且:有相应的签名验证算法对于密钥签名验证:发送到签名者。的签名,将签名消息组为消息,那么,且,有任意。对相应的签名算法为:取签名产生:TyxveryxversmxsigyFxsigyTyxverVverFTSMverksmmSsSsmsigsMmSMsigSIGsigKkkkkkkkkkkk=⎩⎨⎧≠==∈→×∈∈=∈→∈∈),(),(),()()(),(),,()(:),()(:,,•基于RSA的签名方案令M=S=Zn,选择p,q,p,q为互异素数,计算n=p*q,ϕ(n)=(p-1)(q-1),选择整数e使得(ϕ(n),e)=1,1eϕ(n)),计算d,使d=e-1(modϕ(n))),公开Pk={e,n};Sk={d,p,q}保密对k=(n,p,q,e,d),定义Sigk(x)=xe(modn),x∈ZnVerk(x,y)=T⇔y=xd(modn),x,y∈Zn消息认证•消息认证概念:–消息认证问题的背景与消息加密方案的背景很相似,通信双方也在一个不安全信道上传送消息,如互联网(internet),但现在的第三者不仅可能截取消息进行分析,而且可能伪造或篡改发送的消息,称为入侵者。通信双方希望交换消息而拒绝接受入侵者欺骗的协议。•三种方式–Messageencryption:用整个消息的密文作为认证标识•接收方必须能够识别错误–MAC:一个公开函数,加上一个密钥产生一个固定长度的值作为认证标识–Hashfunction:一个公开函数将任意长度的消息映射到一个固定长度的散列值,作为认证标识身份认证•基于对称密码机制的单向认证–(1)TokenAB=Text2||eKAB(TA||B||Text1)–(2)B解密,验证B、时间标记或顺序号的正确性AB(1)TokenAB(2)•基于公开密码算法单向认证•(1)TokenAB=TA||B||Text2||SSA(TA||B||Text1)•(2)B验证A的公开密钥,验证B的标识符号AB(1)CertA||TokenAB(2)PKI•概念:PublicKeyInfrastructure是一个用公钥概念与技术来实施和提供安全服务的具有普适性的安全基础设施•解决问题:–公钥技术如何提供数字签名功能–公钥技术如何实现不可否认服务–公钥和身份如何建立联系:为什么要相信这是某个人的公钥–公钥如何管理•方案:引入证书和权威中心实现•核心功能:–证书管理:创建、签发、废除–证书认证:–加密、签名服务:4密钥管理•密钥分配•密钥管理原则•秘密共享•Clipper芯片的密钥管理密钥分配•对于通信方A和B来说,密钥分配可以用以下几种方法完成:–(1)一个密钥由A选定,然后物理地传递给B。–(2)一个第三方可以选定密钥,然后物理地传递给A和B。–(3)如果A和B在不久以前使用过一个密钥,一方可以使用旧密钥加密新密钥并传输给另一方。–(4)如果A和B每人都有一个到第三方C的加密连接,C就可以用加密连接把密钥传递给A和B。密钥管理原则•密钥应足够长•密钥应安全保存和传送•密钥应尽量在随机•密钥生命周期与保护对象的敏感程度相关•密钥应该备份或交由可信第三方保护,以防万一•密钥生命周期后应该销毁秘密共享•在用电子方式来存储重要档案中,对不同的加密解密密钥以一个主密钥(MasterKey)来加以保护,并交给单独一个系统管理员保管,操作上存在许多弊端。–将主密钥复制多份,交给多位系统管理员保管。–将主密钥打造成n份不同的子密钥(Shadow),交给n位系统管理员保管,一人一份,当所有管理员到齐后才能推导出主密钥。•秘密共享在实用密码学领域内是一个非常重要的工具,在理论密码学领域内也是研究成果非常丰富的。Clipper芯片的密钥管理用会话密钥加密用单位密钥加密消息消息Clipper芯片序列号数据库1、序列号与单位密钥对应2、消息中包含序列号信息3、从而可以获得会话密钥和信息本身5密码攻击•密码分析•中间人攻击•字典攻击•重放攻击•旁路攻击密码分析•仅密文攻击:密文片段•已知明文攻击:若干明文-密文对•选择明文攻击:任意明文-密文对•选择密文攻击:任意密文-明文对中间人攻击•公钥加密过程易发生中间人攻击•签名可以解决问题公钥信息公钥加密的信息字典攻击•建立HASH值列表+对比重放攻击•时间戳和序列号是解决的基本方法旁路攻击•基于CPU运行监控等外围措施进行攻击6小结•公钥理论和应用•认证基本方法和应用•密钥管理相关概念