Aesaes

781 views

Published on

OpenSource hash function - Boyan Krosnov

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
781
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aesaes

  1. 1. aesaesхеш функция с общо предназначение
  2. 2. хеш функция
  3. 3. хеш функция с общо предназначение (non-cryptographic, general purpose)
  4. 4. Hash tables, Caches, Bloom filters,Finding duplicate records
  5. 5. MurmurHash3 популярна такава бърза, добро разпределениеhttps://code.google.com/p/smhasher/
  6. 6. aesaes наше откритиепо-бърза, също толкова добраhttp://packetscale.com/aesaes
  7. 7. Скорост
  8. 8. Разпределениенеразличимо от случайно1M 128-битови стойностив 2М кофи~224000 кофи с колизиимаксимална дълбочина = 7
  9. 9. Псевдокодstate = 0for b in blocks tmp = b tmp = tmp.SubBytes.ShiftRows.MixColumns tmp = tmp.SubBytes.ShiftRows.MixColumns state = state XOR tmpreturn state[0](прилича на 2 рунда от AES-128; ползва същите примитиви)
  10. 10. IA32 разширение - AES-NI 2008(почти) всички нови процесори от Intel и AMD
  11. 11. Лиценз2-clause BSD
  12. 12. Зов за помощсайт и инструменти за разработчицидруги варианти на функцията“avalanche” и “bit bias” тестове aesaes@packetscale.com
  13. 13. Благодаря!
  14. 14. (c) 2011, Packetscaleuint32_taesaes_string(void *_data, int size){ __m128i *v = (__m128i*)_data; union __ZZ tmp, state, key; state.v = key.v = _mm_setzero_si128(); while (size > 0) { tmp.v = *v; v++; size -= sizeof( *v ); tmp.v = _mm_aesenc_si128( tmp.v, key.v ); tmp.v = _mm_aesenc_si128( tmp.v, key.v ); state.v ^= tmp.v; } return state.vals[0];}

×