您好,登錄后才能下訂單哦!
這篇文章主要講解了“一次性密碼本加密的方式是什么”,文中的講解內(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ì)影響一次通信過程。
通常來說,如果我們想將一個(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):
將明文編碼,即轉(zhuǎn)換為二進(jìn)制。
生成和明文二進(jìn)制位數(shù)相同的密鑰。
將明文和密鑰的二進(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í)際的工作中很少用到呢?
密鑰太長(zhǎng)
一次性密碼本是用與原文等長(zhǎng)的密鑰做異或得到的,如果原文很大,那么相應(yīng)的密鑰也非常大。
無法重用密鑰
每個(gè)密鑰只用一次,即是缺點(diǎn)也是優(yōu)點(diǎn)。意味著我們每次都要不停的更換密鑰,增加了復(fù)雜性。
密鑰的配送
因?yàn)槊荑€和原文以及密文都是等長(zhǎng)的,目標(biāo)端如果想解密就必須拿到密鑰,如果能夠機(jī)密的傳輸密鑰給目標(biāo)端,那為什么不直接將原文機(jī)密的傳送給目標(biāo)端呢?
密鑰的保存
每次加密都需要換一個(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)注!
免責(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)容。