Kriptanalisis linier pada contoh algoritma enkripsi blok NUSH

pengantar

Di dunia modern, ada pertanyaan akut tentang kerahasiaan data selama pertukaran dan penyimpanannya, yang dicapai melalui semua metode enkripsi yang memungkinkan. Namun, dengan munculnya algoritme enkripsi baru, pekerjaan mulai mempelajari cara-cara untuk melanggar kerahasiaan data, yaitu, mereka mencari serangan terhadapnya.





Saat ini, algoritma enkripsi blok seperti AES, Grasshopper, dll banyak digunakan. Kriptanalisis linier adalah salah satu cara yang berpotensi efektif untuk menyerang mereka. Konsep dasar dari metode ini dipresentasikan oleh Mitsuru Matsui dalam karyanya “Metode Analisis Kripto Linear untuk DES Cipher” [1] pada tahun 90-an. Inti dari metode ini akan dijelaskan di bagian 2 artikel ini.





Sebagai contoh penggunaan efektif metode ini, kriptanalisis linier dari algoritma enkripsi blok NUSH [2] disajikan , referensi singkat yang akan diberikan di bawah ini.





Dasar-dasar Kriptanalisis Linear

Seperti yang tertulis di atas, inti dari kriptanalisis linier dijelaskan dalam “Metode Kriptoanalisis Linier untuk DES Cipher”. Ketika menggunakan kriptanalisis linier, diasumsikan bahwa struktur cipher diketahui dan kriptanalis memiliki sampel statistik yang cukup "ciphertext-public key" yang diperoleh pada satu kunci.





Setelah memenuhi persyaratan di atas, struktur algoritme diganti dengan fungsi linier sederhana. Biasanya, analisis fungsi linier jauh lebih sederhana daripada fungsi nonlinier dari sandi itu sendiri, yang dapat mengurangi masalah analisis sandi menjadi analisis modifikasi liniernya. Selanjutnya, dari sistem fungsi yang diperoleh, kriptanalis menebak bit kunci dengan probabilitas tertentu.





Misalkan hasil <x, y> = x_1 * y_1 + x_2 * y_2 + ... + x_n * y_n perkalian titik dari vektor biner modulo 2. Dan biarkan P, C, Kplaintext, ciphertext dan keynya masing-masing. 





Definisi 1





L:





<P, \ alpha> \ oplus <C, \ beta> = <K, \ gamma>

1 \ garis miring terbalik 2 + \ varepsilon \ varepsilon , \ \ alpha, \ beta, \ gamma- .





, .





.





(Pilling-up , “ ”)





     X_i 1 \ leq i \ leq n- , \ mathbb {Z} _2.





P \{X_i = 0\} = 1 \backslash 2 + \varepsilon_i

1 \leq \varepsilon_i \leq 1 \backslash 2. X_1 \oplus X_2 \oplus ... \oplus X_n  0 1 \backslash 2 + \varepsilon, \varepsilon = 2^{n-1} \prod^{n}_{i=1}  \varepsilon_i





1: \varepsilon_j = 0, j \in \overline{1,n} .





.





NUSH

2000 NESSIE , , LAN Crypto – NUSH. , (64, 128, 192 256 ).





S- P-, (XOR, AND ..). . , , O(k), k – .









N = 4n— P = P_0 P_1 P_2 P_3. KS_i(start key) . : a_0 b_0 c_0 d_0 = P_0 P_1 P_2 P_3 \oplus KS_0 KS_1 KS_2 KS_3. r-1 , KR_i (subKey) - , # — , , C_i,S_i , \gg j— j :





{   for ( i=1...r-1 )  \\  a_i = b_{i-1}    b_i=((c_i \oplus (KR_{i-1}+C_{i-1}))+b_{i-1}) \gg S_{i-1} \\ c_i = d_{i-1} \\  d_i = a_i \oplus (b_i \# d_i)}

:





{a_r = a_{r-1}  + (c_r \# d_{r-1}) \\ b_r = b_{r-1} \\ c_r = ((c_{r-1} \oplus (KR_r+C_{r-1})+b_{r-1})) \gg S_{r-1} \\ d_r = d_{r-1}}

: M_0 M_1 M_2 M_3 = a_r b_r c_r d_r \oplus KF_0 KF_1 KF_2 KF_3













{d_{r-1} = d_r \\ b_{r-1} = b_r a_{r-1} = a_r - (c_r \# d_{r-1}) \\ a_{r-1} = a_r - (c_r \# d_r{r-1}) \\ c_{r-1} = c_r \gg (n- S_{r-1}) }

r-1





{ for(i=r-1...1) \\ d_{i-1} = c_i \\ b_{i-1} = a_i \\ a_{i-1} = d_i - (b_i \# c_{i-1}) \\ c_{i-1} = (b_i \gg (n-S_{i-1}))-KR_{i-1}-a_{i-1}}

NUSH

, , , 1









{ a_i[0] = b_{i-1}[0]  \quad (1) }

f(x,y)=x \# y . , p=0.75 p=0.25. p=0.75 p=0.25 d_i:









{d_i =  a_{i-1}[0] \oplus b_i[0] \oplus d_{i-1}[0] \quad (2)}

(1) (2) p=0.75









a_i[0] \oplus b_i[0] \oplus d_i[0] = a_{i-1}[0] \oplus b_{i-1}[0] \oplus d_{i-1}[0] \oplus \theta \quad (3)

\theta = 0 # “AND” \theta = 1 # “OR”. 





, .





a_1[0] \oplus b_1[0] \oplus d_1[0] . , S_0 = 4, b_1[0] c_0[0-4], b_0[0-4], KR_0[0-4] C_0[0-4]. c_0[0-4]





  5 c_0. a_1[0] \oplus b_1[0] \oplus d_1[0] a_0[0-4], b_0[0], c_0[0], d_0[0-4], KR_0[0-4] C_0[0-4].





f_1:









a_1[0] \oplus b_1[0] \oplus d_1[0] = f_1 \begin{pmatrix} P_0[0], P_1[0-4], P_2[0-4], P_3[0], \\  KS_0[0], KS_1[0-4], KS_2[0-4], KS_3[0], KR_0[0-4] \end{pmatrix} \quad (4)





a_2[0] \oplus b_2[0] \oplus d_2[0] . , a_2[0] \oplus b_2[0] \oplus d_2[0] P_3[0] \oplus KS_0[0], P_2[0-11] \oplus KS_1[0-11], P_1[0-11] \oplus KS_2[0-11], P_0 [0-7] \oplus KS_2[0-7], KR_0 [0-11] KR_1[0-7]. f_2:









a_2[0] \oplus b_2[0] \oplus d_2[0] = f_2 \begin{pmatrix} P_0[0-7], P_1[0-11], P_2[0-11], P_3[0], \\  KS_0[0], KS_1[0-11], KS_2[0-11], KS_3[0-7], KR_1[0-7] \end{pmatrix} \quad (5)





a_3[0] \oplus b_3[0] \oplus d_3[0] . , a_3[0] \oplus b_3[0] \oplus d_3[0] P, KS_0[0-11], KS_1, KS_2, KS_3, KR_0, KR_1[0] KR_2[0-11]. f_3:









a_3[0] \oplus b_3[0] \oplus d_3[0] = f_3(P, KS_0[0-11], KS_1, KS_2, KS_3, KR_0, KR_1, KR_2[0-11]) \quad (6)





a_{32}[0] \oplus b_{32}[0] \oplus d_{32}[0] . ,





{ d_{32}[0] = c_{33}[0] \\ b_{32}[0] = a_{33}[0] \\ a_{32}[0] = d_{33}[0] \oplus (b_{33}[0] \& c_{32}[0])}  \quad { \space \\ (7)}

a_{32}[0] b_{32}[0] c_{32}[0] d_{32}[0] a_{32}[0] \oplus b_{32}[0] \oplus d_{32}[0]. a_{34}[0], b_{34}[0], c_{34}[0], d_{34}[0] KR_{33}[0]. , a_{35}[0,1], b_{35}[0,1], c_{35}[0,1], d_{35}[0,1] a_{36}[0,1], b_{36}[0,1], c_{36}[0,1], d_{36}[0,1] KR_{35}[0].





, a_{32}[0] \oplus b_{32}[0] \oplus d_{32}[0] M_0[0,1], M_1[0-2], M_2[0,12], M_3[0,1], KF_0[0], KF_1[0,12], KF_2[0-2], KF_3[0,1], KR_{33}[0], KR_{34}[0], KR_{35}[0], M_0[0,1], M_1[0-2]. f_4:





a_{32}[0] \oplus b_{32}[0] \oplus d_{32}[0] = f_4 \begin{pmatrix} {M_0[0,1], M_1[0-2], M_2[0-12], M_3[0,1], \\  KF_0[0,1], KF_1[0-12], KF_2[0-2], KF_3[0,1], \\ KR_{33}[0], KR_{34}[0], KR_{35}[0] }  \end{pmatrix} \quad (8)

a_{31}[0] \oplus b_{31}[0] \oplus d_{31}[0] f_5:





a_{31}[0] \oplus b_{31}[0] \oplus d_{31}[0] = f_5 \begin{pmatrix} {M_0[0-9], M_1[0-11], M_2[0-12], M_3[0,1], \\  KF_0[0,1], KF_1[0-12], KF_2[0-11], KF_3[0-9], \\ KR_{32}[0], KR_{33}[0], KR_{34}[0], KR_{35}[0-9] }  \end{pmatrix} \quad (9)

. (3) , 29-





a_2[0] \oplus b_2[0] \oplus d_2[0] = a_{31}[0] \oplus b_{31}[0] \oplus d_{31}[0] \quad (10)

1/2+2^{-30} .





{f_2(P, KS_0[0], KS_1[0-11], KS_2[0-11], KS_3[0-7], KR_1[0-7]) = \\ = f_5 \begin{pmatrix} {M, \\  KF_0[0,1], KF_1[0-12], KF_2[0-11], KF_3[0-9], \\ KR_{32}[0], KR_{33}[0], KR_{34}[0], KR_{35}[0-9] }  \end{pmatrix}} { \space \\ \space \\ \quad (11)}

NUSH , (11) m_0- . , .





1. K ^ i (i = 1, ..., 2 ^ {m_0}) T_i - , (11).





2. T_j T_i, K ^ j.





3. , .





Artikel ini menyajikan konsep dasar kriptanalisis linier dan mempertimbangkan contoh aplikasinya dalam analisis algoritma enkripsi NUSH.





literatur

1. Mitsuru Matsui, Metode analisis kripto linier untuk sandi DES, Kemajuan dalam Cryptogy-Eurocrypt'93, Berlin: Springer-Verlag, 1993, 386-397.





2. Wu Wenling & Feng Dengguo, Kriptoanalisis linier dari block cipher NUSH, Science in China (Seria F), Februari 2002, Vol. 45, nomor 1.





3. M. Heys, Tutorial Kriptoanalisis Linier dan Diferensial, Kriptologi, Juni 2001, Vol. 26 No. 3.





4. https://www.youtube.com/watch? V = nEHVfeaPjNw 












All Articles