80bit的安全強度意味著什么?
一般所說的80bit,160bit安全強度是對稱密碼學中的概念,它是說要去暴力破解或者說去窮舉私鑰,有\(2^{80}\)次方種可能性,那么一個2048bit的公鑰加密(比如RSA中n是一個1024bit的數)對應的對稱密碼中的安全強度時多少bit呢?大概是幾十bit,大整數n的分解,大概要試\(\sqrt{n}\)次也就是\(2^{1024}\)次,然而對于大整數分解問題,有更好的演算法,所以實際大概需要試\(2^{112}\)次,也就是112bit的安全強度,對于對稱加密,一般密鑰長度是多少bit,那么安全強度就是多少bit,而對于非對稱加密,根據它基于的困難問題,是否存在一些相關的有效解決演算法,一般安全強度沒有密鑰那么長,
離散對數才是困難問題:
對數能畫出連續的函式曲線,怎么是困難問題呢?但是對數mod p 以后它的函式影像是離散的,東一榔頭西一棒槌,變成了一個困難問題,并且對于這個p有要求,要足夠大,才在計算上足夠困難,
兩類安全:
計算安全和資訊論安全:資訊論安全是指它從本質上就無懈可擊,即使是計算力無限的計算機也不能破解它,也稱為無條件安全,相對應的計算安全是目前大多公鑰密碼學原型能保證的,所使用的安全性假設在計算上是安全的,例如大整數因式分解、離散對數假設等等,
承諾的隱藏性concealing和系結性binding:
這是一個簡單的,剪刀石頭布游戲中A對B的承諾:

使用的是哈希函式來完成承諾,這里利用哈希函式的“單向性”和“抗碰撞性”兩大關鍵性質,來完成了承諾需要的兩大性質,單向性保證了承諾的隱藏性,A先出但不讓B知道以防B作弊,抗碰撞性保證了承諾的系結性,使得A找不出其他的隨機值\(R_A^{'}\)來使得\(H(R_A^{'}\parallel stone)=H(R_A\parallel paper)\) ,這樣驗證時A無法用其他值代替之前的承諾防止了A作弊,
三種承諾方案的安全性分析:
- 第一種\(g^x\)非常簡單,利用了離散對數的計算困難性來做的一個承諾,它在隱藏性上是計算安全的,在系結性上是資訊論安全的,(素數階回圈群,每個元素都是獨一無二的,不存在值一樣指數不一樣的元素,)
- 第三種\(h^xg^a=g^{bx+a}\)是第一種的改進,第一種還是有可能泄露關于x的資訊(因為是計算安全的),這樣只能泄露bx+a,隱藏并保護了x,它在隱藏性上是資訊論安全的,在系結性上是計算安全的,因為有可能可以找到\((x^{'},a^{'})\)使得\(h^xg^a=h^{x^{'}}g^{a^{'}}\),這里h很重要,它不能透露給任何人它是g的多少次方(保密b),也不能簡單的選為g,因為如果選為g,承諾方案變為\(g^{x+a}\)將完全失去系結性,隨意構造(x+1),(a-1),
- 第二種\((g^a,xh^a)\)是利用了CDH問題的計算困難性來做的一個加密承諾,(用的ElGamal的加密,但是你別考慮解密,因為承諾本來就是單向的,這里沒有人知道b,但是在ElGamal中b是私鑰,所以這里無法解密,)它的隱藏性是計算安全的,它的系結性是資訊論安全的,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/456187.html
標籤:其他
上一篇:無監督學習-K-means演算法
