一次性密鑰加密:史上最長(zhǎng)時(shí)間未被破解的加密算法

加密方式不論在剛出現(xiàn)時(shí)宣稱有多么牢不可破,但隨著時(shí)間的遷移,它總會(huì)暴露出弱點(diǎn),從一個(gè)強(qiáng)大的加密方式變成一個(gè)較弱的加密方式。而如今人們?cè)谑褂媚壳傲餍械募用芊绞綍r(shí),也會(huì)有這樣的憂慮,擔(dān)心目前所使用的看似無(wú)懈可擊的加密手段在可控的時(shí)間內(nèi)就被暴力破解。

一次性密鑰加密算法存在了近百年未被破解

就算目前所使用的那些還沒(méi)有被破解的加密方式,在不斷升級(jí)的CPU時(shí)鐘頻率前提下,暴力破解所需的時(shí)間也越來(lái)越短了。在加密算法的發(fā)展過(guò)程中,有很多算法都已經(jīng)被破解或被證明不夠安全,唯有一種加密算法一直存在了93年,這種算法叫做一次性密鑰(one-time pad)。在1917年, Gilbert Vernam開(kāi)發(fā)了一種叫做Vernam Cipher 的加密方法,使用電傳技術(shù),通過(guò)打有密鑰的紙帶進(jìn)行數(shù)據(jù)加密和解密,結(jié)果便出現(xiàn)了當(dāng)時(shí)最強(qiáng)的對(duì)稱加密技術(shù)。

依次性密鑰加密方式有時(shí)不太方便

這是真正隨機(jī)產(chǎn)生的密鑰,不會(huì)有任何重復(fù)的可能,因此Vernam cipher可以做到更強(qiáng)大的效果。于是,基于紙帶密鑰的方法,在一沓紙上印有隨即字母或數(shù)字,作為密鑰的加密算法出現(xiàn)了。一次性密鑰加密方式有時(shí)候非常不方便,因此現(xiàn)在很少有人在用這種加密方式。而正是由于這種不便性,我們實(shí)際需要的是一些理論上有些弱的加密方式,比如AES/Rijndael 以及Twofish 。

一次性密鑰在加密時(shí)需要雙方擁有完全一樣的密鑰數(shù)據(jù)

由于一次性密鑰是一種對(duì)稱加密方式,進(jìn)行加密通信的雙方需要擁有完全一樣的密鑰數(shù)據(jù)。而在某些環(huán)境下,這種條件是無(wú)法實(shí)現(xiàn)的,因?yàn)橐胱岆p方都擁有這個(gè)密鑰,就意味著必須有一種足夠安全的方式讓雙方共享或傳遞密鑰數(shù)據(jù),而如果有了這樣的安全環(huán)境,也就不需要再使用一次性密鑰了。一次性密鑰必須和所加密內(nèi)如一樣長(zhǎng),這意味著,如果你要對(duì)一個(gè)3GB的文件進(jìn)行加密,就需要有一個(gè)3GB的一次性密鑰。

當(dāng)使用過(guò)一次性密鑰后,不能再使用這個(gè)密鑰對(duì)其它要發(fā)送的數(shù)據(jù)進(jìn)行加密。如果通信的雙方分別位于地球的兩端,那么這種通信方式會(huì)讓人抓狂。

如果要找一個(gè)絕對(duì)安全有效不可能被破解的加密方式,那么只有使用一次性密鑰系統(tǒng)了,前提是正確的使用它,即密鑰只使用一次。

小知識(shí)之對(duì)稱加密:

采用單鑰密碼系統(tǒng)的加密方法,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密,這種加密方法稱為對(duì)稱加密,也稱為單密鑰加密。