密碼學第三講 對稱密碼(XOR與一次性密碼本)

2021-10-02 15:17:29 字數 2534 閱讀 4551

計算機的操作物件並不是文字,而是由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萬人在使用,在資料洩露方面的暴露...