yescrypt β ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° scrypt.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ scrypt ΠΈ Argon2):
- Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ ΠΊ ΠΎΡΡΠ»Π°ΠΉΠ½-Π°ΡΠ°ΠΊΠ°ΠΌ (Π·Π° ΡΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ Π°ΡΠ°ΠΊΠΈ ΠΏΡΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΡΡΠ°ΡΠ°Ρ Π·Π°ΡΠΈΡΠ°ΡΡΠ΅ΠΉΡΡ ΡΡΠΎΡΠΎΠ½Ρ).
- ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π²ΠΈΠ΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎΠΉΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±Π΅Π· Π·Π½Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Ρ) ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ², ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΡ NIST.
- ΠΡΡΠ°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SHA-256, HMAC, PBKDF2 ΠΈ scrypt.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΡΡΠΈ (yescrypt 1.0.1) Π±ΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΠΎΡΠ½ΡΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ².
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅Π»ΠΈΠ·Π΅ 1.0.2:
-
ΠΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ MAP_POPULATE, ΠΈΠ±ΠΎ Π² Π½ΠΎΠ²ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΡΠ΅ΡΡΠ°Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΎΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΡΡ .
-
Π ΠΊΠΎΠ΄Π΅ SIMD ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΡΡΠ΅ΡΡ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² BlockMix_pwxform Π² SMix2. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΡ Π² ΠΊΠ΅Ρ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅Π»ΠΈΠ·Π΅ 1.0.3:
- Π SMix1 ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ V Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅Π»ΠΈΠ·Π΅ 1.1.0:
- ΠΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ yescrypt-opt.c ΠΈ yescrypt-simd.c, ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠΏΡΠΈΡ «-simd» Π±ΠΎΠ»Π΅Π΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°. Π‘ ΡΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ SIMD-ΡΠ±ΠΎΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΠΎΡΡΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΊΠ°Π»ΡΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ Π½Π° 64-Π±ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ (Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π½Π° 32-Π±ΠΈΡΠ½ΡΡ ) Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ².
Π’Π°ΠΊΠΆΠ΅ yescrypt ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libxcrypt, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Fedora ΠΈ ALT Linux.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru