資源簡(jiǎn)介 (共10張PPT)一、加密【搜】活動(dòng)1古老的“隱身術(shù)”,填表3.4.3時(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)為解密(或解碼)。【悟】加密與解密愷撒在征服高盧、襲擊日耳曼和不列顛的多次戰(zhàn)斗中頻繁使用加密技術(shù)。蘇托尼厄斯在公元2世紀(jì)寫(xiě)的《愷撒傳》中對(duì)愷撒用過(guò)的一種加密技術(shù)進(jìn)行了詳細(xì)的介紹。愷撒只是簡(jiǎn)單地將明文中的每一個(gè)字母用字母表中該字母后的第3個(gè)字母替換。例如,將明文中的a用d替換,b用e替換,……,z用c替換,這就是愷撒密碼。【搜】活動(dòng)2揭秘“隱身術(shù)”二、愷撒密碼的加密算法明文ca~wA~Wx~zX~Z其他密文bd~zD~Za~cA~C不變規(guī)律ASCII碼+3ASCII碼+3ASCII碼-23ASCII碼-23不變公式'a'<=c[i]<='w'or'A'<=c[i]<='W''x'<=c[i]<='z'or'X'<=c[i]<='Z'chr(ord(c[i])+3)chr(ord(c[i])-23)c[i]chr(ord(c[i])+3)b=b+b=b+'x'<=c[i]<='z'or'X'<=c[i]<='Z'chr(ord(c[i])-23)二、愷撒密碼的加密算法defCaesarCipher():#“加密”按鈕激發(fā)函數(shù)c=mingwen.get('0.0','end')[:-1]#獲取mingwen對(duì)象的內(nèi)容(明文)b=''miwen.delete('0.0','end')#清空miwen對(duì)象的內(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:b=b+c[i]#字母以外的明文不變miwen.insert("0.0",b)#在miwen對(duì)象中顯示結(jié)果二、愷撒密碼的加密算法愷撒密碼的加密算法程序【悟】愷撒密碼的加密算法核心代碼明文ca~wA~Wx~zX~Z其他密文bd~zD~Za~cA~C不變規(guī)律ASCII碼+3ASCII碼+3ASCII碼-23ASCII碼-23不變公式'a'<=c[i]<='w'or'A'<=c[i]<='W''x'<=c[i]<='z'or'X'<=c[i]<='Z'chr(ord(c[i])+3)chr(ord(c[i])-23)c[i]密文bd~zD~Za~cA~C其他明文ca~wA~Wx~zX~Z不變規(guī)律ASCII碼-3ASCII碼-3ASCII碼+23ASCII碼+23不變公式'd'<=b[i]<='z'or'D'<=b[i]<='Z''a'<=b[i]<='c'or'A'<=b[i]<='C'chr(ord(b[i])-3)chr(ord(b[i])+23)b[i]加密解密是加密的逆運(yùn)算三、愷撒密碼的解密算法defCaesarCipher2():#“解密”按鈕激發(fā)函數(shù)c=miwen.get('0.0','end')[:-1]#獲取miwen對(duì)象的內(nèi)容(密文)b=''mingwen2.delete('0.0','end')#清空mingwen2對(duì)象的內(nèi)容foriinrange(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]#字母以外的密文不變mingwen2.insert('0.0',b)#在mingwen2對(duì)象中顯示解密結(jié)果愷撒密碼的加密及解密算法程序三、愷撒密碼的解密算法【悟】愷撒密碼的解密算法核心代碼【劃重點(diǎn)】本內(nèi)容學(xué)科核心素養(yǎng)之三層架構(gòu)學(xué)科知識(shí)層:數(shù)據(jù)類(lèi)型(字符串、字符),字符與ASCII碼,函數(shù)ord()與chr(),循環(huán)語(yǔ)句,分支語(yǔ)句,條件(邏輯)表達(dá)式問(wèn)題解決層:算法(加密與解密都是對(duì)字符的替換),測(cè)試學(xué)科思維層:抽象(愷撒密碼抽象為字符串的替換操作)、建模(把明文、密文當(dāng)作字符串處理,字符串就是一種模型)四、小結(jié)五、練習(xí)【思與做】愷撒密碼的安全性如何?你能提出一種改進(jìn)方案嗎?一種可行的改進(jìn)方案是,建立一個(gè)明文字符與密文字符之間的一一映射表,即“密表”,如:明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:QWERTYUIOPASDFGHJKLZXCVBNM加密時(shí),A→Q,B→W,…,解密時(shí)Q→A,W→B,…,小寫(xiě)字母對(duì)應(yīng)法則也相同,即a→q,b→w,…。原先愷撒密碼只有一個(gè)“密鑰”,現(xiàn)在好比有25個(gè)“密鑰”,這樣,保密性能大大提升,破解難度大大增加,另外,這個(gè)“密表”也是可以按需要改變的。你能寫(xiě)出這種改進(jìn)的愷撒密碼的加密與解密算法嗎?試一試。參考程序 展開(kāi)更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來(lái)源于二一教育資源庫(kù)