計算機的操作物件並不是文字,而是由0和1排列而成的位元序列。無論是文字,影象,還是程式,都是由位元序列來表示的。加密就是將表示明文的位元序列轉換為表示密文的位元序列。
xor全稱為exclusiveor,中文叫異或。
舉例:0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
符號為⊕
大家可以總結出一條規律:
兩個相同的數進行xor運算的結果一定為0.
0 ⊕ 0 = 0
1 ⊕ 1 = 0
則我們可以計算了:
00110011⊕01010101=
— 00110011
⊕ 01010101
————————
-----01100110
00110011⊕01010101=01100110
則解密:
01100110 ⊕ b
即01100110 ⊕ 01010101 =00110011—a
用vbscript語言編寫用xor加密:
k = inputbox(「請輸入金鑰」)
key = cint (k)
text1 = inputbox(「請輸入明文或密文」)
text2 = 「」
for i = 1 to len(text1)
letter = mid(text1, i, 1)
text2 = text2 & chr(asc(letter) xor key)
next
msgbox text2
執行效果如圖:
它的原理是「將明文與一串隨機的位元序列進行xor運算。」
列如,明文為10010010001,用隨機數產生金鑰,如01110011010,加密為111110001011。
解密方法:
即加密的反向運算。用明文和金鑰進行xor運算,就可以得到明文。
111110001011 ⊕ 01110011010 =10010010001
一次性密碼本是由維納(g.s.vernam)於2023年提出的,並獲得了專利,因此也被稱為維納密碼(vernam cipher)
一次性密碼本是一種非常簡單的密碼。如此簡單的密碼居然無法破譯???其實,這裡說的無法破譯,並不是指在單位時間內難以破譯,而是指即使可以一瞬間嘗試所有的金鑰,也無法破譯。
你肯定要問了,為何呢,其實,在上述的例子中,我們用乙個編碼進行加密,即使可以一瞬間嘗試所有的金鑰,也無法判斷哪個是正確的明文。
在破譯的過程中,可能會出現其他的疑似明文。列如:「334」,"¥@6(::。+¥$$"等明文,由於明文中所有可能的排列組合都會出現,因此我們無法判斷其中哪乙個才是正確的明文(也就是說哪乙個金鑰才能夠正確解密)。
因此,一次性密碼本是無法破譯的!!!!
經夏農(c.e.shannon)在2023年用數學證明:一次性密碼本是無條件安全的,理論上是無法破譯的。
1.金鑰配送問題
最大的問題在於密匙的配送!!!
當b收到了來自a的密文,想要解密時,就必須知道金鑰,因此金鑰也應該配送過去,且金鑰的長度和密文相等。但這產生了乙個矛盾-------如果能夠安全的傳送金鑰,難道不能安全的傳送明文嗎???
2.金鑰的儲存
如果有有能安全保護金鑰的方法,不就能安全的保護明文了嗎???也就是說,一開始我們就不需要密碼。
我們只是將「保護明文」這一命題替換成了「保護和明文一樣長的金鑰」而已,問題沒有得到實質性的解決!!!!!
3.金鑰的重用
在一次性密碼本中,絕不能重用過去用過的金鑰,否則金鑰一旦洩露,過去所有的機密通訊將全部被解密!!!!!
4.金鑰的同步
當密文很長時,一次性密碼本的金鑰長度也會隨之變長!!!(明文為1g的大小,則金鑰的大小也為1g.)如果傳送者和接受者的金鑰的位元序列有錯位的話,所有資訊都將無法解密!!!!!
5.金鑰的生成
在一次性密碼本中,需要生成大量的隨機數。這裡的隨機數不是通過計算機生成的偽隨機數,而必須是無重現性的真正的隨機數!!!!!
出於上述原因,能夠使用一次性密碼本的,只有那些機密性重過一切,且可以花費大量財力和物力來生成金鑰並配送金鑰的場合。
列如,據說大國之間就使用了一次性密碼本,這種情況下,估計會有專門的**來承擔配送金鑰的任務,也就是說,**需要配送金鑰,並把它直接交到對方手中。
所以,一次性密碼本是一種不可靠的密碼!!!!!!
下節課我們來講des加密!!!
密碼學 對稱與非對稱加密 雜湊演算法
目錄 密碼學密碼學發展 對稱加密體制 非對稱加密體制 混合加密 數字信封 雜湊演算法 加密和解密秘鑰相同,或者由乙個能很容易的推出另乙個。對稱加密演算法如 des 3des aes加密等 優點 缺點 加密和解密秘鑰不相同。其中,對外公開的秘鑰,稱為公鑰。不對外公開的秘鑰,稱為私鑰。對稱加密演算法如 ...
密碼學基礎系列之(2 1傳統對稱金鑰密碼之一)
傳統對稱金鑰密碼之一 傳統對稱金鑰密碼可分為兩類 代換密碼和換位密碼。相對於現代密碼,傳統密碼更簡單,但其原理是相通的。分析傳統密碼更易理解密碼的基本原理。代換密碼 substitution cipher 就是用乙個符號代替另乙個符號。單碼代換中,明文中的符號與密文中的符號一一對應。additive...
探秘密碼學 深入了解對稱加密與金鑰協商技術
作者丨京東智聯雲 平台安全組 張驚申 密碼,已經成為當代網際網路人每天使用頻率最高的東西,它在默默地守護著我們的資訊保安。而人們對密碼卻始終未給予足夠重視,以至於經常會出現 123456 這種弱密碼。你可能會覺得好笑,但這個密碼常年穩居最常見的密碼排行榜榜首,有250萬人在使用,在資料洩露方面的暴露...