王維瓊,許豪杰,崔萌,謝瓊
(長安大學理學院,陜西 西安 710064)
對稱加密算法為保障數(shù)據(jù)存儲安全和通信網(wǎng)絡信息傳輸安全提供了有力的理論基礎和技術支撐。布爾函數(shù)是對稱加密算法的核心部件,其密碼學性質的好壞直接決定了對稱密碼算法的安全性。為了抵抗各種攻擊,一個安全的密碼系統(tǒng)中所使用的布爾函數(shù)需滿足很多性質,例如平衡性、高非線性度、低自相關性、高代數(shù)次數(shù)、高相關免疫階、高代數(shù)免疫度以及高抵抗快速代數(shù)攻擊能力等。但這些密碼學性質之間存在著復雜的相互制約關系,因此,如何找到各方面密碼學性質都較為優(yōu)良的布爾函數(shù)是密碼學領域的一個研究重點和難點。
目前,解決該問題的方法主要有兩類,一類是借助代數(shù)和組合的理論進行構造,另一類是利用啟發(fā)式算法進行搜索。學者們在布爾函數(shù)構造方面得到了許多結果[1-5]。Carlet 等[6]構造了一類非線性度下界為且滿足最優(yōu)代數(shù)免疫度和高抵抗快速代數(shù)攻擊能力的n元平衡布爾函數(shù),遺憾的是該類函數(shù)不具有一階彈性。Tu 等[7]基于PS 類函數(shù)構造了一類具有最優(yōu)代數(shù)免疫度、最優(yōu)代數(shù)次數(shù)和高非線性度的平衡布爾函數(shù),又稱Tu-Deng函數(shù),而后Tu等[8]對Tu-Deng函數(shù)進行了修改,得到了一類非線性度下界為且滿足一階彈性、最優(yōu)代數(shù)免疫度和最優(yōu)代數(shù)次數(shù)的布爾函數(shù),但該類函數(shù)未考慮抵抗快速代數(shù)攻擊能力這一指標。Zhang 等[9]通過對PS-類bent 函數(shù)進行修改,構造了一類變元個數(shù)為偶數(shù)、非線性度為且滿足一階彈性的布爾函數(shù),該結果是目前已知的偶變元一階彈性函數(shù)非線性度的最優(yōu)結果,遺憾的是該構造方法僅適用于偶數(shù)變元的布爾函數(shù)。已知的構造方法普遍存在的問題是難以在構造時兼顧所有的密碼學指標,一般是針對少數(shù)幾個指標來構造函數(shù),然后通過對某個特例進行修改來滿足其他性質。結合一些理論結果的啟發(fā)式搜索算法可以彌補構造法的這一缺陷,得到代數(shù)構造法無法得到的布爾函數(shù),例如Saber 等[10]利用啟發(fā)式搜索算法得到了一些非線性度為240、彈性階為3、代數(shù)次數(shù)為5 的9 元布爾函數(shù);Liu 等[11]利用模擬退火算法得到了一些非線性度為488、彈性階為2、代數(shù)次數(shù)為7 的10 元布爾函數(shù)。遺憾的是,文獻[10-11]中搜索到的布爾函數(shù)雖然足夠優(yōu)良,但是只針對9 元或10 元的布爾函數(shù),不具有普適性。Yang 等[12]基于模擬退火算法和爬山算法對8~14 元的布爾函數(shù)進行搜索,賈少帥等[13]基于引力搜索算法對8 元和9 元的布爾函數(shù)進行搜索,都搜索到了具有一階彈性、較高非線性度、最優(yōu)代數(shù)次數(shù)、最優(yōu)(次優(yōu))代數(shù)免疫度以及次優(yōu)抵抗快速代數(shù)攻擊能力的布爾函數(shù)。利用啟發(fā)式算法研究布爾函數(shù)的成果還有很多[14-18],在此不再贅述。
本文期望在保證高非線性度和一階彈性這2 個最重要的密碼學指標的前提下,獲得其他密碼學性質也足夠優(yōu)良的布爾函數(shù)。以高非線性度、低自相關性、一階彈性為優(yōu)化目標,以最優(yōu)代數(shù)次數(shù)、最優(yōu)代數(shù)免疫度、最優(yōu)(次優(yōu))抵抗快速代數(shù)攻擊能力為約束條件,本文設計了新的代價函數(shù),并在禁忌搜索(TS,tabu search)算法和爬山(HC,hill climbing)算法的基礎上進行改進,提出了一種混合禁忌搜索(HTS,hybrid tabu search)算法。應用該算法對8~14 元的布爾函數(shù)進行搜索,得到了若干滿足上述所有密碼學指標的布爾函數(shù)。以隨機生成的平衡布爾函數(shù)作為初始輸入,除了10 元布爾函數(shù)需要嘗試多個輸入之外,本文算法可以搜索到滿足上述密碼學性質的全部布爾函數(shù),彌補了一些構造方法受限于變元個數(shù)的奇偶性,且構造出的函數(shù)只能滿足部分密碼學性質等缺陷。相較于已有的啟發(fā)式搜索算法,本文算法搜索到的布爾函數(shù)的密碼學性質更為優(yōu)良,且數(shù)量更多。
定義1設F2為二元域為F2上的n維向量空間,n元布爾函數(shù)就是從到F2上的一個映射。
記Bn為所有n元布爾函數(shù)的集合,對任意的f∈Bn,可以用多種方法來表示,例如代數(shù)正規(guī)型、真值表等。 f 的代數(shù)正規(guī)型為
當deg(f)=1時,稱 f 為仿射函數(shù);當deg(f)=1且f的常數(shù)項為0 時,稱f為線性函數(shù);當deg(f) > 1時,稱f為非線性函數(shù)。
f 的真值表為
定義2對于任意的n元布爾函數(shù)f,其在處的Walsh 變換定義為
定義3對于任意的n元布爾函數(shù)f,其非線性度定義為
其中,An表示所有n元仿射函數(shù)的集合,dH(f ,l)=wt(f ⊕ l)表示f和l之間的漢明距離。由非線性度Nf與Walsh 變換的定義不難得出
定理1[20]Xiao-Massey 定理。一個n元布爾函數(shù)f是m階相關免疫的,當且僅當對任意的
若f滿足m階相關免疫的同時還是平衡的,則稱f為m階彈性布爾函數(shù)。
定理2[21]對任意的m階彈性函數(shù) f∈Bn,其代數(shù)次數(shù)deg(f)與彈性階m之間滿足如下關系
定義4對于任意的n元布爾函數(shù)f,其在處的自相關函數(shù)定義為
度量布爾函數(shù) f∈Bn自相關性的常用指標為絕對值與平方和[22],計算式分別為
不難證明,自相關平方和指標與Walsh 變換之間有如下關系[23]
定義5設 f ,h∈Bn,若fh=0,則稱h為f的零化子[24]。 f 的所有零化子的集合為
定義6設 f∈Bn,其代數(shù)免疫度定義為[25]AI(f)=min{deg(h) | h∈AN(f) ∪AN(f ⊕1),h ≠ 0,h∈Bn}
FAA(f)越大,f抵抗快速代數(shù)攻擊能力越強。當FAA(f)=n時,稱f抵抗快速代數(shù)攻擊能力為最優(yōu)的;當FAA(f)=n-1時,稱f抵抗快速代數(shù)攻擊能力為次優(yōu)的。
禁忌搜索算法由Glover[27]于1986 年提出,并于1989 年和1990 年進行進一步的完善[28-30]。禁忌搜索算法基于對人類記憶功能的模仿,是一種迭代型的全局鄰域優(yōu)化算法。如何通過修改真值表來得到密碼學性質更好的布爾函數(shù)本質上屬于一個組合優(yōu)化問題,而禁忌搜索算法在組合優(yōu)化等領域的成功應用為這一問題的解決提供了一種新思路。
禁忌搜索算法有許多優(yōu)點,例如選取優(yōu)良解的概率遠大于選取劣解的概率;通過“禁忌”來避免算法陷入局部最優(yōu);所有候選解的代價函數(shù)值都弱于當前最優(yōu)解時,會接受“弱解”等。但同時禁忌搜索算法也有一定的缺點:一是對初始解有較強的依賴性;二是迭代過程是串行的,因此收斂速度較慢。爬山算法可以很好地解決這2 個問題,它是一種基于貪心思想的算法,每次移動都只接受比當前解狀態(tài)更優(yōu)的解,到達某個“峰頂”就停止移動。其優(yōu)點是實現(xiàn)過程較為簡單且收斂速度快,缺點是很容易陷入局部最優(yōu)解,因為所到達的“峰頂”可能并不是全局最優(yōu)解。
結合TS 算法和HC 算法的優(yōu)點,本文提出了一種搜索能力更強、執(zhí)行速度更快的優(yōu)良布爾函數(shù)搜索算法——HTS 算法。一方面,由HC 算法生成初始解可以解決TS 算法對初始解的依賴性;另一方面,在TS 算法每次迭代結束后對當前最優(yōu)解執(zhí)行HC 算法,可以提高HTS 算法的收斂速度。HTS算法流程如圖1 所示。
2.1.1 鄰域解的選取
滿足平衡性是一階彈性布爾函數(shù)的必要條件。為了保證所生成的鄰域解的平衡性,本文中HTS算法的鄰域移動方式采用2 -opt,即交換布爾函數(shù)真值表中2 個不同值的位置。對于一個n元布爾函數(shù)f,其2 -opt鄰域的大小為。若選取整個鄰域作為候選解,則計算量相當龐大,算法迭代時間也會過長,因此隨機性地從2 -opt鄰域中選取一部分解作為候選解是更好的選擇。
2.1.2 禁忌對象及禁忌表長度的選取
禁忌對象通常可以選取解本身或者代價函數(shù)值等,由于選取代價函數(shù)值作為禁忌對象可能會錯失優(yōu)良解,而且布爾函數(shù)真值表本身就是二進制編碼形式,因此本文選取布爾函數(shù)本身作為禁忌對象。禁忌表的更新方式采用先入先出規(guī)則,即禁忌表每次更新時,將要禁忌的對象放到禁忌表的末端,而最早進入禁忌表的禁忌對象將從禁忌表中釋放。禁忌長度就是禁忌表的長度,即處于禁忌表末端的禁忌對象在不被特赦的情況下被釋放時所經歷的禁忌表更新次數(shù)。若禁忌長度過大,則容易造成算法收斂速度過慢以及存儲量過大;若禁忌長度過小,則容易使算法在尋優(yōu)時陷入“迂回”搜索。本文中HTS算法的禁忌長度為其中num_cs 為候選解的個數(shù)。
2.1.3 特赦準則
禁忌搜索算法中的“禁忌”不是絕對的禁止,當存在一個優(yōu)于當前最優(yōu)解的禁忌候選解時,特赦準則的作用就是將這個禁忌候選解解禁,從而實現(xiàn)更優(yōu)的性能。本文中HTS 算法的特赦準則是基于代價函數(shù)值的準則,即若某個禁忌候選解的代價函數(shù)值優(yōu)于當前最優(yōu)解,就從禁忌表中解禁此候選解并更新該候選解為當前最優(yōu)解。
2.1.4 代價函數(shù)
代價函數(shù)決定了算法優(yōu)化的方向,對算法優(yōu)化的結果起著至關重要的作用。以高非線性度、低自相關性、一階彈性為優(yōu)化目標,以最優(yōu)代數(shù)次數(shù)、最優(yōu)代數(shù)免疫度、最優(yōu)(次優(yōu))抵抗快速代數(shù)攻擊能力為約束條件,本文提出了2 個代價函數(shù)。
圖1 HTS 算法流程
懲罰項中K的值不是定值,K值過大會導致除一階彈性外的其他密碼學性質變差,K值過小會導致一階彈性缺失,因此K值的選取應當適中。對任意的滿足wt(α)=1的α 共有n個,在整個空間中的占比為可知,當n> 1時,這個比值會隨著n的增大而減小,因此K值的大小應隨著n的增大而增大。經過反復實驗,K值的選取如表1 所示。
表1 K 值的選取
由于在HTS 算法中使用代價函數(shù)cost1(f)所得到的一階彈性布爾函數(shù)的非線性度未達到期望值,因此需要對代價函數(shù)進行修正。在滿足一定條件的情況下,線性變換[31]可以在保持非線性度以及自相關絕對值指標等密碼學性質不變的同時,將布爾函數(shù)的彈性階由0 變?yōu)?。因此,第二個代價函數(shù)先不考慮一階彈性這一優(yōu)化目標。由于Bent 函數(shù)具有最大的非線性度以及最小的自相關絕對值,且對任意的都有平衡布爾函數(shù)的非線性度及自相關性雖然無法達到Bent 函數(shù)的結果,但通過使布爾函數(shù)的Walsh 譜值的絕對值逼近可以使布爾函數(shù)逐漸逼近Bent 函數(shù)這兩方面的性質。因此在HTS算法中引入第二個代價函數(shù),即
2.1.5 終止準則
為了避免算法在搜索的過程中錯失符合條件的布爾函數(shù)或者進行多余的迭代,除了設置最大迭代次數(shù)max_iter 這一終止準則外。針對不同的代價函數(shù)設置了不同的提前終止準則。本文算法使用代價函數(shù)cost1(f)時所對應的提前終止準則為
2.1.6 HTS 算法中的爬山算法
除了減少HTS 算法對初始解的依賴性以及提高算法的收斂速度之外,還需HC 算法在優(yōu)化過程中進一步提高布爾函數(shù)的非線性度這一優(yōu)化目標。由式(6)可知,對任意的越小,f的非線性度就越大。因此,與2.1.4 節(jié)中的代價函數(shù)不同,HC 算法所采用的代價函數(shù)為。在HC 算法的具體步驟中,本文還引入了一種深度優(yōu)先搜索的思想,具體步驟如算法1 所示。
算法1HC 算法
步驟1輸入n元平衡布爾函數(shù)f的真值表,計算其代價函數(shù)值
步驟2 令 i=1,并記f的單點優(yōu)化集合C0和1C 都為空。
2.1) 對f真值表第i個位置的值進行取反,并將其記為g,計算g的代價函數(shù)值若,轉到步驟2.2);否則,轉到步驟2.3)。
2.2) 若 g (i)=1,將i加入C0;否則,將i加入1C。
2.3) 令i=i+1,若 2ni≤,轉到步驟2.1);否則,執(zhí)行步驟3。
步驟3判斷C0或1C 是否為空集,若是,則算法結束,輸出f為最優(yōu)解;否則,執(zhí)行步驟4。
步驟4令 C=C0×C1(集合的笛卡兒積),記集合C中位置對的個數(shù)為num_C,令j=1,flag=0。
4.1) 記集合C中第j個位置對為 C (j),對f的真值表的 C (j) 位置處的值進行取反,并將其記為h,計算h的代價函數(shù)值若那么令f=h,flag=1,并再對f執(zhí)行爬山算法;否則,執(zhí)行步驟5。
4.2) 令j=j+1,若 j≤ num_C,轉到步驟4.1);否則,執(zhí)行步驟5。
步驟5若flag=0,則算法結束,輸出最優(yōu)解f。
下面,給出算法1 執(zhí)行的一個實例。
2.2.1 算法改進
由于傳統(tǒng)的禁忌搜索算法在每次迭代過程中是串行的,即首先逐一計算每個候選解的代價函數(shù)值,然后將每次計算的結果與當前最優(yōu)代價函數(shù)值進行比較,以此確定是否要更新當前最優(yōu)代價函數(shù)值和禁忌表。因此,當前最優(yōu)代價函數(shù)值和禁忌表在迭代過程中是動態(tài)變化的,從而導致傳統(tǒng)禁忌搜索算法無法使用并行計算,當候選解的個數(shù)較多時,算法運行速度會很慢。對此,除了引入HC 算法來提高算法的收斂速度之外,本文還做了如下改進來提高算法的運行速度。在每次迭代時,將計算候選解的代價函數(shù)值與更新當前最優(yōu)代價函數(shù)值和禁忌表分開進行,即首先使用并行計算得到所有候選解的代價函數(shù)值,并選取代價函數(shù)值最優(yōu)的候選解作為當前最優(yōu)解,然后將那些順序在當前最優(yōu)解之后且代價函數(shù)值劣于迭代前最優(yōu)代價函數(shù)值的候選解全部舍棄,此時更新當前最優(yōu)代價函數(shù)值和禁忌表只需要按先后順序對所保留的候選解進行判斷。
表2 算法改進前后運行時間對比
2.2.2 算法步驟
將改進后的TS 算法與HC 算法相結合,就得到了如算法2 所示的HTS 算法。
算法2HTS 算法
步驟1輸入候選解個數(shù)num_cs、禁忌長度len_tabu、最大迭代次數(shù)max_iter 以及非線性度期望值exp_Nf,令禁忌表tabu 為空表。
步驟2隨機生成一個平衡布爾函數(shù) frand,對其執(zhí)行HC 算法,將HC 算法的執(zhí)行結果f作為初始解,判斷f是否滿足終止條件term(f),若滿足,則算法結束,輸出f為最優(yōu)解;否則,計算f的代價函數(shù)值cost(f),令當前最優(yōu)解best_ f=f以及當前最優(yōu)代價函數(shù)值best_cost=cost(f),記迭代次數(shù)iter 為0。
步驟3在best_ f 的2-opt 鄰域中隨機選取num_cs 個候選解,并計算所有候選解的代價函數(shù)值。
步驟4判斷是否存在某個候選解cf 滿足終止條件term(cf),若存在,則算法結束,輸出cf 為最優(yōu)解;否則,執(zhí)行步驟5。
步驟5計算所有候選解中的最優(yōu)代價函數(shù)值min_cost,并與best_cost 進行比較,若min_cost< best_cost,則更新當前最優(yōu)解best_ f 為min_cost 所對應的候選解,執(zhí)行步驟6;否則,執(zhí)行步驟7。
步驟6對候選解進行篩選,只保留那些順序在best_ f 之前(包括best_ f )并且代價函數(shù)值小于best_cost 的候選解。記篩選后的候選解的個數(shù)為num_cs_rem,令 i=1,
6.1 ) 將第i個保留的候選解的代價函數(shù)值cost(fi)與 best_cost 進行比較,若cost(fi)< best_cost,則更新保留的候選解中最優(yōu)代價函數(shù)值best_cost=cost(fi),轉到步驟6.2);否則,轉到步驟6.3)。
6.2 ) 判斷fi是否在禁忌表tabu 中,若是,則fi滿足特赦準則,此時更新禁忌表,先將fi從禁忌表tabu 中解禁,再將fi加入禁忌表中;否則,將fi加入禁忌表tabu 中,更新禁忌表,執(zhí)行步驟7。
6.3 ) 令i=i+1,若 i≤ num_cs_rem,則返回步驟6.1);否則,執(zhí)行步驟8。
步驟7此時要接受弱解,即從所有不屬于禁忌表的候選解中選取一個代價函數(shù)值最優(yōu)的解作為best_f,并更新最優(yōu)代價函數(shù)值best_cost 為best_ f 的代價函數(shù)值,將best_ f 加入禁忌表tabu中,更新禁忌表,執(zhí)行步驟8。
步驟8對best_f 執(zhí)行HC 算法,將優(yōu)化后的函數(shù)記為hc_ f,判斷hc_ f 是否滿足終止條件term(hc_ f),若滿足,則算法結束,輸出hc_ f 為最優(yōu)解;否則,執(zhí)行步驟9。
步驟9令iter=iter+1,若iter< max_iter,轉到步驟3;否則,對best_ f 執(zhí)行爬山算法并將優(yōu)化后的函數(shù)hc_ f 輸出為最終結果。
下面,給出算法2 執(zhí)行的一個實例。
例2輸入num_cs=50、len_tabu=1、max_iter=200、exp_Nf=12,代價函數(shù)為cost2(f),以例1最終的輸出 f= (11 11 0010 0000 0000 0100 1111 1110 0111)作為初始解,且f不滿足終止條件,令best_ f=f,best_cost= cost2(f)=1.51 × 107。執(zhí)行步驟3 和步驟4,不存在候選解滿足終止條件。執(zhí)行步驟5,有 min_cost=6.12 × 106。令best_ f=(11 11 0010 0000 00 10 01 00 11 01 1110 01 11),執(zhí)行步驟 6,更新禁忌表及best_cost=min_cost=6.12 × 106。執(zhí)行步驟8,對best_ f 執(zhí)行算法1,執(zhí)行后的輸出為hc_ f= (01 11 0010 10 00 001 0 0100 11 01 1110 01 11),hc_ f 滿足終止條件,算法2 結束,輸出hc_ f。
對 hc_ f 進行線性變換得 hc_ f′=(0101 1000 1100 0111 0111 1001 0010 1010),至此,就得到了一個非線性度為12、自相關絕對值為8、代數(shù)次數(shù)和代數(shù)免疫度為3、抵抗快速代數(shù)攻擊能力為4 的5 元一階彈性布爾函數(shù)。對5 元一階彈性布爾函數(shù)而言,除抵抗快速代數(shù)攻擊能力為次優(yōu)之外,hc_ f′的其他密碼學指標均達到了最優(yōu)。
本文的實驗環(huán)境是主頻為2.5 GHz 的Intel core i5-7300HQ 處理器,內存為8 GB,編程軟件采用MATLAB 2019a。對8~14 元的布爾函數(shù)進行搜索時,一些參數(shù)的選取如表3 所示。
表3 參數(shù)的選取
由于所得到的結果都是具有一階彈性的布爾函數(shù),為了方便表示,將布爾函數(shù)的密碼學性質用(Nf,Δf,deg,AI,FAA)表示,其中,Nf為非線性度,Δf為自相關絕對值,deg 為代數(shù)次數(shù),AI 為代數(shù)免疫度,F(xiàn)AA 為抵抗快速代數(shù)攻擊能力。在HTS算法中,代價函數(shù)算法)與算法)的結果對比如表4 所示。
表4 算法與算法的結果對比
表4 算法與算法的結果對比
下面,具體分析表5 中各個密碼學指標的對比結果。
1) 代數(shù)次數(shù)。由定理2 中代數(shù)次數(shù)與彈性階的關系可知,除文獻[9]中12 和14 元布爾函數(shù)的代數(shù)次數(shù)之外,表5 中其他布爾函數(shù)的代數(shù)次數(shù)都達到了最優(yōu)。
2) 代數(shù)免疫度。當n為偶數(shù)時,表5 中布爾函數(shù)的代數(shù)免疫度全部達到最優(yōu)。當n為奇數(shù)時,本文算法搜索得到的布爾函數(shù)的代數(shù)免疫度也全部達到最優(yōu);文獻[12-13]結果中的布爾函數(shù)的代數(shù)免疫度是次優(yōu)的;而文獻[8-9]的結果是基于Bent 函數(shù)構造的,未能給出奇數(shù)元的結果。
3) 抵抗快速代數(shù)攻擊的能力。文獻[12-13]以及本文算法得到的布爾函數(shù)的抵抗快速代數(shù)攻擊能力都達到了 n-1(次優(yōu));Carlet[32]證明了文獻[8]中所構造的布爾函數(shù)的抵抗快速代數(shù)攻擊能力較弱;文獻[9]的結果中,除8 元布爾函數(shù)之外,其他布爾函數(shù)的抵抗快速代數(shù)攻擊能力皆未達到次優(yōu)。
表5 一階彈性布爾函數(shù)的密碼學性質對比
5) 自相關性。與上述4 個密碼學性質不同,對一個布爾函數(shù)而言,其自相關絕對值越小,該布爾函數(shù)的自相關性就越好。本文算法搜索得到的布爾函數(shù)的自相關絕對值優(yōu)于文獻[12-13]的結果;當n=12時,文獻[9]中布爾函數(shù)的自相關絕對值優(yōu)于本文算法的結果;而文獻[8]中未考慮這一性質。
本文以高非線性度、低自相關性、一階彈性為優(yōu)化目標,以最優(yōu)代數(shù)次數(shù)、最優(yōu)代數(shù)免疫度、最優(yōu)(次優(yōu))抵抗快速代數(shù)攻擊能力為約束條件,提出了2 個代價函數(shù)。本文在HC 算法和TS 算法上進行改進,得到了一種新的布爾函數(shù)快速生成算法——HTS 算法。與傳統(tǒng)的TS 算法相比,HTS 算法不僅搜索能力更強,而且運行速度也更快。利用本文算法對8~14 元的布爾函數(shù)進行搜索,得到了滿足幾乎所有密碼學性質的布爾函數(shù)。當n=8,10時,本文算法得到的一階彈性布爾函數(shù)的非線性度都達到了目前已知的最大值。與其他啟發(fā)式算法相比,本文算法的搜索能力更強,所得的結果也更好。不同于文獻[8-9]中的代數(shù)構造法所存在的一些局限性,本文算法不僅對變元個數(shù)為奇數(shù)時的情形也同樣適用,而且以隨機生成的平衡布爾函數(shù)作為初始輸入(除了10 元布爾函數(shù)需要嘗試多個輸入之外),可以搜索到滿足上述密碼學性質的全部布爾函數(shù)。
附錄
n=8,(116,24,6,4,7)
3639 7756 304C C72F D09F 425A F13A 1E49 0972 ED40 EAA7 C1F8 BE95 AAC9 D843 462F
n=9,(236,48,7,5,8)
3EA4 427D EF09 C463 2F64 E3B0 B950 9D14 4A2A CD57 42BD ACFC 5882 179A 2F9A CEAE A11F B352 E489 2775 36EB E145 F17E 02DC 8C86 26ED 61F5 2E60 1F57 7D32 781C A071
n=10,(488,72,8,5,9)
CAAC 4954 3C59 39D1 C724 B6FB B2E7 89F4 AD63 4BFA 8250 FA13 2D4E FA02 2247 9A0A 7968 3E1B 9983 3146 4CE4 53A7 6B42 5C92 0FE3 B3F4 668F 78E4 2071 79DC 7BD3 267A F70B 5EBB E015 4EE7 5C40 BC7C 17A0 19AE 794D 0121 775F 2A2F FA1C EC6A 621C 59CC CCB1 C0A4 1C6F 07C5 DFC0 AEE2 81EF 7852 3205 4339 DF9E 8835 059F 10D8 79EC 3DB6
n=11,(988,104,9,6,10)
0D0D 65C0 7F85 16AF 82DF 0126 C7CF 47DD 9734 985F 71F2 3A65 2DA9 B6F7 2985 5AF3 118C A003 7568 9D9F 20D4 97BC 7920 3681 0163 F04C 3CC9 C9A9 6D36 43CB 0FC3 8674 B5A0 EF5E A548 D121 9E1B 9A44 C578 6291 3EB2 0174 F0BA 93B3 8D73 C8D7 3488 BFAC 8F18 C399 59E0 4FC8 E455 963B C7FB 354D D3A5 E86F 7837 1A1B B191 E8BE BE44 629F FFE5 0D2D 1FF3 9534 C876 EEA9 11A5 74D2 7EE0 1468 0730 400F E963 ECED 0C76 3B62 2B76 D5D7 3FCA C9CA AB98 EA20 9B7F CAB9 08CD 2E02 F847 9B23 53E6 F440 8BA3 6D95 5612 EAF6 4AAB CC73 510F 6DA3 E598 56B2 0810 B4F9 736B 40A0 91BD 5ABE 9480 82CF 155D 7A66 BBCA 2643 4984 1DA6 88C9 88C0 FD5E 5DEB 7DB3 2BAD 6957 E082 73A4 CF01
n=12,(1996,152,10,6,11)
A8C7 C7A5 ABB9 6349 3704 C774 EF9F C0DA CB92 BFA8 AB54 4315 077B A0B3 984D DA89 B55B 2CAA 4D28 A082 7F63 5CC4 E3F7 2F7C A0CB 178D F559 AFA6 456B 92F5 0EA3 6324 D781 8044 94DC 66CC 3119 01E7 06E8 990D BE22 D706 6439 5954 DDB3 B66D D607 1016 5C13 2DFC A8E1 A572 CB94 0940 1DF4 11DA F1BD F071 B540 3E58 CC02 56CC 47E2 6B8D 3648 A16B B451 F017 0564 9BAA D9BF B702 3CB5 6D2C 438D FFAA C016 6B62 3BDF 6EA1 F08C 7084 AD57 00E0 1D1E ADCF 2067 942B 28CC 679B 853B 131D 629A EF1E F65C 78BF EA42 1A46 39E8 93E0 729F 5B28 AEA4 6B26 989D 13A6 5971 FB74 0CFD 7028 231A 10CB 178F 89B1 BD9D A8DD 3AB8 9BD2 1797 4B3B 0311 DA7B 7F77 939D CD35 E39D CF21 D626 BE91 DEE2 9024 05A6 F036 AFB5 FAD4 A4E5 0A3C 4B46 F109 9BE6 29B1 C055 00C1 7B75 BEB5 A052 4DCF CB16 B154 6A16 DFBE C322 ECE8 9952 7791 E7C3 CE24 05B1 2A42 5B3F 07F7 B29A D326 89C7 0602 F6FD A2A6 1E72 DCE5 977A 6EDF 195D 27E4 AE57 10C3 5A1E 4ED1 39A5 AD45 8BFA 786F 0D93 6518 CC4E 4CEF F2BE C827 C60C 90D2 16FC 198F 799E B7E4 23FE BF35 72B4 67C1 7EB2 C1FB 9D99 838C C2C3 FFE0 6048 547E C715 E0D4 0269 4E3C BB79 8248 7A90 0C9E 38C2 195D 3146 507F B24A D934 1B21 67A8 0EA9 00AE C29D D0FC BE54 0C96 CB84 AD3F 39B3 7B71 53D5 812A 8EE2 205A 4DB7 F4A2 B483 294D D76F 600F FDF5 DA9C 5CB0 7029 E038 2A80 D6C8 45C7 8CE0 4B82 41F8 7E1E 21A1 FD87 4D6F