溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

一次性密碼本加密的方式是什么

發(fā)布時(shí)間:2022-01-15 10:47:07 來源:億速云 閱讀:190 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“一次性密碼本加密的方式是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“一次性密碼本加密的方式是什么”吧!

一次性密碼本

一次性密碼本即Vernam Cipher,是由Gilbert Vernam在1917年, 開發(fā)的一種加密算法。

之所以叫做一次性密碼本,是因?yàn)榧用芩玫拿荑€是一次性的,即密鑰只會(huì)使用一次,不會(huì)出現(xiàn)因?yàn)槊荑€泄露導(dǎo)致之前的加密內(nèi)容被解密。

即使密鑰被泄露了,也只會(huì)影響一次通信過程。

加密之前的準(zhǔn)備

通常來說,如果我們想將一個(gè)消息加密傳輸需要做什么工作呢?

在現(xiàn)代計(jì)算機(jī)社會(huì),大家都知道計(jì)算機(jī)只能表示0,1這兩個(gè)數(shù)字,那么如果傳輸文字,則需要將文字轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制編碼。

現(xiàn)有的編碼規(guī)則有很多,比如:ASCII,Unicode等,在后續(xù)的文章中我們會(huì)做介紹。

同樣的,對(duì)于編碼過后的文字進(jìn)行加密,就是將編碼過后文字的二進(jìn)制通過一定的bit運(yùn)算,而得到加密后的結(jié)果。

一次性密碼本的加密方式

回到一次性密碼本,他的加密方式非常簡(jiǎn)單,就是將明文和一串隨機(jī)的二進(jìn)制進(jìn)行XOR運(yùn)算。這個(gè)隨機(jī)的二進(jìn)制數(shù)可以通過不斷的拋擲硬幣來產(chǎn)生(正面表示1,反面表示0):

  1. 將明文編碼,即轉(zhuǎn)換為二進(jìn)制。

  2. 生成和明文二進(jìn)制位數(shù)相同的密鑰。

  3. 將明文和密鑰的二進(jìn)制進(jìn)行XOR操作,生成最后結(jié)果。

一次性密碼本的解密

加密之后我們?cè)趺慈プ鼋饷苣兀?我們先看一下XOR的特性。

XOR是指異或操作,比特位上的數(shù)字一樣,異或的結(jié)果就是0,比特為上面的數(shù)字不一樣,異或的結(jié)果就是1。

舉個(gè)例子:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

異或的一個(gè)非常重要的特性就是可逆,即:
A XOR B= C ,則 C XOR B = A 。

那么通過原文和密鑰異或得到的結(jié)果,可以通過將結(jié)果和密鑰再次異或操作得到原文。

這就是一次性密碼本的解密過程:將密鑰和結(jié)果進(jìn)行異或。

無法破譯

雖然一次性密碼本非常簡(jiǎn)單,但是一次性密碼本是無法破譯的,這個(gè)破譯并不是指現(xiàn)有的計(jì)算能力不夠,而是指即使擁有無窮大的計(jì)算能力也無法破譯。

為什么呢?

假如你拿到了加密的結(jié)果,然后遍歷等長(zhǎng)的密鑰進(jìn)行暴力破解,最后你會(huì)生成原文,假設(shè)這個(gè)原文長(zhǎng)度是128bit,那么就可以生成2的128次方個(gè)原文,即128bit長(zhǎng)度的原文的所有組合排列。

即使這些組合里面出現(xiàn)了一些有意義的文字,但是你不能確定這些文字是不是就是原文,因?yàn)樵谒械慕M合排列中可能生成多個(gè)有意義的文字。

所以這種解密是無意義的,就像是我知道了原文的長(zhǎng)度,然后自己構(gòu)造這個(gè)長(zhǎng)度的原文。

缺陷

既然一次性密碼本這么好,那么為什么我們?cè)趯?shí)際的工作中很少用到呢?

  1. 密鑰太長(zhǎng)

一次性密碼本是用與原文等長(zhǎng)的密鑰做異或得到的,如果原文很大,那么相應(yīng)的密鑰也非常大。

  1. 無法重用密鑰

每個(gè)密鑰只用一次,即是缺點(diǎn)也是優(yōu)點(diǎn)。意味著我們每次都要不停的更換密鑰,增加了復(fù)雜性。

  1. 密鑰的配送

因?yàn)槊荑€和原文以及密文都是等長(zhǎng)的,目標(biāo)端如果想解密就必須拿到密鑰,如果能夠機(jī)密的傳輸密鑰給目標(biāo)端,那為什么不直接將原文機(jī)密的傳送給目標(biāo)端呢?

  1. 密鑰的保存

每次加密都需要換一個(gè)密鑰,這意味著每一個(gè)明文都需要保存一個(gè)同樣長(zhǎng)度的密鑰,如果明文已經(jīng)可以很好的保存了,那何必多做一步加密呢?

感謝各位的閱讀,以上就是“一次性密碼本加密的方式是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)一次性密碼本加密的方式是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI