AES vs. Osiloskop

Kata "hacker" baru terdengar di paruh kedua abad ke-20 berkat para jurnalis. Awalnya, peretas disebut spesialis yang memiliki pengetahuan luas di bidang teknologi komputer dan mampu menggunakannya dengan ahli. Ini tentang aktivitas salah satu kelompok peretas semacam itu yang akan dibahas dalam artikel ini.





pengantar

2007 Nvidia CUDA β€” - , , . GPU GPGPU (General Purpose GPU), Nvidia - . , , . , , , . UCAS AES, .





, CUDA AES:





CUDA

CUDA (Compute Unified Device Architecture) β€” - , Nvidia . CUDA .





, CUDA, :





  1. (kernel) β€” , GPGPU;





  2. (grid) β€” , ;





  3. (block) β€” . --- ;





  4. (, thread) β€” .





, . CUDA .





, GPGPU.





CUDA

CUDA, GPGPU ( ):





  1. (Scalar Processor, SP) β€” , ;





  2. (Streaming Multiprocessor, SM) β€” SP, , 32- (Instruction Unit). SM L1-, SP. SM , ;





  3. GPU β€” SM, .





GPGPU, , . 32 (warp). , SIMT- (Single Instruction Multiple Threads).





GPGPU , . .





.





AES

Advanced Encryption Standard (AES), Rijndael β€” . 128 128, 192 256 . 128 , 128 .





AES-128 S 4 4 , (state), 11 :





  1. SubBytes β€” , SBox. 16 16, . : b \{x, y\}, x y β€” , , x- y- SBox. , (Row-Major Ordering) b .





    , , . SBox, SBoxLUT (Look Up Table).





  2. ShiftRows β€” . , , .





  3. MixColumns β€” , β€” . SBox, , .





  4. AddRoundKey β€” RounKey 4 4, . AES " " β€” 11 , , . KeyExpansion .





, 11 . . , 11- , :





AddRoundKey(0)

for (i = 1; i <= 10; i += 1) {
    SubBytes()
    ShiftRows()
    MixColumns()
    AddRoundKey(i)
}

SubBytes()
ShiftRows()
AddRoundKey(11)
      
      



, GF(2^8). , -, \oplus.





, , , . , .





AES, AES, β€” , .





32x16 , (Embarrassingly Parallel): , . , , .





. , . .





  1. , ;





  2. ;





  3. , ;





  4. , , 16 :





    1. l;





    2. 256 k^{guess}_l:





      1. r_l^1 r_l^2 k^{guess}_l;





      2. 3 r_l^1 r_l^2;





      3. \Delta, k^{guess}_l;





    3. k_l^{guess}, \Delta;





  5. , .





, . , , .





β€” , , 1/2\pi . , , GPGPU, , . , . , . .





. , GPGPU, , . , . GPGPU. , .





-

, , - (Simultaneous Cache Collision, SCC). , warp-, , ( SCC) (SCC ) -. .





, - GPGPU Fermi, , 128 . SBoxLUT, SubBytes, 256 , -, . , SCC SBoxLUT D_1 = \{0~..~127\}, D_2 = \{128~..~255\}.





. :







c_l = SBox(r_l) \oplus k_l, ~l \in \{0, 1, ..., 15\},





c_{l} k_{l}β€” l- l- , , r_{l} β€” . , k^{guess}. , c_{l}, r_{l}:







r_l = InvSBox(c_l \oplus k^{guess}_l),~l \in \{0, 1, ..., 15\},



InvSBox β€” , InvSBox( SBox(i) ) = i, k^{guess}_lβ€” l- k^{guess}. , . , , . l- r_{l}, , : r_{l}^1 r_{l}^2. SBoxLUT, -, . r_{l}^1 r_{l}^2, : : D_1 D_2.





- G_1 G_2 r_l^1 r_l^2: . :





G_1 = \{ \vec{T_i}~|~(r_l^1 \in D_1~\text{}~r_l^2 \in D_1)~\text{}~(r_l^1 \in D_2~\text{}~r_l^2 \in D_2) \}, G_2 = \{ \vec{T_i}~|~(r_l^1 \in D_1~\text{}~r_l^2 \in D_2)~\text{}~(r_l^1 \in D_2~\text{}~r_l^2 \in D_1) \},

\vec{T_i} , .





, , , , , . ,







\vec{\Delta} = \left| \frac{1}{n_1}\sum_{\vec{T_i} \in G_1} \vec{T_i} - \frac{1}{n_2}\sum_{\vec{T_i} \in G_2} \vec{T_i} \right|,



, , G_1 G_2. , n_1 n_2 β€” G_1 G_2, . , , k^{guess}_l, \vec{\Delta} k^{guess}_l: \vec{\Delta} = \vec{\Delta}(k^{guess}_l).





k^{guess} , , r_l^1 r_l^2 , . , k_{guess} r_l^1 r_l^2 . \ vec {\ Delta} (k ^ {tebak} _l) . , l- 256 , \ vec {\ Delta} (k ^ {tebak} _l) . :







\ DeclareMathOperator * {\ argmax} {argmax} k_l ^ {benar} = \ argmax_k \ kiri (\ max_ {k \ in \ {0 ~ .. ~ 255 \}} \ kiri (\ max_ {i} \ Delta_i \ kanan ) \ Baik),



\ Delta_i β€” saya- \ vec {\ Delta}. : k \ vec {\ Delta} (k) saya- . , 256 . k k ^ {benar} _l. l \ dalam \ {0 ~ .. ~ 15 \}, . , , AES-128 .





, 1000 , 100 . KEA 600.





, , β€” .





, . . Nvidia GeForce GT 620 454MiB. , β€” PolarSSL. Agilent KeySight DSO9104A Rohde&Schwarz RF B.





. AES-128 , , AES-192 AES-256 . , AES-256 2256 2128, .





- GPGPU . , , , , .





Terlepas dari kenyataan bahwa sulit untuk melakukan serangan dalam kehidupan nyata saat ini, namun tetap menarik dari sudut pandang ilmiah dan dapat memberikan dorongan untuk pengembangan lebih lanjut ide-ide ke arah yang diteliti.







PS Saat ini, perbedaan dalam format rumus di editor dan saat melihat posting agak mengejutkan, dalam waktu dekat saya akan mencoba mengetahuinya.








All Articles