推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

网络安全机制研究与Python实现

更新时间:2019-12-24 15:37:34 大小:1M 上传用户:songhuahua查看TA发布的资源 标签:网络安全python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

随着计算机网络的广泛应用,网络已经成为人们生活中不可或缺的一部分.计算机网络的安全问题也日益引起人们的重视,本文对网络安全问题进行了分析,并对部分机制使用Python语言进行了实现.虽然Python上手容易,要迅速掌握其丰富的安全工具库并熟练运用,也不是一年容易的事.本文既可以对Python语言的入门学习者助一臂之力,又可以使网络安全的爱好者从中受益.


部分文件列表

文件名 大小
网络安全机制研究与Python实现.pdf 1M

部分页面预览

(完整内容请下载后查看)
TECHNOLOGY AND INFORMATION  
IT技术论坛  
网络安全机制研究与 Python 实现  
邢立国ꢀ 刘玉坤ꢀ  
平顶山学院计算机学院(软件学院)ꢀ 河南ꢀ 平顶山ꢀ 467000  
摘ꢀ 要ꢀ 随着计算机网络的广泛应用,网络已经成为人们生活中不可或缺的一部分。计算机网络的安全问题也日益  
引起人们的重视,本文对网络安全问题进行了分析,并对部分机制使用Python语言进行了实现。虽然Python上手容  
易,要迅速掌握其丰富的安全工具库并熟练运用,也不是一年容易的事。本文既可以对Python语言的入门学习者助一  
臂之力,又可以使网络安全的爱好者从中受益。  
关键词ꢀ Python;网络安全;密码机制;数字签名  
前言  
成如下伪装:加密者对需要进行伪装机密信息(明文)进行伪  
当前,以Internet为代表的国际互联网的热潮正在向社会的  
装进行变换(加密变换),得到另外一种看起来似乎与原有信  
息不相关的表示(密文),如果合法者(接收者)获得了伪装  
后的信息,那么他可以通过事先约定的密钥,从得到的信息中  
分析得到原有的机密信息(解密变换),而如果不合法的用户  
(密码分析者)试图从这种伪装后信息中分析得到原有的机密  
信息,那么,要么这种分析过程根本是不可能的,要么代价过  
于巨大,以至于无法进行。  
每一个角落渗透,因此网络安全成为目前人们关注的一个热点。  
本文介绍了网络安全[1]的基本概念和安全机制的分类,讨论了各  
种安全机制的原理及其设计规范,并给出了Python实现。  
1ꢀ ꢀ Python语言  
Python是一种解释型、面向对象、动态数据类型的高级程  
序设计语言。PythonGuido van Rossum1989年底发明,第一  
个公开发行版发行于1991年。Python语言看上去简单易懂、是  
一门高级编程语言,没有基础但想学编程的初学者,上手也很  
快,而且将来深入进去,也可以写出有难度、复杂的程序。  
Python语言有如下的特点[2]:  
常用的密码要素:  
1)随机数。随机数在安全协议中有着重要的应用。第  
一,在安全协议的相互认证中,使用一次性随机数作为nonce  
可防止消息重放攻击。第二,一次性随机数能构造双方的确认  
值。第三,随机数能作为密钥产生的种子。随机数在应用时,  
需要满足两种性质:随机性和不可预测性。  
1)简洁。函数式程序比他们对应的命令式程序精简,  
一般可缩短210倍,Python的保留字比较少。Python没有{}、  
分号、beginend等,代码使用制表键等分隔代码。Python简化  
了循环,使结构更加简洁。  
2)时间戳。在安全协议设计中,时间戳是一个很重要的  
概念,它不仅能保证信息的新鲜性,而且可作为非否认机制的基  
本要求。例如,在一个简单的发起者数字签名机制中,可能会发  
生由于发起者故意公开密钥然后鼓动撤销密钥从而导致自己过去  
的签名无效。为了预防这种攻击,就需要时间戳的参与。  
2)代码重用。Python语言类似于C++综合类的功能,内  
嵌了一些数据结构。这些数据结构包括元组、列表、字典等。  
这些结构简化了程序的编写。  
3)健壮性。Python使用try等语句实现异常处理机制,  
能够抛出程序的异常,Python的提供的堆栈能够指出程序的错  
误位置和原因,还能够避免不安全退出。比如文件读写时,忘  
记关闭文件对文件造成的读写错误。  
3ꢀ ꢀ 网络安全机制及Python实现  
在网络安全机制中,最基本的有:密码机制、数字签名机  
制,认证机制,访问控制机制等。由于篇幅有限,下面对基本  
的和常用的安全机制给予介绍和实现。  
1)对称加密机制  
对称密码机制也称为秘密密钥密码机制[4]、单密钥密码机  
制或常规密码机制,对称密码机制的基本特征是加密密钥与解  
密密钥相同。对称密码机制的基本元素包括原始的明文、加密  
算法、密钥、密文及攻击者。目前普遍使用的对称加密算法主  
要有DES3DESRC4RC5AESRijndeal算法)等,AES  
是目前最新的加密标准。下面是DES加密的Python实现:  
import pyDes  
4)跨平台。Python会先编译为与平台相关的二进制编  
码,然后在运行。该方式和Java类似。Python程序可以运行在  
MacWindowsUNIX及类UNIX平台上,经过少量的改动,  
在一种操作系统上编写的代码就可以迁移到另一种系统上。  
5)可扩展性。Python可以添加新的模块,可以嵌入到其  
他语言开发的项目中,Python代码具有脚本语言的特点  
6)应用广泛。Python语言应用广泛,目前Python语言已  
应用于多个领域,比如自然语言处理、网络、数据库、图形图  
像处理等,著名的云平台OpenStack也是使用Python语言开发,  
此外Python有许多第三方支持。  
encrypt_key = PYTHONKEY#加密密钥 DES需要8个  
字节  
mode = pyDes.CBC #密码工作模式,CBC(密文分组链  
接)  
2ꢀ ꢀ 密码学基础  
密码技术[3]涉及信息论、计算机科学和密码学等多方面知  
识,它的主要任务是研究计算机系统和通信网络内信息的保护  
方法以实现系统内信息的安全、保密、真实和完整。其中,信  
息安全的核心是密码技术。因此网络安全技术在21世纪将成为  
信息领域的前沿学科。随着计算机网络不断渗透到各个领域,  
密码学的应用也随之扩大。数字签名、身份鉴别、保密通信、  
数字证书等都是由密码学派生出来的新技术和应用。  
密码的基本思想是对机密信息进行伪装。一个密码系统完  
Init_value = \1\1\1\1\1\1\1\1#初始值  
plain = Hello everyone.#明文  
p2c = pyDes.des(encrypt_key, mode, Init_value, pad=None,  
padmode=pyDes.PAD_PKCS5)  
# pad:填充字符,padmode:填充模式  
dec = p2c.encrypt(data)  
print(“加密数据: %r% dec)  
ꢀ ꢀ  
科学与信息化2018年9月下  
57  
TECHNOLOGY AND INFORMATION  
IT技术论坛  
print (“解密数据:%r% k.decrypt(dec))  
from Crypto.Hash import SHA  
m = Good”  
2)非对称加密机制  
非对称密码机制也叫公开密钥密码机制、双密钥密码机  
制。其原理是加密密钥与解密密钥不同,形成一个密钥对,用  
其中一个密钥加密的结果,可以用另一个密钥来解密,目前普  
遍使用的对称加密算法主要有RSAElgamal(离散对数)、  
ECC(椭圆曲线)等。  
key = DSA.generate(1024)  
h = SHA.new(m).digest()  
k = random.StrongRandom().randint(1, key.q-1)  
print(k)  
sig = key.sign(h, k)  
公钥密码机制的特点是将加密和解密功能分开,因而能实  
现多个用户加密的消息只能由一个用户解密,或者一个用户加密  
的消息可被多个用户解读。前者用于消息的秘密传输,后者实现  
对用户身份的认证。两种加密机制相比,对称密码机制加解密的  
效率高,适于对大量数据进行加解密操作,但是如何在密文传输  
前,为公开网络上的通信双方分配对称密钥是个难题。  
公钥密码机制的公钥具有公开性,易于分配通信双方的会  
话密钥,但其加解密的效率低。因此在安全协议中,一般将两  
种机制有机地结合,来实现秘密消息的传输。  
下面是RSAPython实现:  
print(sig)  
if key.verify(h, sig):  
print(OK)  
else:  
print(Bad Signature!)  
4Hash函数  
Hash简单点讲就是把任意一段数据经过某种算法生成一段  
唯一的固定长度的数据,也叫作摘要。为了确保数据A免受意  
外或者故意(恶意)的修改,往往用这段数据A产生一个hash  
数据一起发送出去,Hash一般翻译做“散列”,也有直接音译  
为“哈希”的,就是把任意长度的输入(又叫作预映射,pre-  
image),通过散列算法,变换成固定长度的输出,该输出就是  
散列值。这种转换是一种压缩映射,也就是散列值的空间通常  
远小于输入的空间,不同的输入可能会散列成相同的输出,而  
不可能从散列值来唯一的确定输入值。目前常用的Hash函数有  
MD5128bit)和SHA-1160bits)等,它们都是以MD4为基础  
设计的。下面是hash函数的实现:  
import hashlib  
import rsa  
k = rsa.newkeys(3000) #生成随机秘钥  
pri_Key = k[1]  
pub_Key = k[0]  
#从列表中提取私钥  
#从列表中提取公钥  
plain_text =I love china.#明文  
print(加密前:,plain_text)  
plain_text = plain_text.encode()  
ciphertext = rsa.encrypt(plain_text, publicKey) #加密  
print(After encrypted:\n,ciphertext)  
num = num’  
plain_text = rsa.decrypt(ciphertext, privateKey)  
plain_text = plain_text.decode()  
hash_val = hashlib.(hash_val.encode(utf-8)) #编码为:  
utf-8  
print(After decrypted:,plain_text) #解密  
hash_val.hexdigest()  
3)数字签名  
5ꢀ ꢀ 结束语  
数字签名是以电子方式存储签名消息,是在数字文档上进  
行身份认证的技术。接收者和第三方能验证文档来自签名者,  
使签名者无法否认。信息发送者使用公开密钥算法的主要技术  
产生的别人无法伪造的一段数字串。发送者用自己的私有密钥  
加密数据后传给接收者,接收者用发送者的公钥解开数据后,就  
可确定消息来自于谁,同时也是对发送者发送的信息的真实性的  
一个证明,发送者对所发信息不能抵赖。数字签名中使用的加密  
算法有:①同时使用非对称加密和哈希函数;②目前最常用的是  
RSA签名算法,常见的是SHA-1RSAMD5RSA组合;③数  
字签名标准:DSAECDSADSSPython实现如下:  
from Crypto.Random import random  
近几十年来,世界各国学者对网络安全进行了较为广泛  
深入的研究。本章介绍了网络安全的基本概念。然后针对不同  
的网络安全机制进行了分析技术,并使用Python语言给予了实  
现。本文既可以对Python语言的入门学习者助一臂之力,又可  
以使网络安全的爱好者从中受益。  
参考文献  
[1] 卿斯汉.安全协议第1[M].北京:清华大学出版社,2005:1-149.  
[2] 周伟.Python技术详解[M].北京:机械工业出版社,2009:2-6.  
[3] 崔孝晨.Python绝技 运用Python成为顶级黑客[M].北京:电子工业  
出版社,2016:1-28.  
[4] 李永伦.Python密码学编程[M]. 北京:人民邮电出版社,2016:20-98.  
from Crypto.PublicKey import DSA  
(上接第56页)  
某个数据包出现问题,其他部分的数据将不会受到影响,由此  
保障信息数据完整性[3]。  
的泄露,要有一个更好的制度。  
参考文献  
[1] 耿娟.数据加密技术在计算机网络安全中的应用[J].电子技术与  
软件工程:信息安全,2014,06(12):235.  
4ꢀ ꢀ 结束语  
总之,计算机网络安全以及数据的加密是一项不停发展的  
综合技术。随着信息文化普及范围越来越大,网络安全问题也  
逐步显现出来,导致了网络外部与内部都面临着重大的威胁,  
加密技术是保证网络安全的关键性技术,数据的加密技术在网  
络安全防护中也起到了决定性的作用。因此,随着我国的发  
展,也需要研究出更好的方案,设计出更好的系统来防止信息  
[2] 魏瑞良.计算机网络通信安全中数据加密技术的研究与应用[D].  
北京:中国地质大学,2013.  
[3] 朱闻亚.数据加密技术在计算机网络安全中的应用价值研究[J].  
制造业自动化,2012,34(3):35-36.  
ꢀ ꢀ  
58  
科学与信息化2018年9月下  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载