資源簡(jiǎn)介 (共23張PPT)3.4加密與解密121%0本節(jié)課學(xué)習(xí)目標(biāo)了解數(shù)據(jù)加密和解密的概念及原理了解數(shù)據(jù)加密的歷史會(huì)用Python實(shí)現(xiàn)簡(jiǎn)單的加密算法會(huì)分析生活中由密碼引起的數(shù)據(jù)安全問題,理解對(duì)數(shù)據(jù)進(jìn)行保護(hù)的意義不少人有密碼被盜的經(jīng)歷,這往往導(dǎo)致個(gè)人信息泄露,甚至是財(cái)產(chǎn)損失。你是否有過賬號(hào)密碼被盜的經(jīng)歷呢?導(dǎo)入任務(wù)一、揭開網(wǎng)站賬號(hào)被盜之謎不少人有密碼被盜的經(jīng)歷,這往往會(huì)導(dǎo)致個(gè)人信息泄露,甚至是財(cái)產(chǎn)損失。根據(jù)表3.4.1中的盜竊方式,分析出對(duì)應(yīng)的防盜竊的措施。盜竊方式 防盜措施肩窺方式 我們可以在輸入密碼時(shí)遮擋自己的操作過程,防止別人偷看密碼信息;或者確定環(huán)境安全后再進(jìn)行操作字典破解暴力破解肩窺攻擊是指通過窺看用戶的鍵盤輸入,鼠標(biāo)移動(dòng)等方式來獲取用戶口令。字典破譯是利用人們習(xí)慣用人名、地名或者常見的詞語設(shè)置成密碼的習(xí)慣進(jìn)行破譯,有好的字典是關(guān)鍵。暴力破解是一個(gè)一個(gè)的嘗試(窮舉)。密碼同時(shí)包含大小寫字母、數(shù)字、特殊符號(hào),不少于8位密碼不要用生日,姓名及拼音縮寫,手機(jī)號(hào)、簡(jiǎn)單數(shù)字組合,單詞、身份證號(hào),用戶ID等。任務(wù)一、揭開網(wǎng)站賬號(hào)被盜之謎1-1活動(dòng)一、防范“盜竊行為”我看我猜我試1-2任務(wù)一、揭開網(wǎng)站賬號(hào)被盜之謎密碼長(zhǎng)度 密碼值 破解時(shí)間5位 12567 1.0ms98302 1.0ms7位 123456797843029位 123456789321809456具體結(jié)果會(huì)因計(jì)算機(jī)性能不同而有所不同體驗(yàn)活動(dòng)1 “暴力破解”----純數(shù)字請(qǐng)同學(xué)們運(yùn)行“數(shù)據(jù)安全性測(cè)試.py”,測(cè)試破解一個(gè)5位、7位和9位的純數(shù)字密碼,分別需要多長(zhǎng)時(shí)間,然后填寫下表。流程圖數(shù)據(jù)安全性測(cè)試——無可視化界面數(shù)據(jù)安全性測(cè)試——可視化界面Varin.get()Varout.set()接收文本框中的數(shù)據(jù)在文本框中顯示輸出數(shù)據(jù)結(jié)論1:密碼越長(zhǎng),破解時(shí)間越長(zhǎng)結(jié)論2:密碼每位可選擇的字符數(shù)越多,破解的時(shí)間越長(zhǎng)活動(dòng)1 設(shè)置安全密碼防御“暴力破解”可行方案:提高密碼的復(fù)雜度增加密碼的長(zhǎng)度測(cè)試四位超級(jí)密碼的破解時(shí)間數(shù)字+字母+特殊字符J@4q數(shù)字+字母+特殊字符3R8@!cn數(shù)字+字母+特殊字符HxA7Lj@9!19*94319*94519秒143毫秒0.5年4421年 使用長(zhǎng)度不少于8位字符的密碼。密碼長(zhǎng)度越長(zhǎng)越不容易被破解。密碼長(zhǎng)度多種符號(hào)組合在可能的情況下,盡量使用字母、數(shù)字、特殊字符(例@、¥、#、%)相結(jié)合的密碼。不要用不包含個(gè)人信息(電話號(hào)碼、身份證號(hào)、等);不包含用戶ID;不包含字典中的詞語,字母次序顛倒的常用詞語。創(chuàng)建安全密碼的一般技巧1234限制登錄次數(shù)使用驗(yàn)證碼使用用戶具有排他性的自然特征(如指紋、人臉等)限對(duì)數(shù)據(jù)進(jìn)行二次加密防止密碼被盜的其他手段什么是加密?如何對(duì)數(shù)據(jù)進(jìn)行加密呢?加密、解密的概念與過程將原始信息(數(shù)據(jù))隱匿起來,使之在缺少特殊信息時(shí)不可讀將密文還原成明文的過程密匙:控制加密與解密過程的進(jìn)行,加密算法操作中的一組數(shù)字解密加密HAPPY明文 密文KDSSB加密后的信息(數(shù)據(jù))原始信息(數(shù)據(jù))123683年——拆字法將明文中的文字進(jìn)行組合生成新的字,即為密文,比如“十二月”合起來為“青”。北宋——代碼法北宋進(jìn)士曾公亮曾搜集了40個(gè)常用軍事短語,然后對(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)將用上述短語編碼的密碼本發(fā)給將領(lǐng),并約定用一首不含重復(fù)文字的40字五言律詩與密碼相對(duì)應(yīng)。公元前五世紀(jì)——移位法希羅多德的《歷史》中記載了公元前五世紀(jì),希臘城邦和波斯帝國發(fā)生多次沖突和戰(zhàn)爭(zhēng)。這些戰(zhàn)爭(zhēng)中希臘城邦中廣泛使用了移位法進(jìn)行加密處理戰(zhàn)爭(zhēng)通訊信息,使波斯帝國難以獲得希臘城邦的軍事情報(bào),也就無法提前做軍事部署。希臘城邦用來傳輸軍事信息、命令的每段文字都有固定的字?jǐn)?shù),解密者手中會(huì)有一份文字移位說明.解密者拿到密文后,根據(jù)文字移位說明進(jìn)行解密,從而破解其中的軍事命令或消息古羅馬時(shí)期——“愷撒密碼”所謂的“愷撒密碼”,它是一種替代密碼,通過將字母按順序推后起3位起到加密作用,如將字母A換作字母D,將字母B換作字母E,因據(jù)說凱撒是率先使用加密函的古代將領(lǐng)之一,因此這種加密法被稱為凱撒密碼。第二次世界大戰(zhàn)——“密碼機(jī)”密碼機(jī)。在第二次世界大戰(zhàn)期間,德國軍方啟用“恩尼格瑪”密碼機(jī),密碼學(xué)在戰(zhàn)爭(zhēng)中起著非常重要的作用活動(dòng)二、古老的“隱身術(shù)“45了解數(shù)據(jù)加密的發(fā)展歷史數(shù)據(jù)加密發(fā)展歷史02活動(dòng)二、揭秘“隱身術(shù)““愷撒密碼”:典型的加法密碼(移位密碼)將明文中的每一個(gè)字母用字母表的該字母后的第三個(gè)字母替換,例:a->d,b->e,…z->c在python中常用ASCII碼來對(duì)字符進(jìn)行編碼存儲(chǔ)。愷撒密碼的密鑰為3,像這種加密和解密使用同一個(gè)密鑰,被稱為對(duì)稱加密體制。ASCII碼+3ASCII碼+3ASCII碼-23ASCII碼-23chr(ord(c[i])+3)chr(ord(c[i])-23)Len函數(shù):獲取字符串字符的個(gè)數(shù)Ord函數(shù):將字符轉(zhuǎn)換成數(shù)值Chr函數(shù):將數(shù)值轉(zhuǎn)換成字符凱撒密碼from tkinter import *root = Tk()root.title("凱撒加密")root.geometry('300x200')def CaesarCipher(): #“加密”按鈕激發(fā)函數(shù)c=mingwen.get("0.0", "end")[:-1] #獲取明文內(nèi)容b=""miwen.delete("0.0", "end") #清空miwen對(duì)象的內(nèi)容for i in range(len(c)): #明文長(zhǎng)度if 'a'<=c[i]<='w' or 'A'<=c[i]<='W':b=b+chr(ord(c[i])+3) #生成密文elif 'x'<=c[i]<='z' or 'X'<=c[i]<='Z':b=b+chr(ord(c[i])-23) #生成密文else:b=b+c[i] #字母以外的明文不變miwen.insert("0.0",b) #在miwen對(duì)象中顯示結(jié)果Label(root, text='請(qǐng)輸入明文', font=('Arial', 10)).pack()mingwen=Text(root,width=300,height=4)mingwen.pack()mingwen.focus_set() #獲得焦點(diǎn)Button(root, text="加密", command=CaesarCipher,relief="solid",width=10).pack()Label(root, text='凱撒密文', font=('Arial', 10)).pack()miwen=Text(root,width=300,height=4)miwen.pack()root.mainloop()明文c a~w A~W x~z X~Z 其他密文b d~z D~Z a~c A~C 不變規(guī)律公式明文c a~w A~W x~z X~Z 不變密文b d~z D~Z a~c A~C 其他規(guī)律公式加密解密是加密的逆運(yùn)算愷撒密碼解密解密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]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)行“凱撒密碼.py”,體驗(yàn)加密算法。愷撒密碼安全性能如何?可以說,保密性能極差,很容易被解密。就算將明文字符前移或后移一個(gè)固定的長(zhǎng)度d(稱為密鑰)發(fā)生變化,也最多只需25次嘗試d的值,就能破解。擴(kuò)展思考一種可行的改進(jìn)方式是,建立一個(gè)明文字符與密文字符之間的一一映射表,即“密表”。如:明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:QWERTYUIOPASDFGHJKLZXCVBNM加密時(shí),A→Q,B→W,…;解密時(shí)Q→A,W→B,…。其小寫字母對(duì)應(yīng)法則也相同,即a→q,b→w,…。這樣保密性能大大提升,破解難度大大增加。另外,這個(gè)“密表”也可以按需要改變。藏頭詩達(dá)芬奇密碼拓 展:古代中外經(jīng)典加密算法加密與解密密碼加密與解密密碼是指用來核對(duì)用戶ID以驗(yàn)證用戶就是本人的一組字符。加密:加密就是將原始信息(數(shù)據(jù))隱匿起來解密:將密文還原成明文的過程稱為解密。創(chuàng)建安全密碼的一般技巧“2”要“3”不要課堂小結(jié)單元學(xué)習(xí)評(píng)價(jià)10110100 (2) = ( )(10)3D(16) = ( )(10)255(10) = ( )(16)100(10) = ( )(2)E2(16) = ( )(2)11100101(2) = ( )(16)18061FF110010011100010E5任意R進(jìn)制數(shù)( R為大于等于2且不等于10的正整數(shù),下同)轉(zhuǎn)換為十進(jìn)制數(shù)時(shí),都可采用 方法。十進(jìn)制數(shù)轉(zhuǎn)換為R進(jìn)制數(shù)時(shí),都可采用 方法。基數(shù)權(quán)重展開法除R取余法單元學(xué)習(xí)評(píng)價(jià)一段時(shí)長(zhǎng)為1分鐘,采樣頻率為44.1kHz,量化位數(shù)為16位,雙聲道立體聲的無壓縮音頻(如基于PCM編碼的wav格式),占用的存儲(chǔ)空間是 MB (精確到0.1 )。10.1解析:采樣頻率44.1kHz,量化位數(shù)16位,意味著每秒采集數(shù)據(jù)44.1k個(gè),每個(gè)數(shù)據(jù)占2字節(jié),(量化位數(shù)是16位,按照計(jì)算機(jī)術(shù)語來看,1位指的是一個(gè)二進(jìn)制位,就是1bit,8bit是一字節(jié),那么16位就是2字節(jié))這是一個(gè)聲道的數(shù)據(jù),雙聲道再乘以2,最后結(jié)果再乘以60秒,就是44.1×1000×2×2×60=10584000字節(jié),1MB=1024×1024=1048576字節(jié),所以一分鐘的存儲(chǔ)容量為10584000/1048576=10.09MB,約為10.1MB。單元學(xué)習(xí)評(píng)價(jià)3. 人、狼、羊、菜過河問題:有一個(gè)人帶著一只狼、一只羊和一捆白菜,來到一條河邊,河邊只有一條小船,人每次過河最多只能帶一樣, 如果人不在現(xiàn)場(chǎng),狼就要吃羊,羊就要吃菜。他應(yīng)該怎樣安排過河呢?請(qǐng)完成下面的“樹”結(jié)構(gòu)分析圖,幫他找到可行的過河方案。提示:可約定對(duì)象在左岸用0表示,在右岸用1表示。121%0拜拜! 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫