Geffe序列生成器及安全性

2021-10-03 18:53:24 字數 1243 閱讀 5745

geffe序列生成器由三個長度為l1,l2,l3的最長lfsr定義組成,其中l1,l2,l3兩兩互素其中lfsr2作為控制生成器使用。其非線性組合函式為:

f (x

1,x2

,x3)

=x1x

2⊕x2

x3⊕x

3f(x_1,x_2,x_3)=x_1x_2\oplus x_2x_3\oplus x_3

f(x1​,

x2​,

x3​)

=x1​

x2​⊕

x2​x

3​⊕x

3​其金鑰流週期為 (2l1-1) (2l2-1) (2l3-1)

線性複雜度為 l=l1l2+l2l3+l3

結構圖為

當lfsr2輸出為1時,lfsr2與lfsr1相連線;當lfsr2輸出0時,lfsr2與lfsr3相連線。若設lfsri的輸出序列為(a(i)

k}(i=1,2,3),則輸出序列(bk)可以表示為

b k=

ak1a

k2+a

k3ak

1‾=a

k1ak

2+ak

3ak2

+ak3

b_k=a_k^1a_k^2+a_k^3\overline=a_k^1a_k^2+a_k^3a_k^2+a_k^3

bk​=ak

1​ak

2​+a

k3​a

k1​​

=ak1

​ak2

​+ak

3​ak

2​+a

k3​geffe生成器實際上認為是不夠安全的。

雖然這個發生器從理論上來看似乎很好,但是實質上你是乙個很弱的密碼,不能夠抵禦相關的攻擊。

這是因為發射器的輸出有75%與lfsr1的時間係數相同。因此若已知lfsr的級數n1和各級的係數c1,c2,…,cn1,便能猜出lfsr1的初始值和暫存器所輸出的序列,就可猜出lfsr2 的輸出中與這個發射器的相同的次數。如果猜對了,這兩個序列相同的概論就是75%,若猜錯了,兩個序列相同的概率為50%。

類似的 ,發射器輸出與lfsr3的輸出相等的概論為75%,有了這種相關性,金鑰序列發生器很容易被破譯。

例如,如果三個本原多項式都是三項,其中最大長度為n,那麼僅需要37n的一段輸出序列就能夠重構這三個lfsr的內部狀態。

序列號生成器

生成序列號,最大值為max val。如果達到max val,從0開始。public class serialgenerator return serialno 求整數有幾位,如234是3位。param i return private static final int getrnum int i i...

Oracle序列生成器

三 序列裂縫 四 修改序列 五 刪除序列 在實際開發中,設計資料表的時候會把某些字段定義成乙個自動增長的 唯一的流水號,例如記錄編號 日誌編號等,mysql和sql server採用的是自增欄位,oracle和postgresql採用了更靈活的序列生成器。在本文中,把序列生成器簡稱為序列。建立序列的...

Oracle序列生成器

三 序列裂縫 四 修改序列 五 刪除序列 在實際開發中,設計資料表的時候會把某些字段定義成乙個自動增長的 唯一的流水號,例如記錄編號 日誌編號等,mysql和sql server採用的是自增欄位,oracle和postgresql採用了更靈活的序列生成器。在本文中,把序列生成器簡稱為序列。建立序列的...