摘要:随着计算机技术的发展和信息社会的到来,通过网络交换信息已经成为人们主要交换信息的方式,所以信息安全就变得尤为重要。在古代,密码学常常用于军事、政治等机密性部门之中。然而,由于现代计算机技术的不断发展,我们许多使用的计算机软件的安全需要依赖于密码技术。因此,密码学逐步的发展成为一个综合性的学科,它涉及的学科非常之多,与信息论、数学、计算机科学等都有着紧密的联系。密码学在保障网络信息的完整性、真实性和机密性发挥了及其大的作用,这些方面都大大提升了网络的安全性。本文主要阐述了密码学的基本理论和它的技术应用,希望能为研究人员提供一定的帮助。
关键词:密码学; 网络安全; 计算机; 加密; 解密;
On Cryptography and Its Role in Computer Network Security
JIANG Ze-yu
School of Computer Science and Technology,Harbin University of Science and Technology
Abstract:With the development of computer technology and the advent of the information society, the exchange of information through the network has become the main way for people to exchange information, so information security has become particularly important. In ancient times, cryptography was often used in military, political and other confidential departments. However, due to the continuous development of modern computer technology, the security of many computer software depends on cryptography. Therefore, cryptography has gradually developed into a comprehensive discipline, which involves many disciplines, and is closely related to information theory,mathematics and computer science. Cryptography has played an important role in ensuring the integrity, authenticity and confidentiality of network information, and has greatly improved the security of the network. This article mainly expounds the basic theory of cryptography and its technical application, hoping to provide some help for researchers.
0 引言
密码学是一门研究如何编制和破译密码的学科。在现代,密码学技术已经应用到了各个领域之中,除了保护信息的机密性之外,还包括数字签名、安全协议、权限管理和身份鉴别等方面的技术。它是实现网络信息安全的关键技术之一,因此,它经常作为计算机的一个分支学科。随着计算机技术的不断发展和信息时代的到来,各种计算机软件应用逐渐的出现在了人们的日常生活之中,例如电子商务、电子金融、电子政务等,这些都是必须要保证信息安全的网络系统,密码学也在网络安全应用中得到不断地发展。因此,密码学也成为了网络安全中的一门基础学科。
1 关于密码学的发展简介
密码学的发展源远流长,甚至有几千年的历史。发展阶段主要分为三个时期:古典密码时期、近代密码时期和现代密码时期。古典密码时期就长达数千年,虽然这一时期的密码形式多样,但是多为简单的手工书写,其中的加密方法包括文字的替换、隐写术等等。近代密码时期,大多用无线电技术来实现,在近代密码时期,出现了无线电密码技术。在那时,专门用来加密密码的轮转机虽然大大提高了加密速度,但是产生的密钥数量却是有限的,很容易就被破解掉。因此,密码技术在近代还不能称之为一门真正意义上的学科。因此,也有学者认为近代密码时期和古典密码时期应该合为同一个时期。在近代时期,几乎没有过关于密码学相关的文献,直到香农发表的一篇论文。他将信息论这一概念引入密码学之中,引入了不确定性、唯一解距离等计算方法,为现代密码学的发展打下了坚实的基础。此后,美国国家标准局发布了DES(数据加密标准),并应用于多个部门。随后,着名的密码学家迪菲和赫尔曼首次提出了RAS体制(公钥密码体制),打开了密码学这门学科的新领域。由于计算机技术的飞速发展,过去人们认为足够安全的DES算法,已经不够安全了。于是,比利时的几位密码学家提出了新的AES算法,取代了从前的DES算法。此后,密码学的研究逐渐走向了高潮,在信息时代的今天,人们更是离不开密码学技术。
2 密码学的基本理论
2.1 密码学的基本要素
密码学的五大要素为:消息空间(M)、密文空间(C)、密钥空间(K)、加密算法(E)和解密算法(D),以上五个元素成为密码学的一个密码系统。消息空间,又称为铭文空间,就是还没有进行加密处理的消息集合。密文空间同理,指经过加密处理的消息集合。密钥又分为加密密钥和解密密钥,它通常是一个可变的参数,用于解开加密信息或者伪装信息的一把“钥匙”。密钥根据一定的规则和算法,也就是加密算法(解密算法),把明文(密文)转换成密文(明文)。简单来说,在密码学中,我们认为这个密码系统是不是足够安全,要看这个密码系统是否容易被破解。如果密码破译者能够直接根据密文推算出明文或者密钥,或是密码拦截者可以直接获取这个密码系统的密钥序列,那么我们就称这个密码系统是不够安全的。另外,一个安全的密码系统还应该满足的是,消息接收者能够得到完整并且真实的消息,加密和解密的算法也应该相对于简单轻便。
2.2 密码学的基本功能
密码学的主要目的就是隐藏信息的真正含义,而不是抹去信息本身。早期的密码学仅仅是可以对文字进行加解密操作,但随着科技技术的发展,如今已经可以对语音、图像等进行加解密操作了。密码学对信息提供的保护主要有四个方面:机密性、数据完整性、鉴别和不可否认性。
2.2.1 机密性
只允许被授权的用户查看信息内容,非授权用户可以查看加密厚的信息,但是不能破解出其中的真正含义。
2.2.2 数据完整性
指数据或信息在传递过程中不被受到非授权的修改或破坏。非授权修改包括对信息的篡改、删除、插入等,通常通过数据签名、数据加密等技术来保证对数据的完整性。另外,用户本身也需要能够检测出非法操作的能力。
2.2.3 鉴别
鉴别,包括对用户身份和数据来源的识别。对于一次安全的通信过程,通信双方必须都为预期的身份,这是所说的身份的识别。即非法用户不能够冒充通信的对方去获取信息,双方能够对对方的身份进行鉴别。对于数据,能够由所预期的实体发送或者接受,这就是对数据来源的识别。可以通过数据加密、数字签名等技术来保证这种鉴别服务,从提供数据鉴别这方面的服务来说,密码学的鉴别服务也包括了数据完整性服务。
2.2.4 不可否认性
发送方不能否认自己发送信息的行为。接收方收到信息后,也不能够否认自己接收到了发送方的信息,即密码学的不可否认性。可以通过对称加密算法或者非对称加算法来实现这服务。
密码学实质上就是研究如何让信息具有机密性、数据完整性、可鉴别性和不可否认性的一门学科。它主要包含两个分支:密码编码学和密码分析学。密码编码学就是研究安全的密码协议。在密码学中,除了加密算法之外,密码协议也一样重要。密码协议就是指使用密码技术的通信协议,用来保证数据的机密性和完整性。密码分析,就是研究如何破解密码的学科。
2.3 密码系统的安全性
一个密码系统的安全性,跟密码算法本身和除了算法之外的一些因素都有关系。一个密码算法本身具有的安全性,是密码系统安全性的基础保证,它取决于密码的设计水平等等。攻击者如果想要破译一个密码系统,还可以通过非技术手段来达到目的。例如,收买相关的管理人员等等。这些都是可能存在的,密码算法本身之外的一些漏洞。因此,一个密码算法的安全性并不能完全代表一个密码系统的安全。
2.4 如何评估密码系统的安全性
2.4.1 无条件安全性
这种情况是指,攻击者拥有了无限的资源,但是却无法得到任何对破译该密码系统有意的信息,即无法破译此密码系统。我们称这样的密码系统具有无条件安全性。但是,这种密码体制却难以实现,因为其密钥的生成和管理都极其苦难,并且不能够重复使用密钥。
2.4.2 可证明安全性
指此密码体制的安全性与某个很困难的问题相关(数学问题),例如计算离散对数等,这些数学问题解起来往往非常困难。但是,这种方法并不能完全说明了此密码体制的安全性。
2.4.3 计算安全性
计算安全性,又称为实际安全性。指攻击者所拥有的计算资源还达不到破解此密码体制的资源。密码学中所认为的计算不可破译是指,攻击者受到资源的限制,不能够在一定时间之内破解此密码体制,那么我们就可以认为此密码体制是不可破译的。
2.4.4 总结
综上所述,一个密码体制要满足安全性,需要它在破解时,计算量非常之大,花费的计算时间非常之多,使攻击者实际上是无法实现的。或者是,它的实际价值远远不如破解它时所花费的费用。以上满足任何一点,我们就可以称此密码体制是足够安全的。
3 密码学常用加密方法
3.1 对称加密算法
对称加密,也称为私钥加密。上文提到了,密钥又分为加密密钥与解密密钥。那么,加密密钥是否一定跟解密密钥相同呢?至少在对称加密算法中来说是的。此算法中,加密(解密)密钥可以通过解密(加密)密钥推算出来。这类算法的安全性非常依赖于密钥,如果密钥发生了泄露,那么这些密码系统的安全性将会受到很大的威胁。常见的一些对称加密算法有:DES算法、AES算法、IDEA算法等等。本文将会就其中两个最为常见的算法进行简单介绍。
3.1.1 DES算法
DES算法,即美国标准局在1977年发布的数据加密标准。DES的参数有:Key(密钥)、Data和Mode。DES算法的两个原则为混淆和扩散。混淆的目的是为了使密文与密钥之间的关系更加复杂。扩散的目的是为了尽可能让每一位明文都较多的作用到密文上,以防攻击者对密码的破译。
DES算法的变体是3DES算法。DES算法如今已经被破解,所以已经不再是安全的密码算法了,3DES算法已经在向AES算法逐渐的过渡。
3.1.2 AES算法
AES算法,是美国标准局发布的高级数据加密标准,用来代替已经逐渐被淘汰的DES算法。在对称加密算法之中,是最常用的一种算法。此算法的密钥建立所需要的时间很短,对内存的要求也不是很高,性能远远优于DES算法。AES为分组密码,即把明文分为等长度的几组,每次只加密一组明文,直到全部明文加密完成。AES算法密钥长度一般为128、192和256位。
3.2 非对称加密算法
非对称加密算法,又称公开密钥算法。非对称加密算法中有两个密钥:公开密钥和私有密钥。公开密钥和私有密钥是两个完全不同的密钥,故而称为非对称加密算法。如果用公开密钥对明文进行加密,那么只有私有密钥才能进行解密。同理,如果用私有密钥对明文进行加密,那么只有公开密钥才能对明文进行解密。此类算法具有非常高的保密性和安全性,算法比较复杂,使得密码系统不是很容易被破解。常见的一些非对称加密算法有:ECC算法(椭圆曲线加密算法)、RSA算法、DSA算法、背包算法等等。本文将会就其中几个最为常见的算法进行简单介绍。
3.2.1 RSA算法
RSA算法是目前最有影响力的公钥算法,因为它能够抵挡大部分的攻击,具有很高的可靠性。它已经被IOS推为公钥加密数据标准。首先,随机生成两个质数p和q,再算出它们的乘积n(密钥长度),计算出n的欧拉函数。然后,随机选择一个数e,e的范围在1到n的欧拉函数之间,且与n的欧拉函数互质,计算出e对于n的欧拉函数的模反元素d。最后,n和e就为公有密钥,n和d为私有密钥。由以上RSA算法生成密钥对的过程来看,RSA算法具有很高的随机性和安全性,想要破解此算法的密钥十分困难,因为RSA算法运行的往往都是大数运算。但是这一点也使得RSA算法本身运行的速度非常之慢,比DES算法多出好几倍的时间。
3.2.2 ECC算法
即椭圆曲线加密算法,也是一种公开密钥算法。ECC算法产生的密钥比RSA算法更小,占用的存储空间较小。并且,ECC算法是双线映射的,具有更高的安全性。但是这也造成了它的加解密过程非常复杂,花费的时间很长。
3.2.3 DSA算法
即数字签名算法。它的安全性跟RSA算法差不多,但是它随机产生的两个素数p和q是公开的,当使用p和q时,就可以确认是否被人做了非法操作。
4 网络安全方面技术应用
4.1 数字签名技术
数字签名技术,是非对称密码算法的一种应用。它有两种运算,一个用于签名,一个用于验证。只有发送信息的人员才能产生,它可以有效地证明信息的真实性,并且具有完整性和不可否认性。发送信息的人员有一对密钥,其中一个是只有本人才知道的私有密钥,另一个则是公开的公开密钥,签名的时候用的是私有密钥,验证的时候则用公开密钥。数字签名技术可以提供对应的网络安全服务,对于计算机网络安全有着非常重要的作用:防止冒充、防抵赖、身份鉴别等等。这些都极大的提高了网络信息的安全性。
4.2 数字证书技术
又称数字标识,公开密钥算法的一种应用,由CA中心颁发的一种证书,具有权威性。在信息交流之中进行加密和解密,来保证数据的真实性和完整性。它产生两种密钥,公开密钥和私有密钥,公开密钥是共有的,用来加密和签名验证,私有密钥只有用户自己才知道,用于解密和签名认证。数字证书相当于用户的一张身份证,在进行电子商务活动时必须出示数字证书来验证身份,它具有安全性、唯一性和便利性。它对网络信息安全也有着很重要的作用,随着计算机技术的发展,电子商务在人们的生活中运用的越来越多,数字证书可以避免信息和数据的泄露,作为一种加密技术,有效地保护了终端。此外,越来越多的钓鱼网站和恶意网站出现在计算机网络上,用户稍有不慎,就会暴露自己的个人信息,这很大的影响了网络的安全性。数字证书技术可以先对网站进行验证,这就极大的避免了有可能造成的损失,提高了网络的安全性。另外,在网络安全方面,数字证书技术还可以建立安全电子邮件、身份授权管理等等。
5 结语
随着现代量子计算的发展,密码学也逐渐在发展进化。当然,反过来,密码学同样也促进了现代计算机技术的发展。密码学在网络安全领域有很多重要的作用,例如安全认证、数字签名、数字印章等等。密码学不仅仅可以提升网络的安全性,它在军事领域也发挥着很重要的作用,包括射击学、弹道学等等。综上所述,密码学是一门很有发展前景的综合性学科,因此,这门学科值得我们继续进行研究。有关于密码学的最新进展研究,有兴趣的读者可以自行查阅资料。
参考文献
[1]陈佳康.密码学算法的优化与应用[D].北京邮电大学,2013.
[2]郑培凝.身份基密码学的研究与应用[D].上海交通大学,2011.
[3]卢开澄.计算机密码学[M].北京:清华大学出版社,2003.