加密算法

加密算法

對數據加密
據記載,公元前400年,古希臘人發明了置換密碼。1881年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用“恩尼格瑪”密碼機,密碼學在戰争中起着非常重要的作用。加密的方法又叫加密算法,自身是固定不變的,一般情況下都是公開可見的。整個過程是我們基于一定的加密算法,用密鑰将明文加密為密文,之後由接收方再使用加密算法和密鑰從密文中解密出明文。
    中文名:加密算法 外文名:Encryption algorithm 别名:密文 作 用:加密數據 解 鎖:密鑰

相關簡介

随着信息化和數字化社會的發展,人們對信息安全和保密的重要性認識不斷提高,于是在1997年,美國國家标準局公布實施了“美國數據加密标準(DES)”,民間力量開始全面介入密碼學的研究和應用中,采用的加密算法有DES、RSA、SHA等。随着對加密強度需求的不斷提高,近期又出現了AES、ECC等。近年來,随着計算機技術以及通信技術的快速發展,數字信息被廣泛地應用到社會的各個領域當中。由于數字圖像具有直觀、形象及生動等特點,從而成為了數字信息中應用最為廣泛,也最為重要的一種信息表達形式。

使用密碼學可以達到以下目的:

保密性:防止用戶的标識或數據被讀取。

數據完整性:防止數據被更改。

身份驗證:确保數據發自特定的一方。

分類編輯

加密技術通常分為兩大類:“對稱式”和“非對稱式”。

對稱式加密技術

對稱式加密就是加密和解密使用同一個密鑰,通常稱之為“Session Key”這種加密技術在當今被廣泛采用,如美國政府所采用的DES加密标準就是一種典型的“對稱式”加密法,它的Session Key長度為56bits。

非對稱式加密技術

非對稱式加密就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰”,它們兩個必需配對使用,否則不能打開加密文件。這裡的“公鑰”是指可以對外公布的,“私鑰”則不能,隻能由持有人一個人知道。它的優越性就在這裡,因為對稱式的加密方法如果是在網絡上傳輸加密文件就很難不把密鑰告訴對方,不管用什麼方法都有可能被别人竊聽到。而非對稱式的加密方法有兩個密鑰,且其中的“公鑰”是可以公開的,也就不怕别人知道,收件人解密時隻要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。

算法

一個加密系統S可以用數學符号描述如下:

S={P,C,K,E,D}

其中

P——明文空間,表示全體可能出現的明文集合,

C——密文空間,表示全體可能出現的密文集合,

K——密鑰空間,密鑰是加密算法中的可變參數,

E——加密算法,由一些公式、法則或程序構成,

D——解密算法,它是E的逆。

當給定密鑰kÎK時,各符号之間有如下關系:

C=Ek(P),對明文P加密後得到密文C

P=Dk(C)=Dk(Ek(P)),對密文C解密後得明文P

如用E-1表示E的逆,D-1表示D的逆,則有:

Ek=Dk-1且Dk=Ek-1

因此,加密設計主要是确定E,D,K。

RSA是Rivest、Shamir和Adleman提出來的基于數論非對稱性(公開鑰)加密算法。大整數的素因子難分解是RSA算法的基礎。

RSA在國外早已進入實用階段,已研制出多種高速的RSA的專用芯片。盡管RSA的許多特性并不十分理想,但迫于信息安全的實際需要,許多重要的信息系統還是采用RSA作為基礎加密機制。從RSA提出不久,我國有關部門就一直對它進行研究。從應用的角度看,軟件實現的RSA已經開始用于計算機網絡加密,用來完成密鑰分配、數字簽名等功能。

除了RSA之外,還有DES(數據加密标準)。盡管DES公開了其加密算法并曾被美國列為“标準”,但很快被廢棄。加密技術又回歸到“算法保密”的傳統上。

常見加密算法

DES(Data Encryption Standard):對稱算法,數據加密标準,速度較快,适用于加密大量數據的場合;

3DES(Triple DES):是基于DES的對稱算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高;

RC2和RC4:對稱算法,用變長密鑰對大量數據進行加密,比DES快;

IDEA(International Data Encryption Algorithm)國際數據加密算法,使用128位密鑰提供非常強的安全性;

RSA:由RSA公司發明,是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的,非對稱算法;算法如下:

首先,找出三個數,p,q,r,

其中p,q是兩個不相同的質數,r是與(p-1)(q-1)互為質數的數。

p,q,r這三個數便是private key。

接着,找出m,使得rm==1mod(p-1)(q-1).....

這個m一定存在,因為r與(p-1)(q-1)互質,用輾轉相除法就可以得到了。

再來,計算n=pq.......

m,n這兩個數便是public key

DSA(Digital Signature Algorithm):數字簽名算法,是一種标準的DSS(數字簽名标準),嚴格來說不算加密算法;

AES(Advanced Encryption Standard):高級加密标準,對稱算法,是下一代的加密算法标準,速度快,安全級别高,在21世紀AES标準的一個實現是Rijndael算法。

BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;

MD5:嚴格來說不算加密算法,隻能說是摘要算法;

對MD5算法簡要的叙述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,算法的輸出由四個32位分組組成,将這四個32位分組級聯後将生成一個128位散列值。

在MD5算法中,首先需要對信息進行填充,使其字節長度對512求餘的結果等于448。因此,信息的字節長度(Bits Length)将被擴展至N*512+448,即N*64+56個字節(Bytes),N為一個正整數。填充的方法如下,在信息的後面填充一個1和無數個0,直到滿足上面的條件時才停止用0對信息的填充。然後,在這個結果後面附加一個以64位二進制表示的填充前信息長度。經過這兩步的處理,如今信息字節長度=N*512+448+64=(N+1)*512,即長度恰好是512的整數倍。這樣做的原因是為滿足後面處理中對信息長度的要求。(可參見MD5算法詞條)

PKCS:The Public-Key Cryptography Standards (PKCS)是由美國RSA數據安全公司及其合作夥伴制定的一組公鑰密碼學标準,其中包括證書申請、證書更新、證書作廢表發布、擴展證書内容以及數字簽名、數字信封的格式等方面的一系列相關協議。

SSF33,SSF28,SCB2(SM1):國家密碼局的隐蔽不公開的商用算法,在國内民用和商用的,除這些都不容許使用外,其他的都可以使用;

其它算法

如ElGamal、Diffie-Hellman、新型橢圓曲線算法ECC等。

加密算法的種類

在如今的信息安全領域,有各種各樣的加密算法凝聚了計算機科學家門的智慧。從宏觀上來看,這些加密算法可以歸結為三大類:哈希算法、對稱加密算法、非對稱加密算法。

相關詞條

相關搜索

其它詞條