MD5やSHAの代替として利用可能な新たなハッシュ化技術「BLAKE2」登場

 12月21日、ハッシュアルゴリズム「BLAKE2」とそのCおよびC#実装が公開された。BLAKE2はMD5やSHAといったハッシュアルゴリズムの代替として利用できるもので、セキュリティに優れ高速に動作するのが特徴という。

 BLAKE2は、与えられた入力に対し指定されたビット長のハッシュ値を生成するためのアルゴリズム。既存のハッシュアルゴリズムであるMD5よりもセキュリティに優れ、かつSHAよりも高速に処理を実行できるのが特徴という。

 同様のハッシュアルゴリズムとしてSHA-2やその後継となるSHA-3(Keccak)などがあるが、BLAKE2はSHA-3アルゴリズムの候補の1つであったBLAKEを改良したものとなっている。BLAKE2はSHA-3やBLAKEと同等のセキュリティを備えつつ、64ビット環境においてMD5と同等の速度で動作し、SHA-2やSHA-3と比べて33%少ないメモリで動作するという。

 BLAKE2では64ビット環境に最適化された「BLAKE2b」(単にBLAKE2と呼ばれることもある)と、8ビットもしくは32ビットプラットフォームに最適化された「BLAKE2s」の2つが提供されている。BLAKE2bでは1~64バイト、BLAKE2sでは1~32バイトのハッシュ値を生成可能となっている。また、BLAKE2ではマルチコアCPUなどに向けて並列化された「BLAKE2bp」や「BLAKE2sp」といった実装も提供されている。開発者らがIntelの「Sandy Bridge」CPUを搭載したマシンで行ったテストでは、BLAKE2bはSHA-3(512ビット)の5倍以上、SHA-3(256ビット)の3倍以上のパフォーマンスを得られたという。

 BLAKE2では現在CおよびC#での実装がBLAKE2のWebサイトで公開されている。また、Google Go言語での実装やPHP向けのラッパーも非公式ながら開発されている。

BLAKE2
https://blake2.net/