初談區塊鏈技術背後的理論基石:組合數學(離散數學)

2021-02-20 數學與人工智慧
區塊鏈當中一個重要分支就是密碼學。而密碼學當中涉及到相當的數學知識,比如:數論、初等數學、代數學、組合數學以及概率論等。若沒有一點數學基礎的話,密碼學的研究將是進行不通的。密碼學和數學的關係可謂深之又深,甚至可以說信息安全的很大一部分基石就是數學(密碼學是信息安全中的一部分)。學習和掌握一些數學知識是必要的,在此我主要分享一些有關於密碼學的數學知識。

組合數學(Combinatorial mathematics),又稱為離散數學。

現代數學可以分為兩大類:一類是研究連續對象的,如方程和分析學等等;另一類就是研究離散對象的數學,即離散數學(組合數學)。

有人稱廣義的組合數學就是離散數學,也有人認為離散數學是狹義的組合數學和圖論、代數結構、數理邏輯等的總稱。

註:廣義的組合數學就是離散數學;狹義的組合數學是離散數學除圖論、代數結構、數理邏輯等的部分。

以上只是不同學者在叫法上的區別(在此不是我們關注的重點)。隨著計算機科學的日益發展,組合數學的重要性越發突出,這很好理解,因為計算機科學的核心內容就是使用算法處理離散的數據(010101)。

組合數學不僅在基礎數學的研究中佔有重要地位,其在別的的學科中也有重要的應用,如計算機科學、編碼和密碼學、物理等學科中均有重要應用。

可以不誇張的說,組合數學的發展奠定了本世紀的計算機革命的基礎。計算機之所以可以被稱為電腦,就是因為計算機被人編寫了程序,而程序就是算法,在絕大多數情況下,計算機的算法是針對離散的對象,而不是在做數值計算。確切地說,組合數學是計算機出現以後迅速發展起來的一門數學分支,主要研究離散對象的存在、計數以及構造等方面問題。由於計算機軟體的促進和需求,組合數學已成為一門既廣博又深奧的學科,其發展奠定了本世紀的計算機革命的基礎,並且改變了傳統數學中分析和代數佔統治地位的局面。正是因為有了組合算法才使人感到,計算機好像是有思維的。

體現在大學計算機及信息安全相關的課程設置中,離散數學是專業基礎課,不但為後續課程提供必須的理論基礎,而且可以培養學生的抽象思維能力和解決問題的能力。離散數學的教學內容與計算機硬體和軟體都有著密切的關係,具有鮮明的基礎特點,不僅是密碼學、數據結構、資料庫原理、數字邏輯、編譯原理、人工智慧、信息安全等課程的重要課程,同時以計算機導論和程序設計基礎作為離散數學的先導課程。

另外需要強調的是,密碼學實際是一個交叉學科,其和數學、計算機科學和資訊理論的聯繫最為緊密。

組合數學中的代數系統理論包括代數系統的基本概念、半群、與獨異帶你、群、環與域、格與布爾代數。代數系統與密碼學聯繫非常緊密,其為密碼學提供了非常重要的數學基礎,是其不可分割的一部分。

組合數學是密碼學與計算機科學應用必不可少的理論和工具,其的應用是非常廣泛的。例如其數理邏輯在數學模型、計算機語義、人工智慧等方面的應用。集合論在資料庫技術中的應用。代數系統在信息安全中的密碼學方面的應用,圖論在信息檢索、網線布線、指令系統優化等方面的應用。

現對其中代數系統理論在密碼學中的應用,進行舉例說明。

在密碼學中,凱撒密碼是一種最簡單且最廣為熟知的一種加密技術,其是一種簡單的基於替換原理的加密技術。凱撒密碼將明文中的所有字母都在字母表上進行向後(或者向前)的偏移移動,當然這是有一個固定數目的,而這個固定數目是根據個人的選擇進行的。由此偏移,明文被替換稱密文。而上述的固定數目的偏移量,即是凱撒密碼中的加解密密鑰 K。比如,偏移量為3,字母A將被字母D替換,而其中的 K 為3,即密鑰是3。其它的字母加密以此類推即可。解密的時候倒推回去,即可。

在代數系統理論中,群是一種典型的代數系統,其具有封閉性、可結合性、含有單位元以及每個元素都具有逆元等性質。所以,可以說凱撒密碼從本質上說就是一個特殊的群,其是建立在26個字母之上,字母與密鑰進行運算的剩餘模群。通過對群理論的學習可以更助於理解凱撒密碼的本質。

再比如公鑰密碼學中,費馬小定理和歐拉定理提供了數學上的安全性保障。通過對於費馬小定理的原理和正確性的理解可以更好的理解算法的安全性,在實際應用中更好的應用。

還有密碼學中的橢圓曲線密碼,其是基於橢圓曲線的一種公鑰密碼算法。其密碼安全性是基於橢圓曲線離散對數的困難性之上的,是一個有限域上橢圓曲線的阿貝爾群,毫無疑問,代數系統理論中群和域的學習對於理解橢圓曲線密碼是有幫助的。

另外一些應用,棋盤密碼、希爾密碼、Walsh譜。

接下來,我們談一下離散數學與其它學科的關係。

1)離散數學與數據結構的關係

離散數學與數據結構的關係非常緊密,數據結構課程描述的的對象有四種,分別是線形結構、集合、樹形結構和圖結構,這些對象都是離散數學研究的內容。線形結構中的線形表、棧、隊列等都是根據數據元素之間關係的不同而建立的對象,離散數學中的關係就是研究有關元素之間的不同關係的內容;數據結構中的集合對象以及集合的各種運算都是離散數學中集合論研究的內容;離散數學中的樹和圖論的內容為數據結構中的樹形結構對象和圖結構對象的研究提供了很好的知識基礎。

2)離散數學與資料庫原理的關係

資料庫原理研究中的資料庫類型有一種是關係資料庫。關係資料庫中的關係演算和關係模型需要用到離散數學中的謂詞邏輯的知識;關係資料庫的邏輯結構是由行和列構成的二維表,表之間的連接操作需要用到離散數學中的笛卡兒積的知識,表數據的查詢、插入、刪除和修改等操作都需要用到離散數學中的關係代數理論和數理邏輯中的知識。

3)離散數學與數字邏輯的關係

數字邏輯為計算機硬體中的電路設計提供了重要理論,而離散數學中的數理邏輯部分為數字邏輯提供了重要的數學基礎。在離散數學中命題邏輯中的聯結詞運算可以解決電路設計中的由高低電平表示的各信號之間的運算以及二進位數的位運算等問題。

4)離散數學與編譯原理的關係

編譯原理和技術是軟體工程技術人員很重要的基礎知識,編譯程序是非常複雜的系統程序。其包括詞法分析、語法分析、語義分析、中間代碼生成、代碼優化、目標代碼生成、依賴機器的代碼優化等7個階段。離散數學中的計算模型中的語言和文法、有限狀態機、語言的識別和圖靈機等知識點為編譯程序中的詞法分析和語法分析提供了理論基礎。

5)離散數學與人工智慧的關係

離散數學中數學推理和布爾代數章節中的知識為早期的人工智慧研究領域打下了良好的數學基礎。謂詞邏輯演算為人工智慧學科提供了一種重要的知識表示方法和推理方法。此外,模糊邏輯的概念也應用於人工智慧。

6)離散數學與信息安全、密碼學的關係

離散數學和信息安全與密碼學的應用也關係密切,離散數學中的代數系統和初等數論為密碼學提供了重要的數學基礎,例如凱撒密碼的本質就是使用了代數系統中的群的知識,初等數論中的歐拉定理和費馬小定理為著名的RSA公鑰密碼體系提供了最直接的數學基礎。

1)數理邏輯的應用

數理邏輯是用數學方法研究思維規律的一門學科,包括命題邏輯、謂詞邏輯和推理理論等知識點。命題邏輯中的聯結詞廣泛應用在大量信息的檢索、邏輯運算和位運算中。

比如,目前大部分網頁檢索引擎都支持布爾檢索,使用NOT、AND、OR等聯結詞進行檢索有助於快速找到特定主題的網頁;信息在計算機內都表示為0或1構成的位串,通過對位串的運算可以對信息進行處理,計算機字位的運算與邏輯中的聯結詞的運算規則是一致的,掌握了聯結詞的運算為計算機信息的處理提供了很好的知識基礎。

在計算機硬體設計中,使用了聯結詞完備集中的與非和或非,使用與非門和或非門設計邏輯線路,替代了之前的非門、與門和或門的組合,優化了邏輯線路。

謂詞邏輯可以表示關係模型中的關係操作。

推理理論可以應用到計算機語義的理解中,在推理理論中驗證某理論的邏輯正確性時首先需要將其形式化,這樣在邏輯推理時就直接使用邏輯規則進行推理而不需要理會其具體含義了,在計算機語義中,也可以將其形式化,藉助推理理論的方法進行計算機語義的理解。

2)集合論的應用

集合是由各種不同元素構成的,並用統一的方法來處理的對象,集合論包括集合代數、關係和函數等知識點。集合代數中的集合的性質和集合的運算主要是為其他學科提供數學基礎,現實世界中的數字、符號、圖像、語音、視頻等各種信息都可以作為數據存放到計算機進行處理,這些數據就構成集合。

關係是一種特殊的集合,它反映了研究對象之間的聯繫與性質,例如關係資料庫模型中,每個資料庫都是一個關係,在電腦程式中輸入和輸出就構成一個二元關係。

等價關係和偏序關係廣泛的存在於實際應用中,例如利用偏序的知識可以解決調度中的最優調度問題;在軟體工程的軟體測試方法中有一種等價類劃分的方法,即將所有待測試的數據構成的集合劃分為符合軟體需求規格和設計規定的有效等價類和不符合的無效等價類,因為每個等價類中只需要取一個數據代表其所在等價類的其他數據進行測試,所以大大提高了軟體測試的效率。函數的應用比較廣泛,例如在密碼學中的應用,公鑰系統中的原理是基於單向陷門函數,單向陷門函數滿足3個條件:

(1)對於屬於定義域的任意一個 x,可以很容易算出 F(x)=y 

(2)對於幾乎所有屬於值域的任意一個 y ,則在計算上除非獲得陷門,否則不可能求出 x ,使得 x=F-1(y) 

(3)若有一額外數據 z(稱為陷門),則可以很容易的求出 x=F-1(z) 。

單向陷門函數與單向函數的差異在於可逆與不可逆。若單向陷門函數存在,則任何單向陷門函數均可用來設計公開密鑰密碼系統。同時,若單向函數滿足交換性,則單向函數也可能用來設計公開密鑰密碼系統。

3)代數系統的應用

代數系統研究的是集合、該集合中元素的運算和一些特殊元素,其中群是一種特殊的代數系統,具有可結合、有單位元、每個元素都有逆元等性質。凱撒密碼系統的原理是將字母表的字母右移 n 個位置,n 即是密鑰(key)。

然後對字母表長 L 作模運算,加密形式為:c=(m+n)modl,解密形式為:m=(c-n)modl。其實凱撒密碼就是建立在26個字母之上,字母與密鑰 key 運算的剩餘模群。

橢圓曲線加密算法是利用橢圓曲線離散對數問題,橢圓曲線離散對數問題定義如下:給定素數 p 和橢圓曲線 E,對 Q=kP ,在已知 P,Q 的情況下求出小於 p 的正整數 k ,由於已知 k 和 P 計算 Q 比較容易,而由 Q 和 P 計算 k 則比較困難,至今沒有有效的方法來解決這個問題,這正是該加密算法的原理所在。

4)圖論的應用

圖論在計算機領域的應用廣泛,例如利用哈密頓圖求最短路徑問題和旅行商最優問題,利用哈夫曼算法對指令系統優化以及提高通信效率等問題。在計算機體系結構中,指令系統的優化非常重要,因為可以提高整個計算機系統的性能,指令系統的優化方法很多,其中一種就是對指令的格式進行優化,是指用最短的位數來表示指令的操作碼和地址碼,使程序中的指令的平均字長最短,可以使用哈夫曼算法對指令的格式進行優化,利用哈夫曼算法可以構造出最優二叉樹,而二叉樹的權是最小的,即可以實現指令的平均字長最短。同樣的原理利用哈夫曼算法構造最優二叉樹可以解決通信中傳輸二進位數最優效率的問題。

組合數學(離散數學)在密碼學及計算機科學領域的作用非常重要,密碼學及計算機科學普遍採用離散數學中的一些概念、知識點和研究方法。離散數學不但為密碼學和計算機科學提供必要的理論基礎,還在計算機學科中有著廣泛的應用(上述只是部分而非全部),隨著研究的深入相信會有更多的應用出現。

相關焦點

  • 讀透區塊鏈系列篇4-區塊鏈中的「馬斯洛需求層次」模型|火星號精選
    數學層這一層為區塊鏈的最底層,對區塊鏈的影響是最為根本的,這一層發生的任何突破都會對上面四層產生影響。因為說到底,區塊鏈技術是構建在數字網絡上的。屬於虛擬的非物質世界,最為底層的表達是數字,從這個角度說,任何技術的背後都是數學,一個技術的邊界也可以理解為數學的邊界。
  • 區塊鏈的三個「天然缺陷」|區塊鏈技術|算法|程式語言|哈希_網易科技
    我們總是會把區塊鏈技術「完美化」,殊不知,在經濟學家、密碼學家、計算機科學家眼中,區塊鏈技術還有很多需要改進的地方。例如《區塊鏈核心技術開發與應用》就認為目前區塊鏈技術在數學工具、博弈論、密碼學、代碼存在局限性的情況下,還有很大的改進空間。換言之區塊鏈技術要想被大規模商用,還有很長的路要走。那麼,目前的區塊鏈還存在什麼不完美的地方呢?
  • 區塊鏈中的數學(四十一)
    區塊鏈中,大部分的共識算法,無論是 POW、POS,或是由他們衍生出來的 DPOS,都需要選出一堆或者一個節點來參與共識或者打包區塊,這個過程雖然會有持幣情況、設備配置、信譽等各種因素影響,但必須是隨機的、無法被預測的。這時候就可能會用到隨機算法。
  • 全面認知區塊鏈的科學特徵
    小編:記得關注哦 來源:數字資產研究院CIDA 他指出,區塊鏈不僅是技術,而且是科學。並且,區塊鏈是一門綜合科學,涉及數學、密碼學、計算機科學、量子計算等。相關學科並沒有窮盡,很可能存在尚未被發現的學科。
  • 數學強則國強,「組合數學」告訴我們:「人工智慧」時代真的來臨
    17-19世紀的英國、德國、法國等世界強國,它們同樣是「數學強國」。而今天,在美國成為世界霸主的背後,其實也正是以強大的數學實力作為支撐的。正如拿破崙所說:「一個國家只有數學蓬勃的發展,才能展現它國力的強大。數學的發展和國家繁榮昌盛密切相關。」
  • 資訊時代的組合數學
    組合數學概述組合數學,又稱為離散數學,但有時人們也把組合數學和圖論加在一起算成是離散數學。組合數學是計算機出現以後迅速發展起來的一門數學分支。計算機科學就是算法的科學,而計算機所處理的對象是離散的數據,所以離散對象的處理就成了計算機科學的核心,而研究離散對象的科學恰恰就是組合數學。組合數學的發展改變了傳統數學中分析和代數佔統治地位的局面。
  • 記帳的權力——論區塊鏈的數學共識及與人類社會的構建
    我們一致認為區塊鏈正開啟偉大的數字時代。區塊鏈使二維的信息互聯變成了三維、四維的價值互聯。在區塊鏈時代,每個個人都有權安全的保有自己的已確權的數據、隱私,並可通過區塊鏈交易自己的數據,產生新的價值。張院士更進一步提出他的觀點:「In Math We Trust。」他認為在人類所有的知識中,最容易達到共識的是數學。
  • 王小雲院士:密碼學是區塊鏈技術的起源
    科技日報記者 劉傳書12月7日,由中國科學院學部主辦、中國信息通信研究院等單位聯合支持的「區塊鏈技術與應用」科學與技術前沿論壇在深圳舉辦。中國科學院信息技術科學部鄭志明院士、數學物理學部王小雲院士等四位院士發表主題演講,同時還有300餘名來自政府和企業界的代表出席會議,圍繞區塊鏈與數字身份、監管科技、金融應用等話題展開討論。中國科學院院士、清華大學高等研究院「楊振寧講座」教授、國際密碼協會會士(IACR Fellow)王小雲院士,在大會上進行了主題為「Hash函數與區塊鏈技術」的開幕報告。
  • 「九章」問世 量子計算將如何影響區塊鏈技術
    12月14日,數字資產研究院學術與技術委員會主席朱嘉明在2020年年會上表示,量子科學是未來十年最大的變量,量子技術是數字時代的基石,量子科學決定未來經濟。「人類全方位進入到科技主宰經濟,科技資本整合金融資本和產業資本的新時代。」
  • 《區塊鏈簡史》:用故事能講清楚的道理,幹嘛要用數學呢
    &nbsp&nbsp&nbsp&nbsp當打開手頭這本《區塊鏈簡史》的時候,隨手就翻到了「區塊鏈原理」一章,裡面介紹分布式系統創造者萊斯利 蘭伯特的那一段,立刻就吸引了我的興趣。
  • 推薦 | 離散數學(第八版)
    譯 者 序      離散數學是伴隨著計算機科學技術一起成長與發展起來的一個研究離散量所具有的結構和相互關係的數學學科,是現代數學的一個重要分支。離散數學的研究包含了來自很多不同學科領域的知識,能夠將這些重要的思想組織並整理在一起,並對計算機科學的發展產生巨大的推動作用,確實是一件意義重大的事情。與任何數學知識的學習一樣,離散數學的學習可能也容易讓人感到枯燥和冗長。
  • 《離散數學》知識回顧
    離散數學是現代數學的一個重要分支,計算機科學與技術一級學科的核心課程,是整個計算機學科的專業基礎課。
  • 【離散數學 | 數理邏輯之命題邏輯】命題邏輯的推理理論
    「內容整理自:1、傅彥版《離散數學及其應用》;2、電子科技大學王麗傑老師的授課:https://www.bilibili.com
  • 「區塊鏈100分」第三十三期——《數字經濟介紹,區塊鏈與數字經濟...
    首先,在區塊鏈的技術圈子裡,幾乎沒有人不知道《區塊鏈技術指南》這部書,此乃鄒均博士的大作。作為一個海歸博士,在技術的理論上的造詣,已經到達了這樣的程度,他還參與發起了2018國際區塊鏈數學科學會議——這個在國內可謂是登峰造極的程度。鄒均博士我們去年一起寫了《區塊鏈+賦能數字經濟》一書,今年也在一起推進了英文版的工作,我先說這麼多,有請鄒均博士。
  • 「離散數學」是一門什麼樣的學科
    以學習數理邏輯為目的學習離散數學,而一般的以學習計算機為目的的學習還是有相當的不同,最大的不同就是:以數理邏輯為目的的學習,應當以「證明」 — — 形式證明為目的,這其中包括了關於形式證明的理論 — — 一階理論的句法和語義,以及關於形式證明的實踐 — — 證明框架和策略。
  • 「離散數學」是一門理論抽象、結構嚴謹的計算機專業基礎課程
    「離散數學」是一門理論抽象、內容廣泛、結構嚴謹的計算機專業基礎課程,它的特點主要表現為概念多、內容散且抽象。比如說對於(R,+)這個代數系統,如果不知道什麼是么元和逆元,那就不知道怎樣判定該代數系統中是否有么元和逆元,也就不知道它屬於哪一種代數系統,所以對於離散數學中的一些基本概念和基本理論要有充分的認識。
  • 中科院院士鄭志明:下一代區塊鏈技術的核心是三元平衡尋優問題
    本次大會集齊五位中國科學院院士,以及多位專家學者、金融機構技術負責人,就區塊鏈的技術理論、發展現狀和金融領域的落地應用等多個方面展開主題演講。其中,中國科學院院士、軟體開發環境國家重點實驗室主任鄭志明以「區塊鏈技術與發展」為題進行了7日當天閉幕報告的演講。
  • 哈希函數--區塊鏈的back bone
    但是理論上來講,哈希值重複的情況是存在的,我們稱這種情況為衝突,因為你想啊, 這個輸入是無限的,你可以輸入任何數據,大的小的都行。 而這個輸出,哈希值它是有限的。(32位字母和數字的組合,組合的次數是有限的)但是這個數字是很大的,如果你要找到sha-256哈希值重複的這種情況,就是試2的130次方的輸入,這個數字是一個天文數字,我的電腦都打不出來。
  • 氣壓計、區塊鏈與社會技術系統
    半個世紀之後,英國的組織管理學家崔斯特(E.L.Trist)提出「必須把企業中的社會系統同技術系統結合起來考慮,而管理者的一項主要任務就是要確保這兩個系統相互協調。」這就是著名的「社會技術系統」(Socio-technial System)理論。
  • 香港科大教授汪揚:一位數學家眼中的區塊鏈技術
    在本次訪談中,主要圍繞大數據、人工智慧和區塊鏈等話題與教授進行了交流。本期嘉賓介紹汪揚教授本科畢業於中國科技大學,畢業後在哈佛大學菲爾茲獎得主David Mumford教授的指導下研究計算機視覺理論,並於1990年獲得哈佛大學數學博士學位。汪揚教授曾任喬治亞理工學院教授,密西根州立大學系主任。