密碼學心得體會(DES數(shù)據(jù)算法)_第1頁
密碼學心得體會(DES數(shù)據(jù)算法)_第2頁
密碼學心得體會(DES數(shù)據(jù)算法)_第3頁
密碼學心得體會(DES數(shù)據(jù)算法)_第4頁
密碼學心得體會(DES數(shù)據(jù)算法)_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、現(xiàn)代密碼學小論文姓名:肖寬學號:P111813618 專業(yè):11級電子信息工程二班指導教師:李娟數(shù)據(jù)的DES加密算法摘要:密碼學是研究如何隱密地傳遞信息的學科。在現(xiàn)代特別指對信息以及其傳輸?shù)臄?shù)學性研究,常被認為是數(shù)學和計算機科學的分支,和信息論也密切相關。著名的密碼學者Ron Rivest解釋道:“密碼學是關于如何在敵人存在的環(huán)境中通訊,自工程學角度,這相當于密碼學與純數(shù)學的異同。密碼學是信息安全等相關議題,如認證,訪問控制的核心。密碼學的首要目的是隱藏信息的涵義,并不是隱藏信息的存在。密碼學也是促進計算機科學,特別是在于電腦與網(wǎng)絡安全所使用的技術,如訪問控制與信息的機密性。密碼學已經被應用在

2、日常生活:包括自動柜員機的芯片卡,電腦使用者存取密碼,電子商務等等。本文以DES數(shù)據(jù)加密算法為例,演示如何使用c#中的加密包進行DES算法加密,關鍵詞:加密 對稱 非對稱DES 密鑰 明文20世紀70年代,主機時代的信息安全是面向單機的,由于早期的用戶主要是軍方,信息安全的主要內容是保密,20世紀80年代,微機和局域網(wǎng)的興起帶來了信息在微機間的傳輸和用戶間的共享問題,豐富了信息安全的內函,使人們認識到數(shù)據(jù)完整性,可用性的重要性。安全服務,安全機制等基本框架成為信息安全的重要內容。20世紀90年代,因特網(wǎng)爆炸性的發(fā)展把人類帶進了一個新生的生存空間。因特網(wǎng)具有高度分布,邊界模糊,層次欠清,動態(tài)演化

3、,而用戶又在其中扮演主角的特點,如何處理好這一復雜而又巨大的系統(tǒng)的安全,成為信息安全的主要問題。21世紀是信息時代,信息已經成為社會發(fā)展的重要戰(zhàn)略資源,社會的信息已經成為當今世界發(fā)展的潮流和核心,而信息安全在信息社會中將扮演極為重要的角色,它會直接關系到國家安全,企業(yè)經營和人們的日常生活。 信息安全可分為系統(tǒng)安全,數(shù)據(jù)安全和內容安全三個層次,是一個綜合,交叉的學科領域,要利用數(shù)學,電子,信息,通信,計算機等諸多學科的長期知識積累和最新發(fā)展成果。隨著信息安全的快速發(fā)展,全球對信息安全人才的需求不斷增加,但我國起步較晚,目前信息安全人才極度匱乏,遠遠不能滿足金融,商業(yè),公共安全,國防軍事和政府等部

4、門的需求。要解決供需矛盾,必須加快信息安全人才的培養(yǎng),以滿足社會對信息安全人才的需求。而我作為一名21世紀的大學生,有機會學到了密碼學這門課,從這門課中,我學到了很多有用的知識,讓自己受益匪淺。經過半學期的學習,我了解了密碼學的大致內容,掌握了密碼學的基礎知識,密碼學主要有以下章節(jié):1密碼學概述2流密碼3分組密碼體制4公鑰密碼5密鑰分配與密鑰管理按照密鑰方式劃分,可分為對稱加密算法和非對稱加密算法。一、對稱加密算法對稱加密算法有時又叫做傳統(tǒng)密碼算法,加密密鑰可以從解密密鑰中推導出來,解密密鑰也可以從加密密鑰中推導出來。在大多數(shù)的對稱算法中 加密密鑰和解密密鑰是相同的,因此也成為秘密密鑰算法或者

5、單密鑰算法。它要求發(fā)送發(fā)和接收方在安全通信之前先商定一個密鑰。對稱算法的安全性依賴于密鑰所以密鑰的保密性對通信至關重要。對稱加密算法主要有分組加密和流加密兩類。分組加密是指將明文分成固定商都的組,用同一密鑰分別對每一組加密輸出固定長度的密文 典型代表:DES。二、非對稱加密算法非對稱加密算法有時又叫做公開密鑰算法。其中用到兩個密鑰。一個是公共的。一個事私有的。一個密鑰用于加密,另一個密鑰用于解密。兩個密鑰不能夠互相推導。常用的非對稱加密算法有RSA公鑰算法、Diffie-HelIman算法和ECC橢圓曲線密碼。以下具體介紹DES算法:我們詳細分析一下DES加密算法的處理過程。DES加密算法是分

6、組加密算法明文以64位為單位分成塊。64位數(shù)據(jù)在64位密鑰的控制下經過初始變換后 進行1 6輪加密迭代:64位數(shù)據(jù)被分成左右兩半部分每部分32位,密鑰與右半部分相結合然后再與左半部分相結合結果作為新的右半部分:結合前的右半部分作為新的左半部分。這一系列步驟組成一輪。這種輪換要重復16次。最后一輪之后,再進行初始置換的逆置換,就得到了64位的密文。DES的加密過程可分為加密處理加密變換和子密鑰生成幾個部分組成。1加密處理過程(1)初始變換。加密處理首先要對64位的明文按表1所示的初始換位表IP進行變換。表中的數(shù)值表示輸入位被置換后的新位置。例如輸入的第58位,在輸出的時候被置換到第1位;輸入的是

7、第7位,在輸出時被置換到第64位。(2)加密處理。上述換位處理的輸出,中間要經過1 6輪加密變換。初始換位的64位的輸出作為下一次的輸入,將64位分為左、右兩個32位,分別記為LO和RO 從L0、RO到L1 6、R16,共進行1 6輪加密變換。其中,經過n輪處理后的點左右32位分別為Ln和Rn則可做如下定義:Ln=Rn-1Rn=Ln一1其中kn是向第n輪輸入的48位的子密鑰,Ln-1和Rn-1分別是第n-1輪的輸出 f是Mangler函數(shù)。(3)最后換位。進行1 6輪的加密變換之后,將L1 6和R1 6合成64位的數(shù)據(jù)再按照表2所示的最后換位表進行IP一1的換位 得到64位的密文 這就是DES

8、算法加密的結果。2加密變換過程通過重復某些位將32位的右半部分按照擴展表3擴展換位表擴展為48位而56位的密鑰先移位然后通過選擇其中的某些位減少至48位48位的右半部分通過異或操作和48位的密鑰結合并分成6位的8個分組通過8個S一盒將這48位替代成新的32位數(shù)據(jù),再將其置換一次。這些s一盒輸入6位,輸出4位。3.子密鑰產生過程鑰通常表示為64位自然數(shù),首先通過壓縮換位,去掉每個字節(jié)的第八位,用作奇偶校驗,因此,密鑰去掉8,16,24,.減至56位,所以實際密鑰長度為56位 ,而每輪要生成48位的子密鑰。輸入的64位密鑰,首先通過減壓換位得到56位的密鑰,每層分成兩部分,上部分28位為C0,下部

9、分為D0。C0和D0依次進行循環(huán)左移操作生成C1和D1,將C1和D1合成56位,再通過壓縮換位PC-2輸出48位的子密鑰K1,再將將C1和D1進行循環(huán)左移和PC-2壓縮位,得到子密鑰K2.以此類推,得到16個子密鑰。4解密處理過程從密文到明文的解密過程可采用與加密完全相同的算法。不過解密要用加密的逆變換就是把上面的最后換位表和初始換位表完全倒過來變換。使用以下實例演示了如何使用c# 中的加密包進行DES算法加密。des_ demo CS代碼如下:using System ;using System.Security.Cryptography;using System.IO;using Syst

10、em.Text;public class EncryptsngDES pubIic static void Main(Stringargs)if(args Length ”args0);returnUTF8Encoding utf8Encoding= new UTF8Encoding():byteinputByteArray= utf8Encoding GetBytes(args0ToCharArray():DES des= DES Create():Bytekey= 0x01,0x23,0x45,0x67,0x89,0xab,0xcd Oxef;ByteIV= 0x12,0x34,0x56,

11、0x78,0x90,0xab,Oxcd,Oxef;Des.Key = key;Des.lV = 1V;SymmetricStreamEncryptor sse= des.CreateEncryptor();CryptoMemoryStream cms= new CryptoMemoryStream();Sse.SetSink(cms);sse.Write(inputByteArray);sse.CloseSt ream();byte1 encryptedData= cms.Data;Console WdteLine(”加密結果:”);for(int i= 0;i encryptedData,L

12、ength;i+)ConsoleWrite(“0:X2l”.encryptedDatai);Console WriteLine();SymmetricStreamDecryptor ssd = des.CreateDecryptor();cms= new CryptoMemoryStream();ssd.SetSink(cms);ssd.Write(encryptedData);ssd.CIoseStream();bytedecryptedData;cms.DatachardecryptedCharArray=utf8Encoding.GetChars(decryptedData);Conso

13、le.WriteUne(”解密后數(shù)據(jù):”);Console.Write(decryptedCharArray);Console.WriteLiRe(); 編譯,運行后:使用C#編寫DES加密程序的framework加密結果:3D 22 64 C6 57 D1 C4 C3 CF 77 CE 2F D0 E1 78 2A 4D ED 7A AB 83 F9 0E 14 E1 BA 38 7B 06 41 8D B5 E9 3F 00 0D C3 28 D1 F9 6D 17 4B 6E A7 41 68 40解密后的數(shù)據(jù):使用C#編寫DES加密程序的frameworkDES算法的安全性極高,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。通過窮舉搜索空間,可獲得總共256個可能的密鑰。如果每一秒能檢測一百萬個的話,需要2000年才能完成檢測。可見,這是很難實現(xiàn)的。隨著科學技術的發(fā)展,超級計算機可能會破解,但我們可以增加DES密鑰的長度,以此達到保密性。密碼學應用廣泛,滲透到社會的各個領域,了解密碼學的基礎知識,學習密碼學的基本技術,會對我們了解信息安全有很大的益處,就目前而言,我們的一些私人信息如身份證號,銀行卡密碼,手機號,還有平時愛玩的QQ賬號

溫馨提示

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

最新文檔

評論

0/150

提交評論