详解加密技术概念加密方法以及应用
随着 网络 技术的 发展 ,网络安全也就成为当今网络 社会 的焦点中的焦点,几乎没有人
不在谈论网络上的安全 问题 ,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让
人胆战心惊。病毒、黑客的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。
但我们必需清楚地认识到,这一切一切的安全问题我们不可一下全部找到解决方案,
况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新
病毒发现之后才能开发出来, 目前 还没有哪能一家反病毒软件开发商敢承诺他们的软件
能查杀所有已知的和未知的病毒,所以我们不能有等网络安全了再上网的念头,因为或许
网络不能有这么一日,就象“矛”与“盾”,网络与病毒、黑客永远是一对共存体。 现代 的
电脑加密技术就是适应了网络安全的需要而应运产生的,它为我们进行一般的 电子 商务
活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等
。其实加密技术也不是什么新生事物,只不过 应用 在当今电子商务、电脑网络中还是近
几年的 历史 。下面我们就详细介绍一下加密技术的方方面面,希望能为那些对加密技术
还一知半解的朋友提供一个详细了解的机会! 一、加密的由来 加密作为保障数据安
全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源于要追溯于公元前
2000 年(几个世纪了),虽然它不是现在我们所讲的加密技术(甚至不叫加密),但作
为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文
字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些
方法 来保护他们的书面信息。 近期加密技术主要应用于军事领域,如美国独立战争、
美国内战和两次世界大战。最广为人知的编码机器是 German Enigma 机,在第二次世界
大战中德国人利用它创建了加密信息。此后,由于 Alan Turing 和 Ultra 计划以及其他人的
努力,终于对德国人的密码进行了破解。当初, 计算 机的 研究 就是为了破解德国人的密
码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强
,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用
ROSA 算法产生的私钥和公钥就是在这个基础上产生的。 二、加密的概念 数据加密
的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段
代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来 内容 ,通过这样
的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编
码信息转化为其原来数据的过程。 三、加密的理由 当今网络社会选择加密已是我们
别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全
因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网
存在基础——TCP/IP 协议所固有的,包括一些基于 TCP/IP 的服务;另一方面,互联网给
众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了
世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小 企业 。为了解决这一对
矛盾、为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密
技术的数字签名。 加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃
取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密
码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。 通过网络进行登录
时,所键入的密码以明文的形式被传输到服务器,而网络上的窃听是一件极为容易的事情
,所以很有可能黑客会窃取得用户的密码,如果用户是 Root 用户或 Administrator 用户,
那后果将是极为严重的。 还有如果你公司在进行着某个招标项目的投标工作,工作人员
通过电子邮件的方式把他们单位的标书发给招标单位,如果此时有另一位竞争对手从网络
上窃取到你公司的标书,从中知道你公司投标的标的,那后果将是怎样,相信不用多说聪
明的你也明白。 这样的例子实在是太多了,解决上述难题的方案就是加密,加密后的口
令即使被黑客获得也是不可读的,加密后的标书没有收件人的私钥也就无法解开,标书成
为一大堆无任何实际意义的乱码。总之无论是单位还是个人在某种意义上来说加密也成为
当今网络社会进行文件或邮件安全传输的 时代 象征! 数字签名就是基于加密技术的,
它的作用就是用来确定用户是否是真实的。应用最多的还是电子邮件,如当用户收到一封
电子邮件时,邮件上面标有发信人的姓名和信箱地址,很多人可能会简单地认为发信人就
是信上说明的那个人,但实际上伪造一封电子邮件对于一个通常人来说是极为容易的事。
在这种情况下,就要用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。
类似数字签名技术的还有一种身份认证技术,有些站点提供入站 FTP 和 WWW 服务,当
然用户通常接触的这类服务是匿名服务,用户的权力要受到限制,但也有的这类服务不是
匿名的,如某公司为了信息交流提供用户的合作伙伴非匿名的 FTP 服务,或开发小组把他
们的 Web 网页上载到用户的 WWW 服务器上,现在的问题就是,用户如何确定正在访问
用户的服务器的人就是用户认为的那个人,身份认证技术就是一个好的解决方案。 在这
里需要强调一点的就是,文件加密其实不只用于电子邮件或网络上的文件传输,其实也可
应用静态的文件保护,如 PIP 软件就可以对磁盘、硬盘中的文件或文件夹进行加密,以防
他人窃取其中的信息。 四、两种加密方法 加密技术通常分为两大类:“对称式”和“非
对称式”。 对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种
加密技术目前被广泛采用,如美国政府所采用的 DES 加密标准就是一种典型的“对称式”加
密法,它的 Session Key 长度为 56Bits。 非对称式加密就是加密和解密所使用的不是同
一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打
开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知
道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把
密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥
,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即
可以,这样就很好地避免了密钥的传输安全性问题。 五、加密技术中的摘要函数(MAD
、MAD 和 MAD) 摘要是一种防止改动的方法,其中用到的函数叫摘要函数。这些函数
的输入可以是任意大小的消息,而输出是一个固定长度的摘要。摘要有这样一个性质,如
果改变了输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变,
也就是说输入消息的每一位对输出摘要都有 影响 。总之,摘要算法从给定的文本块中产
生一个数字签名(fingerprint 或 message digest),数字签名可以用于防止有人从一个签
名上获取文本信息或改变文本信息内容和进行身份认证。摘要算法的数字签名原理在很多
加密算法中都被使用,如 SO/KEY 和 PIP(pretty good privacy)。 现在流行的摘要函数
有 MAD 和 MAD,但要记住客户机和服务器必须使用相同的算法,无论是 MAD 还是 MAD
,MAD 客户机不能和 MAD 服务器交互。 MAD 摘要算法的设计是出于利用 32 位 RISC
结构来最大其吞吐量,而不需要大量的替换表(substitution table)来考虑的。 MAD 算
法是以消息给予的长度作为输入,产生一个 128 位的"指纹"或"消息化"。要产生两个具有
相同消息化的文字块或者产生任何具有预先给定"指纹"的消息,都被认为在计算上是不可
能的。 MAD 摘要算法是个数据认证标准。MAD 的设计思想是要找出速度更快,比 MAD
更安全的一种算法,MAD 的设计者通过使 MAD 在计算上慢下来,以及对这些计算做了一
些基础性的改动来解决安全性这一问题,是 MAD 算法的一个扩展
六、密钥的管理 密钥既然要求保密,这就涉及到密钥的管理 问题 ,管理不好,密
钥同样可能被无意识地泄露,并不是有了密钥就高枕无忧,任何保密也只是相对的,是有
时效的。要管理好密钥我们还要注意以下几个方面: 1、密钥的使用要注意时效和次数
如果用户可以一次又一次地使用同样密钥与别人交换信息,那么密钥也同其它任何密码
一样存在着一定的安全性,虽然说用户的私钥是不对外公开的,但是也很难保证私钥长期
的保密性,很难保证长期以来不被泄露。如果某人偶然地知道了用户的密钥,那么用户曾
经和另一个人交换的每一条消息都不再是保密的了。另外使用一个特定密钥加密的信息越
多,提供给窃听者的材料也就越多,从某种意义上来讲也就越不安全了。 因此,一般强
调仅将一个对话密钥用于一条信息中或一次对话中,或者建立一种按时更换密钥的机制以
减小密钥暴露的可能性。 2、多密钥的管理 假设在某机构中有 100 个人,如果他们
任意两人之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢
?也许很容易得出答案,如果任何两个人之间要不同的密钥,则总共需要 4950 个密钥,
而且每个人应记住 99 个密钥。如果机构的人数是 1000、10000 人或更多,这种办法就
显然过于愚蠢了,管理密钥将是一件可怕的事情。 Kerberos 提供了一种解决这个较好
方案,它是由 MIT 发明的,使保密密钥的管理和分发变得十分容易,但这种 方法 本身还
存在一定的缺点。为能在因特网上提供一个实用的解决方案,Kerberos 建立了一个安全的
、可信任的密钥分发中心(Key Distribution Center,KDC),每个用户只要知道一个和
KDC 进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。 假设用户甲想
要和用户乙进行秘密通信,则用户甲先和 KDC 通信,用只有用户甲和 KDC 知道的密钥进
行加密 ,用户甲告诉 KDC 他想和用户乙进行通信,KDC 会为用户甲和用户乙之间的会话
随机选择一个对话密钥,并生成一个标签,这个标签由 KDC 和用户乙之间的密钥进行加
密,并在用户甲启动和用户乙对话时,用户甲会把这个标签交给用户乙。这个标签的作用
是让用户甲确信和他交谈的是用户乙,而不是冒充者。因为这个标签是由只有用户乙和
KDC 知道的密钥进行加密的,所以即使冒充者得到用户甲发出的标签也不可能进行解密,
只有用户乙收到后才能够进行解密,从而确定了与用户甲对话的人就是用户乙。 当
KDC 生成标签和随机会话密码,就会把它们用只有用户甲和 KDC 知道的密钥进行加密,
然后把标签和会话钥传给用户甲,加密的结果可以确保只有用户甲能得到这个信息,只有
用户甲能利用这个会话密钥和用户乙进行通话。同理,KDC 会把会话密码用只有 KDC 和
用户乙知道的密钥加密,并把会话密钥给用户乙。 用户甲会启动一个和用户乙的会话,
并用得到的会话密钥加密自己和用户乙的会话,还要把 KDC 传给它的标签传给用户乙以
确定用户乙的身份,然后用户甲和用户乙之间就可以用会话密钥进行安全的会话了,而且
为了保证安全,这个会话密钥是一次性的,这样黑客就更难进行破解了。同时由于密钥是
一次性由系统自动产生的,则用户不必记那么多密钥了,方便了人们的通信。 七、数据
加密的标准 最早、最著名的保密密钥或对称密钥加密算法 DES(Data Encryption
Standard)是由 IBM 公司在 70 年代 发展 起来的,并经政府的加密标准筛选后,于 1976
年 11 月被美国政府采用,DES 随后被美国国家标准局和美国国家标准协会(American
National Standard Institute,ANSI)承认。 DES 使用 56 位密钥对 64 位的数据块进行
加密,并对 64 位的数据块进行 16 轮编码。与每轮编码时,一个 48 位的"每轮"密钥值由
56 位的完整密钥得出来。DES 用软件进行解码需用很长时间,而用硬件解码速度非常快
。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。在 1977 年,人们
估计要耗资两千万美元才能建成一个专门 计算 机用于 DES 的解密,而且需要 12 个小时
的破解才能得到结果。当时 DES 被认为是一种十分强大的加密方法。 随着计算机硬件
的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保
护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器
,那么 DES 确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的
钱破解 DES 密文。 另一种非常著名的加密算法就是 RSA 了,RSA(Rivest-Shamir-
Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大
的质数。一个对外公开的为“公钥”(Prblic key) ,另一个不告诉任何人,称为"私钥”(
Private key)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过
来也一样。 假设用户甲要寄信给用户乙,他们互相知道对方的公钥。甲就用乙的公钥加
密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,
所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个
人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信是不是甲的来信呢?那就要用
到基于加密技术的数字签名了。 甲用自己的私钥将签名 内容 加密,附加在邮件后,再
用乙的公钥将整个邮件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名
去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私
钥将邮件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确
保两方面的安全了。 八、加密技术的 应用 加密技术的应用是多方面的,但最为广
泛的还是在 电子 商务和 VPN 上的应用,下面就分别简叙。 1、在电子商务方面的应用
电子商务(E-business)要求顾客可以在网上进行各种商务活动,不必担心自己的信用
卡会被人盗用。在过去,用户为了防止信用卡的号码被窃取到,一般是通过电话订货,然
后使用用户的信用卡进行付款。现在人们开始用 RSA(一种公开/私有密钥)的加密技术
,提高信用卡交易的安全性,从而使电子商务走向实用成为可能。 许多人都知道
NETSCAPE 公司是 Internet 商业中领先技术的提供者,该公司提供了一种基于 RSA 和保密
密钥的应用于因特网的技术,被称为安全插座层(Secure Sockets Layer,SSL)。 也
许很多人知道 Socket,它是一个编程界面,并不提供任何安全措施,而 SSL 不但提供编
程界面,而且向上提供一种安全的服务, 现在已经应用到了服务器和浏览器上,
则只能应用于服务器端。 用一种电子证书(electric certificate)来实行
身份进行验证后,双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称
”加密方法,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个 Session Key
,然后客户用服务器端的公钥将 Session Key 进行加密,再传给服务器端,在双方都知道
Session Key 后,传输的数据都是以 Session Key 进行加密与解密的,但服务器端发给用
户的公钥必需先向有关发证机关申请,以得到公证。 基于 提供的安全保障,用
户就可以自由订购商品并且给出信用卡号了,也可以在网上和合作伙伴交流商业信息并且
让供应商把订单和收货单从网上发过来,这样可以节省大量的纸张,为公司节省大量的电
话、传真费用。在过去,电子信息交换(Electric Data Interchange,EDI)、信息交易(
information transaction)和 金融 交易(financial transaction)都是在专用 网络 上完成的
,使用专用网的费用大大高于互联网。正是这样巨大的诱惑,才使人们开始发展因特网上
的电子商务,但不要忘记数据加密。 2、加密技术在 VPN 中的应用 现在,越多越多
的公司走向国际化,一个公司可能在多个国家都有办事机构或销售中心,每一个机构都有
自己的局域网 LAN(Local Area Network),但在当今的网络 社会 人们的要求不仅如此,
用户希望将这些 LAN 连结在一起组成一个公司的广域网,这个在现在已不是什么难事了。
事实上,很多公司都已经这样做了,但他们一般使用租用专用线路来连结这些局域网
,他们考虑的就是网络的安全问题。现在具有加密/解密功能的路由器已到处都是,这就
使人们通过互联网连接这些局域网成为可能,这就是我们通常所说的虚拟专用网(Virtual
Private Network ,VPN)。当数据离开发送者所在的局域网时,该数据首先被用户湍连接
到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的
LAN 的路由器时,该路由器就会对数据进行解密,这样目的 LAN 中的用户就可以看到真正
的信息了