主頁 >  其他 > 《Introduction To Modern Cryptography》讀書筆記

《Introduction To Modern Cryptography》讀書筆記

2021-10-29 09:17:18 其他


《Introduction To Modern Cryptography》讀書筆記

本筆記純粹個人讀書習慣與相應見解,內容歸納完全出于個人需要與個人局限,如有修改意見(比如哪兒應該是值得加粗的重點),歡迎斧正,QQ:2570101165

一、 Introduction

1.1 Cryptography and Modern Cryptography

經典密碼學:撰寫或解決代碼的藝術

現代密碼學:保護數字資訊、系統和分布式計算免受對抗式攻擊的數學技術的研究(不完整定義) 例如:確保完整性的機制、交換密鑰的技術、驗證用戶的協議、電子拍賣和選舉、數字現金等等

分水嶺:20世紀七八十年代,一種豐富的理論開始出現,使密碼學作為一門科學和數學學科的嚴格研究成為可能

進步:密碼學已經從一套用于確保軍隊秘密通信的啟發式工具,發展成為一門幫助全球普通民眾保護系統安全的科學,這也意味著密碼學已經成為計算機科學中一個更核心的話題

1.2 The Setting of Private-Key Encryption

接下來主要討論的重點在對稱加密,非對稱加密將在第10章討論

  1. 出現術語:

    cipher/codeencryption schemekey
    private-/shared-/secret-keyplaintextencrypt
    public-keyciphertextdecrypt
    symmetric-keyasymmetric-key
  2. 加密語法

    m e s s a g e s p a c e M k e y s p a c e K message\ space \ \mathcal{M}\\ key\ space \ \mathcal{K} message space Mkey space K

    • key-generation algorithm Gen

    • encryption algorithm Enc

    • decryption algorithm Dec

    • plaintext m

    • ciphertext c

    • key k
      c : = E n c k ( m ) m : = D e c k ( c ) D e c k ( E n c k ( m ) ) = m m ∈ M c:=Enc_k(m)\\ m:=Dec_k(c)\\ Dec_k(Enc_k(m))=m\qquad m\in\mathcal{M} c:=Enck?(m)m:=Deck?(c)Deck?(Enck?(m))=mmM

      大多數情況Gen只需從密鑰空間中選擇一個統一的密鑰;事實上,我們可以不失一般性地假定這種情況

      ":="表示確定性賦值

  3. 加密的目標是使明文不被竊聽者發現,竊聽者可以監視通信通道并觀察密文

    將在第2第3章更詳細的定義這個目標

  4. 私有密鑰加密の兩種規范應用:

    1. 空間上有兩個截然不同的群體,假設這兩個用戶在通信之前能夠安全地共享(注意不能走公共信道)密鑰,

      關于密鑰共享將在第10章進行討論

    2. 同一方與自身超時通信,例如,磁盤加密,用戶對一些明文進行加密,并將生成的密文存盤在硬碟驅動器上;同一用戶將在一段時間后回傳并解密密文恢復原始資料,這里的硬碟作為通信通道,攻擊者可以通過訪問硬碟并讀取其內容來進行竊聽,“共享”密鑰現在已經不重要了,盡管用戶仍然需要一種安全可靠的方法來記住/存盤密鑰,以便以后使用,

  5. 密鑰與Kerckhoffs’ principle(克霍夫斯原則)

    ? 19世紀末,奧古斯特·克霍夫斯(Auguste kerckhoff)在一篇論文中提出一些觀點,闡述了軍用密碼的幾個設計原則,其中最重要的一條,現在被簡單地稱為克霍夫斯原則,就是:密碼方案不能要求保密,而且必須能夠毫無不便地落入敵人手中,

    ? 即,安全性不應該依賴于加密方案是秘密的,相反,克霍夫斯原則要求安全完全依賴于密鑰的保密性!

    security rely solely on secrecy of the key

    ? 主要原因有三,如下:

    ? ①維護短密鑰的保密性要比保密所使用的(更復雜的)演算法容易得多,想象在某個組織中使用加密來保護所有員工對之間的通信,除非每一對當事人使用他們自己的、唯一的演算法,否則一些員工就會知道其他人使用的演算法,加密演算法的資訊就存在被泄露的可能性,比如員工被解雇后,或者被攻擊者通過逆向工程獲得,

    ? ②如果各方共享的秘密資訊被泄露,更換密鑰要比更換加密方案容易得多,(類似于更新檔案和安裝新程式的區別)此外,生成一個新的密鑰是相對瑣碎的,而設計一個新的加密方案將是一項巨大的任務,

    ? ③對于大規模部署,所有用戶都使用相同的加密演算法或軟體(但是使用不同的密鑰)要比所有用戶使用自定義的演算法容易得多,即使是與多個不同方通信的單個用戶也是如此,加密方案的標準化是有好處的:1) 默認情況下確保兼容性;2) 用戶使用的加密方案經過公眾審查,(暫時)不會存在任何弱點

1.3 Historical Ciphers and Their Cryptanalysis

全書明文小寫,密文大寫,不考慮標點數字空格等特殊字符

1.3.1 Caesar’s cipher

  1. 每個字母向前移 3 位,即a->D,b->E…y->b,z->c

  2. 直接問題是加密方法固定,沒有密鑰,知道如何加密的都能解密

  3. ROT-13(移位為13位而不是3位)為該密碼的一中變體,如今仍在各種在線論壇中使用,但并不提供任何加密安全性,只是用來確保資訊(例如電影劇透)是不可理解的,除非資訊的讀者有意識地選擇解密它,

1.3.2 The shift cipher and the sufficient key-space principle

  1. 移位密碼本質上是凱撒密碼的變體,在一些書中這兩個概念是互通的

  2. 剛開始還想怎么寫的學術點,后來放棄了,大家都懂的前提下簡潔才是最學術的!

E n c k ( m 1 . . . m l ) = C 1 . . . C l , w h e r e c i = [ ( m i + k ) m o d 26 ] D e c k ( c 1 . . . c l ) = m 1 . . . m l , w h e r e m i = [ ( c i ? k ) m o d 26 ] Enc_k(m_1...m_l)=C_1...C_l,\quad where\ \ c_i=[(m_i+k)\ mod\ 26]\\Dec_k(c_1...c_l)=m_1...m_l,\quad where\ \ m_i=[(c_i-k)\ mod\ 26] Enck?(m1?...ml?)=C1?...Cl?,where ci?=[(mi?+k) mod 26]Deck?(c1?...cl?)=m1?...ml?,where mi?=[(ci??k) mod 26]

  1. 缺點也很明顯,試26次咋也能試出來,文本萬一沒意義怎么辦?那也至少可以把可能性降到26
  2. sufficient key-space principle:
    Any secure encryption scheme must have a key space that is sufficiently large to make an exhaustive-search attack infeasible.

即能抵抗brute-force or exhaustive-search attack

從技術上講,這只在訊息空間大于密鑰空間時才成立,第2章將繼續涉及

  1. 何為“infeasible(不可行)”?既取決于潛在攻擊者的資源,也取決于發送者和接收者希望確保其通信保密的時間長度,如今,攻擊者可以使用超級計算機、數萬臺個人計算機或圖形處理單元(GPUs)來加速暴力攻擊,因此,為了防止這種攻擊,密鑰空間必須非常大,比如至少270,如果攻擊者是個土豪,想要長期保持安全,密鑰空間甚至需要更大,

1.3.3 The mono-alphabetic substitution cipher

  1. 在移位密碼中,密鑰定義了從(明文)字母表的每個字母到(密文)字母表中的某個字母的映射,其中映射是由密鑰決定的固定移位,在單字母替換密碼中,密鑰還定義了一個字母映射,但現在允許映射是任意的,僅受一對一的約束,以便解密,示例如下:

在這里插入圖片描述

  1. 單表代換密碼包含所有的bijectionspermutations

    密鑰空間大小為26!=26·25·24· · ·2·1≈288,已經大到令暴力窮舉攻擊變為不可能,但這并不意味著已經安全了!

  2. 利用英語的統計模型發動的攻擊(其他語言也適用)

    我們從下圖可以看到,在語法正確的情況下, e 是出現最多的字母,通過統計密文中出現的字母頻率,可以猜出大概的對應關系(中文中出現最頻繁的漢字:的 一 是 了 我

    缺點:①對與否全靠直覺(make sense) ②太短的密文可能不滿足這個分布 ③自動化程度太低 等

    所以有人在早上喝咖啡的功夫就把它破解了

    在這里插入圖片描述

1.3.4 An improved attack on the shift cipher

主要基于以下兩個公式
∑ i = 0 25 p i 2 ≈ 0.065 I j = def ∑ i = 0 25 p i ? q i + j \sum_{i=0}^{25}p_i^2\approx0.065\\ I_j\overset{\text{def}}{=}\sum_{i=0}^{25}p_i·q_{i+j} i=025?pi2?0.065Ij?=defi=025?pi??qi+j?
從j=0開始算,哪個算下來最接近0.065哪個大概就是真正的密鑰,自動化程度提高了

1.3.5 The Vigenère (poly-alphabetic shift) cipher

一張圖看懂如何加密

在這里插入圖片描述

優點:令文本字母的出現頻率趨于相等(smooth out),很難通過概率分析攻破,因此盡管它是在16世紀發明的,但對它的系統攻擊直到幾百年后才被設計出來,

1.3.6 Attacking the Vigenère cipher

  1. 假設我們知道密鑰的長度(period)t,如果采用暴力窮舉法,計算復雜度為26t,密鑰長度稍微一長,就變的不再可行了,

    那么我們可以把密文分為t部分(stream)(具體怎么分大家應該都知道),然后把每部分當做一段獨立的移位密碼來處理,對每部分密文分別進行一次統計模型攻擊,這時計算復雜度將降為26·t,

  2. 為了更容易實作自動化,我們可以把上一步中的移位密碼用1.3.4里介紹的方法處理,這種攻擊并不依賴于檢查“有意義”的明文,而只依賴于明文中字符的潛在頻率分布,更加的科學,

  3. 如果密鑰長度未知呢?

    ? 3.1 我們當然可以重復1和2中的步驟一個一個往出試,試T次就可以成功(T≥t)

    這種方法又蠢又低效,而且密鑰長度但凡長點人就傻了

    ? 3.2 更有效的方法:卡西斯基法(Kasiski’s method 19世紀中葉)

    ? 第一步是識別密文中長度為2或3的重復模式,這些可能是在明文中經常出現的某些雙字或三元字的結果,例如 the 等,因為當密文足夠長時,重復出現的詞組可能是同一個單詞被密鑰的同一個部分加密的結果

在這里插入圖片描述

? 而它們之間的間隔就是密鑰長度的倍數,如下圖所示:

在這里插入圖片描述

? 兩次重復出現的LII之間的間隔為30,所以我們有理由相信密鑰的長度可能為1,2,3,5,6,10,15,30中的一個

但這種方法更像是“人”做的,充滿了不確定性

? 3.3 更更有效的方法:巧合指數法(index of coincidence method

? 每個stream都是獨立的移位密碼,意味著在這個序列中,字符的頻率應該與標準英語文本中的字符頻率相同,僅僅是對應字母的叫法變了,設標準英文字母出現的頻率為 p p p,這個序列中對應字母的頻率為 q q q,則根據1.4.3第一個公式易推匯出如下公式:
∑ i = 0 25 q i 2 ≈ ∑ i = 0 25 p i 2 ≈ 0.065 \sum_{i=0}^{25}q_i^2\approx\sum_{i=0}^{25}p_i^2\approx0.065\\ i=025?qi2?i=025?pi2?0.065
? 對于步長 τ = 1 , 2 , . . . \tau=1,2,... τ=1,2,...的密文序列 c 1 , c 1 + τ , c 1 + 2 τ c_1,c_{1+\tau},c_{1+2\tau} c1?,c1+τ?,c1+2τ?,計算對應的 S τ S_{\tau} Sτ?:
S τ = def ∑ i = 0 25 q i 2 S_\tau\overset{\text{def}}{=}\sum_{i=0}^{25}q_{i}^2 Sτ?=defi=025?qi2?
? 當 τ = t \tau=t τ=t時,我們期望 S τ ≈ 0.065 S_{\tau}\approx0.065 Sτ?0.065,另一方面,由于我們認為密文的字母經過“平滑處理”,所以出現頻率幾乎相同,即 q i ≈ 1 / 26 q_{i}\approx1/26 qi?1/26,所以當 τ \tau τ不是 t t t的倍數時,我們希望得到
S τ ≈ ∑ i = 0 25 ( 1 26 ) 2 ≈ 0.038 S_\tau\approx\sum_{i=0}^{25}(\frac{1}{26})^2\approx0.038 Sτ?i=025?(261?)20.038

計算復雜度不高,不靠“直覺”,計算結果可信度大,真實結果與錯誤結果區別易于區分,可自動化程度高 ,但仍然有它的缺點

1.3.7 Ciphertext length and cryptanalytic attacks

一般來說,較長的密鑰需要密碼分析人員獲得更多的密文才能進行攻擊,就像上面的維吉尼亞密碼要破解需要比普通移位密碼多t倍的密文,

當密鑰與明文一樣長時,維吉尼亞密碼就是安全的(一次一密)第2章有類似案例

包括以上提到的密碼,歷史上所有出現過的古典密碼都被攻破了

1.4 Principles of Modern Cryptography

歷史上的密碼方案總是在“攻擊”與”修補“中反復橫跳,就算已經用一個非常強的證據證明該方案不安全,但是人們還是離不開這個橫跳,因為對于“安全”方案應該滿足哪些需求并沒有達成一致的概念,也沒有辦法證明任何特定的方案是安全的,這也是為什么密碼學在歷史上更像一門藝術而不是科學,

在過去的幾十年里,密碼學已經發展成為一門科學,現在,人們以更系統的方式開發和分析方案,最終目的是對給定的結構是否安全進行嚴格的證明,為了闡明這種證明,我們首先需要形式化的定義來明確“安全”的確切含義;這些定義本身就很有用,也很有趣,事實證明,大多數密碼學的證明都依賴于目前尚未證實的關于某些數學問題的演算法難度的假設;任何這樣的假設都必須明確和準確地表述出來,對 定義、假設和證明 的強調將現代密碼學與古典密碼學區分開來

1.4.1 Principle 1 – Formal Definitions

這塊有點冗雜,我自己分了大概幾個點,點與點之間部分互通

formal可以翻譯成形式化、規范化、正式化,知道他想表達啥意思就行

1.4.1.1 形式化定義的重要性

現代密碼學的主要貢獻之一是認識到安全的形式化定義對于正確的設計、研究、評估和使用密碼原語至關重要,

如果你不知道自己想要實作什么目標,你怎么可能知道自己何時(或是否)實作了目標?

形式化定義給出了在一定范圍內清晰的威脅描述,與希望達到的安全保證,正因為如此,該定義可以幫助指導設計密碼學方案,事實上,相比起在設計完成河駁出一個相關定義,在設計作業開始前就規范化地表達希望方案達到什么效果會更好,前者在當設計者筋疲力盡時(而不是在設計結束之后)會有暫停的風險,或者可能會導致在犧牲了效率的情況下,方案達到超過所需的程度,從而造成資源浪費,

1.4.1.2 形式化定義的作用

定義還提供了一種評估和分析所構建內容的方法,當給出恰當的定義后,我們可以通過研究是否達到預期的安全保證來判斷一個待分析的方案;在某些情況下,我們甚至可以通過展示某個方案滿足了定義從而證明這個結構是安全的(見1.4.3),另一方面,一個方案也可以通過證明其不滿足安全定義從而證明它是不安全的,注意!不能說存在理論上的攻擊方法就可以證明這個密碼學方案是不安全的,比如,對維吉尼亞密碼的攻擊需要假設有足夠長的密文,而且當文本是足夠短或者被壓縮(這時文本的字母頻率被平滑處理了)的情況下,我們這時就不能說維吉尼亞密碼是不安全的,也就是說,在沒有合適的定義的情況下,我們很難說一個密碼學方案是不是安全的

定義允許方案之間進行有意義的比較,我們有很多種有效的方法來定義安全性,而具體選擇哪種方法取決于所使用方案的背景關系,一個滿足弱定義的方案可能比一個滿足強定義的方案更有效率,通過更精確的定義我們可以在兩個方案之間更正確的權衡評估,同樣地,定義保證了方案的安全使用,思考一下對一些更大的應用如何決定使用哪個密碼學方案,一個靠譜的方法就是首先去理解這個應用需要的安全性概念,然后去找滿足這個概念的密碼學系統,這個方法附帶的好處就是模塊化:設計者可以把一個密碼學方法替換為另外一個而不用擔心影響整體應用的安全性,

我猜這也是一篇paper可以解決某一方面的問題的根本所在

研究一個正式的定義迫使人們思考什么是問題的本質以及什么性質是無關的,通過這個程序常常可以發現一些乍一看并不明顯的問題細微の之處(這也是開組會的好處)

1.4.1.3 形式化定義的組成

雖然我們每個人對安全都有自己直觀的定義,但無數事件告訴我們這種直覺往往是錯誤的至少是有缺點的,通常,安全定義有兩個組件:安全保證(security guarantee)(從攻擊者的角度來看,是什么構成了對方案成功攻擊的因素,即方案的脆弱點)和威脅模型(threat model),安全保證定義了計劃要阻止攻擊者做什么,而威脅模型則描述了對手的能力,即假定攻擊者能夠執行什么操作,

好多paper也是這個邏輯順序

安全的形式化定義在后兩章會更詳細介紹

一. 安全保證的心路歷程

這塊開始注釋將爆炸增長

  • It should be impossible for an attacker to recover the key.

    不能恢復密鑰不足以保證安全,加密的目的是保護資訊;密鑰是實作這一目標的方法,但密鑰本身并不重要

  • It should be impossible for an attacker to recover the entire plaintext from the ciphertext.

    有些資訊一點也不敢泄露,更何況這兒沒定義泄露多少算“安全”

  • It should be impossible for an attacker to recover any character of theplaintext from the ciphertext.

    乍一看好像整挺好,但其實還不夠,畢竟有些資訊不需要明文敘述就能猜出來,比如A和B誰的工資更高

    另一個問題是如何將對手“恢復明文字符”的含義形式化,如果攻擊者通過純粹的運氣或外部資訊,例如正確地猜測某人工資的最低有效位數是0,該怎么辦?顯然,這不應該使加密方案變得不安全,因此任何可行的定義都必須以某種方式將這種行為從成功的攻擊中排除

  • The “right” answer: regardless of any information an attacker already has, a ciphertext should leak no additional information about the underlying plaintext.

    它并沒有試圖定義關于明文的哪些資訊是“有意義的”!它只要求不泄露任何資訊,這很重要,因為這意味著一個安全的加密方案適用于所有需要保密的潛在應用程式,

    這里缺少的是定義(名詞)的精確數學公式,我們應該如何掌握攻擊者關于明文的先驗知識?(沒)泄露資訊是什么意思?參見定義2.3和3.12

二. 威脅模型的成長路線

我們詳細說明我們對對手能力的假設,但我們不假設對手如何使用這些能力,我們不可能預知在攻擊中他們會使用什么策略,妄圖做這個的死得都很慘

以下威脅模型按攻擊者能力大小升序排列

  • Ciphertext-only attack

    最基本的攻擊,經典加密方案中隱含假設的威脅模型,

  • Known-plaintext attack

    我們所見過的所有經典加密方案都可以通過該攻擊輕易破解

  • Chosen-plaintext attack

    上一條+its choice

  • Chosen-ciphertext attack

    對手能夠額外獲得自己選擇的密文的解密(或some information),例如,攻擊者選擇的某些密文的解密是否會產生有效的英文訊息

    以上這些攻擊都是為了獲得底層明文的資訊,注意,不是明文本身

    這些威脅模型沒有一個天生就比其他模型好,使用哪種模型取決于部署加密方案的環境,前兩種攻擊是最容易實施的,第一種搭個線就行了;第二種是因為明文/密文對總是容易泄露出來的,例如兩個物體總是“hello”,或者有些資訊保密期一過就自動公開了,

    3.4.2->選擇明文攻擊 3.7->選擇密文攻擊

1.4.2 Principle 2 – Precise Assumptions

大多數現代密碼結構不能被證明是無條件安全的,這樣的證明需要解決計算復雜性理論中的一些問題,而這些問題在今天看來似憾訓遠遠沒有答案,這將導致安全性的證明通常依賴于假設!現代密碼學要求任何這樣的假設都要明確和數學層面上的精確(explicit and mathematically precise),在最基本的層次上,這僅僅是因為安全性的數學證明需要這樣做

一、 我們需要“假設”的其它原因:

  • Validation of assumptions

    比起“驗證”,我更傾向于翻譯為“有效性”

    1. 就其本質而言,假設是沒有被證明的陳述,而是被推測為正確的
    2. 假設越被檢驗和測驗而不被反駁,我們就越相信這個假設是正確的
    3. 研究假設可以通過證明它由其他一些 也被廣泛相信的 假設所隱含,從而證明其有效性(愛屋及烏,感覺可能引起連環爆炸)
    4. 如果所依賴的假設沒有被精確地陳述,它就不能被研究和((potentially)反駁,因此,對所假定內容有一個精確的陳述,也有助于增加我們對假設成立的信心
  • Comparison of schemes

    假如有兩個方案A和B,它們都可以被證明滿足某些定義,但每個方案都基于不同的假設,如果A方案所基于的假設比B方案所基于的假設更(即,B假設隱含著A假設( B ? A B\ \owns A B ?A)),那么A方案是更好的,因為A錯說明B一定錯,但B錯A不一定錯

    我感覺這兒“假設”可以理解為”不確定性因素“,“假設”越弱,“不確定性”就越低,最后結果正確的”可能性“就越高,

  • Understanding the necessary assumptions

    加密方案可能基于某些底層構建塊(和前面模塊化呼應了),如果后來在構建塊中發現了一些弱點,我們如何判斷整個加密方案是否仍然安全?

    如果我們明確 關于某個構建塊的基本假設 已經作為了證明方案安全性的一部分,那么我們只需要檢查所需要的假設是否受到所發現的新弱點的影響,

    上段原文:If the underlying assumptions regarding the building block are made clear as part of proving security of the scheme,then we need only check whether the required assumptions are affected by the new weaknesses that were found.

二、 一個有趣的問題

與其根據其它的假設來證明一個方案是安全的,為什么不簡單地假設方案的構造本身是安全的呢?就像一個方案用了很多年沒出問題,我們為什么不直接令 該 方 案 : = 安 全 該方案:=安全 :=

  • 一個經過多年檢驗的假設比一個隨著新結構引入的、新的、臨時的假設更可取,

    這兒“新結構”應該才是重點,而不是后面的“假設”

    我理解的意思為:久經磨煉的方案本身都不一定能比過一個新的假設,更不用說一個久經磨煉的假設和一個新方案的比較了

  • 人們普遍傾向于更容易描述的假設,因為這樣的假設更容易研究和(可能)反駁,例如,假設某個數學問題很難解決,要比假設加密方案滿足復雜的安全定義更容易研究和評估,

    依賴“低級”假設而不是僅僅假設構造是安全的另一個優勢是,這些“低級”假設通常可以用于其他構造,

    這兒的”低級“(low-level)應該指的是更根本,更本質,更基礎

    公理和定理的區別

  • “低級”假設可以提供模塊化

    又和前面呼應了,而且和上面第二點含義相通

1.4.3 Principle 3 – Proofs of Security

以上描述的兩個原則允許我們實作提供嚴格證明的目標,即證明一個結構在某些特定假設下滿足給定的定義,在密碼學的環境中,當攻擊者積極地試圖“破壞”某些方案時,這種證明顯得尤其重要,與定義和假設相關聯的安全性證明給出了非常強力的保證——保證沒有攻擊者可以成功,這比采用無原則或啟發式的方法來解決問題要好得多,

如果不能證明任何擁有特定資源的對手都不能破壞某個方案,那么我們就只能憑直覺認為是這樣,經驗表明,在密碼學和計算機安全方面,直覺是災難性的,有無數未經證實的計劃被破壞的例子,有時是立即,有時是在開發后數年

Proofs of security give an iron-clad guarantee—relative to the
definition and assumptions—that no attacker will succeed

這兒的”relative to“,我認為應該理解成”關聯“而不是”相對于“

定義、假設和證明構成了現代密碼學的嚴格方法,與早期非正式的古典密碼學有著根本區別

1.4.4 Provable Security and Real-World Security

1.4.4.1 現代密碼學仍是藝術,

更多體現在了

  • 開發適合現代應用于環境的定義;
  • 提出新的數學層面的假設或設計新的原語;
  • 構建新的方案并證明其安全

1.4.4.2 安全性證明不是神

現代密碼學所采用的方法徹底改變了這個領域,并有助于提高現實世界中部署密碼方案的安全性,但重要的是,不要夸大安全證明的含義,安全性證明總是與所考慮的定義和所使用的假設相關

  • 如果安全保證與需要的不匹配,或者威脅模型沒有捕捉到對手的真實能力,那么證明可能就無關緊要了,
  • 如果所依賴的假設被證明是錯誤的,那么安全性證明就毫無意義,

1.4.4.3 理論與現實的區別與聯系

一個方案的安全性可以證明并不一定意味著該方案在現實世界中也是安全的,雖然有些人認為這是可證明安全性的缺點,但我們樂觀地認為這說明了這種方法的優點,以下解釋為什么:

要在現實世界中攻擊一個可證明安全的方案,只需將注意力集中在

  • 定義(即,探索理想化的定義與部署方案的現實環境有何不同)
  • 基本假設(即,看看它們是否成立)

而密碼學家的作業則是不斷完善他們的定義,以更接近真實世界,并調查他們的假設,以測驗其有效性,可證明的安全性并不能結束攻擊者和防御者之間由來已久的斗爭,但它確實提供了一個框架,有助于將勝局轉向有利于防御者的方向,

我們不考慮密碼學實際實作的程度怎么樣,某種程度上這不是我們應該考慮的問題

1.5 英語積累

該部分出現的詞語主要包括四部分:1.確實沒見過的新詞 2.見過太多以后應該會經常用的 3.以前見過但未曾設想的用法 4.有意思的

p.s.:單詞積累有限,望共同進步

rigorous 嚴厲的,嚴格的,嚴謹的
heuristic 啟發式的
party 通信雙方
scenario 特定情節,劇本,方案
canonical 按照教規的;權威的;公認的
trivial 不重要的,微不足道的
yield 生產,生長
adversary 敵人;對手
elucidate 闡述,說明
stated differently 換句話說
versus 與...相對
scrutiny 仔細審查
compatibility 兼容性
obscurity 陰暗,晦澀,不解
demonstrate 論證,說明
i.e. 即
Julius Caesar 凱撒大帝
ad hoc 特別的;臨時的;專設
examine 仔細審查
movie spoiler 電影劇透
sufficient 充足的
punctuation 標點
numerical 數學符號
mono- 單
poly- 多
tabulate 制表
whereas 然而,反之,但是,鑒于
cumbersome 討厭的,麻煩的,笨重的
thwart(-ed) 挫敗,阻礙
crack 裂縫,(使)爆裂 Challenge/Response Authentication of Cryptographic Key
namely 也就是
obstacle 障礙
cf. abbr. (拉丁)比較【拉丁文confer(=compare)】
illustrate 表明,闡明,舉例
perceive 感覺,感知
As it turns out 事實證明
post facto (拉丁語)事后的,溯及以往的
on the flip side 相反,另一方面
insofar 在這個范圍,到這個程度
subtlety 精妙,敏銳,精明
blatantly 公然地;喧鬧地;顯然地
justifiably 言之有理地,無可非議地
plausible 可靠的,貌似有理的,似是而非的
imply 暗示,隱含
deduce 推論
inherently 天性地,固執地
by their very nature 就其本質而言
conjecture 推測,猜想
refute 反駁,駁倒
downright (壞事或令人不快只是)徹頭徹尾的;完全地,徹底地
instantiate 實體化,舉例說明
off-the-cuff 為準備的;即席的(cuff 袖口,護腕,手銬)
take-away point 外賣點,要點
refine 精煉
odds 可能性,機會,困難
per se 自身,本身

1.6 可能還沒搞懂的點

  1. 這句話意思是數學證明需要假設還是需要精確?
  2. 不能被研究所以不存在反駁的可能性?還是,已經默認((potentially)被反駁了?
  3. 這個clear就很迷,前面提出的問句已經說明了構建塊出了問題,這兒再明確一下?
  4. 沒太理解他想表達什么

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340651.html

標籤:其他

上一篇:攻防世界misc-noviciate(雜項)做題筆記

下一篇:可信計算中的身份鑒別和證明-EK、AIK和DAA

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more