基于公钥密码体制的数据加密
- 格式:doc
- 大小:58.50 KB
- 文档页数:6
公钥密码体制的研究与发展的基本理解Abstract:⽂中对于公钥密码体制的研究与发展进⾏了介绍,其中着重介绍了⼏个⽐较常⽤的公钥密码体制RSA,EIGamal Keywords: 公钥密码体制,RSA,离散对数问题1. 引⾔公钥密码体制⼜称公开密钥密码体系,公钥密码体制是现代密码学的最重要的发明和进展,在1976年,Whitfield Diffie和Martin Hellman发表了“New directions in cryptography”这篇划时代的⽂章奠定了公钥密码系统的基础。
在公钥密码体制之中,加密密匙和解密密匙是不⼀样的,⽆法通过加密密匙的反推得到解密密匙,所以加密密匙是可以公开的,并且不会危及密码体制的安全性。
因为对称密钥密码体制有⼀个缺点是必须要在Alice和Bob之间⾸先在传输密⽂之前使⽤⼀个安全信道交换密钥。
实际上,这是很难达到的,⽽公钥密码体制改善了这⼀点,Alice可以利⽤公钥加密规则发出⼀条加密的消息给Bob,Bob是唯⼀能够运⽤解密规则对其解密的⼈,例如保险箱的传递,只有接收的⼈知道密码并且能够打开。
【1】要在⾃从公钥密码的概念被提出以来,相继提出了许多公钥密码⽅案,如RSA、ElGamal、基于离散对数问题的公钥密码体制等[2]。
2. 预备知识公钥密码的理论基础,在公钥密码中,加密密钥和解密密钥是不⼀样的,加密密钥为公钥,解密密钥为私钥。
⼀个问题是难解的,直观上讲,就是不存在⼀个计算该问题的有效算法,也可称之为按照⽬前的计算能⼒,⽆法在⼀个相对的短时间内完成,即解决这个问题所付出的成本远远超过了解决之后得到的结果,计算应⼀个难解的问题所需要的时间⼀般是以输⼊数据长度的指数函数形式递增,所以随着输⼊数据的增多,复杂度会急剧的增⼤,对于⼀个问题,如果存在⼀个求其解的有效算法,则称其为有效问题,否则为⽆效问题。
在公钥密码机制之中,进⾏破译已经加密后的密码应该是⼀个难解问题。
简述公钥密码体制的一般定义
公钥密码体制是一种加密算法,其中加密密钥是公开的,而解密密钥是私有的。
这种算法通常用于保护敏感信息的隐私,例如加密电子邮件、数字签名等。
公钥密码体制的基本思想是将敏感信息 (明文) 经过加密算法处理后,生成加密密文,然后将加密密文公开发布,只有拥有解密密钥的人才能解密密文,获得明文。
公钥密码体制可以分为两大类:对称密钥密码体制和非对称密钥密码体制。
对称密钥密码体制使用相同的密钥进行加密和解密,其特点是速度快,加密和解密过程容易实现。
例如,常用的 AES 算法就是对称密钥密码体制的一种。
非对称密钥密码体制则使用不同的密钥进行加密和解密,其特点是加密和解密过程都需要消耗大量的计算资源。
例如,RSA 算法就是非对称密钥密码体制的一种。
公钥密码体制的安全性依赖于密钥的管理,如果密钥管理不当,可能会导致密钥泄露,进而影响加密体系的安全性。
因此,在设计和应用公钥密码体制时,需要考虑密钥管理的问题。
公钥密码体制有哪些特点
公钥密码体制具有以下特点:
1.保密强度高:公钥密码体制的理论基础是基于数论中大素数因数分解的难度问题。
当n大于2048位时,目前的算法无法在有效时间内破译RSA。
2.密钥分配及管理简便:在公钥密码体制中,加密密钥和解密密钥互异、分离。
加密
密钥可以公开,解密密钥则由用户秘密保存,这使得秘密保存的密钥量减少,从而使得密钥分配更加方便,便于密钥管理。
3.数字签名易实现:在公钥密码体制中,只有接收方利用自己的解密密钥对明文进行
签名,其他任何人可利用公开密钥对签名文进行验证,但无法伪造。
4.加解密速度快且安全强度高:公钥密码体制的加解密速度较快,且安全强度高,适
用于在网络中进行加密通信。
5.公钥和私钥产生容易:公钥密码体制中公钥和私钥的产生相对容易,不需要进行复
杂的数学运算或随机数生成。
6.适用于数字签名和身份认证:公钥密码体制可以用于数字签名和身份认证,确保数
据的完整性和来源可靠性。
7.支持一对多通信:公钥密码体制支持一对多通信模式,即一个发送方可以加密消息
并发送给多个接收方,每个接收方使用自己的私钥进行解密。
8.可实现加密和身份验证的双重功能:公钥密码体制可以同时实现加密和身份验证的
功能,确保数据在传输过程中不仅被加密,还能验证发送方的身份。
需要注意的是,虽然公钥密码体制具有以上优点,但仍需要采取额外的安全措施来保护私钥的安全性。
此外,不同的公钥密码体制具有不同的优缺点,在实际应用中应根据具体需求选择合适的加密算法。
基于公钥密码学的身份认证技术研究随着互联网的发展,网络安全问题变得越来越重要。
在这个高度互联且信息泛滥的时代,安全性是保持互联网生命力的最基本要求。
身份认证作为信息安全的核心问题之一,其重要性不言而喻。
当前,基于公钥密码学的身份认证技术得到了广泛的应用,本文将探究这种技术在实际应用中的效果和存在的问题。
一、公钥密码学的定义和基本原理公钥密码学是一种广泛应用于信息安全领域的密码学方法,它主要使用了非对称的加密算法。
与对称密钥算法不同,非对称密钥算法包含了一对密钥:公钥和私钥。
公钥与私钥在数学上是相关联的,且公钥可以被向所有人公开展示,而私钥则只有持有者自身知晓。
不同于对称密钥算法,公钥密码学主要运用公钥进行加密,私钥进行解密。
当需要进行加密时,用户使用接收方的公钥来加密数据,而接收方则使用自己的私钥来解密数据。
该过程可以保证数据的机密性以及数据的完整性,从而保证了身份的真实性。
二、公钥密码学在身份认证中的应用基于公钥密码学的身份认证技术主要使用了数字证书和数字签名两种技术。
数字证书是由第三方证书颁发机构(CA)签发的一种数字文件,其中包含了某个用户公钥的信息,同时也包括CA签发该证书的数字签名。
通过验证数字证书,可以确认证书持有者的身份。
数字签名是由私钥对被签名数据加密得到的一段数字,其主要作用是验证数据的完整性和真实性。
该过程中,接收方使用发送方的公钥进行签名的验证,确保数据未被篡改,同时也证明发送方的身份。
三、公钥密码学在身份认证中的优势和存在的问题公钥密码学相比对称密钥算法具有许多优势,其中最大的优势就是可以使得身份认证更为安全。
使用公钥密码学进行身份认证时,私钥只需要在用户端储存,能够有效的防止私钥信息泄露导致的安全问题。
同时,由于公钥可以公开向所有人展示,因此其通行性也有着很大的优势。
然而,公钥密码学在实际应用中仍然存在着一些问题。
其中最显著的问题就是数字证书的信任问题。
数字证书的双向认证需要依赖第三方CA机构进行签发和验证,若该机构出现问题,则会直接影响整个身份认证体系的可信度。
RSA算法简介概述RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。
RSA取名来自开发他们三者的名字。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
什么是RSARSA公开密钥密码体制。
所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK 是需要保密的。
加密算法E和解密算法D也都是公开的。
虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。
正是基于这种理论,1978年出现了著名的RSA 算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。
为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。
这就使加密的计算量很大。
为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA 对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。
对方收到信息后,用不同的密钥解密并可核对信息摘要。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
RSA是被研究得最广泛的公钥算法,从提出到现在的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
RSA深入解释此,模数n 必须选大一些,因具体适用情况而定。
RSA的速度由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。
什么是密码体制怎么组成的 密码体制是指能完整地解决信息安全中的机密性、数据完整性、认证、⾝份识别、可控性及不可抵赖性等问题中的⼀个或⼏个的⼀个系统。
那么你对密码体制了解多少呢?以下是由店铺整理关于什么是密码体制的内容,希望⼤家喜欢! 密码体制的定义 完成加密和解密的算法。
通常,数据的加密和解密过程是通过密码体制(cipher system) +密钥(keyword)来控制的。
密码体制必须易于使⽤,特别是应当可以在微型计算机使⽤。
密码体制的安全性依赖于密钥的安全性,现代密码学不追求加密算法的保密性,⽽是追求加密算法的完备,即:使攻击者在不知道密钥的情况下,没有办法从算法找到突破⼝。
密码体制的基本模式 通常的密码体制采⽤移位法、代替法和代数⽅法来进⾏加密和解密的变换,可以采⽤⼀种或⼏种⽅法结合的⽅式作为数据变换的基本模式,下⾯举例说明: 移位法也叫置换法。
移位法把明⽂中的字符重新排列,字符本⾝不变但其位置改变了。
例如最简单的例⼦:把⽂中的字母和字符倒过来写。
或将密⽂以固定长度来发送 5791ECNI SYLDIPAT DEVLOBES AHYTIRUC ESATAD** 密码体制的技术分类 密码体制分为私⽤密钥加密技术(对称加密)和公开密钥加密技术(⾮对称加密)。
1、对称密码体制 对称密码体制是⼀种传统密码体制,也称为私钥密码体制。
在对称加密系统中,加密和解密采⽤相同的密钥。
因为加解密密钥相同,需要通信的双⽅必须选择和保存他们共同的密钥,各⽅必须信任对⽅不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。
对于具有n个⽤户的⽹络,需要n(n-1)/2个密钥,在⽤户群不是很⼤的情况下,对称加密系统是有效的。
但是对于⼤型⽹络,当⽤户群很⼤,分布很⼴时,密钥的分配和保存就成了问题。
对机密信息进⾏加密和验证随报⽂⼀起发送报⽂摘要(或散列值)来实现。
⽐较典型的算法有DES(Data Encryption Standard数据加密标准)算法及其变形Triple DES(三重DES),GDES(⼴义DES);欧洲的IDEA;⽇本的FEAL N、RC5等。
基于公钥密码体制的数据加密 摘要:公开密钥算法的原理是加密密钥和解密密钥分离,可将加密密钥公之于众,谁都可以使用;而解密密钥只有解密人自己知道。任何人利用这个加密密钥和算法向该用户发送的加密信息,该用户均可以将之还原。公钥加密算法中使用最广的是RSA。RSA使用两个密钥,一个公共密钥,一个专用密钥。如用其中一个加密,则可用另一个解密。本文综述了公钥体系及其应用RSA算法,也讨论了相关的攻击手段。 关键字:公钥密码 加密技术 RSA
Abstrat:Public-key algorithm encryption and decryption key principle is key separation, but will encryption key in the
open, who can use; And decryption decryption key only themselves know. Any person to use the encryption key and to the user to send the algorithm of the encrypted information, the user can be will restore. Public key encryption algorithm used in the most extensive is RSA. RSA use two keys, a public key, a special key. If use one of the encryption, usable another decryption. This paper reviewed the application of RSA public key system and its algorithm, and also discussed the related attack means.
Key:Public key password Encryption technology RSA
1 公钥密码体系背景 通常信息安全的目标可以概括为解决信息的以下问题:保密性(Confidentiality)保证信息不泄露给未经授权的任何人;完整性(Integrity)防止信息被未经授权的人篡改;可用性(Availability)保证信息和信息系统确实为授权者所用;可控性(Controllability)对信息和信息系统实施安全监控,防止非法利用信息和信息系统。 密码是实现一种变换,利用密码变换保护信息秘密是密码的最原始的能力,然而,随着信息和信息技术发展起来的现代密码学,不仅被用于解决信息的保密性,而且也用于解决信息的完整性、可用性和可控性。可以说,密码是解决信息安全的最有效手段,密码技术是解决信息安全的核心技术。 公开密钥算法是在1976年由当时在美国斯坦福大学的迪菲(Diffie)和赫尔曼(Hellman)两人首先发明的(论文"New Direction in Cryptography"),思想不同于传统的对称密钥密码体制,它要求密钥成对出现,一个为加密密钥(e),另一个为解密密钥(d),且不可能从其中一个推导出另一个,其原理是加密密钥和解密密钥分离。在公钥体制中,加密密钥不同于解密密钥。人们将加密密钥公之于众,谁都可以使用;而解密密钥只有解密人自己知道。这样,一个具体用户就可以将自己设计的加密密钥和算法公诸于众,而只保密解密密钥。任何人利用这个加密密钥和算法向该用户发送的加密信息,该用户均可以将之还原。 自1976年以来,已经提出了多种公开密钥密码算法,其中许多是不安全的, 一些认为是安全的算法又有许多是不实用的,它们要么是密钥太大,要么密文扩展十分严重。多数密码算法的安全基础是基于一些数学难题, 这些难题专家们认为在短期内不可能得到解决。因为一些问题(如因子分解问题)至今已有数千年的历史了。 一般理解密码学(Cryptography)就是保护信息传递的机密性,而对信息发送与接收人的真实身份的验证、对所发出/接收信息在事后的不可抵赖以及保障数据的完整性是现代密码学主题的另一方面。公开密钥密码体制对这两方面的问题都给出了出色的解答,并正在继续产生许多新的思想和方案。 公用密钥的优点就在于,也许你并不认识某一实体,但只要你的服务器认为该实体的CA是可靠的,就可以进行安全通信,而这正是Web商务这样的业务所要求的。例如信用卡购物。服务方对自己的资源可根据客户CA的发行机构的可靠程度来授权。目前国内外尚没有可以被广泛信赖的CA。美国Natescape公司的产品支持公用密钥,但把Natescape公司作为CA。由外国公司充当CA在我国是一件不可想象的事情。 公共密钥方案较保密密钥方案处理速度慢,因此,通常把公共密钥与专用密钥技术结合起来实现最佳性能。即用公共密钥技术在通信双方之间传送专用密钥,而用专用密钥来对实际传输的数据加密解密。另外,公钥加密也用来对专用密钥进行加密。 在这些安全实用的算法中,有些适用于密钥分配,有些可作为加密算法,还有些仅用于数字签名。多数算法需要大数运算,所以实现速度很慢,不能用于快的数据加密。 早在1973年,英国国家通信总局的数学家Clifford Cocks就发现了类似的算法。但是他的发现被列为绝密,直到1998年才公诸于世。1978年提出公共密钥密码的具体实施方案,由MIT教授Ronald L.Rivest,Adi Shamir和Leonard M.Adleman共同开发的,分别取自三名数学家的名字的第一个字母来构成的,即RSA方案。迄今为止的所有公钥密码体系中,RSA系统是最著名、使用最广泛的一种。
2 公钥体系结构中的概念 在基于公钥体系的安全系统中,密钥是成对生成的,每对密钥由一个公钥和一个私钥组成。在实际应用中,私钥由拥有者自己保存,而公钥则需要公布于众。为了使基于公钥体系的业务(如电子商务等)能够广泛应用,一个基础性关键的问题就是公钥的分发与管理。 公钥本身并没有什么标记,仅从公钥本身不能判别公钥的主人是谁。 2.1 证书 互联网络的用户群决不是几个人互相信任的小集体,在这个用户群中,从法律角度讲用户彼此之间都不能轻易信任。所以公钥加密体系采取了另一个办法,将公钥和公钥的主人名字联系在一起,再请一个大家都信得过有信誉的公正、权威机构确认,并加上这个权威机构的签名。这就形成了证书。 由于证书上有权威机构的签字,所以大家都认为证书上的内容是可信任的;又由于证书上有主人的名字等身份信息,别人就很容易地知道公钥的主人是谁。
2.2 电子签证机关CA(Certificate Authority) 前面提及的权威机构就是电子签证机关(即CA)。CA也拥有一个证书(内含公钥),当然,它也有自己的私钥,所以它有签字的能力。网上的公众用户通过验证CA的签字从而信任CA,任何人都应该可以得到CA的证书(含公钥),用以验证它所签发的证书。 如果用户想得到一份属于自己的证书,他应先向CA提出申请。在CA判明申请者的身份后,便为他分配一个公钥,并且CA将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给那个用户(申请者)。 如果一个用户想鉴别另一个证书的真伪,他就用CA的公钥对那个证书上的签字进行验证(如前所述,CA签字实际上是经过CA私钥加密的信息,签字验证的过程还伴随使用CA公钥解密的过程),一旦验证通过,该证书就被认为是有效的。 CA除了签发证书之外,它的另一个重要作用是证书和密钥的管理。 由此可见,证书就是用户在网上的电子个人身份证,同日常生活中使用的个人身份证作用一样。CA相当于网上公安局,专门发放、验证身份证。
3 RSA公开密钥算法 公钥加密算法中使用最广的是RSA。RSA使用两个密钥,一个公共密钥,一个专用密钥。如用其中一个加密,则可用另一个解密,密钥长度从40到2048bit可变,加密时也把明文分成块,块的大小可变,但不能超过密钥的长度,RSA算法把每一块明文转化为与密钥长度相同的密文块。密钥越长,加密效果越好,但加密解密的开销也大,所以要在安全与性能之间折衷考虑,一般64位是较合适的。RSA的一个比较知名的应用是SSL,在美国和加拿大SSL用128位RSA算法,由于出口限制,在其它地区(包括中国)通用的则是40位版本。 RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题;还可利用RSA来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。目前为止,很多种加密技术采用了RSA算法,比如PGP(PrettyGoodPrivacy)加密系统,它是一个工具软件,向认证中心注册后就可以用它对文件进行加解密或数字签名,PGP所采用的就是RSA算法。由此可以看出RSA有很好的应用。
3.1 RSA数学基础 对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。尽管如此,只有一些RSA算法的变种被证明为其安全性依赖于因数分解。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。 RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 RSA的算法涉及三个参数,n、e1、e2。 其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。 e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。 (n及e1),(n及e2)就是密钥对。 RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n; e1和e2可以互换使用,即: A=B^e2 mod n;B=A^e1 mod n
3.2 RSA密钥生成 密钥生成首先要使用概率算法来验证随机产生的大的整数是否质数,这样的算法比较快而且可以消除掉大多数非质数。假如有一个数通过了这个测试的话,那么要使用一个精确的测试来保证它的确是一个质数。 除此之外这样找到的p和q还要满足一定的要求,首先它们不能太靠近,此外p-1或q-1的因子不能太小,否则的话N也可以被很快地分解。 此外寻找质数的算法不能给攻击者任何信息,这些质数是怎样找到的,尤其产生随机数的软件必须非常好。要求是随机和不可预测。这两个要求并不相同。一个随机过程可能可以产生一个不相关的数的系列,但假如有人能够预测出(或部分地预测出)这个系列的话,那么它就已经不可靠了。比如有一些非常好的随机数算法,但它们都已经被发表,因此它们不能被使用,因为假如一个攻击者可以猜出p和q一半的位的话,那么他们就已经可以轻而易举地推算出另一半。 此外密钥d必须足够大,1990年有人证明假如p大于q而小于2q(这是一个很经常的情况)而d < N1/4/3,那么从N和e可以很有效地推算出d。此外e = 2永远不应该被使用。 速度比起DES和其它对称算法来说,RSA要慢得多。实际上Bob一般使用一种对称算法来加密他的信息,然后用RSA来加密他的比较短的对称密码,然后将用RSA加密的对称密码和用对称