以åãåãå®è£ ãã¦ãã web ãµã¼ã Mighty ããHaskell ã§æ¸ãã¦ããã«ãé¢ããããã»ã°ã¡ã³ãã¼ã·ã§ã³ãã©ã¼ã«ããèµ·ããã¦ããã調ã¹ãã¨ãã hashable ã©ã¤ãã©ãªããªã³ã¯ãã C ã® DJBX33X ããSipHash ã«å¤ãã£ããã¨ãåå ã ã£ãããã®ã¨ããã SipHash ãæ°ã«ãªã£ã¦ãããã以å社内で説明した "Efficient Denial of Service Attacks" ã¨ã®é¢ä¿ãç¥ãããã£ãã®ã§ãå°ã調ã¹ã¦ã¿ãããã®è¨äºã¯ããã®è¦ãæ¸ãã
Hash-flooding DoS ã®æ´å²
1998 å¹´ã« Alexander Peslyak æ°ã Phrack Magazine ã§ãHash-flooding DoS ãåãããã¨ãå ±åãã¦ãããããã·ã¥ã¯ãN åã®è¦ç´ ãæ¿å ¥ããã®ã«é常 O(N) ãããããããã·ã¥å¤ããã¹ã¦è¡çªããææªã®å ´åã§ã¯ O(N^2) ãããããããæªç¨ããã®ããHash-flooding DoSã"Hash-flooding" ã¨ããè¨èã¯ãDaniel J. Bernstein (DJB) æ°ãå®è£ ãã dnscache ã®ã³ã¡ã³ãã§æåã«ä½¿ããã(1999å¹´)ã
2003 å¹´ã« Scott A. Crosby æ°ã¨ Dan S. Wallach æ°ã¯ãHash-flooding DoS ã«é¢ããè«æãçºè¡¨ãããããã¾ã§ã® DoS ã¯å®è£ ã®ä¸åãæªç¨ãã¦ãããããã® DoS ã¯ã¢ã«ã´ãªãºã ã®æ¬ ç¹ãçªããä»æã®ããã°ã©ãã³ã°è¨èªã§ã¯ããã·ã¥ããããã¨ããã«ä½¿ããã¦ãã¦ãå¤é¨ããã®å ¥åã«å¯¾ãã¦ããã·ã¥ãåãããã«ãªã£ã¦ããã¨ããã®æ»æã®é¤é£ã¨ãªããã¢ã«ã´ãªãºã ã®æ¬ é¥ãçªãã¦ãããã¨ã強調ããããã«ãé¡åã« "Algorithmic Complexity" ã¨ããè¨èã使ããã¦ããã®ãèå³æ·±ãã
- Denial of Service via Algorithmic Complexity Attacks, Scott A. Crosby and Dan S. Wallach, in Proceeding of SSYM'03 Proceedings of the 12th conference on USENIX Security Symposium - Volume 12, 2003
2011å¹´ãAlexander Klink æ°ã¯ Julian Wälde æ°ã¯ãåºç¯å²ã®Webã¢ããªããã®æ»æã«å¯¾ãã¦èå¼±ã§ãããã¨ã示ããã以ä¸ãæ»ææ¹æ³ã説æããã¹ã©ã¤ãã
- Efficient Denial of Service Attacks on Web Application Platforms, Alexander Klink and Julian Wälde, 2011
ãã®ææã«å¤ãã®ããã°ã©ãã³ã°è¨èªã§ä½¿ããã¦ããããã·ã¥ã¯ãDJBæ°ãéçºããDJBX33AãDJBX33Xããã®å¾ãå¤ãã®ããã°ã©ãã³ã°è¨èªã¯åæå¤ãä¹±æ°åãã対å¦çæ³ãå®æ½ãããä¾ãã°ãruby のアナウンスãåç §ã
ãã®å¾ãããã¤ãã®ããã°ã©ãã³ã°è¨èªã¯ãããã·ã¥å¤ã®ä¹±æ°æ§ãé«ã MurmurHash ãæ¡ç¨ãããã¨ãªã£ããä¾ãã°ãRuby 1.9ãã¾ããGoogle ã§ã¯ CityHash ã使ããã¦ããã
2012å¹´ã« Martin Boßlet æ°ã¨å ±åã§ãJean Philippe Aumasson æ°ã¨ DJB æ°ã¯ãMurmurHashãCityHashãããã³ãPythonã®ããã·ã¥ãèå¼±ã§ãããã¨ã示ãããåæå¤ãä¹±æ°åãã¦ããããã·ã¥ãè¡çªããã¦ãã¾ãã
- Hash-flooding DoS reloaded: attacks and defenses, Jean-Philippe Aumasson and Daniel J. Bernstein and Martin Boßlet, 2012
ãããã®ããã·ã¥é¢æ°ã¯ãå ¥åããããã¯ã«åå²ãã¦å¦çãããåæå¤ã«ã¯ä¹±æ°ãå©ç¨ããããããããã®ãããã¯ã§ã¯ä¹±æ°ã使ããªãããããããã¯ã®å¦çã§ããã·ã¥ã«å·®ãçããã(æ´æ°ãããã)ã次ã®ãããã¯ã®å¤ããã¾ãé¸ã¹ã°ããã®å·®ãæã¡æ¶ããã¨ãå¯è½ãé©å½ãªãã¼ã¿ã«ããã®äºã¤ã®ãããã¯ãç¹°ãè¿ãä»ãã¦ããã°ãè¡çªããå ¥åããããã§ãçæã§ããã
2012 å¹´ã«ãJean Philippe Aumasson æ°ã¨ DJB æ°ã¯ãä¸æ¹åæ§ãæã¤æå·å¦çãªããã·ã¥é¢æ°ãããããããã·ã¥é¢æ°ã¨ãã¦ç¨ãããã¨ãææ¡ããã
- SipHash: a fast short-input PRF, Jean Philippe Aumasson and Daniel J. Bernstein, the DIAC workshop and at INDOCRYPT 2012
ä¸æ¹åæ§ãæã¤æå·å¦çãªããã·ã¥é¢æ°ã®ä»£è¡¨ä¾ã¨ãã¦ã¯ MD5 ã SHA-X ãæããããããæ®éã®ããã·ã¥é¢æ°ã¨ãã¦ä½¿ãã®ã¯ã以ä¸ã®2ã¤ã®ç¹ã§ãããªãã
- å°ããå ¥åã«å¯¾ãã¦é ã (åæåãªã©ã®ãªã¼ãã¼ãããã大ãã)
- mod ãåã£ãå¤ãè¡çªãããã
ãããã®æ¬ ç¹ãå æããããã«ä½ãããä¸æ¹åæ§ãæã¤æå·å¦çãªããã·ã¥ã SipHashãSipHashã®çºè¡¨å¾ãããããã®ããã°ã©ãã³ã°è¨èªãSipHashãæ¡ç¨ããããã¨ãã°ãRuby
ã¨ãã訳ã§DJBæ°ã®ããã·ã¥é¢æ°ãæ¨æºã«è¿ãå²ããã¨ãã訳ã ã