Hacker Dōjō 密碼學(xué)專題一:1對稱加密算法DES/AES

Hacker? Dōjō Web3前沿技術(shù) workshop文稿
研究種類:密碼學(xué)-對稱加密
資助金額:100 USDT
Bounty鏈接:https://dorahacks.io/zh/daobounty/138
Workshop回顧:https://www.bilibili.com/video/BV1GM411r7Ha/?spm_id_from=333.999.0.0
內(nèi)容貢獻(xiàn)者:密碼學(xué)專家?Lynndell
本項(xiàng)目由Hacker Dōjo資助,文章轉(zhuǎn)載請注明出處。
??學(xué)習(xí)量子計(jì)算、密碼學(xué)、Space等Web3前沿技術(shù)
??認(rèn)領(lǐng)Bounty,賺取賞金
??參與Hackathon,獲得資助
更多Web3精彩技術(shù)分享盡在Dojo??
WeChat: @HackerDojo0

密碼學(xué)專題一課程安排

第一課:對稱加密?(DES、AES、五種加密模式)
第二課:哈希函數(shù)?(SHA2、SHA3、MiMC、Rescue、Poseidon)
第三課:群與公鑰加密?(群,橢圓曲線群,Diffie-Hellman密鑰交換,ElGamal加密)
第四課:數(shù)字簽名?(BLS、Schnorr、EdDSA、ECDSA)
第五課:零知識(shí)證明?(Sigma零知識(shí)證明、Groth16、PLONK)
第一課:對稱加密
1.1基本概念

混淆:?密鑰與密文之間的統(tǒng)計(jì)特征盡可能復(fù)雜。理解?密鑰與明文數(shù)據(jù)混起來。
擴(kuò)散:?明文的統(tǒng)計(jì)特征消失在密文中。理解?每比特輸入,影響50%的輸出。


1.1.1凱撒密碼

使用后面第3個(gè)字母替換明文
plain: a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
plain: meet me after the toga party
cipher: PHHW PH DIWHU WKH WRJD SDUWB

該密碼算法不能公開,一旦公開,則很快會(huì)被破解。
密碼算法要求:安全性僅依賴于密鑰,算法可以公開。
1.1.2對稱密碼分類


流密碼
加密:?輸入密鑰key,運(yùn)行隨機(jī)數(shù)生成算法,輸出任意長的隨機(jī)數(shù);隨機(jī)數(shù)與明文數(shù)據(jù)異或運(yùn)算,輸出密文。

解密:?輸入密鑰key,運(yùn)行隨機(jī)數(shù)生成算法,輸出任意長的隨機(jī)數(shù);隨機(jī)數(shù)與密文異或運(yùn)算,輸出明文數(shù)據(jù)。

分組密碼
加密:輸入固定長(256bit)的明文數(shù)據(jù)和固定長的密鑰key,輸出固定長的密文

解密:輸入固定長的密文和固定長的密鑰key,輸出固定長的明文數(shù)據(jù)

分組密碼的應(yīng)用范圍比流密碼更廣泛,絕大多數(shù)基于網(wǎng)絡(luò)的對稱密碼使用的都是分組密碼。此外,分組密碼通過5種加密模式,能夠構(gòu)造流密碼。
1.2DES

DES是對稱加密算法,是分組加密算法,以64位為分組對數(shù)據(jù)加密,64位一組明文從算法的一段輸入,64位密文輸出。
密鑰實(shí)際長度為56位(密鑰長度為64位,但每個(gè)第8位都做奇偶校驗(yàn)數(shù),加密時(shí)刪除校驗(yàn)位。)



1.2.1 初始置換

把明文輸入塊分為64塊,然后排列成下面所示輸出:
輸入:64bit;輸出:64bit;IP置換功能:亂序。

1.2.2 輪函數(shù)Function
假設(shè)Bi(64bit)是第i次迭代的結(jié)果,Li(left 32bit)和Ri(right 32bit)是Bi的左半部分和右半部分。Ki是第i輪的48位密鑰,且f是實(shí)現(xiàn)代替、置換、密鑰異或等運(yùn)算的函數(shù),那么每一輪就是:

輪函數(shù)?funtion?包括4?步:
擴(kuò)展置換?---?、密鑰異或、S?盒代替、P?盒置換。
1.2.2.1 擴(kuò)展置換


將數(shù)據(jù)的右邊部分Ri(32bit)按照上圖所示擴(kuò)展為48bit
思路為首位互換,數(shù)據(jù)段之間交叉填充
盡管輸出分組大于輸入分組,但每個(gè)輸入分組產(chǎn)生唯一的輸出分組
1.2.2.2 密鑰異或

密鑰置換分為3步:1.密鑰初始化、2.密鑰移位、3.密鑰壓縮置換;
1.?PC1?置換?密鑰初始化(執(zhí)行一次)
輸入密鑰為

在DES每一輪中,56位**(64**?位刪除8?的倍數(shù)的校驗(yàn)位)?密鑰進(jìn)行如下表所示排列:
輸入:64bit?;輸出56bit?;刪除校驗(yàn)位(8,16,24,32,40,48,56,64)?、然后亂序;

2.?Key_Rotations 密鑰移位(每輪執(zhí)行)
然后將密鑰分為兩部分:?C0是28bit, D0是28bit。
C0=**57,49,**41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36
D0=**63,55,**47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4
每部分28位,然后根據(jù)輪數(shù),這兩部分分別左移一位或兩位。加密左移表:

例如:第1輪移位后的結(jié)果如下
C1=49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,57
D1=55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4,63
3.?PC2?置換?密鑰壓縮置換(T盒壓縮置換)(每輪執(zhí)行)
然后合并C1,D1?,再經(jīng)過置換選PC-2排列:

其中刪除第9,18,22,25,35,38,43,54位,變?yōu)?8位密鑰K1?.
繼續(xù)執(zhí)行步驟2和步驟3:
C1?和?D1?再次經(jīng)過循環(huán)左移,生成?C2?和?D2?,合并后通過?PC-2?生成子密鑰?K2?;
C2和D2再次經(jīng)過循環(huán)左移,生成C3和D3,合并后通過PC-2生成子密鑰K3;
以此類推得到全部子密鑰K1-K16。
異或運(yùn)算:48bit?數(shù)據(jù)data?異或 48bit?密鑰key?輸出 48bit?中間狀態(tài)數(shù)據(jù)data’
1.2.2.3 SBox盒代替

中間狀態(tài)數(shù)據(jù)data’進(jìn)入S盒子
48=6*8,拆為8份,每份是6bit
將六bit輸入標(biāo)記為b1,b2,b3,b4,b5,b6.
Y坐標(biāo):b1, b6構(gòu)成一個(gè)2位的數(shù)00,01,10,11,y=0,1,2,3;
X坐標(biāo):b2, b3, b4, b5構(gòu)成一個(gè)4位的數(shù)x,x=0,1,2,…,15.
因此,確定一個(gè)坐標(biāo)點(diǎn)(x,y)。
將48位data’ 結(jié)果送入S盒進(jìn)行代替運(yùn)算。
每一個(gè)S?盒有六位輸入,四位輸出,且這八個(gè)S?盒是不同的。
48位的輸入塊被分為8個(gè)6位的分組,每個(gè)分組對應(yīng)一個(gè)S盒操作。

假如第n組數(shù)據(jù)輸入,就有第n組輸出為Sn的(x,y)確定輸出的數(shù)(轉(zhuǎn)化為二進(jìn)制就有四位)
假設(shè)S8的輸入(即異或函數(shù)的第43~18位)為110011。第1位和最后一位組合形成了11(二進(jìn)制),對應(yīng)S-盒8的第3行。中間的4位組成形成1001(二進(jìn)制),對應(yīng)S-盒8的第9列。所以對應(yīng)S-盒8第3行第9列值是12。則S-盒輸出是1100(二進(jìn)制)。
1.2.2.4 PBox盒置換

S盒運(yùn)算后得到四位,八盒共得到32位輸出.然后依照P盒進(jìn)行置換。
P盒排布如下表所示:

置換后的結(jié)果與最初的64位分組的左半部分異或,然后左右不分分別交換,開始下一輪迭代。
1.2.3 末尾逆置換

末置換是初始置換的逆過程.
將初始置換進(jìn)行16次迭代加密后,得到L16和R16.將此作為輸入進(jìn)行末置換.末置換表如下:

最后一輪結(jié)束后,左右密鑰并未交換,而是將R16與L16并在一起形成一個(gè)分組作為末置換的輸入。

末置換結(jié)果的輸出就是算法結(jié)果的輸出。
1.2.4 DES解密

加密與解密唯一不同就是密鑰次序是相反的。
加密秘鑰是K1、K2、K3, …, K16,
解密秘鑰是K16、K15、K14, …, K1。
1.2.5 雙重和三重DES


雙重DES

三重DES

1.3AES

數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard: DES)的密鑰長度是56比特,因此算法的理論安全強(qiáng)度是256。但是二十世紀(jì)中后期正是計(jì)算機(jī)飛速發(fā)展的階段,元器件制造工藝的進(jìn)步使得計(jì)算機(jī)的處理能力越來越強(qiáng),DES將不能提供足夠的安全性。1997年1月2號(hào),美國國家標(biāo)準(zhǔn)技術(shù)研究所(National Institute of Standards and Technology: NIST)宣布希望征集高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard: AES)[3],用以取代DES。AES得到了全世界很多密碼工作者的響應(yīng),先后有很多人提交算法。最終有5個(gè)候選算法進(jìn)入最后一輪:Rijndael,Serpent,Twofish,RC6和MARS。最終經(jīng)過安全性分析、軟硬件性能評(píng)估等嚴(yán)格的步驟,Rijndael算法獲勝。
Rijndael由比利時(shí)兩位非常著名的密碼學(xué)家Joan Daemen和Vincent Rijmen設(shè)計(jì)。Rijndael是一個(gè)分組密碼算法族,其分組長度包括128比特、160比特、192比特、224比特、256比特,密鑰長度也包括這五種長度,但是最終AES只選取了分組長度為128比特,密鑰長度為128比特、192比特和256比特的三個(gè)版本。本文主要結(jié)合AES-128進(jìn)行介紹,AES-196和AES-256的思路基本一樣,只是密鑰擴(kuò)展算法的過程會(huì)稍有不同,加解密的輪數(shù)會(huì)適當(dāng)增加,但加解密的操作都是一樣的。另外,本文只對AES算法的各個(gè)模塊、基本原理進(jìn)行介紹,旨在加深對算法流程、密碼算法實(shí)現(xiàn)的了解。在正式軟件運(yùn)用中并不推薦自己編寫代碼,很多開源項(xiàng)目如Linux,OPENSSL,SRTP等都有非常高效的實(shí)現(xiàn)。由于數(shù)學(xué)知識(shí)的缺陷,本文不介紹算法安全性分析相關(guān)的知識(shí),有興趣的讀者可以自行閱讀相關(guān)文獻(xiàn)。
1.3.1 加密流程

AES是一個(gè)分組密碼,屬于對稱密碼范疇,AES算法的模塊在對稱密碼領(lǐng)域特別是分組密碼領(lǐng)域常有使用。


1.3.2 輪函數(shù)Function

輪函數(shù)包含?4?種操作:字節(jié)替代(?SubBytes?)、行移位(?ShiftRows?)、列混淆(?MixColumns?)和輪密鑰加(?AddRoundKey?)
下圖給出了AES加解密的流程,從圖中可以看出:1)解密算法的每一步分別對應(yīng)加密算法的逆操作,2)加解密所有操作的順序正好是相反的。正是由于這幾點(diǎn)(再加上加密算法與解密算法每步的操作互逆)保證了算法的正確性。加解密中每輪的密鑰分別由種子密鑰經(jīng)過密鑰擴(kuò)展算法得到。算法中16字節(jié)的明文、密文和輪子密鑰都以一個(gè)4x4的矩陣表示。


1.3.2.1 字節(jié)替代

字節(jié)代替的主要功能是通過S盒完成一個(gè)字節(jié)到另外一個(gè)字節(jié)的映射。S盒的詳細(xì)構(gòu)造方法可以參考文獻(xiàn)[4]。這里直接給出構(gòu)造好的結(jié)果,下圖(a)為S盒,圖(b)為S-1(S盒的逆)。S盒用于提供密碼算法的混淆性。
S和S-1分別為16x16的矩陣,完成一個(gè)8比特輸入到8比特輸出的映射,
輸入的高?4-bit?對應(yīng)的值作為行標(biāo),低?4-bit?對應(yīng)的值作為列標(biāo)。
假設(shè)輸入字節(jié)的值為a=a7a6a5a4a3a2a1a0,則輸出值為S[a7a6a5a4][a3a2a1a0],S-1的變換也同理。
例如:字節(jié)00000000B替換后的值為(S[0][0]=)63H,再通過S-1即可得到替換前的值,(S-1 [6][3]=)00H。



用進(jìn)行等價(jià)描述
按字節(jié)值的升序逐行初始化S盒子。第1行是{00},{01},…,{0F};第2行是{10},{11},…,{1F}。因此,在y行x列的字節(jié)值是{yx}
S盒子中每個(gè)字節(jié)映射為有限域?GF(28)中的逆,其中{00}映射為{00}。
S盒子中的每個(gè)字節(jié)的8位記為(b7,b6,…,b0) ,對每個(gè)字節(jié)進(jìn)行如下變換

其中ci是值{63}字節(jié)c的第i位 (c7,c6,c5,c4,c3,c2,c1,) = (01100011)
對應(yīng)的逆變換為

其中字節(jié)d={05}或00000101。
也可以用矩陣等價(jià)描述

對應(yīng)的逆變換為


1.3.2.2 行移位

行移位是一個(gè)4x4的矩陣內(nèi)部字節(jié)之間的置換,用于提供算法的擴(kuò)散性。
1) 正向行移位
正向行移位用于加密,其原理圖如下。其中:
第一行保持不變,第二行循環(huán)左移?8?比特,
第三行循環(huán)左移?16?比特,第四行循環(huán)左移?24?比特。
假設(shè)矩陣的名字為state,用公式表示如下:

2)?逆向行移位
逆向行移位即是相反的操作,即:
第一行保持不變,第二行循環(huán)右移?8?比特,
第三行循環(huán)右移?16?比特,第四行循環(huán)右移?24?比特。
用公式表示如下:

1.3.2.3 列混淆

不可約多項(xiàng)式(本原多項(xiàng)式)定義:不能寫成兩個(gè)次數(shù)較低的多項(xiàng)式之乘積的多項(xiàng)式。沒有多項(xiàng)式因子。
LIDL94?Lidl, R. and Niederreiter, H.?Introduction to Finite Fields and Their Applications.?Cambridge: Cambridge University Press, 1994.
字節(jié)運(yùn)算規(guī)定:字節(jié)相加,就是位異或運(yùn)算;字節(jié)相乘,就是有限域內(nèi)的乘法運(yùn)算,模不可以多項(xiàng)式。
1)?列混淆
列混淆計(jì)算方法1:?使用域F2n上的不可約多項(xiàng)式

列混淆計(jì)算方法2:
正向列混淆的原理圖如下:

根據(jù)矩陣的乘法可知,在列混淆的過程中,每個(gè)字節(jié)對應(yīng)的值只與該列的4個(gè)值有關(guān)系。此處的乘法和加法都是定義在GF(28)上的,需要注意如下幾點(diǎn):
將某個(gè)字節(jié)所對應(yīng)的值乘以?2?,其結(jié)果就是將該值的二進(jìn)制位左移一位。如果原始值的最高位為?1?,則還需要將移位后的結(jié)果異或?00011011?;
乘法對加法滿足分配率,

此處的矩陣乘法與一般意義上矩陣的乘法有所不同,各個(gè)值在相加時(shí)使用的是模28加法(異或運(yùn)算)。
下面舉一個(gè)例子,假設(shè)某一列的值如下圖,運(yùn)算過程如下:

在計(jì)算?02?與?C9?的乘積時(shí),由于?C9?對應(yīng)最左邊的比特為?1?,因此需要將?C9?左移一位后的值與?(0001 1011)?求異或。同理可以求出另外幾個(gè)值。
2)?逆向列混淆
逆向列混淆的原理圖如下:

由于:

說明兩個(gè)矩陣互逆,經(jīng)過一次逆向列混淆后即可恢復(fù)原文。
1.3.2.4 輪密鑰加

這個(gè)操作相對簡單,其依據(jù)的原理是“任何數(shù)和自身的異或結(jié)果為0”。加密過程中,每輪的輸入與輪子密鑰異或一次;因此,解密時(shí)再異或上該輪的輪子密鑰即可恢復(fù)。
1.3.3 密鑰擴(kuò)展算法

密鑰擴(kuò)展的原理圖如下:


密鑰擴(kuò)展過程說明:?16?個(gè)字節(jié)擴(kuò)展為?43?個(gè)字節(jié)
將種子密鑰按圖(a)的格式排列,其中k0、k1、……、k15依次表示種子密鑰的一個(gè)字節(jié);排列后用4個(gè)32比特的字表示,分別記為w[0]、w[1]、w[2]、w[3];4組,每組4個(gè)字節(jié)
按照如下方式,依次求解w[j],其中****j?是整數(shù)并且屬于?[4,43]?;
若j%4=0,則w[j]=w[j-4]?⊕?g(w[j-1])?,j=4,8,12,16,20,24,28,32,36,40
否則w[j]=w[j-4]?⊕?w[j-1]?;j=5,6,7; 9,10,11; 13,14,15; 17,18,19; 21,22,23; 25,26,27; 29,30,31; 33,34,35; 37,38,39; 41,42,43;
函數(shù)g的流程說明:
將w循環(huán)左移8比特;
分別對每個(gè)字節(jié)做S盒置換;
與32比特的常量(RC[j/4],0,0,0)進(jìn)行異或,RC是一個(gè)一維數(shù)組,其值如下。(RC的值只需要有10個(gè),而此處用了11個(gè),實(shí)際上RC[0]在運(yùn)算中沒有用到,增加RC[0]是為了便于程序中用數(shù)組表示。由于j的最小取值是4,j/4的最小取值則是1,因此不會(huì)產(chǎn)生錯(cuò)誤。)

詳細(xì)原理:

1.3.4 小結(jié)

對稱加密(哈希函數(shù))的核心思想:
線性變換:線性運(yùn)算關(guān)系,作用:讓每bit輸入影響50%輸出;
非線性變換:S****盒子,非線性變換,抵抗解方程組攻擊;
輪密鑰加:添加一些隨機(jī)數(shù)或常量,提高信息商。
AES, SHA3
密碼算法要求是可逆的,這樣解密算法才能正確的恢復(fù)明文。在密鑰固定的情況下,明文和密文在整個(gè)輸入空間是一一對應(yīng)的。因此,算法的各個(gè)部件也都是可逆的,再將各個(gè)部件的操作順序設(shè)計(jì)成可逆的,密文就能正確的解密了。
參考文獻(xiàn)
William Stallings著;王張宜等譯. 密碼編碼學(xué)與網(wǎng)絡(luò)安全——原理與實(shí)踐(第五版)[M]. 北京:電子工業(yè)出版社,2012.1.
Advanced Encryption Standard,?Advanced Encryption Standard - Wikipedia, 2017年3月獲取.
64bit DES N次
128bit AES N/2次
分組密碼循環(huán)調(diào)用多次,實(shí)現(xiàn)對任意長數(shù)據(jù)的加密。
1.4對稱加密五種工作模式

線性變換:線性運(yùn)算關(guān)系,作用:讓每bit?輸入影響每bit?輸出
非線性變換:S?盒子,非線性變換,抵抗解方程組攻擊
密鑰加:添加一些隨機(jī)數(shù);提高信息商;輪常量

1.4.2 ECB電子密碼本模式

ECB模式是分組密碼的基本工作方式。在該模式下,每個(gè)加密區(qū)塊按順序進(jìn)行獨(dú)立加密,得到獨(dú)立的密文區(qū)塊,每個(gè)加密區(qū)塊的結(jié)果都不會(huì)被其他區(qū)塊影響,用此方式,可用平行處理實(shí)施加速加、解密運(yùn)算,且在網(wǎng)絡(luò)傳輸時(shí)任何一個(gè)區(qū)塊出現(xiàn)錯(cuò)誤,也不存在影響到其他區(qū)塊傳輸?shù)慕Y(jié)果,這是該模式的好處。
ECB模式的不足是易使明文的數(shù)據(jù)模式暴露。很多數(shù)據(jù)均存在固有模式,這主要是由數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)冗余導(dǎo)致的。若無任何措施,針對在需加密的文件里出現(xiàn)多回的明文,這部分明文如果剛好是加密區(qū)塊的大小,則可能會(huì)得到一樣的密文,且密文內(nèi)容如果受到剪貼、代替,也很難被發(fā)現(xiàn)。

Msg: 256, 50%,差分能力,判斷你到底,AES/DES
如果攻擊者獲得了大量的明文和密文;分析能力。提高了攻破概率。
1.4.3 CBC密碼快鏈接模式

密文沒有規(guī)律,引入雪崩效應(yīng):是優(yōu)點(diǎn),也是缺點(diǎn)。
最后一個(gè)分組需要填充
需要初始化向量
第一個(gè)加密區(qū)塊先與初始向量做異或運(yùn)算,再進(jìn)行加密。其他每個(gè)加密區(qū)塊在加密之前,必須與前一個(gè)加密區(qū)塊的密文做一次異或運(yùn)算,再進(jìn)行加密。每個(gè)區(qū)塊的加密結(jié)果都會(huì)被前面全部區(qū)塊內(nèi)容的影響,因此盡管在明文里出現(xiàn)多次一樣的明文,也會(huì)得到不一樣的密文。
還有,密文內(nèi)容如果遇到剪貼、替換,或于網(wǎng)絡(luò)傳輸時(shí)出現(xiàn)錯(cuò)誤,則它后面的密文會(huì)被破壞,不能順利解密還原,這是這一模式的優(yōu)點(diǎn)也是缺點(diǎn)。
其次,一定得選取1個(gè)初始向量來加密第1個(gè)區(qū)塊,且加密作業(yè)時(shí)不能用平行處理加速加密運(yùn)算,不過解密運(yùn)算,做異或的加密區(qū)塊結(jié)果已經(jīng)有了,則還可用平行處理加速。

245bits
C1,…Cn,…,Cm
1bit傳輸錯(cuò)誤,那就后續(xù)全錯(cuò)。
1.4.4 CFB密文反饋模式

簡單講就是前一模塊的密文輸出,參與下一模塊的加解密
密文沒有規(guī)律,明文分組和一個(gè)數(shù)據(jù)流進(jìn)行異或操作,生成密文
需要初始化向量
不需要填充

有嚴(yán)格的順序關(guān)系:導(dǎo)致無法并行運(yùn)算。效率較低。
1.4.5 OFB輸出反饋模式

初始化向量一次加密并參與各分組的加密過程
特點(diǎn),密文沒有規(guī)律,明文分組和一個(gè)數(shù)據(jù)流按位異或生成密文
需要初始化向量
不需要填充

初始向量?一旦傳輸錯(cuò)誤,則一切都完蛋。
256bit?的隨機(jī)數(shù),
地球–?太空
芯片初始化,巨大的容錯(cuò)能力。
1.4.6 CTR計(jì)數(shù)器模式

用計(jì)數(shù)器代替OFB模式中的向量
不需要初始化向量
不需要填充

起始狀態(tài):
并行計(jì)算、密文之間互不影響、
key256bit, 加密1G數(shù)據(jù)
1.4.7 優(yōu)缺點(diǎn)對比



關(guān)于Hacker Dōjo
Hacker Dōjo是由Hacker共建的加密、Web3前沿技術(shù)開源知識(shí)社區(qū)。Dōjo會(huì)以直播/音頻/文字等形式定期組織分享session,分享主題主要覆蓋L1和L2的共識(shí)算法,架構(gòu),GitHub repo相關(guān)內(nèi)容,包括不限于以下話題:Scroll / Polygon zkEVM、 Eigen的混合證明系統(tǒng)、Starkware、azTec、 Optimism、Zecrey、Aptos、 Move、密碼學(xué)(零知識(shí)證明、公鑰加密、哈希函數(shù)、格密碼) 、 分布式系統(tǒng)、 以太坊協(xié)議棧、 量子計(jì)算和量子信息、衛(wèi)星通信系統(tǒng)和航天器系統(tǒng)設(shè)計(jì)等。
?Bounty詳情及認(rèn)領(lǐng)進(jìn)度詳情:https://innovative-laser af4.notion.site/174922df15884848b6ac8b57cb4f2fae?v=612e13dc6b9d44dd8197f755abb9fe9c
?加入Dojo中文社區(qū)微信聯(lián)系:@HackerDojo0
有關(guān)DoraHacks
DoraHacks 是一個(gè)全球范圍內(nèi)的極客運(yùn)動(dòng),全球黑客馬拉松組織者,也是全球最活躍的多鏈 Web3 開發(fā)者平臺(tái)之一。DoraHacks.io平臺(tái)使得世界各地的Hacker和開源開發(fā)者可以參與黑客馬拉松、Bounty、Grant、Grant DAO,以及公共物品質(zhì)押等加密原生協(xié)議和基礎(chǔ)設(shè)施進(jìn)行協(xié)作并獲得資助。到目前為止,DoraHacks 社區(qū)的 4000 多個(gè)項(xiàng)目已經(jīng)獲得了來自全球行業(yè)支持者超過 3000 萬美元的資助。大量開源社區(qū)、DAO 和 超過50個(gè)主要區(qū)塊鏈生態(tài)系統(tǒng)正在積極使用 Dora 的基礎(chǔ)設(shè)施(DoraHacks.io)進(jìn)行開源融資和社區(qū)治理。
官網(wǎng):https://dorahacks.io/