【圖學院】初識密碼學易踩的“坑”,你中過招嗎?

寫代碼,是密碼朋克的使命。我們深知總要有人寫軟件來保護隱私。只有我們親自動手,我們才能擁有隱私權,我們一定會開發這樣的軟件。我們將要公開發布我們的代碼,讓密碼朋克戰友們能夠使用軟件。我們的代碼,對全球所有人免費。如果你們要封殺我們所寫的軟件,我們也毫不在意。我們清楚,軟件是無法被銷燬的,徹底的分佈式系統永不停機。

——《密碼朋克宣言》


【圖學院】初識密碼學易踩的“坑”,你中過招嗎?

前言:因為密碼學的學科難度,大多數人認為那是密碼學專家才應該關心的事。但其實,它關乎每個人的隱私安全,在歷史上,也曾引起一場轟轟烈烈的密碼朋克民權運動。近些年,密碼學作為區塊鏈的底層技術,對區塊鏈的安全交易、隱私保護和安全訪問中起到不可忽視的作用,越來越受到業內人士的重視和追捧,關於密碼學的普及和應用也獲得新的生機。

最早,密碼學被用於軍事機密的傳遞,只有國家支持的一些科研專家才會去研究。隨著密碼學技術的普及,到了上個世紀八九十年代,密碼學開始走向民用。同時美國興起了一場影響廣泛的密碼朋克運動。密碼朋克運動的宗旨是:以密碼學為工具,保護個體隱私。該運動的發起,代表著密碼學不僅僅是被用來維護國家及機構安全的重要軍用技術,也是用來保護個人隱私安全的重要民用技術。

“只有我們親自動手,我們才能擁有隱私權。”正如《密碼朋克宣言》提到,隱私權的未來,取決於人們在社會中的合作。密碼學是維護隱私安全的關鍵學科,如果大部分人能擁有一定的密碼學知識或隱私保護意識,長期付諸實踐,將對促進隱私權真正迴歸個體起到積極關鍵的作用。所以說,密碼學並不是專家才應關注的。

一、密碼學總體概念辨析

密碼學作為一門學科有其獨特性,即它的安全性基本建立在假設之上。如果有人直接表示,某一密碼學方案是安全或不安全的,其實是非常片面的說法。

從理論的角度探討密碼學的安全,一般需要涉及三個方面:


【圖學院】初識密碼學易踩的“坑”,你中過招嗎?

第一,安全模型。考慮所選的密碼學方案期望達到的效果(不同密碼學方案所要達到的效果不同,比如加密,所期望的目的是不希望其他人看到所要隱藏的信息),以及攻擊者具有的能力(定義攻擊者能力強度,是能看到信息還是能夠篡改信息)。

第二,安全方案。確定運用哪種密碼學方案,是簽名、加密還是零知識證明?

第三,數學假設。現在所有密碼學的安全性都是基於假設之上(這一特性曾被數學家質疑)並且是有代價的。這個代價足夠大,可能大到需要數清所有宇宙的原子的個數的地步。在該代價之下,該密碼不可能被攻破。

現在業內流行一種說法:“量子計算來了,密碼學要不行了”。這是因為在量子計算技術的前提下,一些密碼學的難題及其代價很容易被解決。然而不容忽視的是,密碼學仍有量子計算無法解決的困難問題,目前很多國內外專家正在基於抗量子安全問題構造相應的密碼學方案,以抵抗量子計算。

基於以上,密碼學的正確說法是:在XX數學假設下,YY方案是滿足ZZ安全模型的(ZZ安全)。也可以說,如果YY方案在ZZ模型下不安全,那麼可以在ZZ模型下攻破XX假設。

需要注意的是,如果從實際的角度來談論密碼學的安全性,則離不開一個重要因素,即安全參數(λ)。


【圖學院】初識密碼學易踩的“坑”,你中過招嗎?

如上圖所示,在ZZ模型下,攻破YY方案,需要2λ單位操作的計算複雜度。一般而言,λ等於80,用於學術性研究;λ等於128,用於普通商用級別;λ等於192,用於普通/高安全級別商用;λ等於256,用於高安全級別商用/軍用。

安全參數越大,密碼長度越大,性能越慢,安全性越高。在密碼學裡面,總是需要在安全性和性能之間進行博弈平衡。


二、密碼學細節概念辨析


在平時,我們總會從各個渠道接觸到一些並不準確的術語和詞彙,包括密碼學及其細分領域的各種概念。這對於很多密碼學初學者而言,其實是很不利的,易出現雲裡霧裡、無從分辨的狀況。

為此,我們專門總結常見的四種誤區,供大家辨析。

誤區1:

Cryptography(Crypto)不是加密學!!!

Cryptocurrency不是加密貨幣!!!!

【糾正】

Cryptography 密碼學

Cryptocurrency 密碼貨幣

[有加密(Encryption)必須要有解密(Decryption)]


注:消息即為明文,而被加密之後的消息,我們稱之為密文。用某種特定的方式方法對其進行“偽裝”處理,以隱藏其內容的過程,我們稱之為加密(encryption)。當我們將密文轉變為明文,這一過程我們稱之為解密(decryption)。


Cryptography是“密碼學”,包含加密技術和解密技術,因此將Cryptography翻譯成“加密學”是完全錯誤的。另外,Crypto即密碼,Cryptocurrency即密碼貨幣,將翻譯成“加密貨幣”也是錯誤的。

誤區2:

Hash不是加密!!!

【糾正】

Hash:數字摘要(Digital Digest)。


注:Hash和加密是兩種不同的密碼學技術。加密是對傳遞數據進行編碼處理的技術手段,使得編碼後的數據對於未獲知具體處理方式的其他方不可讀。通常,我們將明文轉換為密文的過程稱為“加密”。


而Hash(哈希)又稱數字摘要、散列、雜湊、指紋,是以任意長度的數據為輸入輸出相應固定長度的值。在區塊鏈中,賬戶與交易都涉及哈希函數的使用。

誤區3:

密碼學不等於加密。

【糾正】

密碼包含加密、Hash、簽名、MPC、ZKP、HE等等。


注:密碼學是一個大的範疇,除了加密,還包括Hash(哈希)、簽名、MPC(安全多方計算)、ZKP(零知識證明)、HE(同態加密)等多種技術。


誤區4:

QQ/微信密碼密碼不是密碼學中的密鑰。

【糾正】

平時生活中所用的密碼叫口令(Password),數字貨幣的私鑰是密鑰。

注:大家常用的QQ/微信密碼是口令(Password),易被破解,它與數字貨幣所用的私鑰/密鑰是完全不相同的。

密碼學是區塊鏈不可或缺的核心技術,更是保護個人信息不至於“裸奔”的重要技術。堅持對密碼學的研究學習,將帶來對神秘事物探索的滿足感,甚至帶來與個人利益息息相關的現實或長遠價值。

但必須承認的是,密碼學的研究是一個長期堅持的過程,一步一個腳印,學習、消化,最終才能得以應用。

歡迎每一位對密碼學擁有濃厚興趣的朋友,關注“PlatON”公眾號,持續深入研究,探索密碼學無限奧秘與學問!


分享到:


相關文章: