加密解密MD5SHA等.docx
《加密解密MD5SHA等.docx》由会员分享,可在线阅读,更多相关《加密解密MD5SHA等.docx(16页珍藏版)》请在冰豆网上搜索。
加密解密MD5SHA等
密码技术是解决信息网络安全的关键技术,信息网络安全中的身份认证,传输和存储信息的加密保护、信息完整
现代的电脑加密技术就是适应了网络安全的需要应运产生的,它为进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。
因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。
1.2数字签名
密码技术除了提供信息的加密解密外,还提供对信息来源的鉴别、保证信息的完整和不可否认等功能,而这三种功能都是通过数字签名实现。
数字签名是涉及签名信息和签名人私匙的计算结果。
首先,签名人的软件对发送信息进行散列函数运算后,生成信息摘要(messagedigest)--这段信息所特有的长度固定的信息表示,然后,软件使用签名人的私匙对摘要进行解密,将结果连同信息和签名人的数字证书一同传送给预定的接收者。
而接收者的软件会对收到的信息生成信息摘要(使用同样的散列函数),并使用签名人的公匙对签名人生成的摘要进行解密。
接收者的软件也可以加以配置,验证签名人证书的真伪,确保证书是由可信赖的CA颁发,而且没有被CA吊销。
如两个摘要一样,就表明接收者成功核实了数字签名。
2加密体制及比较
根据密钥类型不同将现代密码技术分为两类:
一类是对称加密(秘密钥匙加密)系统,另一类是公开密钥加密(非对称加密)系统。
2.1对称密码加密系统
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,保持钥匙的秘密。
对称密码系统的安全性依赖于以下两个因素。
第一,加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的;第二,加密方法的安全性依赖于密钥的秘密性,而不是算法的秘密性。
因为算法不需要保密,所以制造商可以开发出低成本的芯片以实现数据加密。
这些芯片有着广泛的应用,适合于大规模生产。
对称加密系统最大的问题是密钥的分发和管理非常复杂、代价高昂。
比如对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。
但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了大问题。
对称加密算法另一个缺点是不能实现数字签名。
对称加密系统最著名的是美国数据加密标准DES、AES(高级加密标准)和欧洲数据加密标准IDEA。
1977年美国国家标准局正式公布实施了美国的数据加密标准DES,公开它的加密算法,并批准用于非机密单位和商业上的保密通信。
DES成为全世界使用最广泛的加密标准。
但是,经过20多年的使用,已经发现DES很多不足之处,对DES的破解方法也日趋有效。
AES将会替代DES成为新一代加密标准。
DES具有这样的特性,其解密算法与加密算法相同,除了密钥Key的施加顺序相反以外。
2.2公钥密码加密系统
公开密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。
由于加密钥匙是公开的,密钥的分配和管理就很简单,比如对于具有n个用户的网络,仅需要2n个密钥。
公开密钥加密系统还能够很容易地实现数字签名。
因此,最适合于电子商务应用需要。
在实际应用中,公开密钥加密系统并没有完全取代对称密钥加密系统,这是因为公开密钥加密系统是基于尖端的数学难题,计算非常复杂,它的安全性更高,但它实现速度却远赶不上对称密钥加密系统。
在实际应用中可利用二者的各自优点,采用对称加密系统加密文件,采用公开密钥加密系统加密″加密文件″的密钥(会话密钥),这就是混合加密系统,它较好地解决了运算速度问题和密钥分配管理问题。
根据所基于的数学难题来分类,有以下三类系统目前被认为是安全和有效的:
大整数因子分解系统(代表性的有RSA)、椭圆曲线离散对数系统(ECC)和离散对数系统(代表性的有DSA)。
当前最著名、应用最广泛的公钥系统RSA是由Rivet、Shamir、Adelman提出的(简称为RSA系统),它加密算法使用了两个非常大的素数来产生公钥和私钥。
现实中加密算法都基于RSA加密算法。
pgp算法(以及大多数基于RSA算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。
这个对称算法的密钥是随机产生的,是保密的,因此,得到这个密钥的唯一方法就是使用私钥来解密。
RSA方法的优点主要在于原理简单,易于使用。
随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展(可以使用成千上万台机器同时进行大整数分解),作为RSA加解密安全保障的大整数要求越来越大。
为了保证RSA使用的安全性,其密钥的位数一直在增加,比如,目前一般认为RSA需要1024位以上的字长才有安全保障。
但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,这对使用RSA的应用带来了很重的负担,对进行大量安全交易的电子商务更是如此,从而使得其应用范围越来越受到制约。
DSA(Data Signature Algorithm)是基于离散对数问题的数字签名标准,它仅提供数字签名,不提供数据加密功能。
它也是一个″非确定性的″数字签名算法,对于一个报文M,它的签名依赖于随机数r?
熏这样,相同的报文就可能会具有不同的签名。
另外,在使用相同的模数时,DSA比RSA更慢(两者产生签名的速度相同,但验证签名时DSA比RSA慢10到40倍)。
2.3椭圆曲线加密算法ECC技术优势
安全性更高、算法实现性能更好的公钥系统椭圆曲线加密算法ECC(Elliptic Curve Cryptography)基于离散对数的计算困难性。
椭圆曲线加密方法与RSA方法相比,有以下优点:
(1)安全性能更高
ECC和其他几种公钥系统相比,其抗攻击性具有绝对的优势。
(2)计算量小,处理速度快
私钥的处理速度上(解密和签名),ECC远比RSA、DSA快得多。
ECC总的速度比RSA、DSA要快得多。
(3)存储空间占用小
ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存储空间要小得多。
这对于加密算法在IC卡上的应用具有特别重要的意义。
(4)带宽要求低
当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。
而公钥加密系统多用于短消息,例如用于数字签名和用于对称系统的会话密钥传递。
带宽要求低使ECC在无线网络领域具有广泛的应用前景。
ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法。
为满足一致性安全要求,多种多样的密码协议应运而生;量子密码,混沌理论等新形态密码引放关注也取得了重要进展。
3总 结
密码技术并不能解决所有的网络安全问题,密码技术要与信息安全的其它技术如访问控制技术、网络监控技术等互相融合,互相渗透,互相结合,形成综合的信息网络安全保障。
解决信息网络安全仅依靠技术是不够的,要结合管理、法制、政策、教育等手段,来化解信息网络风险。
PGP和S/MIME邮件加密专用协议
PGP和S/MIME这两种协议对一般用户来说,在使用上几乎没有什么差别。
但是事实上它们是完全不同的,主要体现在格式上,这就有点像GIF和JPEG两种图形文件,对用户来说,查看图片是没有区别,但它们是两种完全不一样的文件。
这也就意味着,由于格式的不同,一个使用PGP的用户不能与另一个使用S/MIME的用户通讯,且他们也不能共享证书。
PGP/MIME和OpenPGP
PGP最早出现在1990年,是一种长期在学术圈和技术圈内得到广泛使用的安全邮件标准。
其特点是通过单向散列算法对邮件内容进行签名,保证信件内容无法修改,使用公钥和私钥技术保证邮件内容保密且不可否认。
发信人与收信人的公钥发布在公开的地方,如FTP站点。
公钥本身的权威性由第三方,特别是收信人所熟悉或信任的第三方进行签名认证,但它没有统一的集中的机构进行公钥/私钥的签发。
即在PGP系统中,更多的信任是来自于通信的双方。
s/mimev3和openpgp的对比
主要特征s/mimev3openpgp
信息通信的格式基于cms的二进制格式基于早期pgp的二进制格式
身份认证的格式基于x.509v3的二进制格式基于早期pgp的二进制格式(只用于身份验证)
机密算法tripledes(desede3cbc)tripledes(desede3eccentriccfb)
数字签名diffie-hellman(x9.42)withdsselgamalwithdss(只用于数字签名)
哈希算法sha-1sha-1
PGP/MIME和OpenPGP都是基于PGP的,已经得到许多重要的邮箱提供商支持,PGP的通信和认证的格式是随机生成的、使用简单的二进制代码。
PGP的主要提供商是美国NAI的子公司PGP,在中国,由于PGP的加密超过128位,受到美国出口限制,所以商用的比较少。
S/MIME
S/MIME是一个新协议,最初版本来源于私有的商业社团RSA数据安全公司。
S/MIMEV2版本已经广泛地使用在安全电子邮件上。
但是它并不是IETF的标准。
因为它需要使用RSA的密钥交换,这就受限于美国RSA数据安全公司的专利(不过,2001年12月该专利到期)。
S/MIME是从PEM(PrivacyEnhancedMail)和MIME(Internet邮件的附件标准)发展而来的。
同PGP一样,S/MIME也利用单向散列算法和公钥与私钥的加密体系。
但它与PGP主要有两点不同:
它的认证机制依赖于层次结构的证书认证机构,所有下一级的组织和个人的证书由上一级的组织负责认证,而最上一级的组织(根证书)之间相互认证,整个信任关系基本是树状的,这就是所谓的TreeofTrust。
还有,S/MIME将信件内容加密签名后作为特殊的附件传送,它的证书格式采用X.509,但与一般浏览器网上使用的SSL证书有一定差异。
国内众多的认证机构基本都提供一种叫“安全电子邮件证书”的服务,其技术对应的就是S/MIME技术,平台使用的基本上是美国Versign的。
主要提供商有北京的天威诚信()和TrustAsia上海(),它们一个是Versign的中国区合作伙伴,一个是Versign亚太区分支机构。
在常规密码中,收信方和发信方使用相同的密钥,即加密密钥和解密密钥是相同或等价的。
比较著名的常规密码算法有:
美国的DES及其各种变形,比如TripleDES、GDES、NewDES和DES的前身Lucifer;欧洲的IDEA;日本的FEALN、LOKI91、Skipjack、RC4、RC5以及以代换密码和转轮密码为代表的古典密码等。
在众多的常规密码中影响最大的是DES密码。
常规密码的优点是有很强的保密强度,且经受住时间的检验和攻击,但其密钥必须通过安全的途径传送。
因此,其密钥管理成为系统安全的重要因素。
在公钥密码中,收信方和发信方使用的密钥互不相同,而且几乎不可能从加密密钥推导解密密钥。
比较著名的公钥密码算法有:
RSA、背包密码、McEliece密码、DiffeHellman、Rabin、OngFiatShamir、零知识证明的算法、椭圆曲线、EIGamal算法等等。
最有影响的公钥密码算法是RSA,它能抵抗到目前为止已知的所有密码攻击。
公钥密码的优点是可以适应网络的开放性要求,且密钥管理问题也较为简单,尤其可方便的实现数字签名和验证。
但其算法复杂,加密数据的速率较低。
尽管如此,随着现代电子技术和密码技术的发展,公钥密码算法将是一种很有前途的网络安全加密体制。
当然在实际应用中人们通常将常规密码和公钥密码结合在一起使用,比如:
利用DES或者IDEA来加密信息,而采用RSA来传递会话密钥。
如果按照每次加密所处理的比特来分类,可以将加密算法分为序列密码和分组密码。
前者每次只加密一个比特而后者则先将信息序列分组,每次处理一个组。
一般的数据加密可以在通信的三个层次来实现:
链路加密、节点加密和端到端加密。
链路加密
对于在两个网络节点间的某一次通信链路,链路加密能为网上传输的数据提供安全保证。
对于链路加密(又称在线加密),所有消息在被传输之前进行加密,在每一个节点对接收到的消息进行解密,然后先使用下一个链路的密钥对消息进行加密,再进行传输。
在到达目的地之前,一条消息可能要经过许多通信链路的传输。
由于在每一个中间传输节点消息均被解密后重新进行加密,因此,包括路由信息在内的链路上的所有数据均以密文形式出现。
这样,链路加密就掩盖了被传输消息的源点与终点。
由于填充技术的使用以及填充字符在不需要传输数据的情况下就可以进行加密,这使得消息的频率和长度特性得以掩盖,从而可以防止对通信业务进行分析。
尽管链路加密在计算机网络环境中使用得相当普遍,但它并非没有问题。
链路加密通常用在点对点的同步或异步线路上,它要求先对在链路两端的加密设备进行同步,然后使用一种链模式对链路上传输的数据进行加密。
这就给网络的性能和可管理性带来了副作用。
在线路/信号经常不通的海外或卫星网络中,链路上的加密设备需要频繁地进行同步,带来的后果是数据丢失或重传。
另一方面,即使仅一小部分数据需要进行加密,也会使得所有传输数据被加密。
在一个网络节点,链路加密仅在通信链路上提供安全性,消息以明文形式存在,因此所有节点在物理上必须是安全的,否则就会泄漏明文内容。
然而保证每一个节点的安全性需要较高的费用,为每一个节点提供加密硬件设备和一个安全的物理环境所需要的费用由以下几部分组成:
保护节点物理安全的雇员开销,为确保安全策略和程序的正确执行而进行审计时的费用,以及为防止安全性被破坏时带来损失而参加保险的费用。
在传统的加密算法中,用于解密消息的密钥与用于加密的密钥是相同的,该密钥必须被秘密保存,并按一定规则进行变化。
这样,密钥分配在链路加密系统中就成了一个问题,因为每一个节点必须存储与其相连接的所有链路的加密密钥,这就需要对密钥进行物理传送或者建立专用网络设施。
而网络节点地理分布的广阔性使得这一过程变得复杂,同时增加了密钥连续分配时的费用。
节点加密
尽管节点加密能给网络数据提供较高的安全性,但它在操作方式上与链路加密是类似的:
两者均在通信链路上为传输的消息提供安全性;都在中间节点先对消息进行解密,然后进行加密。
因为要对所有传输的数据进行加密,所以加密过程对用户是透明的。
然而,与链路加密不同,节点加密不允许消息在网络节点以明文形式存在,它先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,这一过程是在节点上的一个安全模块中进行。
节点加密要求报头和路由信息以明文形式传输,以便中间节点能得到如何处理消息的信息。
因此这种方法对于防止攻击者分析通信业务是脆弱的。
端到端加密
端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。
采用端到端加密(又称脱线加密或包加密),消息在被传输时到达终点之前不进行解密,因为消息在整个传输过程中均受到保护,所以即使有节点被损坏也不会使消息泄露。
端到端加密系统的价格便宜些,并且与链路加密和节点加密相比更可靠,更容易设计、实现和维护。
端到端加密还避免了其它加密系统所固有的同步问题,因为每个报文包均是独立被加密的,所以一个报文包所发生的传输错误不会影响后续的报文包。
此外,从用户对安全需求的直觉上讲,端到端加密更自然些。
单个用户可能会选用这种加密方法,以便不影响网络上的其他用户,此方法只需要源和目的节点是保密的即可。
端到端加密系统通常不允许对消息的目的地址进行加密,这是因为每一个消息所经过的节点都要用此地址来确定如何传输消息。
由于这种加密方法不能掩盖被传输消息的源点与终点,因此它对于防止攻击者分析通信业务是脆弱的。
网络加密的四种类型
1、无客户端SSL:
SSL的原始应用。
在这种应用中,一台主机计算机在加密的链路上直接连接到一个来源(如Web服务器、邮件服务器、目录等)。
2、配置VPN设备的无客户端SSL:
这种使用SSL的方法对于主机来说与第一种类似。
但是,加密通讯的工作是由VPN设备完成的,而不是由在线资源完成的(如Web或者邮件服务器)。
3、主机至网络:
在上述两个方案中,主机在一个加密的频道直接连接到一个资源。
在这种方式中,主机运行客户端软件(SSL或者IPsec客户端软件)连接到一台VPN设备并且成为包含这个主机目标资源的那个网络的一部分。
SSL:
由于设置简单,SSL已经成为这种类型的VPN的事实上的选择。
客户端软件通常是很小的基于Java的程序。
用户甚至可能都注意不到。
IPsec:
在SSL成为创建主机至网络的流行方式之前,要使用IPsec客户端软件。
IPsec仍在使用,但是,它向用户提供了许多设置选择,容易造成混淆。
4、网络至网络:
有许多方法能够创建这种类型加密的隧道VPN.但是,要使用的技术几乎总是IPsec.
VPN功能虽然不属于802.11标准定义下的技术,但它作为目前最常见的连接中、大型企业或团体与团体间的私人网络的通讯技术,已经成为无线路由器的一项基本功能。
(VPN主要采用DES、3DES以及AES等技术来保障数据传输的安全)所以除了以上我们谈到的网络安全方式外,VPN同样值得尤其是用户使用。
加密三剑客SSL、SET和PGP
SSL、SET和PGP是当前Internet(i)上比较常用的加密方法,它们在各自的应用范围内都拥有很大的用户群。
本文将对这三种流行的加密方法做一较详细介绍。
■SSL(SecureSocketLayer)
SSL协议是由Netscape首先发表的网络资料安全传输协定,其首要目的是在两个通信间提供秘密而可靠的连接。
该协议由两层组成,底层是建立在可靠的传输协议(例如:
TCP)上的是SSL的记录层,用来封装高层的协议。
SSL握手协议准许服务器端与客户端在开始传输数据前,能够通过特定的加密算法相互鉴别。
SSL的先进之处在于它是一个独立的应用协议,其它更高层协议能够建立在SSL协议上。
目前大部分的WebServer及Browser大多支持SSL的资料加密传输协定。
因此,可以利用这个功能,将部分具有机密性质的网页设定在加密的传输模式,如此即可避免资料在网络上传送时被其他人窃听。
SSL是利用公开密钥的加密技术(RSA)来作为用户端与主机端在传送机密资料时的加密通讯协定。
目前,大部分的WebServer及Browser都广泛使用SSL技术。
对消费者而言,SSL已经解决了大部分的问题。
但是,对电子商务而言问题并没有完全解决,因为SSL只做能到资料保密,厂商无法确定是谁填下了这份资料,即使这一点做到了,还有和银行清算的问题。
■SET(SecureElectronicTransaction)
SET是IBM、信用卡国际组织(VISA/MasterCard)以及相关厂商针对网络电子交易共同制定的安全协议,它运用了RSA安全的公钥加密技术,具有资料保密性、资料完整性、资料来源可辨识性及不可否认性,是用来保护消费者在Internet持卡付款交易安全中的标准。
SET1.0版于1997年6月正式问世。
现在,SET已成为国际上所公认的在Internet电子商业交易中的安全标准。
SET协议用在安全电子银行卡的支付系统中,使用客户端的浏览器,应用于从商业站点到商业银行中。
网上银行使用已经存在的程序和设备通过确认信用卡,清算客户银行户头完成交易。
SET协议则通过隐藏信用卡号来保证整个支付过程的安全。
所以,SET必须保证信用卡持有者与银行在现存系统和网络上,能够保持持续的联系。
SET协议为在不同的系统中使用信用卡创建了一套完整的解决办法。
可靠的身份验证使SET成为一个非常好的在线支付系统。
它使交易中每个合法参与者能够拥有一个合理的身份,而对持卡者的身份验证是由银行来进行的。
当然这其中还包括其它服务,比如:
身份认证、客户服务等。
这是建立另外一个可靠的用户连接的方法。
同时可以方便在发生纠纷时进行仲裁。
SET与SSL都是做消费者的认证工作的,也就是说不仅全球数据网购物站需要在认证单位进行认证,消费者也必须从认证机构获取认证。
SET是由ElectronicWallet(电子钱包)、MerchantServer(商店端服务机)、PaymentGateway(付款转接站)和CertificationAuthority(认证中心)组成的,它们构成了Internet上符合SET标准的信用卡授权交易。
一般来说,在开放式网络上进行金融交易以SSL及SET交易协定为主,其中又以SET被国际公认为最安全的。
有鉴于此,VISA/MASTER在1997年6月提出了名为电子交易(SET:
SecureElectronicTransaction)的网络交易安全规格,这个规格基本上也是利用与SSL同样的大数值编码技术,来保证资料保密与使用者认证的工作。
目前信用卡的安全交易标准SET仍在进行前期建设。
在该系统尚未正式运作前,消费者在网络上利用信用卡进行购物时,仍须承担信用卡资料被盗用的风险。
敏感性资料在传递过程中被窃听,交易资料在传递过程中被篡改,交易的双方身份被假冒,完全相同的订单重复送出,这些问题即使对于目前SET安全交易标准来说仍旧有一定困难。
利用WWW给用户提供机密性的资料时更多的会使用UserProfile、SSL或CA,以避免资料在网络上传送时被其他人窃听。
■PGP(PrettyGoodPrivacy)
目前,还有一种非常好的连接网络与桌面的安全方法,PGP(PrettyGoodPrivacy)。
PGP是一个公钥加密程序,与以前的加密方法不同的是PGP公钥加密的信息只能用私钥解密。
在传统的加密方法中,通常一个密钥既能加密也能解密。
那么在开始传输数据前,如何通过一个不安全的信道传输密钥呢?
使用PGP公钥加密法,你可以广泛传播公钥,同时安全地保存好私钥。
由于只有你可拥有私钥,所以,任何人都可以用你的公钥加密写给你的信息,而不用担心信息被窃听。
使用PGP的另一个好处是可以在文档中使用数字签名。
一个使用私钥加密的密钥只能用公钥解密。
这样,如果人们阅读用你的公钥解密后的文件,他们就会确定只有你才能写出这个文件。
PGP是一个软件加密程序,用户可以使用它在不安全的通信链路上创建安全的消息和通信。
PGP协议已经成为公钥加密技术和全球范围消息安全性的事实标准。
因为所有人都能看到它的源代码(唯一公共源代码的加密程序),从而查找出故障和安全性漏洞,所有的故障和漏洞都在发现后被改正了。
如果一个资源文件加了密,那么可以有如下4种可能。
(1)使用了XOR作简单加密。
(2)使用某种单向hash(散列)变换,如MD5、CRC、SHA或自定义hash函数变换,在游戏资源文件中常用于代替资源包内的资源文件名,由于算法不可逆,所以难以恢复文件原来的名称。
(3)使用对称加密,例如Blowfish、TEA或某个对称算法的变种。
(4)一种不公开的自定义规则的加/解密算法,通常由游戏编程人员自己编写。
上面从破解的难度列出了4种加密方案的可能性。
下面将探讨这4种加密方案。
AES是美国国家标准技术研究