日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

现代密码学3.4--CPA安全,多次加密

發(fā)布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 现代密码学3.4--CPA安全,多次加密 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

現(xiàn)代密碼學3.4--CPA安全,多次加密

  • CPA安全
    • oracle
    • 例子
    • 含oracle的實驗過程
    • CPA安全定義
  • 多次加密的CPA安全
    • "left-or-right" oracle LRk,b(?,?)LR_{k,b}(\cdot,\cdot)LRk,b?(?,?)
    • 含"left-or-right" oracle的多次加密實驗過程
    • 多次加密的CPA安全定義
  • 多次加密和單次加密對比
    • 唯密文攻擊/計算安全
    • 選擇明文攻擊/CPA安全

博主正在學習INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些筆記供自己回憶,如有錯誤請指正。整理成一個系列現(xiàn)代密碼學,方便檢索。

  • 第二章定義的完美安全是一種理論上的討論,而第三章需要定義的計算安全是一種更偏向?qū)嶋H需求的討論。
  • 3.1節(jié)討論了定義計算安全的兩種方法,3.2節(jié)討論了什么是計算安全,3.3節(jié)給出了基于PRG構(gòu)造的計算安全的密碼方案。
  • 以上3.1-3.3節(jié)都在討論計算安全,這是一種抵御唯密文攻擊的安全,根據(jù)1.4節(jié)的四種攻擊模型可知,這是對敵手能力的一種最弱描述。現(xiàn)在,我們考慮敵手具有選擇明文攻擊的攻擊能力,來定義一種更強的安全性:CPA安全,以及考慮多次加密的計算安全和多次加密的CPA安全

CPA安全

oracle

攻擊者可以選擇明文mmm傳給加密者,加密者用加密算法Enck(m)Enc_k(m)Enck?(m)得到ccc……返回給攻擊者。把這個過程看作一次查詢,由攻擊者來確定查什么,可以進行任意多次,且每次都用同樣的密鑰kkk

例子

美軍vs日軍,中途島海戰(zhàn):美軍監(jiān)聽到日軍要攻擊“AF”,但是無法破解“AF”是什么地方。美軍猜測是“中途島”,于是讓中途島發(fā)假信息說缺水,日本截獲了這個信息并立即報告給總部:“AF”缺水,這就讓美軍知道了在日軍的加密方案中“AF”就是“中途島”。這就是選擇明文攻擊,美軍選擇了明文“中途島”,日軍加密得到“AF”,雖然不是日軍自愿參與的,但美軍仍達到了他們的需要。

含oracle的實驗過程

  • 敵手A\mathcal{A}A已知安全參數(shù)1n1^n1n,有一個連接Enck(?)Enc_k(\cdot)Enck?(?)的oracle(可以詢問Enck(?)Enc_k(\cdot)Enck?(?)任意多次),輸出等長明文m0,m1m_0,m_1m0?,m1?給加密者;
  • 加密者任選b∈{0,1}b\in\{0,1\}b{0,1},輸出密文c←Enck(mb)c\leftarrow Enc_k(m_b)cEnck?(mb?)給敵手A\mathcal{A}A
  • 敵手A\mathcal{A}A在獲得ccc后,仍有一個連接Enck(?)Enc_k(\cdot)Enck?(?)的oracle(可以根據(jù)ccc調(diào)整,繼續(xù)查詢),輸出猜測的b′b'b
  • 如果b′=bb'=bb=b輸出1,否則輸出0。

CPA安全定義

私鑰加密方案Π=(Gen,Enc,Dec)\Pi=(Gen,Enc,Dec)Π=(Gen,Enc,Dec)如果對于任意PPT敵手A\mathcal{A}A,都有一個可忽略函數(shù)negl滿足Pr[PrivKA,Πcpa(n)=1]≤12+Pr[PrivK_{\mathcal{A},\Pi}^{cpa}(n)=1]\le \frac{1}{2}+Pr[PrivKA,Πcpa?(n)=1]21?+negl(n)(n)(n),則稱該方案Π\PiΠ在選擇明文攻擊下有不可區(qū)分的加密,是滿足CPA安全的。

多次加密的CPA安全

“l(fā)eft-or-right” oracle LRk,b(?,?)LR_{k,b}(\cdot,\cdot)LRk,b?(?,?)

攻擊者輸入等長明文m0,m1m_0,m_1m0?,m1?LRk,b(?,?)LR_{k,b}(\cdot,\cdot)LRk,b?(?,?),如果b=0b=0b=0,輸出c←Enck(m0)c\leftarrow Enc_k(m_0)cEnck?(m0?);如果b=1b=1b=1,輸出c←Enck(m1)c\leftarrow Enc_k(m_1)cEnck?(m1?)

  • “l(fā)eft-or-right” oracle LRk,b(m,m)LR_{k,b}(m,m)LRk,b?(m,m)可以模擬oracle Enck(m)Enc_k(m)Enck?(m)
  • LRk,b(m0,1,m1,1)……LRk,b(m0,t,m1,t)LR_{k,b}(m_{0,1},m_{1,1})……LR_{k,b}(m_{0,t},m_{1,t})LRk,b?(m0,1?,m1,1?)LRk,b?(m0,t?,m1,t?)可以模擬多次加密

不輸入m0,1,……m0,tm_{0,1},……m_{0,t}m0,1?,m0,t?m1,1,……m1,tm_{1,1},……m_{1,t}m1,1?,m1,t?,而選擇分別輸入LRk,b(m0,1,m1,1)……LRk,b(m0,t,m1,t)LR_{k,b}(m_{0,1},m_{1,1})……LR_{k,b}(m_{0,t},m_{1,t})LRk,b?(m0,1?,m1,1?)LRk,b?(m0,t?,m1,t?),是因為加密者每次加密LRk,b(m0,i,m1,i)LR_{k,b}(m_{0,i},m_{1,i})LRk,b?(m0,i?,m1,i?)返回密文cic_ici?給敵手,敵手可以據(jù)此去選擇下一次希望判斷的明文,這樣定義下的敵手能力更強。

含"left-or-right" oracle的多次加密實驗過程

  • 確定b∈{0,1}b\in\{0,1\}b{0,1}
  • 敵手A\mathcal{A}A已知安全參數(shù)1n1^n1n,有一個連接LRk,b(?,?)LR_{k,b}(\cdot,\cdot)LRk,b?(?,?)的oracle(可以詢問LRk,b(?,?)LR_{k,b}(\cdot,\cdot)LRk,b?(?,?)任意多次)
  • 敵手A\mathcal{A}A輸出猜測的b′b'b
  • 如果b′=bb'=bb=b輸出1,否則輸出0。

多次加密的CPA安全定義

私鑰加密方案Π=(Gen,Enc,Dec)\Pi=(Gen,Enc,Dec)Π=(Gen,Enc,Dec)如果對于任意PPT敵手A\mathcal{A}A,都有一個可忽略函數(shù)negl滿足Pr[PrivKA,ΠLR?cpa(n)=1]≤12+Pr[PrivK_{\mathcal{A},\Pi}^{LR-cpa}(n)=1]\le \frac{1}{2}+Pr[PrivKA,ΠLR?cpa?(n)=1]21?+negl(n)(n)(n),則稱該方案Π\PiΠ在選擇明文攻擊下有不可區(qū)分的多次加密,是滿足CPA安全的多次加密

多次加密和單次加密對比

唯密文攻擊/計算安全

考慮計算安全和多次加密下的計算安全。

  • 計算安全:敵手傳m0,m1m_0,m_1m0?,m1?給加密者,加密者選擇mb,b∈{0,1}m_b,b\in\{0,1\}mb?,b{0,1}進行加密得到c←Enck(mb)c\leftarrow Enc_k(m_b)cEnck?(mb?)返回給敵手,敵手猜測b′b'bb′=bb'=bb=b則輸出1,否則輸出0。Pr[PrivKA,Πeav=1]≤12+Pr[PrivK_{\mathcal{A},\Pi}^{eav}=1]\le \frac{1}{2}+Pr[PrivKA,Πeav?=1]21?+negl(n)(n)(n)。具體描述可看3.2節(jié):什么是計算安全
  • 多次加密下的計算安全:敵手傳M0={m0,1……m0,t},M1={m1,1,……m1,t},∣m0,i∣=∣m1,i∣M_0=\{m_{0,1……m_{0,t}}\},M_1=\{m_{1,1},……m_{1,t}\},|m_{0,i}|=|m_{1,i}|M0?={m0,1m0,t??},M1?={m1,1?,m1,t?},m0,i?=m1,i?給加密者,加密者選擇b∈{0,1}b\in\{0,1\}b{0,1}進行加密ci←Enck(mb,i)c_i\leftarrow Enc_k(m_{b,i})ci?Enck?(mb,i?)得到C=(c1……ct)C=(c_1……c_t)C=(c1?ct?)返回給敵手,敵手猜測b′b'bb′=bb'=bb=b則輸出1,否則輸出0。Pr[PrivKA,Πmult=1]≤12+Pr[PrivK_{\mathcal{A},\Pi}^{mult}=1]\le \frac{1}{2}+Pr[PrivKA,Πmult?=1]21?+negl(n)(n)(n)

如果EnckEnc_kEnck?是確定性算法,安全性:多次加密的計算安全>計算安全

選擇明文攻擊/CPA安全

考慮CPA安全和多次加密下的CPA安全。

  • CPA安全:定義含oracle的實驗,Pr[PrivKA,Πcpa(n)=1]≤12+Pr[PrivK_{\mathcal{A},\Pi}^{cpa}(n)=1]\le \frac{1}{2}+Pr[PrivKA,Πcpa?(n)=1]21?+negl(n)(n)(n)
  • 多次加密下的CPA安全:定義含LRk,b(?,?)LR_{k,b}(\cdot,\cdot)LRk,b?(?,?)的實驗,Pr[PrivKA,ΠLR?cpa(n)=1]≤12+Pr[PrivK_{\mathcal{A},\Pi}^{LR-cpa}(n)=1]\le \frac{1}{2}+Pr[PrivKA,ΠLR?cpa?(n)=1]21?+negl(n)(n)(n)

安全性:多次加密的CPA安全=單次加密的CPA安全

總結(jié)

以上是生活随笔為你收集整理的现代密码学3.4--CPA安全,多次加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。