• ./t20190928_926637_taonews.html
    專題
    首頁  >  專題  >  媒體視點  >  名刊精選  >  《科學畫報》

    《科學畫報》

    開博時間:2016-07-01 14:43:00

    由中國科學社于1933年8月創刊,距今已有80年的歷史。《科學畫報》在80年的辦刊歷程中,形成了通俗生動、圖文并茂地介紹最新科技知識,形式多樣地普及科學技術的特點,對提高廣大群眾的科學水平,啟發青年愛好科學、投身科學事業起了很大的作用,當今的不少著名學者、教授、科學家,青少年時代都曾受到它的熏陶和啟發。

    文章數
    分享到:

    艾麗斯和鮑勃傳密碼的故事

    2019-09-28 23:46:00

      艾麗斯想給鮑勃遞一張紙條,但不想讓馬洛里看見紙條上寫了些什么。“那么,我給他寫一串密碼吧。”艾麗斯想。

      寫成密碼仍然無法防止馬洛里偷窺。所幸,艾麗斯是密碼學的高手,她有足夠的本事,寫出一串馬洛里絕對看不懂的密碼。

      艾麗斯是個密碼專家。她其實也是計算機學家耳熟能詳的虛擬人物。艾麗斯、鮑勃,還有馬洛里,都是科學家為了方便描述密碼學原理而虛構出來的,他們經常出現在密碼學和計算機科學的論文里,用來指代現實世界中的發信人、收信人、黑客。

      為什么要發密碼

      當艾麗斯將她的信息傳給鮑勃時,她希望這條信息只能到達鮑勃手中,而不會被馬洛里竊取。即使馬洛里讀到了這條信息,她也看不懂。而且,艾麗斯希望鮑勃確知這條信息是艾麗斯發來的。

      這就是密碼術的三大目標:私密——只有鮑勃能讀到這條信息;安全——馬洛里無法接收或者讀懂它,也無法篡改它;認證——鮑勃確知信息來自艾麗斯。

      古老又簡單的密碼術

      很久以前,大多數人的日常生活是用不到密碼技術的,只有政府部門和軍隊才需要對信息保密。那時的密碼技術只是把字母打亂一下順序。

      一種有名的加密方法是凱撒加密法。根據歷史學家的描述,羅馬大帝凱撒在書寫機密文件時,會按照字母表的順序,把每一個字母換成它后面的第三個字母。比如,如果凱撒想書寫的是“A”,那么他實際寫下的是“D”;如果他想寫“Caesar”,他落筆的時候應該寫“Fdhydu”。這是一種很簡單的加密技術。通過這種加密技術,原本有意義的單詞變得毫無意義,讓人摸不著頭腦。

      數據安全的保護傘

      如今,隨著計算機和互聯網的普及,密碼技術的應用越來越廣泛。當我們鍵入登錄密碼的時候,發送電子郵件的時候,使用網上支付功能的時候,信息都需要經過加密才能傳送,否則,有些居心不良的黑客就會竊取這些信息。

      當然,加密技術也不能像凱撒加密法那樣簡單了,那太容易破譯了。為了加大破譯難度,科學家引入了“密鑰”的概念,這里面用到了大量數學知識。

      密鑰,正如它的字面意思,其作用恰如一把鑰匙。只有手握鑰匙的人才能“打開”這條信息。或者說,密鑰表示原信息和密碼之間的對應關系,只有知道這種對應關系的人,才能把一串毫無意義的數字還原回去。

      只要我們離不開互聯網,數字安全的重要性就不容忽視,密碼技術將繼續在日常生活中扮演重要角色。艾麗斯、鮑勃和馬洛里的故事還將繼續上演,下一代密碼技術也會出現。

      鏈接:用數學知識,玩一個密碼游戲

      在互聯網上,應用最廣泛的密碼技術是RSA加密法。按照RSA加密法,鮑勃手中有兩個密鑰,一個叫公鑰,這是一對整數,所有人都可見;另一個叫私鑰,這是一個整數,只有鮑勃自己知道,連艾麗斯也不知道這個數字。艾麗斯用公鑰給信息加密,鮑勃收到密碼之后再用私鑰解密。

      公鑰和私鑰是怎樣相互配合,完成加密和解密的呢?靠的是數學!現在,我們要用數學知識來玩一下這個密碼游戲了,你準備好了嗎?

      求模運算

      首先,我們要認識一種運算——求模運算。時間的計算就用到了求模運算。舉個例子,現在是上午10點,5小時之后你要去游泳館,所以你去游泳館的時間是下午3點,對不對?因為10+5=3,是嗎?咦,好像哪里不對勁,10+5明明等于15,怎么會等于3呢?那是因為小時的運算是12進制的,過了中午12點,下一小時就是1點了;12點之后的第三小時,也就是3點。12就是這次運算中的模數。如果用算式表達,可以寫成15≡3mod12(“≡”表示相等,跟等號差不多),意思是說,15除以12之后,余數是3,3就是這次求模運算的結果。求模運算有一個好處,世界上有無窮多的整數,但如果以12為模數求模,結果只會有12種:0,1,2,3,4……11(因為任何數字除以12的余數無外乎這11種結果)。如果把12換成一個更小的數字,比如5,那么結果就更少了,只有5種:0,1,2,3,4。

      找規律

      有時,對一個數字先乘方后求模,得到的結果居然是這個數字本身。不信?我們用mod 5來舉例。

      先來試試數字2。21=2≡2 mod 5; 22=4≡4 mod 5; 23=8≡3 mod 5; 24=16≡1 mod 5; 25=32≡2 mod 5; 26=64≡4 mod 5; 27=128≡3 mod 5; 28=256≡1 mod 5……發現規律了嗎?對于2這個數字,先乘方再求模的計算結果形成了一個循環:2-4-3-1-2-4-3-1……所以,當模數為5時,21的求模計算結果與25、29、213是一樣的,都是2;同理,22的求模結果與26、210也是一樣的,都是4。

      再來試試數字3。31=3≡3 mod 5; 32=9≡4 mod 5; 33=27≡2 mod 5; 34=81≡1 mod 5; 35=243≡3 mod 5……同樣可以得到一個循環:3-4-2-1-3-4-2-1……

      數字4也一樣。41=4≡4 mod 5; 42=16≡1 mod 5; 43=64≡4 mod 5; 44=256≡1 mod 5……我們得到的循環是4-1-4-1……

      你看,不管最初的數字是幾,它的5次方、9次方、13次方的求模結果(模數為5)都是它本身。數字2、3、4都符合這一規律。你也可以試試更大的數字,不過計算量有些大哦。

      加密和解密

      說回鮑勃的密鑰。他的公鑰有兩個整數,一個是求模運算的模數(用n表示),一個是乘方運算的指數(用e表示);他的私鑰也是一個整數,用d表示。n、d、e是鮑勃精心挑選的,它們滿足me×d=m mod n的條件,也就是說,對于任何數字m,經過e×d次方的乘方運算之后,再以n為模數求模,得到的結果仍然是m本身。

      舉個例子,假設鮑勃的公鑰是n=5,e=3,私鑰d=7。艾麗斯想向鮑勃發送數字“2”,那么她按照鮑勃的公鑰,計算出23=8≡3 mod 5,于是她向鮑勃發送了數字“3”。鮑勃用私鑰解密,37=2187≡2 mod 5,結果是2,正是艾麗斯想發送的數字。

      為什么會這樣?因為23×7=221,而按照我們上面找到的規律,221、217、213、29、25對5求模的結果都是2本身。

      有人可能會問,只要根據已知的n和e,算出d的數值,不就破譯這套密碼了嗎?理論上確實如此,但事實上幾乎不可能算出來。在實際應用中,n、d、e都是很大的數字,有好幾百位長,尤其是n,是由兩個巨大的素數相乘得來的,黑客必須對n進行因數分解,才能算出鮑勃的私鑰。除非能找到一種快速進行因數分解的新算法,否則,大數分解的計算量是相當驚人的,以現有普通計算機的計算能力,幾乎是不可能完成的任務。

    本文來自《科學畫報》

    上一篇: 《科學畫報》
    下一篇: 奇特的牙齒
    ©2011-2019 版權所有:中國數字科技館
    未經書面許可任何人不得復制或鏡像
    京ICP備11000850號 京公網安備110105007388號
    信息網絡傳播視聽節目許可證0111611號
    國家科技基礎條件平臺
    成人礼小说