本文首發(fā)于 2017-10-30 16:06 原地址:http://www.blockchainbrother.com/article/83

此次和大家談一談算法的安全性。根據(jù)被破譯的難易程度,不同的密碼算法具有不同的安全等級。 區(qū)塊鏈技術(shù)當(dāng)中一個很重要的組成部分就是密碼學(xué),作為從事區(qū)塊鏈研究的工程技術(shù)人員,應(yīng)該對密碼學(xué)有一定的了解?,F(xiàn)我想分享一些密碼學(xué)的基本概念以供交流學(xué)習(xí),大家共同學(xué)習(xí),更加充實對區(qū)塊鏈技術(shù)的理解。
算法的安全性
根據(jù)被破譯的難易程度,不同的密碼算法具有不同的安全等級。如果破譯算法的代價大于加密數(shù)據(jù)的價值,那么一般不會有人想去破譯它,即你可能是“安全的”。如果破譯算法所需的時間比加密數(shù)據(jù)保密的時間更長,那么你可能也是“安全的”。如果用單密鑰加密的數(shù)據(jù)量比破譯算法需要的數(shù)據(jù)量少得多,那么你也可能是“安全的”。
在這里說“可能”,是因為在密碼分析中總有新的突破。另一方面,隨著時間的推移,大多數(shù)數(shù)據(jù)的價值會越來越小。
Lars Knudsen曾把破譯算法分為不同的類別,安全性的遞減順序為:
(1)全部破譯(total break)。密碼分析者找出密鑰K,這樣就能得到

(2)全盤推導(dǎo)(global deduction)。密碼分析者找到一個替代算法A,在不知曉密鑰K的情況下等價于得到

(3)實例(或局部)推導(dǎo)(instance (or local) deduction)。密碼分析者從截獲的密文中找出明文。
(4)信息推導(dǎo)(information deduction)。密碼分析者獲得一些有關(guān)密鑰或明文的信息。這些信息可能是密鑰的幾位、有關(guān)明文格式的信息等。
若不論密碼分析者獲得多少密文,都沒有足夠的信息恢復(fù)出明文,那么這個算法就是無條件保密的(unconditionally secure)。事實上,只有一次一密亂碼本,才是不可破的(給出無限多的資源仍然不可破)。所有其他的密碼系統(tǒng)在唯密文攻擊中都是可破的,只要簡單的一個接一個的去嘗試每種可能的密鑰,并檢查所得明文是否有意義,這種方法稱為蠻力攻擊(brute-force attack)。
在密碼學(xué)中,更關(guān)心在計算上不可破譯的密碼系統(tǒng)。如果算法用(現(xiàn)在或者將來)可得到的資源都不能破譯,這個算法則被認為是計算安全的(computationally secure)。準確的說,“可用資源”就是公開數(shù)據(jù)的分析整理。
可以采用不同的方式衡量攻擊方法的復(fù)雜性:
1)數(shù)據(jù)復(fù)雜性(data complexity)。用于攻擊輸入所需要的數(shù)據(jù)量。
2)處理復(fù)雜性(processing complexity)。完成攻擊所需要的時間,也經(jīng)常稱作工作因素(work factor)。
3)存儲需求(storage requirement)。進行攻擊所需要的存儲量。
作為一個法則,攻擊的復(fù)雜性取這三個因數(shù)的最小值。有些攻擊包括這三種復(fù)雜性的折中:存儲需求越大,攻擊可能越快。
復(fù)雜性用數(shù)量級來表示。如果算法的處理復(fù)雜性是2的128次方,那么破譯這個算法也需要2的128次方次運算(這些運算可能非常復(fù)雜和耗時)。假設(shè)我們擁有足夠的計算速度去完成每秒100萬次的運算,并且用100萬個并行處理器完成這個任務(wù),那么仍然需要花費10的19次方年以上才能找到密鑰。(而這是宇宙年齡的10億倍)。
當(dāng)攻擊的復(fù)雜性是常數(shù)時(除非一些密碼分析者發(fā)現(xiàn)更好的密碼分析攻擊),就只取決于計算能力了。在過去的半個世紀中,計算能力已經(jīng)得到了顯著的提高,并且現(xiàn)在這種趨勢還在發(fā)展。許多的密碼分析攻擊用并行處理的機制進行計算非常理想,一個任務(wù)可以分成億萬個子任務(wù),并且處理之間不需要相互作用。一種算法在現(xiàn)有技術(shù)條件下不可破譯就草率的宣稱是安全的,是很冒險的。從中我們可以得出,一個好的密碼系統(tǒng)應(yīng)設(shè)計成能抵御未來多年后的計算能力的發(fā)展。
注:上面提到的一次一密亂碼本(one-time pad),是由Major Joseph Mauborgne 和AT&T公司的Gilbert Vernam在1917年發(fā)明的。(事實上,一次一密亂碼本是門限方案的特殊情況)感興趣的朋友可以查閱相關(guān)資料深入了解,在此我就不展開描述了。
此次和大家談一談算法的安全性。根據(jù)被破譯的難易程度,不同的密碼算法具有不同的安全等級。 區(qū)塊鏈技術(shù)當(dāng)中一個很重要的組成部分就是密碼學(xué),作為從事區(qū)塊鏈研究的工程技術(shù)人員,應(yīng)該對密碼學(xué)有一定的了解。現(xiàn)我想分享一些密碼學(xué)的基本概念以供交流學(xué)習(xí),大家共同學(xué)習(xí),更加充實對區(qū)塊鏈技術(shù)的理解。
算法的安全性
根據(jù)被破譯的難易程度,不同的密碼算法具有不同的安全等級。如果破譯算法的代價大于加密數(shù)據(jù)的價值,那么一般不會有人想去破譯它,即你可能是“安全的”。如果破譯算法所需的時間比加密數(shù)據(jù)保密的時間更長,那么你可能也是“安全的”。如果用單密鑰加密的數(shù)據(jù)量比破譯算法需要的數(shù)據(jù)量少得多,那么你也可能是“安全的”。
在這里說“可能”,是因為在密碼分析中總有新的突破。另一方面,隨著時間的推移,大多數(shù)數(shù)據(jù)的價值會越來越小。
Lars Knudsen曾把破譯算法分為不同的類別,安全性的遞減順序為:
(1)全部破譯(total break)。密碼分析者找出密鑰K,這樣就能得到

(2)全盤推導(dǎo)(global deduction)。密碼分析者找到一個替代算法A,在不知曉密鑰K的情況下等價于得到
(3)實例(或局部)推導(dǎo)(instance (or local) deduction)。密碼分析者從截獲的密文中找出明文。
(4)信息推導(dǎo)(information deduction)。密碼分析者獲得一些有關(guān)密鑰或明文的信息。這些信息可能是密鑰的幾位、有關(guān)明文格式的信息等。
若不論密碼分析者獲得多少密文,都沒有足夠的信息恢復(fù)出明文,那么這個算法就是無條件保密的(unconditionally secure)。事實上,只有一次一密亂碼本,才是不可破的(給出無限多的資源仍然不可破)。所有其他的密碼系統(tǒng)在唯密文攻擊中都是可破的,只要簡單的一個接一個的去嘗試每種可能的密鑰,并檢查所得明文是否有意義,這種方法稱為蠻力攻擊(brute-force attack)。
在密碼學(xué)中,更關(guān)心在計算上不可破譯的密碼系統(tǒng)。如果算法用(現(xiàn)在或者將來)可得到的資源都不能破譯,這個算法則被認為是計算安全的(computationally secure)。準確的說,“可用資源”就是公開數(shù)據(jù)的分析整理。
可以采用不同的方式衡量攻擊方法的復(fù)雜性:
1)數(shù)據(jù)復(fù)雜性(data complexity)。用于攻擊輸入所需要的數(shù)據(jù)量。
2)處理復(fù)雜性(processing complexity)。完成攻擊所需要的時間,也經(jīng)常稱作工作因素(work factor)。
3)存儲需求(storage requirement)。進行攻擊所需要的存儲量。
作為一個法則,攻擊的復(fù)雜性取這三個因數(shù)的最小值。有些攻擊包括這三種復(fù)雜性的折中:存儲需求越大,攻擊可能越快。
復(fù)雜性用數(shù)量級來表示。如果算法的處理復(fù)雜性是2的128次方,那么破譯這個算法也需要2的128次方次運算(這些運算可能非常復(fù)雜和耗時)。假設(shè)我們擁有足夠的計算速度去完成每秒100萬次的運算,并且用100萬個并行處理器完成這個任務(wù),那么仍然需要花費10的19次方年以上才能找到密鑰。(而這是宇宙年齡的10億倍)。
當(dāng)攻擊的復(fù)雜性是常數(shù)時(除非一些密碼分析者發(fā)現(xiàn)更好的密碼分析攻擊),就只取決于計算能力了。在過去的半個世紀中,計算能力已經(jīng)得到了顯著的提高,并且現(xiàn)在這種趨勢還在發(fā)展。許多的密碼分析攻擊用并行處理的機制進行計算非常理想,一個任務(wù)可以分成億萬個子任務(wù),并且處理之間不需要相互作用。一種算法在現(xiàn)有技術(shù)條件下不可破譯就草率的宣稱是安全的,是很冒險的。從中我們可以得出,一個好的密碼系統(tǒng)應(yīng)設(shè)計成能抵御未來多年后的計算能力的發(fā)展。
注:上面提到的一次一密亂碼本(one-time pad),是由Major Joseph Mauborgne 和AT&T公司的Gilbert Vernam在1917年發(fā)明的。(事實上,一次一密亂碼本是門限方案的特殊情況)感興趣的朋友可以查閱相關(guān)資料深入了解,在此我就不展開描述了。
于中陽 Mercina-zy