PANews現場報導,12月7日,中科院數學物理學部王小雲院士在“區塊鏈技術與應用”科學與技術前沿論壇上演講時表示,目前我們國家急需搶先制訂物聯網、車聯網、區塊鏈、國產操作系統等密碼協議標準與技術規範,這些領域實事求是地講,我們跟任何一個國家是站在同一個起跑線上,我不認為其它國家比我們國家更先進,但是如果誰搶先,在這些領域制定出密碼算法的標準與協議,就是協議的標準,肯定相對來講還是比較領先的。
區塊鏈技術出來以後,從我們個人的觀望到投資者的熱情,到今天我們考慮它的技術創新,推動我們產業發展,我想這個過程有幾年的時間。大家都知道,最近密碼法已經出台了,密碼是保障網絡與信息安全的核心技術和基礎支撐,所有的關鍵問題都是數學問題,這是毫無疑問的。密碼領域比較特別,我對密碼領域的理解就是基礎數學、應用數學和技術應用是三個合併一體的,分不開的。
據官方信息,由中國科學院學部主辦、中國信息通信研究院等單位聯合支持的“區塊鏈技術與應用”科學與技術前沿論壇於2019年12月7日、8日在深圳舉辦。中國科學院信息技術科學部鄭志明院士、數學物理學部王小雲院士等四位院士發表主題演講,同時還有300餘名來自政府和企業界的代表出席會議,圍繞區塊鏈與數字身份、監管科技、金融應用等話題展開討論。
以下是演講全文,由主辦方審核:
王小雲:我也非常高興受院士的邀請,我是大會主席,但我最近因為太忙,沒幹這個工作。
尊敬的王市長、各位來賓:我今天的報告是從密碼技術的角度來介紹一下區塊鏈技術,這個報告我最近作了很多次,可能有一點點變化,但我還是想從底層技術層面介紹一下區塊鏈的密碼含義是在哪裡。
首先我介紹一下密碼學的重要性,對區塊鏈技術發表一點個人感想,區塊鏈技術出來以後,從我們個人的觀望到投資者的熱情,到今天我們考慮它的技術創新,推動我們產業發展,我想這個過程有幾年的時間。大家都知道,最近密碼法已經出台了,密碼是保障網絡與信息安全的核心技術和基礎支撐,所有的關鍵問題都是數學問題,這是毫無疑問的。密碼領域比較特別,我對密碼領域的理解就是基礎數學、應用數學和技術應用是三個合併一體的,分不開的。
大家也可以看出來,我們每一個技術的突破用了大量的基礎數據的研究方法和工具,我們突破了以後,基本上行業遍地都用。大家看一下我們的計算機通信系統,我們互聯網系統的主體系統的安全性都是用密碼系統保證的,所以密碼技術是通信系統和基礎設施融合在一起的,是分不開的技術。
我想大家知道,美國的微軟和IBM在80年代初期,它的密碼團隊是非常傑出的融合發展模式,我們國家我非常高興,今天我們也到了融合發展的階段。
今天我們所有的網絡,包含計算機、手機、衛星、物聯網,特別是物聯網,應該是一個國家能夠發展好新一代信息技術非常重要的環節,也使密碼技術提到更高的環節。另外還有大數據,雲計算等,現在我們的數據都上云了,但安全是怎樣的,我想大家都比較清楚。
密碼技術為什麼這麼重要,就是因為整個互聯網和各種網絡,我們的信息從產生到處理到傳輸,需要四個安全屬性:機密性,就是加密算法,這個很簡單。可認證性和不可抵賴性,這是數字簽名算法。還有完整性,就是防數據篡改的Hash函數,Hash函數是區塊鏈的起源性技術,也是密碼學的基本工具,為什麼說是一個基本工具,我舉個例子,我們的電子簽名對一個數據庫進行簽名,花100個小時簽名才結束,它一個是慢,100個小時,還不安全。大家就問:我們的數字簽名有什麼用呢?這麼慢、又不安全,怎麼辦呢? Hash函數,Hash函數對一個文件提煉出指紋就行了,它就可以把一百個小時變成一個小時,大家知道一百倍的提速,並且還是安全的,這就是區塊鏈技術,大家不要把區塊鏈技術想像得非常神秘。
Hash函數的電子簽名技術就是標準的區塊鏈技術,它是高效而安全的,它的一個基本的工具,今天我們的交易信息也可以達到這個效果,它是高效處理的,我們一秒鐘可以十個G左右的處理速度,高效處理,又是安全的,防數據篡改的,當然我們同步的時候還有好多分佈式系統,還有好多其它跟計算機系統融合在一起的發展模式。
密碼學的發展有兩大方向:第一個方向就是ENIGMA,1932年是數學方法,1939年是破譯機,導致西歐的戰場提前兩到三年結束,1949年Shannon提出是數碼學的圖像圖像, 1948年Shannon有兩篇論文。大家看這個公式可以看出來,一個密碼系統把密鑰破解了就完全破解了,求解密鑰的難度,就是一個攻擊者攻擊這些明文密文,它沒有任何的數學關係不要緊,對破解密鑰沒有任何影響。大家知道我們的傳統密碼裡面,ENIGMA密碼,我們的算法公開了,就意味著這個算法破解了。最早的密碼破解就是情報人員拿到了圖紙。
一個算法,1949年以前所有的密碼,算法公開以後全都可以破解了,這個公式意味著我們的算法要公開的,因為大家知道,情報人員是可以拿到算法的,所以在算法公開的情況下不能破解密鑰,這是數學難題的概念,雖然沒有提出來,但數學難題的概念已經隱含了。
到了1973年1976年,美國國家安全局形成了較為系統的對稱密碼理論體系,他們宣布算法公開,密碼破解難的,到1997年AES,DES是56的計算,大家我們我們的太空是57次計算,可以知道它的破解是高效的。
大家還知道,我們的比特幣,我們挖12.5個比特幣是特幣是270次計算,遠比單次破解的難度難,但是大家知道,10分鐘我們會得到12.5個比特幣,這是一個計算能力的提高對密碼學的影響。 AES128個比特幣,就意味著全球的計算資源,上千萬億年拿不出來,做不了,這是新一代密碼破解的安全難度。
對數學發展的研究最終發展到了密碼分析的自動化,再進一步就是人工智能的介入,所以這個領域,所有的密碼分析都可以轉化為商用密碼的特徵。我們的密碼學出來以後,一定要發展特別的體系,你的算法是否安全、系統是否安全,系統是否有漏洞,我們只能用自動化學習的方法來進行我們的商用密碼的特徵,這個領域我相信我們國家未來三到五年,這個領域可以發展起來。
還有一個領域是公鑰密碼學的發展,我們的計算機網絡是一到多的,互聯網時代一天一萬個人進行安全通信,密鑰通信,全是情報人員分佈密鑰。現在要對一萬個人進行安全通信,一萬個人的密鑰是要生成的,現在密碼學一秒鐘可以同時跟很多人建立安全頻道,跟每個人都可以修出一個安全的密鑰通道,攻擊者可以加入安全通信,但它拿不到我們的密鑰,我給對方可以生成共同的加密密鑰,這就是一到多的安全通信,我相信我們說一個網絡就是安全通信,這個領域就是對數問題,計算速率,算法速率的問題,代數幾何的問題,所以它涉及到很多領域的數學難題,這全是最難的數學問題。但是這些算法的研究當中,我們在分析算法安全性的時候,我們就要跟其它的數學領域結合,所以密碼學是一個多學科交叉的領域,研究的一個是數學難題,尤其是交叉的是多個領域,不僅是在這個領域,在更多的領域。
比如說有自動化的、有控制的等等,基本上都有這些領域,也包含人工智能的搜索。密碼應用推動多個基礎數學問題研究取得突破,極大地推動密碼產業的高速發展,在基礎數學的領域,好多數學難題一千多年發展不起來,但是密碼應用這些數學問題得到了很好的研究,並且作出了一些成果。
現在大家用了一些加密算法,SM3是我們國家的標準,也是RS的標準。
大家知道,我們的密碼算法設計了以後,每個算法是安全的,這個可以做到,但不可以用單一的算法保證一個系統,所以所有的計算機網絡通信系統要涵蓋多算法,要實現四大功能,大多數都有四個安全屬性,也就是需要三種密碼算法,都有。我們要建立一個傳輸層的安全通信協議,就是SSL、TLS協議,TLS是SSL的升級版,它是達到安全可控的。有一個信息洩露事件,大家一定不要認為是SSL出問題了,這個協議是非常安全的,但是在實現過程中出現了問題,也就是算法安全、協議安全、實現安全是保證整個系統是安全運營的,是這麼一個概念,實現不安全永遠是會導致非常可怕的攻擊。整個密碼領域,從算法的研究到協議的設計,到協議的運營是需要培養高水平的科技人才。網絡層是保證路由器安全的IPsec協議,無線局域網是WEP協議,它是行業標準,不是密碼學設計的,它出來以後很快被破解了,圖靈獎獲得者被破解了,現在的安全協議是安全的。手機通信是行業標準,是二級,不管是算法還是協議,很多漏洞,是各種攻擊方法都出現了,用了相當於沒用,看起來什麼都有,但都是不安全的。所以說到了3GPP(3rd,Generation Partnership Project),就是支持3G、4G、5G安全通信,不管是3G、4G、5G,只有公開拿出來讓大家研究的才是安全的,藏著的,到目前為止,事實證明沒有一個是安全的。所以大家一定要注意,如果你認為你的協議是安全的,你不妨拿出來讓大家公開分析,有漏洞不要緊,因為現在密碼設計的能力非常強,很短的時間就可以把漏洞補上,逐漸變成安全,所以怕的就是大家說安全,又不公開,那問題比較嚴重,如果內部的人知道,內部的人可以做一定的攻擊。
目前我們國家急需搶先制訂物聯網、車聯網、區塊鏈、國產操作系統等密碼協議標準與技術規範,這些領域實事求是地講,我們跟任何一個國家是站在同一個起跑線上,我不認為其它國家比我們國家更先進,但是如果誰搶先,在這些領域制定出密碼算法的標準與協議,就是協議的標準,肯定相對來講還是比較領先的。
這裡說一下,因為梅宏院士是做軟件研究的,我們的密碼領域,算法協議設計出來以後,軟件實現和硬件實現,硬件實現就是芯片實現,大家一定要注意,要做好抗攻擊的芯片實現,這個領域說實話比較難,我們國家這方面的優秀人才不多,大家可以找一找,你要說你的芯片是抗攻擊的,我可以看看你裡面有沒有這方面的人才,沒有這方面的人才肯定是虛假的。為什麼要抗特性的攻擊,大家知道所有的密碼算法和協議都基於數學難題,假定我們的軟件實現有一個bug,數學難題是非常容易破解的數學問題,如果我們注入了一個錯誤,數學難題變成簡單的數學問題,它需要抗特性的攻擊密碼芯片。十幾年前我有一個觀點,說有的密碼芯片是最高級的,因為其它的芯片不需要研究抗特性攻擊的能力,但是密碼芯片不行,因為它就是要依靠各種各樣的攻擊,包含物理手段的攻擊。
大家也可以看到,好多人說,密碼就是很難用,我們用起來很難,大家不要擔心,一秒鐘幾十G,SM3,我們設計的是2.17級,我看大家說一下,SM3比SHA同等條件下實現快10%,為什麼這邊是4.08,2.17,它是平台不一樣造成的,所以不要認為它就是慢,它就是快,因為同等條件我們會評估的,我們會在相同條件下評估兩個算法。如果同一個平台你實現了兩個G,我就知道你實現的不對,肯定是有問題的。因為我們在設計的時候就控制住,同等條件下要比SHA快10%。我就給大家說這麼一個概念,快速實現現在達到10G以上,大家不要擔心影響你的安全性。
公鑰密碼一秒鐘幾千次,大家也不要擔心,因為公鑰密碼傳輸的是密鑰,密鑰使用一年半年十年,按我們現在計算機破解的能力上千萬億年破不了。所以全球的計算機人員一定要注意,密鑰傳輸不需要老傳輸,就是開始傳輸一下就可以了,可以用很多年。
我再來說一下軟件實現,軟件實現就是白盒安全實現,現在一個領域發展起來了,它不可能做到理論安全,只能做到實踐安全,比如別人研究的白盒實現三個月破了,我們做的五年破不了,五年以後升級就可以了,是這麼一個概念,我們要達到實際安全。
密碼芯片一定要抗各種各樣的攻擊,這裡不多說了。
第二個我想講一下密碼Hash函數,就是區塊鏈的起源性技術。為什麼要有Hash函數的概念,1953年,IBM的一次歷史性討論,我們對數據庫的文件進行檢索,每個文件帶一個電子指紋,相當於人的指紋一樣,搜索的時候搜索指紋就把文件搜索起來了,非常簡單。 1981年,為避免電子簽名標準RSA等存在的偽造攻擊,由Davis和Price提出密碼Hash函數的概念,就是防止數據篡改,你的數據被篡改了,你的電子指紋一定要發生變化,就發現被篡改了,保證電子簽名是安全的。大家可以看出來,我們對於一份文件進行簽名,需要對它的指紋進行簽名就行了。我們的指紋是多長呢,128、160、192、256、384或512比特。所以非常高效,我們剛才說的,對一個數據庫簽名一百小時,現在一個小時就簽完了,還安全,何樂而不為。如果我們這個技術放在交易後台的管理,這麼高效安全的技術,何樂而不為呢,所以是值得推廣的一個技術。
大家知道,區塊鍊主要是實現防數據篡改的功能,目前防數據篡改只有兩三種方法,沒有任何其它的數據篡改的技術,只有三種技術:第一種技術就是攻擊者同時得到一個合同,100萬或2000萬的合同電子指紋是一樣的,它的簽名一定是一樣的。而100萬和2000萬哪個是真的哪個是假的,你不知道,我說的是這種攻擊。 256比特的電子指紋,全球計算資源上千萬億年不可能找到兩個文件電子指紋是相同的,這個大家不要擔心。
第二種攻擊是比特幣,大家一定要注意,你在學比特幣,你看這張片子就行了,其它的都不要看,比特幣就來了,只要會原像攻擊就會比特幣了。原像攻擊是怎樣的呢,給出一個電子指紋外,你找到一個原像M,M的電子指紋就是p、y,口令就行了,如果我的計算機存放的是Y,也就是動態的,我的電子指紋Y,口令猜出來的概率是多少呢?假如這個口令是256比特電子指紋,上千萬年是不可能成功實施原像攻擊的。但是這個y如果只規定70比特,對一個70比特的Y,我找一個M,只有r的70次計算,這是比特幣,也就是說我找一個Y,對應著70個比特的0,或者1都無所謂,Y是70比特,y的70次計算,全球是十分鐘就可以找到這個原像,我相信不可能所有人都在找比特幣,只有少數的在找比特幣,十分鐘就可以找到這個M,這個M就是比特幣,比特幣就產生了。
第二原像攻擊,攻擊者找到假的消息M2替換合法消息M1,但是替換的前提條件不是電子指紋,因為現在都是數據庫,在替換的情況下,必須要跟電子指紋相同才能合法應用,所以不是想替換就能替換,這時候也是破不了的。
Hash函數我跟大家說,我們的密碼算法如何能夠證明有數學難題,必須有可證明安全的技術,就是知識證明,我用知識證明證明這個密碼算法是安全的,在證明的過程中完成了加密和簽名功能,需要交互128次256次,按照今天的安全長度,最後大家都不干了,那怎麼辦,很不有效。用Hash函數,使用了Hash函數以後就比較好了,一次性就可以完成證明,所以這是Hash函數的概念,知識證明。
既然我們有高效的證明方法,有的密碼系統都要按照可證明安全,必須是用Hash函數,所有的密碼技術都是區塊鏈技術,因為必須是交互一百多次才能共,使用了Hash函數一次兩次三次四次五次,一般不超過五六次就完成了。所以我們所有的密碼系統都是區塊鏈技術,當時區塊鏈放在哪裡呢?是Hash函數的一個變量叫Blockchain,後來就是我們現在的Blockchain,最早是Hash函數迭代過程中的一個專業術語,它的從Hash函數提出來就有的概念,大家記住這是一個老概念。
現在我們好多密碼都離不開Hash函數。這就是Hash函數,我在1995年到1996年開始做Hash函數,大家可以看出來,1995年之前主要的Hash函數算法除了160沒有被破解以外,那五個都是我們首次給出碰撞攻擊,破解以後,當時SHA是2005年提出來的,它是後補的,它只有60個比特的指紋,SHA補了265、384、512比特的指紋,SHA就是破解以後新設立的標準。
MD5破解以後,發生了一個事件,偽造了一個數字證書,通過了瀏覽器的認證,這是2009年十大黑客技術之一,攻擊架構是我提出來的,毫無疑問,整個攻擊架構是我提供的。 2010年這個技術就到了一個火焰病毒,火焰病毒是目前為止認為最為複雜的一個網絡病毒。
這是新一代的Hash函數ISO、IEC標準。美國設計的的SHA-2,SHA-3,我們國家的SM3,目前我們國家的區塊鏈技術就是SM3了,國產化的區塊鏈已經使用了SHA-3,因為這是唯一的標準,還沒有其它的標準產生。
最後說一下區塊鏈技術起源,大家知道,Hash函數是任意的長度壓縮成一個定長,我們沒有想要的數學函數滿足要求,所以密碼學家Ralph Merkle在博士論文中首次描述Merkle-Damgard結構,第一次壓縮M1、M2,把所有的數據分塊壓縮,這是比特幣的結構,也是區塊鏈的早期數據結構。
中本聰提出的比特幣,找一個原像就是比特幣,很容易。這就是比特幣的區塊鏈結構,這就是區塊鏈結構,橫著的就是這兩條,只是M的長度有所變化,因為壓縮的過程是自由組合的,可長可短,M一定長,把好多M組合在一起,就是比較大的M,所以可以靈活搭配,橫的就是那個鏈,這裡面就是Hash函數的壓縮過程,這裡面就是真正的Hash函數,F就是MD5,正向的運算過程。這就是區塊鏈的數據結構。
比特幣的系統運行就是交易,交易結構是怎樣的,挖出12.5個比特幣就是一個交易,求出一個原像就是一個交易,我拿比特幣買了一件衣服是一個交易,我拿比特幣買了一些食品是一個交易,我有這個交易以後要全球廣播,廣播以後要在平台上廣播,廣播完了以後,大家同步把我的交易信息放在M裡面。大家一定要注意,這是交易信息進行壓縮,最後一步才是我搜的,M2一塊搜,前面都是全球一定時間內的交易信息,把交易信息都放在這裡面,有了交易新的再放進來,再搜出一個電子指紋,等於70個0,這等於新的比特幣就產生了,所以方法非常簡潔。最後驗證,研發合法性以後再進行挖礦,基本上這個過程。這個“?”就是比特幣。
分佈式系統得到了很好的利用,我們要進行共識協議,所有的數據達成一致,使用分佈式環境下用戶的數據達成一致,上世紀80年代有一個拜占庭共識協議,是分佈式計算研究領域的重要方向,為什麼區塊鏈能解決這個技術,所有的密碼算法,只有Hash函數有三個屬性,其它的算法屬性很少,並且想來就來,想走就走,非常靈活,所以為什麼去中心化,它沒有密鑰,但有了密鑰就可以去中心化。
它的一致性即所有的記錄是一樣的,就是分佈式系統,我們的區塊鏈增長速度要穩定,大家知道一個鏈,一個幣同時三個人挖出來和六個人挖出來誰是合法的呢?你挖完以後再挖第二個鏈第三個鏈,誰先挖到第六個鏈誰是合法的,所以必須是先挖六個鏈。區塊鏈要抵抗各種攻擊,我們2018年有兩篇區塊鏈的論文,山東大學有一篇,就是在一個小時十分鐘的延遲後,挖一個比特幣的延遲是安全的,目前有三類區塊鏈,一個是逆向的,正向的就是壓縮的過程,一秒鐘可以10G,誰的權重大,它就是建鏈的概率高。第二就是分佈式系統的拜占廷協議,數字簽名本身就是區塊鏈技術。
目前我們國家有一個供應鏈金融,有一個供應商,有一個採購商,採購商要採購一批貨物,要支付200萬,但它沒錢,從銀行貸款,傳統的就是銀行要檢測供應商的供應能力和信用能力,然後要檢查採購方的支付能力,可能半年才能放貸。但是區塊鍊鍊上一檢查,大家知道,我們任何一個信息上千萬年以上才能篡改,篡改不了。所以在鏈上一檢查就可以放貸了,非常高效。
這是疫苗,打了疫苗以後出問題,你可以看零售商、中間商、原材料商、生產商,每個環節都很清楚,非常便捷。
我的報告結束了,謝謝大家!