《信息安全导论》课件第10章 (2).ppt

上传人(卖家):momomo 文档编号:7924402 上传时间:2024-09-04 格式:PPT 页数:76 大小:827.50KB
下载 相关 举报
《信息安全导论》课件第10章 (2).ppt_第1页
第1页 / 共76页
《信息安全导论》课件第10章 (2).ppt_第2页
第2页 / 共76页
《信息安全导论》课件第10章 (2).ppt_第3页
第3页 / 共76页
《信息安全导论》课件第10章 (2).ppt_第4页
第4页 / 共76页
《信息安全导论》课件第10章 (2).ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

1、第十章 数字签名与消息认证讨论议题 数字签名数字签名的概念基本签名算法特殊签名算法研究动向一、数字签名的概念Digital signature Goal:Use the digital technique to emulate the“hand-written signature”Security requirements Unforgeability:one cannot create a signature that is claimed to be anothers Undeniability:the signer cannot later deny the validity of hi

2、s signatureRequirements The signature depends on the signer and the document to be signed.Easy to compute:it is easy for a signer to sign a document Universal verifiability:every one can verify validity of a signature(with respect to the signer and the document)Easy to store:the signature should be

3、short enough Attacks on digital signature Attack type Key-only attack (ciphertext-only)Known-message attack (known-plaintext)Chosen-message attack (chosen-plaintext)Forgery tye Existential forgery Selective forgeryMessageSign FunctionVerification FunctionSigners secret keyMessageSignatureSigners pub

4、lic keyMessageCheck Message=?MessageThe Model of Digital Signature Digital signature:usage Off-line:Signing a document for emulating the hand-written signature On-line:identity authentication(+session key distribution)BobAlicechallenge cr=Sig(KRBob,c)If Ver(KUBob,r,c)=truethen accept that“Bob is tal

5、king to me”What security service can digital signature provide?Data Integrity Authentication Non-forgeability Non-repudiation 签名的一个重要应用签名的一个重要应用证书认证中心证书认证中心(CA)第三方信任的模型第三方信任的模型Fig.信任的层次结构信任的层次结构公正的被信任者公正的被信任者经认定可以经认定可以被信任的中被信任的中间角色间角色用户群用户群A B网络空间的信任建立问题是信息安全讨论的核心问题,网络空间的信任建立方法很大程度上借鉴了传统生活中建立信任的方法。正

6、如手写签名在传统生活中的重要作用一样,数字签名是网络空间中建立信任的一块基石。结论China Digital Signature Law have become effective April 1 2005 China Digital Signature Law has become effective Digital Signature Law is an Infrastructure of E-COMSupply ChainOnline PaymentTrading PlatformInformation Exchange PlatformCredit SystemDigital Sign

7、ature Law is Infrastructure二、基本签名算法Fundamental schemes Signature schemes based on error-correcting codes Signature schemes based on two hard problems Signature schemes based on elliptic curves Algorithm foundationqTwo Famous Digital Signature Schemes 1.RSA Digital signature scheme(based on the facto

8、rization problem)2.ElGamal digital signature and Meta-ElGamal signature schemes(based on the discrete logarithm)RSA Digital Signature (R.L.Rivest,A.Shamir,and L.M.Adleman,1978)ElGamal Digital Signature (T.ElGamal,1985)Schnorrs Digital Signature (C.P.Schnorr,1989)DSS (NIST,1991)RSA Public Key Cryptos

9、ystem and Digital Signature Schemeq Rivest,Shamir,and Adleman proposed in 1978q RSA Public Key Cryptosystem Security Basis:Factorization Problem.Construction:1.Choose two large prime numbers P and Q,then compute N=PQ.2.Select an integer e such that gcd(e,(N)=1.3.Compute d such that ed mod(N)=1.4.Pub

10、lic key=(N,e).5.Private key=(P,Q,d).RSA Public Key Cryptosystem and Digital Signature Schemeq RSA Digital Signature Scheme v Sign Function:Signature S=Md mod N.v Verification Function:M=Se mod N.q Example1.P=11,Q=13,N=143,and(143)=120.2.e=103,then d=7(for 1037 mod 120=1).3.Sign for M=3:S=37 mod 143=

11、42.4.Verification:M=Se mod N=42103 mod 143=3.ElGamal Public Key Cryptosystem and Digital Signature Schemeq ElGamal proposed in 1985q ElGamal Public Key Cryptosystem Security Basis:Discrete Logarithm Problem 1.If P is a large prime and g and y are integers,find x such that y=gx mod P.2.The security r

12、estriction on P:P-1 must contain a large prime factor Q.Construction:1.Choose a large prime number P and a generator g of GF(P).2.Private key:a random integer x between 1 and P-1.3.Public key:y=gx mod P.ElGamal Public Key Cryptosystem and Digital Signature Schemev Sign Function:Signature(r,s)for mes

13、sage M.1.Select a random integer k between 1 and P-1 such that gcd(k,P-1)=1.2.Compute r=gk mod P.3.Compute s=k-1(M-xr)mod(P-1).vVerification Function:1.Verify by checking whether gM mod P=(rs)(yr)mod P.(rs)(yr)=g(M-xr)gxr=g(M-xr)+xr=gM mod P.ElGamal Public Key Cryptosystem and Digital Signature Sche

14、meq Example1.P=23,g=5.2.x=3,then y=10(for 53 mod 23=10).3.Sign for the message M=8.4.Select k=5 between 1 and 22(P-1).5.Compute r=gk mod P=55 mod 23=20.6.Compute s=k-1(M-xr)mod(P-1)=5-1(8-320)mod 22=914 mod 22=16.7.Verification:gM=58 mod 23=16 (rs)(yr)mod P=2016 1020 mod 23=133 mod 23=16.Schnorrs Di

15、gital Signature Schemev Sign Function:Signature(r,s)for message M.1.Select a random integer k between 1 and P-1.2.Compute r=h(M,gk mod P).3.Compute s=k+x*r mod(P-1).,where the secret key x the public key y=g-x mod P4.Send(M,r,s)to the receiver.vVerification Function:1.Compute gk mod P=gsyr mod P.2.V

16、erify by checking whether r=h(M,gk mod P).Digital Signature Standard(DSS)Proposed in 1991 by NIST as FIPS186-2Signature:r=(gk mod p)mod qs=k-1(H(m)+xr)mod qVerificationt=s-1 mod qr=(gH(m)t yrt mod p)mod qIf r=r,(r,s)is legal.p:512 bits prime numberq:160 bits prime number and q|(p-1)g:g=h(p-1)/q mod

17、p,h(any integer)p-1H:one way hash functionx:private key qy:y=gx mod p(corresponding public key)k-1k=1 mod q,(r,s)is the signature of m.三、特殊签名算法 1.Schemes with message recovery:Signatures with message recovery Authenticated encryption schemes Authenticated encryption scheme with message linkages Auth

18、enticated encryption scheme with(t,n)shared verification Digital Signature with Message Recovery建立在ElGamal架构上,其特点是验证的结果即为文件本身。2.Schemes with signer-aided verification:Undeniable signature Confirmer signatures Convertible undeniable signatures Group-oriented undeniable signature Undeniable Signature

19、验证时,需由验证者与签名者合作才可证明其正确性,此法可指定接收者,签名者可确定接收者是谁。Convertible Undeniable Signature 可由签名者把Undeniable Signature转换成一般的数字签名。Confirmer Signature 与不可否认的数字签名目的相同,不同的是验证者须与指定的确认者合作。3.Schemes for multi-user:Multi-signatures Multi-signature scheme with distinguished signing authorities Threshold signatures(Group-o

20、riented signature)Threshold signature scheme with traceable signer Multi-Signature 一份签名需由群体同意才能产生,其特征有 只有群体內的成员才能签署文件 接收者可验证签名对群体的有效性 接收者无法确定哪些成员为签名者 遇争议时,可公布签名者名单 多重签名的方式可分为两类 平行式 串联式需一位公证人 Digital Signature with(t,n)Shared Verification 一个签名需由多位验证者合作才能验证其正确性,亦即n个验证者中,至少要t个验证者的合作.4.E-cash and e-Voti

21、ng scheme:Blind signature Blind threshold signature Partially blind signature Partially Blind threshold signature Fair blind signature Blind Signature=Digital Signature+Encryption Unforgeability and Unlinkability Applications Untraceable Electronic Cash Anonymous Electronic Voting Partially blind si

22、gnatures can reduce the storage Fair blind signatures can deal with the misuse of unlinkabilityblind signatureBlind Signature 签名者不知道文件內容 签名者无法追踪文件与盲签名的相互关系。(x,f(x)为private key与public key S(x,m)为文件m的签名 B(m,r)为blind document,r为blind factor U(s,r)为urn-blind signature,r为blind factorBlind Signature的流程1 A

23、传送blind document B(m,r)给B2 B用private key x对B(m,r)做签名,将S(x,B(m,r)传给A3 A验证S(x,B(m,r),再计算U(S(x,B(m,r),r)得到最后的签名S(x,m)Blind Signatureq D.Chaum proposed in 1983q D.Chaums Blind Signature Scheme It uses the RSA algorithm.Security Basis:Factorization Problem Construction:Bob has a public key,e,a private ke

24、y,d,and a public modulus,N.Alice wants Bob to sign message M blindly.1.Alice chooses a random integer k between 1 and N.Then she blinds M by computing t=Mke mod N.2.Bob signs t,td=(Mke)d mod N.3.Alice unblinds td by computing s=td/k mod N=Md mod N.s is the signature of message M.Blind SignaturePrope

25、rty:Untraceable Applications:can be used in electronic cash system.MerchantConsumerBank-signs coins-database Coin:(SN,s)1.t=SNke mod N SN:Serial#k:random number2.t3.td mod N4.s=(td)/k mod N=SNd mod N5.Coin6.Verify the signature s7.Coin盲签名的种类 门限盲签名 应用门限思想,多单位签署 局部盲签名 签名者在签名中加入一些信息c,如时戳,而c是不可伪造的 签名者产生

26、S(x,c,B(m,r)欲得签名者计算得最后的签名S(x,c,m)公平盲签名 加入一个公证人负责追踪有问题的签名 Proxy signature:Proxy-protected Proxy signature Threshold proxy signature Group signature5 Other signature代理签名 代理签名(Proxy Signature)满足下列特性 可区别性 不可伪造 不可否认 Atomic Proxy Signature 利用私钥转换技巧 签名者在签名后授权,只要将私钥转换成代理人的private key即可 Group Signature 群体中的一

27、位成员产生一个可代表群体的签名,验证者无法得知签名者的身份 Group Oriented Signature 观念同Group Signature,但不用每个成员同意,只需超过一定門槛即可 也称为散列函数,它将任意长度的报文映射为固定长度的输出(摘要),另外该函数除满足单向性外,还应具备下列两项条件之一:(1)抗弱碰撞性(2)抗强碰撞性10.2 Hash函数10.2 Hash 函数 MD-5和SHA-1算法都已经被攻破,中国密码学者王小云在这方面做出了很优秀的研究成果。开发人员应该使用更为安全的SHA-2(SHA-256、SHA-512)算法,研究人员目前已经开始讨论设计更安全的新Hash函数

28、SHA-3,2011年筛选出了BLAKE、Grstl、JH、Keccak和 Skein等5个最终候选算法,2012年10月由比利时和意大利密码学家联合设计的Keccak算法胜出。Hash函数的安全性 消息认证是指验证者验证所接收到的消息是否确实来自真正的发送方、并且消息在传送中没被修改的过程。消息认证是抗击伪装、内容篡改、序号篡改、计时篡改和信源抵赖的有效方法。10.3 消息认证 加密技术可用来实现消息认证 数字签名也可用来实现消息认证 消息认证更为简单的实现方法是利用消息认证码 10.3 消息认证的实现方法 消息认证码(MAC)也称密码校验和,是指消息被一密钥控制的公开单向函数作用后、产生的

29、固定长度的数值,即MAC=CK(M)。10.3 消息认证码10.3 消息认证码的构造10.4 C#中密码类的使用 在.NET Framework出现之前,如果我们需要进行加密的话,我们只有各种较底层的技术可以选择,如 Microsoft Crypto API等等,其用法相当复杂。在.NET Framework中,这些复杂内容已经被封装在各个.NET 框架类中,并且由一个System.Security.Cryptography命名空间包含这些与加密、签名相关的类。利用这些类,我们就可以很方便地使用各种广泛 使用的算法,包括RSA,DSA,Rijndael,SHA和其他Hash算法等等。Syste

30、m.Security.Cryptography命名空间的核心加密类分为3层1、第一层是一组抽象类,它们表示加密算法的类型,用于完成特定的加密任务。其中包括:AsymmetricAlgorigh,SymmetricAlgorigh,HashAlgorith。2、第二层表示特定加密算法的类,也属于抽象类。比如DES,RC2,Rijndael,TripleDES,DSA,RSA,MD5,SHA1,SHA256等等。3、第三层类是一组加密实现方案。比如DESCryptoServiceProvider,RC2CryptoServiceProvider,RijndaelManaged,DSACryptoS

31、erviceProvider,RSACryptoServiceProvider,MD5CryptoServiceProvider,SHA256Managed等等。Hash 算法 .NET Framework提供了以下类来实现Hash算法:HMACSHA1 MACTripleDES MD5CryptoServiceProvider SHA1Managed SHA256Managed SHA384Managed SHA512Managed 常用属性:Hash 获取计算所得的哈希代码的值。HashSize 获取计算所得的哈希代码的大小(以位为单位)。InputBlockSize 当在派生类中重写时,

32、获取输入块的大小。OutputBlockSize 当在派生类中重写时,获取输出块的大小。常用方法:Clear 释放由 HashAlgorithm 占用的所有资源。ComputeHash 已重载。计算输入数据的哈希值。Create 已重载。创建 HashAlgorithm 的实现的实例。/对数组进行散列 using System;using System.Security.Cryptography;public class HashTest static void Main(string args)HashAlgorithm hash=HashAlgorithm.Create();Console

33、.Write(Hash size:);Console.Write(hash.HashSize.ToString()+bits);Console.WriteLine();byte data=200,34,12,14,210,199,172,77,88,99;byte hashBytes=hash.ComputeHash(data);Console.Write(Hash:+BitConverter.ToString(hashBytes);Console.Read();下述语句缺省是SHA1类的实例,生成的是160位的散列码 HashAlgorithm hash=HashAlgorithm.Crea

34、te();下述语句生成SHA256类的实例:HashAlgorithm hash=HashAlgorithm.Create(SHA256);上述语句生成SHA256类的实例。或者也可写成 SHA256Managed hash=new SHA256Managed();/对文件进行散列using System;using System.IO;using System.Security.Cryptography;class HashStreamstatic void Main(string args)HashAlgorithm hash=HashAlgorithm.Create();Console.

35、WriteLine(Enter a File Name:);string fileName=Console.ReadLine();FileStream fs=new FileStream(fileName,FileMode.Open);byte hashBytes=hash.ComputeHash(fs);fs.Close();/display the hash dataConsole.Write(Hash:+BitConverter.ToString(hashBytes);Console.Read();对称加密算法 对称算法使用相同的密钥来加密和解密数据。对 称密钥密码算法所用的加密密钥和解

36、密密钥通常是相同的,即使不同也可以很容易地由其中 的任意一个推导出另一个。在此算法中,加、解密双方所用的密钥都要保守秘密。由于计算速度快,对称加密算法被广泛应用于大量数据,如文件的加密过程中。使用分组密码算法数字签名常用的加密标准有:DES,TriplDES,RC2,RC4,CAST等。.NET Framework提供了以下类来实现对称加密算法:DESCryptoServiceProvider RC2CryptoServiceProvider RijndaelManaged TripleDESCryptoServiceProvider 对称加密算法 常用属性 BlockSize 获取或设置加密

37、操作的块大小(以位为单位)。IV 获取或设置对称算法的初始化向量(IV)。Key 获取或设置对称算法的机密密钥。KeySize 获取或设置对称算法使用的机密密钥的大小(以位为单位)。LegalBlockSizes 获取对称算法支持的块大小。LegalKeySizes 获取对称算法支持的密钥大小。Mode 获取或设置对称算法的运算模式。Padding 获取或设置对称算法中使用的填充模式。对称加密算法 常用方法 Clear 释放由 SymmetricAlgorithm 占用的所有资源。Create 已重载。创建用于执行对称算法的加密对象的实例。CreateDecryptor 已重载。创建对称解密器

38、对象。CreateEncryptor 已重载。创建对称加密器对象。GenerateIV 当在派生类中重写时,生成要用于此算法的随机初始化向量(IV)。GenerateKey 当在派生类中重写时,生成用于此算法的随机 Key。ValidKeySize 确定指定的密钥大小对当前算法是否有效。using System;using System.Security.Cryptography;class EncryptionDefaults static void Main(string args)Rijndael crypt=Rijndael.Create();Console.WriteLine(Key

39、:0,BitConverter.ToString(crypt.Key);Console.WriteLine(Key:0,BitConverter.ToString(crypt.IV);ICryptoTransform接口 对称加密与解密算法要使用ICryptoTransform接口 ICryptoTransform接口由可以执行块加密的类实现。比如以下块加密与块解密的实现。DES crypt=SymmetricAlgorithm.Create(“DES”);ICryptoTransform transform=crypt.CreateEncryptor();DES crypt=Symmetri

40、cAlgorithm.Create(“DES”);ICryptoTransform transform=crypt.CreateDecryptor();CryptoStream 类 CryptoStream类通常被使用来读写数据同时也在读或者写的时候加密或者解密数据。DES crypt=SymmetricAlgorithm.Create(“DES”);ICryptoTransform transform=crypt.CreateEncryptor();CryptoStream mStream=new CryptoStream(fileStream,transform,CryptoStramMo

41、de.Read);fileStream是请求从硬盘或者内存中读取数据的原始文件的流(或者是MemoryStream)。现在通过使用mStream对象和StreamReader/StreamWriter对象读写数据。当你将要读写时,你的加密解密信息将依赖IcryptoTransform对象。CryptoStream类 读模式:数据源底层数据流缓冲区ICrypto Transform缓冲区应用程序 写模式:数据源底层数据流缓冲区ICrypto Transform缓冲区应用程序 不能创建既可读也可写的CryptoStream。例子:RijndaelManaged rij=new RijndaelMa

42、naged();private Byte key=0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1;private Byte iv=0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1,0 x1;crypt.Key=key;crypt

43、.IV=iv;tryICryptoTransform transform=crypt.CreateEncryptor();MemoryStream s=new MemoryStream();CryptoStream cs=new CryptoStream(s,transform,CryptoStreamMode.Write);byte byteIn=System.Text.UTF8Encoding.UTF8.GetBytes(txt.Text);cs.Write(byteIn,0,byteIn.Length);cs.FlushFinalBlock();s.Close();byte byteOu

44、t=s.ToArray();txt.Text=Convert.ToBase64String(byteOut);catchtxt.Text=Encryption Failed;crypt.Key=key;crypt.IV=iv;tryICryptoTransform transform=crypt.CreateDecryptor();byte byteIn=Convert.FromBase64String(txt.Text);MemoryStream s=new MemoryStream(byteIn,0,byteIn.Length);CryptoStream cs=new CryptoStre

45、am(s,transform,CryptoStreamMode.Read);StreamReader r=new StreamReader(cs);txt.Text=r.ReadToEnd();catchtxt.Text=Decryption Failed.;公钥加密算法(非对称密钥密码算法)公共钥匙加密算法又称为非对称密钥密码算法。它使用到两个密钥:公开密钥和私有密钥,分别用于对数据的加密和解密,即如果用公开密钥对数据进行加密,只有用对应的私有密钥 才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。使用公钥密码算法进行数字签名通用的加密标准有:RSA,DSA等。.N

46、ET Framework提供了以下类来实现公共钥匙加密算法(非对称加密算法):DSACryptoServiceProvider RSACryptoServiceProvider RSAParameters 结构 RSAParameters 结构可以设置和保存公钥算法的参数 RSAParameters 结构包含了D、DP、DQ、Exponent、InverseQ、Modulus、P、Q八个字段。加密时仅需要Exponent和Modulus两个值,可看成公钥。解密时所有字段都需要,可看成私钥。RSACryptoServiceProvider rsa=new RSACryptoServiceProv

47、ider();RSAParameters rsaParamsExcludePrivate=rsa.ExportParameters(false);RSAParameters rsaParamsIncludePrivate=rsa.ExportParameters(true);/RSACryptoServiceProvider类的ExportParameters(bool)方法用于导出RSA参数,true表示导出上述八个字段的“私钥”,false表示导出“公钥”。例子:byte PublicKey=214,46,220,83,160,73,40,39,201,155,19,202,3,11,19

48、1,178,56,74,90,36,248,103,18,144,170,163,145,87,54,61,34,220,222,207,137,149,173,14,92,120,206,222,158,28,40,24,30,16,175,08,128,35,230,118,40,121,113,125,216,130,11,24,90,48,194,40,105,44,76,34,57,249,228,125,80,38,9,136,29,117,207,139,168,181,85,137,126,10,126,242,120,247,121,8,100,12,201,171,38,2

49、26,193,180,190,117,177,87,143,242,213,11,44,180,113,93,106,99,179,68,175,211,164,116,64,148,226,254,172,147;byte Exponent=1,0,1;byte EncryptedSymmetricKey;byte EncryptedSymmetricIV;RSACryptoServiceProvider RSA=new RSACryptoServiceProvider();RSAParameters RSAKeyInfo=new RSAParameters();RSAKeyInfo.Mod

50、ulus=PublicKey;RSAKeyInfo.Exponent=Exponent;RSA.ImportParameters(RSAKeyInfo);RijndaelManaged RM=new RijndaelManaged();EncryptedSymmetricKey=RSA.Encrypt(RM.Key,false);EncryptedSymmetricIV=RSA.Encrypt(RM.IV,false);Console.WriteLine(RijndaelManaged Key and IV have been encrypted with RSACryptoServicePr

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《信息安全导论》课件第10章 (2).ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|