Issue 4604 - go - runtime: switch to a fast, collision-resistant hash function - The Go Programming Language - Google Project Hosting



SipHash is a very fast PRG for short inputs developed by J. P. Aumasson and D. J. Bernstein, competitive in speed with MurmurHash, but with the security benefits of cryptographically strong hash functions, i.e. finding collisions is a major undertaking even if the IV can be guessed, or if computing digests for the set of all IVs. Thus, it can be an ideal choice for a hash table hash function, and provides significantly better protection against collision attacks than a non-collision resistant hash function using a random IV. It is also extremely simple. The entire implementation: https://131002.net/siphash/siphash24.c Most notably, Perl, the first by far to adopt any kind of hash function randomization (in the early 90s, when the attack was first described) have switched to SipHash in their 64-bit implementation. iant suggested I file this ticket as I was commenting on the now-closed https://code.google.com/p/go/issues/detail?id=2630. I plan to make a sample implementation and provide benchmarks to back this up. I don't think this is terribly urgent, but that it would be a better long-term solution. It might even be faster than FNV in some cases where collisions were common since Sip has better distribution.

Read full article from Issue 4604 - go - runtime: switch to a fast, collision-resistant hash function - The Go Programming Language - Google Project Hosting


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts