ChaCha20とは?
ちゃちゃにじゅう
ChaCha20とは、高速かつ安全なストリーム暗号アルゴリズムで、TLSやVPNなどの通信暗号化に広く採用されています。
ChaCha20とは、Djb(Daniel J. Bernstein)が設計したストリーム暗号アルゴリズムです。2008年に公開されたSalsa20をベースに改良されており、256ビットの鍵と96ビットのナンスを使用して擬似乱数ストリームを生成し、平文とのXOR演算で暗号化を行います。
ChaCha20の主な特徴は以下のとおりです。
- 高速性:AESハードウェア支援がないデバイス(モバイル・組み込み機器等)でもソフトウェアのみで高速に動作する
- 安全性:タイミング攻撃に対して耐性が高く、キャッシュタイミング攻撃を受けにくい設計
- シンプルな構造:加算・XOR・ビットローテーションのみで構成される「ARX構造」を採用
- 並列処理:ブロックを並列に計算できるため、マルチコアCPUでの高速化が容易
実際の利用では、メッセージ認証コードのPoly1305と組み合わせたChaCha20-Poly1305という認証付き暗号(AEAD)として使われることがほとんどです。Googleが2013年にTLS通信へ採用して注目を集め、その後RFC 8439として標準化されました。現在はTLS 1.3の必須暗号スイートの一つとして、HTTPS通信やWireGuardなどのVPNプロトコルに広く使用されています。
使い方・例文
「このサーバーはAESが遅い古いモバイル端末向けに、ChaCha20-Poly1305を優先的にネゴシエーションするよう設定している」のように、TLS設定やセキュリティ要件の文脈で登場します。
この用語をシェア
最終更新: