《改變未來的九大算法》讀書筆記

        《比較未來的九大算法》是一本輕鬆的書,基本上是在手機上看完的。這本書算是一本科普書,我也確實從這裏邊知道了不少東西,不過還只是一些粗淺的認識,所以寫個筆記。

         Papage Rank和搜索引擎: 這兩個技術其實是相關性很大的,Page Rank相當於一個相關度排序的算法。搜索引擎其實就是根據索引來尋找資源。想要深度的瞭解這些東西,可以去學習Lucene,這是一個開源的項目。

        公鑰加密: 公鑰加密適用的場合非常多,現在的https好像就是使用的公鑰加密。網絡上的公鑰加密和生活中的傳遞明信片是類似的。不過,我們希望明信、片的內容只被收件人看到。作者介紹了迪菲-赫爾曼密鑰交換,下面是密鑰交換的過程:
  1. 愛麗絲與鮑伯協定使用 p=23以及base g=5.
  1. 愛麗絲選擇一個祕密整數a=6, 計算A = ga mod p併發送給鮑伯。
  • A = 56 mod 23 = 8.
  1. 鮑伯選擇一個祕密整數b=15, 計算B = gb mod p併發送給愛麗絲。
  • B = 515 mod 23 = 19.
  1. 愛麗絲計算s = B a mod p
  • 196 mod 23 = 2.
  1. 鮑伯計算s = A b mod p
  • 815 mod 23 = 2.

         如果 p 是一個至少 300 位的質數,並且a和b至少有100位長, 那麼即使使用全人類所有的計算資源和當今最好的算法也不可能從g, p和g^a mod p 中計算出 a。這個問題就是著名的離散對數問題。

        糾錯碼: 糾錯碼的本質就是利用冗餘信息來發現傳輸錯誤。常見的什麼奇偶校驗、CRX校驗還有哈希算法校驗。定位算法可以一定程度上的糾正一些錯誤,但是不可能糾正任何情況下的錯誤。

        數據壓縮: 數據壓縮分爲有損壓縮和無損壓縮。比較常見的方法有形成長度編碼,簡單來說,就是把AAAA改記爲A4;還有同前把戲,就是“back *, copy *”的編碼方式;更短符號法就是把最常用的符號用更短的編碼記錄,這樣總體的信息長度就可以縮短了。有損壓縮主要是圖像、音像文件的壓縮了,這個比較好理解。

        數字簽名:RSA是一個常用的數字簽名算法。RSA算法非常簡單,概述如下: 找兩素數p和q 取n=p*q  取t=(p-1)*(q-1)  取任何一個數e,要求滿足e<t並且e與t互素(就是最大公因數爲1) 取d*e%t==1   這樣最終得到三個數: n   d   e   設消息爲數M (M <n)  設c=(M**d)%n就得到了加密後的消息c   設m=(c**e)%n則 m == M,從而完成對c的解密。                 注:**表示次方,上面兩式中的d和e可以互換。

發佈了49 篇原創文章 · 獲贊 11 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章