簡述異或密碼

異或(xor)是一種計(jì)算機(jī)程序設(shè)計(jì)語言中基于二進(jìn)制的位運(yùn)算,如果兩個(gè)值不相同,那么異或結(jié)果為1,反之異或結(jié)果則為0。今天我們就來了解一種以異或運(yùn)算為基礎(chǔ)的加密算法——異或密碼。

異或密碼簡介

異或密碼(simple XOR cipher)是一種比較簡單的加密算法,是指對信息進(jìn)行異或操作來達(dá)到加密和解密目的。文本串行的每個(gè)字符可以通過與給定的密鑰進(jìn)行按位異或運(yùn)算來加密。如果要解密,只需要將加密后的結(jié)果與密鑰再次進(jìn)行按位異或運(yùn)算即可。

異或密碼

異或密碼的加密過程

異或密碼的原理是根據(jù)異或運(yùn)算進(jìn)行的,相同為0,不同為1,如A xor B=1、A xor A=0。

假設(shè)明文為“01010111 01101001 01101011 01101001”,密鑰為“11110011”,那么對其進(jìn)行異或加密的過程為:

01010111011010010110101101101001

xor 11110011111100111111001111110011

=01010111011010010110101101101001

異或密碼

異或密碼的解密過程

異或密碼的加密過程類似對稱加密,所以它可以使可逆的,其解密過程為:

01010111011010010110101101101001

xor 11110011111100111111001111110011

=01010111011010010110101101101001

異或密碼的優(yōu)點(diǎn)

異或密碼值得使用的原因主要是其易于實(shí)現(xiàn),而且計(jì)算成本小。簡單重復(fù)異或加密有時(shí)用于不需要特別安全的情況下來隱藏信息。另外,異或密碼在速度方面也有很大的優(yōu)勢。

異或密碼

異或密碼的安全性

如果使用不斷重復(fù)的密鑰,利用頻率分析就可以破解這種簡單的異或密碼。如果密鑰是隨機(jī)的(不重復(fù)),而且與消息長度相同,異或密碼就會更為安全。當(dāng)密鑰流由偽隨機(jī)數(shù)發(fā)生器生成時(shí),結(jié)果就是流密碼。若密鑰是真正隨機(jī)的,結(jié)果就是一次性密碼本,這種密碼在理論上是不可破解的。但這些密碼的任何部分中,密鑰運(yùn)算符在已知明文攻擊下都是脆弱的,這是因?yàn)槊魑膞or密文就等于密鑰。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。