Sボックスの作成方法

対称キーの暗号化は、今日の世界で広く普及しています。情報、電子メール、さらにはYouTubeでのビデオの保存と送信です。強力な対称暗号には、整形式のSボックスが含まれます。この投稿では、Sボックスを作成して比較するさまざまな方法について説明します。





1.Sブロックとは

S-boxは、入力としてnビットを受け取り、特定のアルゴリズムに従ってそれらを変換し、出力でmビットを返す関数です。Sボックスは、ほとんどのブロック暗号で広く使用されています。これらは、入力サイズと出力サイズ(nとm)が異なる場合があり、決定論的またはランダムに生成できます。また、不変(固定)またはキーに基づいて生成することもできます。Sボックスは、テーブル(DESのように)または代数ブール関数(AESのように)のいずれかとして表すことができます。Sボックスを構成する際の重要な基準は、その非線形性とブール関数の伝播の基準です。S-boxを一連のブール関数として表示するために、まず、ブール関数が一般的に暗号化にどのように関連しているかを理解します。





2.暗号化におけるブール関数

オープンメッセージを秘密鍵で暗号化されたメッセージに変換する従来の暗号化システムでは、ブール関数の装置が非常に広く使用されています。それらの主な要件は、受信者ではない人によるメッセージのデコードを複雑にすることです。





ブール関数の使用法を説明するために、各着信文字がすぐに暗号テキスト文字に変換されるストリーム暗号化スキームを示します。元のテキスト、キー、および暗号テキストは、同じ長さのバイナリ文字列です。実際には、ほとんどの場合、送信者と受信者は、合意されたアルゴリズムに従って短い秘密鍵から生成されるVernam暗号の鍵の代わりに、疑似ランダムシーケンスを選択します。このシーケンスは、キーストリームまたはガンマと呼ばれます。





, (Linear Feedback Shift Register, LSFR).





. ( ) ( ). LSFR , , LSFR.





, , L. L_i, L_1 + L_2 + ... + L_n = L, n f.









, .





3.

F_2- 2 ( \ {0、1 \}), F_2 ^ j-j- F_2.





S- s \回t :





S:F_2 ^ {s} \ longrightarrow F_2 ^ {t}

s :





f:F_2 ^ {s} \ longrightarrow F_2

, S- :





S(x_1、x_2、...、x_s)=(f_1(x_1、x_2、...、x_s)、f_2(x_1、x_2、...、x_s)、...、f_t(x_1、x_2、 ...、x_s))

s f_i:F_2 ^ {s} \ longrightarrow F_2、i = 1、2、...、t z - (x_1、x_2、...、x_s). y_z = f(x_1、x_2、...、x_s). f





[y_0、y_1、...、y_ {2 ^ {s}マイナス1}].





( ) 2 ^ s :





\ displaystyle f(x)= a_o \ oplus \ sum_ {i = 1} ^ {s} a_ {i} x_ {i} \ oplus \ sum_ {1 \ leq i <j \ leq s} {} a_ {ij} x_ {i} x_ {j} \ oplus ... \ oplus a_ {12..s} x_ {1} x_ {2} ... x_ {s}、

\合計 2.





s , :





f(x_1, x_2, ..., x_{s}) = a_{0} \oplus a_{1}x_{1} \oplus a_{2}x_{2} \oplus ... \oplus a_{s}x_{s}, a_{i} \in F_{2}.

, () . "".





4.

f: F_2^s \longrightarrow F_2, , .





x \in F_2^s, hwt(x)- . f, g: F_{2}^{s} \longrightarrow F_2 :





\displaystyle d(f, g) = \sum_{x \in \{ 0, 1 \}^s}f(x) \oplus g(x).

( ord(f) f(x)- a_J, J- \{1,2,...,s\}. J- , a_0 . a_1, a_2, ..., a_s- , a_{12}, a_{13}, ..., a_{(s-1)s}- . - 2^s.





( ) i f \sigma_{i}(f). f s , i s- ,





\sigma_{i}(f) = \binom{s}i.

f X_s s





\displaystyle \delta(f) = min_{g \in X_s} d(f, g).

f A_s - f g \in A_s. f f N_f,





\displaystyle N_f = min_{g \in A_{s}} d(f, g).

, \displaystyle N_f \leq min_{g \in A_{s}} d(f, g). s- , N_f = 2^{s - 1} - 2^{s/2 - 1}. -.





- .





5.-

- - , . - .





, -, .





N_0[y_0, y_1, ..., y_{{2^s} - 1}]- [y_0, y_1, ..., y_{2^s - 1}] f, N_1[y_0, y_1, ..., y_{2^s - 1}]- . f , N_0[y_0, y_1, ..., y_{2^s - 1}] = N_1[y_0, y_1, ..., y_{2^s - 1}].





f: F_2^{s} \longrightarrow F_2 , f(x) \oplus f(x \oplus \alpha) \alpha \in F_2^{s} , 1 \leq hwt(\alpha) \leq s. \frac{1}{2}.





6. -

6.1

B_s - s s.









1.





: a, b \in B_6, a \neq b.





: - B_8 - 8 .





: g: F_2^8 \longrightarrow F_2, :





\begin{equation*} 	g(x_0, ..., x_7) = 	\begin{cases} 		a(x_0, ..., x_5), x_6 = 0, x_7 = 0\\ 		a(x_0, ..., x_5), x_6 = 0, x_7 = 1\\ 		b(x_0, ..., x_5), x_6 = 1, x_7 = 0\\ 		b(x_0, ..., x_5) \oplus 1, x_6 = 1, x_7 = 1 	\end{cases} 	\end{equation*}





2.





: - s a(x), b(x) c(x) , a(x) \oplus b(x) \oplus c(x)- -.





: - g s+2 .





:





g(x, x_{s + 1}, x_{s + 2}) = a(x)b(x) \oplus b(x)c(x) \oplus c(x)a(x) \oplus [a(x)b(x)]x_{s + 1} \oplus [a(x) \oplus c(x)]x_{s + 2} \oplus x_{s + 1}x_{s + 2}





( -) s s+2 . . 4 6 . - "" (, ), .









3.





: \pi: F_2^{s/2} \longrightarrow F_2^{s/2}, g: F_2^{s/2} \longrightarrow F_2, s- .





: - f_M:F_2^{s} \longrightarrow F_2, .





: f_M(x||y) = \pi(x) * y \oplus g(x), x, y \in F_2^{s/2}, || - (a_{s/2 - 1}, a_{s/2 - 2}, ..., a_0) * (b_{s/2 - 1}, b_{s/2 - 2}, ..., b_0) = a_{s/2 - 1}b_{s/2 - 1} \oplus a_{s/2 - 2}b_{s/2 - 2} \oplus ... \oplus a_0b_0





(a_0, a_1, ..., a_7)- \{0, 1, ..., 7\}. \ widehat {f}(x_0、x_1、...、x_7)= f_ {M}(x_ {a0}、x_ {a1}、...、x_ {a7})、 f_M - , -. .





6.2 -

"" - , . , , , .





, - 6 . . . - , , - .





- , . - s / 2 , - s / 2. .





s / 2 . 私 , , . 私 , , 私.





, .





- -, -. . . - ( ).





- , - . , , - .





. -, (i> 2) - . (, 6 s = 8、i = 3、4). -, - .









4. ( -)





:





  • s - (s - )





  • ord , 0 \ leq s / 2 cmin_ {ord} cmax_ {ord} ,





0 \ leq cmin_ {ord} \ leq cmax_ {ord} \ leq \ binom {s} {ord}。





:





  1. (1.1) (1.2) ord , 0 \ leq ord \ leq s / 2:





  • - f_ {ANF}





  • f_ {TT} .





:





  1. (1.1) (1.2) ord , 0 \ leq ord \ leq s / 2:





    • 1.1 c_ {ord} ord, cmin_ {ord} \ leq c_ {ord} \ leq cmax_ {ord},





      1.2 1 ord.





  2. f_ {ANF} f_ {TT}.





  3. f_ {TT} .





  4. , (3), 2 ^ {s -1} -2 ^ {{s / 2} -1}, f_ {TT} f_ {ANF} - -, ; (1).









s , 4 . - (. - ), (4) - , , .





7. S-

S- - S:F_2 ^ s \ longrightarrow F_2 ^ t, S(x_1、x_2、...、x_s)=(f_1(x_1、x_2、...、x_s)、f_2(x_1、x_2、...、x_s)、...、f_t(x_1、x_2、 ...、x_s)), , S. ,





N_S = min \ {N_ {f_ {J}} |  f_ {J} = \ sum_ {i \ in J}、J \ subseteq(1、2、...、t)\}。

S-, 2t . S-.





S-, 8- .





1. S-, ,





2. S-, ,





1 2, , S-, , S- (98 100).





3. S-, ,





, S- , S- - ( 2) (. 3). , 98, S- .









4. S-, -,





S-, - (. 4). S- 112, 5 \% ( , 104). 20 S- 100, S-, - .





, - S- .





, , - S- (80, ). S- (, ) S- .





8.

, S- . , , . S-, -.









  1. . -





  2. Anna Grocholewska-Czurylo and Janusz Stoklosa - Random Generation of S-Boxes for Block Ciphers





  3. Meier、W.、Staffelbach、O-暗号化関数の非線形性基準





  4. ウィキペディア-S-box(コンピューターサイエンス)





  5. ウィキペディア-Sボックス





  6. ウィキペディア-曲がった機能












All Articles