Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
BLAKE3 — PRF、MAC、KDF、XOFモードを備えた高速暗号学的ハッシュ関数。検証済みストリーミング、インクリメンタル更新、およびマークル木構造による並列ハッシュをサポート。 | Kitploit
ツール/GitHubGitHub/blake3-team/blake3
暗号化/復号化ツールハッシュ分析暗号化
GitHubblake3-team/blake3

BLAKE3

PRF、MAC、KDF、XOFモードを備えた高速暗号学的ハッシュ関数。検証済みストリーミング、インクリメンタル更新、およびマークル木構造による並列ハッシュをサポート。

リポジトリを見る
6.4k46917925日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
# BLAKE3

BLAKE3 は、以下の特徴を持つ暗号学的ハッシュ関数です:

- **MD5、SHA-1、SHA-2、SHA-3、BLAKE2 よりもはるかに高速**
- **MD5 や SHA-1 とは異なり安全**。また SHA-2 とは異なり、長さ拡張攻撃に対して安全。
- 内部が Merkle ツリーであるため、任意の数のスレッドや SIMD レーンで**高度に並列化可能**。
- これも Merkle ツリーであるため、**検証付きストリーミング**と**インクリメンタル更新**が可能。
- 通常のハッシュに加え、**PRF**、**MAC**、**KDF**、**XOF** としても利用可能。
- **バリアントのない単一のアルゴリズム**で、x86-64 上でも小規模アーキテクチャ上でも高速。

以下の[グラフ](https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/benchmarks/bar_chart.py)は、2019 年の Cascade Lake-SP 8275CL サーバー CPU における 16 KiB 入力のベンチマーク例です。より詳細なベンチマークについては、[BLAKE3 論文](https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf)を参照してください。

<p align="center">
<img src="https://raw.githubusercontent.com/blake3-team/blake3/HEAD/media/speed.svg" alt="performance graph">
</p>

BLAKE3 は、確立されたハッシュ関数 [BLAKE2](https://blake2.net) の最適化されたインスタンスと、[オリジナルの Bao ツリーモード](https://github.com/oconnor663/bao/blob/master/docs/spec_0.9.1.md) に基づいています。仕様と設計の根拠は [BLAKE3 論文](https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf) で入手できます。デフォルトの出力サイズは 256 ビットです。現在のバージョンの [Bao](https://github.com/oconnor663/bao) は、BLAKE3 を使用した検証付きストリーミングを実装しています。

このリポジトリは BLAKE3 の公式実装です。以下が含まれます:

* Rust クレート [`blake3`](https://crates.io/crates/blake3)。SSE2、SSE4.1、AVX2、AVX-512、NEON、WASM 向けの最適化実装を含み、x86 では自動ランタイム CPU 機能検出を行います。`rayon` 機能によりマルチスレッドが利用可能。

* Rust クレート [`b3sum`](https://crates.io/crates/b3sum)。コマンドラインインターフェースを提供します。デフォルトでマルチスレッドを使用し、一般的なデスクトップハードウェア上で `sha256sum` よりも一桁高速です。

* [C 実装](https://github.com/blake3-team/blake3/blob/master/c)は、Rust 実装と同様に SIMD 最適化(WASM を除くすべて)、x86 での CPU 機能検出、およびオプションのマルチスレッドを含みます。[`c/README.md`](https://github.com/blake3-team/blake3/blob/master/c/README.md) を参照してください。

* [Rust リファレンス実装](https://github.com/blake3-team/blake3/blob/master/reference_impl/reference_impl.rs)は、[BLAKE3 論文](https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf)のセクション 5.1 で説明されています。この実装は上記の最適化されたものよりもはるかに小さく単純です。BLAKE3 の動作を理解したい場合、またはマルチスレッドや SIMD 最適化を必要としない移植を作成している場合は、こちらから始めてください。リファレンス実装の他の言語への移植は別のリポジトリでホストされています([C](https://github.com/oconnor663/blake3_reference_impl_c)、[Python](https://github.com/oconnor663/pure_python_blake3))。

* 拡張出力、3 つのモードすべて、およびさまざまな入力長をカバーする[テストベクターのセット](https://github.com/BLAKE3-team/BLAKE3/blob/master/test_vectors/test_vectors.json)。

* [![Actions Status](https://github.com/BLAKE3-team/BLAKE3/workflows/tests/badge.svg)](https://github.com/BLAKE3-team/BLAKE3/actions)

BLAKE3 は以下によって設計されました:

* [@oconnor663] (Jack O'Connor)
* [@sneves] (Samuel Neves)
* [@veorq] (Jean-Philippe Aumasson)
* [@zookozcash] (Zooko)

BLAKE3 の開発は [Electric Coin Company](https://electriccoin.co) によってスポンサーされました。

BLAKE3 は [Community Cryptography Specification Project (C2SP)](https://c2sp.org) でも[仕様化](https://c2sp.org/BLAKE3)されています。

*注: BLAKE3 はパスワードハッシュアルゴリズムではありません。高速になるよう設計されているためです。パスワードハッシュは高速であってはなりません。ハッシュを保存するためにパスワードをハッシュ化する場合や、パスワードからキーを導出する場合は、[Argon2](https://github.com/P-H-C/phc-winner-argon2) を推奨します。*

## Usage

### The `b3sum` utility

`b3sum` コマンドラインユーティリティは、ファイルまたは標準入力の BLAKE3 ハッシュを出力します。プリビルドバイナリは、Linux、Windows、macOS([未確認の開発者を回避する方法](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac)が必要)向けに[リリースページ](https://github.com/BLAKE3-team/BLAKE3/releases)で入手できます。[Rust と Cargo をインストール](https://doc.rust-lang.org/cargo/getting-started/installation.html)している場合は、`b3sum` を自分でビルドすることもできます:

```bash
cargo install b3sum
```

`rustup` が `PATH` を設定しなかった場合は、インストールされたバイナリを `~/.cargo/bin` などで探す必要があるかもしれません。大きなファイルを作成してハッシュ化することで、お使いのマシンでの BLAKE3 の速度をテストできます。例:

```bash
# Create a 1 GB file.
head -c 1000000000 /dev/zero > /tmp/bigfile
# Hash it with SHA-256.
time openssl sha256 /tmp/bigfile
# Hash it with BLAKE3.
time b3sum /tmp/bigfile
```

### The `blake3` crate [![docs.rs](https://docs.rs/blake3/badge.svg)](https://docs.rs/blake3)

Rust コードから BLAKE3 を使用するには、`Cargo.toml` に `blake3` クレートへの依存関係を追加します。以下は入力バイトのハッシュ化の例です:

```rust
// Hash an input all at once.
let hash1 = blake3::hash(b"foobarbaz");

// Hash an input incrementally.
let mut hasher = blake3::Hasher::new();
hasher.update(b"foo");
hasher.update(b"bar");
hasher.update(b"baz");
let hash2 = hasher.finalize();
assert_eq!(hash1, hash2);

// Extended output. OutputReader also implements Read and Seek.
let mut output = [0; 1000];
let mut output_reader = hasher.finalize_xof();
output_reader.fill(&mut output);
assert_eq!(hash1, output[..32]);

// Print a hash as hex.
println!("{}", hash1);
```

`hash` に加えて、BLAKE3 は `keyed_hash` と `derive_key` の 2 つのモードを提供します。`keyed_hash` モードは 256 ビットの鍵を受け取ります:

```rust
// MAC an input all at once.
let example_key = [42u8; 32];
let mac1 = blake3::keyed_hash(&example_key, b"example input");

// MAC incrementally.
let mut hasher = blake3::Hasher::new_keyed(&example_key);
hasher.update(b"example input");
let mac2 = hasher.finalize();
assert_eq!(mac1, mac2);
```

`derive_key` モードはコンテキスト文字列と鍵マテリアル(パスワードではありません)を受け取ります。コンテキスト文字列はハードコードされ、グローバルに一意で、アプリケーション固有である必要があります。コンテキスト文字列の適切なデフォルト形式は `"[application] [commit timestamp] [purpose]"` です:

```rust
// Derive a couple of subkeys for different purposes.
const EMAIL_CONTEXT: &str = "BLAKE3 example 2020-01-07 17:10:44 email key";
const API_CONTEXT: &str = "BLAKE3 example 2020-01-07 17:11:21 API key";
let input_key_material = b"usually at least 32 random bytes, not a password";
let email_key = blake3::derive_key(EMAIL_CONTEXT, input_key_material);
let api_key = blake3::derive_key(API_CONTEXT, input_key_material);
assert_ne!(email_key, api_key);
```

### The C implementation

[`c/README.md`](https://github.com/blake3-team/blake3/blob/master/c/README.md) を参照してください。

### Other implementations

追跡しきれないほど多くの実装がありますが、いくつかの注目すべきものとしては、[最適化された Go 実装](https://github.com/zeebo/blake3)、[Node.js とブラウザ向けの Wasm バインディング](https://github.com/connor4312/blake3)、[Python 用バイナリホイール](https://github.com/oconnor663/blake3-py)、[.NET バインディング](https://github.com/xoofx/Blake3.NET)、[純粋な Java 実装](https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/Blake3.html) などがあります。

## Contributing

詳細は [CONTRIBUTING.md](https://github.com/blake3-team/blake3/blob/master/CONTRIBUTING.md) を参照してください。

## Licenses

この作品は [CC0 1.0](https://github.com/blake3-team/blake3/blob/master/LICENSE_CC0) のもとでパブリックドメインに提供されています。あるいは、以下のいずれかのライセンスで提供されています:

* [Apache 2.0](https://github.com/blake3-team/blake3/blob/master/LICENSE_A2)
* [Apache 2.0 with LLVM exceptions](https://github.com/blake3-team/blake3/blob/master/LICENSE_A2LLVM)


## Adoption & deployment

* [Bazel](https://github.com/bazelbuild/bazel/releases/tag/6.4.0)
* [Cargo](https://github.com/rust-lang/cargo/pull/14137)
* [Ccache](https://ccache.dev/releasenotes.html#_ccache_4_0)
* [Chia](https://github.com/Chia-Network/chia-blockchain/blob/main/CHANGELOG.md#10beta8-aka-beta-18---2020-07-16)
* [Clickhouse](https://github.com/ClickHouse/ClickHouse/blob/master/rust/chcache/Cargo.toml#L7)
* [Farcaster](https://www.farcaster.xyz/)
* [IPFS](https://github.com/ipfs/go-verifcid/issues/13)
* [Iroh](https://www.iroh.computer/blog/blake3-hazmat-api)
* [LLVM](https://reviews.llvm.org/D121510)
* [Nix](https://github.com/NixOS/nix/pull/12379)
* [Nym](https://github.com/nymtech/nym/blob/59056a22c5e6b01a38da2124662bd1fa3c8abef2/common/nymsphinx/params/src/lib.rs#L5)
* [OpenZFS](https://github.com/openzfs/zfs/)
* [Redox](https://www.redox-os.org/news/pkgar-introduction/)
* [Solana](https://docs.rs/solana-program/1.9.5/solana_program/blake3/index.html)
* [Tekken 8](https://x.com/rodarmor/status/1751567502050771189)
* [Wasmer](https://github.com/wasmerio/wasmer/blob/4f935a8c162bf604df223003e434e4f7ca253688/lib/cache/src/hash.rs#L21)


## Miscellany

- [@veorq] と [@oconnor663] が [Cryptography FM のインタビュー](https://cryptography.fireside.fm/3) を受けました。
- [@oconnor663] が [Saito のインタビュー](https://www.youtube.com/watch?v=cJkmIt7yN_E) を受けました。

[@oconnor663]: https://github.com/oconnor663
[@sneves]: https://github.com/sneves
[@veorq]: https://github.com/veorq
[@zookozcash]: https://github.com/zookozcash
ツールをダウンロード