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

?

基于Matlab的密碼編碼教學(xué)思考與實(shí)踐

2021-09-30 04:01:36王利濤李敏邢宇航
教育教學(xué)論壇 2021年37期
關(guān)鍵詞:教學(xué)研究教學(xué)實(shí)踐

王利濤 李敏 邢宇航

[摘 要] 針對(duì)“密碼學(xué)”課程教學(xué)實(shí)踐中存在的編碼理論理解難度大、算法編碼實(shí)現(xiàn)入手難、編譯運(yùn)行過程相對(duì)復(fù)雜、難以結(jié)合算法編碼開展課堂教學(xué)等現(xiàn)實(shí)問題,首先分析了現(xiàn)有的教學(xué)過程和方法,然后分別結(jié)合AES和ECC兩種典型的密碼算法,對(duì)傳統(tǒng)純理論授課和基于C/C++語言授課中存在的問題進(jìn)行分析,結(jié)合Matlab語言的特點(diǎn)和優(yōu)勢,提出基于Matlab的密碼編碼教學(xué)方式,提出了對(duì)教學(xué)設(shè)計(jì)的一些考慮,闡述了教學(xué)實(shí)踐過程,通過實(shí)際教學(xué)分析說明了教學(xué)的效果,最后給出了進(jìn)一步教學(xué)應(yīng)用的方向。

[關(guān)鍵詞] 密碼編碼;教學(xué)實(shí)踐;教學(xué)研究

[基金項(xiàng)目] 2015年度國家社會(huì)科學(xué)基金項(xiàng)目“大數(shù)據(jù)技術(shù)在內(nèi)網(wǎng)輿論掌控與導(dǎo)向中的應(yīng)用研究”(No.15GJ003-243)

[作者簡介] 王利濤(1983—),男,河南許昌人,博士,火箭軍工程大學(xué)作戰(zhàn)保障學(xué)院講師,主要從事密碼與信息安全教學(xué)與改革研究;李 敏(1971—),女,河南扶溝人,博士,火箭軍工程大學(xué)作戰(zhàn)保障學(xué)院教授,主要從事信息安全、人工智能與機(jī)器學(xué)習(xí)等研究;邢宇航(1979—),男,河南南陽人,博士,火箭軍工程大學(xué)作戰(zhàn)保障學(xué)院副教授,主要從事信息安全研究。

[中圖分類號(hào)] G642.0? ?[文獻(xiàn)標(biāo)識(shí)碼] A? ?[文章編號(hào)] 1674-9324(2021)37-0077-04? ? [收稿日期] 2021-04-06

一、引言

近年來,隨著網(wǎng)絡(luò)安全事件頻發(fā)及人們對(duì)個(gè)人隱私保護(hù)的關(guān)注,全社會(huì)對(duì)信息安全的重視程度也在不斷提高,各高校在越來越多的專業(yè)開設(shè)了信息安全類相關(guān)課程,而“密碼學(xué)”作為信息安全的基礎(chǔ)更是此類課程的首選。然而,由于其對(duì)數(shù)學(xué)理論要求較強(qiáng),已成為許多工程類專業(yè)學(xué)生學(xué)習(xí)起來難度最大的課程之一。

“密碼學(xué)”(特別是密碼編碼部分)教學(xué)內(nèi)容涉及的知識(shí)跨度廣、課程難度高、理論性和應(yīng)用性均比較強(qiáng)[1],通常需要諸多數(shù)學(xué)類課程作為基礎(chǔ),而學(xué)生對(duì)這些基礎(chǔ)課程的掌握不同,因此教學(xué)內(nèi)容與授課方式將直接影響學(xué)生對(duì)知識(shí)的掌握和能力的提升。對(duì)此,現(xiàn)有研究嘗試用密碼學(xué)實(shí)驗(yàn)工具CryptTool開展教學(xué)[2],但該工具只展現(xiàn)了算法輸入與輸出結(jié)果,難以展現(xiàn)密碼算法的過程和細(xì)節(jié)。我們在教學(xué)過程中,曾嘗試使用編碼教學(xué)與密碼算法講解相結(jié)合的方式,取得了一定的效果,但由于C/C++語言編程過程相對(duì)繁雜,編譯調(diào)試耗時(shí)較長,占用了較多的課堂時(shí)間,也影響到了教學(xué)的體驗(yàn)。通過分析研究其他理論性要求較高課程的優(yōu)秀教學(xué)方法[3-5],并結(jié)合科研工程實(shí)踐,基于Matlab語言具有易于學(xué)習(xí)、編碼簡單、運(yùn)行直接等諸多優(yōu)點(diǎn),將Matlab用到“密碼學(xué)”的教學(xué)中,并在隨后開展了相關(guān)的教學(xué)實(shí)踐。本文以AES和ECC算法為例,對(duì)基于Matlab的編碼教學(xué)內(nèi)容與方式進(jìn)行實(shí)踐和分析。

二、Matlab在AES教學(xué)中的實(shí)踐

AES屬于對(duì)稱密碼算法,作為許多軟件應(yīng)用的加密算法進(jìn)行數(shù)據(jù)保護(hù),如在WinRAR、Office文件加密及WIFI安全認(rèn)證等應(yīng)用中仍在使用。AES算法設(shè)計(jì)精妙,體現(xiàn)了很多基本的密碼算法設(shè)計(jì)思想,個(gè)別計(jì)算處理環(huán)節(jié)涉及有限域數(shù)學(xué)知識(shí)和編程技巧,在教學(xué)中基于Matlab編碼開展講解展現(xiàn)出了明顯的優(yōu)勢。

(一)AES一般授課特點(diǎn)分析

AES是迭代型分組密碼算法,分組長度128比特,密鑰長度128、192、256比特可選,分別對(duì)應(yīng)10、12、14個(gè)圈子運(yùn)算。每個(gè)圈子運(yùn)算都包括字節(jié)代替變換、行移位變換、列混合變換及圈密鑰加。圈密鑰加運(yùn)算法的前提是進(jìn)行圈子密鑰生成。

若不考慮設(shè)計(jì)理論細(xì)節(jié),AES字節(jié)代替就是一個(gè)S盒查詢變換,行移位是一種線性變換,圈密鑰加則是將行移位的結(jié)果與圈子密鑰按比特進(jìn)行異或運(yùn)行。最復(fù)雜的是列混合變換,其數(shù)學(xué)基礎(chǔ)是有限域GF(28)上的加法和乘法兩種面向字節(jié)的運(yùn)算,其中加法運(yùn)算可以看作是兩個(gè)字節(jié)按比特異或,較容易理解;而乘法運(yùn)算對(duì)應(yīng)多項(xiàng)式的乘積模上二元域GF(2)上的8次不可約多項(xiàng)式m(x),m(x)=x8+x4+x3+x+1;而進(jìn)一步推導(dǎo)后發(fā)現(xiàn),乘法運(yùn)算可通過左移運(yùn)算和異或運(yùn)算來實(shí)現(xiàn)。

針對(duì)AES算法,一般的講授方法是,先對(duì)基本的數(shù)學(xué)基礎(chǔ)進(jìn)行講解(此為難點(diǎn)知識(shí),個(gè)別授課中可能略去不講),然后列出算法結(jié)構(gòu),再按照各步驟進(jìn)行分解講授,最后再回到整體來講解算法的過程,該過程按部就班,能夠講出知識(shí)點(diǎn)細(xì)節(jié),但學(xué)生學(xué)起來比較抽象,教學(xué)效果差。

(二)用Matlab編碼進(jìn)行AES算法授課思考

針對(duì)原教學(xué)方法中的問題,為使算法結(jié)構(gòu)更加清楚,密碼算法編碼設(shè)計(jì)過程更形象地展示出來,設(shè)計(jì)使用基于Matlab的輔助教學(xué)方法。在備課階段,先對(duì)AES算法進(jìn)行Matlab編碼,主程序(如圖1所示)框架簡單明了,與算法結(jié)構(gòu)框圖有明確的對(duì)應(yīng)關(guān)系,而且算法執(zhí)行邏輯也直接體現(xiàn)出來,對(duì)于一些測試數(shù)據(jù)也可以通過斷點(diǎn)調(diào)試方法查看數(shù)據(jù)的變化情況,能夠讓學(xué)生更深刻地掌握算法的邏輯結(jié)構(gòu)及數(shù)據(jù)的處理過程,從而更好地掌握相關(guān)知識(shí)要點(diǎn)。

AES算法Matlab代碼簡要說明:加密算法中,輸入明文PT是4×4的矩陣(16字節(jié)共128比特,是AES算法的要求);密鑰KEY可以是16、24或32字節(jié)(byte),即128、192、256三種密鑰長度可選;判斷輸入后,由函數(shù)KeyGenEnc計(jì)算執(zhí)行迭代的次數(shù)Nrnd,并生成所需的圈子密鑰EncKey。

進(jìn)行AES加密運(yùn)算時(shí),首先進(jìn)行一次圈子密鑰加運(yùn)算,程序中為SubKeyAdd(CT,EncKey(:, :, 1);然后進(jìn)行Nrnd次輪運(yùn)算,包括字節(jié)代替AESSBox,行移位ShiftRows,列混合MixColumn(當(dāng)i~=Nrnd時(shí),即在最后一輪之前都要進(jìn)行列混合運(yùn)算)和圈子密鑰加SubKeyAdd運(yùn)算,運(yùn)行執(zhí)行完畢即得到密文CT。從圖1中可以看出,Matlab程序與AES算法框架有關(guān)明顯的對(duì)應(yīng)關(guān)系,且程序結(jié)構(gòu)簡潔明了,輸入明文分組與密鑰參數(shù)后,在Matlab中調(diào)試運(yùn)行可進(jìn)一步使學(xué)生看到運(yùn)行細(xì)節(jié),更好地體驗(yàn)數(shù)據(jù)在算法中的變化過程。

猜你喜歡
教學(xué)研究教學(xué)實(shí)踐
高中數(shù)學(xué)復(fù)習(xí)課教學(xué)研究
高中數(shù)學(xué)教學(xué)研究
基于三維軟件和云班課APP的機(jī)械設(shè)計(jì)課程教學(xué)實(shí)踐
職業(yè)(2016年10期)2016-10-20 22:23:49
中職職業(yè)生涯規(guī)劃課程的教學(xué)反思
職業(yè)(2016年10期)2016-10-20 21:59:29
中職計(jì)算機(jī)應(yīng)用課程教學(xué)改革與反思
科技視界(2016年21期)2016-10-17 18:57:24
淺論高中化學(xué)生活化教學(xué)的實(shí)踐與思考
考試周刊(2016年79期)2016-10-13 23:10:24
淺談初中物理實(shí)驗(yàn)教學(xué)與學(xué)生創(chuàng)新能力的培養(yǎng)
考試周刊(2016年79期)2016-10-13 23:09:42
測量平差課程教學(xué)改革探討與實(shí)踐
考試周刊(2016年79期)2016-10-13 21:37:05
交替?zhèn)髯g中聽記平衡教學(xué)研究
中職高考與教學(xué)研究
张家口市| 杨浦区| 鸡西市| 都昌县| 兴和县| 阿尔山市| 阿图什市| 石嘴山市| 清水县| 河源市| 张家川| 兴义市| 本溪市| 桂林市| 岢岚县| 太湖县| 开平市| 蓬溪县| 古浪县| 阿巴嘎旗| 杭州市| 伊金霍洛旗| 舞钢市| 天等县| 郸城县| 许昌市| 鄂托克前旗| 拜泉县| 高阳县| 镇远县| 怀集县| 郓城县| 神池县| 库伦旗| 西安市| 永康市| 屯昌县| 抚顺县| 珲春市| 金溪县| 梅州市|