计算机网络安全(1)

  从广义来说,凡是涉及到网络上信息的机密性、报文完整性、端点鉴别等技术和理论都是网络安全的研究领域。

  • 机密性指仅有发送方和接收方能理解传输报文的内容,而其他未授权用户不能解密(理解)该报文
  • 报文完整性指报文在传输过程中不能被恶意篡改或意外改动
  • 端点鉴别指发送方与接收方能确认对方确实具有他所声称的身份

  一、机密性

  为了满足用户机密性的需求,一种自然而然的选择就是用密码对传输的报文进行加密。即使你为报文设定了巧妙的加密方案,也不能认为万事大吉了,道高一尺魔高一丈,具有丰富经验和高超技艺的攻击者会让你的重要报文始终处于被破解的风险之下,总的来说可以根据攻击者所拥有的信息将破解方式分为三类:

  1. 唯密文攻击。指在仅知已加密文字的情况下进行穷举攻击,此方案同时用于攻击对称密码体制和非对称密码体制。
  2. 选择明文攻击。在这种攻击模式中,攻击者可以事先任意选择一定数量的明文,让被攻击的加密算法加密,并得到相应的密文,从而完全破解其加密方案。
  3. 已知明文攻击。攻击者以某种方式猜测出报文中所含有的部分内容,从而能以更大的概率破解该加密方案。

  为了应对攻击者对网络安全带来的严峻挑战,在现代密码学中衍生出两种截然不同的密码系统:对称密钥系统和公钥系统。

  对称密钥密码系统中,发送方与接收方通过协商(或其他方式)共享一个密钥,该密钥用于指明此次会话过程中需要采取的加密及解密方案,值得说明的是只有保证该密钥仅被收发双方知道而其他未授权者不知的情况下,这种对称密钥系统才能保证机密性(当然,这种密码系统仍不是无懈可击的,它还有一些可能被攻击者利用的漏洞或缺陷)。

  块密码是比较常用的一种对称密钥加密方案,其原理是将明文分割成若干个长度固定的“块”,每块会被独立加密,加密过程通常会使用模拟随机改变次序表的功能,通过多次打乱块之间的顺序和加密的循环过程,最终得到加密后的密文。目前流行的块密码方案有DES、AES。

  下面重点说说公开密钥密码系统。

  公开密钥密 码系统是由R.Rivest、A.Shamir和L.Adleman于1977年提出的。RSA的 取名就是取自这三位发明者姓氏的第一个字母。后来,在1982年他们又创办了以RSA命名的公司(RSA Data Security Inc.和RSA实验室),该公司和实验室在公开密钥密码系统的研发和商业应用推广方面具有划时代的意义,是全球公认的计算机网络安全的重要里程碑。与"公开密钥密码体制"相对应的是"传统密码体制",又称"对称密钥密码体制",其中用 于加密的密钥与用于解密的密钥完全一样。
  在对称密钥密码体制中,加密运算与解密运算使用同样的密钥。通常,使用的加密算法 比较简便高效,密钥简短,破译极其困难。但是,在公开的计算机网络上安全地传送和保管 密钥是一个严峻的问题。1976年,Diffie和Hellman为解决密钥管理问 题,在他们的奠基性 的工作"密码学的新方向"一文中,提出一种密钥交换协议,允许在不安全的媒体上通讯双方 交换信息,安全地达成一致的密钥。在此新思想的基础上,很快出现了"不对称密钥密码体 制",即"公开密钥密码体制",其中加密密钥不同于解密密钥,加密密钥公之于众。
  与对称密钥加密相比,优点在于无需共享的通用密钥,解密的私钥不发往任何用户。即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密,所截获的公钥是没有任何用处的。

  假设两个用户A,B进行通信,接收方B的公钥为c,私钥为d,明文为x.

  1. A用B的公钥对明文进行加密形成密文c(x),然后传输密文;
  2. B收到密文,用自己的私钥对密文进行解密d(c(x)),得到要通信的明文x。

  以上过程中的接收方B通过计算得到自己的公钥和私钥,其中公钥是所有人都可以获取到的,私钥只有B知道。

  现在,用一个简单的例子来说明RSA公开密钥密码系统的工作原理。
  取两个质数p=11,q=13,p和q的乘积为n=p×q=143,算出另一个数z=(p-1)×(q- 1)=120;再选取一个与z=120互 质的数,例如e=7(称为"公开指数"),对于这个e值,可以算出另一个值d=103(称为"秘密指数 ")满足e×d=1 mod z;其实7×103=721除以120确实余1。(n,e)和(n,d)这两组数分别为"公 开密钥"和"秘密密钥。"
设想张小姐需要发送机密信息(明文,即未加密的报文)s=85给李先生,她已经从公开媒体或网站上得到了李先生的公开密钥(n,e)=(143,7),于是她算出加密值
  c=s【RUe】 mod n=85【RU7】 mod 143=123并发送给李先生。
  李先生在收到"密文"(即经加密的报文)其中c=123,他就可利用只有他自己知道的秘密密钥(n,d)=(143,123)计算123123 mod 143,
  得到的值就是明文(值)85,实现了解密。其中的计算用一般公式来表达,是
  c【RUd】 mod n=(s【RUe】)【RUd】 mod n=s【RUed】 mod n
  根据初等数论中的欧拉(Euler)定理,应用s【RUz】=1 mod n,所以
  s【RUed】=s mod n
  所以,李先生可以得到张小姐发给他的真正的信息s=85。
  
  自然,我们要问,在李先生向公众提供了公开密钥,密文c又是通过公开的途径传送的,其安全性何在?
  回答是肯定的!只有当n足够大时,例如,有512比特,或1024比特甚至2048比特,n=p×q中的p和q的 位数差不多大小,任何人只知道公开密钥(n,e),目前是无法算出秘密密钥(n,d)的。其困难在于从乘积n难以找出它的两个巨大的质数因子。
  上面例子中的n=143,只是示意用的,用来说明RSA公开密钥密码系统的计算过程,从 143找出它的质数因子11和13是毫不困难的。对于巨大的质数p和q,计算乘积n=p×q非常简便,而其逆运算却是相当困难的事情。这是一种"单向性"。相应的函数称为"单向函数"。任何单向函数都可以作为某一种公开密钥密码系统的基础,而单向函数的安全性也就是这种公开密钥密 码系统的安全性。
 
  虽然公开密钥具有杰出的特性,但需要指出的是,RSA所要求的计算过程需要耗费大量的时间,而用硬件实现的DES比RSA快1000~10000倍,尤其是需要传送大量报文时二者所消耗的时间差更明显。所以,在实际应用中通常使用RSA和对称密钥相结合的方式。例如,A选择用于加密报文的对称密钥;为了与B共享该对称密钥,A通过公开密钥系统,利用B所公布的公钥加密该对称密钥并发送给B,B收到密文后用自己的私钥解密该报文,从此,A和B就会话过程中的加密方案取得一致。值得一提的是,该过程中的对称密钥也可称为会话密钥。

  

  

posted @ 2013-05-03 19:58  chrisya0  阅读(277)  评论(0编辑  收藏  举报