分類
加密技術通常分為兩大類:“對稱式”和“非對稱式”。
對稱式加密技術
對稱式加密就是加密和解密使用同一個
密鑰,通常稱之為“Session Key ”這種
加密技術在當今被廣泛採用,如美國政府所採用的DES加密標準就是一種典型的“對稱式”
加密法,它的Session Key長度為56bits。
非對稱式加密技術
非對稱式加密就是加密和解密所使用的不是同一個
密鑰,通常有兩個密鑰,稱為“
公鑰”和“
私鑰”,它們兩個必需配對使用,否則不能打開加密檔案。這裡的“
公鑰”是指可以對外公布的,“
私鑰”則不能,只能由持有人一個人知道。它的優越性就在這裡,因為對稱式的加密方法如果是在網路上傳輸加密檔案就很難不把
密鑰告訴對方,不管用什麼方法都有可能被別
竊聽到。而非對稱式的加密方法有兩個
密鑰,且其中的“
公鑰”是可以公開的,也就不怕別人知道,收件人解密時只要用自己的
私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。
算法
一個加密系統S可以用數學符號描述如下:
S={P, C, K, E, D}
其中
P——明文空間,表示全體可能出現的明文集合,
C——密文空間,表示全體可能出現的密文集合,
當給定密鑰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公開了其加密
算法並曾被美國列為“標準”,但很快被廢棄。
加密技術又回歸到“
算法保密”的傳統上。
常見加密算法
3DES(Triple DES):是基於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 == 1 mod (p-1)(q-1).....
這個 m 一定存在, 因為 r 與 (p-1)(q-1) 互質, 用輾轉相除法就可以得到了.....
再來, 計算 n = pq.......
m, n 這兩個數便是 public key
AES(Advanced Encryption Standard):
高級加密標準,
對稱算法,是下一代的加密算法標準,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael 算法;
對
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):國家密碼局的隱蔽不公開的商用
算法,在國內民用和商用的,除這些都不容許使用外,其他的都可以使用;
其它算法