關于我們
書單推薦
新書推薦
|
應用密碼學:協(xié)議、算法與C源程序(原書第2版)
《計算機科學叢書·應用密碼學:協(xié)議、算法與C源程序(原書第2版)》共分四個部分,定義了密碼學的多個術語,介紹了密碼學的發(fā)展及背景,描述了密碼學從簡單到復雜的各種協(xié)議,詳細討論了密碼技術。并在此基礎上列舉了如DES、IDEA、RSA、DSA等十多個算法以及多個應用實例,并提供了算法的源代碼清單。
《計算機科學叢書·應用密碼學:協(xié)議、算法與C源程序(原書第2版)》內容廣博權威,具有極大的實用價值,是致力于密碼學研究的專業(yè)及非專業(yè)人員一本難得的好書。
世界上有兩種密碼:一種是防止小孩偷看你的文件;另一種是防止當局閱讀你的文件。本書寫的是后一種情況。
如果把一封信鎖在保險柜中,把保險柜藏在紐約的某個地方,然后告訴你去看這封信,這并不是安全,而是隱藏。相反,如果把一封信鎖在保險柜中,然后把保險柜及其設計規(guī)范和許多同樣的保險柜給你,以便你和世界上最好的開保險柜的專家能夠研究鎖的裝置,而你還是無法打開保險柜去讀這封信,這才是安全的概念。 許多年來,密碼學是軍隊專有的領域。NSA和蘇聯(lián)、英國、法國、以色列以及其他國家的安全機構已將大量的財力投入到加密自己的通信,同時又千方百計地破譯別人的通信的殘酷游戲中。面對這些政府,個人既無專業(yè)知識又無足夠財力保護自己的秘密。 在過去的20年里,公開的密碼學研究爆炸性地增長。從第二次世界大戰(zhàn)以來,當普通公民還在長期使用經典密碼時,計算機密碼學已成為世界軍事專有的領域。今天,最新的計算機密碼學已應用到軍事機構外,現(xiàn)在就連非專業(yè)人員都可以利用密碼技術去阻止最強大的敵人,包括軍方的安全機構。 普通百姓真的需要這種保密性嗎?是的,他們可能正在策劃一次政治運動,討論稅收或正干一件非法的事情;也可能正設計一件新產品,討論一種市場策略,或計劃接管競爭對手的生意;或者可能生活在一個不尊重個人隱私權的國家,也可能做一些他們自己認為并非違法實際卻是非法的事情。不管理由是什么,他的數(shù)據和通信都是私人的、秘密的,與他人無關。 本書正好在混亂的年代出版。1994年,克林頓當局核準了托管加密標準(包括Clipper芯片和Fortezza卡),并將數(shù)字電話法案簽署成為法律。這兩個行政令企圖確保政府實施電子監(jiān)控的能力。 一些危險的Orwellian假設在作祟:政府有權偵聽私人通信,個人對政府保守秘密是錯誤的。如果可能,法律總有能力強制實施法院授權的監(jiān)控,但是,這是公民第一次被迫采取“積極措施”,以使他們自己能被監(jiān)控。這兩個行政令并不是政府在某個模糊范圍內的簡單倡議,而是一種先發(fā)制人的單方面嘗試,旨在侵占以前屬于公民的權力。 Clipper和數(shù)字電話不保護隱私,它強迫個人無條件地相信政府將尊重他們的隱私。非法竊聽小馬丁·路德·金電話的執(zhí)法機構,同樣也能容易地竊聽用Clipper保護的電話。最近,地方警察機關在不少管區(qū)都有因非法竊聽而被控有罪或被提出民事訴訟的事件,這些地方包括馬里蘭、康涅狄格、佛蒙特、佐治亞、密蘇里和內華達。為了隨時方便警察局的工作而配置這種技術是很糟糕的想法。 這給我們的教訓是采用法律手段并不能充分保護我們自己,還需要用數(shù)學來保護自己。加密太重要了,不能讓給政府獨享。 本書為你提供了一些可用來保護自己隱私的工具。提供密碼產品可能被宣布為非法,但提供有關的信息絕不會犯法。 怎樣閱讀本書 我寫本書的目的是為了在真實地介紹密碼學的同時給出全面的參考文獻。我盡量在不損失正確性的情況下保持本書的可讀性,我不想使本書成為一本數(shù)學書。雖然我無意給出任何錯誤信息,但匆忙中理論難免有失嚴謹。對形式方法感興趣的人,可以參考大量的學術文獻。 第1章介紹密碼學,定義許多術語,簡要討論計算機出現(xiàn)前密碼學的情況。 第一部分(第2~6章)描述密碼學的各種協(xié)議:人們能用密碼學做什么。協(xié)議范圍從簡單(一人向另一人發(fā)送加密消息)到復雜(在電話上拋擲硬幣)再到深奧(秘密的和匿名的數(shù)字貨幣交易)。這些協(xié)議中有些一目了然,有些卻十分奇異。密碼學能夠解決大多數(shù)人絕沒有認識到的許多問題。 第二部分(第7~10章)討論密碼技術。對密碼學的大多數(shù)基本應用來說,這一部分的4章都很重要。第7章和第8章討論密鑰:密鑰應選多長才能保密,怎樣產生、存儲密鑰,怎樣處理密鑰等。密鑰管理是密碼學最困難的部分,經常是保密系統(tǒng)的一個致命弱點。第9章討論使用密碼算法的不同方法。第10章給出與算法有關的細節(jié):怎樣選擇、實現(xiàn)和使用算法。 第三部分(第11~23章)列出多個算法。第11章提供數(shù)學背景,如果你對公開密鑰算法感興趣,那么這一章你一定要了解。如果你只想實現(xiàn)DES(或類似的東西),則可以跳過這一章。第12章討論DES:DES算法、它的歷史、安全性和一些變型。第13~15章討論其他的分組算法:如果你需要比DES更保密的算法,請閱讀IDEA和三重DES算法這節(jié);如果你想知道一系列比DES算法更安全的算法,就請讀完整章。第16章和第17章討論序列密碼算法。第18章集中討論單向散列函數(shù),雖然討論了多種單向散列函數(shù),但MD5和SHA是最通用的。第19章討論公開密鑰加密算法。第20章討論公開密鑰數(shù)字簽名算法。第21章討論公開密鑰鑒別算法。第22章討論公開密鑰交換算法。幾種重要的公開密鑰算法分別是 RSA、DSA、Fiat-Shamir和Diffie-Hellman。第23章討論更深奧的公開密鑰算法和協(xié)議,這一章的數(shù)學知識非常復雜,請你做好思想準備。 第四部分(第24~25章)轉向密碼學的真實世界。第24章討論這些算法和協(xié)議的一些實際實現(xiàn);第25章涉及圍繞密碼學的一些政治問題。這些章節(jié)并不全面。 此外,本書還包括在第三部分討論的10個算法的源代碼清單,由于篇幅的限制,不可能給出所有的源代碼,況且密碼的源代碼不能出口(非常奇怪的是,國務院允許本書的第1版和源代碼出口,但不允許含有同樣源代碼的計算機磁盤出口)。配套的源代碼盤中包括的源代碼比本書中列出的要多得多,這也許是除軍事機構以外最大的密碼源代碼集。我只能給住在美國和加拿大的公民發(fā)送源代碼盤,但我希望有一天這種情況會改變。 對本書的一種批評是,它的廣博性代替了可讀性。這是對的,但我想給可能偶然在學術文獻或產品中需要算法的人提供參考。密碼學領域正日趨熱門,這是第一次把這么多資料收集在一本書中。即使這樣,還是有許多東西限于篇幅舍棄了,但盡量保留了那些我認為是重要的、有實用價值的或者有趣的專題。如果我對某一專題討論不深,我會給出深入討論這些專題的參考文獻。 我在寫作過程中已盡力查出和根除書中的錯誤,但我相信不可能消除所有的錯誤。第2版肯定比第1版的錯誤少得多?闭`表可以從我這里得到,并且它定期發(fā)往Usenet的新聞組 sci.crypt。如果讀者發(fā)現(xiàn)錯誤,請通知我,我將不勝感謝。
BruceSchneier是國際知名的安全技術專家,被《經濟學家》(TheEconomist)雜志稱為“安全大師”(Securityguru)。他是12本安全方面技術圖書的作者,還是數(shù)百篇文章、雜文和學術論文的作者。他的有影響力的通訊“Crypto—Gram”和博客“SchneieronSecurity”有超過257J的讀者和瀏覽者。他曾在國會作證,還經常做客電視臺和廣播電臺,并在幾個政府委員會供職。他是哈佛大學法學院伯克曼互聯(lián)網和社會中心的fellow,新美國基金會開放科技中心的programfellow,電子前哨基金會的董事會成員,電子隱私信息中心的咨詢委員會成員,以及BT(原英國電信)的安全未來學家。
Applied Cryptography:Protocols,Algorithms,and Source Code in C,Second Edition
出版者的話 譯者序 Whitfield Diffie序 前言 第1章 基礎知識 1.1 專業(yè)術語 1.1.1 發(fā)送者和接收者 1.1.2 消息和加密 1.1.3 鑒別、完整性和抗抵賴 1.1.4 算法和密鑰 1.1.5 對稱算法 1.1.6 公開密鑰算法 1.1.7 密碼分析 1.1.8 算法的安全性 1.1.9 過去的術語 1.2 隱寫術 1.3 代替密碼和換位密碼 1.3.1 代替密碼 1.3.2 換位密碼 1.3.3 轉輪機 1.3.4 進一步的讀物 1.4 簡單異或 1.5 一次一密亂碼本 1.6 計算機算法 1.7 大數(shù) 第一部分 密碼協(xié)議 第2章 協(xié)議結構模塊 2.1 協(xié)議概述 2.1.1 協(xié)議的目的 2.1.2 協(xié)議中的角色 2.1.3 仲裁協(xié)議 2.1.4 裁決協(xié)議 2.1.5 自動執(zhí)行協(xié)議 2.1.6 對協(xié)議的攻擊 2.2 使用對稱密碼系統(tǒng)通信 2.3 單向函數(shù) 2.4 單向散列函數(shù) 2.5 使用公開密鑰密碼系統(tǒng)通信 2.5.1 混合密碼系統(tǒng) 2.5.2 Merkle的難題 2.6 數(shù)字簽名 2.6.1 使用對稱密碼系統(tǒng)和仲裁者對文件簽名 2.6.2 數(shù)字簽名樹 2.6.3 使用公開密鑰密碼系統(tǒng)對文件簽名 2.6.4 文件簽名和時間標記 2.6.5 使用公開密鑰密碼系統(tǒng)和單向散列函數(shù)對文件簽名 2.6.6 算法和術語 2.6.7 多重簽名 2.6.8 抗抵賴和數(shù)字簽名 2.6.9 數(shù)字簽名的應用 2.7 帶加密的數(shù)字簽名 2.7.1 重新發(fā)送消息作為收據 2.7.2 阻止重新發(fā)送攻擊 2.7.3 對公開密鑰密碼系統(tǒng)的攻擊 2.8 隨機和偽隨機序列的產生 2.8.1 偽隨機序列 2.8.2 密碼學意義上安全的偽隨機序列 2.8.3 真正的隨機序列 第3章 基本協(xié)議 3.1 密鑰交換 3.1.1 對稱密碼系統(tǒng)的密鑰交換 3.1.2 公開密鑰密碼系統(tǒng)的密鑰交換 3.1.3 中間人攻擊 3.1.4 連鎖協(xié)議 3.1.5 使用數(shù)字簽名的密鑰交換 3.1.6 密鑰和消息傳輸 3.1.7 密鑰和消息廣播 3.2 鑒別 3.2.1 使用單向函數(shù)鑒別 3.2.2 字典式攻擊和salt 3.2.3 SKEY 3.2.4 使用公開密鑰密碼系統(tǒng)鑒別 3.2.5 使用聯(lián)鎖協(xié)議互相鑒別 3.2.6 SKID 3.2.7 消息鑒別 3.3 鑒別和密鑰交換 3.3.1 Wide-Mouth Frog協(xié)議 3.3.2 Yahalom協(xié)議 3.3.3 Needham-Schroeder協(xié)議 3.3.4 Otway-Rees協(xié)議 3.3.5 Kerberos協(xié)議 3.3.6 Neuman-Stubblebine協(xié)議 3.3.7 DASS協(xié)議 3.3.8 Denning-Sacco協(xié)議 3.3.9 Woo-Lam協(xié)議 3.3.10 其他協(xié)議 3.3.11 學術上的教訓 3.4 鑒別和密鑰交換協(xié)議的形式化分析 3.5 多密鑰公開密鑰密碼系統(tǒng) 3.6 秘密分割 3.7 秘密共享 3.7.1 有騙子的秘密共享 3.7.2 沒有Trent的秘密共享 3.7.3 不暴露共享的秘密共享 3.7.4 可驗證的秘密共享 3.7.5 帶預防的秘密共享 3.7.6 帶除名的秘密共享 3.8 數(shù)據庫的密碼保護 第4章 中級協(xié)議 4.1 時間標記服務 4.1.1 仲裁解決方法 4.1.2 改進的仲裁解決方法 4.1.3 鏈接協(xié)議 4.1.4 分布式協(xié)議 4.1.5 進一步的工作 4.2 閾下信道 4.2.1 閾下信道的應用 4.2.2 杜絕閾下的簽名 4.3 不可抵賴的數(shù)字簽名 4.4 指定的確認者簽名 4.5 代理簽名 4.6 團體簽名 4.7 失敗終止數(shù)字簽名 4.8 加密數(shù)據計算 4.9 位承諾 4.9.1 使用對稱密碼系統(tǒng)的位承諾 4.9.2 使用單向函數(shù)的位承諾 4.9.3 使用偽隨機序列發(fā)生器的位承諾 4.9.4 模糊點 4.10 公平的硬幣拋擲 4.10.1 使用單向函數(shù)的拋幣協(xié)議 4.10.2 使用公開密鑰密碼系統(tǒng)的拋幣協(xié)議 4.10.3 拋幣入井協(xié)議 4.10.4 使用拋幣產生密鑰 4.11 智力撲克 4.11.1 三方智力撲克 4.11.2 對撲克協(xié)議的攻擊 4.11.3 匿名密鑰分配 4.12 單向累加器 4.13 秘密的全或無泄露 4.14 密鑰托管 第5章 高級協(xié)議 5.1 零知識證明 5.1.1 基本的零知識協(xié)議 5.1.2 圖同構 5.1.3 漢密爾頓圈 5.1.4 并行零知識證明 5.1.5 非交互式零知識證明 5.1.6 一般性 5.2 身份的零知識證明 5.2.1 國際象棋特級大師問題 5.2.2 黑手黨騙局 5.2.3 恐怖分子騙局 5.2.4 建議的解決方法 5.2.5 多重身份騙局 5.2.6 出租護照 5.2.7 成員資格證明 5.3 盲簽名 5.3.1 完全盲簽名 5.3.2 盲簽名協(xié)議 5.3.3 專利 5.4 基于身份的公開密鑰密碼系統(tǒng) 5.5 不經意傳輸 5.6 不經意簽名 5.7 同時簽約 5.7.1 帶有仲裁者的簽約 5.7.2 無需仲裁者的同時簽約:面對面 5.7.3 無需仲裁者的同時簽約:非面對面 5.7.4 無需仲裁者的同時簽約:使用密碼系統(tǒng) 5.8 數(shù)字證明郵件 5.9 秘密的同時交換 第6章 深奧的協(xié)議 6.1 保密選舉 6.1.1 簡單投票協(xié)議 6.1.2 簡單投票協(xié)議 6.1.3 使用盲簽名投票 6.1.4 帶有兩個中央機構的投票 6.1.5 帶有單個中央機構的投票 6.1.6 改進的帶有單個中央機構的投票 6.1.7 無需中央制表機構的投票 6.1.8 其他投票方案 6.2 保密的多方計算 6.2.1 協(xié)議 6.2.2 協(xié)議 6.2.3 協(xié)議 6.2.4 協(xié)議 6.2.5 無條件多方安全協(xié)議 6.2.6 保密電路計算 6.3 匿名消息廣播 6.4 數(shù)字現(xiàn)金 6.4.1 協(xié)議 6.4.2 協(xié)議 6.4.3 協(xié)議 6.4.4 協(xié)議 6.4.5 數(shù)字現(xiàn)金和高明的犯罪 6.4.6 實用化的數(shù)字現(xiàn)金 6.4.7 其他數(shù)字現(xiàn)金協(xié)議 6.4.8 匿名信用卡 第二部分 密碼技術 第7章 密鑰長度 7.1 對稱密鑰長度 7.1.1 窮舉攻擊所需時間和金錢估計 7.1.2 軟件破譯機 7.1.3 神經網絡 7.1.4 病毒 7.1.5 中國式抽彩法 7.1.6 生物工程技術 7.1.7 熱力學的局限性 7.2 公開密鑰長度 7.2.1 DNA計算法 7.2.2 量子計算法 7.3 對稱密鑰和公開密鑰長度的比較 7.4 對單向散列函數(shù)的生日攻擊 7.5 密鑰應該多長 7.6 小結 第8章 密鑰管理 8.1 產生密鑰 8.1.1 減少的密鑰空間 8.1.2 弱密鑰選擇 8.1.3 隨機密鑰 8.1.4 通行短語 8.1.5 X9.17密鑰產生 8.1.6 DoD密鑰產生 8.2 非線性密鑰空間 8.3 傳輸密鑰 8.4 驗證密鑰 8.4.1 密鑰傳輸中的錯誤檢測 8.4.2 解密過程中的錯誤檢測 8.5 使用密鑰 8.6 更新密鑰 8.7 存儲密鑰 8.8 備份密鑰 8.9 泄露密鑰 8.10 密鑰有效期 8.11 銷毀密鑰 8.12 公開密鑰的密鑰管理 8.12.1 公開密鑰證書 8.12.2 分布式密鑰管理 第9章 算法類型和模式 9.1 電子密碼本模式 9.2 分組重放 9.3 密碼分組鏈接模式 9.3.1 初始化向量 9.3.2 填充 9.3.3 錯誤擴散 9.3.4 安全問題 9.4 序列密碼算法 9.5 自同步序列密碼 9.6 密碼反饋模式 9.6.1 初始化向量 9.6.2 錯誤擴散 9.7 同步序列密碼 9.8 輸出反饋模式 9.8.1 初始化向量 9.8.2 錯誤擴散 9.8.3 安全問題 9.8.4 OFB模式中的序列密碼 9.9 計數(shù)器模式 9.10 其他分組密碼模式 9.10.1 分組鏈接模式 9.10.2 擴散密碼分組鏈接模式 9.10.3 帶校驗和的密碼分組鏈接 9.10.4 帶非線性函數(shù)的輸出反饋 9.10.5 其他模式 9.11 選擇密碼模式 9.12 交錯 9.13 分組密碼與序列密碼 第10章 使用算法 10.1 選擇算法 10.2 公開密鑰密碼系統(tǒng)與對稱密碼系統(tǒng) 10.3 通信信道加密 10.3.1 鏈鏈加密 10.3.2 端端加密 10.3.3 兩者的結合 10.4 用于存儲的加密數(shù)據 10.4.1 非關聯(lián)密鑰 10.4.2 驅動器級與文件級加密 10.4.3 提供加密驅動器的隨機存取 10.5 硬件加密與軟件加密 10.5.1 硬件 10.5.2 軟件 10.6 壓縮、編碼及加密 10.7 檢測加密 10.8 密文中隱藏密文 10.9 銷毀信息 第三部分 密碼算法 第11章 數(shù)學背景 11.1 信息論 11.1.1 熵和不確定性 11.1.2 語言信息率 11.1.3 密碼系統(tǒng)的安全性 11.1.4 唯一解距離 11.1.5 信息論的運用 11.1.6 混亂和擴散 11.2 復雜性理論 11.2.1 算法的復雜性 11.2.2 問題的復雜性 11.2.3 NP完全問題 11.3 數(shù)論 11.3.1 模運算 11.3.2 素數(shù) 11.3.3 最大公因子 11.3.4 求模逆元 11.3.5 求系數(shù) 11.3.6 費爾馬小定理 11.3.7 歐拉φ函數(shù) 11.3.8 中國剩余定理 11.3.9 二次剩余 11.3.10 勒讓德符號 11.3.11 雅可比符號 11.3.12 Blum整數(shù) 11.3.13 生成元 11.3.14 伽羅瓦域中的計算 11.4 因子分解 11.5 素數(shù)的產生 11.5.1 Solovag-Strassen 11.5.2 Lehmann 11.5.3 Rabin-Miller 11.5.4 實際考慮 11.5.5 強素數(shù) 11.6 有限域上的離散對數(shù) 第12章 數(shù)據加密標準 12.1 背景 12.1.1 標準的開發(fā) 12.1.2 標準的采用 12.1.3 DES設備的鑒定和認證 12.1.4 1987年的標準 12.1.5 1993年的標準 12.2 DES的描述 12.2.1 算法概要 12.2.2 初始置換 12.2.3 密鑰置換 12.2.4 擴展置換 12.2.5 S盒代替 12.2.6 P盒置換 12.2.7 末置換 12.2.8 DES解密 12.2.9 DES的工作模式 12.2.10 DES的硬件和軟件實現(xiàn) 12.3 DES的安全性 12.3.1 弱密鑰 12.3.2 補密鑰 12.3.3 代數(shù)結構 12.3.4 密鑰的長度 12.3.5 迭代的次數(shù) 12.3.6 S盒的設計 12.3.7 其他結論 12.4 差分及線性分析 12.4.1 差分密碼分析 12.4.2 相關密鑰密碼分析 12.4.3 線性密碼分析 12.4.4 未來的方向 12.5 實際設計準則 12.6 DES的各種變型 12.6.1 多重DES 12.6.2 使用獨立子密鑰的DES 12.6.3 DESX 12.6.4 CRYPT(3) 12.6.5 GDES 12.6.6 更換S盒的DES 12.6.7 RDES 12.6.8 snDES 12.6.9 使用相關密鑰S盒的DES 12.7 DES現(xiàn)今的安全性 第13章 其他分組密碼算法 13.1 Lucifer算法 13.2 Madryga算法 13.2.1 Madryga的描述 13.2.2 Madryga的密碼分析 13.3 NewDES算法 13.4 FEAL算法 13.4.1 FEAL的描述 13.4.2 FEAL的密碼分析 13.4.3 專利 13.5 REDOC算法 13.5.1 REDOC Ⅲ 13.5.2 專利和許可證 13.6 LOKI算法 13.6.1 LOKI 13.6.2 LOKI91的描述 13.6.3 LOKI91的密碼分析 13.6.4 專利和許可證 13.7 Khufu和Khafre算法 13.7.1 Khufu 13.7.2 Khafre 13.7.3 專利 13.8 RC2算法 13.9 IDEA算法 13.9.1 IDEA 13.9.2 IDEA的描述 13.9.3 IDEA的速度 13.9.4 IDEA的密碼分析 13.9.5 IDEA的操作方式和變型 13.9.6 敬告使用者 13.9.7 專利和許可證 13.10 MMB算法 13.11 CA-1.1算法 13.12 Skipjack算法 第14章 其他分組密碼算法(續(xù)) 14.1 GOST算法 14.1.1 GOST的描述 14.1.2 GOST的密碼分析 14.2 CAST算法 14.3 Blowfish算法 14.3.1 Blowfish的描述 14.3.2 Blowfish的安全性 14.4 SAFER算法 14.4.1 SAFER K-64的描述 14.4.2 SAFER K- 14.4.3 SAFER K-64的安全性 14.5 3-Way算法 14.6 Crab算法 14.7 SXAL8/MBAL算法 14.8 RC5算法 14.9 其他分組密碼算法 14.10 分組密碼設計理論 14.10.1 Feistel網絡 14.10.2 簡單關系 14.10.3 群結構 14.10.4 弱密鑰 14.10.5 強的抗差分攻擊和線性攻擊 14.10.6 S盒的設計 14.10.7 設計分組密碼 14.11 使用單向散列函數(shù) 14.11.1 Karn 14.11.2 Luby-Rackoff 14.11.3 消息摘要密碼 14.11.4 基于單向散列函數(shù)的密碼安全性 14.12 分組密碼算法的選擇 第15章 組合分組密碼 15.1 雙重加密 15.2 三重加密 15.2.1 用兩個密鑰進行三重加密 15.2.2 用三個密鑰進行三重加密 15.2.3 用最小密鑰進行三重加密 15.2.4 三重加密模式 15.2.5 三重加密的變型 15.3 加倍分組長度 15.4 其他多重加密方案 15.4.1 雙重OFB/計數(shù)器 15.4.2 ECB+OFB 15.4.3 xDESi 15.4.4 五重加密 15.5 縮短CDMF密鑰 15.6 白化 15.7 級聯(lián)多重加密算法 15.8 組合多重分組算法 第16章 偽隨機序列發(fā)生器和序列密碼 16.1 線性同余發(fā)生器 16.2 線性反饋移位寄存器 16.3 序列密碼的設計與分析 16.3.1 線性復雜性 16.3.2 相關免疫性 16.3.3 其他攻擊 16.4 使用LFSR的序列密碼 16.4.1 Geffe發(fā)生器 16.4.2 推廣的Geffe發(fā)生器 16.4.3 Jennings發(fā)生器 16.4.4 Beth-Piper停走式發(fā)生器 16.4.5 交錯停走式發(fā)生器 16.4.6 雙側停走式發(fā)生器 16.4.7 門限發(fā)生器 16.4.8 自采樣發(fā)生器 16.4.9 多倍速率內積式發(fā)生器 16.4.10 求和式發(fā)生器 16.4.11 DNRSG 16.4.12 Gollmann級聯(lián) 16.4.13 收縮式發(fā)生器 16.4.14 自收縮式發(fā)生器 16.5 A5算法 16.6 Hughes XPD/KPD算法 16.7 Nanoteq算法 16.8 Rambutan算法 16.9 附加式發(fā)生器 16.9.1 Fish發(fā)生器 16.9.2 Pike發(fā)生器 16.9.3 Mush發(fā)生器 16.10 Gifford算法 16.11 M算法 16.12 PKZIP算法 第17章 其他序列密碼和真隨機序列發(fā)生器 17.1 RC4算法 17.2 SEAL算法 17.2.1 偽隨機函數(shù)族 17.2.2 SEAL的描述 17.2.3 SEAL的安全性 17.2.4 專利和許可證 17.3 WAKE算法 17.4 帶進位的反饋移位寄存器 17.5 使用FCSR的序列密碼 17.5.1 級聯(lián)發(fā)生器 17.5.2 FCSR組合發(fā)生器 17.5.3 LFSR/FCSR加法/奇偶級聯(lián) 17.5.4 交錯停走式發(fā)生器 17.5.5 收縮式發(fā)生器 17.6 非線性反饋移位寄存器 17.7 其他序列密碼 17.7.1 Pless發(fā)生器 17.7.2 蜂窩式自動發(fā)生器 17.7.3 1/p發(fā)生器 17.7.4 crypt(1) 17.7.5 其他方案 17.8 序列密碼設計的系統(tǒng)理論方法 17.9 序列密碼設計的復雜性理論方法 17.9.1 Shamir偽隨機數(shù)發(fā)生器 17.9.2 Blum-Micali發(fā)生器 17.9.3 RSA 17.9.4 Blum、Blum和Shub 17.10 序列密碼設計的其他方法 17.10.1 Rip van Winkle密碼 17.10.2 Diffie隨機序列密碼 17.10.3 Maurer隨機序列密碼 17.11 級聯(lián)多個序列密碼 17.12 選擇序列密碼 17.13 從單個偽隨機序列發(fā)生器產生多個序列 17.14 真隨機序列發(fā)生器 17.14.1 RAND表 17.14.2 使用隨機噪聲 17.14.3 使用計算機時鐘 17.14.4 測量鍵盤反應時間 17.14.5 偏差和相關性 17.14.6 提取隨機性 第18章 單向散列函數(shù) 18.1 背景 18.1.1 單向散列函數(shù)的長度 18.1.2 單向散列函數(shù)綜述 18.2 Snefru算法 18.3 N-Hash算法 18.4 MD4算法 18.5 MD5算法 18.5.1 MD5的描述 18.5.2 MD5的安全性 18.6 MD2算法 18.7 安全散列算法 18.7.1 SHA的描述 18.7.2 SHA的安全性 18.8 RIPE-MD算法 18.9 HAVAL算法 18.10 其他單向散列函數(shù) 18.11 使用對稱分組算法的單向散列函數(shù) 18.11.1 散列長度等于分組長度的方案 18.11.2 改進的Davies-Meyer 18.11.3 Preneel-Bosselaers-Govaerts-Vandewalle 18.11.4 Quisquater-Girault 18.11.5 LOKI雙分組 18.11.6 并行Davies-Meyer 18.11.7 串聯(lián)和并聯(lián)Davies-Meyer 18.11.8 MDC-2和MDC- 18.11.9 AR散列函數(shù) 18.11.10 GOST散列函數(shù) 18.11.11 其他方案 18.12 使用公開密鑰算法 18.13 選擇單向散列函數(shù) 18.14 消息鑒別碼 18.14.1 CBC-MAC 18.14.2 消息鑒別算法 18.14.3 雙向MAC 18.14.4 Jueneman方法 18.14.5 RIPE-MAC 18.14.6 IBC-Hash 18.14.7 單向散列函數(shù)MAC 18.14.8 序列密碼MAC 第19章 公開密鑰算法 19.1 背景 19.2 背包算法 19.2.1 超遞增背包 19.2.2 由私人密鑰產生公開密鑰 19.2.3 加密 19.2.4 解密 19.2.5 實際的實現(xiàn)方案 19.2.6 背包的安全性 19.2.7 背包變型 19.2.8 專利 19.3 RSA算法 19.3.1 RSA的硬件實現(xiàn) 19.3.2 RSA的速度 19.3.3 軟件加速 19.3.4 RSA的安全性 19.3.5 對RSA的選擇密文攻擊 19.3.6 對RSA的公共模數(shù)攻擊 19.3.7 對RSA的低加密指數(shù)攻擊 19.3.8 對RSA的低解密指數(shù)攻擊 19.3.9 經驗 19.3.10 對RSA的加密和簽名攻擊 19.3.11 標準 19.3.12 專利 19.4 Pohlig-Hellman算法 19.5 Rabin算法 19.6 ElGamal算法 19.6.1 ElGamal簽名 19.6.2 ElGamal加密 19.6.3 速度 19.6.4 專利 19.7 McEliece算法 19.8 橢圓曲線密碼系統(tǒng) 19.9 LUC算法 19.10 有限自動機公開密鑰密碼系統(tǒng) 第20章 公開密鑰數(shù)字簽名算法 20.1 數(shù)字簽名算法 20.1.1 對通告的反應 20.1.2 DSA的描述 20.1.3 快速預計算 20.1.4 DSA的素數(shù)產生 20.1.5 使用DSA的ElGamal加密 20.1.6 使用DSA的RSA加密 20.1.7 DSA的安全性 20.1.8 攻擊k 20.1.9 公共模數(shù)的危險 20.1.10 DSA中的閾下信道 20.1.11 專利 20.2 DSA的變型 20.3 GOST數(shù)字簽名算法 20.4 離散對數(shù)簽名方案 20.5 Ong-Schnorr-Shamir簽名方案 20.6 ESIGN簽名方案 20.6.1 ESIGN的安全性 20.6.2 專利 20.7 細胞自動機 20.8 其他公開密鑰算法 第21章 鑒別方案 21.1 Feige-Fiat-Shamir算法 21.1.1 簡化的Feige-Fiat-Shamir身份鑒別方案 21.1.2 Feige-Fiat-Shamir身份鑒別方案 21.1.3 例子 21.1.4 加強方案 21.1.5 Fiat-Shamir簽名方案 21.1.6 改進的Fiat-Shamir簽名方案 21.1.7 其他加強方案 21.1.8 Ohta-Okamoto身份鑒別方案 21.1.9 專利 21.2 Guillou-Quisquater算法 21.2.1 Guillou-Quisquater身份鑒別方案 21.2.2 Guillou-Quisquater數(shù)字簽名方案 21.2.3 多重簽名 21.3 Schnorr算法 21.3.1 鑒別協(xié)議 21.3.2 數(shù)字簽名協(xié)議 21.3.3 專利 21.4 將身份鑒別方案轉為數(shù)字簽名方案 第22章 密鑰交換算法 22.1 Diffie-Hellman算法 22.1.1 三方或多方Diffie-Hellman 22.1.2 擴展Diffie-Hellman 22.1.3 Hughes 22.1.4 不用交換密鑰的密鑰交換 22.1.5 專利 22.2 站間協(xié)議 22.3 Shamir的三次傳遞協(xié)議 22.4 COMSET協(xié)議 22.5 加密密鑰交換 22.5.1 基本EKE協(xié)議 22.5.2 用RSA實現(xiàn)EKE 22.5.3 用ElGamal實現(xiàn)EKE 22.5.4 用Diffie-Hellman實現(xiàn)EKE 22.5.5 加強的EKE 22.5.6 擴充的EKE 22.5.7 EKE的應用 22.6 加強的密鑰協(xié)商 22.7 會議密鑰分發(fā)和秘密廣播 22.7.1 會議密鑰分發(fā) 22.7.2 Tatebayashi-Matsuzaki-Newman 第23章 協(xié)議的專用算法 23.1 多重密鑰的公開密鑰密碼系統(tǒng) 23.2 秘密共享算法 23.2.1 LaGrange插值多項式方案 23.2.2 矢量方案 23.2.3 Asmuth-Bloom 23.2.4 Kamin-Greene-Hellman 23.2.5 高級門限方案 23.2.6 有騙子情況下的秘密共享 23.3 閾下信道 23.3.1 Ong-Schnorr-Shamir 23.3.2 ElGamal 23.3.3 ESIGN 23.3.4 DSA 23.3.5 挫敗DSA閾下信道 23.3.6 其他方案 23.4 不可抵賴的數(shù)字簽名 23.5 指定的確認者簽名 23.6 用加密數(shù)據計算 23.7 公平的硬幣拋擲 23.7.1 利用平方根的硬幣拋擲 23.7.2 利用模p指數(shù)運算的硬幣拋擲 23.7.3 利用Blum整數(shù)的硬幣拋擲 23.8 單向累加器 23.9 秘密的全或無泄露 23.10 公正和故障保險密碼系統(tǒng) 23.10.1 公正的Diffie-Hellman 23.10.2 故障保險的Diffie-Hellman 23.11 知識的零知識證明 23.11.1 離散對數(shù)的零知識證明 23.11.2 破譯RSA能力的零知識證明 23.11.3 n是一個Blum整數(shù)的零知識證明 23.12 盲簽名 23.13 不經意傳輸 23.14 保密的多方計算 23.15 概率加密 23.16 量子密碼學 第四部分 真實世界 第24章 實現(xiàn)方案實例 24.1 IBM秘密密鑰管理協(xié)議 24.2 MITRENET 24.3 ISDN 24.3.1 密鑰 24.3.2 呼叫 24.4 STU-Ⅲ 24.5 Kerberos 24.5.1 Kerberos模型 24.5.2 Kerberos工作原理 24.5.3 憑證 24.5.4 Kerberos第5版消息 24.5.5 最初票據的獲取 24.5.6 服務器票據的獲取 24.5.7 服務請求 24.5.8 Kerberos第4版 24.5.9 Kerberos的安全性 24.5.10 許可證 24.6 KryptoKnight 24.7 SESAME 24.8 IBM通用密碼體系 24.9 ISO鑒別框架 24.9.1 證書 24.9.2 鑒別協(xié)議 24.10 保密性增強郵件 24.10.1 PEM的有關文件 24.10.2 證書 24.10.3 PEM的消息 24.10.4 PEM的安全性 24.10.5 TIS/PEM 24.10.6 RIPEM 24.11 消息安全協(xié)議 24.12 Pretty Good Privacy 24.13 智能卡 24.14 公開密鑰密碼學標準 24.15 通用電子支付系統(tǒng) 24.16 Clipper 24.17 Capstone 24.18 AT&T 3600型電話保密設備 第25章 政治 25.1 國家安全局 25.2 國家計算機安全中心 25.3 國家標準技術所 25.4 RSA數(shù)據安全有限公司 25.5 公開密鑰合作商 25.6 國際密碼研究協(xié)會 25.7 RACE完整性基本評估 25.8 對歐洲的有條件訪問 25.9 ISO/IEC 25.10 專業(yè)人員、公民自由和工業(yè)組織 25.10.1 電子秘密信息中心 25.10.2 電子戰(zhàn)線基金會 25.10.3 計算機協(xié)會 25.10.4 電氣和電子工程師學會 25.10.5 軟件出版商協(xié)會 25.11 sci.crypt 25.12 Cypherpunks 25.13 專利 25.14 美國出口法規(guī) 25.15 其他國家的密碼進出口 25.16 合法性問題 附錄A 源代碼 參考文獻 Matt Blaze跋
你還可能感興趣
我要評論
|