Public-Key
對手會被看似隨機但實際上是固定的輸入所愚弄嗎?
我想證明簽名方案的 EUF-CMA 安全性。它是已建立方案的變體,因此我希望將新方案安全性減少為舊方案安全性。
(非常抽象的)結構
讓舊方案稱為 S 並讓 k 表示一個數字。在 S 中,k 是固定的,例如 k=5。想像一下,新方案 N 是相同的,只是 k 變得隨機和秘密(因為它現在與密鑰材料相關)。因此,k=5 在理論上仍然是可能的,但也可能是 1,2,3,.. 並且 k=5 與 k = 任何其他數字一樣可能。
需要知道 k 來驗證簽名,而 k 的作用類似於對稱密鑰。該設置是您想要辨識單個發件人但仍共享對稱密鑰的組。
減少嘗試
對手可能會向預言機查詢不同的 k 值,而挑戰者可以簡單地隨機抽取它們。但是,在挑戰設置中,它可能顯然不知道k,這是秘密的。現在,如果攻擊者被欺騙輸出 k=5 的簽名,則很容易降低一種方案的安全性。則 N 的安全性可以簡化為 S 的安全性。
對手無法從密鑰材料或簽名或驗證方程中分辨出 k=5(因為一切仍然看起來是隨機的),除非它可以打破 DLog 假設。
所以問題是:
- 攻擊者可以通過嘗試使用 k=5 驗證簽名來輕鬆檢查挑戰設置中的 k=5 還是 k!=5。如果對手在挑戰設置中發現 k=5,是否會意識到它不是與方案互動,而是與“模擬”互動?(在這種情況下,據我了解,它不會輸出簽名而是中斷遊戲。)或者從對手的角度來看,5 是一個很好的數字?
- 我不能針對不同的對手以不同的方式玩遊戲,這取決於他們是否計算 k,因為我對 A 的工作原理一無所知 - 對嗎?(參見 Katz, Lindell, Introduction to Modern Cryptography, pg.59)或者我可以對“DLog-Breakers”和“DLog-Ignorants”進行不同的處理嗎?
如果對手在挑戰設置中發現 k=5,是否會意識到它不是與方案互動,而是與“模擬”互動?
這通常被稱為Kerckhoff’s Principal,我更喜歡將其稱為 Shannon’s Maxim (他們都這麼說,而 Shannon’s Maxim 聽起來更好)。這個想法是,如果要被認為是安全的,則應該假設攻擊者知道有關安全系統的所有資訊,但密鑰除外。因此,必須假定對手知道您可以在價值方面對他們撒謊 $ k $ .
此外,如果簽名方案涉及能夠謊報哪些簽名有效或無效的預言機,則它不能被認為是安全的。因此,如果系統要完全安全,它對攻擊者的行為必須與合法驗證者一樣。