亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        余健

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

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

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

        0 引 言

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

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

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

        1 古典密碼學(xué)實驗

        古典密碼學(xué)算法主要包括凱撒密碼、維吉尼亞密碼和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

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

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

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

        DES和AES算法的實現(xiàn)比較復(fù)雜,采用Python語言做實驗時,可以調(diào)用Crypto密碼學(xué)算法包的相關(guān)函數(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 ‘解密結(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)//解密后,去掉補足的空格

        key = ‘keyskeyskeyskeys

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

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

        3 RSA公鑰密碼學(xué)算法實驗

        RSA公鑰密碼學(xué)算法廣泛應(yīng)用于信息安全領(lǐng)域,包括非對稱加密解密、認證技術(shù)以及數(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

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

        4 結(jié) 語

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

        參考文獻

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

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

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

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

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

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

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

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

        猜你喜歡
        物聯(lián)網(wǎng)
        基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運輸管理系統(tǒng)設(shè)計與應(yīng)用
        基于高職院校物聯(lián)網(wǎng)技術(shù)應(yīng)用人才培養(yǎng)的思考分析
        基于LABVIEW的溫室管理系統(tǒng)的研究與設(shè)計
        論智能油田的發(fā)展趨勢及必要性
        中國或成“物聯(lián)網(wǎng)”領(lǐng)軍者
        亚洲人成精品久久久久| 中文字幕人妻伦伦| 国产成熟人妻换╳╳╳╳| 伊人久久中文大香线蕉综合| 午夜日本精品一区二区| 国产精品成人av大片| 国产偷国产偷精品高清尤物| 国产白嫩美女在线观看| AV在线中出| 人妖啪啪综合av一区| 玩弄放荡人妇系列av在线网站| 亚洲永久精品ww47| 国产欧美久久久精品影院| av在线播放免费观看| 久久精品国产自在天天线| 中文字幕美人妻亅u乚一596| 亚洲成av人无码免费观看| 国产精品熟女视频一区二区三区| 2019日韩中文字幕mv| 国产日韩成人内射视频| 蜜桃一区二区三区自拍视频| 国产av一级片在线观看| 人人爽久久涩噜噜噜丁香| 国产色噜噜| 亚洲一区二区三区亚洲| 人妻熟妇乱又伦精品hd| 亚洲精品久久国产高清情趣图文| 亚洲www视频| 蜜桃网站免费在线观看视频| 国产啪亚洲国产精品无码| 一区二区国产在线观看| 精品蜜桃av一区二区三区| 人妻少妇精品视频专区vr| 人妻丰满熟妇av无码片| 在线观看一区二区女同| 少妇被猛烈进入中文字幕| 亚洲人成人无码www影院| 亚洲黄视频| 精品专区一区二区三区| 日韩人妻不卡一区二区三区| 国产高潮国产高潮久久久|