AES frente a osciloscopio

La palabra "hacker" encontró su sonido actual solo en la segunda mitad del siglo XX gracias a los periodistas. Inicialmente, los piratas informáticos se denominaron especialistas que tienen un amplio conocimiento en el campo de las tecnologías informáticas y son capaces de utilizarlas con maestría. Se trata de las actividades de uno de los grupos de piratas informáticos que se analizarán en este artículo.





Introducción

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, . : segundo \ {x, y \}, X y — , , X- y- SBox. , (Row-Major Ordering) segundo .





    , , . 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 ^ {adivinar} _l:





      1. r_l ^ 1 r_l ^ 2 k ^ {adivinar} _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}_ll- 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_2G_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^{guess}_l) . , l- 256 , \vec{\Delta}(k^{guess}_l) . :







\ DeclareMathOperator * {\ argmax} {argmax} k_l ^ {correcto} = \ argmax_k \ left (\ max_ {k \ in \ {0 ~ .. ~ 255 \}} \ left (\ max_ {i} \ Delta_i \ right ) \ derecho),



\ Delta_iyo- \ vec {\ Delta}. : k \ vec {\ Delta} (k) yo- . , 256 . k k ^ {correcto} _l. l \ en \ {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 . , , , , .





A pesar de que es difícil realizar un ataque en la vida real en este momento, sigue siendo interesante desde un punto de vista científico y puede impulsar el desarrollo de ideas en la dirección estudiada.







PD Por el momento, las diferencias en el formato de las fórmulas en el editor y al ver la publicación son algo sorprendentes, en un futuro cercano intentaré resolverlo.








All Articles