異或密碼

異或密碼

異或是對兩個運算元的一種邏輯分析類型,符號為XOR或EOR。與一般的邏輯或OR不同,當兩兩數值相同為否,而數值不同時為真。異或密碼(simple XOR cipher)是密碼學中一種簡單的加密算法,是指對信息進行異或操作來達到加密和解密目的。按這種邏輯,文本串列的每個字元可以通過與給定的密鑰進行按位異或運算來加密。如果要解密,只需要將加密後的結果與密鑰再次進行按位異或運算即可。

基本介紹

  • 中文名:異或密碼
  • 外文名:simple XOR cipher
  • 學科:密碼學
  • 操作:異或
  • 有關術語:加密算法
  • 缺點:可以使用頻率分析破解
簡介,頻率分析,代碼示例,

簡介

異或運算(XOR)是一種電腦程式設計語言中很重要基於二進制的位運算,對提高程式可讀性和運行效率具有重要實際價值。異或運算具有交換律、結合律、自反律、配對等常見性質,以廣泛套用於奇偶性判別、糾錯檢驗、網路編碼、信息加密、圖像處理等套用中。
異或密碼是一種通過異或運算進行加密的算法,它按照如下原則進行運算:
其中
為邏輯異或(XOR)運算的符號。例如,字串“Wiki”(8位ASCII:01010111 01101001 01101011 01101001) 可以按如下的方式用密鑰11110011進行加密:
此種加密方法類似對稱加密,故解密的方式如下:
異或運算符常作為更為複雜的加密算法的組成部分。對於其本身來說,如果使用不斷重複的密鑰,利用頻率分析就可以破解這種簡單的異或密碼。如果訊息的內容被猜出或知道,密鑰就會泄露。異或密碼值得使用的原因主要是其易於實現,而且計算成本小。簡單重複異或加密有時用於不需要特別安全的情況下來隱藏信息。
如果密鑰是隨機的(不重複),而且與訊息長度相同,異或密碼就會更為安全。當密鑰流由偽隨機數發生器生成時,結果就是流密碼。若密鑰是真正隨機的,結果就是一次性密碼本,這種密碼在理論上是不可破解的。這些密碼的任何部分中,密鑰運算符在已知明文攻擊下都是脆弱的,這是因為明文
密文 = 密鑰。

頻率分析

頻率分析在數學、物理學和信號處理中是一種分解函式、波形、或者信號的頻率組成,以獲取頻譜的方法。英語文本中典型的字母分布情況。較弱的密碼會顯示出這個分布,從而被密碼專家所破譯。字詞分布情況,字型越大,代表該字詞出現的機率就越大。在密碼學中,頻率分析是指研究字母或者字母組合在文本中出現的頻率。套用頻率分析可以破解古典密碼。
頻率分析基於如下原理:在任何一種書面語言中,不同的字母或字母組合出現的頻率各不相同。而且,對於以這種語言書寫的任意一段文本,都具有大致相同的特徵字母分布。比如,在英語中,字母E出現的頻率很高,而X則出現得較少。類似地,ST、NG、TH,以及QU等雙字母組合出現的頻率非常高,NZ、QJ組合則極少。英語中出現頻率最高的12個字母可以簡記為“ETAOIN SHRDLU”。

代碼示例

加密: while (done < len) {     tmp_ch = *buffer;     for(int i = 0; i < key_len; i++)    tmp_ch ^= key[i];     *crypted = tmp_ch;     crypted++; buffer++; done++; }解密: while (done <= len) {     tmp_ch = *buffer;     for(int i = key_len-1; i >= 0; i--)    tmp_ch ^= key[i];     *decrypted = tmp_ch;     decrypted++; buffer++; done++; }

相關詞條

熱門詞條

聯絡我們