国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2018-09-21 10:46余健
物聯(lián)網(wǎng)技術(shù) 2018年7期
關(guān)鍵詞:密碼學(xué)物聯(lián)網(wǎng)信息安全

余健

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

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

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2018)07-0-03

0 引 言

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

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

密碼學(xué)算法實(shí)驗(yàn)主要包括古典密碼學(xué)實(shí)驗(yàn)、DES和AES對(duì)稱密碼學(xué)算法實(shí)驗(yàn)和RSA公鑰密碼學(xué)算法實(shí)驗(yàn)[6-8]。

1 古典密碼學(xué)實(shí)驗(yàn)

古典密碼學(xué)算法主要包括凱撒密碼、維吉尼亞密碼和Hill矩陣加密算法。采用Python語(yǔ)言編程實(shí)現(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(‘加密請(qǐng)按E,解密請(qǐng)按D:);

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

//輸入合法性判斷

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

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

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

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

if user_input==‘E://加密

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

C=Encrypt(P,int(key))

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

else://解密

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

P=Decrypt(C,int(key))

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

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

2 DES和AES對(duì)稱加密算法實(shí)驗(yàn)

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

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

# DES加密解密

from Crypto.Cipher import DES

from Crypto import Random

key =‘keyskeys//必須為8 B

plaintext = ‘計(jì)算機(jī)與信息工程

print ‘明文:,plaintext

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

ciphertext = cipher.encrypt(plaintext)

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

decrypttext = cipher.decrypt(ciphertext)

print ‘解密結(jié)果:,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)//解密后,去掉補(bǔ)足的空格

key = ‘keyskeyskeyskeys

#初始化密鑰,密鑰長(zhǎng)度必須16,24或32 B長(zhǎng)

plaintext = ‘韓山師范學(xué)院

print ‘明文:,plaintext

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

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

ciphertext = encrypt(plaintext,key,IV)

decrypttext = decrypt(ciphertext,key,IV)

print‘密文:,ciphertext

print‘解密結(jié)果:,decrypttext

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

3 RSA公鑰密碼學(xué)算法實(shí)驗(yàn)

RSA公鑰密碼學(xué)算法廣泛應(yīng)用于信息安全領(lǐng)域,包括非對(duì)稱加密解密、認(rèn)證技術(shù)以及數(shù)字簽名等。RSA算法主要通過求乘法逆元、加密和解密函數(shù)實(shí)現(xiàn)。這三個(gè)函數(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

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

4 結(jié) 語(yǔ)

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

參考文獻(xiàn)

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

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

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

[4]嵩天,黃天羽,禮欣. Python語(yǔ)言:程序設(shè)計(jì)課程教學(xué)改革的理想選擇[J]. 中國(guó)大學(xué)教學(xué),2016(2).

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

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

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

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

猜你喜歡
密碼學(xué)物聯(lián)網(wǎng)信息安全
圖靈獎(jiǎng)獲得者、美國(guó)國(guó)家工程院院士馬丁·愛德華·海爾曼:我們正處于密鑰學(xué)革命前夕
保護(hù)信息安全要滴水不漏
密碼學(xué)課程教學(xué)中的“破”與“立”
高校信息安全防護(hù)
中國(guó)或成“物聯(lián)網(wǎng)”領(lǐng)軍者
保護(hù)個(gè)人信息安全刻不容緩
矩陣在密碼學(xué)中的應(yīng)用
信息安全
密碼學(xué)的課程特點(diǎn)及教學(xué)方法探討
长治市| 平安县| 柘城县| 会东县| 驻马店市| 成都市| 荥阳市| 仙居县| 九台市| 楚雄市| 垣曲县| 麻城市| 永平县| 新密市| 武山县| 余姚市| 东兰县| 石河子市| 阜阳市| 孟津县| 衡东县| 镇坪县| 环江| 新竹市| 视频| 宁强县| 赣榆县| 平顺县| 东乡| 布尔津县| 仁寿县| 兴国县| 民丰县| 思南县| 无锡市| 大荔县| 余干县| 澎湖县| 宁晋县| 武汉市| 阳东县|