-

   rss_rss_hh_full

 - e-mail

 

 -

 LiveInternet.ru:
: 17.03.2011
:
:
: 1

:


[ ] t1ha

, 02 2017 . 17:35 +
yleo 17:35

t1ha

, , 64- -, .
, , . ?


Disclaimer

- , , . , ( ) -, .


, () , . , , () . : .


- :


  • : , 1/2 .
  • ( ): .
  • ( ): / .
  • ( ): / , .

:


  • , , , -. .
  • . , .
  • , .
  • , - , .

, , t1ha , (- ) ( ).


t1ha () - - . t1ha 64- little-endian , 64- (seed) 64- , seed-. , t1ha , 0 ( seed).


- . , . , - . .


, . , SMHasher. t1ha t1ha - . , , t1ha - , ( -).


/ t1ha. , t1ha . , , . - . t1ha 64- , .


statistical prove Google ;)





. , , -, /. , . , , , . , , (x86_64), .


, , . x86, ( ) , .


, SMHasher Reini Urban. , / .


t1ha.


( 1..31 ).
Cycles/Hash ( , ):


Function MiB/Second Cycles/Hash
t1ha 12228.80 35.55
FastHash64 5578.06 43.42
CityHash64 11041.72 51.77
xxHash64 11123.15 56.17
MetroHash 11808.92 46.33

(256 ).
MiB/Second ( , ):


Function MiB/Second Cycles/Hash
t1ha 12228.80 35.55
FarmHash64 12145.36 60.12
CityHash64 11041.72 51.77
xxHash64 11123.15 56.17
Spooky64 11820.20 60.39



t1ha


t1ha . -.


-, - , . , t1ha little-endian , - big-endian . - ? :


  • 32- , little, big-endian.
  • AES-NI AVX.
  • AES-NI AVX.

, , , . . , :


  • t1ha0() .
  • t1ha1() 64- t1ha.
  • t1ha2() 64- .
  • t1ha3() 128- .
  • ..

, t1ha0() , . , _le _be little-endian big-endian . , t1ha - , E2K .


. , SMHasher, AES-NI :


Simple bench for x86 (large keys, 262144 bytes):
              t1ha1_64le:   47151 ticks,  0.1799 clk/byte,  16.679 Gb/s @3GHz
              t1ha1_64be:   61602 ticks,  0.2350 clk/byte,  12.766 Gb/s @3GHz
              t1ha0_32le:   94101 ticks,  0.3590 clk/byte,   8.357 Gb/s @3GHz
              t1ha0_32be:   99804 ticks,  0.3807 clk/byte,   7.880 Gb/s @3GHz

Simple bench for x86 (small keys, 31 bytes):
              t1ha1_64le:      39 ticks,  1.2581 clk/byte,   2.385 Gb/s @3GHz
              t1ha1_64be:      42 ticks,  1.3548 clk/byte,   2.214 Gb/s @3GHz
              t1ha0_32le:      51 ticks,  1.6452 clk/byte,   1.824 Gb/s @3GHz
              t1ha0_32be:      54 ticks,  1.7419 clk/byte,   1.722 Gb/s @3GHz

Simple bench for AES-NI (medium keys, 127 bytes):
     t1ha0_ia32aes_noavx:      72 ticks,  0.5669 clk/byte,   5.292 Gb/s @3GHz
       t1ha0_ia32aes_avx:      78 ticks,  0.6142 clk/byte,   4.885 Gb/s @3GHz
      t1ha0_ia32aes_avx2:      78 ticks,  0.6142 clk/byte,   4.885 Gb/s @3GHz

Simple bench for AES-NI (large keys, 262144 bytes):
     t1ha0_ia32aes_noavx:   38607 ticks,  0.1473 clk/byte,  20.370 Gb/s @3GHz
       t1ha0_ia32aes_avx:   38595 ticks,  0.1472 clk/byte,  20.377 Gb/s @3GHz
      t1ha0_ia32aes_avx2:   19881 ticks,  0.0758 clk/byte,  39.557 Gb/s @3GHz



, t1ha - ( wipe-pipe) . 256- , . . 256- 128 .


64- , ARX (Add-Rotate-Xor) MUX/MRX (Mul-Rotate-Xor). , , u-ops , x86_64. .


, . , 128- .


, 64 128- . 64- . t1ha (128- 64- ). . , , t1ha .


, . , t1ha SMHasher, . , -, t1ha .


.


. .

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/339160/

:  

: [1] []
 

:
: 

: ( )

:

  URL