定義
密碼是僅與符號或位的序列有關的編碼。在加密碼時,以具有一定含義的字或組作為編碼單位,以一個密鑰(Key),又稱鍵作為參數,作一個函式變換,得到加密檔案。
在大多數加密機制中,密鑰(鍵)是不公開的,因為持有這種密鑰就可以訪問相應的數據或文本。在公用鍵加密系統中,加密鍵是公開的,但解密鍵不公開。所謂解密,是指根據密約規則,把密碼檔案變成常規檔案的過程。
控制加密過程和解密過程的參數分別稱為加密密鑰和解密密鑰。加密過程中使用的變換叫加密算法(加密函式),解密過程中使用的變換稱為解密算法(解密函式),加密函式和解密函式統稱為密碼函式。 密碼函式也稱密碼算法,是為保密和(或)鑑別目的,將一組符號對應到只有授權者才可解讀的符號集合上的對應函式。
分類
加密函式
加密過程中使用的變換叫加密算法(加密函式),
加密函式是DES的核心部分,它的作用在於第次加密疊代中,用子密鑰對加密,其框架圖如右圖所示。
在第次加密疊代中,選擇運算對32位的進行選擇和重新排列,通過將1,4,5,8,9,12,1 3,1 6,l 7,20,21,24,25,28,29和32位重複,而將32位擴展到48位。此48位數據和48位的子密鑰模二相加,將其和分成8個6bit組,分別送到8個不同的盒(=1,2,…,8)。每個盒子有6位輸入,產生4位輸出,選擇的結果為32位數據,再經過一個置換將其各位打亂重排,其輸出便是的輸出。
盒子是DES的核心部分,它的實質是進行非線性壓縮。在DES中其餘部分都是線性變換,只有盒是非線性變換。
的選擇置換規則是,輸入6位二進制數的第一和第六兩位所組成的二逆制數值代表選中矩陣中的行號,其餘4位所組成的二進制數值代表選中的矩陣的列號。而處在被選中的行和列交未處的數字的二進制碼,便為該盒子的輸出。
解密函式
解密過程中使用的變換稱為解密算法(解密函式),在對稱密碼體制中,解密函式就是加密函式的逆過程,當DES進行解密時,其過程如下:
把64位密文當作明文輸入,而且第一次疊代用子密鑰進行,第二次疊代用子密鑰進行,……,第16次疊代用進行,最後的輸出便是明文。
一般特徵
最有用的密碼就是不擴充正文。以位為一塊的塊密碼把個不同普通文值映射成個不同密碼文值。實際上這是這些個值的置換,每個置換隨鍵值而變化。可能有的置換數為。這一般要比鍵空間為大。所以許多可能有的置換並不會出現。在各種實際套用中,置換在一種很強加密方法中應作隨機選擇使用。否則如果它有明顯規律性,則就有可能被對手識破。
就一給定鍵k值而言,若x的範圍涉及所有可能值,則範圍也涉及所有值。另一方面,若保持常數而範圍涉及其所有鍵空間,則生成的值可以看成是隨機性選擇。一些值可能不出現,一些值可能出現不止一次。
無數據擴充的情況下,等式含義是,另一等式成立。換言之,加密和解密可以互換。若有數據擴充的情況下,則使得正文容易壓縮,上述的第二等式就可能不成立。應當注意,在加密和解密做交換時,雖然他們擁有全部加密解密形式上的特性,但還是會失去一些有用的特性。
如右圖A所示的函式類型,稱為雙射函式,該函式把一值集變換成等量的另一值集。每個值正好變換成相應的另一值,兩者對應於函式及其反函式,這就是一對一映射。
另一類密碼就是自乘(積)函式,即函式具有的特性,在一種密碼函式場合下,其自乘為。這表明,加密和解密相間。用一個設備生成密碼時,“自反“密碼函式就有其優點。因為這種設備用於傳送或接收端就無需修改。自乘函式作密碼用的例子很多。兩自乘的積未必是自乘函式,如右圖B所示。設一個積的兩個分量是已知的,若加密為,並且和為自乘函式,則該積的反函式很容易求得。該解密函式表達式為。一系列自乘變換可以產生安全密碼,並且很容易求反。
可以有兩種形式用於掩蔽信息。一種是把信息隱藏起來,使其本身的確切存在含糊不清。這種技術稱為隱蔽學。還有一種是信息明顯存在,但其變換後難於理解。這種技術稱為密碼學。。密碼技術的基本形式也有兩種。一種是替換加密,即用其他字母取代一字母。另一種是倒換加密,即把現有字母的次序顛倒。