「ハッカー」という言葉は、ジャーナリストのおかげで、20世紀の後半にのみ現在の音を見つけました。当初、ハッカーはスペシャリストと呼ばれ、コンピューターテクノロジーの分野で幅広い知識を持ち、それらを巧みに使用することができます。この記事で説明するのは、そのようなハッカーのグループの1つの活動に関するものです。
前書き
2007 Nvidia CUDA — - , , . GPU GPGPU (General Purpose GPU), Nvidia - . , , . , , , . UCAS AES, .
, CUDA AES:
CUDA
CUDA (Compute Unified Device Architecture) — - , Nvidia . CUDA .
, CUDA, :
(kernel) — , GPGPU;
(grid) — , ;
(block) — . --- ;
(, thread) — .
, GPGPU.
CUDA
CUDA, GPGPU ( ):
(Scalar Processor, SP) — , ;
(Streaming Multiprocessor, SM) — SP, , 32- (Instruction Unit). SM L1-, SP. SM , ;
GPU — SM, .
GPGPU, , . 32 (warp). , SIMT- (Single Instruction Multiple Threads).
.
AES
Advanced Encryption Standard (AES), Rijndael — . 128 128, 192 256 . 128 , 128 .
AES-128 S 4 4 , (state), 11 :
SubBytes — , SBox. 16 16, . :
,
— , ,
-
- SBox. , (Row-Major Ordering)
.
, , . SBox, SBoxLUT (Look Up Table).
ShiftRows — . , , .
MixColumns — , — . SBox, , .
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)
, . , -,
.
32x16 , (Embarrassingly Parallel): , . , , .
. , . .
, ;
;
, ;
, , 16 :
;
256
:
;
3
;
,
;
,
;
, .
, . , , .
— , , . , , GPGPU, , . , . , . .
. , GPGPU, , . , . GPGPU. , .
-
, , - (Simultaneous Cache Collision, SCC). , warp-, , ( SCC) (SCC ) -. .
, - GPGPU Fermi, , 128 . SBoxLUT, SubBytes, 256 , -, . , SCC SBoxLUT ,
.
. :
—
-
- , ,
— . ,
. ,
,
:
InvSBox — , ,
—
-
. , . , , .
-
, , :
. SBoxLUT, -, .
, : :
.
-
: . :
, .
, , , , , . ,
, ,
. ,
—
, . , ,
,
:
.
, ,
, . ,
.
. ,
- 256 ,
. :
—
-
. :
- . , 256 .
.
, . , , 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, .
現時点では実生活で攻撃を行うことは難しいという事実にもかかわらず、科学的な観点からは興味深いままであり、研究された方向へのアイデアのさらなる発展に弾みをつけることができます。
PS現時点では、エディターでの数式のフォーマットの違いと投稿を表示するときの違いはやや意外ですが、近い将来、私はそれを理解しようとします。