网络安全技术中数字签名的基本原理

网络安全技术中数字签名的基本原理

【摘要】随着互联网的普及和电子设备成本的降低,互联网已经走进了每个人的生活,我们可以轻松地连接进入互联网。但是由于进入互联网的门槛降低,也就会有许多不法分子想通过互联网为自己制造利益或是破坏他人的系统。本文主要介绍了网络安全的基本概念,加密算法的基本原理以及详细介绍了数字签名的过程。体现出数字签名在目前互联网行业中的重要性和普及性。最后,本文根据目前的互联网环境和硬件发展水平对未来网络安全提出了主观的看法。

【关键词】网络安全;加密解密;数字签名;MD5

1网络安全介绍

我们的生活中目前随处可以看到互联网的影子,我们甚至时时刻刻都在使用互联网或者享受互联网带给我们的便捷。互联网并不是一个多么神奇的事物,其实它做的就是把各种设备,计算机,电子终端连接起来,使它们能够相互发送和接收数据。在互联网发展初期,并没有“网络安全”这个概念。因为那个时候。世界上电子设备数量有限,大部分都存在于实验室中,所以大家使用互联网都是做一些正常的研究和计算工作。后来随着互联网的普及和电子设备成本的降低,大家都可以比较轻松的连接进入互联网,这时就有一些不法分子想通过互联网牟利或是破坏一些系统。为了防止这些不法分子的破坏和非法行为,才有了网络安全这个概念。加强网络安全目前对每个互联网系统都十分必要。

2常见的加密解密算法

在过去的战争中,军队使用无线电进行通讯,无线电的内容被公开的广播,很容易被他人所窃听到。面对这个问题,收发两方之间会使用一套密码。比如一本字典,或是某一本书。发送消息时不发送消息明文,而发送页码和行数列数,比如“第2页,第3行,第5列。”,在接收方收到之后,按照发送方发送的内容,在密码字典中找到对应的字,拼接成原文,这样的方式在一定程度上能够保障情报的安全。使用互联网传递消息与使用无线电传递消息很像,数据也是在公共的网络环境中传递,数据也可能会被他人所窃取。而解决方法也与战争时的解决方式类似,就是给消息加密。但不是通过密码本进行数据拼接,因为使用密码本加密方式在计算能力很强的计算机面前很容易被破解。以下将介绍几种常见的互联网加密算法:

2.1MD5

MD5(Message-DigestAlgorithm)算法,全称是消息摘要算法。是互联网应用中非常常见的加密算法,它是一种不可逆算法,也就是无法从密文反推出明文的算法[1]。这样能够较好的保障明文的安全性。MD5算法能够将一段信息转换为一个定长(128位,16字节)的信息摘要,相当于给这段信息生成了一个“数字指纹”,以防止数据内容被篡改。MD5可以在以下场景使用:(1)为了防止文件内容被篡改,会使用MD5算法将文件内容进行加密,将得到的消息摘要放入一个.md5文件中。一旦文件内容被篡改,使用MD5加密后的值就会发生变化,这样就能判断文件内容是否被篡改。(2)在互联网应用的注册过程中,我们需要输入我们的用户名和密码。如果互联网公司直接将我们的用户名和密码存入数据库中,如果数据库被不法分子窃取,我们的账户登录信息就被不法分子拿到,我们的账户就会面临被盗取的危险。但是如果互联网公司不直接保存我们的密码明文,而是将其进行MD5加密,将得到的密文存入数据库。我们在登录时每次将我们的密码再进行MD5加密,对比加密结果和数据库的内容来判断密码是否正确。这样即使被不法分子盗取,他也无法从密文反推出我们的密码,从而保证了我们的账户安全。

2.2DES算法

上文中的MD5是不可逆算法,但是在通讯过程中,我们常常需要在接收端通过密文获取到明文,这就需要加密算法可以反推。DES算法就是一种可逆的加密算法[2]。发送方与接收方都保存一个相同的密钥,发送方在加密时,使用该密钥进行加密。接收方在解密时,还是使用该密钥进行解密。使用DES加密算法,只要密钥不丢失,还是能够保障数据安全的,但是密钥被他人获取后,他人可以伪造数据或者窃取数据。除此之外,还有一些其他的加密算法,比如RSA算法,它也是一种可逆的加密算法,但是它与DES的区别是加密和解密使用的秘钥不同,过程更加复杂,在此不多做讨论。

3数字签名原理

在我们现实生活中,在进行一些交易或者达成某项协议时,双方或多方会签合同来保障协议的合法和有效性。其实签合同最重要的就是获取每方的签名或者公章。在网络安全中,也采用了这种签名的思维来保证数据的安全性,这项技术就叫做“数字签名”。从名字可以看出,这个签名并不是我们生活中的签字或者公章,它的本质还是数据。我们假设一个银行系统会持续接收账户的收入和支出数据。比如有一条数据发送至系统,内容是“账户:张三,方式:存款,金额:1000元”,此时系统将会给张三的账户增加1000元的余额。但是如果有不法分子发现了可以给这个系统发送数据,它们便可以伪造消息,但是系统是无法区别这个消息是否是可信赖的,这样就很有可能造成资金的损失。这个时候就可以使用数字签名技术来保障安全性。使用数字签名技术需要具有以下几个必要因素:(1)原始数据;(2)签名秘钥;(3)约定签名方式;(4)加密算法。原始数据:原始数据很好理解,就是我们需要传给系统的原文,比如上文中的“账户:张三,方式:存款,金额:1000元”。也就是我们需要保护的内容。签名秘钥:签名秘钥是收发双方约定好的一串字符,可以是任意字符[3],比如“123456”,“abcd”等。但是不建议设置得太简单或者具备某种规律,这样会比较容易被他人破解。约定签名方式:签名方式也是收发双方要事先约定好的,这个签名是对原始数据的内容进行一些调整。比如约定在每一项内容中间加竖线。那么“账户:张三,方式:存款,金额:1000元”就被转化成“张三|存款|1000”。签名方式非常灵活,只要双方约定好就可以,但是建议不要过于复杂,最好具备一些规律,否则容易造成误解。加密算法:加密算法就是生成数字签名的加密算法,可以是可逆加密算法,也可以是不可逆加密算法。具备了以上4个必要条件,就可以生成数字签名了。方法就是将原文按照约定签名方式转化后的内容和签名秘钥进行一定的融合,然后使用加密算法得到密文。比如原文转化后的内容是“张三|存款|1000”,签名秘钥是“123456”,将它们两者进行拼接,得到“张三|存款|1000|123456”,再使用加密算法得到密文。接收方在获得原始数据和签名后,按照同样的签名方式对原始数据签名,然后对比与发送过来的签名是否一致,不一致则认为数据来源不可信赖,从而保障了系统安全[4]。为什么需要如此复杂的签名过程呢?原因很简单,密文结合了原始数据,签名秘钥,签名方式和加密算法4种因素。不法分子即使破解了其中的一个因素,也依然无法得到正确的签名,除非不法分子同时知道了签名秘钥,签名方式和签名算法。使用数字签名大大降低了系统的风险。

4结论与展望

目前互联网环境不是非常健康。互联网的应用,如果不采取各种手段来保护自己系统的网络安全,将会遭到各种各样的恶意攻击。但是目前的加密算法的安全性取决于当前设备的计算能力。如果有一台计算力超强的计算机可以在几小时内破解某个加密算法,那么这个加密算法就不再是一个安全的加密算法。所以随着设备计算能力的不断提高,加密算法也需要不断地进行改进和发展,否则互联网将不再安全可靠,甚至将成为个人信息泄露的重灾区。所以研究加密解密算法和网络安全手段目前来看是十分必要的,长远去看,这也将是一个持续进行和持续研究的方向。

参考文献

[1]张裔智,赵毅,汤小斌.MD5算法研究[J].计算机科学,2008,35(7):295-297.

[2]管莹,敬茂华.DES算法原理及实现[J].电脑编程技巧与维护,2009(4):5-7.

[3]易红军,佘名高.MD5算法与数字签名[J].计算机与数字工程,2006,34(5):44-46.

[4]洪琳,李展.数字签名、数字信封和数字证书[J].计算机应用,2000,20(2):41-42.

作者:段镇源 单位:岳阳市第十五中学