摘要:本文用“簡(jiǎn)單模仿、快速入門(mén);總結(jié)思考、逐慚提高;典型項(xiàng)目、終得收獲”的“二十四字實(shí)訓(xùn)課教學(xué)方法”對(duì)密鑰學(xué)中非對(duì)稱(chēng)密鑰的教學(xué)進(jìn)行了分析講解,希望對(duì)電子類(lèi)專(zhuān)業(yè)實(shí)訓(xùn)課的教學(xué)有一定借鑒和啟發(fā)作用。
關(guān)鍵詞:密鑰學(xué);教學(xué)方法
為了更好提高高職院校實(shí)訓(xùn)課教學(xué)效果,我們?cè)陂L(zhǎng)期的職業(yè)教育、特別是高職教育的教學(xué)過(guò)程中,總結(jié)提煉出“簡(jiǎn)單模仿、快速入門(mén);總結(jié)思考、逐慚提高;典型項(xiàng)目、終得收獲”的“二十四字實(shí)訓(xùn)課教學(xué)方法”。下面我們就以非對(duì)稱(chēng)密鑰RSA的實(shí)訓(xùn)課為例來(lái)講解如何利用該方法進(jìn)行實(shí)訓(xùn)課教學(xué)。
一、簡(jiǎn)單模仿、快速入門(mén)
對(duì)非對(duì)稱(chēng)密鑰RSA的掌握要讓學(xué)生掌握非對(duì)稱(chēng)密鑰對(duì)(e,n),(d,n)的生成過(guò)程。具體由以下5步完成:
1、選取任意兩個(gè)大系數(shù)p、q;簡(jiǎn)單地:15、17;
2、計(jì)算n=p*q; 得:n=255;
3、計(jì)算中間結(jié)果t=(p-1)*(q-1);t=224;
4、選擇一個(gè)e,要求e與t互質(zhì);e=45
5、計(jì)算d,要求d滿足:d*emodt=1,即是d*e除以t余數(shù)為1。選d=5
以上即是RSA的算法涉及三個(gè)參數(shù),n、e、d。(e,n),(d,n)就是密鑰對(duì),其中 (e,n)=(45,255)為公鑰,(d,n)=(5,255)為私鑰。
其實(shí)RSA加解密的算法完全相同,設(shè)A為明文,B為密文,則:B≡A^e mod n;A=B^d mod n;簡(jiǎn)單地:設(shè)明文A=3,通過(guò)公鑰(45,255)加密可得3^45mod255=63,即密文B=63?,F(xiàn)通過(guò)私鑰(5,255)可得:63^5mod255=3,即得到明文:3。
以上就是非對(duì)稱(chēng)密鑰的簡(jiǎn)單演示。
接下來(lái)就可以讓同學(xué)們完全模仿上述操作一遍,如能成功,那同學(xué)們就有點(diǎn)信心了。
二、總結(jié)思考、逐慚提高
現(xiàn)在就讓同學(xué)們總結(jié)一下這個(gè)實(shí)驗(yàn),就是生成二個(gè)密鑰對(duì),一共分五步。前四步都非常簡(jiǎn)單,特別是前三步只需按部就班即可,難點(diǎn)主要在于第五步:找出滿足條件的d。下面我們可讓同學(xué)們自己來(lái)找一對(duì)非對(duì)稱(chēng)密鑰對(duì)。
1、選取任意兩個(gè)大素?cái)?shù)p、q;簡(jiǎn)單地:7、13;
2、計(jì)算n=p*q; 得:n=91;
3、計(jì)算中間結(jié)果t=(p-1)*(q-1);t=72;
4、選擇一個(gè)e,要求e與t互質(zhì);e=7
5、計(jì)算d,要求d滿足:d*emodt=1,即是d*e除以t余數(shù)為1。選d=31
以上即是RSA的算法涉及三個(gè)參數(shù),n、e、d。(e,n),(d,n)就是密鑰對(duì),其中 (e,n)=(7,91)為公鑰,(d,n)=(31,91)為私鑰。
其實(shí)RSA加解密的算法完全相同,設(shè)A為明文,B為密文,則:B≡A^e mod n;A=B^d mod n;簡(jiǎn)單地:設(shè)明文A=33,通過(guò)公鑰(7,91)加密可得33^7mod91=19,即密文B=19?,F(xiàn)通過(guò)私鑰(31,91)可得:19^31mod91=33,即用私鑰解密得到明文:33。
經(jīng)過(guò)以上的總結(jié)思考,且自己試著找到了一對(duì)非對(duì)稱(chēng)密鑰。從而加深了學(xué)生對(duì)非對(duì)稱(chēng)密鑰的理解和掌握。
三、典型項(xiàng)目、終得收獲
以上二個(gè)實(shí)例通過(guò)簡(jiǎn)單計(jì)算便可實(shí)現(xiàn)。下面是一用python編程實(shí)現(xiàn)一般非對(duì)稱(chēng)加密(由于篇幅原因代碼省略)的方法。
首先生成p、q,然后得到(e,n)、(d,n)
輸入明文A=”123456“
參考文獻(xiàn):
[1]【加】Douglas R.Stinson 著 馮登國(guó)譯.密碼學(xué)原理與實(shí)踐.電子工業(yè)出版社,2009.
[2] 陳陵 電腦迷 2018
作者簡(jiǎn)介:
陳陵,男,1963年3月,漢族,重慶人,本科學(xué)歷,數(shù)學(xué)副教授,重慶工貿(mào)職業(yè)技術(shù)學(xué)院汽車(chē)與電子工程系,主要從事電子商務(wù)、數(shù)學(xué)建模的教學(xué)研究。