计算机系统知识之加密技术

计算机系统知识之加密技术

  • 1、对称加密技术
  • 2、非对称加密技术
  • 3、秘钥管理

  加密技术是最常用的安全保密手段,数据加密技术的关键在于加密/解密算法和秘钥管理。数据加密的基本过程就是对原来为明文的文件或数据按某种加密算法进行处理,使其成为不可读的一段代码,通常称为“密文”。“密文”只能在输入相应的秘钥之后才能显示出原来的内容,通过这样的途径使数据不被窃取。
  数据加密和数据解密是一对逆过程。数据加密是用加密算法E和加密秘钥K 1将明文P变换成密文C,记为
       C = E K 1(P)
  数据解密是数据加密的逆过程,解密算法D和解密密钥K 2将密文C变换成明文P,记为
       P = D K 2(C)
  在安全保密中,可通过适当的秘钥加密技术和管理机制来保证网络信息的通信安全。秘钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人秘钥加密)和非对称加密(公开秘钥加密)。

1、对称加密技术

  对称加密采用了对称密码编码技术,其特点是文件加密和解密使用相同的秘钥,这种方法在密码学中称为对称加密算法。
  常用的对称加密算法有如下几种。
  (1)数据加密标准(Digital Encryption Standard,DES)算法。DES主要采用替换和移位的方法加密。它用56位秘钥对64位二进制数据块进行加密,每次加密可对64位的输入数据进行16轮编码,经一系列替换和移位后,输入的64位原始数据转换成完全不同的64位输出数据。DES算法运算速度快,秘钥生产容易,适合于在当前大多数计算机上用软件方法实现,同时也适合于在专用芯片上实现。
  (2)三重DES(3DES,或称TDEA)。在DES的基础上采用三重DES,即用两个56位的秘钥K1和K2,发送方用K1加密,K2解密,在使用K1加密。接收方则使用K1解密,K2加密,在使用K1解密,其效果相当于将秘钥长度加倍。
  (3)RC-5(Rivest Cipher 5)。RC-5是由Ron Rivest(公钥算法的创始人之一)在1994年开发出来的。RC-5是在RFC2040中定义的,RSA数据安全公司的很多产品都是用了RC-5。
  (4)国际数据加密算法(International Data Encryption Adleman,IDEA)。IDEA是在DES算法的基础上发展起来的,类似于三重DES。IDEA的秘钥为128位,这么长的秘钥在今后若干年内应该是安全的。类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密秘钥中生成一个子密钥。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。
  (5)高级加密标准(Advanced Encryption Standard,AES)算法。AES算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES使用几种不同的方法来执行排列和置换运算。
  AES是一个迭代的、对称秘钥分组的密码,它可以使用128、192和256位秘钥,并且用128位(16字节)分组加密和解密数据。

2、非对称加密技术

  与对称加密算法不同,非对称加密算法需要两个秘钥:公开秘钥(Publickey)和私有秘钥(Privatekey)。公开秘钥和私有秘钥是一对,如果用公开秘钥对数据进行加密,只有用对应的私有秘钥才能解密;如果用私有秘钥对数据进行加密,只有用对应的公开秘钥才能解密。因为加密和解密使用的是两个不同的秘钥,所以这种算法称为非对称加密算法。
  非对称加密有两个不同的体制,如下图所示:
计算机系统知识之加密技术_第1张图片

  非对称加密算法实现机密信息交换的基本过程是:甲方生成一对秘钥并将其中的一把作为共用秘钥向其他方公开;得到该公用秘钥的乙方使用该秘钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用秘钥对加密后的信息进行解密。甲方只能用其专用秘钥解密由其公用秘钥加密后的任何信息。
  非对称加密算法的保密性比较好,它消除了最终用户交换秘钥的需要,但加密和解密花费的时间长、速度慢,不适合于对文件加密,而只适用于对少量数据进行加密。
  RSA(Rivest,Shamir and Adleman)算法是一种公钥加密算法,它按照下面的要求选择公钥和秘钥。
  (1)选择两个大素数p和q(大于10100)。
  (2)令n=p×q和z=(p-1)×(q-1)。
  (3)选择d与z互质。
  (4)选择e,使e×d=1(mod z)。
  明文P被分成k位的块,k是满足2k          C=Pe(mod n)
这样公钥为(e,n)。解密时计算
         P=Cd(mod n)
即私钥为(d,n)。
  例如,设p=2,q=11,n=33,z=20,d=7,e=3,C=P3(mod 33),P=C7(mod 33),则有
  C=23(mod 33)=8(mod 33)=8
  P=87(mod 33)=2097152(mod 33)=2
  RSA算法的安全性是基于大素数分解的困难性。攻击者可以分解已知的n,得到p和q,然后可得到z,最后用Euclid算法,由e和z得到d。但是要分解200位的数,需要40亿年;分解500位的数,则需要1025年。

3、秘钥管理

  秘钥是有生命周期的,它包括秘钥和证书的有效时间,以及已撤销秘钥和证书的维护时间等。秘钥既然要求保密,这就涉及秘钥的管理问题,管理不好,秘钥同样可能被无意识地泄露,并不是有了秘钥就可以高枕无忧,任何保密也只是相对的,是有时效的。秘钥管理主要是指秘钥对的安全管理,包括秘钥产生、秘钥备份和恢复、秘钥更新等。
  (1)秘钥产生。密钥对的产生是证书申请过程中重要的一步,其中产生的私钥由用户保留,公钥和其他信息则交给CA中心进行签名,从而产生证书。根据证书类型和应用的不同,秘钥对的产生也有不同的形式和方法。对于普通证书和测试证书,一般由浏览器和固定的终端应用来产生,这样产生的秘钥强度较小,不适合应用于比较重要的安全网络交易。而对于比较重要的证书,如商家证书和服务器证书等,秘钥对一般由专用应用程序或CA中心直接产生,这样产生的秘钥强度大,适合于重要的应用场合。
  另外,根据秘钥的应用不同,也可能会有不同的产生方式。例如,签名秘钥可能在客户端或RA(注册管理机构)中心产生,而加密秘钥则需要在CA中心直接产生。
  (2)秘钥备份和恢复。在一个PKI(Public Key Infrastructure,公开秘钥体系)系统中,维护秘钥对的备份至关重要,如果没有这种措施,当秘钥丢失后,将意味着加密数据的完全丢失,对于一些重要数据,这将是灾难性的。所以,秘钥的备份和恢复也是PKI秘钥管理中重要的一环。换句话说,即使秘钥丢失,使用PKI的企业和组织必须仍能够得到确认,受秘钥加密保护的重要信息也必须能够恢复。当然,不能让一个独立的个人完全控制最重要的主秘钥,否则将引起严重后果。
  企业级的PKI产品至少应该支持加密的安全秘钥的存储、备份和恢复。秘钥一般用口令进行保护,而口令丢失则是管理员最常见的安全疏漏之一。所以,PKI产品应该能够备份秘钥,即使口令丢失,它也能够让用户在一定条件下恢复该秘钥,并设置新的口令。
  (3)秘钥更新。如果用户可以一次又一次地使用相同的秘钥与别人交换信息,那么秘钥也同其他任何密码一样存在着一定的安全性,虽然说用户的私钥是不对外公开的,但是也很难保证私钥长期的保密性,很难保证长期以来不被泄露。如果某人偶然地直到了用户的秘钥,那么用户曾经和另一个人交换的每一条消息都不再是保密的了。另外,使用一个特定秘钥加密的信息越多,提供给窃听者的材料也就越多,从某种意义上来讲也就越不安全了。
  对每一个由CA颁发的证书都会有有效期,秘钥对生命周期的长短由签发证书的CA中心来确定,各CA系统的证书的有效期有所不同,一般为2~3年。当用户的私钥被泄露或证书的有效期快到时,用户应该更新秘钥。这时用户可以废除证书,产生新的秘钥对,申请新的证书。
  (4)多密钥的管理。假设在某机构中有100个人,如果他们任意两个人之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢?如果任何两个人之间要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是1000、10000或更多,这种办法显然就过于愚蠢了,管理密钥将是意见非常困难的事。为此需要研究并开发用于创建和分发密钥的加密安全的方法。
  Kerberos提供了一种解决这个问题的较好的方案,它是由MIT发明的,使保密秘钥的管理和分发变得十分容易,但这种方法本身还存在一定的缺点。为了能在因特网上提供一个实用的解决方案,Kerberos建立了一个安全的、可信任的密钥分发中心(Key Distribution Center,KDC),每个用户只要知道一个和KDC进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。

你可能感兴趣的:(计算机系统知识,服务器,运维,网络安全)