引言:可證安全即用數值去衡量證明這個東西的安全性。當你把乙個東西鎖進保險箱裡,你要怎麼去證明你的保險箱是安全的呢?只有你有鑰匙這個保險箱就是安全的嗎?如果我拿原子彈去轟炸,是不是就能開啟保險箱?通俗來講,如果你能證明有一堵牆,原子彈也沒辦法炸毀它,那麼你在這堵牆後面做任何事情,都是安全的,這個安全性也可以被證明——連原子彈都無法炸毀的安全性。
——區分兩個分布
1、假如有一枚「正常」的硬幣,無論怎麼扔都是正面朝上。同時有一枚「異常」的硬幣,無論怎麼扔都是反面朝上。假設丟擲正面b為1,丟擲反面b為0.那麼如何判斷d(x)演算法的優勢呢?
這個答案很簡單
用d來判斷正確的概率pr(b'=b)
b=1時,x1=1,d(x1)輸出1.
b=0時,x2=0,d(x2)輸出0;
那麼這個演算法的正確率為1,pr(b'=b)=1。
d的優勢(advantage):
adv(d) = |pr(b=b')-1/2|
如果這個演算法總是猜對或者猜錯,優勢都是1/2。
如果這個演算法完全隨機,那麼概率就是1/2,adv(d)=0
為什麼要減去1/2?一般而言,瞎猜也有一半的機率是對的,所以要減去1/2。
為什麼猜錯優勢也是1/2呢?打個比方,如果有個人買大小,他總是能買到錯的那乙個,那麼你只要跟著他反著買,你就能贏。這是一種反向思維。
2、假如有一枚「正常」的硬幣,出現正面反面的概率都是1/2,異常的硬幣反面是2/3,正面是1/3。假設丟擲正面b為1,丟擲反面b為0.那麼如何判斷d(x)演算法的優勢呢?
仍然是求pr(b』=b)的概率,進而求出adv(d)
d1d2
d3d4x10
101x2
0110
adv(d)00
|-1/12|
1/12
雖然d3和d4的adv(d)值一樣,但是我們根據直覺會認為d4更好(不用反著選)
上面的兩個分布通過計算優勢來證明它的安全性,優勢越接近1/2,這個演算法越安全。
加密演算法而言,這個結果越難被計算機計算出來,那麼它就越安全,具體的衡量指標為位元計算。
困了……看這個文章吧……
公鑰密碼學
相比1976年以前的密碼學思想,公鑰密碼學可以在不直接傳遞金鑰的情況下,完成密文的解密。這個演算法機制啟發了其他科學家,人們認識到,加密和解密可以使用不同的規則,只要這兩種規則之間存在某種對應關係即可,這樣就避免了直接傳遞金鑰。基於這種公鑰機制的思想,開始出現了一系列非對稱加密演算法。下圖比較說明了...
公鑰與私鑰,公鑰密碼學
數字簽名是什麼?翻譯 阮一峰 原文 1.鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。2.鮑勃把公鑰送給他的朋友們 帕蒂 道格 蘇珊 每人一把。3.蘇珊要給鮑勃寫一封保密的信。她寫完後用鮑勃的公鑰加密,就可以達到保密的效果。4.鮑勃收信後,用私鑰解密,就看到了信件內容。這裡要強調的是,只要鮑勃的私鑰不洩...
密碼學07 公鑰密碼體制
基本概念和原理 存在乙個金鑰管理中心kmc,其中有乙個公鑰資料庫pkdb,這裡存放使用者的公鑰,許可權為共享,即任何人都能查到別人的公鑰。無論是傳送方a還是接收方b,都有乙個個人公鑰pk和乙個個人私鑰sk,公鑰用於加密,私鑰用於解密。對稱密碼體制的加密和解密演算法都是公開的。數字簽名最常見的實現方法...