第一篇:密碼學總結
班級:信息111姓名:劉秉森學號:201112030119引言
1.1信息安全的重要性
信息安全技術作為一門綜合學科,它涉及信息論、計算機科學和密碼學等多方面知識,研究計算機系統(tǒng)和通信網(wǎng)絡內(nèi)信息的保護方法以實現(xiàn)系統(tǒng)內(nèi)信息的安全、保密、真實和完整。21世紀是信息時代,信息的傳遞在人們?nèi)粘I钪凶兊梅浅V匾?。如:電子商務,電子郵件,電子政務,銀行證券等,無時無刻不在影響著人們的生活。這樣信息安全問題也就成了最重要的問題之一。在信息交換中,“安全”是相對的,而“不安全”是絕對的,隨著社會的發(fā)展和技術的進步,信息安全標準不斷提升,因此信息安全問題永遠是一個全新的問題。信息安全的核心是密碼技術。如今,計算機網(wǎng)絡環(huán)境下信息的保密性、完整性、可用性和抗抵賴性,都需要采用密碼技術來解決。公鑰密碼在信息安全中擔負起密鑰協(xié)商、數(shù)字簽名、消息認證等重要角色,已成為最核心的密碼。
1.2密碼學的研究對象及作用范疇
1.2.1密碼學的研究對象
經(jīng)過一學期的學習,我理解了學習密碼學的學習目的,掌握了基本的密碼學基礎知識,了解了密碼算法的多種分類和密碼學研究的對象。密碼學是主要研究通信安全和保密的學科,他包括兩個分支:密碼編碼學和密碼分析學。密碼編碼學主要研究對信息進行變換,以保護信息在傳遞過程中不被敵方竊取、解讀和利用的方法,而密碼分析學則于密碼編碼學相反,它主要研究如何分析和破譯密碼。這兩者之間既相互對立又相互促進。對于一個密碼系統(tǒng),加密者對需要進行偽裝機密信息(明文)進行偽裝進行變換(加密變換),得到另外一種看起來似乎與原有信息不相關的表示(密文),如果合法者(接收者)獲得了偽裝后的信息,那么他可以通過事先約定的密鑰,從得到的信息中分析得到原有的機密信息(解密變換)
1.2.2密碼學的重要性
長期以來,密碼技術總是和政治、經(jīng)濟、軍事聯(lián)系在一起。密碼學的發(fā)展經(jīng)歷了從古典密碼學到現(xiàn)代密碼的演變。現(xiàn)代密碼是以信息塊為基本加密單元的密碼。密碼在當今社會生活中的作用可以說十分巨大,軍事國防方面,現(xiàn)代金融、貿(mào)易、生產(chǎn)等無不在大規(guī)模使用密碼.計算機網(wǎng)絡的廣泛應用,使人們對密碼的依賴達到了新的高
度,在千百萬臺計算機聯(lián)結成的因特網(wǎng)上,用戶的識別基本上是靠密碼.密碼被破譯就會產(chǎn)生危及安全的極嚴重的后果.計算機“黑客”的作為,即為密碼破譯的一個例子,連美國國防部的計算機都未能幸免,可見密碼編制的難度了.在如今生物密碼技術還不熟練的前提下,我們只有更加注意防范,以免信息泄露,受到傷害。密碼學作為信息安全的關鍵技術,美、歐、亞各洲頻繁舉行密碼學和信息安全學術會議。美國為了獲得信息安全領域的控制權,從1997年開始,在世界范圍內(nèi)征集21世紀高級加密算法AES,以代替過時的DES。歐盟各國投資33億歐元,計劃建立自己的分組密碼、序列密碼、公鑰密碼等算法標準。我國的密碼學研究起步晚,投入不足,總體來說與發(fā)達國家存在著較大差距。我國也已經(jīng)意識到了密碼學的重要性,加大了密碼研究及產(chǎn)品開發(fā)的力度。一些關鍵密碼技術已成為863計劃等支持的重點。隨著因特網(wǎng)的出現(xiàn)、發(fā)展、普及,未來的密碼學也必定向這個方向發(fā)展。例如網(wǎng)絡簽名,網(wǎng)上銀行的安全,個人郵件信息的保護,都很迫切需要密碼學的支持,推動密碼學的發(fā)展。當然,經(jīng)過一學期的學習,在老師的指導和同學的幫助下,我理解了密碼學的學習目的,掌握了密碼學的基礎知識,了解了密碼學的多種算法。隨著信息化和數(shù)字化社會的發(fā)展,人們對信息安全和保密的重要性認識不斷提高。如網(wǎng)絡銀行、電子購物、電子郵件等正在悄悄地融入普通百姓的日常生活中,人們自然要關注其安全性如何。采用的加密算法有DES算法、IDEA算法、RSA算法等等。
1.3幾種古典密碼
1.3.1單表代換密碼
古典密碼是以字符為基本加密單元的密碼,主要包括:移位密碼、仿射密碼、代替密碼(單表代替密碼、多表代替密碼等)。除書本介紹的幾種之外,還包括掩格密碼、滾桶密碼、棋盤密碼等等。這些密碼算法大都十分簡單,非常容易被熱破解,現(xiàn)在已經(jīng)很少在實際應用中使用了。由于密碼學是涉及數(shù)學、通訊、計算機等相關學科的知識,就我們現(xiàn)有的知識水平而言,只能初步研究古典密碼學的基本原理和方法。但是對古典密碼學的研究,對于理解、構造和分析現(xiàn)代實用的密碼都是很有幫助。古典密碼學主要有兩大基本方法。第一種是置換密碼(又稱移位密碼):明文的字母保持相同,但順序被打亂了;第二種是代替密碼:就是將明文的字符替換為密文中的另一種的字符,接收者只要對密文做反向替換就可以恢復出明文。置換密碼的一個典型代表就是凱撒密碼,這種加密方法就是將明文的字母按照字母順序,往后依次遞推相同的字母,就可以得到加密的密文,而解密的過程正好和加密的過程相反
1.3.2多表代換密碼
多表代換密碼是一系列(兩個以上)代換表依次對明文消息的字母進行代換的加密的方法。知識章節(jié)小結
2.1公鑰密碼學
第四章介紹了公鑰密碼學,是全書的核心內(nèi)容之一,為后文作了知識基礎的鋪墊,公鑰密碼學的核心基礎就是數(shù)學領域里某些問題的正反對稱性,比如說,整數(shù)分解問題(RSA),離散對數(shù)問題(DL),橢圓曲線問題(ECC),這些與數(shù)論有著千絲萬縷的關系,本章簡要的介紹了密碼學中常用的一些數(shù)學基礎知識,并未對數(shù)論做出詳細的補充,僅僅與書中的相關內(nèi)容加以闡述,分別包括歐幾里得定理,歐拉函數(shù),費馬小定理和歐拉定理,其中對歐幾里得定理部分有較為詳細的推導和演算,其余均簡單的給出結論和使用方法。
2.2信息安全和密碼學相關知識的聯(lián)系
在《密碼學》一書中,介紹了信息安全和密碼學相關知識,通過實現(xiàn)簡單的古典密碼算法,理解密碼學的相關概念,如明文、密文、加密密鑰、解密密鑰、加密算法、解密算法等。其中講解了單表代換密碼的幾種形式,如凱撒密碼,移位變換,仿射變換等。關于分組密碼體制,詳細講解了Feistel密碼的加密與解密結構,DES,以及分組密碼的幾種運行模式。在當今社會,信息安全滲透到各個角落,小到個人銀行的賬戶密碼,大到承載用戶珍貴資料的服務器,都離不開對信息的安全存儲和傳輸,抽象到理論,需要對密碼進行研究,當然會涉及到對算法的需求。這本書從整體上看,是對密碼學中的各類加密與解密技術的分類介紹,其中著重講解了加密與解密的具體算法及簡單應用。引言是知識背景的介紹,講述了數(shù)學知識的基礎內(nèi)容,模運算及具體運用(幾種古典密碼學),第五、六、七章對密鑰分配與密鑰管理,消息認證和雜湊算法,數(shù)字簽字和密碼協(xié)議進行了解讀,尤其是 Diffie-Hellman密鑰交換,數(shù)字簽字的產(chǎn)生及執(zhí)行等等,老師做了詳細的講解。
2.3密碼學的應用
信息技術改變著人們的生活和工作方式,信息產(chǎn)業(yè)已成為新的經(jīng)濟增長點,信息的安全問題已成為社會各界關注的熱點。由于軍事、數(shù)學、通訊等相關技術的發(fā)展,特別是兩次世界大戰(zhàn)中對軍事信息保密傳遞和破獲敵方信息的需求,密碼學得到了空前的發(fā)展,并廣泛的用于軍事情報部門的決策。像絕大多數(shù)領域的科學知識一樣,密碼學在完整的科學體系建立起來之前,古典密碼學僅限于一些簡單代替和置換算法,當然,這代替和置換如果經(jīng)過了幾次算法的加密就會一樣復雜多變,而現(xiàn)代的算法經(jīng)過科學體系的整理與發(fā)展,更加的完善一些復雜算法的應用和各種應用協(xié)議的產(chǎn)生。隨著遠程通信的發(fā)展,特別是計算機網(wǎng)絡的發(fā)展,密碼學面臨著兩大難題:1.可靠密鑰的傳輸通道問題。2.如何提供與手寫簽名等效的認證體系。為了解決這些問題,文中提出了公鑰密碼算法和公鑰分配算法,并且把公鑰密碼算法經(jīng)過變換成為一個單向認證算法,來解決有效認證問題?,F(xiàn)代密碼學大致可分為數(shù)個領域。現(xiàn)代的研究主要在分組密碼與流密碼及其應用。分組密碼在某種意義上是阿伯提的多字符加密法的現(xiàn)代化。分組密碼取用銘文的一個區(qū)塊和鑰匙,輸出相同大小的密文區(qū)塊。由于信息通常比單一區(qū)塊還長,因此有了各種方式將連續(xù)的區(qū)塊編織在一起。DES和AES是美國聯(lián)邦政府核定的分組密碼標準(AES將取代DES)。DES依然很流行,被使用在非常多的應用上,從自動交易機、電子郵件到遠端存取。也有許多其他的區(qū)塊加密被發(fā)明、釋出,品質(zhì)與應用上各有不同,其中不乏被破解者。由此可見,密碼學與信息安全、軍事、數(shù)學、通訊等密切相關,密碼技術總是和政治、經(jīng)濟、軍事聯(lián)系在一起。3 心得體會
光陰似箭,日月如梭,在劉益和老師的教導下,本學期,我們完成了密碼學的相關學習。老師不僅給我們講解了書本上的相關知識要點,還拷貝了一些關于密碼學的學習資料給我們,增強我們對信息安全的理解和學習密碼學知識的興趣。同時,老師還教育我們,課上認真聽講,積極發(fā)言,課后要查找資料,啟發(fā)思維。這些對我們學習密碼學都有一定的好處。密碼編碼學主要研究對信息進行變換,以保護信息在傳遞過程中不被敵方竊取、解讀和利用的方法。因此,我對編碼密碼學有濃厚的興趣,除了密碼分析學之外,密碼編碼學主要致力于信息加密、信息認證、數(shù)字簽名和密鑰管理方面的研究。信息加密的目的在于將可讀信息轉(zhuǎn)變?yōu)闊o法識別的內(nèi)容,使得截獲這些信息的人無法閱讀,同時信息的接收人能夠驗證接收到的信息是否被敵方篡改或替換過;數(shù)字簽名就是信息的接收人能夠確定接收到的信息是否確實是由所希望的發(fā)信人發(fā)出的;密鑰管理是信息加密中最難的部分,因為信息加密的安全性在于密鑰。數(shù)字簽名大致包含兩個算法:一個是簽署,使用私密密鑰處理信息或信息的雜湊值而產(chǎn)生簽章;另一個是驗證,使用公開鑰匙驗證簽章的真實性。我對Diffie,Hellman,RSA算法感興趣,RSA源于整數(shù)因子分解問題;DSA源于離散對數(shù)問題。近年發(fā)展快速的橢圓曲線密碼學則基于和橢圓曲線相關的數(shù)學難題,與離散對數(shù)相當。密碼學的應用更是廣泛滲透到各個領域,了解相關的密碼學基礎知識,學習密碼學的相關技術,了解信息的安全性和保密性,和當前所存在的缺陷。興趣是最
好的老師,對于信息加密、信息認證、數(shù)字簽名和密鑰管理方面的研究,可以著眼于自己感興趣的部分,可以加以學習,多多查找資料。結論
書山有路勤為徑,學海無涯苦作舟。對于知識,我們要有一種正確的態(tài)度,學會探究,學以致用。不要在具體運用知識時才發(fā)現(xiàn)自己對知識的掌握還不夠好,不能很好地解決問題。作為學生,應該把握時間,抓住機遇,做一個更好地自己。
第二篇:現(xiàn)代密碼學考試總結
密碼主要功能:
1.機密性:指保證信息不泄露給非授權的用戶或?qū)嶓w,確保存儲的信息和傳輸?shù)男畔H能被授權的各方得到,而非授權用戶即使得到信息也無法知曉信息內(nèi)容,不能使用。2.完整性:是指信息未經(jīng)授權不能進行改變的特征,維護信息的一致性,即信息在生成、傳輸、存儲和使用過程中不應發(fā)生人為或非人為的非授權篡改(插入、替換、刪除、重排序等),如果發(fā)生,能夠及時發(fā)現(xiàn)。
3.認證性:是指確保一個信息的來源或源本身被正確地標識,同時確保該標識的真實性,分為實體認證和消息認證。
消息認證:向接收方保證消息確實來自于它所宣稱的源;
實體認證:參與信息處理的實體是可信的,即每個實體的確是它所宣稱的那個實體,使得任何其它實體不能假冒這個實體。
4.不可否認性:是防止發(fā)送方或接收方抵賴所傳輸?shù)男畔?,要求無論發(fā)送方還是接收方都不能抵賴所進行的行為。因此,當發(fā)送一個信息時,接收方能證實該信息的確是由所宣稱的發(fā)送方發(fā)來的;當接收方收到一個信息時,發(fā)送方能夠證實該信息的確送到了指定的接收方。
信息安全:指信息網(wǎng)絡的硬件、軟件及其系統(tǒng)中的數(shù)據(jù)受到保護,不受偶然的或者惡意的原因而遭到破壞、更改、泄露、否認等,系統(tǒng)連續(xù)可靠正常地運行,信息服務不中斷。信息安全的理論基礎是密碼學,根本解決,密碼學理論
對稱密碼技術——分組密碼和序列密碼——機密性; 消息認證碼——完整性,認證性;
數(shù)字簽名技術——完整性,認證性,不可否認性;
1949年Shannon發(fā)表題為《保密系統(tǒng)的通信理論》 1976年后,美國數(shù)據(jù)加密標準(DES)的公布使密碼學的研究公開,密碼學得到了迅速發(fā)展。1976年,Diffe和Hellman發(fā)表了《密碼學的新方向》,提出了一種新的密碼設計思想,從而開創(chuàng)了公鑰密碼學的新紀元。
置換密碼
置換密碼的特點是保持明文的所有字符不變,只是利用置換打亂了明文字符的位置和次序。列置換密碼和周期置換密碼
使用密碼設備必備四要素:安全、性能、成本、方便。
密碼體制的基本要求:
1.密碼體制既易于實現(xiàn)又便于使用,主要是指加密函數(shù)和解密函數(shù)都可以高效地計算。2.密碼體制的安全性是依賴密鑰的安全性,密碼算法是公開的。
3.密碼算法安全強度高,也就是說,密碼分析者除了窮舉搜索攻擊外再找不到更好的攻擊方法。
4.密鑰空間應足夠大,使得試圖通過窮舉密鑰空間進行搜索的方式在計算上不可行。
密碼算法公開的意義:
?有利于增強密碼算法的安全性; ?有利于密碼技術的推廣應用; ?有利于增加用戶使用的信心; ?有利于密碼技術的發(fā)展。
熵的性質(zhì):H(X,Y)=H(Y)+H(X|Y)=H(X)+H(Y|X)H(K|C)=H(K)+H(P)-H(C)
密碼攻擊類型
?惟密文攻擊(Ciphertext Only Attack)(僅僅搭線竊聽)密碼分析者除了擁有截獲的密文外(密碼算法是公開的,以下同),沒有其它可以利用的信息。
?已知明文攻擊(Known Plaintext Attack)(有內(nèi)奸)密碼分析者不僅掌握了相當數(shù)量的密文,還有一些已知的明-密文對可供利用。?選擇明文攻擊(Chosen Plaintext Attack)(暫時控制加密機)密碼分析者不僅能夠獲得一定數(shù)量的明-密文對,還
可以選擇任何明文并在使用同一未知密鑰的情況下能得到相應的密文。?選擇密文攻擊(Chosen Ciphertext Attack)(暫時控制解密機)密碼分析者能選擇不同被加密的密文,并還可得到對應的明文,密碼分析者的任務是推出密鑰及其它密文對應的明文。
?選擇文本攻擊(Chosen Text Attack)(暫時控制加密機和解密機)它是選擇明文攻擊和選擇密文攻擊的組合,即密碼分析者在掌握密碼算法的前提下,不僅能夠選擇明文并得到對應的密文,而且還能選擇密文得到對應的明文。
攻擊密碼體制的常用方法 ?窮舉攻擊 ?統(tǒng)計分析攻擊 ?數(shù)學分析攻擊
密碼體制安全性:無條件安全性,計算安全性,可證明安全性
分組密碼的要求: ? 分組長度要足夠大 ? 密鑰量要足夠大 ? 密碼變換足夠復雜 ? 加密和解密運算簡單 ? 無數(shù)據(jù)擴展或壓縮
分組密碼的設計思想(擴散和混亂)擴散:是指要將算法設計成明文每一比特的變化盡可能多地影響到輸出密文序列的變化,以便隱蔽明文的統(tǒng)計特性。形象地稱為雪崩效應。擴散的另一層意思是密鑰每一位的影響盡可能迅速地擴展到較多的密文比特中去。
混亂:指在加解密變換過程中明文、密鑰以及密文之間的關系盡可能地復雜化,以防密碼破譯者采用解析法(即通過建立并求解一些方程)進行破譯攻擊。分組密碼算法應有復雜的非線性因素。輪函數(shù)基本準則:非線性,可逆性,雪崩效應
DES 分組加密算法:明文和密文為64位分組長度。密鑰長度:56位 采用混亂和擴散的組合,每個組合先代換后置換,共16輪?;パa性會使DES在選擇明文攻擊下所需的工作量減半。
如果給定初始密鑰k,經(jīng)子密鑰產(chǎn)生器產(chǎn)生的各個子密鑰都相同,即有k1=k2=…=k16,則稱給定的初始密鑰k為弱密鑰。
若k為弱密鑰,則對任意的64bit信息有:Ek(Ek(m))=m和Dk(Dk(m))=m。
若給定初始密鑰k,產(chǎn)生的16個子密鑰只有兩種,且每種都出現(xiàn)8次,則稱k為半弱密鑰。半弱密鑰的特點是成對出現(xiàn),且具有下述性質(zhì):若k1和k2為一對半弱密鑰,m為明文組,則有:Ek2(Ek1(m))=Ek1(Ek2(m))=m。
差分分析:是分析一對給定明文的異或(對應位不同的個數(shù)稱為差分)與對應密文對的異或之間的統(tǒng)計相關性。
3DES特點:
優(yōu)點:1.密鑰長度增加到112位或168位,克服了DES面臨的窮舉攻擊。2.相對于DES,增強了抗差分分析和線性分析等的能力。
3.由于DES已經(jīng)大規(guī)模使用,升級到3DES比更新新算法成本小得多。4.DES比其它任何加密算法受到的分析時間都長的多,相應地,3DES抗 分析能力更強。
不足:1.3DES處理速度較慢。
2.雖然密鑰長度增加了,但明文分組長度沒變,與密鑰長度的增長不匹 配。
AES分組長度、密鑰長度、輪數(shù)的關系: 分組長度:128位
密鑰長度,輪數(shù):128,10;192,12;256,14 每輪由四個階段組成:字節(jié)代換、行位移、列混淆、輪密鑰加。DES是面向比特的運算,AES是面向字節(jié)的運算。
二重DES并不像人們相像那樣可提高密鑰長度到112比特,而相當57比特。
分組密碼的操作模式 ECB:
模式操作簡單,主要用于內(nèi)容較短且隨機的報文的加密傳遞; 相同明文(在相同密鑰下)得出相同的密文,即明文中的
重復內(nèi)容可能將在密文中表現(xiàn)出來,易實現(xiàn)統(tǒng)計分析攻擊、分組重放攻擊和代換攻擊; 鏈接依賴性:各組的加密都獨立于其它分組,可實現(xiàn)并行處理;
錯誤傳播:單個密文分組中有一個或多個比特錯誤只會影響該分組的解密結果。
CBC(密文分組和明文分組異或得到下一個密文分組)一種反饋機制在分組密碼中的應用,每個密文分組不僅依賴于產(chǎn)生它的明文分組,還依賴于它前面的所有分組; ? 相同的明文,即使相同的密鑰下也會得到不同的密文分組,隱藏了明文的統(tǒng)計特性; ? 鏈接依賴性:對于一個正確密文分組的正確解密要求它之前的那個密文分組也正確,不能實現(xiàn)并行處理;
? 錯誤傳播:密文分組中的一個單比特錯誤會影響到本組和其后分組的解密,錯誤傳播為兩組;
? 初始化向量IV不需要保密,它可以明文形式與密文一起傳送。
CTR: 效率高:能夠并行處理多塊明(密)文,可用來提供像流水線、每個時鐘周期的多指令分派等并行特征;
? 預處理:基本加密算法的執(zhí)行并不依靠明文或密文的輸入,可預先處理,當給出明文或密文時,所需的計算僅是進行一系列的異或運算;
? 隨機訪問:密文的第i個明文組能夠用一種隨機訪問的方式處理;
? 簡單性:只要求實現(xiàn)加密算法而不要求實現(xiàn)解密算法,像AES這類加解密算法不同就更能體現(xiàn)CTR的簡單性。
CFB: 消息被看作bit流,不需要整個數(shù)據(jù)分組在接受完后才能進 行加解密;
? 可用于自同步序列密碼; ? 具有CBC模式的優(yōu)點;
? 對信道錯誤較敏感且會造成錯誤傳播;
? 數(shù)據(jù)加解密的速率降低,其數(shù)據(jù)率不會太高。
OFB: OFB模式是CFB模式的一種改進,克服由錯誤傳播帶來的問題,但對密文被篡改難于進行檢測;
OFB模式不具有自同步能力,要求系統(tǒng)保持嚴格的同步,否則難于解密; ? 初始向量IV無需保密,但各條消息必須選用不同的IV。
總結:
ECB是最快、最簡單的分組密碼模式,但它的安全性最弱,一般不推薦使用ECB加密消息,但如果是加密隨機數(shù)據(jù),如密鑰,ECB則是最好的選擇。
?CBC適合文件加密,而且有少量錯誤時不會造成同步失敗,是軟件加密的最好選擇。?CTR結合ECB和CBC的優(yōu)點,最近為人們所重視,在ATM網(wǎng)絡和IPSec中起了重要作用。?CFB通常是加密字符序列所選擇的模式,它也能容忍少量錯誤擴展,且具有同步恢復功能。?OFB是在極易出錯的環(huán)境中選用的模式,但需有高速同步機制。
序列密碼屬于對稱密碼體制,又稱為流密碼。特點:?
1.加解密運算只是簡單的模二加(異或)運算。2.密碼安全強度主要依賴密鑰序列的安全性。密鑰序列產(chǎn)生器(KG)基本要求:
種子密鑰K的長度足夠長,一般應在128位以上(抵御窮舉攻擊); ?密鑰序列產(chǎn)生器KG生成的密鑰序列{ki}具極大周期;
?密鑰序列{ki}具有均勻的n-元分布,即在一個周期內(nèi),某特定形式的n-長bit串與其求反,兩者出現(xiàn)的頻數(shù)大抵相當;
?由密鑰序列{ki}提取關于種子密鑰K的信息在計算上不可行;
?雪崩效應。即種子密鑰K任一位的改變要引起密鑰序列{ki}在全貌上的變化;
?密鑰序列{ki}不可預測的。密文及相應的明文的部分信息,不能確定整個密鑰序列{ki}。只要選擇合適的反饋函數(shù)才可使序列的周期達到最大值2n-1,周期達到最大值的序列稱為m序列。
m-序列特性:0,1平衡性:在一個周期內(nèi),0、1出現(xiàn)的次數(shù)分別為2n-1-1和2n-1。游程特性:
在一個周期內(nèi),總游程數(shù)為2n-1;對1≤i≤n-2,長為i的游程有2n-i-1個,且0、1游程各半;長為n-1的0游程一個,長為n的1游程一個。
非線性序列:為了使密鑰流生成器輸出的二元序列盡可能隨機,應保證其周期盡可能大、線性復雜度和不可預測性盡可能高。
RC4是RSA數(shù)據(jù)安全公司開發(fā)的可變密鑰長度的序列密碼,是世界上使用最廣泛的序列密碼之一.為了保證安全強度,目前的RC4至少使用128位種子密鑰。序列密碼特點:
安全強度取決于密鑰序列的隨機性;
?線性反饋移位寄存器理論上能夠產(chǎn)生周期為2n-1的偽隨機序列,有較理想的數(shù)學分析; ?為了使密鑰流盡可能復雜,其周期盡可能長,復雜度和不可預測盡可能高,常使用多個LFSR構造非線性組合系統(tǒng);
?在某些情況下,譬如緩沖不足或必須對收到字符進行逐一處理時,序列密碼就顯得更加必要和恰當。
?在硬件實施上,不需要有很復雜的硬件電路,實時性好,加解密速度快,序列密碼比分組密碼更有優(yōu)勢。
公鑰密碼之前:都是基于代換和換位這兩個基本方法,建立在字符或位方式的操作上。公鑰密碼算法是建立在數(shù)學函數(shù)基礎上的,而不是建立在字符或位方式的操作上的,是以非對稱的形式使用加密密鑰和解密密鑰,這兩個密鑰的使用對密鑰管理、認證等都有著深刻的實際意義。
對稱密碼缺陷:秘鑰分配問題,秘鑰管理問題,數(shù)字簽名問題; 背包算法是第一個公開秘鑰算法。
RSA: RSA雖稍后于MH背包公鑰系統(tǒng),但它是到目前為止應用最廣的一種公鑰密碼。RSA的理論基礎是數(shù)論的歐拉定理,它的安全性依賴于大整數(shù)的素因子分解的困難性。
歐拉定理:若整數(shù)a 和n 互素,則a≡ 1(mod n)
φ(n)RSA秘鑰長度1024位。
ElGamal公鑰密碼基于有限域上離散對數(shù)問題的公鑰密碼體制?;谟邢抻虻碾x散對數(shù)公鑰密碼又稱ElGamal(厄格瑪爾)算法。ElGamal算法的安全性依賴于計算有限域上的離散對數(shù)。ElGamal算法的離散對數(shù)問題等同RSA的大數(shù)分解問題。ElGamal算法既可用于數(shù)字簽名又可用于加密,但更多地應 用在數(shù)字簽名中。
目前密鑰長度1024位是安全的。
ECC安全性能更高(160位等同RSA的1024位)公鑰密碼學解決了秘鑰分發(fā)和不可否認問題。公鑰證書較好地解決了公鑰的真實性問題。
IBE(基于身份加密)基于身份的密碼系統(tǒng)中,用戶的公鑰是一些公開的可以唯一確定用戶身份的信息,一般這些信息稱為用戶的身份(ID)。在實際應用中,用戶的身份可以是姓名、電話號碼、身份證號碼、IP 地址、電子郵件地址等作為公鑰。用戶的私鑰通過一個被稱作私鑰生成器PKG(Private Key Generator)的可信任第三方進行計算得到。在這個系統(tǒng)中,用戶的公鑰是一些公開的身份信息,其他用戶不需要在數(shù)據(jù)庫中查找用戶的公鑰,也不需要對公鑰的真實性進行檢驗。優(yōu)點: 公鑰的真實性容易實現(xiàn),大大簡化了公鑰的管理。
不足: 身份確認本來就是一件復雜的事情,尤其用戶數(shù)量很大時難以保證。也就是說,IBE適合應用于用戶群小的場合??尚诺谌饺绾伟踩貙⒂脩舻乃借€送到用戶的手中。
?用戶私鑰由可信第三方生成和掌握,不具備唯一性,實現(xiàn)不可否認性時易引發(fā)爭議。公鑰密碼的優(yōu)點(與對稱密碼相比)1.密鑰分發(fā)簡單;
2.需秘密保存的密鑰量減少; 3.可以實現(xiàn)數(shù)字簽名和認證的功能。公鑰密碼的不足(與對稱密碼相比)公鑰密碼算法比對稱密碼算法慢;
?公鑰密碼算法提供更多的信息對算法進行攻擊,如公鑰密碼算法對選擇明文攻擊是脆弱的,尤其明文集比較小時; 有數(shù)據(jù)擴展;
?公鑰密碼算法一般是建立在對一個特定的數(shù)學難題求解上,往往這種困難性只是一種設想。
哈希函數(shù):
單向性,輸出長度固定,:數(shù)據(jù)指紋,實現(xiàn)數(shù)據(jù)完整性和數(shù)字簽名。性質(zhì):?
輸入:消息是任意有限長度。輸出:哈希值是固定長度。
容易計算:對于任意給定的消息,容易計算其哈希值。(正向容易)
單向性:對于給定的哈希值h,要找到M使得H(M)=h在計算上是不可行的。(逆向不可行)
安全性:
抗弱碰撞性:對于給定的消息M1,要發(fā)現(xiàn)另一個消息M2,滿足H(M1)=H(M2)在計算上是不可行的??箯娕鲎残裕赫胰我庖粚Σ煌南1,M2,使H(M1)=H(M2)在計算上是不可行的。隨機性:當一個輸入位發(fā)生變化時,輸出位將發(fā)生很大變化。(雪崩效應)。
MD: MD2(1989)、MD4(1990)和MD5(1991)都產(chǎn)生一個128位的信息摘要。SHA-1接受任何有限長度的輸入消息,并產(chǎn)生長度為160比特的Hash值。
消息驗證的目的:
驗證信息的來源是真實的,而不是冒充的,此為消息源認證。驗證消息的完整性,即驗證信息在傳送或存儲過程中是否被修改。
哈希函數(shù)分類:
改動檢測碼MDC:不帶密鑰的哈希函數(shù),主要用于消息完整性。
消息認證碼MAC:帶密鑰的哈希函數(shù),主要用于消息源認證和消息完整性。
HMAC:算法公式 : HMAC(K,M)=H(K⊕opad∣H(K⊕ipad∣M))K—代表認證密碼
HMAC主要應用在身份驗證中,它的使用方法是這樣的:(1)客戶端發(fā)出登錄請求(假設是瀏覽器的GET請求)(2)服務器返回一個隨機值,并在會話中記錄這個隨機值
(3)客戶端將該隨機值作為密鑰,用戶密碼進行HMAC運算,然后提交給服務器
(4)服務器讀取用戶數(shù)據(jù)庫中的用戶密碼和步驟2中發(fā)送的隨機值做與客戶端一樣的HMAC運算,然后與用戶發(fā)送的結果比較,如果結果一致則驗證用戶合法
在這個過程中,可能遭到安全攻擊的是服務器發(fā)送的隨機值和用戶發(fā)送的HMAC結果,而對于截獲了這兩個值的黑客而言這兩個值是沒有意義的,絕無獲取用戶密碼的可能性,隨機值的引入使HMAC只在當前會話中有效,大大增強了安全性和實用性。
數(shù)字簽名與消息認證不同:
數(shù)字簽名也是一種消息認證技術,它屬于非對稱密碼體制,消息認證碼屬于對稱密碼體制,所以消息認證碼的處理速度比數(shù)字簽名快得多。但是,消息認證碼無法實現(xiàn)不可否認性。數(shù)字簽名的安全要求
? 簽名是可以被驗證的接受者能夠核實簽名者對消息的簽名。簽名是不可偽造的
除了簽名者,任何人(包括接受者)不能偽造消息的簽名。簽名是不可重用的
同一消息不同時刻其簽名是有區(qū)別的。簽名是不可抵賴的 簽名者事后不能抵賴對消息的簽名,出現(xiàn)爭議時,第三方可解決爭端。
數(shù)字簽名的組成:明文空間,密文空間,秘鑰空間,簽名算法,驗證算法 數(shù)字簽名常見的實現(xiàn)算法
基于RSA的簽名算法 基于離散對數(shù)的簽名算法 ?基于ECC的簽名算法
RSA數(shù)字簽名算法(初始化)1.選取兩個大(滿足安全要求)素數(shù)p和q,兩個數(shù)長度接近且相差很大,強素數(shù)。2.計算n=p*q, φ(n)=(p-1)(q-1)3.隨機選取整數(shù)e(1 1.利用一個安全的Hash函數(shù)h來產(chǎn)生消息摘要h(m)。 d2.用簽名算法計算簽名s=Signk(m)≡h(m)mod n。驗證算法 1.首先利用一個安全的Hash函數(shù)h計算消息摘要h(m)。 e2.用檢驗等式h(m)mod n≡smod n 是否成立,若相等簽名有效,否則,簽名無效。假如直接對消息進行私鑰加密,攻擊者獲得兩個簽名后可以偽造m1*m2的有效簽名s1*s2(同態(tài)性) Elgamal簽名算法(舉例)初始化: 假設A選取素數(shù)p = 19,Zp* 的生成元g = 2。選取私鑰x = 15,計算y ≡gx mod p ≡ 215mod 19 =12,則A的公鑰是(p = 19, g = 2, y = 12)。簽名過程: 設消息m的Hash值h(m)= 16,則A選取隨機數(shù)k = 11,計算r ≡ gk mod p≡ 211 mod 19 ≡15,k-1 mod(p-1)= 5。最后計算簽名s ≡ [h(m)-xr]k-1 mod(p-1)≡ 5(16-15×15)mod 18 = 17。得到A對m的簽名為(15, 17)。驗證過程: 接受者B得到簽名(15 , 17)后計算yrrs mod p ≡ 12151517mod 19 = 5,gh(m)mod p ≡ 216 mod 19 = 5。驗證等式y(tǒng)rrs ≡ gh(m)(mod p)相等,因此B接受簽名。Elgamal簽名算法(安全性)不能泄露隨機數(shù)k。 不能使用相同的k對兩個不同消息進行簽名。簽名者多次簽名時所選取多個k之間無關聯(lián)。 整個密碼系統(tǒng)的安全性并不取決對密碼算法的保密,而是由密鑰的保密性決定的。解決的核心問題是密鑰管理問題,而不是密碼算法問題。密鑰的管理水平直接決定了密碼的應用水平。密鑰管理就是在授權各方之間實現(xiàn)密鑰關系的建立和維護的一整套技術和程序。密鑰管理括密鑰的生成、存儲、建立(分配和協(xié)商)、使用、備份/恢復、更新、撤銷/存檔/銷毀等。 典型的密鑰層次結構 主密鑰:對應于層次化密鑰結構中的最高層次,它是對密鑰加密密鑰進行加密的密鑰,主密鑰應受到嚴格的保護。密鑰加密密鑰:一般是用來對傳輸?shù)臅捗荑€進行加密時采用的密鑰。密鑰加密密鑰所保護的對象是實際用來保護通信或文件數(shù)據(jù)的會話密鑰。 會話密鑰:在一次通信或數(shù)據(jù)交換的任務中,用戶之間所使用的密鑰,是由通信用戶之間進行協(xié)商得到的。它一般是動態(tài)地、僅在需要進行數(shù)據(jù)加密時產(chǎn)生,并在任務完成后立即進行銷毀,也稱為數(shù)據(jù)加密密鑰。 密鑰的生成一般首先通過密鑰生成器借助于某種隨機源產(chǎn)生具有較好統(tǒng)計分析特性的序列,以保障生成密鑰的隨機性和不可預測性.密鑰存儲目的是確保密鑰的秘密性、真實性以及完整性。 密鑰更新情況:密鑰有效期結束;密鑰的安全受到威脅;通信成員中提出更新密鑰。 對稱密碼其實就一個密鑰(即已知一個密鑰可推出另一個密鑰),因此,密鑰的秘密性、真實性、完整性都必須保護。 公鑰的秘密性不用確保,但其真實性、完整性都必須嚴格保護。公鑰密碼體制的私鑰的秘密性、真實性、完整性都必須保護。 中間人攻擊: 1.C將公共目錄中B的公鑰替換成自己的公鑰。 2.A將他認為的B的公鑰提取出來,而實際上那是C的公鑰。3.C現(xiàn)在可以讀取A送給B的加密信息。4.C將A的信息解密并閱讀,然后他又用真實的B的公鑰加密該信息并將加密結果發(fā)送給B。數(shù)字證書實現(xiàn)公鑰的真實性。 數(shù)字證書也稱為公鑰證書,是將證書持有者的身份信息和其所擁有的公鑰進行綁定的文件。證書用途: 簽名證書:簽名證書主要用于對用戶信息進行簽名,以保證信息的不可否認性。(私鑰不需備份) 加密證書:加密證書主要用于對用戶傳送信息的密鑰進行加密,以保證信息的保密性。(私鑰需要備份) CRL:證書撤銷列表 在線證書狀態(tài)協(xié)議OCSP:其目的為了克服基于CRL的撤銷方案的局限性,為證書狀態(tài)查詢提供即時的最新響應。OCSP使用證書序列號、CA名稱和公開密鑰的散列值作為關鍵字查詢目標的證書。 為防止攻擊者得到密鑰,必須時常更新密鑰,密碼系統(tǒng)的強度依賴于密鑰分配技術。 密鑰分配中心模式(KDC生成回話密鑰): 前提條件:密鑰分配中心與每個用戶之間有共享密鑰。 1.A向密鑰分配中心KDC(Key Distribute Center)發(fā)出會話密鑰請求。請求內(nèi)容包括A與B的身份以及一次性隨機數(shù)N1。 2.KDC為A的請求發(fā)出應答。應答內(nèi)容包括:一次性會話密鑰Ks、A的請求、用B與KDC的共享密鑰加密一次性會話密鑰Ks和A的身份,其中應答信息是用A與KDC的共享密鑰加密。 3.A存儲會話密鑰Ks,并向B轉(zhuǎn)發(fā)用B與KDC的共享密鑰加密的一次性會話密鑰Ks和A的身份。 4.B使用會話密鑰Ks 加密另一個一次性隨機數(shù)N2 ,并將加密結果發(fā)送給A.5.A使用會話密鑰Ks 加密f(N2),并將加密結果發(fā)送給B.基于公鑰密鑰分配(會話密鑰): 前提條件:通信雙方在CA中擁有自己的證書。 1.A向B發(fā)出會話密鑰請求,請求內(nèi)容包括A的身份、一次性隨機數(shù)N1 以及利用B的公鑰加密一次性會話密鑰Ks。 2.B使用會話密鑰Ks 加密一次性隨機數(shù)N1 ,并將加密結果發(fā)送給A。3.A使用會話密鑰Ks加密f(N1),并將加密結果發(fā)送給B。 密鑰協(xié)商是保密通信雙方(或更多方)通過公開信道的通信來共同形成秘密密鑰的過程。密鑰協(xié)商的結果是:參與協(xié)商的雙方(或更多方)都將得到相同的密鑰,同時,所得到的密鑰對于其他任何方都是不可知的。 密碼算法是密碼協(xié)議的最基本單元,主要包含四個方面: 公鑰密碼算法,在分布式環(huán)境中實現(xiàn)高效密鑰分發(fā)和認證; 對稱密碼算法,使用高效手段實現(xiàn)信息的保密性; 散列函數(shù),實現(xiàn)協(xié)議中消息的完整性; 隨機數(shù)生成器,為每個參加者提供隨機數(shù),實現(xiàn)唯一性和不可預測性。 零知識證明實際上一種密碼協(xié)議,該協(xié)議的一方稱為證明者(Prover),通常用P 表示,協(xié)議的另一方是驗證者(Verifier),一般用V表示。零知識證明是指P試圖使V相信某個論斷是正確的,但卻不向V提供任何有用的信息,或者說在P論證的過程中V得不到任何有用的信息。也就是說,零知識證明除了證明證明者論斷的正確性外不泄露任何其它信息或知識,或者說零知識證明是那種除了論證論題的有效性外不產(chǎn)生任何知識的證明。 盲簽名:簽名要求簽名者能夠在不知道被簽名文件內(nèi)容的情況下對消息進行簽名。另外,即使簽名者在以后看到了被簽名的消息及其簽名,簽名者也不能判斷出這個簽名是他何時為誰生成的。(隱私性,不可追蹤性) SSL:SSL(Secure Socket Layer,即安全套接層)協(xié)議是網(wǎng)景(Netscape)公司于1994年最先提出來的。SSL被設計成使用TCP來提供一種可靠的端到端的安全服務,是一種基于會話的加密和認證的Internet協(xié)議,它在兩實體---客戶和服務器之間提供了一個安全的管道。為了防止客戶/服務器應用中的監(jiān)聽、篡改、消息偽造等,SSL提供了服務器認證和可選的客戶端認證。通過在兩個實體間建立一個共享的秘密,SSL提供保密性。提供的主要服務:? 加密處理,加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊??; 維護數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。 實體認證服務,認證客戶端(可選)和服務器,確保數(shù)據(jù)發(fā)送到正確的客戶端(可選)和服務器。 PGP是一個基于RSA公匙加密體系的郵件加密軟件,可以用它對郵件保密以防止非授權者閱讀,還能對郵件加上數(shù)字簽名從而使收信人可以確信郵件的發(fā)送者。它可以提供一種安全的通訊方式,事先并不需要任何保密的渠道用來傳遞密匙,并采用了一種RSA和傳統(tǒng)加密的混合算法,用于數(shù)字簽名的郵件利用加密前壓縮、哈希算法等技術,功能強大有很快的速度。 “密碼學”學習心得 密碼可破!人類的智慧不可能造成這樣的密碼,使得人類本身的才智即使運用得當也無法破開它! ———愛倫·坡所 在我們的生活中有許多的秘密和隱私,我們不想讓其他人知道,更不想讓他們?nèi)V泛傳播或者使用。對于我們來說,這些私密是至關重要的,它記載了我們個人的重要信息,其他人不需要知道,也沒有必要知道。為了防止秘密泄露,我們當然就會設置密碼,保護我們的信息安全。更有甚者去設置密保,以防密碼丟失后能夠及時找回。密碼”一詞對人們來說并不陌生,人們可以舉出許多有關使用密碼的例子?,F(xiàn)代的密碼已經(jīng)比古代有了長遠的發(fā)展,并逐漸形成一門科學,吸引著越來越多的人們?yōu)橹畩^斗。 一、密碼學的定義 密碼學是研究信息加密、解密和破密的科學,含密碼編碼學和密碼分析學。密碼技術是信息安全的核心技術。隨著現(xiàn)代計算機技術的飛速發(fā)展,密碼技術正在不斷向更多其他領域滲透。它是集數(shù)學、計算機科學、電子與通信等諸多學科于一身的交叉學科。使用密碼技術不僅可以保證信息的機密性,而且可以保證信息的完整性和確證性,防止信息被篡改、偽造和假冒。目前密碼的核心課題主要是在結合具體的網(wǎng)絡環(huán)境、提高運算效率的基礎上,針對各種主動攻擊行為,研究各種可證安全體制。 密碼學的加密技術使得即使敏感信息被竊取,竊取者也無法獲取信息的內(nèi)容;認證性可以實體身份的驗證。以上思想是密碼技術在信息安全方面所起作用的具體表現(xiàn)。密碼學是保障信息安全的核心;密碼技術是保護信息安全的主要手段。本文主要講述了密碼的基本原理,設計思路,分析方法以及密碼學的最新研究進展等內(nèi)容 密碼學主要包括兩個分支,即密碼編碼學和密碼分析學。密碼編碼學對信息進行編碼以實現(xiàn)信息隱藏,其主要目的是尋求保護信息保密性和認證性的方法;密碼分析學是研究分析破譯密碼的學科,其主要目的是研究加密消息的破譯和消息的偽造。密碼技術的基本思想是對消息做秘密變換,變換的算法即稱為密碼算法。密碼編碼學主要研究對信息進行變換,以保護信息在傳遞過程中不被敵方竊取、解讀和利用的方法,而密碼分析學則于密碼編碼學相反,它主要研究如何分析和破譯密碼。這兩者之間既相互對立又相互促進。密碼的基本思想是對機密信息進行偽裝。 二、密碼學的發(fā)展歷程 密碼學的發(fā)展歷程大致經(jīng)歷了三個階段:古代加密方法、古典密碼和近代密碼。 1.古代加密方法(手工階段) 源于應用的無窮需求總是推動技術發(fā)明和進步的直接動力。存于石刻或史書中的記載表明,許多古代文明,包括埃及人、希伯來人、亞述人都在實踐中逐步發(fā)明了密碼系統(tǒng)。從某種意義上說,戰(zhàn)爭是科學技術進步的催化劑。人類自從有了戰(zhàn)爭,就面臨著通信安全的需求,密碼技術源遠流長。 古代加密方法大約起源于公元前440年出現(xiàn)在古希臘戰(zhàn)爭中的隱寫術。當時為了安全傳送軍事情報,奴隸主剃光奴隸的頭發(fā),將情報寫在奴隸的光頭上,待頭發(fā)長長后將奴隸送到另一個部落,再次剃光頭發(fā),原有的信息復現(xiàn)出來,從而實現(xiàn)這兩個部落之間的秘密通信。 我國古代也早有以藏頭詩、藏尾詩、漏格詩及繪畫等形式,將要表達的真正意思或“密語”隱藏在詩文或畫卷中特定位置的記載,一般人只注意詩或畫的表面意境,而不會去注意或很難發(fā)現(xiàn)隱藏其中的“話外之音”。 比如:我畫藍江水悠悠,愛晚亭楓葉愁。秋月溶溶照佛寺,香煙裊裊繞輕樓 2.古典密碼(機械階段) 古典密碼的加密方法一般是文字置換,使用手工或機械變換的方式實現(xiàn)。古典密碼系統(tǒng)已經(jīng)初步體現(xiàn)出近代密碼系統(tǒng)的雛形,它比古代加密方法復雜,其變化較小。古典密碼的代表密碼體制主要有:單表代替密碼、多表代替密碼及轉(zhuǎn)輪密碼。3.近代密碼(計算機階段) 密碼形成一門新的學科是在20世紀70年代,這是受計算機科學蓬勃發(fā)展刺激和推動的結果??焖匐娮佑嬎銠C和現(xiàn)代數(shù)學方法一方面為加密技術提供了新的概念和工具,另一方面也給破譯者提供了有力武器。計算機和電子學時代的到來給密碼設計者帶來了前所未有的自由,他們可以輕易地擺脫原先用鉛筆和紙進行手工設計時易犯的錯誤,也不用再面對用電子機械方式實現(xiàn)的密碼機的高額費用??傊?,利用電子計算機可以設計出更為復雜的密碼系統(tǒng) 20世紀中葉以前, 由于條件所限, 密碼技術的保密性基于加密算法的秘密, 因此稱之為古典密碼體制或受限的密碼算法。盡管古典密碼體制受到當時歷史條件的限制, 沒有涉及非常高深或者復雜的理論, 但在其漫長的發(fā)展演化過程中, 已經(jīng)充分表現(xiàn)出了現(xiàn)代密碼學的兩大基本思想一“ 代替” 和“換位” , 而且還將數(shù)學的方法引人到密碼分析和研究中。這為后來密碼學成為系統(tǒng)的學科以及相關學科的發(fā)展莫定了堅實的基礎。 密碼學真正成為科學是在19世紀末和20世紀初期,由于軍事、數(shù)學、通訊等相關技術的發(fā)展,特別是兩次世界大戰(zhàn)中對軍事信息保密傳遞和破獲敵方信息的需求,密碼學得到了空前的發(fā)展,并廣泛的用于軍事情報部門的決策.小結 從以上密碼學的發(fā)展歷史可以看出,整個密碼學的發(fā)展過程是從簡單到復雜,從不完美到完美,從具有單一功能到具有多種功能的過程。這是符合歷史發(fā)展規(guī)律和人類對客觀事物的認識規(guī)律的。而且也可以看出密碼學的發(fā)展受到其它學科如數(shù)學、計算機科學的極大促動。這說明,在科學的發(fā)展進程中,各個學科互相推動,互相聯(lián)系,乃至互相滲透,其結果是不斷涌現(xiàn)出新的交叉學科,從而達到人類對事物更深的認識。從密碼學的發(fā)展中還可以看出,任何一門學科如果具有廣泛的應用基礎,那么這個學科就能從中汲取發(fā)展動力,就會有進一步發(fā)展的基礎。 我們這個社會已進入了信息時代,隨著數(shù)據(jù)庫技術和計算機網(wǎng)絡應用的不斷深入,信息的安全傳輸也有著廣闊的應用前景。雖然密碼可以追溯到古代,但密碼作為一門學科還非常年輕,還有著更進一步的發(fā)展要求。 三、密碼學的基礎知識 密碼學(Cryptogra phy),現(xiàn)代準確的術語為“密碼編制學”,簡稱“編密學”,與之相對的專門研究如何破解密碼的學問稱之為“密碼分析學”。密碼學是主要研究通信安全和保密的學科,密碼編碼學主要研究對信息進行變換,以保護信息在傳遞過程中不被敵方竊取、解讀和利用的方法,而密碼分析學則于密碼編碼學相反,它主要研究如何分析和破譯密碼。這兩者之間既相互對立又相互促進。密碼的基本思想是對機密信息進行偽裝。一個密碼系統(tǒng)完成如下偽裝:加密者對需要進行偽裝機密信息(明文)進行偽裝進行變換(加密變換),得到另外一種看起來似乎與原有信息不相關的表示(密文),如果合法者(接收者)獲得了偽裝后的信息,那么他可以通過事先約定的密鑰,從得到的信息中分析得到原有的機密信息(解密變換),而如果不合法的用戶(密碼分析者)試圖從這種偽裝后信息中分析得到原有的機密信息,那么,要么這種分析過程根本是不可能的,要么代價過于巨大,以至于無法進行。 在計算機出現(xiàn)以前,密碼學的算法主要是通過字符之間代替或易位實現(xiàn)的,我們稱這些密碼體制為古典密碼。其中包括:易位密碼、代替密碼(單表代替密碼、多表代替密碼等)。這些密碼算法大都十分簡單,現(xiàn)在已經(jīng)很少在實際應用中使用了。由于密碼學是涉及數(shù)學、通訊、計算機等相關學科的知識,就我們現(xiàn)有的知識水平而言,只能初步研究古典密碼學的基本原理和方法。但是對古典密碼學的研究,對于理解、構造和分析現(xiàn)代實用的密碼都是很有幫助。以下介紹我們所研究的古典密碼學。 小結 像絕大多數(shù)領域的科學知識一樣,密碼學在完整的科學體系建立起來之前,古典密碼學僅限于一些簡單代替和置換算法,當然,這代替和置換如果經(jīng)過了幾次算法的加密就會一樣復雜多變,而現(xiàn)代的算法經(jīng)過科學體系的整理與發(fā)展,更加的完善一些復雜算法的應用和各種應用協(xié)議的產(chǎn)生。而由于網(wǎng)絡的出現(xiàn)以及發(fā)展,未來的密碼學也必定向這個方向發(fā)展。例如網(wǎng)絡簽名,網(wǎng)上銀行的安全,個人郵件信息的保護,都很迫切需要密碼學的支持,推動密碼學的發(fā)展.四、密碼學的作用 現(xiàn)代密碼學研究信息從發(fā)端到收端的安全傳輸和安全存儲,是研究“知己知彼”的一門科學。其核心是密碼編碼學和密碼分析學。前者致力于建立難以被敵方或?qū)κ止テ频陌踩艽a體制,即“知己”;后者則力圖破譯敵方或?qū)κ忠延械拿艽a體制,即“知彼”。人類有記載的通信密碼始于公元前400年。古希臘人是置換密碼的發(fā)明者。1881年世界上的第一個電話保密專利出現(xiàn)。電報、無線電的發(fā)明使密碼學成為通信領域中不可回避的研究課題。 1.用來加密保護信息 利用密碼變換將明文變換成只有合法者才能恢復的密文,這是密碼的最基本功能。信息的加密保護包括傳輸信息和存儲信息兩方面,后者解決起來難度更大。 2.采用數(shù)字證書來進行身份鑒別 數(shù)字證書就是網(wǎng)絡通訊中標志通訊各方身份信息的一系列數(shù)據(jù),是網(wǎng)絡正常運行所必須的?,F(xiàn)在一般采用交互式詢問回答,在詢問和回答過程中采用密碼加密,特別是采用密碼技術的帶CPU的職能卡,安全性好,在電子商務系統(tǒng)中,所有參與活動的實體都需要用數(shù)字證書來表明自己的身份,數(shù)字證書從某種角度上說就是“電子身份證”。3.數(shù)字指紋 在數(shù)字簽名中有重要作用的“報文摘要”算法,即生成報文“數(shù)字指紋”的方法,近年來備受關注,構成了現(xiàn)代密碼學的一個重要側(cè)面。4.采用密碼技術對發(fā)送信息進行驗證 為防止傳輸和存儲的消息被有意或無意的篡改,采用密碼技術對消息進行運算生成消息的驗證碼,附在消息之后發(fā)出或信息一起存儲,對信息進行驗證,它在票房防偽中有重要作用。5.利用數(shù)字簽名來完成最終協(xié)議 在信息時代,電子數(shù)據(jù)的收發(fā)使我們過去所依賴的個人特征都將被數(shù)字代替,數(shù)字簽名的作用有兩點,一是因為自己的簽名難以否認,從而確定了文件已簽署這一事實;二是因為簽名不易仿冒,從而確定了文件時真的這一事實。 五、密碼學的前景 量子密碼學 量子密碼體系采用量子態(tài)作為信息載體,經(jīng)由量子通道在合法的用戶之間傳送密鑰。量子密碼的安全性由量子力學原理所保證。所謂絕對安全性是指:即使在竊聽者可能擁有極高的智商、可能采用最高明的竊聽措施、可能使用最先進的測量手段,密鑰的傳送仍然是安全的。通常,竊聽者采用截獲密鑰的方法有兩類:一種方法是通過對攜帶信息的量子態(tài)進行測量,從其測量的結果來提取密鑰的信息。但是,量子力學的基本原理告訴我們,對量子態(tài)的測量會引起波函數(shù)塌縮,本質(zhì)上改變量子態(tài)的性質(zhì),發(fā)送者和接受者通過信息校驗就會發(fā)現(xiàn)他們的通訊被竊聽,因為這種竊聽方式必然會留下具有明顯量子測量特征的痕跡,合法用戶之間便因此終止正在進行的通訊。第二種方法則是避開直接的量子測量,采用具有復制功能的裝置,先截獲和復制傳送信息的量子態(tài)。然后,竊聽者再將原來的量子態(tài)傳送給要接受密鑰的合法用戶,留下復制的量子態(tài)可供竊聽者測量分析,以竊取信息。這樣,竊聽原則上不會留下任何痕跡。但是,由量子相干性決定的量子不可克隆定理告訴人們,任何物理上允許的量子復制裝置都不可能克隆出與輸入態(tài)完全一樣的量子態(tài)來。這一重要的量子物理效應,確保了竊聽者不會完整地復制出傳送信息的量子態(tài)。因而,第二種竊聽方法也無法成功。量子密碼術原則上提供了不可破譯、不可竊聽和大容量的保密通訊體系。 現(xiàn)代密碼學與計算機技術、電子通信技術緊密相關。在這一階段,密碼理論蓬勃發(fā)展,密碼算法設計與分析互相促進,出現(xiàn)了大量的密碼算法和各種攻擊方法。而且如今“密碼學”不僅用于國家軍事安全上,而且更多的集中在實際生活中。如在生活中,為防止別人查閱你的文件,可將文件加密;為防止竊取你的錢 財,可在銀行賬戶上設置密碼等。隨著科學技術的發(fā)展和信息保密的需求,密碼學的應用將融人到人們的日常生活中?;诿艽a學有著堅實的應用基礎,可以相信,密碼學一定能不斷地發(fā)展,不斷地完善,從而會給全人類提供更加安全的各種服務,讓我們祝福這一天的到來吧! 隨著科學技術的迅猛發(fā)展,人們對信息安全和保密的重要性認識不斷提高,在信息安全中起著舉足輕重作用的密碼學也就成為信息安全中不可或缺的重要部分。在今天,密碼學仍然是信息技術非常重要的組成部分,它還在多個方面發(fā)揮著重要作用。比如對于用戶的認證,對于信息的認證,信息的安全以及存儲的安全等,但這些對于密碼學而言,它需要同其他組件配合,比如管理軟件等。密碼學是和技術相關。作為一項技術本身有演進的需要,同時還要適應跟它相配合的技術組件發(fā)展的需要,要適應用戶的新需求以及其他的新應用。密碼學同信息技術所包括的組件一樣,一直在發(fā)展變化中,這就需要我們要不斷地發(fā)展密碼學,使密碼學能夠適應其他應用的需求,同其他技術的進步齊頭并進。信息安全有著眾多基礎研究的領域,這些基礎研究構成了密碼學的基礎,也構成了通信、安全軟件等系統(tǒng)的基礎。當我們在實施一個工程項目的時候,不能僅靠一個細分領域技術就能把這個項目完成。 六、學習密碼學的感悟 1.密碼學家的人生價值 密碼學家,也許不為人知。但他們的工作卻在我們的生活中發(fā)揮 著巨大的作用。他們在現(xiàn)代社會中有著不可替代的作用。有人認為密碼學家就像一個黑客,但他們有著本質(zhì)的不同。黑客是盜取密碼保護的信息以獲取利益,而密碼學家從事的是基礎理論研究,是為了評估密碼算法的安全性,找到其漏洞,以設計出更安全的密碼算法。 我覺得,對于密碼學家來說,其實有兩重意義上的生命:一是生物意義上的生命,二是學術意義上的生命。兩種生命往往并不同步。有的人,生物意義上的生命還活著,學術意義上的生命已經(jīng)死了。這種情況在我們周圍越來越常見。目前充斥著大量名為成果,實為名利敲門磚的所謂學術,沒有任何新意和創(chuàng)見,前腳邁出印刷廠,后腳就進造紙廠,白耗費了財力,還增加了環(huán)境污染。有的人,生物意義上的生命死了,學術意義上的生命還活著。我想,密碼學家就是這樣的一類人,他們的研究成果,大到保衛(wèi)國家,小到維護個人的利益,我想這是他們?nèi)松鷥r值的最好體現(xiàn)。 2.總結與體會 密碼學充滿了神秘性,讓我對她產(chǎn)生了濃厚的興趣和好奇。最近的這次人類戰(zhàn)爭中,即二戰(zhàn),認識到密碼和情報是一件事情。而在當代密碼學跟數(shù)學,計算機只是一個大背景,因為信息將會以網(wǎng)絡為媒介,所以現(xiàn)代密碼學更多的是以數(shù)字化的信息而非紙質(zhì)為研究對象。所以密碼學歸根結底是數(shù)學問題,計算能力是數(shù)學的一個方面,高性能的計算機可以成為國力的象征,分析情報就是一方面。數(shù)學研究等一些自然基礎學科的研究才是國家實力的堅定的基石,才是一個自然科學的學生的理想所在。數(shù)學研究很廣泛,而密碼學涉及很有限,大多與計算機學科相關,如離散數(shù)學。從數(shù)學的分類包括:數(shù)論、近世代數(shù)、矩陣論、域論,以及其它結合較為緊密地理論:信息論、編碼論、量子學、混沌論。 密碼學還有許許多多這樣的問題。當前,密碼學發(fā)展面臨著挑戰(zhàn)和機遇。計算機網(wǎng)絡通信技術的發(fā)展和信息時代的到來,給密碼學提供了前所未有的發(fā)展機遇。在密碼理論、密碼技術、密碼保障、密碼管理等方面進行創(chuàng)造性思維,去開辟密碼學發(fā)展的新紀元才是我們的追求。 北京科技大學 班級: 計1102 姓名:楊勇 學號: 41155047 關于密碼學技術讀書筆記 一.密碼學的介紹 密碼學(在西歐語文中,源于希臘語kryptós“隱藏的”,和gráphein“書寫”)是研究如何隱密地傳遞信息的學科。在現(xiàn)代特別指對信息以及其傳輸?shù)臄?shù)學性研究,常被認為是數(shù)學和計算機科學的分支,和信息論也密切相關。著名的密碼學者Ron Rivest解釋道:“密碼學是關于如何在敵人存在的環(huán)境中通訊”,自工程學的角度,這相當于密碼學與純數(shù)學的異同。密碼學是信息安全等相關議題,如認證、訪問控制的核心。密碼學的首要目的是隱藏信息的涵義,并不是隱藏信息的存在。密碼學也促進了計算機科學,特別是在于電腦與網(wǎng)絡安全所使用的技術,如訪問控制與信息的機密性。密碼學已被應用在日常生活:包括自動柜員機的芯片卡、電腦使用者存取密碼、電子商務等等。 密碼是通信雙方按約定的法則進行信息特殊變換的一種重要保密手段。依照這些法則,變明文為密文,稱為加密變換;變密文為明文,稱為脫密變換。密碼在早期僅對文字或數(shù)碼進行加、脫密變換,隨著通信技術的發(fā)展,對語音、圖像、數(shù)據(jù)等都可實施加、脫密變換。二.密碼學的發(fā)展歷史 密碼學的發(fā)展歷程大致經(jīng)歷了三個階段:古代加密方法、古典密碼和近代密碼。1.古代加密方法(手工階段) 古代加密方法大約起源于公元前440年出現(xiàn)在古希臘戰(zhàn)爭中的隱寫術。當時為了安全傳送軍事情報,奴隸主剃光奴隸的頭發(fā),將情報寫在奴隸的光頭上,待頭發(fā)長長后將奴隸送到另一個部落,再次剃光頭發(fā),原有的信息復現(xiàn)出來,從而實現(xiàn)這兩個部落之間的秘密通信。 公元前400年,斯巴達人就發(fā)明了“塞塔式密碼”,即把長條紙螺旋形地斜繞在一個多棱棒上,將文字沿棒的水平方向從左到右書寫,寫一個字旋轉(zhuǎn)一下,寫完一行再另起一行從左到右寫,直到寫完。解下來后,紙條上的文字消息雜亂無章、無法理解,這就是密文,但將它繞在另一個同等尺寸的棒子上后,就能看到原始的消息。這是最早的密碼技術。 我國古代也早有以藏頭詩、藏尾詩、漏格詩及繪畫等形式,將要表達的真正意思或“密語”隱藏在詩文或畫卷中特定位置的記載。2.古典密碼(機械階段) 古典密碼的加密方法一般是文字置換,使用手工或機械變換的方式實現(xiàn)。古典密碼系統(tǒng)已經(jīng)初步體現(xiàn)出近代密碼系統(tǒng)的雛形,它比古代加密方法復雜,其變化較小。古典密碼的代表密碼體制主要有:單表代替密碼、多表代替密碼及轉(zhuǎn)輪密碼。3.近代密碼(計算機階段) 密碼形成一門新的學科是在20世紀70年代,這是受計算機科學蓬勃發(fā)展刺激和推動的結果??焖匐娮佑嬎銠C和現(xiàn)代數(shù)學方法一方面為加密技術提供了新的概念和工具,另一方面也給破譯者提供了有力武器。 課 程 設 計 報 告 題目: 密碼學課程設計 課程名稱: 密碼學課程設計 專業(yè)班級: 信安1904班 學 號: U201912177 姓 名: 段帥杰 指導教師: 路松峰老師 報告日期: 2021/10/12 教師評語: 分數(shù): 網(wǎng)絡空間安全學院 目錄 一、設計過程 1 1.1 SPN實現(xiàn) 1 1.2線性分析 2 1.3差分分析 3 1.4 SPN增強 4 1.5 RSA參數(shù)計算 5 1.6模重復平方 6 1.7中國剩余定理 7 1.8 PKCS7 8 1.9彩虹表 9 二、實驗心得 10 三、對課程設計內(nèi)容和過程的建議 11 一、設計過程 1.1 SPN實現(xiàn) (1)設計內(nèi)容 按照課本給出的的S盒和P盒以及密鑰編排方案來實現(xiàn)分組密碼SPN加解密。有兩個輸入,分別是32比特的密鑰和16比特的明文。要正確輸出密文和對明文最后一比特取反解密得到的明文。加密過程主要包括三個部分:代換,置換和輪密鑰異或。 (2)設計過程 算法所注意的問題:加密與解密主要在于密鑰編排順序不同,算法過程基本相同。最后一輪沒有經(jīng)過P盒。 解決這道題最直接的思路就是開數(shù)組及進行運算,但這樣顯然速度不夠快。后來摒棄這種做法,采用位運算,速度快了不少而且這種做法方便快讀快寫的程序?qū)崿F(xiàn)。但還是有幾個數(shù)據(jù)點過不了oj,后面打了一個65536的表,將時間提高至1100ms左右。最后采用了快寫才將時間穩(wěn)定在700ms左右。 (3)小結 采用打表的方式程序速度確實有提高,但是程序很臃腫。程序中還有些算術運算并沒有轉(zhuǎn)換為位運算。 圖1-1 SPN實現(xiàn)oj結果圖示 1.2線性分析 (1)設計內(nèi)容 線性分析是一種已知明文的分析方法,基于S盒逼近,需要大量的明密文對。oj上給了8000對明密文對。并且只對最后一輪子密鑰進行分析。在密鑰生成算法固定的情況下,獲得最后一輪子密鑰可以為分析別的密鑰提供可能。遍歷可能的密鑰空間并進行計數(shù),結束后正確的密鑰計數(shù)值接近1/2±?,并且應該在一定范圍內(nèi)對計數(shù)值較大的可能密鑰進行驗證。 (2)設計過程 首先使用書中給出的線性分析鏈,分析出第5輪第2、4部分的密鑰。再選擇新的偏差較大的線性分析鏈,在第2、4部分密鑰已知的基礎上分析出第1、3部分的密鑰。接著在已知起始密鑰低16位的基礎上,窮舉高16位密鑰對給出的8000個明密文對進行驗證。由于在加密過程中進行了5輪的S代換和P置換,其實相同明文在不同密鑰下得到相同密文的概率極低,因此并沒有驗證8000個明密文對是否對應,而僅驗證了3個判斷密鑰是否合適。 程序有兩層主循環(huán),第一層主循環(huán)遍歷可能的第5輪第2、4部分密鑰,第二層在已知第5輪第2、4部分密鑰的基礎上生成并遍歷可能的第5輪第1、3部分密鑰,同時窮舉高16位密鑰并進行驗證。 (3)小結 為了提高速度,程序中同樣采用了打表。但是在oj上仍然差了300ms,最后是開啟了03優(yōu)化才能全部通過(開啟這個優(yōu)化通過oj,算不上很完美)。 #pragma GCC optimize(3,”O(jiān)fast“,”inline“) 圖1-2 線性分析oj結果圖示 1.3差分分析 (1)設計內(nèi)容 實驗目的是實現(xiàn)對SPN網(wǎng)絡的差分密碼分析。差分密碼與線性密碼分析相似。主要區(qū)別在于它將兩個輸入的異或與其相對應的兩個輸出的異或相比較,是一種選擇明文攻擊。差分攻擊的基礎是一個非均勻的輸出分布。和線性分析進行類似的計數(shù)操作并在計數(shù)值一定范圍內(nèi)對密鑰進行驗證。 (2)設計過程 首先使用書中給出的差分鏈分析出第5輪第2、4部分的密鑰。再選擇新的差分鏈分析出第5輪第1、3部分密鑰,然后窮舉高16位密鑰情況,并驗證密鑰正確性。 與線性分析不同的是,由于差分分析中可以找到一條第5輪僅包含第1、3部分且偏差很大的差分鏈,因此不需要在已知第5輪第2、4部分的基礎上進行差分分析,也因此減小了部分時間開銷。 代碼實現(xiàn)流程為:快速讀入數(shù)據(jù)并存入數(shù)組中;根據(jù)已有的明密文對分別對第5輪第2、4部分和第1、3部分進行差分分析,記錄每一種密鑰對應的count值。在一定范圍內(nèi)遍歷第5輪第2、4部分和第1、3部分密鑰,窮舉高16位密鑰并驗證正確性,得到正確密鑰后快速輸出密鑰。 (3)小結 程序提交oj的時候最后一個測試點偶爾會出現(xiàn)超時的情況。 圖1-3 差分分析oj結果圖示 1.4 SPN增強 (1)設計內(nèi)容 對原始SPN進行改進,自定義密鑰長度,分組長度,S盒,P盒等信息,對輸入比特流進行加密使輸出能夠通過oj的隨機數(shù)檢測標準。 (2)設計過程 相比于之前的SPN,做了些改動。采用CBC模式,隨便設置一個初始向量,并且將密鑰增加到128位,SPN加密長度增加到64位,使用自定義的P盒。這樣才通過了隨機性檢測。 (3)小結 這道題不像之前的題目卡時間那么難受,雖然安全性相比于最初的SPN有所提高,但是真正應用的話,安全性還是不行。 圖1-4 SPN增強oj結果圖示 1.5 RSA參數(shù)計算 (1)設計內(nèi)容 實驗目的是自己利用gmp庫提供的大整數(shù)基本運算來實現(xiàn)求逆和最大公因數(shù),輸出RSA參數(shù)d,并檢查RSA參數(shù)的合法性。 (2)設計過程 首先是利用vcpkg在主機vs2019上搭建好了運行環(huán)境。實現(xiàn)了素性檢測,gcd的求解以及求逆等過程。主要遇到的問題是在驗證安全性上,判斷參數(shù)是否正確。首先e不能太小,主要為了提高計算的難度;p和q間隔不能太??;p-1和q-1不能太光滑,即gcd(p-1,q-1)應該比較小,經(jīng)過詢問和驗證,這個值大概在20以內(nèi)。 (3)小結 這個實驗主要熟悉了gmp庫提供的大整數(shù)相關的基本函數(shù)運算。比較麻煩的是需要自己摸索測試方法,探索p和q的間隔,(p-1)和(q-1)的最大公因數(shù)大小等。在運行速度上倒是沒遇到什么大問題。 圖1-5 RSA參數(shù)計算oj結果圖示 1.6模重復平方 (1)設計內(nèi)容 實驗目的是利用gmp庫提供的加法,減法,乘法,模運算等基本運算來自己實現(xiàn)expmod(a,e,n)。 (2)設計過程 這道題逐步計算就行,需要注意的是遞歸或者普通的循環(huán)是行不通的。為了加快運行速度,要盡量減少循環(huán)次數(shù)。 (3)小結 這道題主要還是gmp庫提供的函數(shù)的應用。 圖1-6模重復平方 oj結果圖示 1.7中國剩余定理 (1)設計內(nèi)容 實驗內(nèi)容:正確計算c^d(modpq)。利用1.5中的求逆運算從加密密鑰e計算解密密鑰d。 利用1.6中實現(xiàn)的模冪運算和中國剩余定理計算c^d(modpq)。 (2)設計過程 這道題主題要是與前面兩題的結合,使用p,q并運用中國剩余定理解密。為了加快速度解決的問題: 1.避免重復計算,用變量將不會改變的值保存好,避免不必要的計算。 2.在求解模冪時,將解密指數(shù)d模除以p-1和q-1,加速計算。 (3)小結 雖然經(jīng)過改進,運行時間有所提高,但是最后一個測試點還是壓著邊過的。 圖1-7中國剩余定理oj結果圖示 1.8 PKCS7 (1)設計內(nèi)容 PKCS#7是PKI中用于消息加密的語法標準。可以用于給擁有公鑰的用戶發(fā)加密郵件、傳送加密文件等。實驗目的是解開PKCS#7包裝,獲取明文消息。 (2)設計過程 這道題首先是查找PKCS#7的相關知識,了解它的用途。算是對上學期所學知識的綜合應用的一個實例。然后利用openssl庫提供相關的函數(shù)進行解密。 (3)小結 這道題時間并不是問題。還是比較輕松的。 圖1-8 PKCS7 oj結果圖示 1.9彩虹表 (1)設計內(nèi)容 有一些鏈頭和鏈尾,每條鏈從鏈頭開始,依次調(diào)用了10000次SHA1和R函數(shù)得到鏈尾。 實驗目的是從這些鏈中找到SHA1值對應的口令。 (2)設計過程 在程序中定義了UnitSHA1函數(shù)來尋找SHA1,通過findstr函數(shù)判斷是否恰當。為了加快運行速度,程序中同樣采用了快讀快寫以及位運算等。 (3)小結 這道題雖然時間限制提高至2000ms,但最后有幾個測試點還是開了03優(yōu)化才過的。 圖1-9 彩虹表oj結果圖示 二、實驗心得 這次試驗包含了SPN加解密及其分析,RSA參數(shù),模重復平方,中國剩余定理,PKCS7,彩虹表等九個實驗的內(nèi)容。在實驗過程中,要到了許許多多的問題。主要有以下幾點: ? SPN的位運算,最初因為對位運算不夠熟悉并沒有想著用位運算來實現(xiàn)SPN的加解密,多走了很多彎路。 密碼分析問題,線性分析和差分分析否需要自己依據(jù)原理來找到最理想的鏈,而且需要先對概念原理有個清楚的認知,這就迫使我再次回顧密碼學課本和網(wǎng)課上的知識點。 ?運行時間問題,為了縮短運行時間,采取了很多辦法。比如打表,快讀快寫,在某些不改變的變量前面加const,在常用的變量前加register,算術運算轉(zhuǎn)變?yōu)槲贿\算等等。實在過不了的開啟了02,03優(yōu)化。 ?第三方庫的安裝與鏈接,在采用了許多方法無果后,采用了vcpkg庫管理工具實現(xiàn)了gmp,gmssl,openssl等的安裝與鏈接,減少了許多配置的麻煩。 ?密碼學課程知識的回顧,過了一個暑假,部分密碼學的細節(jié)知識有所遺忘,為了完成這次實驗,需要重新學習一遍。這種回顧知識的機會自高中結束以來很少有了。上學期主要進行理論學習,這次試驗彌補了實踐的缺失。 總的來說,這次課設給我留下了深刻印象。自己寫的代碼不能正常運時的焦慮感是做其他實驗沒有的。大部分問題都要重新回顧之前的密碼學知識。通過網(wǎng)上搜索相關概念,詢問老師和同學解決。有些細節(jié)問題也會與同學交流討論。這次實驗讓自己對密碼學的認識和自己的編程能力上升了一個臺階。 ?希望能夠在完成人數(shù)適當?shù)臅r候進行一次講解,這樣可以讓沒有方向的同學知道如何著手,也可以讓已經(jīng)完成的同學進行思路的比對,有所改進。小范圍討論和統(tǒng)一講解同樣重要。 ?希望oj上的時間增加一點,因為時間而卡在一道題上過不去的滋味并不好受。而且實驗是在鍛煉我們的思考問題和實踐的能力。如果時間太少的話,就只能參考別人的思路來縮短運行速度,同質(zhì)化嚴重。不利于學生獨立思考,寫出各種各樣的程序。我們寫的程序最終也不會進行應用,更重要的是鍛煉,糾結于幾百毫秒反而降低了學生的熱情。 ?在課設結束后發(fā)出參考樣例方便有需要的同學進行改進。 希望實驗課能越來越好,通過實驗來吸引更多對密碼學有興趣的人。第三篇:密碼學學習心得
第四篇:密碼學技術讀書筆記
第五篇:密碼學課程設計報告