人總是喜愛保守一些私密不為他人所知;由個人小事乃至國家大事,自古皆然。就個人而言,從小我們就有這種傾向,這可從小時候玩的各種遊戲窺見一二;有時是互遞紙條、有時是交頭接耳、有時是竊竊私語,而保守秘密的對象則是父母、兄弟姊姊'' 同學朋友或老師。就王及眾將領使用一些最基本的密碼方法來跟他們的部隊聯絡,為的是防止敵方知道他們的重要軍事清息。 隨著社會的進步,私人、公司與國家的權益變得更機密更敏感,所以使用更精巧細膩的方法來保護資料的需求與日俱增。現在,資訊的世代就活現在我們眼前,此種需求當然比以往更加顯著。當世界變的更密不可分時,人們對資訊及電子服務的需求就會不斷的加增,而更多的需求帶來對電子系統更大的依賴。目前,透過網際網路來交換重要資訊,如信用卡號碼者,已是司空見慣且極為平常。所以保護資料與電子系統之安全,對我們的生活方式而言,也是不可缺少的一環。 保護資料所需的技巧,說來是精彩絕倫且令人拍案叫絕,一般將其歸屬於密碼術的領域。 在過去三十年,這是一個相當活躍的研究領域;特別是個人電腦普及化以來,更是銳不可當。近代密碼術可說是奠基於數學、電腦科學及聰明智上一門學科,而其程度既深且厚。 本書乃多年來作者在東海大學教授數論之應用及密碼學導引等課程所發展出來的一套入門教材,盡量以生動活潑有趣的手筆來引發學習者的興趣及其潛能。首先吹響「密碼學之旅」序曲,籍此凝聚旅遊者之注意力,從而開始著手打點其出遊之行囊、裝備其基本數論和傳統密碼方面的預備知識並在當其糾正一些先入為止的錯誤觀念。接著我們探究公鑰密碼觀念之孕育的歷史過程,希望能從當中體會到構思如何究破困境扺達「柳暗花明又一村」的點點滴滴。在此基礎之下,最後我們譜出公鑰密碼系統的五大樂章: 第一樂章為RSA公鑰密碼,根基於眾所周知的分解因數, 第二樂章為艾爾給默(ElGamal)公鑰密碼,根基於離散對數, 第三樂章為數位簽署,乃公鑰密碼系統誕生的動機並摧生者, 第四樂章為橢圓曲線公鑰密碼,根基於橢圓曲線版的離散對數, 第五樂章麥艾里斯(McEliece)公鑰密碼,根基於編碼理論。其間並穿插介紹秘密分享的技巧與電話賭的設計,共譜一首美妙非凡的「密碼學之旅」交響曲。所牽涉到的數學應該是大多數的高中學生以及所有的大專院校的學生都可以接受理解的。所以,現在就讓我們歡欣上路,用我們有限的理性來探討那深藏無限奧秘而又豐盛無比的真理,展開這趟令人興奮無比的密碼學之旅。
目錄
第一章序曲1.1憶兒時1.2一個簡單的例子1.3安全性可慮?1.4來自數論的靈感1.5計算之複雜度的分析1.6誰還管生生世世夜夜朝朝?1.7習題第二章數論輕鬆遊2.1數學運算大師MATHEMATICA簡介2.2數論基本概念2.3整係數二元一次方程之整數解2.4模算術2.5模次冪與連續平方法2.6孫子定理(又名中國剩餘定理)2.7費馬小定理(FermatLittleTheorem)2.8歐拉定理(Euler'sTheorem)2.9原根(PrimitiveRoots)2.10模n之下的逆方陣2.11一般習題2.12電腦習題第三章古典密碼之旅(上)3.1話從前說今朝3.2旅遊須知3.3位移密碼(ShiftCiphers)3.4仿射密碼(AffineCiphers)3.5維吉內爾密碼(TheVigenereCiphers)3.6頻率分析管用嗎?3.7破解維吉內爾密碼3.8一般習題3.9電腦習題第四章古典密碼之旅(下)4.1希爾密碼(HillCiphers)4.2代換密碼(SubstitutionChiphers)4.3福爾摩斯與跳舞的人4.4二進位數與ASCII4.5單次鑰匙簿密碼(One-TimePads)4.6線性回饋位移暫存器序列(LFSRSequences)4.7一般習題4.8電腦習題第五章分解因數與公鑰密碼系統5.1公鑰密碼術的誕生5.2RSA演算法5.3公鑰密碼系統的另一章5.4回到RSA公鑰密碼系統5.5挑戰RSA5.6質數檢驗(PrimalityTesting)5.7因數分解(Factoring)5.8二次篩法(QuadraticSieve)5.9RSA挑戰5.10一個簡單的應用5.11一般習題5.12電腦習題第六章秘密分享6.1分散秘密6.2門檻法(ThresholdSchemes)6.3更上一層樓6.4一般習題6.5電腦習題第七章電話賭局7.1模n之下的平方根7.2電話中丟桐板7.3電話中玩撲克7.4一般習題7.5電腦習題第八章離散對數與公鑰密碼系統8.1離散對數(DiscreteLogarithms)8.2艾爾給默(ElGamal)密碼系統8.3計算離散對數:波立格-黑爾曼演算法8.4計算離散對數:指數計算法8.5計算模4之下離散對數對值8.6位元承諾(BitCommitment)8.7一般習題8.8電腦習題第九章數位簽署9.1RSA簽署(RSASignatures)9.2艾爾給默(ElGamal)簽署9.3赫序函數(HashFunctions)9.4生日攻擊法(BirthdayAttacks)9.5數位DSA9.6一般習題9.7電腦習題第十章橢圓曲線與公鑰密碼系統10.1橢圓曲線(EllipticCurves)10.2橢圓曲線上的加法運算10.3橢圓曲線上加法運算的法則10.4模n下的橢圓曲線10.5模p下的橢圓曲線10.6如何用橢圓曲線上元素個數10.7用橢圓曲線來分解因數10.8退化的橢圓曲線10.9特徵數為2的橢圓曲線10.10橢圓曲線密碼系統10.11一般習題10.12電腦習題第十一章錯誤更正碼與公鑰密碼系統11.1錯誤更正碼(ErrorCorrectingCodes)11.2麥克艾里斯(McEliece)公鑰密碼系統附錄A習題解答A.1第一章習題A.2第二章習題A.2.1一般習題A.2.2電腦習題A.3第三章習題A.3.1一般習題A.3.2電腦習題A.4第四章習題A.4.1一般習題A.4.2電腦習題A.5第五章習題A.5.1一般習題A.5.2電腦習題A.6第六章習題A.6.1一般習題A.6.2電腦習題A.7第七章習題A.7.1一般習題A.7.2電腦習題A.8第八章習題A.8.1一般習題A.8.2電腦習題A.9第九章習題A.9.1一般習題A.9.2電腦習題A.10第十章習題A.10.1一般習題A.10.2電腦習題
第一章序曲1.1憶兒時1.2一個簡單的例子1.3安全性可慮?1.4來自數論的靈感1.5計算之複雜度的分析1.6誰還管生生世世夜夜朝朝?1.7習題第二章數論輕鬆遊2.1數學運算大師MATHEMATICA簡介2.2數論基本概念2.3整係數二元一次方程之整數解2.4模算術2.5模次冪與連續平方法2.6孫子定理(又名中國剩餘定理)2.7費馬小定理(FermatLittleTheorem)2.8歐拉定理(Euler'sTheorem)2.9原根(PrimitiveRoots)2.10模n之下的逆方陣2.11一般習題2.12電腦習題第三章古典密碼之旅(上)3.1話從前說今朝3.2旅遊須知3.3位移密碼(ShiftCiphers)3.4仿射密碼(AffineCiphers)3....