999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

物聯(lián)網(wǎng)安全課程中的密碼學算法教學改革

2018-09-21 10:46:52余健
物聯(lián)網(wǎng)技術 2018年7期
關鍵詞:物聯(lián)網(wǎng)

余健

摘 要:針對物聯(lián)網(wǎng)安全課程《密碼學算法實驗》教學中存在的問題,分析目前《密碼學算法實驗》教學中采用的軟件所存在的弊病,提出以Python語言為實驗編程工具的觀點。

關鍵詞:信息安全;密碼學;Python;物聯(lián)網(wǎng)

中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2018)07-0-03

0 引 言

密碼學算法是物聯(lián)網(wǎng)安全等信息安全課程教學的基礎[1]。密碼學算法的教學效果直接影響到學生對物聯(lián)網(wǎng)安全課程的掌握程度。目前密碼學算法的實驗教學采用現(xiàn)成的密碼學算法軟件演示[2],或采用C,C++及Matlab等編程實現(xiàn),但是密碼學算法軟件的演示只是使學生了解算法的最終結果,無法使學生理解算法原理;采用C,C++等高級語言編程實現(xiàn)密碼學算法,有利于學生掌握算法原理,但在實驗教學當中,學生普遍反映編程難度大,算法實現(xiàn)繁瑣等問題;而采用Matlab編程的優(yōu)點是編程語言簡單、算法容易實現(xiàn),缺點是無法直接應用于實際項目中。

因此,采用合適的編程語言對密碼學算法的實踐教學改革是極其重要的[3]。Python語言被稱為膠水語言[4],它具有Matlab語言的優(yōu)點,并且應用范圍廣,采用Python語言編程可直接應用于各個領域[5]。考慮到Python語言的簡單易用性,以及包含了大量的算法包,密碼學算法實驗教學全部采用Python編程實現(xiàn)。這樣既能夠加深學生對密碼學算法的理解,提高學生的編程能力和應用能力,也有利于學生編寫軟件參加學科競賽及各種項目,提高學生的職業(yè)素養(yǎng)和職業(yè)能力。

密碼學算法實驗主要包括古典密碼學實驗、DES和AES對稱密碼學算法實驗和RSA公鑰密碼學算法實驗[6-8]。

1 古典密碼學實驗

古典密碼學算法主要包括凱撒密碼、維吉尼亞密碼和Hill矩陣加密算法。采用Python語言編程實現(xiàn),以凱撒密碼為例,代碼如下所示:

def Encrypt(P,key)://加密函數(shù)

P = list(P)

P = map(ord,P)

import numpy as np

P = np.array(P)

P = P - ord(‘a(chǎn))

C =(P + key)%26

C = C + ord(‘A)

C = map(chr,C)

C = ‘.join(C)

return C

def Decrypt(C,key): //解密函數(shù)

C = list(C)

D = map(ord,C)

import numpy as np

D = np.array(D)

D = D-ord(‘A)

D =(D-key)%26

D = D + ord(‘a(chǎn))

D = map(chr,D)

D =‘.join(D)

return D

#主函數(shù)

user_input=raw_input(‘加密請按E,解密請按D:);

while(user_input!=‘E and user_input!=‘D):

//輸入合法性判斷

user_input=raw_input(‘輸入有誤!請重新輸入:)

key=raw_input(‘請輸入密鑰:)

while(int(key.isdigit()==0))://輸入合法性判斷

key=raw_input(‘輸入有誤!密鑰為數(shù)字,請重新輸入:)

if user_input==‘E://加密

P=raw_input(‘請輸入明文:)

C=Encrypt(P,int(key))

print ‘密文為:\n%s % C

else://解密

C=raw_input(‘請輸入密文:)

P=Decrypt(C,int(key))

print ‘明文為:\n%s % P

學生完成了凱撒密碼算法的實現(xiàn)之后,可讓在以上程序的基礎上,進一步實現(xiàn)維吉尼亞密碼。

2 DES和AES對稱加密算法實驗

數(shù)據(jù)加密標準(Data Encryption Standard,DES),除了被廣泛應用于金融交易中,它還被嵌入到許多商業(yè)應用中。1977年美國國家標準局正式公布實施了美國的數(shù)據(jù)加密標準(DES),公開了它的加密算法,并批準用于非機密單位和商業(yè)上的保密通信。高級加密標準(Advanced Encryption Standard,AES)又稱為Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標準。該標準用來替代日益不安全的DES算法。

DES和AES算法的實現(xiàn)比較復雜,采用Python語言做實驗時,可以調(diào)用Crypto密碼學算法包的相關函數(shù)來實現(xiàn),具體的編程代碼如下所示:

# DES加密解密

from Crypto.Cipher import DES

from Crypto import Random

key =‘keyskeys//必須為8 B

plaintext = ‘計算機與信息工程

print ‘明文:,plaintext

cipher = DES.new(key,DES.MODE_ECB)

ciphertext = cipher.encrypt(plaintext)

print ‘密文:,ciphertext.encode(‘hex) //16進制表示

decrypttext = cipher.decrypt(ciphertext)

print ‘解密結果:,decrypttext

# AES 加密解密

from Crypto.Cipher import AES

from binascii import b2a_hex,a2b_hex

from Crypto import Random

def encrypt(text,key,IV):

cryptor = AES.new(key,AES.MODE_CBC,IV)

length = 16

count = len(text)

add = length-(count% length)

text = text +(‘\0 * add)

ciphertext = cryptor.encrypt(text)

return b2a_hex(ciphertext)

def decrypt(text,key,IV):

cryptor = AES.new(key,AES.MODE_CBC,IV)

plain_text = cryptor.decrypt(a2b_hex(text))

return plain_text.rstrip(‘\0)//解密后,去掉補足的空格

key = ‘keyskeyskeyskeys

#初始化密鑰,密鑰長度必須16,24或32 B長

plaintext = ‘韓山師范學院

print ‘明文:,plaintext

IV = Random.new().read(AES.block_size)

//加密或解密的初始化向量

ciphertext = encrypt(plaintext,key,IV)

decrypttext = decrypt(ciphertext,key,IV)

print‘密文:,ciphertext

print‘解密結果:,decrypttext

在DES和AES對稱密碼算法實驗中,要強調(diào)DES的密鑰必須為8 B,而AES的密鑰為16,24或32 B,DES的加密文本長度必須為8 B的倍數(shù),而AES的加密文本長度必須為16,24或32 B的倍數(shù)。

3 RSA公鑰密碼學算法實驗

RSA公鑰密碼學算法廣泛應用于信息安全領域,包括非對稱加密解密、認證技術以及數(shù)字簽名等。RSA算法主要通過求乘法逆元、加密和解密函數(shù)實現(xiàn)。這三個函數(shù)的Python代碼如下所示:

def multip_inverse(e,fn):

A=0; B=1; m=fn;

b=e; Q=m/b; R=m%b;

while(R>1):

X=A-Q×B; A=B;

B=X; m=b; b=R;

Q=m/b; R=m%b;

if(R == 1):

X=A-Q×B

return X% fn

if(R == 0):

print ‘乘法逆元不存在!

return ‘none

def Encrypt(P,e,n)://加密函數(shù)

C =( P×e)%n//加密得出密文C

return C

def Decrypt(C,d,n)://解密函數(shù)

D =(C×d)%n//解密得出明文P

return D

另外,學生在完成RSA公鑰密碼學算法的基礎上,讓學生完成RSA數(shù)字簽名程序,進一步提高學生的實踐能力。

4 結 語

通過以上示例,我們可以發(fā)現(xiàn),使用Python語言實現(xiàn)密碼學算法,簡單易用,學生容易掌握,可降低使用高級語言編寫密碼學法的難度,又能提高學生的學習興趣。除了古典密碼學實驗,DES和AES對稱密碼學算法實驗和RSA公鑰密碼學算法實驗,還可布置一些趣味密碼學問題,例如分別采用蠻力破解和字典攻擊方法破解壓縮文件密碼,破解無線WiFi密碼和破解谷哥瀏覽器登錄密碼等,提高學生對這些課程的學習興趣,增強實踐能力和應用能力。通過在物聯(lián)網(wǎng)安全的實驗教學中采用Python編程工具,鍛煉了學生的實際編程能力。筆者指導的學生參加2106年和2017年全國信息安全競賽(作品賽),共獲得了3個三等獎。對其他高校物聯(lián)網(wǎng)安全課程中的密碼學算法教學改革具有一定借鑒意義。

參考文獻

[1]胡小明,楊寅春,吳秀梅,等. 信息安全專業(yè)密碼學課程教學改革[J]. 計算機教育,2014(1):49-52.

[2]李曦. 密碼學課程實踐教學存在的問題及改進措施[J]. 高等教育研究:成都,2011(2):23-24.

[3]王少輝,王志偉. 密碼學課程設計探索與實踐[J]. 課程教育研究,2013(1):15-16.

[4]嵩天,黃天羽,禮欣. Python語言:程序設計課程教學改革的理想選擇[J]. 中國大學教學,2016(2).

[5]葉磊,文濤,劉立亮,等. 基于Python的網(wǎng)絡及信息系統(tǒng)安全過程管理工具[J]. 數(shù)字技術與應用,2011(9):293.

[6]徐鵬,薜偉.抗差分功耗攻擊的DES算法研究[J]. 計算機仿真,2018(1)282-286.

[7]付春燕,宋英雄,郭鵬程,等. 基于AES數(shù)據(jù)加密的網(wǎng)關通信設計[J]. 電子測量技術,2018(2):55-60.

[8]石井,吳哲,譚璐,等. RSA數(shù)據(jù)加密算法的分析與改進[J]. 濟南大學學報(自然科學版),2013(3):66-69.

猜你喜歡
物聯(lián)網(wǎng)
基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運輸管理系統(tǒng)設計與應用
基于高職院校物聯(lián)網(wǎng)技術應用人才培養(yǎng)的思考分析
基于LABVIEW的溫室管理系統(tǒng)的研究與設計
論智能油田的發(fā)展趨勢及必要性
中國或成“物聯(lián)網(wǎng)”領軍者
主站蜘蛛池模板: 亚洲精品成人片在线播放| 国产精品露脸视频| 国产91精选在线观看| 国产h视频免费观看| 亚洲丝袜第一页| 亚洲高清在线天堂精品| 免费国产高清精品一区在线| 精品黑人一区二区三区| 一本大道AV人久久综合| 999国内精品视频免费| 国产午夜精品一区二区三| 亚洲天堂网在线观看视频| 91福利片| 久久久久无码精品| 成人蜜桃网| 亚洲va欧美va国产综合下载| 久久精品国产91久久综合麻豆自制| 国产18页| 午夜人性色福利无码视频在线观看| 一级毛片中文字幕| 亚洲精品中文字幕午夜| 亚洲 欧美 偷自乱 图片| 精品综合久久久久久97超人| 国产sm重味一区二区三区| 日韩麻豆小视频| 波多野结衣久久高清免费| 久久99热66这里只有精品一| 欧美另类精品一区二区三区| 日韩欧美国产成人| 色欲国产一区二区日韩欧美| 99青青青精品视频在线| 日韩少妇激情一区二区| 国产97区一区二区三区无码| 久草青青在线视频| 久久精品这里只有精99品| 国产成人综合亚洲网址| av在线手机播放| 欧美一区二区精品久久久| 五月天福利视频| 91欧美亚洲国产五月天| 色国产视频| 99精品视频播放| 久久国产V一级毛多内射| 国产成人AV男人的天堂| 人妻丰满熟妇av五码区| 欧美综合区自拍亚洲综合天堂| 亚洲香蕉在线| 高清久久精品亚洲日韩Av| 欧美午夜在线视频| 国产精品无码制服丝袜| av天堂最新版在线| 中字无码精油按摩中出视频| 国产午夜精品鲁丝片| 2024av在线无码中文最新| 亚洲黄网在线| 日韩大片免费观看视频播放| а∨天堂一区中文字幕| 婷婷伊人五月| 丝袜国产一区| 成·人免费午夜无码视频在线观看| 国产激爽爽爽大片在线观看| www欧美在线观看| www.国产福利| 亚洲三级电影在线播放| av色爱 天堂网| 亚洲男人天堂久久| 日韩在线欧美在线| 精品小视频在线观看| av手机版在线播放| 无码日韩人妻精品久久蜜桃| 日本午夜影院| 首页亚洲国产丝袜长腿综合| 国产精品一线天| 国产中文在线亚洲精品官网| 五月激情婷婷综合| 亚洲天堂视频在线免费观看| 啪啪免费视频一区二区| 国产高颜值露脸在线观看| 99re视频在线| 黄片一区二区三区| 亚洲永久免费网站| 99视频在线精品免费观看6|