加密和黎曼猜想
A. 黎曼猜想是什麼
黎曼猜想具體內容
黎曼觀察到,素數的頻率緊密相關於一個精心構造的所謂黎曼zeta函數ζ(s)的性態。黎曼假設斷言,方程ζ(s)=0的所有有意義的解都在一條直線上。這點已經對於開始的1,500,000,000個解驗證過。
黎曼ζ 函數 ζ(s) 是級數表達式
(1)加密和黎曼猜想擴展閱讀:
黎曼猜想的提出:
黎曼猜想是波恩哈德·黎曼1859年提出的,這位數學家於1826年出生在當時屬於漢諾威王國的名叫布列斯倫茨的小鎮。1859年,黎曼被選為了柏林科學院的通信院士。作為對這一崇高榮譽的回報,他向柏林科學院提交了一篇題為「論小於給定數值的素數個數」的論文。這篇只有短短八頁的論文就是黎曼猜想的「誕生地」。
黎曼那篇論文所研究的是一個數學家們長期以來就很感興趣的問題,即素數的分布。素數又稱質數。質數是像2、5、19、137那樣除了1和自身以外不能被其他正整數整除的數。這些數在數論研究中有著極大的重要性,因為所有大於1的正整數都可以表示成它們的乘積。
從某種意義上講,它們在數論中的地位類似於物理世界中用以構築萬物的原子。質數的定義簡單得可以在中學甚至小學課上進行講授,但它們的分布卻奧妙得異乎尋常,數學家們付出了極大的心力,卻迄今仍未能徹底了解。
黎曼論文的一個重大的成果,就是發現了質數分布的奧秘完全蘊藏在一個特殊的函數之中,尤其是使那個函數取值為零的一系列特殊的點對質數分布的細致規律有著決定性的影響。那個函數如今被稱為黎曼ζ函數,那一系列特殊的點則被稱為黎曼ζ函數的非平凡零點。
有意思的是,黎曼那篇文章的成果雖然重大,文字卻極為簡練,甚至簡練得有些過分,因為它包括了很多「證明從略」的地方。而要命的是,「證明從略」原本是應該用來省略那些顯而易見的證明的,黎曼的論文卻並非如此,他那些「證明從略」的地方有些花費了後世數學家們幾十年的努力才得以補全,有些甚至直到今天仍是空白。
但黎曼的論文在為數不少的「證明從略」之外,卻引人注目地包含了一個他明確承認了自己無法證明的命題,那個命題就是黎曼猜想。黎曼猜想自1859年「誕生」以來,已過了150多個春秋,在這期間,它就像一座巍峨的山峰,吸引了無數數學家前去攀登,卻誰也沒能登頂。
有人統計過,在當今數學文獻中已有超過一千條數學命題以黎曼猜想(或其推廣形式)的成立為前提。如果黎曼猜想被證明,所有那些數學命題就全都可以榮升為定理;反之,如果黎曼猜想被否證,則那些數學命題中起碼有一部分將成為陪葬。
B. 震驚學界!張益唐被曝已證明黎曼猜想相關問題,會對現代加密技術有何影響
據媒體報道,張益唐已經證明黎曼猜想相關的問題,這確實是震驚學界的事情,對於現代加密的技術肯定也會有很大的影響。這則消息是張益唐參加北京大學,他的校友在線上會議所描述的。這個爆料在數學界來說也是轟動不已,微博博主以及物理知識,他們都認為張益唐是證明的存在,有讓人很驚訝的新聞。真的會傾向於張益唐的所有的證明,這就是大家比較信服的結論。
雖然張益唐對國家的技術發展有很大的幫助,但是看到這些的時候,自己也是不懂得不管怎麼樣,也希望祝福他的成功。因為有大家的支持,相信張益唐也會獲得更大的成就。一個優秀的人,他不僅能夠讓自己的國家越來越進步,而且也會讓大家不斷的學習他這種精神,簡直就是大家心目中的棟梁。
C. 高中生如何理解比特幣加密演算法
加密演算法是數字貨幣的基石,比特幣的公鑰體系採用橢圓曲線演算法來保證交易的安全性。這是因為要攻破橢圓曲線加密就要面對離散對數難題,目前為止還沒有找到在多項式時間內解決的辦法,在演算法所用的空間足夠大的情況下,被認為是安全的。本文不涉及高深的數學理論,希望高中生都能看懂。
密碼學具有久遠的歷史,幾乎人人都可以構造出加解密的方法,比如說簡單地循環移位。古老或簡單的方法需要保密加密演算法和秘鑰。但是從歷史上長期的攻防斗爭來看,基於加密方式的保密並不可靠,同時,長期以來,秘鑰的傳遞也是一個很大的問題,往往面臨秘鑰泄漏或遭遇中間人攻擊的風險。
上世紀70年代,密碼學迎來了突破。Ralph C. Merkle在1974年首先提出非對稱加密的思想,兩年以後,Whitfield Diffie和Whitfield Diffie兩位學者以單向函數和單向暗門函數為基礎提出了具體的思路。隨後,大量的研究和演算法涌現,其中最為著名的就是RSA演算法和一系列的橢圓曲線演算法。
無論哪一種演算法,都是站在前人的肩膀之上,主要以素數為研究對象的數論的發展,群論和有限域理論為基礎。內容加密的秘鑰不再需要傳遞,而是通過運算產生,這樣,即使在不安全的網路中進行通信也是安全的。密文的破解依賴於秘鑰的破解,但秘鑰的破解面臨難題,對於RSA演算法,這個難題是大數因式分解,對於橢圓曲線演算法,這個難題是類離散對數求解。兩者在目前都沒有多項式時間內的解決辦法,也就是說,當位數增多時,難度差不多時指數級上升的。
那麼加解密如何在公私鑰體系中進行的呢?一句話,通過在一個有限域內的運算進行,這是因為加解密都必須是精確的。一個有限域就是一個具有有限個元素的集合。加密就是在把其中一個元素映射到另一個元素,而解密就是再做一次映射。而有限域的構成與素數的性質有關。
前段時間,黎曼猜想(與素數定理關系密切)被熱炒的時候,有一位區塊鏈項目的技術總監說橢圓曲線演算法與素數無關,不受黎曼猜想證明的影響,就完全是瞎說了。可見區塊鏈項目內魚龍混雜,確實需要好好洗洗。
比特幣及多數區塊鏈項目採用的公鑰體系都是橢圓曲線演算法,而非RSA。而介紹橢圓曲線演算法之前,了解一下離散對數問題對其安全性的理解很有幫助。
先來看一下 費馬小定理 :
原根 定義:
設(a, p)=1 (a與p互素),滿足
的最下正整數 l,叫作a模p的階,模p階為(最大值)p-1的整數a叫作模p的原根。
兩個定理:
基於此,我們可以看到,{1, 2, 3, … p-1} 就是一個有限域,而且定義運算 gi (mod p), 落在這個有限域內,同時,當i取0~p-2的不同數時,運算結果不同。這和我們在高中學到的求冪基本上是一樣的,只不過加了一層求模運算而已。
另一點需要說明的是,g的指數可以不限於0~p-2, 其實可以是所有自然數,但是由於
所以,所有的函數值都是在有限域內,而且是連續循環的。
離散對數定義:
設g為模p的原根,(a,p) = 1,
我們稱 i 為a(對於模p的原根g)的指數,表示成:
這里ind 就是 index的前3個字母。
這個定義是不是和log的定義很像?其實這也就是我們高中學到的對數定義的擴展,只不過現在應用到一個有限域上。
但是,這與實數域上的對數計算不同,實數域是一個連續空間,其上的對數計算有公式和規律可循,但往往很難做到精確。我們的加密體系裡需要精確,但是在一個有限域上的運算極為困難,當你知道冪值a和對數底g,求其離散對數值i非常困難。
當選擇的素數P足夠大時,求i在時間上和運算量上變得不可能。因此我們可以說i是不能被計算出來的,也就是說是安全的,不能被破解的。
比特幣的橢圓曲線演算法具體而言採用的是 secp256k1演算法。網上關於橢圓曲線演算法的介紹很多,這里不做詳細闡述,大家只要知道其實它是一個三次曲線(不是一個橢圓函數),定義如下:
那麼這里有參數a, b;取值不同,橢圓曲線也就不同,當然x, y 這里定義在實數域上,在密碼體系裡是行不通的,真正採用的時候,x, y要定義在一個有限域上,都是自然數,而且小於一個素數P。那麼當這個橢圓曲線定義好後,它反應在坐標系中就是一些離散的點,一點也不像曲線。但是,在設定的有限域上,其各種運算是完備的。也就是說,能夠通過加密運算找到對應的點,通過解密運算得到加密前的點。
同時,與前面講到的離散對數問題一樣,我們希望在這個橢圓曲線的離散點陣中找到一個有限的子群,其具有我們前面提到的遍歷和循環性質。而我們的所有計算將使用這個子群。這樣就建立好了我們需要的一個有限域。那麼這里就需要子群的階(一個素數n)和在子群中的基點G(一個坐標,它通過加法運算可以遍歷n階子群)。
根據上面的描述,我們知道橢圓曲線的定義包含一個五元祖(P, a, b, G, n, h);具體的定義和概念如下:
P: 一個大素數,用來定義橢圓曲線的有限域(群)
a, b: 橢圓曲線的參數,定義橢圓曲線函數
G: 循環子群中的基點,運算的基礎
n: 循環子群的階(另一個大素數,< P )
h:子群的相關因子,也即群的階除以子群的階的整數部分。
好了,是時候來看一下比特幣的橢圓曲線演算法是一個怎樣的橢圓曲線了。簡單地說,就是上述參數取以下值的橢圓曲線:
橢圓曲線定義了加法,其定義是兩個點相連,交與圖像的第三點的關於x軸的對稱點為兩個點的和。網上這部分內容已經有很多,這里不就其細節進行闡述。
但細心的同學可能有個疑問,離散對數問題的難題表現在求冪容易,但求其指數非常難,然而,橢圓曲線演算法中,沒有求冪,只有求乘積。這怎麼體現的是離散對數問題呢?
其實,這是一個定義問題,最初橢圓曲線演算法定義的時候把這種運算定義為求和,但是,你只要把這種運算定義為求積,整個體系也是沒有問題的。而且如果定義為求積,你會發現所有的操作形式上和離散對數問題一致,在有限域的選擇的原則上也是一致的。所以,本質上這還是一個離散對數問題。但又不完全是簡單的離散對數問題,實際上比一般的離散對數問題要難,因為這里不是簡單地求數的離散對數,而是在一個自定義的計算上求類似於離散對數的值。這也是為什麼橢圓曲線演算法採用比RSA所需要的(一般2048位)少得多的私鑰位數(256位)就非常安全了。