教科版必修一數(shù)據(jù)與計(jì)算3-4加密與解密_第1頁(yè)
教科版必修一數(shù)據(jù)與計(jì)算3-4加密與解密_第2頁(yè)
教科版必修一數(shù)據(jù)與計(jì)算3-4加密與解密_第3頁(yè)
教科版必修一數(shù)據(jù)與計(jì)算3-4加密與解密_第4頁(yè)
教科版必修一數(shù)據(jù)與計(jì)算3-4加密與解密_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

3.4加密與解密本節(jié)內(nèi)容按2課時(shí)設(shè)計(jì)。第一課時(shí)教學(xué)重難點(diǎn)【教學(xué)重點(diǎn)】會(huì)分析生活中由密碼引起的數(shù)據(jù)安全問(wèn)題,理解對(duì)數(shù)據(jù)進(jìn)行保護(hù)的意義?!窘虒W(xué)難點(diǎn)】用窮舉法破解密碼。【教學(xué)過(guò)程】一、引入1.學(xué)生預(yù)習(xí),閱讀第77頁(yè)“任務(wù)一解開(kāi)網(wǎng)站賬號(hào)被盜之謎”之“活動(dòng)1防范‘盜竊’行為”,填寫(xiě)第78頁(yè)的表3.4.1。2.教師檢查,并評(píng)講填寫(xiě)情況,引出數(shù)據(jù)安全、密碼的話題。表3.4.1密碼盜竊與防盜分析表盜竊方式防盜竊措施肩窺方式我們可以在輸入密碼時(shí)遮擋自己的操作過(guò)程,防止別人偷看密碼信息;或者確定環(huán)境安全后再進(jìn)行操作字典破解密碼不要用生日、姓名及拼音縮寫(xiě)、手機(jī)號(hào)、簡(jiǎn)單數(shù)字組合、單詞、身份證號(hào)、用戶(hù)Id暴力破解同時(shí)包含大小寫(xiě)字母、數(shù)字、特殊符號(hào),不少于8個(gè)字符二、密碼密碼是指用來(lái)核對(duì)用戶(hù)ID以驗(yàn)證用戶(hù)就是本人的一組字符?;顒?dòng)2設(shè)置安全密碼打開(kāi)教科書(shū)配套資源中的“數(shù)據(jù)安全性測(cè)試.py”,運(yùn)行并測(cè)試窮舉搜索一個(gè)5位、7位和9位的數(shù)字密碼,分別需要多長(zhǎng)時(shí)間,填寫(xiě)表3.4.2。(詳見(jiàn)配套資源“數(shù)據(jù)安全性測(cè)試(有界面).fld”和“數(shù)據(jù)安全性測(cè)試(有界面).py”)表3.4.2窮舉搜索密碼需要的時(shí)間密碼長(zhǎng)度密碼值破解時(shí)間5位125671.0毫秒9830215.6毫秒7位9位實(shí)現(xiàn)窮舉搜索的自定義函數(shù)jiemi()的程序代碼如下:defjiemi():d1=datetime.datetime.now()#獲取當(dāng)前系統(tǒng)時(shí)間d1p=int(varin.get())#獲取輸入文本框的數(shù)字密碼foriinrange(0,p+1):#從0循環(huán)到正確密碼數(shù)值ifi==p:#如果密碼相同d2=datetime.datetime.now()#獲取當(dāng)前系統(tǒng)時(shí)間d2d=d2-d1#取得時(shí)間差#在輸出文本框中顯示解密用時(shí)varout.set(str(d.seconds)+"秒"+str(d.microseconds/1000)+"毫秒")程序運(yùn)行效果如下:【比一比】當(dāng)然,我們也可以編寫(xiě)無(wú)可視化界面的程序,程序更簡(jiǎn)單。(詳見(jiàn)配套資源“數(shù)據(jù)安全性測(cè)試(無(wú)界面).py”)程序運(yùn)行效果如下:請(qǐng)比較有可視化界面與無(wú)可視化界面兩個(gè)程序運(yùn)算的快慢,將最快的結(jié)果填入表3.4.2?!舅阋凰恪磕愕碾娔X1秒最多能試探大約多少個(gè)整數(shù)密碼?【做一做】1.有可視化界面程序中的jiemi()函數(shù)中的for循環(huán)改為while條件循環(huán):運(yùn)算速度是提高了,還是降低了?再將i=i+1改為i+=1,運(yùn)算速度有無(wú)變化?你能得出什么結(jié)論?2.為計(jì)算1秒最多能試探多少個(gè)整數(shù)密碼,某同學(xué)認(rèn)為用原來(lái)的jiemi()函數(shù)要試探性多次輸入p的值,結(jié)果不穩(wěn)定不精確,于是他將jiemi()函數(shù)修改為jiemi2():結(jié)果會(huì)怎么樣?為什么?【想一想】1.如果密碼包含數(shù)字和大小寫(xiě)英文字母,那么5位、7位、9位密碼的最大循環(huán)次數(shù)分別是多少次?估算你的電腦分別需要多少時(shí)間試探?2.如果密碼包含數(shù)字、大小寫(xiě)英文字母和鍵面特殊字符(不含空格共有32個(gè)鍵面特殊字符),那么5位、7位、9位密碼的最大循環(huán)次數(shù)分別是多少次?估算你的電腦分別需要多少時(shí)間試探?三、小結(jié)(防字典破解)設(shè)置安全密碼,不用生日、姓名及拼音縮寫(xiě)、手機(jī)號(hào)、簡(jiǎn)單數(shù)字組合、單詞、身份證號(hào)、用戶(hù)Id等等。(防暴力破解)設(shè)置安全密碼,要同時(shí)包含大小寫(xiě)字母、數(shù)字、特殊符號(hào),不少于8個(gè)字符為提高運(yùn)算速度,盡可能采用計(jì)數(shù)循環(huán)for語(yǔ)句代替條件循環(huán)while語(yǔ)句,復(fù)合賦值語(yǔ)句(如i+=1)代替簡(jiǎn)單賦值語(yǔ)句(i=i+1)四、練習(xí)試編寫(xiě)程序,破解超級(jí)密碼——可能包含數(shù)字、大小寫(xiě)英文字母和鍵面特殊字符(不含空格共有32個(gè)鍵面特殊字符)在內(nèi)的4位字符組成的密碼,每個(gè)字符的ASCII碼值在33至126之間。將運(yùn)行用時(shí)記入下表:密碼值破解用時(shí)超級(jí)密碼(字符串).py超級(jí)密碼(列表).py!876AbY5Z$*mz)0<~?x=詳見(jiàn)配套資源“超級(jí)密碼(字符串).py”和“超級(jí)密碼(列表).py”,比較兩種算法的快慢。第二課時(shí)教學(xué)重難點(diǎn)【教學(xué)重點(diǎn)】愷撒密碼的加密與解密算法。【教學(xué)難點(diǎn)】愷撒密碼的加密與解密算法。【教學(xué)過(guò)程】一、引入1.學(xué)生預(yù)習(xí),閱讀第79頁(yè)“任務(wù)二讓數(shù)據(jù)‘隱身’”之“活動(dòng)1古老的‘隱身術(shù)’”,填寫(xiě)表3.4.3,引入“加密”話題。2.教師檢查,并評(píng)講填寫(xiě)情況,引出數(shù)據(jù)安全、數(shù)據(jù)加密話題。表3.4.3數(shù)據(jù)加密技術(shù)的發(fā)展時(shí)間加密方式683年拆字法。將明文中的文字進(jìn)行組合生成新的字,即為密文,比如“十二月”合起來(lái)為“青”北宋代碼法。北宋進(jìn)士曾公亮曾搜集了40個(gè)常用軍事短語(yǔ),然后對(duì)其進(jìn)行順序編碼:一、請(qǐng)弓;二、請(qǐng)箭;三、請(qǐng)刀;四、請(qǐng)甲;五、請(qǐng)槍旗;六、請(qǐng)鍋幕;七、請(qǐng)馬;八、請(qǐng)衣賜;九、請(qǐng)糧料……四十、戰(zhàn)小勝。軍隊(duì)出征前,指揮機(jī)關(guān)將用上述短語(yǔ)編碼的密碼本發(fā)給將領(lǐng),并約定用一首不含重復(fù)文字的40字五言律詩(shī)與密碼相對(duì)應(yīng)公元前五世紀(jì)移位法。希羅多德(Herodotus)的《歷史》中記載了公元前五世紀(jì),希臘城邦和波斯帝國(guó)發(fā)生多次沖突和戰(zhàn)爭(zhēng)。這些戰(zhàn)爭(zhēng)中希臘城邦中廣泛使用了移位法進(jìn)行加密處理戰(zhàn)爭(zhēng)通訊信息,使波斯帝國(guó)難以獲得希臘城邦的軍事情報(bào),也就無(wú)法提前做軍事部署。希臘城邦用來(lái)傳輸軍事信息、命令的每段文字都有固定的字?jǐn)?shù),解密者手中會(huì)有一份文字移位說(shuō)明。解密者拿到密文后,根據(jù)文字移位說(shuō)明進(jìn)行解密,從而破解其中的軍事命令或消息古羅馬時(shí)期《高盧戰(zhàn)記》有描述愷撒曾經(jīng)使用密碼來(lái)傳遞信息,即所謂的“愷撒密碼”,它是一種替代密碼,通過(guò)將字母按順序推后起3位起到加密作用,如將字母A換作字母D,將字母B換作字母E。因據(jù)說(shuō)愷撒是率先使用加密函的古代將領(lǐng)之一,因此這種加密方法被稱(chēng)為愷撒密碼第二次世界大戰(zhàn)密碼機(jī)。在第二次世界大戰(zhàn)期間,德國(guó)軍方啟用“恩尼格瑪”密碼機(jī),密碼學(xué)在戰(zhàn)爭(zhēng)中起著非常重要的作用二、加法密碼加密就是將原始信息(數(shù)據(jù))隱匿起來(lái),使之在缺少特殊信息(數(shù)據(jù))時(shí)不可讀。原始信息(數(shù)據(jù))稱(chēng)為明文,加密后的信息(數(shù)據(jù))稱(chēng)為密文。將密文還原成明文的過(guò)程稱(chēng)為解密(或解碼)。愷撒密碼只是簡(jiǎn)單地將明文中的每一個(gè)字母用字母表中該字母后的第3個(gè)字母替換。例如,將明文中的a用d替換,b用e替換,……,z用c替換。像愷撒密碼這樣,明文中的所有字母都在字母表上向后(或向前)按照一個(gè)固定數(shù)目進(jìn)行偏移后被替換成密文,這種密碼稱(chēng)為加法密碼,又稱(chēng)為移位密碼。(詳見(jiàn)配套資源“愷撒密碼加密算法流程圖.doc”、“愷撒密碼(加密有界面).py”)對(duì)應(yīng)代碼如下:defCaesarCipher():#Button按鈕激發(fā)函數(shù)c=mingwen.get("0.0","end")#獲取Text組件mingwen的明文內(nèi)容b=""miwen.delete("0.0","end")#清空Text組件miwen的內(nèi)容foriinrange(len(c)):#獲取明文內(nèi)容的每一個(gè)字母,并加密if'a'<=c[i]<='w'or'A'<=c[i]<='W':#判斷a~w或A~W間的字母b=b+chr(ord(c[i])+3)#生成密文elif'x'<=c[i]<='z'or'X'<=c[i]<='Z':#判斷x~z或X~Z間的字母b=b+chr(ord(c[i])-23)#生成密文else:#字母以外的明文內(nèi)容不變b=b+c[i]miwen.insert("0.0",b)#在Text組件miwen中顯示結(jié)果程序運(yùn)行效果如下:【試一試】請(qǐng)寫(xiě)出愷撒密碼的解密算法。(詳見(jiàn)配套資源“愷撒密碼(解密無(wú)界面).py”)c=input("請(qǐng)輸入密文:")b=""foriinrange(0,len(c)):#獲取密文內(nèi)容的每一個(gè)字母,并破解if'd'<=c[i]<='z'or'D'<=c[i]<='Z':#判斷d-z或D-Z間的字母b=b+chr(ord(c[i])-3)#破解密文elif'a'<=c[i]<='c'or'A'<=c[i]<='C':#判斷a-c或A-C間的字母b=b+chr(ord(c[i])+23)#破解密文else:b=b+c[i]#字母以外的密文不變print("你的明文為:"+b)【想一想】愷撒密碼的安全性能如何?可以說(shuō),保密性能極差。將明文字符前移或后移一個(gè)固定的長(zhǎng)度d(稱(chēng)為密鑰),即使改變d的值,也最多只需25次嘗試d的值,就能破解。三、小結(jié)加密和解密也是屬于字符編碼范疇。密碼學(xué)是研究編制密碼和破譯密碼的技術(shù)科學(xué)。研究密碼變化的客觀規(guī)律,應(yīng)用于編制密碼以保守通信秘密的,稱(chēng)為編碼學(xué);應(yīng)用于破譯密碼以獲取通信情報(bào)的,稱(chēng)為破譯學(xué)。二者總稱(chēng)密碼學(xué)。四、練習(xí)編程:考慮到愷撒密碼的安全性極差,應(yīng)對(duì)算法進(jìn)行改進(jìn)。一種可行的改進(jìn)方式是,建立一個(gè)明文字符與密文字符之間的一一映射表,即“密表”,如:明文:ABCDEFGHI

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論