以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

科普 | 密碼學極速入門(Part-1)_區塊鏈

Author:

Time:1900/1/1 0:00:00

作者:?LeoWhitehead

翻譯&校對:?IANLIU?&阿劍

來源:以太坊愛好者

-廣受歡迎的加密通訊工具——OpenSSL,其中的部分代碼-

關于密碼學的內在原理,一直被認為是少數專家或數學家才能涉足的領域,其中的技術細節在大多數人看來就像變魔術一樣。考慮到現代密碼學的復雜程度,我們可以理解為什么很多人對密碼學存在這些誤解;但不了解密碼學,可能會做出很多弊大于利的決定,比如英國的加密禁令提案,澳大利亞的援助和訪問法案等。

在本篇指南中,我們會幫助大家掌握學習密碼學所需的入門知識、對不同密碼學體系的發展歷程進行簡介,并對當前三個最流行的密碼學領域——流密碼、分組密碼、公鑰密碼,進行快速上手指導。

密碼

“密碼”指的是對消息進行加密或解密的算法,也是密碼學的基石。加密算法(E)使用密鑰(k)對消息(m)進行加密,并生成密文(c);類似地,解密算法(D)使用密鑰(k),對密文(c)進行解密。如下列所示:

-加密算法'E'及解密算法'D'-

上述過程也意味著,一種算法要想被稱為“密碼”,還必須滿足以下的一致性方程特性,確保密文可以被解密。

式子表明著如果你使用密鑰?K?對消息進行加密,也能使用密鑰?K?對密文進行解密,并得到與原來消息一摸一樣的輸出。

民盟中央建議加速元宇宙科普和立法:3月4日消息,民盟中央已起草了《關于“元宇宙”技術發展的提案》,并將提交全國政協十三屆五次會議。在提案中,民盟中央建議,在科普層面需加速知識傳播,法律層面則需加快立法步伐。民盟中央擬提交的提案指出,目前,在新興網絡層面,相關政策法規相對缺失。“元宇宙”在未來將會帶動形成全新的網絡形態,當遇到突發輿情,全虛擬的環境、場景將更難進行源頭追蹤、問題疏導。因此建議應盡早加快立法研究,盡快形成與技術、市場發展相適應的治理模式和法律基礎,全面提升我國社會治理的水平。建議組織相關部門,針對“元宇宙”相關需求、風險進行立法研究,并盡快發布。此前消息,民進中央擬向全國政協十三屆五次會議提交《關于積極穩妥推進元宇宙技術和產業發展的提案》。建議推進元宇宙技術產業發展,建立相關監管治理體系。(華夏時報)[2022/3/4 13:37:12]

其中一種最古老、最簡單的密碼就是凱撒密碼——直接從字母表中選取特定位置,替換掉原消息中的字符。

-凱撒密碼出現于公元50年,凱撒大帝使用字母表跳三位的字來替換原來的消息內容,用于軍事通訊-

下面的例子就是經過后三位字符替換過后的密文形式:

凱撒密碼可以用下列式子表示:

雖然這種做法符合我們對密碼的定義,但是它非常不安全。只要攻擊者知道密文是以這種方式加密,就能通過嘗試另外25種組合進行破譯;即使攻擊者不知道密文使用了凱撒密碼,他們也能夠觀察到密文中的規律進行破譯。

歐科云鏈集團正式啟動區塊鏈科普行動“星途計劃”:歐科云鏈集團于4月26日,正式宣布啟動了區塊鏈科普行動——“星途計劃”,行動包括將在全國范圍展開系列沙龍,加大力度推進區塊鏈科普進機關、進國企、進校園等,聯合政府部門、行業協會等共同構建起更加完善和有效的區塊鏈科普教育生態,與此同時,直擊區塊鏈科普現存痛點,推出簡單易懂的“秒懂區塊鏈”公益短視頻課。

該計劃旨在全維度推動社會建立對產業更清晰的認知,與“鯤鵬計劃”一道助力數字經濟及區塊鏈產業本身健康發展夯實“人才”和“產業認知”兩大基礎。[2021/4/26 20:59:37]

雖然這種做法符合我們對密碼的定義,但是它非常不安全。只要攻擊者知道密文是以這種方式加密,就能通過嘗試另外25種組合進行破譯;即使攻擊者不知道密文使用了凱撒密碼,他們也能夠觀察到密文中的規律進行破譯。

在進一步介紹更安全的加密算法之前,我們得先聊聊什么是Xor運算。

XOR

Xor運算,又稱為“異或門”,是一種布爾變量邏輯判斷,能接收1或0作為輸入:如果輸出1則表示兩個輸入不同;輸出0則表示兩個輸入相同。下圖的真值表列出了經過異或運算后,所有可能的輸入輸出組合:

異或運算也經常用符號⊕來表示:

0⊕0=0

0⊕1=1

1⊕0=1

1⊕1=0

關于異或邏輯,以下有幾點重要的特性:

異或運算結合律:a⊕(b⊕c)=(a⊕b)⊕c

對自身進行異或運算結果為0:a⊕a=0

對0求異或,結果為自身:a⊕0=a

根據上述異或運算的規則,我們知道a⊕b⊕a等同于a⊕a⊕b,也等于0⊕b,運算結果為b。要注意的是,這些異或運算特性只適用在1和0,因此對不同進制的數字進行異或運算之前,需要先將其轉換為二進制。例如:

人大附中物理老師李永樂科普拜占庭將軍問題和區塊鏈:5月14日,人大附中物理老師、科普視頻網紅李永樂在其公眾號發布視頻《拜占庭將軍問題是什么?區塊鏈如何防范惡意節點?》。李永樂老師在視頻中對拜占庭將軍問題和區塊鏈進行了講解,他表示,拜占庭將軍問題本質上指的是,在分布式計算機網絡中,如果存在故障和惡意節點,是否能夠保持正常節點的網絡一致性問題。在近40年的時間里,人們提出了許多方案解決這一問題,稱為拜占庭容錯法。例如蘭波特自己提出了口頭協議、書面協議法,后來有人提出了實用拜占庭容錯PBFT算法,在2008年,中本聰發明比特幣后,人們又設想了通過區塊鏈的方法解決這一問題。區塊鏈通過算力證明來保持賬本的一致性,也就是必須計算數學題,才能得到記賬的權力,其他人對這個記賬結果進行驗證,如果是對的,就認可你的結果。與拜占庭問題比起來,就增加了叛徒的成本。[2020/5/14]

87⊕73=1010111b⊕1001001b=0011110b=30

接著,我們可以開始介紹第一種安全密碼了。

一次性密碼

FrankMiller在1882年提出了一次性密碼的概念——加密:將消息和私鑰進行異或運算得到密文;解密:將密鑰和密文進行異或運算得到原消息,這個過程類似于前面提到的a⊕b⊕a=b。一次性密碼的定義如下所示:

該密碼的一致性方程也很容易證明:

一次性密碼非常容易上手,假設我們要加密一串字段“Message”,首先可以通過ASCII字符集將“Message”轉換為二進制數據。

動態 | 浙江衛視節目科普支付寶區塊鏈防偽溯源產品:昨日,在浙江衛視播出的科普綜藝欄目《智造將來》現場,支付寶首次展示了支付寶區塊鏈防偽溯源產品,以接地氣的方式公開向大眾展示區塊鏈在生活中的應用。[2019/3/4]

現在,我們需要一組56位隨機二進制數來對明文進行異或運算,該私鑰隨機程度越高越好!

-從random.org生成的隨機數-

我們將明文和私鑰的每一位進行異或運算。

運算后的結果就是我們的密文了!要解開密文也很簡單,我們只需要將密文和剛才生成的私鑰進行異或運算,并轉碼回ASCII,就能得到原消息。

這種密碼簡單易用,而且還有個很有意思的特點。一次性密碼具有所謂的完全保密性,這意味著從數學角度來說,攻擊者不可能從密文推得任何原消息的內容,當然也不可能破譯。

既然我們已經有了簡單易用,且不可能破譯的密碼,為什么我們還會想用其他的密碼呢?根本原因在于,一次性密碼雖然很有效,但是他有一些重大的缺陷。

第一個缺陷是,不論我們想要加密什么樣的消息,都需要有和原消息一樣長或是更長的私鑰用于加解密。而且為了讓密文接收者能夠解密密文,需要有絕對安全的通信方法把私鑰給到接收者;這就形成一個悖論,如果有這種安全通道,那不如直接把原消息發過去得了。

第二個缺陷可以從“一次性密碼”的名稱中發現。針對不同消息,同一個私鑰每回只能使用一次;如果對多個消息重復使用同一個私鑰,其引發的問題可以從數學推導上看出。

聲音 | 中科院姚建銓:要加快推進區塊鏈與物聯網融合的科普 培訓:據新華網消息,日前,在區塊鏈與物聯網融合發展峰會上,中國科學院院士姚建銓說,關注區塊鏈技術里面的大數據,跟區塊鏈技術結合起來進行測量和檢測,能更好地提升激光清洗技術。姚建銓建議,無錫今后要加快推進區塊鏈與物聯網融合的科普、培訓,正確引導廣大人民群眾對技術的認知;同時,建立專業、權威,但又普適、成套的理論體系和標準,以此切入區塊鏈的實際應用。[2018/9/18]

假設我們有兩條消息m1和m2,分別使用相同的私鑰k進行加密。通過異或運算,我們會得到以下密文:

從上圖,我們可以從密文C1⊕C2得到m1⊕m2。對于攻擊者來說,他們就能基于這種關聯性,通過各種統計分析、頻率分析、模式匹配,或是使用2006年提出的自然語言處理方法,來獲得原消息的內容。我不會深入解釋存在這種關聯性具體造成的危害,這里只是形象的說明當同一個私鑰被使用的次數越多,密碼的安全性就越低。

現在我們已經具備XOR加密和一次性密碼的基礎知識,是時候了解其他更實用的加密方法了。

流密碼

一次性密碼具有非常好的安全性,這意味著手上只有密文的情況下,攻擊者不可能進行破譯。但是好的安全性基于長度大于等于原消息的私鑰,這使得一次性密碼并不實用,因為如果加解密雙方有很好的方法來傳遞消息和私鑰,他們直接傳遞消息就好,沒必要進行加密。

為了讓一次性密碼更加實用,我們引入“流密碼”的概念。流密碼的核心思想是——以“偽隨機”密鑰替代一次性密碼中的“隨機”密鑰,偽隨機密鑰產生自

密碼學安全偽隨機數生成器。要注意的是,CSPRNG不同于一般的偽隨機數生成器,因為CSPRNG產生的數據必須和真實隨機數看起來沒有區別才行。CSPRNG是一種算法,能產生一長串數字,類似于隨機數的性質。因為隨機數很難生成,所以CSPRNG要依靠種子來決定初始狀態及將來產生的數;CSPRNG從相對較小的起始種子生成海量的隨機數。如果起始種子是已知的,則隨后產生的所有數都是已知的,也就是說CSPRNG具有確定性;這也導致CSPRNG產生的數,其隨機程度完全取決于種子的隨機程度。為了讓一次性密碼更加實用,我們可以根據所需長度,使用偽隨機數生成器的輸出替換原來的私鑰;這樣的話只要傳遞初始種子就可以了。因為CPRNG具有確定性,使用相同種子能得到相同輸出。

為了更好理解,我們先看看原來的一次性密碼:

使用偽隨機數生成器的輸出G(K),替換原來的私鑰K:

替換后的私鑰可以遠遠短于要加密的消息,使得分配及管理私鑰更為方便,進一步改善了一次性密碼不實用的問題。但這種做法也帶來了新的問題:

將原來完全隨機的私鑰替換為安全隨機數生成器的輸出,會導致私鑰長度比原消息短,使得我們的密碼不再具有完全保密性。因此流密碼的安全性取決于我們的偽隨機數生成器的不可預測性。如果可以預測CSPRNG的輸出,則可以獲得明文消息。以下是大家熟知的一些使用弱流密碼的密碼系統:

802.11bWEP:WEP是一種給WiFi數據做加密的算法,它使用的流密碼稱為RC4。因為流密碼中不能一直使用同個密鑰,所以長期使用的密鑰包含一個每次都會變動的值“IV”;然而“IV”只有24位,也就是說加密超過5000條消息后,就會有五成的概率出現相同的密鑰。

CSS:DVDForum使用內容擾亂系統來管理DVD的數字版權,使得僅有獲得授權的應用才能訪問DVD內容。CSS使用40位的密鑰,而40位的密鑰空間較小,可以相對快速地暴力破解。

現在我們也掌握了流密碼的知識,可以進一步討論下一個密碼系統——分組密碼。

分組密碼

分組密碼是另一種能用于加解密數據的方法。分組密碼包含兩種算法:E用于加密,D用于解密,同時也用到了密鑰K。

分組密碼的核心在于,要加密的明文和輸出的密文長度始終相同,為一固定量。該固定量稱為“blocksize”,大小取決于所使用的分組密碼算法。另外,私鑰K的長度被稱為密鑰大小,也是固定量。常見的兩種分組密碼分別是3DES及AES——3DES具有64位的消息大小和168位的密鑰;AES具有128位的消息大小和128、192或256位的密鑰。

因為分組密碼把可能的區塊映射到其他的每一個區塊,所以也被稱為“用密鑰完成的置換”或是“偽隨機置換”。非常重要的一點是,私鑰決定了輸入的區塊和相關密文區塊的映射關系,而且是一對一排列的,所以只要知道私鑰就能解密密文。

第一個比較重要的分組密碼是1970年代IBM開發的數據加密標準,但DES并不安全,很快就被3DES取代;緊接著3DES又被1997年開發的高級加密標準所取代。AES是在國家標準與技術研究所的要求下制定的標準化分組密碼。AES是當今使用的最常見的分組密碼,重要性大大超過DES和3DES,所以我將著重介紹AES。

在我解釋AES到底是怎么運作之前,先提醒一下我會跳過很多技術細節,如果有人對這深入這方面領域有興趣,可以從這里獲得你想要的。

AES及大部分分組密碼,都是通過迭代進行運作的,輸入的文本消息會使用連續的密鑰以迭代的方式進行加密。第一步是獲得一個密鑰K,密鑰一般是128位、192位或256位的,在這里我們只演示128位的AES;然后拿該密鑰推導出一系列的RoundKeys來加密我們的消息。

上圖例子中,我們輸入128位的密鑰,并通過Rijndael密鑰方法?將密鑰擴展成11個16字節的子密鑰。接著,AES將原消息放入輪次函數?R(kn?,m)?進行獨立加密計算,每次計算把擴展出來的輪次密鑰?kn?及消息狀態?m?作為輸入,總共進行10次。

因為AES只能用在128位的消息上,因此我們把輸入的消息?m?表示成4x4矩陣的單字節單元,同時也能把輪次密鑰表示成4x4的矩陣,這樣就可以對消息及其中間狀態進行異或運算了。

首先,輸入的消息和第一個輪次密鑰進行XOR,再通過字節替代、行位移、列混淆等運算,輸出轉變后的消息狀態作為結果。接著我們使用不同的輪次密鑰重復上述這些步驟10次,唯一的不同點在于最后一次的計算不包含列混淆。最終的消息狀態和第十一個輪次密鑰進行異或計算,得到最后的輸出。下面簡述了每一輪次的計算中包含的三種步驟:

字節替代:根據替換表,將消息狀態矩陣中的每一個字節,替換為相應的字節。

-在AES使用的替換表中,每一個字節單元以16進制表示。如,字節9a會替換為b8-

行位移:定量移動每一行。第一行不移動,第二行左移一位,第三行左移兩位,第四行左移三位。

列混淆:對消息狀態中每一列進行線性變換。目前為止,我們已經能使用AES來加密數據。然而,你可能很快能發現AES的局限性——沒辦法在只用一次AES的情況下,對超過128位的消息進行加密。要對超過16字節的消息進行加密,我們需要引入模式加密概念。

Tags:區塊鏈AESCSPRCSP為什么現在不提區塊鏈了AES幣cspr幣未來價值預測CSPT價格

Gate交易所
法律研究 | 項目方白皮書虛假陳述,投資人如何維護權益_區塊鏈

作者:鏈法律師團隊 來源:鏈法 區塊鏈行業的白皮書是項目的藍圖,也是項目的發展規劃。如果一個項目的白皮書隨著監管政策及市場的變化而進行調整和升級,投資人當然愿意接受.

1900/1/1 0:00:00
歐盟發布文件草案,建議考慮歐洲數字貨幣_區塊鏈

作者:XiranDing來源:比推bitpush.news編者注:原標題為《歐盟提出建議考慮歐洲數字貨幣的草案》歐盟發布的一份文件草案建議歐盟考慮發行自己的數字貨幣.

1900/1/1 0:00:00
美國SEC發布2019財年年度報告:今年共暫停包括數字資產在內的271項證券交易_SEC

據Cointelegraph報道,11月6日,美國證券交易委員會發布了2019財年年度報告。報告顯示,今年SEC共暫停了包括數字資產在內的271項證券交易,總數量僅略低于去年的280個.

1900/1/1 0:00:00
Opera瀏覽器:3.5億用戶現可以直接在瀏覽器內使用比特幣付款_WEB

據外媒今日消息,Web瀏覽器Opera現在允許直接在瀏覽器內部使用比特幣付款。 該公司在10月21日分享的新聞稿中宣布了這一消息,詳細說明Opera的3.5億用戶現在可以直接從瀏覽器發送和接收B.

1900/1/1 0:00:00
隱私是未來,但隱私幣不是_ASH

文|蘆薈 出品?|?Odaily星球日報 如火如荼的Defi之外,「隱私」正在被重提。今年8月的柏林web3.0峰會上,美國棱鏡門主角愛德華?·斯諾登罕見地出現在視頻連線熒屏上,在40分鐘的時間.

1900/1/1 0:00:00
以太坊期貨合約終于要來了?CFTC主席表示很愿意批準_以太坊

美國大宗商品期貨交易委員會主席希思·塔伯特表示,明年某個時候我們可能會看到以太坊期貨合約。 塔伯特在近日參加DCFintechWeek活動時談到了以太坊,他說:波卡生態Web3多鏈錢包Talis.

1900/1/1 0:00:00
ads