ΠΡΠΈΠΊ ΠΠΈΠ³Π³Π΅ΡΡ (Eric Biggers), Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Adiantum ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ½ΠΈΠΊΠ° Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ΄ΡΠΎΡΠΎ Linux fscrypt, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠ°ΡΠΎΠ²Π΅ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°ΡΠΈ ΠΎΡ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Intel, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Intel ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° ΠΎΡ ΡΠ°ΠΌΠΈΠ»ΠΈΡΡΠ° Ice Lake. ΠΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π° ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ ARM.
ΠΠ°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ ΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡΠ΅ Π² ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΎΡ Π°Π²ΡΠΎΡΠ° Π½Π° ΠΏΠ°ΡΠΎΠ²Π΅ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠ½ΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΊΠ°, ΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ Π΄Π° Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅, Π° Π½Π°ΡΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π°ΡΠ°ΠΊΠΈ ΡΡΠ΅Π· ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ, Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°ΡΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΡΡ Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½Π°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ ΠΎΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. Π‘ΠΏΠΎΡΠ΅Π΄ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΡΠΈΠΊ ΠΠΈΠ³Π³Π΅ΡΡ, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π΅ ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π΄ΠΎΡΠΈ Π·Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ ΠΈ XOR, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ AES-NI (ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π΅ Π΅ ΠΏΠΎΡΠ²ΡΡΠ΄Π΅Π½Π° ΠΎΡ ΡΠ΅ΡΡΠΎΠ²Π΅, ΡΠΏΠΎΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΠΊΡΠΎΡΠΈ ΠΈ Π±ΡΠΎΠ΅Π½Π΅ Π½Π° Π±ΠΈΡΠΎΠ²Π΅ ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π° Π·Π°Π±Π°Π²ΡΠ½Π΅ ΠΎΡ Π΅Π΄ΠΈΠ½ ΡΠΈΠΊΡΠ»).
ΠΠ° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ Intel ΠΈ ARM ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ Π° Π½ΠΎΠ²ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅: PSTATE-Π±ΠΈΡ DIT (Data Independent Timing) Π·Π° CPU ARM ΠΈ MSR-Π±ΠΈΡ DOITM (Data Operand Independent Timing Mode) Π·Π° CPU Intel, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ°Ρ ΡΡΠ°ΡΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ Intel ΠΈ ARM ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°Ρ Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Π·Π°ΡΠΈΡΠ°ΡΠ° ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ Π·Π° ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²Π°ΠΆΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π²Π°ΠΆΠ½ΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΠ΅ΡΠ°Ρ Π² ΠΊΠ°ΠΊΠ²Π°ΡΠΎ ΠΈ Π΄Π° Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π·Π°ΡΠΎΠ²Π° ΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌΠΈΡΠ΅ DOITM ΠΈ DIT Π·Π° ΡΡΠ»ΠΎΡΠΎ ΡΠ΄ΡΠΎ.
ΠΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ ARM Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 6.2 Π²Π΅ΡΠ΅ ΡΠ° ΠΏΡΠΈΠ΅ΡΠΈ ΠΏΠ°ΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, Π½ΠΎ ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΠΎΠ²Π΅ ΡΠ΅ ΡΠΌΡΡΠ°Ρ Π·Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΠ±Ρ
Π²Π°ΡΠ°Ρ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π½Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Intel Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠΈΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ ΡΠ°ΠΌΠΎ Π½Π° Π΅ΡΠ°ΠΏ ΡΠ΅ΡΠ΅Π½Π·ΠΈΡΠ°Π½Π΅. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π΅ Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° Π²Π»ΠΈΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ° Π²ΡΡΡ
Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΡΠΏΠΎΡΠ΅Π΄ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° Intel Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΆΠΈΠΌΠ° DOITM Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ°Π΄ΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΠΏΡΠ΅ΠΆΠ΄Π°Π²Π°ΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅) ΠΈ Π² Π±ΡΠ΄Π΅ΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠΈΠ»ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
